51单片机网络通信及ARP协议论文本文主要以SST89E564RD型51单片机和RTL8019AS网络接口芯片为例,研究了如何将51单片机与网络接口芯片进行硬件的电路连接,并通过将ARP协议进行简化和重新定义,实现了将51单片机接入TCP/IP进行网络通信,对该领域的研究具有一定的借鉴意义。151单片机与网络控制器的连接RTL8019AS网络接口芯片是台湾Realtek公司的代表性产品之一,该芯片基于ISA总线结构,性能稳定且价格低廉,在工业企业领域有非常广泛的应用[1]。1.1RTL8019AS接口芯片的主要特性RTL8019AS芯片主要优点有:一是支持热插拔(即插即用)的动态检测;二是完全兼容当前主流的NE2000模式并可在8位与16位两种模式下工作;三是有跳线与非跳线两种模式可供选择;四是支持全双工通信模式,双工通信时信道的传输速率可达到10Mbps;五是内置数据预取功能;六是内置16K字节的闪存;七是支持8/16两种前端总线工作模式,内置8个中断申请线,同时有16个I/O地址可供选择。1.251单片机与RTL8019AS连接实现网络通信的电路设计1.2.1RTL8019AS与93C46接口电路93C46接口电路内部存储容量为1Kbits,是四线串行接口EEPROM。RTL8019AS芯片在上电或者初始化复位时,首先要从该芯片中读取预设的配置信息才能完成初始化。93C46内部存储器的前三个地址空间用于存放RTL8019AS芯片的上电初始化信息;后5个地址空间用于记录本机地址;0AH-11H的地址空间分配给制造商存储产品的信息;12H~7FH的地址空间用于记录即插即用信息。RTL8019AS的EECS引脚连接93C46的CS引脚,EESK引脚连接SK引脚,EEDI引脚连接DI,EEDO引脚连接DO引脚,即由EECS提供片选信号,EESK提供时钟信号,EEDI与EE五是内置数据预取功能;六是内置16K字节的闪存;七是支持8/16两种前端总线工作模式,内置8个中断申请线,同时有16个I/O地址可供选择。1.251单片机与RTL8019AS连接实现网络通信的电路设计1.2.1RTL8019AS与93C46接口电路93C46接口电路内部存储容量为1Kbits,是四线串行接口EEPROM。RTL8019AS芯片在上电或者初始化复位时,首先要从该芯片中读取预设的配置信息才能完成初始化。93C46内部存储器的前三个地址空间用于存放RTL8019AS芯片的上电初始化信息;后5个地址空间用于记录本机地址;0AH-11H的地址空间分配给制造商存储产品的信息;12H~7FH的地址空间用于记录即插即用信息。RTL8019AS的EECS引脚连接93C46的CS引脚,EESK引脚连接SK引脚,EEDI引脚连接DI,EEDO引脚连接DO引脚,即由EECS提供片选信号,EESK提供时钟信号,EEDI与EEDO定义为串行数据I/O通道。1.2.2RTL8019AS与SST89E564RD接口电路的硬件连接SST系列单片机是美国SST公司生产的一种中高端51系列单片机,SST89E564RD单片机是其SST系列单片机中的一个型号。将RTL8019AS的SD0-SD7引脚与SST89E564RD的P0.0-P0.7引脚相连,相连后的引脚通过锁存器与A0-A7引脚相接,同时将74HC573的A0-A5引脚与RTL8019AS的SA0-SA5引脚相接,将SST89E564RD的P0口用作D/A端口。此外,SST89E564RD的P2.0-P2.6引脚与静态存储芯片TMS62256的高7位地址线引脚相接,组合成访问TMS的15位地址总线。将SST89E564RD的SMEMRB引脚接+5V,同时将IOCHDRY引脚悬空,JP引脚为跳线模式,IOCS16B引脚接地,使RTL8019AS工作在8位模式[2]。1.3网络接口电路的地址定义RTL8019AS中SA0-SA19的连接方式如下:SA5-SA7以及SA10-SA19接GND,SA8-SA9接+5V电压,SA0-SA4接74HC573的A0-A5引脚。SST单片机可以通过P0.0-P0.4来选中RTL8019AS的32个I/O端口并相应地对其进行R/W操作。此外,将RTL8019AS的IORB和IOWB引脚分别与SST89E564RD单片机的RD和WR相连作为R/W选通信号。然后在93C46接口电路的低位00H单元中写入00H,将IOS0-IOS3赋值为0,这样就可将RTL8019AS选择I/O端口的基本寻址地址定义为300H,地址空间就为00300H-0031FH。251单片机系统网络通信中ARP协议设计与实现2.1ARP协议工作流程根据TCPIP协议的定义,任何的需要远程通信和访问的主机在进行任何形式的通信前必须获得用于传输的本地地址。如果通信发起的源主机和通信目的端主机在同一个子网网段,那么这种通信形式不需要进行网关的数据交换,本地地址就是目的主机的硬件地址。否则通信发起者就要...