单片机系统的以太网通信接口设计

上传人:无*** 文档编号:64611882 上传时间:2022-03-21 格式:DOC 页数:48 大小:5.23MB
收藏 版权申诉 举报 下载
单片机系统的以太网通信接口设计_第1页
第1页 / 共48页
单片机系统的以太网通信接口设计_第2页
第2页 / 共48页
单片机系统的以太网通信接口设计_第3页
第3页 / 共48页
资源描述:

《单片机系统的以太网通信接口设计》由会员分享,可在线阅读,更多相关《单片机系统的以太网通信接口设计(48页珍藏版)》请在装配图网上搜索。

1、中北大学2005届本科毕业设计说明书引言单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些令人感兴趣的问题。可以说以太网和TCP/IP协议已经成为使用最广泛的协议,而其它总线协议如RS485、RS232,CAN,LANWORKS,都只是一些局部系统的总线。围绕以太网而制造的集线器,交换机已进入大小公司,企业,家庭。研究的主要是网络的底层,如果掌握了很多网络分析工具如(SNIFFER),对以太网和TCP/IP协议的研究就更加深入了。比较熟悉的网卡是10M的网卡,100M的以太网卡还在研究之中。用单片机(89C52)控制和驱动10M的NE2000兼容型以太网卡

2、与电脑主机传输数据。或用RTL8019AS的SAI总线的以太网的网卡。单片机控制SAI总线的以太网网卡成为现实,SAI总线也进入了嵌入式领域。 在接下来的文章将大概介绍以太网协议,网卡驱动,IP协议,TCP协仪,单片机。以太网协议(用于10MBPS的以太网,以下所说的以太网均指10M以太网,而不是100M,1000M的以太网).1以太网技术简介1.1以太网技术发展网络是基于标准与协议的,以太网尤其强调这二者的重要性.IEEE 802委员会是以太网标准的主要制定.从1997到1982年,由DEC, Intel 和 Xerox三家公司制定了以太网的技术规范DIX,以次为基础形成的IEEE802.3

3、以太网标准在1989年正式成为国际标准.在30年中以太网技术不断发展,成为迄今最广泛应用的局域网技术,产生了多种技术标准.1995年,IEEE正式通过802.3u快速以太网标准,以太网技术实现了第一次飞跃.1998年802.3z千兆以太网标准,2002年802.3ae万兆以太网标准的正式发布,是以太网的第二次和第三次飞跃.从上世纪90年以来,以太网得到了前所未有的规模应用.由于以太网技术具有共享性,开放性,结构简单,算法简洁,良好的兼容性和平滑升级功能,并且传输带宽也在大幅提升,它不但在局域网领域取得霸主地位,其疆域还扩展到城域网和广域网范围. 1.2 IEEE802.3及802.3的电缆IE

4、EE802标准已被ANSI采用为美国国家标准,被NIST采用为政府标准,并且被ISO作为国家标准,称之为ISO8802.这些标准在物理层和MAC子层上有所通,但在数据链路层上是兼容的.这些标准分成几个部分:802.1标准对这组标准做了介绍并且定义了接口原语;802.2标准描述了数据链路层的上部,它使用了逻辑链路控制LLC(logical link control) 协议.802.3到802.5分别描述了3个局域网标准,分别是CSMA/CD,令牌总线标准,令牌环标准,每一个标准包括物理层和MAC子层协议.802.3的电缆常用的有三种:第一种是10Base5电缆,它通常被称为”粗以太网(thick

5、 Ethernet)”电缆,802.3标准建议为黄色,每隔2.5m一个标志,标明分接头插入处, 连接处通常采用插入式分按头(vampire tap),将其处针小心地插入到同轴电缆的内芯.名称10Base5表示的意思是:工作速度为10Mb/s,最大支持段长为500m.第二种电缆是10Base2或称为”细以太网”电缆,与”粗以太网”相对,并且很容易弯曲.起街头除采用工业标准的BNC连接器按组成T型插座,它使用灵活,可靠性高.”细以太网”电缆价格低廉,安装方便,但是适用范围只有200m,并且每个电缆段内只使用30 台机器.第三种由于寻找电缆故障的麻烦,导致一种新的接线方式的产生,即所有站点均连接到一

6、个中心集线器上.通常,这些连线是电话公司的双绞线,这种方式称为10Base-T的缺点是,其电缆的最大有效长度为聚集线器100M,即使高质量的双绞线(5类线),最大长度可能也只有150m.另外大集线器的价格也较高.尽管如此,由于易于维护,10Base-T还是应用的越来越广泛,在本设计中也应用这种方式1.3以太网协议以太网协议有两种,一种是IEEE802.2/IEEE802.3,还有一种是以太网的封装格式。现代的操作系统均能同时支持这两种类型的协议格式。因此对我们来说只需要了解其中的一种就够了,特别是对单片机来说,不可能支持太多的协议格式。以太网的物理传输帧:(仅介绍第二种格式)PRSDDASAT

7、YPEDATAPADFCS56位8位48位48位16位不超过1500字节可选32位PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010.SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10.DA:目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给哪个网卡.如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网卡接收到.SA:源地址,48位,表明该帧的数据是哪个网卡

8、发的,即发送端的网卡地址,同样是6个字节.-TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。)-DATA:数据段 ,该段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。(14字节为DA,SA,TYPE)-PAD:填充位。由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足4

9、6字节时,后面补000000(当然也可以补其它值)-FCS:32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入.对于数据的校验算法,我们无需了解.-事实上,PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.-所有数据位的传输由低位开始(但传输的位流是用曼彻斯特编码的) -以太网的冲突退避算法就不介绍了,它是由硬件自动执行的.DA+SA+TYPE+DATA+PAD最小为60字节,最大为1514字节.-以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(

10、我们用不上),一个是它自已的地址.但网卡也可以设置为接收任何数据包(用于网络分析和监控).1.4以太网的连接 1.4.1拓扑结构: 总线型:所需的电缆较少、价格便宜、管理成本高,不易隔离故障点、采用共享的访问机制,易造成网络拥塞。早期以太网多使用总线型的拓扑结构,采用同轴缆作为传输介质,连接简单,通常在小规模的网络中不需要专用的网络设备,但由于它存在的固有缺陷,已经逐渐被以集线器和交换机为核心的星型网络所代替。 星型:管理方便、容易扩展、需要专用的网络设备作为网络的核心节点、需要更多的网线、对核心设备的可靠性要求高。采用专用的网络设备(如集线器或交换机)作为核心节点,通过双绞线将局域网中的各台

11、主机连接到核心节点上,这就形成了星型结构。星型网络虽然需要的线缆比总线型多,但布线和连接器比总线型的要便宜。此外,星型拓扑可以通过级联的方式很方便的将网络扩展到很大的规模,因此得到了广泛的应用,被绝大部分的以太网所采用。 1.4.2传输介质 以太网可以采用多种连接介质,包括同轴缆、双绞线和光纤等。其中双绞线多用于从主机到集线器或交换机的连接,而光纤则主要用于交换机间的级联和交换机到路由器间的点到点链路上。同轴缆作为早期的主要连接介质已经逐渐趋于淘汰。 接口的工作模式: 以太网卡可以工作在两种模式下:半双工和全双工。 半双工:半双工传输模式实现以太网载波监听多路访问冲突检测。传统的共享LAN是在

12、半双工下工作的,在同一时间只能传输单一方向的数据。当两个方向的数据同时传输时,就会产生冲突,这会降低以太网的效率。 全双工:全双工传输是采用点对点连接,这种安排没有冲突,因为它们使用双绞线中两个独立的线路,这等于没有安装新的介质就提高了带宽。例如在上例的车站间又加了一条并行的铁轨,同时可有两列火车双向通行。在双全工模式下,冲突检测电路不可用,因此每个双全工连接只用一个端口,用于点对点连接。标准以太网的传输效率可达到5060的带宽,双全工在两个方向上都提供100的效率。 1.5以太网的工作原理 以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。以太网中节点都可以看到在网络中发送的所有

13、信息,因此,我们说以太网是一种广播网络。以太网的工作过程如下: 当以太网中的一台主机要传输数据时,它将按如下步骤进行: 1、帧听信道上收否有信号在传输。如果有的话,表明信道处于忙状态,就继续帧听,直到信道空闲为止。 2、若没有帧听到任何信号,就传输数据 3、传输的时候继续帧听,如发现冲突则执行退避算法,随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会发送一个拥塞序列,以警告所有的节点) 4、若未发现冲突则发送成功,计算机会返回到帧听信道状态。 注意:每台计算机一次只允许发送一个包,所有计算机在试图再一次发送数据之前,必须在最近一次发送后等待9.6微秒(以10Mbps运行)。

14、 1.6 帧结构 以太网帧的概述: 以太网的帧是数据链路层的封装,网络层的数据包被加上帧头和帧尾成为可以被数据链路层识别的数据帧(成帧)。虽然帧头和帧尾所用的字节数是固定不变的,但依被封装的数据包大小的不同,以太网的长度也在变化,其范围是641518字节(不算8字节的前导字)。 1.7冲突/冲突域 冲突(Collision):在以太网中,当两个数据帧同时被发到物理传输介质上,并完全或部分重叠时,就发生了数据冲突。当冲突发生时,物理网段上的数据都不再有效。 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。 影响冲突产生的因素:冲突是影响以太网性能的重要因素,由于冲突的存在使得传统的以

15、太网在负载超过40时,效率将明显下降。产生冲突的原因有很多,如同一冲突域中节点的数量越多,产生冲突的可能性就越大。此外,诸如数据分组的长度(以太网的最大帧长度为1518字节)、网络的直径等因素也会影响冲突的产生。因此,当以太网的规模增大时,就必须采取措施来控制冲突的扩散。通常的办法是使用网桥和交换机将网络分段,将一个大的冲突域划分为若干小冲突域。 1.8广播/广播域 广播:在网络传输中,向所有连通的节点发送消息称为广播。 广播域:网络中能接收任何一设备发出的广播帧的所有设备的集合。 广播和广播域的区别:广播网络指网络中所有的节点都可以收到传输的数据帧,不管该帧是否是发给这些节点。非目的节点的主

16、机虽然收到该数据帧但不做处理。 广播是指由广播帧构成的数据流量,这些广播帧以广播地址(地址的每一位都为“1”)为目的地址,告之网络中所有的计算机接收此帧并处理它。 2 RTL8019AS以太网控制器简介2.1 RTL8019AS介绍由台湾Realtek公司生产的RTL8019AS以太网控制器,由于其优良的性能、低兼的价格,使其在市场上10Mbps网卡中占有相当的比例。2.1.1 芯片特性100pin PQFPRTL8019AS 软件兼容支持pnp 自动检方式(RTL8019AS 唯一的)支持以太网II 和IEEE802.3 10Base5,10Base2,10BaseT软件兼容8 位和16 位

17、的NE2000支持jumper 和jumperless 模式支持微软jumper 和jumperless 模式的即插即用配置支持fullduples 以太网到两倍频带宽支持三种平下降方式睡眠模式功率下降有内部时钟运行功率下降有内部时钟停止改善效率的内置数据先取功能支持UTP,AUI 和BNC 自动检测(RTL8019AS 唯一的)支持10BaseT 的自动极性改正支持8 条IRQ 总线支持16 条I/O 基本地址选项和额外I/O 地址输入输出完全解码方式(RTL8019AS 唯一的)支持到BROM 的16k,32k,64k 和16kpage 方式(到256 页有16k 字节/页)支持BROM

18、删除程序后释放内存支持存储器瞬时读写(RTL8019AS 唯一的)16kSRAM(RTL8019AS 唯一的)使用9346(6416bit EEPROM)存储资源配置和ID 参数为了制造便利有规划空白9346 的能力支持可编程输出的4诊断 LED2.1.2 芯片概述RTL8019AS 是高度集成以太网控制器,它能够简单的解答即插即用NE2000兼容适配器,这种适配器具有二重和功率下降特性。通过三电平控制特性,RTL8019AS 是已制的对网络设备GREEN PC 理想的选择。全二重功能能够模拟传播和接收在双绞线到全二重以太网交换机。这个特性不仅强带宽从10 到20MBPS,而且避免了由于以太网

19、频道争夺特性导致的读出多路存取协议的问题。微软公司的即插即用功能能减轻用户较差的营业收入而注意适配器资源,如IRQ,输入输出,和存储器地址等等。然而,为了特殊的应用而得不到即插即用功能的兼容性,RTL8019AS 支持JUMPER 和JUMPERLESS 选项。为了提供完全解决即插即用方案,RTL8019AS 在集成10BASET 收发器,BNC,和AUI 接口之间的自动检测功能。此外,8 条IRQ 总线和16 条基本地址总线为大资源情况下提供了宽松的环境。RTL8019AS 支持16k,32k,和64k 字节BROM 和闪存接口。它仍然提供页面模式功能,这种功能能支持在仅16k 字节内存系统

20、空间下的4M 字节的BROM.此外,BROM 的无用命令被用来释放BROM 内存空间。RTL8019AS 用16k 字节SRAM 设计在单片芯片上,它的设计不仅提供了更多友好的功能,而且节省了SRAM 存储资源。2.2 芯片管脚结构RTL8019AS可提供100脚的PQFP封装(芯片引脚如图2.1所示),其引脚可分为电源及时钟引脚,网络介质接口引脚,自举ROM及初始化EEPROM接口引脚,主处理器接口引脚,输出指示及工作方式配置引脚等. 图2.1 RTL8019AS芯片引脚图示说明2.2.1,管脚描述(1) 电源脚编号名称类型描述6,17,47,57,70,89VDDP+5V14,28,44,

21、52,83,86GNDPGROUND(2) ISA 总线接口管脚编号名称类型描述34AENI地址使能脚,ISA 信号对有效的输入输出命令必须是低电平97-100 ,1-4INT7-0O中断请求总线: 能够分别映射到IRQ15,IRQ12,IRQ10,IRQ5,IRQ4,IRQ3,IRQ2/9.唯一一条线被选择在一个时间里反映中断请求。其他的线都是tri-stated.RTL8019AS 仍然用这些脚座位输入线,从而管理ISA 总线上实际相应的中断线上的状态。结果记录在INTR寄存器中,这个寄存器可用软件用来保护中断冲突。35IOCHRDYO受低电平作用循环等待当前读写指令。96IOCS16BS

22、LOT16根据电源复位,以SLOT16 作为输入信号名称来检测16bit 或者8bit 在使用中。它被连接到一个电位器上(27kw)。在RSTDRV 的下降沿,RTL8019AS 能判断它的状态。如果为高电平,适配器是放置在16bit 槽中,其脚被连接到主机的IOCS16B 脚上,这支脚同样被主板上的300w 电阻拔起。如果是低电平,适配器是放置在8bit 槽中,被27vkw 电阻拔起。通过锁住输入状态,它被转变作为IOCS16B信号,其是一个开放排水沟型输出端,而且在16bit 主机数据转变下为低电平。它被解码为AEN 和SA9-0.29IORBI输入输出读指令端30IOWBI输入输出写指令

23、端33RSTDRVIISA 总线上的高效硬件复位端。少于800ns 的高电平脉冲被忽略。27-18 ,16-15 ,13-17,5SA19-0I地址总线。SA10 用来实现PNP 端口的完全解码,地址为279h 和A79h。在RTL8019AS 中,SA10 未被解码。SA10 以0 作为可提供的接近pnp 端口。87-88 ,90-95 ,43-3SD15-0I/O数据总线31SMEMRBI存储器读命令32SMEMWBI存储器写命令。用来闪存写命令解码(3),存储器接口管脚(包括BROM,EEPROM)76EECSO9346 片选。高电平有效,9346读/写66-69 , 71-74 ,77

24、-82,84-85BA21-14BD7-0OI/OBROM 地址BROM 数据线797877EESKEEDIEEDOOOI9346 串行数据时钟9346 串行数据输入9346 串行数据输出6672-71,69-6785-84,82-8177,7480-7865PNPBS4-0IOS3-0PL1-0IRQS2-0JPIIIIII下列管脚是为了定义跳跃选项。它们在RSTDRV 下降,沿时被锁定,然后它们被用作SRAM 总线。每个被100KW 的内部电阻下拉。因此,当左开而且为高电平当其被10k 电阻上拉时,输入为低。当jplow,TIL8019AS 被强制为即插即用模式下泪各项不需要注意jumpe

25、rless 模式(jplow)1选择BROM 大小和地址,2选择I/O 地址,3选择网络媒体类型,在IN7-0 中选择一个中断当为高电平,将选择jumper模式。当为低, 选择jumperless 模式当RTL8019AS 锁定所有jumper 状态,这些管脚在B ROM 页面模式下直接反映BPAGE 寄存器的容量。在正常方式下,BA16-21 不用,BA14-15 用作BROM 大小BA14BA1516K高高32KSA14高64kSA14SA15(4),媒体接口管脚编号名称类型描述64AUII用来检测在AUI 接口的外部MAU 的使用情况。输入对嵌入的BNC 必须为低电平,对MAU 必须为高

26、。当输入为高电平,RTL8019AS 设置AUI 位为CONFIGO并且驱动LEDBNC 为低电平从而使BNC 禁用。当这支脚未用时,应该接地。54,53CD+,CD-I是从MAU 来的微分输入信号的进位。56,55RX+,RX-I这是AUI 接收端对MAU 接收微分输入信号的进位49,48TX+,TX-O这是一对传输输出的包含微分线性的驱动器,它用来发送满切斯特编码数据到MAU。这些输出是源输出和需要270 欧姆的下拉电阻到地59,58TPIN+TPINI这对IP 输入收到10Mbps 的微分满切斯特编码45,46TPOUT+TPOUTO这是一对进位微分的tp 传输输出。输出满切斯特编码信号

27、有预扭曲性,以防止在双绞线媒体的overcharge因此减少资源紧张。50X1I20Mhz 的晶体或者外部振荡器输入51X2O晶体反馈输出。这个输出是位移的晶体连接方法。它必须是当X1 在受外部振荡器驱动时左开的。(5),LED 输出端口编号名称类型描述60LEDBNCO当RTL8019AS 媒体类型设置为10BASE2 或者自动检测模式并且有炼环测试失败时为高电平。可用来控制对CX MAU 的直流转换能量,而且连接到LED以表明所用媒体类型。61LED0O当LEDS0 位为(在RTL8019AS 第三页CONFIG3register ) 0 , 作为LED_COL. 当LEDS0=1, 作为

28、LED_LINK.62,63LED1,LED2O当LEDS1 位(在RTL8019AS 第三页CONFIG3register)为0,这两个端作为LED_RX 和LED_TX。当LEDS=1,作为LED_CRS 和MCSB。详细见6.5中。2.3 内部结构RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口。内部结构如图1所示。 MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上帧的发送后,再开始此帧的发送

29、。RTL8019接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作16字节的缓冲,以减少对本地DMA请求的频率。2.4 内部RAM地址空间分配RTL8019AS内部有两块RAM区。一块16K字节,地址为0x40000x7fff;一块32字节,地址为0x00000x001f。RAM按页存储,每256字节为一页。一般将RAM的前12页(即0x40000x4bff)存储区作为发送缓冲区;后52页(即0x4c000x7fff)存储区作为接收缓冲区。第0页叫Prom页,只有32字节,地址为0x00000x001f

30、,用于存储以太网物理地址。要接收和发送数据包就必须通过DMA读写RTL8019AS内部的16KB RAM。它实际上是双端口的RAM,是指有两套总线连接到该RAM,一套总线RTL8019AS读或写该RAM,即本地DMA;另一套总线是单片机读或写该RAM,即远程DMA。2.5 I/O地址分配RTL8019AS具有32位输入输出地址,地址偏移量为00H1FH。其中00H0FH共16个地址,为寄存器地址。寄存器分为4页:PAGE0、PAGE1、PAGE2、PAGE3,由RTL8019AS的CR(Command Register命令寄存器)中的PS1、PS0位来决定要访问的页。但与NE2000兼容的寄存

31、器只有前3页,PAGE3是RTL8019AS自己定义的,对于其他兼容NE2000的芯片如DM9008无效。远程DMA地址包括10H17H,都可以用来做远程DMA端口,只要用其中的一个就可以了。复位端口包括18H1FH共8个地址,功能一样,用于RTL8019AS复位 3设计思路及总休设计说明总体设计思路互联网络硬件,软件的迅速发展,使得网络用户呈指数增长,在使用计算机进行网络互联的同时,仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源.在电子设备日趋向网络化的背景下,利用廉价51单片机来控制RTL8019AS实现以太网通讯具有十分重要的意义.正如前所述,

32、网络是基于标准与协议的,以太网尤其强调这二者的重要性.欲实现以太网接口与局域网进行通信,最重要的是利用51单片机作为主处理器,通过软件与硬件设计形成一协议的集合,按TCP/IP网络模型中的每层协议进行对等传输,其具体的通信过程如图3.1所示IPTCP应用程序IPTCP应用程序以太网驱动程序以太网驱动程序以太网以太网3.1对等层协议进行通信框图本设计利用台湾Realtek公司生产物RTL8019以太网控制器,正如在前面对它的详细介绍中提到的它支持IEEE802.3;支持8位或16位数据总线;内置16KB的SRAM,用于收发缓冲;全双工,收发同时达到10Mbps;支持10Base2,10base-

33、T, 10Bas e5,并能自动检测所连接的介质,RTL8019AS还内置了10BASE-T,收发器,所以网络接口的电路比较简单,简化了设计. 本设计实现的以太网与互联网通信的具体工作过程如下 ;当主机欲向网络中上某一节点发送一数据时由应用层产生的数据经过传输层接口传给传输层,在传输层上按TCP协议的报文格式对欲传输的用户数据进行封装,封装好后传给网络层,网络层将数据报按IP协议的IP包格式分成若干段即IP包再传给数据链路层,在这一层将数据流按以太网协议的协议格式划成一个一个小单元即成帧再将帧转换为比特流在物理网中进行实际传输,数据进入协议栈时的封装过程如图3.2所示. 相反地在接收方,当目的

34、主机收到一个以太网数据帧时,数据通信就开始从协议栈中由底层向上传送,同时去掉各层协议加上的报文首部,每层协议孝要去检查报文首部中的协议标识,以确定接收数据的上层协议,即报文每向上传递一层该层的报头就被剥掉,到最高层即对方的应用层接收 到的就上数据通信,这个过程称作分用,图3.3显示了该过程是如何发生的. 用户数据Appl首部TCP首部应用数据TCP首部IP首部用户数据应用数据TCP段IP数据报以太网尾部应用数据TCP首部IP首部以太网首部1420204以太网帧3.2数据进入协议栈时的封装过程以太网驱动程序UDPICMPIPTCP应用程序应用程序应用程序应用程序RARPARP3.3以太网数据的分

35、用过程4 接口电路设计4.1设计原理图下面介绍51系列单片机与RTL8019AS的接口电路,实现的网络接口采用UT(无屏蔽双绞线)RJ-45接口 4.2接口电路的具体说明 图4.1给出了89C52单片机控制RTL8019AS实现以太网通讯的接口电路框图。用到的主要芯片有80C52、RTL8019AS、93C46(6416bit的EEPROM)、74HC573(8位锁存)、62256(32K字节的RAM)。为分配好地址空间,采用对93C46进行读(或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址。93C46是采用4线SPI串行接口的Serial EEPROM,容量为1Kbit

36、(6416bit),主要保存RTL8019AS的配置信息。00H03H的地址空间用于存储RTL8019AS内配置寄存器CONFIG14的上电初始化值;地址04H11H存储网络节点地址即物理地址;地址12H7FH内存储即插即用的配置信息。RTL8019AS通过引脚EECS、EESK、EEDI控制93C46的CS、SK、DI引脚,通过EEDO接收93C46的DO引脚的状态。RTL8019AS复位后读取93C46的内容并设置内部寄存器的值,如果93C46中内容不正确,RTL8019AS就无法正常工作。先通过编程器如ALL07把配置好的数据写入93C46,再焊入电路。对93C46进行数据配置:数据00

37、H写入93C46的地址00H内;93C46地址04H0AH中存放的是物理地址,可以写入设置所需的物理地址值,或不修改,采用原始值为物理地址。通过编程器读出04H0AH的原始值为52544CC59906,即所采用的物理地址。这样,RTL8019AS复位后读取93C46中配置好的内容,对应设置配置寄存器CONFIG1的值为00H,CONFIG1的低4位IOS30用于选择I/O基地址。IOS30设置值均为0时,RTL8019AS选择的端口I/O基地址为300H。RTL8019AS的地址为20位,那么用到RTL8019AS的地址空间为00300H0031FH,用二进制表示00300H0031FH,可以

38、发现第19位到第5位是固定的:000000000011000。RTL8019 AS的20根地址线SA0SA19如表4.2连接。表4.2 RTL8019AS地址线的连接表SA19SA10接地SA9SA8接单片机P2口的P2.7,即地址总线ADDR15SA7SA5接地SA4SA0对应为地址总线的ADDR0ADDR4通过ADDR15、I/OW、I/OR来划分RTL8019AS和62256的地址空间。ADDR15接62256的CE脚,低电平时选择62256;高电平时选择RTL8019AS的地址空间80C52单片机的地址为16位,按图2的电路框图连接RTL8019AS的地址空间。定义reg00reg1f

39、来对应端口00300H0031FH。#define reg00 XBYTE0x8000/*300H*/#define reg01 XBYTE0x8001/*301H*/#define reg1f XBYTE0x801F/*31FH*/读写操作、复位操作对应的引脚按表3连接。表4.3 RTL8019AS的ISA总线接口引脚与单片机的连接表Pin29IORB读信号,接到单片机的WR引脚(P3.6)。Pin30IOWB写信号,接到单片机的RD引脚(P3.7)。Pin33RSTDRVRESET信号,接单片机的T0(P3.4)。Pin34AEN地址有效信号,接地。Pin96IOCS16采用电阻下拉该引脚

40、,复位时刻脚为低电平,选择8位模式。Pin36Pin43SD0SD78位数据总线,接单片机的P0口。(只用到8位数据总线,SD8SD15不接。)采用10BASE-T布线标准通过双绞线进行以太网通讯,而RTL8019AS内置了10BASE-T收发器,所以网络接口的电路比较简单。外接一个隔离LPF滤波器0132,TPIN为接收线,TPOUT为发送线,经隔离后分别与RJ-45接口的RX、TX端相连。时钟电路通过T1、T2接口一个20MHz晶振以及2个电容,实现全双工方式。LED0、LED1各接一发光二极管以反映通讯状态:LED0表示LED_COL,即通讯有冲突;LED1表示LED_RX,即接收到网上

41、的信息包。5 程序设计5.1网络模型及各层协议详介下面将对软件设计所依照的网络模型及每层协议进行详细的介绍5.1.1TCP/IP参考模型在设计采用简化了的TCP/IP参考模型,它是以两个主要协议TCP和IP来命名的.这两个协议是用20多年,早在1060年,美国国防部就进行了ARPQNET网络的研究. TCP/IP参考模型是以它的两个主要的协议TCP 和IP来命名的.TCP/IP通常用一种简化 的四层模型,分为:应用层,传输层,网络层,链路层.1.应用层TCP/IP模型的应用层包括所有的高层协议;,这些高层使用传输层协议接受或发送数据,可以选择单个的数据传输方式,也可以选择连续的数据通信流传输方

42、式,网络应用层要有一个定义清晰的对话过程,如通常所说的文件输协议(FTP);虚拟终端协议2.传输层在TCP/IP模型中,传输层的主要功能是,提供从一个应用程序到另一个应用程序的通信即端到端的会话/.所谓端到端的会话,就是指从源进程发送数据到目的进程.传输层,让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接得端口号等,实现该层协议的传输控制TCP和用户数据报协议UDP。3.互联网络层互联网络层主要处理从一台主机到另一台主机的通信。互联网络层主要处理相邻计算机之间点到点的通信。该层的核心是IP(Internet Protocol)协议,又叫网际协议。IP协议有两点非常重要的特点:一是

43、提供无连接的数据报传输机制,二是提供在同一物理网络中的点到点的通信。IP协议的主要功能是IP数据报传送及其在网间的路由选择即IP路由选择。另外,与IP有关的协议和内容有IP地址、地址解析、差错控制协议和路由选择协议的等。4.网络接口协议 这是TCP/IP参考模型的最底层,这层并没有定义特定的协议,只是指出主机必须使用某种协议与互联网络连接,以便能在其上传递IP分组.由控制同一物理网络上的不同机器间传递的底层协议组成,实现这一层协议并不属于TCP/IP协议组,在本设计中采用以太网协议格式,由RTL8019完成. 5.1.2 网络模型各层工作过程及协议格式说明(一)数据链路层这一层由RTL8019

44、AS以太网控制,主要完成的工作上将来自物理层的比特流组合成帧,即将来自物理网的比特流划分成一个一个的单元,这样做的目的,是为了出错的时候,只将有错的帧重传,而不必将全部的数据通信重发,从而可提高传输效率,同时为网络层提供服务.以太网协议及帧格式在前面已经详细叙述过.(二)互联网络层这一层完成的主要工作是将数据报从源端送到目的端,其工作:传输层从用户处获取数据流将其分割成数据报,交给网络层传送,网络层将其分成更小的单元(称为段)传递,到达目的地后再将段重新组成数据报交给传输层,在这一层本这设计用到的主要的协议是IP协议,其主要功能是完成寻址,数据报的分段,其协议的IP包格式如下图所示I04816

45、192431VERINL服务类型总长度标识DIII段偏移生命期协议头校验和源地址目的地址选项数据图5.2 IP包格式IP包以32比特为一计数年单位,每组分成若干字段分别表示不同的意义(1) VER(版本)记录数据报的协议版本,通过该字段可以在不同版本的协议间传输:(2) IHL(头长度)表示IP包头的长度,取值为5-15,缺省为5(3) 服务类型 其格式为PPPDTR00,其中PPP定义了优先级,D为延迟,T为吞吐量,R为可靠性(4) 总长度 指IP包以字节为单位的总长度:(5) 标识 数据报的编号,当把一个数据报分成 多个段时,属于同一个数据报的多个IP包的字段值相同(6) 生命周期用来限制

46、包的生命周期的计数器,一般以秒为单位,每经过一个节点都递减1,当该字段值减为0时就将其丢弃:(7) 协议 该籽段指明包应该传送给那个传输进程,用编号表示,如TCP为6,UDP为17.设计中在这一层除了用于传送数据的IP协议外,还有一组用于网络控制的协议下面简要介绍一下地址解析协议在因特网上,每一台主机或路由器都有一个IP地址.网络层利用IP地址互相识别与通信.但IP地址是一个逻辑地址,一个IP地址可以分配给这台机器,也可以分配给另一台机器,与机器硬件并没有必然联系,网络层IP包的传送最终是靠数据链路层和物理层实现的在物理层上,每台机器有一个唯一的,固化在硬件中的、硬件能自动识别的地址,该地址称

47、为MAC地址,机器之间最终用MAC地址来识别与区别,通信在MAC地址间进行。当网络层用IP地址传送信息时,这些信息被交给底层,底层需要知道IP地址所代表的机器究竟是谁,在什么地方,这只能通过MAC地址来实现。这样就需要从IP地址找到对应机器的MAC地址,这一过程称为地址解析,ARP(Address Resolution protocol)就完成从IP地址找到MAC地址的协议。完成地址协议解析的方法有多种。最简单、最直接的办法就是,建立一个IP地址与MAC地址的对照表,并将其存放与每台机器上,当需要进行地址解析是就查找该表。每当一台机器需要进行地址解析时,就广播一个消息,其内容是查找给定IP地址

48、的机器的MAC地址,收到该消息的每台计算机根据自己的IP地址确定是否应答该消息,若是被询问听机器,则发送一个应答消息,将自己的MAC地址置于其中,否则不作应答。这样每台机器就只需要记住自身的IP地址,且地址可以动态改变,ARP采用的就是这种方法。ARP的分组格式如 硬件地址长度帧类型 协议地址长度 以太网目的地址以太网源地址硬件类型协议类型OP发送端以太网地址发送端IP地址目的以太网地址目的IP地址以太网首部28字节ARP请求/应答图5.3 ARP分组格式因特网控制报文协议ICMPICMP(Internet control Protocol)是用于监视与检测网络、报告意外件的协议。ICMP将检

49、测的结果封装在IP包中,传送到给定的目的地,以实现对网络的监视ICMP被认为是IP层的一个组成部分,它传递差错报文的格式如图5。4所示0781516318位类型8位代码16位校验和不同的类型和代码有不同的内容5.4 ICMP报文格式(三)传输层设计中在本层完成的功能是将应用层产生的数据经过传输层接口传给传输层,在传输上按TCP协议的报文格式对欲传输的用户数据进行封装,封装好后传给网络层。TCP是专门用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议。由于因特网不同于一个我独立的网络,其各组成网络可能具有不同的拓扑结构、带宽、延迟、包长度,因此TCP必须具有动态适应网络要求的能力。并且足

50、够可靠,TCP接收用户数据,当数据太长时将其分成多个段,然后再进行封装、传送。所以在TCP内部,将传送的单位称为段,其格式如图5.5 第一个16位确认了源端口,第二个16位确认了目的端口。端口的划分 使IP主机之间可用单个的IP地址实现不同类型的并发连接。在绝大多数现代操作系统中,采用32位IP地址和16位端口地址的组合确认一个接口。源接口和目的接口的组合就定义了一个连接。最低的1024个端口是常用的,它们是系统为特定的应用层协议所保留的默认设置。如:默认状态下,HTTP使用端口80。而POP3使用端口110,其它的应用可以使用编号更高的端口在接下来的两个域中,顺序号和确认号是TCP实现可靠连

51、接的关键。当建立一个TCP连接时,发送方主机发出一个随机的初始化顺序号给初始化器,初始化器将勘加1后送回确认域的起始器,这意味着下一个字节可以发送了。一旦数据开始流动,顺序号和确认号将跟踪已发送了那些数据,那些数据已被确认。4位的偏移量代表TCP头部一共有多少个32位的信息。这个信息必不可少的,因为有可选的头部区域。偏移量标识了头部的结束和数据的开始。TCP的设计者保留了接下来的6位,以万一将来要对其进行扩展。随后的6位每个都是标志,若UNG标志位的值1,意味着远在头部紧急指针区域的数据是有效的:一个SYN包有一个有意义的序列号,但它的确认号是无意义的,因为它并不确认任何事件,PSH标志位使数

52、据不必等待接收。RST标志位将断开一个连接。SYN(同步)标志位意味着顺序号是有效的。FIN(结束)标志位将指出发送方已经发完发数据。16位长的窗口区域表示了滑动窗口”的大小,也就是告诉了送方它已经准备好接收多少个字的数据.TCP通过调整窗口的大小来控制数据的流量.一个值为0的窗口意味着通告发送方:如果没有进一步的通知,接收器已满,不能再接收更多的数据了.16位的校验码区域保证了数据的完整性,保护了TCP头部和IP头部的各个区域.发送方计算校验值并把它插入这个区域,接收方根据收到的包重新计算该值并比较二者,如果它们是匹配的,则认为数据是完整无损的,当设置紧急标志位时,紧急指针是一个16位的偏移

53、量,它代表必须加快的最后一个字,选择区域可以容纳0或多个32位字.可扩展TCP性能.当一个包发送时,重发定时器开始计数;当收到确认信号后,重发定时器停止计数.如果超过设定时间段还没有收到确认信号,就重发该包.一个比较棘手的问题是如何设置该时间段,如果太长,当网络传输错误增加时将导致不必要的等待时间;如果太短,就会产生过多的重复包从而降低网络的反应时间,现代TCP协议根据实际情况对重发数据的确认,持续定时器将超过并发送一个探针.探针的回应将指出窗口的大小(也许为0).保持定时器在本端没有任何活动后,将检查在连接的另一端是否还有运行的进程,如果没有任何回应,该定时器将断开连接.在数据重发时,接收过

54、程一直在递送这些重发的数据,这样就使总体的数据传输陷于停顿,直到丢失的数据被取代为止. 源端口 目的端口顺序号确认号头长度URGACRPSHRSTSYNFIN窗口 校验和 紧急指针 头部可选项 数据(可选) 图5.5 TCP协议格式5.2 外设操作数据5.2.1 复位RTL8019AS80C52的P3.4连接RTL8019AS的RESDRV来进行复位操作。RSTDRV为高电平有效,至少需要800ns的宽度。给该引脚旋加一个1s以上的高电平就可以复位。施加一个高电平后,然后施加一个低电平。复位过程将执行一些操作,至少需要2ms的时间,推荐等待更久的时间之后如100ms之后才对它操作,以确保完全复

55、位。5.2.2 初始化RTL8019AS初始化页0与页1的相关寄存器,页2的寄存器是只读的,不可以设置,页3的寄存器不是NE2000兼容的,不用设置。(1)CR=0x21,选择页0的寄存器;(2)TPSR=0x45,发送页的起始页地址,初始化为指向第一个发送缓冲区的页即0x40;(3)PSTART=0x4c,PSTOP=0x80,构造缓冲环:0x4c0x80;(4)BNRY=0x4c,设置指针;(5)RCR=0xcc,设置接收配置寄存器,使用接收缓冲区,仅接收自己地址的数据包(以及广播地址数据包)和多点播送地址包,小于64字节的包丢弃,校验错的数据包不接收;(6)TCR=0xe0,设置发送配置

56、寄存器,启用CRC自动生成和自动校验,工作在正常模式;(7)DCR=0xc8,设置数据配置寄存器,使用FIFO缓存,普通模式,8位数据DMA;(8)IMR=0x00,设置中断屏蔽寄存器,屏蔽所有中断;(9)CR=0x61,选择页1的寄存器;(10)CURR=0x4d,CURR是RTL8019AS写内存的指针,指向当前正在写的页的下一页,初始化时指和0x4c+1=0x4d;(11)设置多址寄存器MAR0MAR5,均设置为0x00;(12)设置网卡地址寄存器PAR0PAR5;(13)CR=0x22,选择页1的寄存器,进入正常工作状态。 5.3 软件设计思想 在软件设计中,通过具体的程序编写完成数据

57、饭收发过程,首先以太网帧的接收流程如图5.6所示,RTL8019AS从物理层收到包后,将消息包写到NE2000寄存器页表,此时将消息指示EA置为0,表示“收到包”.在单片机上,有一个任务不断调用query_8019(void)对NE2000进行监听,当列表的EA为“有消息”,则从对应的页表将消息读出,进行帧的目的地址(DA)是否与本站地址相匹配,如果不匹配,则说明不是发送给本站的而丢弃;接下来进行帧的CRC校验,如果有错则丢弃该帧,再进行帧长度检验,接收到的帧长必须是8BIT的整数倍,否则丢弃,同时,对收到的消息包进行处理,对以太网包头进行分析,通过包类型(switch(eth-frame_t

58、ype))来对以太网包进行处理,如果ARP包即进入arp_rcve(inbuf)对数据进行处理,如果为IP包即进入ip_rcve(inbuf)进行处理,即提交上层处理。 如果收到的IP包,就调用IP层协议栈进行相应的处理,(流程图如图5。9所示),首先判断收到的IP包的目的IP地址是否为本机地址(if(ip-dest_ipaddr !=my_ipaddr )),若不是则返回;若是即进行IP头校验的计算(cksum(inbuf + 14,header_len)!=0XFFFF),进行协议版本的判断,如果校验错误或版本错误就立即返回;在本设计中若只支持IPV4版本,判断该IP包是否拆分的包(if(

59、ip-fragment_info&0X3FFF)!=0)),本设计暂不支持保拆分处理,对非拆分的进行下面的处理,通过上层协议指示(ip-protocol_id)来判断IP包应传送给哪个上层协议,各协议的指示编号已在前面的帧格式的描述中介绍过,如果ICMP_TYPE类型则被传送到icmp_rcve(inbuf,payload_len)进行处理,若为TCP_TYPE类型被传送到tcp_rcve(inbuf,payload_len)进行处理,同样若为UDP_TYPE类型则被传输到udp_rcve(inbuf,payload_len)进行处理,至此,数据包进入 传输层进行处理,其系统的工作流程图如5.8所示数据接收的

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!