本文主要研究采用以太网接口芯片RTL8019AS和TCP/IP协议实现嵌入式WEB服务器,此服务器可以使各种带串口的工控设备和数据采集设备很容易地连接到Internet,这样就能够利用Internet实现对各种嵌入式设备的低成本远程访问和资源共享。 本研究实现的嵌入式WEB服务器以STC89C51系列单片机为核心,用其串口作为与嵌入式设备的接口,用RTL8019AS芯片和RJ-45作为以太网接口,并通过软件实现RS-232与TCP/IP协议的转换,通过以太网实现嵌入式设备与远程计算机之间的双向数据通信,给出了硬件设计和软件实现方案。硬件主要研究微控制器和以太网控制芯片之间的接口设计和以太网控制芯片RTL8019AS的驱动。软件部分研究实现了TCP/IP的各层协议,包含了ARP、IP、ICMP、UDP、TCP、HTTP等,在实际中得以应用,如对于蓄电池电压的远程检测等。 研究结果表明,利用嵌入式WEB服务器将嵌入式设备连入Internet网络是切实可行的。经实验测试整个系统占用资源少,成本较低、移植性较好,能够完成常用的相关网络通讯功能,网络数据传输可靠性较好。
上传时间: 2013-04-24
上传用户:liucf
在工业控制领域,多种现场总线标准共存的局面从客观上促进了工业以太网技术的迅速发展,国际上已经出现了HSE、Profinet、Modbus TCP/IP、Ethernet/IP、Ethernet Powerlink、EtherCAT等多种工业以太网协议。将传统的商用以太网应用于工业控制系统的现场设备层的最大障碍是以太网的非实时性,而实现现场设备间的高精度时钟同步是保证以太网高实时性的前提和基础。 IEEE 1588定义了一个能够在测量和控制系统中实现高精度时钟同步的协议——精确时间协议(Precision Time Protocol)。PTP协议集成了网络通讯、局部计算和分布式对象等多项技术,适用于所有通过支持多播的局域网进行通讯的分布式系统,特别适合于以太网,但不局限于以太网。PTP协议能够使异质系统中各类不同精确度、分辨率和稳定性的时钟同步起来,占用最少的网络和局部计算资源,在最好情况下能达到系统级的亚微级的同步精度。 基于PC机软件的时钟同步方法,如NTP协议,由于其实现机理的限制,其同步精度最好只能达到毫秒级;基于嵌入式软件的时钟同步方法,将时钟同步模块放在操作系统的驱动层,其同步精度能够达到微秒级。现场设备间微秒级的同步精度虽然已经能满足大多数工业控制系统对设备时钟同步的要求,但是对于运动控制等需求高精度定时的系统来说,这仍然不够。基于嵌入式软件的时钟同步方法受限于操作系统中断响应延迟时间不一致、晶振频率漂移等因素,很难达到亚微秒级的同步精度。 本文设计并实现了一种基于FPGA的时钟同步方法,以IEEE 1588作为时钟同步协议,以Ethernet作为底层通讯网络,以嵌入式软件形式实现TCP/IP通讯,以数字电路形式实现时钟同步模块。这种方法充分利用了FPGA的特点,通过准确捕获报文时间戳和动态补偿晶振频率漂移等手段,相对于嵌入式软件时钟同步方法实现了更高精度的时钟同步,并通过实验验证了在以集线器互连的10Mbps以太网上能够达到亚微秒级的同步精度。
上传时间: 2013-08-04
上传用户:hn891122
随着我国信息化发展进程加快,信息化覆盖面扩大,信息安全问题也就随之增多,其影响和后果也更加广泛和严重。同时,信息安全及其对经济发展、国家安全和社会稳定的重大影响,正日益突出地显现出来,受到越来越多的关注。在和平年代,通过对信息载体进行大规模的物理破坏,从而达到危害信息安全的目的,在一定程度上是行不通的。然而,在信息安全的角力上,破坏者从来都没有放弃过,他们把目标对准了信息载体中的数据,由于数据的易失性,计算机数据成为信息安全中的最大隐患,同时也是破坏信息安全的一个突破口。 本文提出研制硬盘加密卡的主要目的是为了防止对计算机数据的窃取,保护硬盘中的数据。破坏者在得到硬盘后,也不能够得到硬盘中的数据,从而达到保护信息安全的目的。加密卡提供两个符合ATA-6标准的接口,串接在主板IDE接口和硬盘之间。存储在硬盘上的数据,是经过加密以后的加密数据;从硬盘上读出的数据,必须经过该卡的解密才可被正常使用,否则只是一堆乱码。加密卡采用FPGA技术实现IDE接口和加密算法,以减小加解密带来的速度上的影响。 论文的工作重点主要有以下几个方面的内容:FPGA及VHDL语言的研究,ATA协议标准研究及IDE接口的FPGA实现。论文对ATA协议做了细致的研究,分析了硬盘接口的工作机制以及主机与硬盘之间的通信协议,并在此基础上,重点研究了用FPGA的编程功能来实现一个计算机硬件底层接口协议的方法,详细介绍了芯片的内部框图及FPGA的软件流程图,提出了在实现过程中应注意的要点,最终用FPGA构建了一个双向IDE硬盘通道,实现了两套符合ATA-6规范的IDE接口。
上传时间: 2013-08-02
上传用户:Ants
在工业控制领域,多种现场总线标准共存的局面从客观上促进了工业以太网技术的迅速发展,国际上已经出现了HSE、Profinet、Modbus TCP/IP、Ethernet/IP、Ethernet Powerlink、EtherCAT等多种工业以太网协议。将传统的商用以太网应用于工业控制系统的现场设备层的最大障碍是以太网的非实时性,而实现现场设备间的高精度时钟同步是保证以太网高实时性的前提和基础。 IEEE 1588定义了一个能够在测量和控制系统中实现高精度时钟同步的协议——精确时间协议(Precision Time Protocol)。PTP协议集成了网络通讯、局部计算和分布式对象等多项技术,适用于所有通过支持多播的局域网进行通讯的分布式系统,特别适合于以太网,但不局限于以太网。PTP协议能够使异质系统中各类不同精确度、分辨率和稳定性的时钟同步起来,占用最少的网络和局部计算资源,在最好情况下能达到系统级的亚微级的同步精度。 基于PC机软件的时钟同步方法,如NTP协议,由于其实现机理的限制,其同步精度最好只能达到毫秒级;基于嵌入式软件的时钟同步方法,将时钟同步模块放在操作系统的驱动层,其同步精度能够达到微秒级。现场设备间微秒级的同步精度虽然已经能满足大多数工业控制系统对设备时钟同步的要求,但是对于运动控制等需求高精度定时的系统来说,这仍然不够。基于嵌入式软件的时钟同步方法受限于操作系统中断响应延迟时间不一致、晶振频率漂移等因素,很难达到亚微秒级的同步精度。 本文设计并实现了一种基于FPGA的时钟同步方法,以IEEE 1588作为时钟同步协议,以Ethernet作为底层通讯网络,以嵌入式软件形式实现TCP/IP通讯,以数字电路形式实现时钟同步模块。这种方法充分利用了FPGA的特点,通过准确捕获报文时间戳和动态补偿晶振频率漂移等手段,相对于嵌入式软件时钟同步方法实现了更高精度的时钟同步,并通过实验验证了在以集线器互连的10Mbps以太网上能够达到亚微秒级的同步精度。
上传时间: 2013-07-28
上传用户:heart520beat
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
这两个RAR文件是我学习51单片机时,第一次写的"外部中断实验程序", 包含内容有: 1. EXT_C.rar, 给初学者(带中文注释的C51语言例程), 利用外部中断实现LED灯的简单控制。2. EXT_A.rar, 给初学者(带中文注释的51汇编语言例程), 利用外部中断实现LED灯的简单控制。 两个同样功能的中断例程, 一个用C51实现, 另一个用ASM51实现(ASM51是由C51反汇编生成的),都在MCU51-63K仿真器下通过实验的哦, 小虾们可以试试看。
上传时间: 2013-11-25
上传用户:hahayou