《课程设计(论文)基于RTL8019AS的以太网通讯设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于RTL8019AS的以太网通讯设计.doc(18页珍藏版)》请在三一办公上搜索。
1、目 录1 前言12 方案设计32.1 基于RT8219AS的以太网通讯系统32.2 基于AT89818的10M/100M以太网通信系统32.3 方案比较43 单元模块设计53.1 RTL8019AS以太网控制器简介53.1.1 主要性能53.1.2 RTL8019AS内部结构63.1.3 RTL8019AS的内部RAM地址空间分配73.1.4 RTL8019AS的I/O地址分配73.2 接口电路设计73.2.1 变压器20F001N83.2.2 93C46存储器84 程序设计114.1 复位RTL8019AS114.2 初始化RTL8019AS114.3 发送帧124.4 系统主应用程序及TC
2、P/IP协议的实现124.5 程序设计144.5.1 物理层154.5.2 数据链路层154.5.3 ARP协议154.5.4 IP协议154.5.5 运输层164.5.6以太网数据封装165 参考文献17附电路图181 前言目前,以太网已经非常广泛地应用于各种计算机网络,经过20多年的发展,它已成为当今Internet中底层链接不可缺少的部分。同时基于以太网的新技术和联网设备的不断出现,以太网已经成为事实上最常用的网络标准之一。另一方面,嵌入式设备的价格、体积及实时性等方面,在某些应用领域,尤其是网络化开发上有着标准处理器无法比拟的优点4。基于单片机系统的嵌入式开发有着非常广泛的用途,而在网
3、络化开发的过程中,首先要解决的就是与以太网络的连接问题,亦即如何将通用处理器的网络连接装置(以太网络控制器)应用于单片机系统嵌入式网络的开发。以太网是应用最广的联网技术,它以可靠性高、媒体信息量大、易于扩展和更新等优点,在企业、学校等领域得到广泛的应用。根据IEEE802.3 Ethernet标准规范,以太网每段同轴电缆长度不得超过500m,通过中继器互联后,网络最大距离也不得超过2.8km。互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在使用计算机进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。在电子设备日
4、趋网络化的背景下,我们经过设计方案的确定,决定利用廉价的51单片机来控制网卡芯片RTL8019AS进行数据传输,加载TCP/IP协议连接到互联网并实现网络通讯。2 方案设计 以太网通讯在各个领域应用非常的广泛,在这里我主要给出了两中方案以讨论:方案一为基于RTL8019AS的以太网通讯设计;方案二为基于AT89818的10M/100M以太网通讯系统。2.1 基于RT8219AS的以太网通讯系统低通滤波输出单片机处理器外扩程序存储器锁存输出外扩程序存储器以太网控制器图2.1 基于RT8019AS的以太网通讯设计方案本设计方案的主处理器采用51单片机系列的AT89C52。存储部分外扩了一片32K的
5、RAM62256 ,作为数据存储区,另外还外扩了一片输出锁存器74HC573。可向其烧写主控制程序和TCP/IP协议栈。选用Realtek公司的RTL8019AS作为实现TCP/IP协议的物理层。这款网络接口芯片不仅能与应用广泛的NE2000系列兼容而且性能较好,比较稳定。RTL8019AS外接一个变压器20F001N,经RJ45接口输出。2.2 基于AT89818的10M/100M以太网通信系统系统采用AT89818作为核心交换芯片;MCU采用AT89C52,用做控制和系统设置,已经和计算机进行通信连接;EEPROM采用AT93C46,用于储存交换机启动时所需的初始化数据;SRAM采用64K
6、64位的W25P243A;PHY0和PHY1采用8端口的DSP 10/100 PHY;JACK0和JACK1为RJ-45连接器。系统结构如图2.2所示。计算机AT89818MCUEEPROMSRAMPHY0JACK0JACK1PHY1RS485图2.2 基于AT89818的以太网设计图2.3 方案比较本文主要讨论10Mbps的以太网通讯模块设计,其中方案一基于RTL8019AS的以太网通讯模块设计能与应用广泛的NE2000系列兼容而且性能较好,比较稳定。设计中的芯片我们平时都是比较熟悉的,比如AT89C52、74HC573、62256等,并且这些芯片的价格便宜,制作也非常的方便。方案二是一种具
7、有快速以太网交换功能、高性能、低功耗的网络设备。这种嵌入了TCP/IP协议的单片机系统,具有成本低、硬件少、占用面积少、传输速度快、使用方便等优点。适用于现有的网络传输系统,有着广泛的应用前景,特别是数据采集、数据传输领域。目前,在屏幕板数据成像、远程数据采集系统中被使用。结合设计要求,为了设计的可读性和分析性及本身的设计水平,我采用比较熟悉的方案一即基于RTL8019AS的以太网通讯模块设计作为本设计的内容。3 单元模块设计我们给出了89C52单片机控制RTL8019AS实现以太网通讯的接口电路框图。用到的主要芯片有89C52、RTL8019AS、74HC573(8位锁存)、93C46(64
8、16的EEPROM)、62256(32K字节的RAM)。为分配好地址空间,采用对93C46进行读(或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址。单片机的P0(P0.0P0.7)口作为数据线和低八位地址线,P0口经74HC573作为地址锁存后连接27512的低八位地址(A0A7),并且低五位与RTL8019AS的SA0SA4相连,P0口直接作为数据口与27512的八位数据线相连(D0D7)并且与RTL8019AS的SD0SD7相连;单片机的P2(P2.0P2.7)口作为高八位地址线与27512的高七位地址线(A8A15)相连,其中的P2.0P2.6与62256的A8A14
9、相连,62256是一片256K 字节的外部RAM,有15根地址线P2.7与62256的CE相连,作为62256的选中信号。单片机的ALE信号与74HC573相连,作为74HC573的选中信号。在设计中本来62256 的片选是有掉电保护的,因为现场数据采集可能是要历史保存或者实时累加,而且本文中的接口部分不是独立的模块而是嵌入在底层的现场数据采集模块中。93C46的CS、SK、DO、DIQ与RT8019AS的EECS、EESK、EEDO、EEDI相连,RTL8019AS的HD、LD、TPIP+、TPIP-与LPF相连,再通过LPF与RJ45的TX+、TX-、RX+、RX-相连。3.1 RTL80
10、19AS以太网控制器简介 由台湾Realtek公司生产的RTL8019AS以太网控制器,由于其优良的性能、低廉的价格,使其在市场上10Mbps网卡中占有相当的比例。3.1.1 主要性能RTL8019AS 有3 种工作方式:第一种为跳线方式,网卡的I/O和中断由跳线决定第二种为即插即用方式,由软件进行自动配置plug and play第三种为免跳线方式,网卡的I/O和中断由外接的93C46 里的内容决定。RTL8019AS 主要性能:(1)符合Ethernet与IEEE802.3(10Base5、10Base2、10BaseT)标准;(2)全双工,收发可同时达到10Mbps的速率;(3)内置10
11、KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;(4)支持8/16位数据总线,6个中断申请线以及16个I/O基地址选择;(5)支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;(6)允许4个LED引脚可编程输出;(7)100脚的PQFP封装,缩小了PCB尺寸。3.1.2 RTL8019AS内部结构RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC介质访问控制逻辑、数据编码解码逻辑和其他端口。内部结构如图1所示。ISA总线接口即插即用PNP8K16 SRAMMAC逻辑ENA(编码译码)逻辑EEPROM端口Boot RAM端口AUI接口双绞线
12、接口图3.1 RTL8019AS的内部结构远程DMA接口是指单片机对RTL8019AS内部RAM进行读写的总线,即ISA总线的接口部分。单片机收发数据只需对远程DMA操作。本地DMA接口是指RTL8219AS与网线的连接通道,完成控制器与网线的数据交换。MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时, 先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上一帧的发送后,再开始此帧的发送。RTL8019AS接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理
13、器。FIFO逻辑对收发数据作16字节的缓冲,以减少对本地.DMA请求的频率。3.1.3 RTL8019AS的内部RAM地址空间分配RTL8019AS内部有两块RAM区。一块16K字节,地址为#:0x40000x7FFF;一块32字节,地址为:0x00000x001F。RAM按页存储,每256字节为一页。一般将RAM的前12页(即0x40000x4BFF)存储区作为发送缓冲区;后52页(即0x4c000x7FFF)存储区作为接收缓冲区。第0页叫Pram页,只有32字节,地址为0x00000x001F,用于存储以太网物理地址。要接收和发送数据包就必须通过DMA读写RTL8019AS内部的16KB
14、RAM。它实际上是双端口的RAM,是指有两套总线连接到该RAM,一套总线是RTL8019AS读或写该RAM,即本地DMA;另一套总线是单片机读或写该RAM,即远程DMA。3.1.4 RTL8019AS的I/O地址分配RTL8019AS具有32个输入输出地址, 地址偏移量为00H1FH。其中00H0FH共16个地址,为寄存器地址。寄存器分为4页:PAGE0、PAGE1、PAGE2、PAGE3,由RTL8019AS的CR Command Register命令寄存器)中的PS1、PS0位来决定要访问的页。但与NE2000兼容的寄存器只有前3页,PAGE3是RTL8019AS自己定义的,对于其他兼容N
15、E2000的芯片如DM9008无效。远程DMA 地址包括10H17H,都可以用来做远程DMA端口, 只要用其中的一个就可以了。复位端口包括18H1FH 共8个地址,功能一样,用于RTL8019AS复位。3.2 接口电路设计下面介绍51系列单片机与RTL8019AS的接口电路,实现的网络接口采用UTP(无屏蔽双绞线)RJ-45接口。图给出了89C52单片机控制RTL8019AS 实现以太网通讯的接口电路框图。用到的主要芯片有89C52、RTL8019AS、74HC573(8位锁存)、93C46(6416的EEPROM)、62256(32K字节的RAM)。为分配好地址空间,采用对93C46进行读(
16、或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址。3.2.1 变压器20F001N物理接口是和双绞线相连的接口,一般使用的是RJ-45接口,一共可以用8根线,在IEEE的10BASET里面用了1、2线作发送TD和TD,3、6线作接收RD和RD,还有四根没有用。需要注意的是用于网络的物理介质有很多种,这里仅考虑了最常用的双绞线方案。 在这里,一般还要考虑驱动电路的设计和电路的电气隔离等问题。我们采用YCL的20F001N作电气隔离。3.2.2 93C46存储器93C46是采用4线SPI串行接口的Serial EEPROM,容量为1KB(6416bit),主要保存RTL8019
17、AS的配置信息。00H03H的地址空间用于存储RTL8019AS内配置寄存器CONFIG14的上电初始化值;地址04H11H存储网络节点地址即物理地址;地址12H7FH内存储即插即用的配置信息。RTL8019AS通过引脚EECS、EESK、EEDI控制93C46的CS、SK、DI引脚, 通过EEDO接收93C46的DO引脚的状态。RTL8019AS复位后读取93C46的内容并设置内部寄存器的值,如果93C46中内容不正确,RTL8019AS就无法正常工作。先通过编程器如ALL07把配置好的数据写入93C46,再焊入电路。93C46的引脚如图3.1所示。图3.2 93C46引脚图对93C46进行
18、数据配置:数据00H写入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, 用二进制表示00300
19、H0031FH,可以发现第19位到第5位是固定的:0000000000011000B。RTL8019AS的20根地址线SA0SA19如表1连接。表1 RTL8019AS地址线的连接表SA19SA10接地SA9SA8接单片机P2.0口的P2.7,即地址总线ADDR15SA7SA5接地SA4SA0对应为地址总线ADDR0ADDR4通过ADDR15、I/OW、I/OR来划分RTL8019AS和62256的地址空间。ADDR15接62256的CE脚,低电平时选择62256; 高电平时选择RTL8019AS的地址空间。89C52单片机的地址为16位, 按图的电路框图连接地址总线, 在程序里则通过使用80
20、00H801FH来选中RTL8019AS的地址空间。定义reg00reg1F来对应端口00300H0031FH:#define reg00 XBYTE0x8000 /* 300H */#define reg01 XBYTE0x8001 /* 301H */#define reg02 XBYTE0x8002 /* 302H */#define reg03 XBYTE0x8003 /* 303H */#define reg1E XBYTE0x801E /* 31EH */#define reg1F XBYTE0x801F /* 31FH */读写操作、复位操作对应的引脚按表2连接表2 RTL801
21、9AS的ISA总线接口引脚与单片机的连接表Pin29IORB读信号,接到单片机的WR引脚(P3.6)Pin30IOWB写信号,接到单片机的RD引脚(P3.7)Pin33RSTDRVRESTE信号,接到单片机的T0(P3.4)Pin34AEN地址有效信号,接地Pin96IOCS16采用电阻下拉该引脚,复位时该引脚为低电平,轩轾位模式Pin36Pin43SD0SD78位数据总线,接单片机的P0口(只用到8位数据线,SD8SD15不接)采用10BASET布线标准通过双绞线进行以太网通讯,而RTL8019AS内置了10BASET收发器,所以网络接口的电路比较简单。外接一个隔离LPF滤波器0132,TP
22、IN为接收线,TPOUT为发送线, 经隔离后分别与RJ45接口的RX、TX端相连。时钟电路通过T1、T2接一个20MHz晶振以及2个电容,实现全双工方式。LED0、LED1各接一发光二极管以反映通讯状态:LED0表LED_COL,即通讯有冲突;LED1表示LED_RX,即接收到网上的信息包。4 程序设计系统软件设计主要包括两部分内容:一是执行对RTL8019AS等芯片的控制,二是执行与连接以太网相关的功能并实现TCP/IP协议。考虑到所设计的系统软件更容易阅读、更方便移植、更易于开发升级,经过比较我们决定用C语言编写程序及TCP/IP协议栈。RTL8019AS 网络控制芯片的复位及工作参数设置
23、如下:4.1 复位RTL8019AS 89C52的P3.4连接RTL8019AS的RESDRV来进行复位操作。RESDRV为高电平有效, 至少需要800ns的宽度。给该引脚施加一个1s以上的高电平就可以复位。施加一个高电平后,然后施加一个低电平。复位过程将执行一些操作,至少需要2ms的时间,推荐等待更久的时间之后如100ms之后才对它操作,以确保完全复位。4.2 初始化RTL8019ASRTL8019AS 中的寄存器可以以它们的地址和功能大致分为两类,一类是NE2000 用的,一类是PnP用的。包括4个寄存器页面(Page0- Page3),与NE2000兼容的寄存器只有3页(Page0- P
24、age2) ,每个页面包含了16个寄存器。页2的寄存器是只读的,不可以设置,由于本设计中没有使用PnP方式,页3的寄存器不用设置。只用初始化页0与页1的相关寄存器,寄存器页面可以由CR寄存器中的PS0和PS1两个位来选择。(1)CR=0x21,选择页0的寄存器;(2)TPSR=0x45,发送页的起始页地址,初始化为指向第一个发送缓冲区的页即0x40;(3)PSTART=0x4c,PSTOP=0x80,构造缓冲环:构成0x4c0x80;(4)BNRY=0x4c,设置指针;(5)RCR=0xcc, 设置接收配置寄存器, 使用接收缓冲区,仅接收自己地址的数据包(以及广播地址数据包)和多点播送地址包,
25、小于64字节的包丢弃,校验错的数据包不接收;(6)TCR=0xe0,设置发送配置寄存器,启用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的寄存器,进
26、入正常工作状态。4.3 发送帧将待发送的数据按帧格式封装, 通过远程DMA通道送到RTL8019AS中的发送缓存区, 然后发出传送命令,完成帧的发送。需要设置以太网目的地址、以太网源地址、协议类型,再按所设置的协议类型来设置数据段。之后启动远程DMA, 数据写入RYL8019AS的RAM,再启动本地DMA,将数据发到网上。RTL8019AS无法将整个数据包通过DMA通道一次存入FIFO,则在构造一个新的数据包之前必须先等待前一数据包发送完成。为提高发送效率,设计将12页的发送缓存区分为两个6页的发送缓存区,一个用于数据包发送,另一个用于构造新的数据包,交替使用。4.4 系统主应用程序及TCP/
27、IP协议的实现系统初始化后,进入主程序循环 ,包括两部分:一是对要发送的数据按照以太网数据帧的格式进行封装并发送,二是对接受的以太网数据帧进行解包供应用程序使用。以太网的物理传输帧结构如表3:表3:以太网的物理传输帧结构PRSDDASATYPEDATAFCS同步位分隔位目的地址源地址类型字段数据段帧校验序列7166246-15004由上表可见除了数据段的长度不定外,其他部分的长度固定不变。以太网规定整个传输包的最大长度不能超过1514字节(14字节为DA、SA、TYPE),最小不能小于60字节。除去DA、SA、TYPE的14字节,还必须传输46字节的数据,当数据段的数据不足46字节时, 填充位
28、补000000 (当然也可以补其它值);超过1500字节时,需拆成多个帧传送。事实上,发送数据时,PR、SD、PAD、FCS 这几个数据段由以太网控制器自动产生,我们要处理的是DA、SA、TYPE、DATA 四个段;而接收数据时,PR、SD被跳过,控制器一旦检测到有效的前序字段(即PR、SD),就认为接收数据开始。最早的计算机网络APPANET以及现在的Internet网络使用的参考模型是TCP/IP模型,也是实际中应用最广泛的计算机网络模型。在此介绍TCP/IP模型并比较OSI模型如下: 应用应用表示模型中不存在会话传输传输网络互连层数据链路主机至网络物理图4.1 OSI模型(左)TCP/I
29、P模型(右)下面简单的介绍一下TCP/IP模型的各个层。(1)网络接口层(Network interface layer) 在TCP/IP模型中,没有区分物理层和数据链路层,没有真正定义这一部分内容,只是指出必须使用某种协议(比如802系列标准等)与网络互联,以便能在其上传递IP分组,网络接口层有时也叫做链路层,通常包括操作系统中的设备驱动程序和网络接口卡,两者一起处理与特定物理介质进行通讯的细节问题。 (2)互联网层(Internet layer) 互联网层有时也称作网络层,它是整个体系结构的关键部分,处理数据分组在网络中的活动,使主机可以把数据分组发往网络并使分组独立的传向目标。这些分组可
30、能经由不同的路由,而且到达的顺序和发送的顺序可能不同。TCP/IP协议中的互联网层定义了正式的分组格式和协议,即IP协议( Internet Protocol)。 (3)传输层(Transport layer) 在TCP/IP模型中位于互联网层之上的一层,称为传输层。它的功能主要是为两台主机上的应用程序提供端到端的通信。这里定义了两个端到端的通讯协议。第一个协议是传输控制协议TCP(Transmission Control Protocol),它是一个面向连接的协议,提供有序的、无差错的字节流传输,并且还有处理流量控制,以避免快速发送方过快的发送使得低速接收方无法处理数据。第二个协议是用户数据
31、报协议 UDP(User Datagram Protocol),它是一个不可靠、无连接协议,用干一些不需要TCP的排序和流量控制的能力用户数据传输。 (4)应用层(Application layer) TCPIP应用层负责处理特定的应用程序的所有细节,在TCPIP模型里没有会话层和表示层。典型的应用包括虚拟终端协议(TELNET)、文件传输协议(FTP)和简单电子邮件协议SMTP),还有后来发展的域名服务协议(DNS)、网络新闻传输协议(NNTP),用于万维网(WWW)的超文本传输协议HTTP等。4.5 程序设计单片机初始化开 始8019AS复位及开始检查网络状态、进入监听状态是否收到以太网帧
32、有数据输入吗?否否将数据输入缓冲将以太网帧读是是将数据进行封装数据发送子程序数据发送成功?是错误处理否是ARP包?ARP处理子程序是处理数据包否是ICMP包?ICMP处理子程序是是TCP包?丢弃该帧否否是TCP处理子程序图4.2 应用程序流程图主程序通过嵌入TCP/IP协议来实现单片机系统的网络功能。TCP/IP协议是一套把Internet 上的各种系统互连起来的协议族,用来确保Internet上的数据能准确快速的传输。TCP/IP协议由五层组成:物理层、数据链路层、网络层、运输层和应用层。实现TCP/IP协议也采用分层实现的方法。4.5.1 物理层 物理层主要解决的是如何将数字比特符号“1”
33、和“0”表示为物理信号,比如典型问题是用多少伏的电压表示“1”,多少伏的电压表示“0”;一个比特持续多少时间;该层的传输是否在两个方向上同时进行;如何建立连接和如何断开连接;网络接线有多少根以及各线各作什么用途等等。这里主要处理一些机械的、电气的和过程接口等问题。 4.5.2 数据链路层数据链路层的主要任务是对物理层的比特传输进行控制,使得它对于网络层呈现为一条无差错的比特通讯线路。发送方把从网络层来的数据分装在数据帧里(典型的为几百或几千字节),按顺序发送各个帧,并处理接收方回送的确认帧(acknowledgement frame). 物理层仅负责发送和接收比特流,并不关心它的实际意义和结构
34、,而这些都有数据链路层完成,包括通讯地址的识别、通道的检测、冲突的检测、数据分解和组装、数据的校验等等。另外,数据链路层还要解决的问题有帧的破坏、丢失和重复的问题,向网络层提供各类不同质量的传送,控制传输的流量,避免高速发送方的数据把低速接收方“淹没”等等。4.5.3 ARP协议ARP是解析地址协议,用来将IP地址与物理地址的联系起来并相互转换。因为IP 地址只是主机在抽象网络层中地址,是不能直接用来通信的,在实际网络的链路上传输数据帧时必须转变成MAC 帧,所以最终还要使用硬件物理地址。4.5.4 IP协议 TCP/ IP的核心部分就是网络层,它主要由IP协议和ICMP两个协议组成。而IP协
35、议是TCP/IP协议族中最为核心的协议。(1)IP协议IP 协议有三个重要功能:第一是分配IP地址和到达目的主机的包发送功能;第二是IP包的分割处理功能;第三是重新构筑处理功能。在网络层IP协议中,IP地址用于连接到计算机网络的所有计算机中,对通信的接受端进行识别。在连接到Internet 所有的主机和路由器中都设定有IP地址,而IP地址具有将一个个的数据链路层的性质抽象出来的功能。其中路由控制是IP协议中最重要的功能之一。通过路由控制功能,可以确定包的发送信道并将数据包准确地发送到具有IP地址的主机的接收端。具体在IP协议中,使用了逐段的路由控制方法。(2)ICMP协议ICMP是因特网控制报
36、文协议,用来将数据报出现的问题以发送通知的方式反馈给发送器,是主机和网关使用的一个机制。IP是一种无连接型的网络层协议,在IP 协议中,当数据链路发生了故障而造成包不能到达的时候,使用ICMP协议能够通知发送端发生了故障,所以ICMP是对IP协议进行辅助的协议。4.5.5 运输层在TCP/IP协议中,实现传输层功能的、有代表性的两个协议就是TCP协议和UDP协议。在这个以太网的通信设计中,只用到了TCP协议。TCP协议式一个面向连接的、具有可靠性的数据流型协议。使用TCP 协议发送数据,则按照发送的顺序能够到达对方的应用程序,但是,事先并不能够知道所发送的数据到底有多少能够到达对方。为了提高可
37、靠性,在TCP协议中,需要进行顺序控制和重发控制。此外还具有flow控制、拥塞回避控制以及提高计算机网络效率的方法等。4.5.6以太网数据封装401500数据以太网数据封装形式如图3.4所示前序目的地址源地址类型数据CRC0800IP数据分组0806ARP请求/应答8053PADRARP请求/应答PAD图4.3 以太网数据封装以太网数据帧首先是8字节的前序。前序每个字节的值是固定的值为10101010。接着目的地址字段和源地址字段分别为源端和目的端的6字节(48比特)以太网物理地址。以太网数据帧类型字段由2个字节组成,分为三个类型:IP数据分组(0800)、ARP请求/应答(0806)和 RA
38、RP请求/应答(8035)。类型字段后是数据字段,数据字段最小46字节,为保证这一点,必须在不足的空间插入填充PAD字节。最后是4个字节的循环冗余校验和CRC(Cyclic Redundancy Check)字段。5 参考文献1胡大可等.基于单片机8051的嵌入式开发指南M1 北京:电子工业出版社,2003年;2张毅钢等.MCS251单片机应用设计M1 哈尔滨;哈尔滨工业大学出版社,2002年;3马忠梅等. 单片机的C 语言应用程序设计M1 北京:北京航天大学出版社,200114赫尔德吉尔伯特.以太网(第三版).北京;人民邮电出版社,2000年;5 新时代工作室。 网络和通信教程。 北京;中国电力出版社,2000年;6 美Behrouz A. Forouzan & Sophia Chung FeganTCP/ IP 协议族M1 北京;清华大学出版社,2003年;7RTL8019AS用户手册REALTEK 半导体公司,2000年;8丁华成,耿德根,李君凯AVR单片机应用设计M北京航空航天大学出版社,2002;9胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,1996;10王廷绕编著.以太网技术及应用.北京;人民邮电出版社,2005年。附电路图