版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、黑龙江*毕 业 论 文 (设 计)题目:单片机的以太网接入设计学生姓名赫东学 号084专 业电子信息工程班 级2008级2班指导教师王 琢学 部计算机科学与电气工程答辩日期2012年5月19日黑龙江东方学院本科生毕业论文(设计)任务书姓名赫东学号0专业班级电子信息工程08级2班毕业论文(设计)题目:单片机的以太网接入设计毕业论文(设计)的立题依据 随着以太网控制芯片的性价比的提高,利用专用的芯片完成单片机与网关之间的协议转换成为单片机应用系统接入Internet网络的一大研究热点。因此,除了传统的便携、低功耗等性能,网络接入能力正逐渐成为嵌入式系统所关注的重点。主要内容及要求 本论文内容包括绪
2、论、单片机接入以太网络的最小系统、TCP/IP协议栈、硬件电路设计、软件设计实现以及结论。本论文要求详细地阐述单片机以太网的接入设计开发过程。进度安排12月12日选题12月13日12月29日接受指导老师的指导12月30 日1 月17日拟定论文大纲1 月18日2 月26日搜集、查阅、整理相关资料2 月27日3 月27日初稿形成3 月28日4 月8 日初稿审定4 月9 日4 月17日第一次修改4 月18日4 月22日第一次审定4 月23日5 月3 日第二次修改5 月4 日5 月9 日定稿5 月10 日5 月18日论文评阅小组评审论文(设计)5 月19日毕业论文(设计)答辩学生签字:指导教师签字:年
3、 月 日黑龙江东方学院本科毕业论文(设计)单片机的以太网接入设计摘要资随着互联网的日益普及,TCP/IP协议族已经成为因特网上事实的通信标准。与此同时,无论是在家中、办公室或者其他地方,都能方便地连接到网络上。接入因特网的便捷性大大增加,而成本却越来越低,如果能实现“每一设备都接入因特网”,则可方便、低廉地将信息传送到几乎任何一地,实现全球化信息。因此,除了传统的便携、低功耗等性能,网络接入能力正逐渐成为嵌入式系统所关注的重点。本设计介绍了一种基于单片机的以太网接入设计,单片机接入以太网的最小系统构成,以及以太网控制器RTL8019AS的工作原理。主要提出了将精简TCP/IP协议栈嵌入单片机系
4、统中,通过RTL8019AS实现了UDP数据在以太网数据传输的方案。设计中给出系统硬件原理图和有关实现TCP/IP协议的转换和程序代码,对系统的软、硬件设计做出了阐述,并给出了设计实验结果。结果表明这种通过软件嵌入TCP/IP协议的单片机系统,具有成本低、硬件少、传输速度快、使用方便等优点,特别适用于现有的网络传输系统,在数据采集、数据传输等领域有广泛的应用前景。关键词:单片机;TCP/IP协议;以太网控制器;以太网数据关键词与摘要内容隔行书写,词条用小四号宋体字,词条间用分号(;)隔开,3-5个关键词The Design of Ethernet Access Based on MCUAbst
5、ractWith the increasing popularity of Internet, TCP / IP protocol suite has become the fact that the Internet communications standards. At the same time, whether at home, office or elsewhere, you can easily connect to the Internet. The convenience of Internet access is greatly increased, and costs a
6、re getting lower and lower, if they can achieve "Each device access Internet ", can be convenient, inexpensive way to transmit the information to almost any one place, globalization of information. Therefore, in addition to the traditional portable, low power consumption, such as performan
7、ce, network access ability which is increasingly becoming the focus of embedded system. This design introduces a design based on MCU Ethernet access, Ethernet access to the smallest single chip system structure, and the Ethernet controller RTL8019AS works. Mainly proposed to streamline the TCP / IP
8、protocol stack embedded microcontroller system is achieved through the RTL8019AS UDP data in the Ethernet data transmission. Given system hardware design schematics and the realization of TCP / IP protocol conversion, and program code, hardware and software designed to make the system are described,
9、 and gives the design results. The results show that the software embedded TCP / IP protocol of the SCM system with low cost, less hardware, transmission speed, ease of use, especially for the existing network transmission system, data acquisition, data transmission and other areas wide range of app
10、lications.Keywords: MCU ;TCP/IP Protocol ; Ethernet Controller ; Ethernet Data千万不要删除行尾的分节符,此行不会被打印。(在word菜单-工具-选项-视图标签中,格式标记部分请全部打对号,这样就可以看到隐藏的分节符和空格等信息了)-II-目录摘要IAbstractII第1章 绪论11.1 研究目的和意义11.2 国内外研究状况2第2章 单片机接入以太网的最小系统52.1 单片机的基本结构52.2 以太网控制器的选择及工作原理62.2.1 以太网控制器的选择62.2.2 RTL8019AS控制器的介绍72.2.3 RT
11、L8019AS的工作原理72.3 TCP/IP协议栈92.3.1 TCP/IP协议的分层结构92.3.2 TCP/IP协议数据的处理112.3.3 相关协议报文的格式122.4 本章小结15第3章 硬件电路设计163.1 单片机系统扩展电路163.2RTL8019AS和单片机的接口电路173.2 本章小结19第4章 软件设计204.1 串行口控制程序的设计204.2 RTL8019AS控制程序的设计214.3 精简TCP/IP协议栈的现实意义及其工作流程244.4 以太网串行口数据转换模块工作实例274.5 本章小结30结论31参考文献32附录34致谢39千万不要删除行尾的分节符,此行不会被打
12、印。在目录上点右键“更新域”,然后“更新整个目录”黑龙江东方学院本科毕业论文(设计)单片机的以太网接入设计第1章 绪论1.1 研究目的和意义随着Internet技术的普及,信息共享的程度越来越高,人类进入了所谓的后PC时代,后PC时代的标志是嵌入式技术(Embedded Technology)1。嵌入式系统(Embedded Technology)将是继PC和Internet之后的又一起世界高新技术发展大潮。嵌入式技术的飞速发展,将为人们对各种客户终端设备的灵活、高效和高性价比的需要,提供良好的解决方案2。单片机(Micro Controller Unit)之所以又称嵌入式微控制器,原因在于它
13、可以嵌入到任何微型或小型仪器或设备中,而且在体积、价位、可靠性等方面具有微型计算机无法比拟与抗衡的优点。单片机嵌入式系统已经广泛用于社会各个方面:军用 各种军用电子装备,雷达、电子对抗军事通信装备,野战指挥作战用各种专用设备等。家用 各种信息家电产品,广泛采用微处理器微控制器及嵌入式软件,如数字电视机、机顶盒,数码相机,可视电话等。工业用 各种智能测量仪表、数控装置、可编程控制器、控制机、分布式控制系统、现场总线仪表及控制系统、工业机器人、机电一体化机械设备、汽车电子设备等。商用 广泛采用微处理器、控制器芯片级、标准总线的模板级及系统嵌入式计算机。各类收款机、POS系统、电子秤、条形码阅读机、
14、商用终端、银行点钞机、IC卡输入设备、取款机等。医用电子设备 各种医疗电子仪器,如X光机、超声诊断仪、计算机断层成像系统、心脏起博器、监护仪、诊断系统等。办公用 复印机、打印机、传真机、扫描仪、激光照排系统、安全监控设备、手机、寻呼机、个人数字助理(PDA)、通信终端、程控交换机、网络设备、数字音频广播系统等。单片机应用系统和Internet网络连接已是一种趋势:单片机或微控制器已经在家庭和工业等各个领域得到了非常广泛的应用,然而就目前来看,大多数嵌入式系统还处于单独应用的阶段,以MCU为核心,与一些监测、伺服、指示设备配合实现一定的功能。Internet 现已成为社会重要的基础信息设施之一,
15、是信息流通的重要渠道,如果单片机应用系统能够连接到Internet上,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。并可以实现远程控制,特别在远程教育、远程测控等领域有广阔的市场3。对于我国国内情况来说:目前,PC 机的架构为Wintel 所控制、垄断,即由Intel的CPU+微软的Windows 主宰了产业。在该领域,我们没有主动权,没有创新空间,无能为力,充其量只是组装机和搞计算机系统集成等,自己的软件产品和出口软件很少,中国软件企业规模太小。专家估计,1020年内难以突破。单片机嵌入式系统需求千变万化,没有统一的架构,软硬件需要各种各样的组合,技术密集,市场容量大,我们有无限的
16、创新空间。主要是:计算环境从PC为中心转变为以网络为中心,涌现了各种新的信息设备(IA),不必与PC 兼容;应用软件逐步从PC 移到网上,不必与Windows 兼容;可裁减,良好的性能价格比4。因此,深入研究8位或16位单片机嵌入式系统接入Internet的问题,是一个巨大的商机与挑战。嵌入式技术将为我国信息化腾飞增添重要推动力,当然也会促进教育现代化的飞速发展。1.2 国内外研究状况以单片机为核心的电子设备实现网络化的关键是电子设备本身增加TCP/IP协议,目前的解决方案主要可以分为四大类。(1)直接在电子设备上实现TCP/IP:此方案的实质是由MCU内部固化TCP/IP协议的芯片,组成应用
17、系统的核心。此方案中,单片机应用系统可以直接拨号上网,硬件电路相对简单,也不需要其它中间环节的支持。但由于单片机使用了TCP/IP协议芯片,因此需要大容量的程序存储器,而且要求MCU有较高的运行速度5。应用系统的设计工程师还必须熟悉TCP/IP协议和相关的接口地址,软件设计复杂,工作量大,另外,每一个电子设备必须申请一个IP地址。用此方案实现的典型代表有Scenix Semiconductor 公司的SX-stack、Seiko公司的S7600A芯片、Wind River Sys公司开发的VXWORKS及PSOS操作系统、美国Ubicom公司的IP2022芯片等。(2)利用公用的TCP/IP协
18、议转换器接入Internet:此需加载TCP/IP协议到单片机中,此方案的基本思路是:远程控制端首先通过路由器寻找目标,在通过网卡的ISA接口传入单片机。然后单片机中加载的驱动程序将之转换成为物理帧格式。最后由TCP/IP协议将之转化为应用层控制命令,这种方案是在单片机添加了TCP/IP协议,数据通过TCP/IP协议栈的转换,然后由单片机控制网卡交换数据6。(3)利用网关在网络中桥接代理协议栈和TCP/IP协议栈:举一个简单的例子:一个通过互联网控制的仪表,它和控制它的服务器之间只需要交换很少量的几个字节的数据,不需要功能完整的TCP/IP协议去管理只有几个字节的数据。网关完全可以担当翻译转换
19、的业务,将代理协议提供的数据转换成TCP/IP需要的数据,或将TCP/IP发送的数据转换后提供给代理协议8。(4)局域网接入Internet解决方案:将嵌入式电子设备通过专用的现场协议(如RS232、RS485、CAN总线协议)连接起在一起,然后与一台专门用来做网关的PC连接起来,通过PC与Internet连接7。例如,组建网络家庭,首先是家庭内部组网,自成体系,继而又与互联网相连,将家庭环境与外界沟通。家庭局域网是一个组建家庭信息网络的核心,也将是一座沟通计算机与家电之间联系的桥梁,家用电脑、传真、打印机、扫描仪、数字相机、可视电话、微波炉、冰箱、空调等都是连接到家庭局域网的基本元素。家庭网
20、络带来的好处是家庭资源合理利用并搭建家庭办公(Small Office Home Office)所需的环境。在未来家庭,越来越多的成员会选择家庭办公,越来越多的公司将安排它们的员工家庭办公9。随着以太网控制芯片的性价比的提高,利用专用的芯片完成单片机与网关之间的协议转换成为单片机应用系统接入Internet网络的一大研究热点。本设计将在单片机上嵌入TCP/IP协议以达到以太网接接入的目的。即将TCP/IP协议以软件方式嵌入到嵌入系统的ROM中,但由于协议栈较庞大,因此要精简TCP/IP协议,实现与需求相关的部分,大幅度减少对系统资源的需求。本设计采用了软件方式,使用高性能51系列MCU,成本低
21、、技术成熟,软硬件开发周期短,并且设计方案灵活多变,可合用不同的对象,值得深入探究设计。第2章 单片机接入以太网的最小系统2.1 单片机的基本结构 一个单片机以太网接入系统的最小系统构成包括单片机(MCU)、以太网控制器和驱动程序10。其系统结构如图2-1所示。下面从单片机基本机构、以太网控制器的选择及工作原理进行说明。图2-1 单片机以太网接入的最小系统构成MCS-51系列的CPU由运算器和控制器两部分组成。图2-2所示51系列单片机基本组成。 图2-2 MCS-51单片机的内部结构框图(1)运算器。用于实现算术和逻辑运算,包括图中所示的算术和逻辑单元(ALU)、累加器(ACC)、程序状态字
22、(PSW)、寄存器B、及暂存器1和暂存器2等。(2)控制器。是控制单片机程序运行和协调各部件正常工作的“指挥中心”,包括图中所示的PC(程序计数器)、PC+1计数器、指令寄存器、指令译码器和时序及控制电路等。(3)内部数据存储器。如图内部数据存储器有128字节或256字节 的RAM和RAM地址寄存器等构成。(4)内部程序存储器。8051内部有4K字节的ROM单元,用于存放程序和程序中的常量数据,简称“内部ROM”。目前内部ROM的种类基本上有掩膜ROM、OTP(一次性可编程)类型的ROM、EEPROM、Flash等几种。(5)并行I/O端口。MCS-51单片机提供了4个8位I/O端口,分别命名
23、为P0、P1、P2和P3,这些端口既可以按字节一次输入或输出8位数据,同时它们的每一位都可以独立运行输入或输出操作。在系统需要扩展外部ROM或RAM时,P0口可复用为地址总线低8位和数据总线,P2口作为地址总线高8位。P3口的各位还可以复用为中断输入引脚、读写控制引脚、计数器输入引脚以及串行口等。(6)定时器/计数器。MCS-51内部有两个16位的定时器/计数器,用于实现定时和计数功能。(7)串行通信接口。MCS-51内部有一个全双工的UART(通用串行收发器),可以和其他UART通信,实现数据的串行传送。(8)中断控制系统。MCS-51内部提供了5个中断源,可分为两个优先级进行中断处理。(9
24、)时钟电路。图2-2中的OSC为MCS-51内部的时钟电路,外接石英晶体或输入一定频率的脉冲即可产生时钟脉冲序列,控制CPU内部逻辑电路的运行1113。2.2 以太网控制器的选择及工作原理2.2.1 以太网控制器的选择以太网的物理介质有多种标准,主要以10Base-T为例,讨论单片机与IEEE802.3/802.2局域网的连接方式。到目前为止,几乎所有的计算机系统都是通过专用的以太网控制器接入以太网的。对于单片机系统,在选择以太网控制器时,要考虑一下几个因素:首先,要求所选的以太网控制器必须支持8位工作模式。实际上,只有部分基于ISA总线的以太网控制器才能满足此条件,所以基于PCI总线的不在此
25、考虑之列。其次,要考虑以太网控制器的片上缓存,最好选用具有足够片上缓存的以太网控制器以简化系统设计。再次,应考虑以太网控制器与主机的数据交换形式,如有的可支持中断或只可支持查询,这势必对系统设计产生一定的影响。最后,考虑其是否与NE2000兼容。根据上述分析,我们可以选择采用台湾Realtek公司生产的10M以太网接口芯片RTL8019AS。2.2.2 RTL8019AS控制器的介绍RTL8019AS是为了配合PC系统的ISA总线而设计的一款兼容NE2000的网络接口的10M全双工以太网控制器,性能优良,价格低廉,在10M网卡市场上曾有极高的占有率。虽然10M的以太网接入速率显得“很慢”,但是
26、对于处理速度和运算能力都较弱的单片机而言,以这样的速率接入网络还是非常不错的14。RTL8019AS的特点主要包括如下几个方面。(1) 符合Ethernet与IEEE802.3标准。(2) 全双工,收发可同时达到10Mb/s的速率。(3) 支持即插即用(PnP),用于计算机网卡时可减少系统配置的工作量。(4) 内置16KB的SRAM,用于收发缓冲,降低 对主处理器的速度要求。(5) 支持8/16位数据总线,具有8个中断申请以及16个I/O基地址选择。(6) 支持UTP、AUI和BNC自动检测,还支持对10BasT拓扑结构的自动极性纠正。(7) 允许4个诊断LED引脚可编程输出。100引脚的PQ
27、FP封装,缩小了PCB尺寸。2.2.3 RTL8019AS的工作原理(1)RTL8019AS的内部结构RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、线路数据编码解码逻辑和其他端口。内部结构如图2-3所示。远程DMA接口是指RT8019AS提供给主控CPU对其内部RAM进行读写的总线接口。因为RTL8019AS是为了配合PC系统的ISA总线设计的,因此远程DMA接口指的就是符合ISA总线接口规范要求的三总线系统。单片机在控制RTL8019AS收发数据时只需提供符合ISA总线接口操作时序的总线信号就可对远程DMA操作。本地DMA接口指的是RTL8019AS
28、与物理层数据的连接通道,完成控制器与传输介质之间的数据格式转换及传输。MAC介质访问控制逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道传送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上帧的发送后,再次开始此帧的发送。RTL8019AS接收到的数据通过MAC比较、CRC校验后,由FIFO存到接受缓冲区;收满一帧后,以中断或寄存器标志的方式通知CPU。FIFO逻辑控制对收发数据的缓冲,以减少对本地DMA请求的频率。本地DMA的操作优先级要高于远程DMA,RTL8019AS或会通过IOCHRDY信号申请延时。不过对于单片机这样总线操作速
29、率远低于网络数据字节接收速率的CPU而言,不用关心总线延时的问题。图2-3 RTL8019AS的内部结构(2)RTL8019AS内部RAM地址空间分配RTL8019AS内部有两块RAM区:一块16字节,为数据缓冲RAM。地址为0x40000x7FFF;一块32字节,为配置寄存器区,地址为0x00000x001F。数据缓冲RAM按页存储,每256字节为一页,共有64页。一般将数据缓冲RAM的前12页(即0x40000x4BFF)作为发送缓冲区;后52页(即0x4C000x7FFF)存储区作为接收缓冲区。它实际上是一个双端口的RAM,有两套总线连接到该RAM,一套是RTL8019AS读/写该RAM
30、的总线,即本地DMA;另一套是外部CPU单片机读/写该RAM的总线,即远程DMA。单片机要接收和发送数据报就必须通过远程DMA接口读/写RTL8019AS内部16KB的数据缓冲RAM。(3)RTL8019AS的I/O地址及寄存器地址分配RTL8019AS共有32位I/O地址,地址偏移量为0x000x1F。其中0x000x0F共16个地址,对应RTL8019AS内部的16个寄存器。RTL8019AS内部寄存器共4页,编号分别为PAGE0、PAGE1、PAGE2、PAGE3,每页都有16个寄存器,它们的编址都是0x000x1F,由RTL8019AS的CR中的PS1、PS0位来决定要访问的页,但与N
31、E2000兼容的寄存器只有前3页。远程DMA地址共8个,从0x100x17,功能相同,都可以用来做远程DMA端口。实际上使用时只要读写其中的一个就可操作RTL8019AS内部的数据缓冲RAM。复位端口包括18H1FH共8个地址,功能一样,用于RTL8019AS复位。2.3 TCP/IP协议栈2.3.1 TCP/IP协议的分层结构网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议组件,例如TCP/IP,是一组不同层次上的多个协议的组合15。如图2-4所示,图2-4中同时列出了各层主要的协议名称。图2-4 TCP/IP协议的分层结构(1)链路层。也称作数据链路层或网络接口层,通
32、常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与传输媒体(如电缆、光纤或其它任何传输媒介)的物理接口细节。(2)网络层。也称作互连网层,处理分组在网络中的活动,例如分组的路由选择。在TCP/IP协议组件中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet控制报文协议)以及IGMP协议(Internet组管理协议)。(3)运输层。主要为两台主机上的应用程序提供端到端的通信。有两个互不相同的传输协议:TCP传输控制协议和UDP用户数据报协议。前者为两个主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收
33、到的分组,设置发送最后确认分组的超时时钟等,由于运输层提供了高可靠行的端到端通信,因此应用层可以忽略所有这些细节;后者则为应用层提供了一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,并不保证该数据能到达另一端。数据传输的可靠性必须由应用层保证。(4)应用层。其负责处理特定的应用程序细节。TCP/IP协议栈的实现一般都会提供一些通用的应用程序,例如Telnet远程登录、FTP文件传输协议、SMTP简单邮件传输协议和SNMP简单网络管理协议等16。在TCP/IP协议组件中,网络层IP提供的是一种不可靠的服务,它只是尽可能快地把源端送到目的端,但是并不是提供任何可靠性服务。但
34、是,TCP在不可靠的IP层上提供了一个可靠的运输层。为了提供这样可靠的服务,TCP采用了超时重发、发送方和接收方进行端到端的分组确认等机制,由此可见,网络层和运输层分别负责不同功能的实现。虽然TCP使用不可靠的IP服务,但它却提供可靠的运输服务,这些应用通常都是用户进程。UDP为应用程序发送和接收数据报。一个数据报是指从发送方 传输到接收方的一个信息单元,但是与TCP不同的是UDP是不可靠的,它不能保证数据能安全无误地到达最终目的地17。IP是网络层的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在因特网中进行传输。ICMP是IP协议的附属协
35、议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管ICMP主要被IP使用,但应用程序也有可能访问。常用的诊断工具Ping和Traceroute使用的就是ICMP协议。IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。ARP地址解析协议和RARP反向地址解析协议某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址18。2.3.2 TCP/IP协议数据的处理(1)封装(Encapsulation)当应用程序用TCP传送数据时,数据被送入协议栈中然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加
36、一些首部或尾部信息用于标记或控制,如图所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP Segment)。IP传给网络接口层的数据单元称作IP数据报(IP Datagram)。通过以太网传输的比特流称作帧(Frame)19。图2-5中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。以太网数据帧的物理特性要求其长度必须在461500字节之间。UDP数据与TCP数据基本一致。唯一不同的是UDP传给IP的信息单元称作UDP数据报,而且UDP的首部长为8字节。由于UDP、TCP、ICMP和IGMP都要向IP传送数据,所以IP层必须在生成的IP首部加入某种标识,以表明数据属
37、于哪一层。为此IP在首部中加入1字节的数据,成为协议域。0x01表示为ICMP协议,0x02表示为IGMP协议,0x06表示为TCP协议,0x11表示为UDP协议。运输层协议在成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16位的被称为端口号得二进制数来表示该数据报所属的应用程序。发送方和接收方都有端口号,以此来表示发送数据报和接受数据报的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。网络接口分别要发送和接受IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16位的帧类型域。图
38、2-5 数据进入协议栈的封装过程(2)分用(Demultiplexing)当目的主机接收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议都要检查报文首部中由对方上层协议加入的协议标识,以确认将接收到数据送给哪个上层协议处理程序,这个过程称为分用。2.3.3 相关协议报文的格式(1)以太网帧格式以太网是当今TCP/IP网络采用的主要局域网技术,采用了CSMA/CD(载波侦听多路介入/冲入检测)的媒体介入方法,每个通信节点物理接口的地址由48位二进制数表示。在TCP/IP协议中,以太网IP数据报的封装是在RFC894中定义的。所有的数据位的传输都以字节
39、为单位,由低位开始,传输的位流采用曼切斯特编码,以太网的冲突检测及重发策略都是有硬件自动完成的20。如图2-6显示了以太网数据报的封装格式。图2-6 以太网数据报的封装格式(2)ARP报文格式地址解析协议报文格式如图2-7所示。ARP协议的功能是实现用户IP地址和以太网接口的MAC地址之间的转换。操作码字段指出4种操作,对于ARP请求该字段值为0x0001,ARP应答该字段值为0x0002,RARP请求值为0x0003,RARP应答其值为0x0004.对于一个ARP请求来说,除目的端口硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端IP地址等于本机IP地址的ARP请求报文后,它就把硬
40、件地址填进去,然后用目的端IP地址和MAC地址分别替换发送端IP地址和MAC地址,并把操作字段置为0x0002,表明是应答报文,最后把它发送回去21。图2-7 ARP报文格式(3)IP报文格式IP(网际协议)数据报的格式如图2-8所示。不含选项字段的IP首部为20字节。每一份IP数据报都包含32位的源IP地址和目的IP地址。最后一个字段是任选项,是数据报中一个可变长的可选信息。由于这些选项很少被使用,且并非所有的主机和路由器都支持这些选项,因此在本设计中不支持任何选项。选项的字段总是以32位作为界限,在必要的时候插入值为0的填充字节。这样就保证了IP首部始终是32位的整数倍(这是首部字段所要求
41、的)。图2-8 IP协议数据报封装格式(4)ICMP报文格式ICMP协议是为让Internet中的路由器报告错误或者提供有关以外情况的信息而设计的,放在IP数据报的数据负载中传输。ICMP报文的最终目的地是接收方的IP模块。如果ICMP认定某个高层协议或应用程序已经产生了问题,就会通知相应的模块,但是ICMP并没有全部指定对每个可能差错所采取的措施。如下图2-9即其报文格式: 图2-9 ICMP协议数据报封装格式(5)UDP报文格式UDP(用户数据报)是一个简单的面向应用的运输层协议。在TCP/IP协议族中,UDP提供在应用程序之间传送数据报的基本机制。每个UDP数据报不仅传送用户数据,还包括
42、发送方和接收方的协议端口号,这使得接收方的协议栈能够根据端口号把报文送到正确的接收进程,而接收也能会送应答报文22。UDP使用底层的IP协议来传送报文,提供和IP一样的不可靠无连接的数据报传输服务。UDP数据报可能会出现丢失、重复和乱序现象,而且分组到达的速率可能大于接收进程处理的速率。因此,使用UDP协议的应用程序要承担可靠性方面的处理工作,包括报文的丢失、重复、时延、乱序以及连接失效等问题。本设计中使用的UDP数据报格式如图2-10所示。图2-10 UDP协议首部格式在MCS-51系列单片机中,上述所有报文格式的数据都是按照大端(Big-Endian)模式组织和存储的。在具体的编程中,上述
43、各报文格式是通过定义相应的结构实现的。2.4 本章小结第二章主要讲了以太网控制器的选择及工作原理。详细介绍了RTL8019AS的特点和RTL8019AS的工作原理最后还介绍了相关协议报文的格式。注意:除第一章绪论外,其他每一章都应该有一个本章小结第3章 硬件电路设计3.1 单片机系统扩展电路以太网串行口数据转换模块的硬件电路图主要有两个部分:单片机系统扩展电路和以太网接口电路。单片机系统扩展电路主要包括单片机及外部数据寄存器扩展电路、复位电路及串行通信电路等;以太网接口电路则包括单片机和RTL8019AS的总线接口、片选逻辑及网络通信接口等。图3-1 单片机系统扩展部分电路图图3-1中的单片机
44、U1通过U2(74HC753)实现数据总线和地址总线低8位的复用,进行系统总线扩展。由于系统中只有两个使用扩展总线的设备,故使用线选法提供各设备的片选信号。A15作为U3(62256)的片选信号,单片机的读写控线和RAM的读写选通相连。注意,62256的A14引脚没有连接到地址总线上,而是直接接地,这是因为地址总线的A14将作为RTL8019AS的片选信号,不能再供RAM使用。因此,当单片机选通RAM时,A15=0,同时A14必须选1,以保证不同时选通RTL8019AS。所以RAM的地址范围为0x40000x7FFF,共16KB,也可直接采用。如果设计电路时有16KB的RAM,也可以直接采用。
45、系统复位通过专用的复位、存储及WDT芯片X5045提供,除了可以提供复位信号外,X5045本身还有4KB的EEPROM,可存储系统的配置参数等信息,必要时还可使用芯片自带的WDT保证系统工作的可靠性。单片机的串行口有U5完成TTL电平和RS-232电平转换。由于模块的功能主要是数据转发,是典型的DCE设备,因此通过标准的9芯孔型插座COM1向外部设备提供串行口。当模块的串行口和PC相连时,PC可通过串口延长线直接和COM1相连。3.2 RTL8019AS和单片机的接口电路RTL8019AS部分的电路如图3-2所示。RTL8019AS的复位信号和单片机的复位信号复接,系统复位时RTL8019AS
46、同时复位。单片机通过地址A14选通RTL8019AS,由于RTL8019AS的片选位低电平有效,因此可当其被选通时A14=0,同时A15必须为1,保证RAM不被选通,因此其选通地址范围是0x80000xB000。RTL8019AS共有20个地址引脚,其ISA总线接口的地址范围为0x003000x0031F。单片机的低8位地址总线和RTL8019AS地址总线接口的低8位相连,单片机的读写信号线分别和RTL8019AS的IOR、IOW相连。因此RTL8019AS工作于8位总线模式,其地址线的低8位和单片机的数据总线相连。RTL8019AS共支持三种模式:跳线模式其中I/O基址和中断由跳线设置决定;
47、即插即用模式,由软件自动配置相应参数;免跳线方式其中I/O地址和中断依次外接93C46的内容设定。本设计中的JP引脚通过10k电阻上拉设置其工作为跳线模式,芯片复位后的初始状态由各配置引脚在上电时的状态决定,不需要外接93C46.RTL8019AS内部集成了以太网收发器的物理接口,因此和网络通信线的链接非常简单。本章使用标准的五类双绞线进行以太网通信,RTL8019AS只需要外接一个10M速率的网络变压器和RJ45接口即可,网络变压器型号为PM34-1006,也可用HR61101G。为了直观表示RTL8019AS的工作状态,电路设计了三个LED:D1和RTL8019AS的LBNC引脚相连,为L
48、ink指示灯。只要外部网络插入RJ45插座且网络接口正常连通,该LED将自动点亮。D2和D3则作为数据收发指示灯,无数据收发时熄灭,有数据收发时相应的LED被点亮。图3-2 RTL8019AS和单片机接口电路图3.2 本章小结第三章主要介绍以太网串行口数据转换模块的硬件电路图主要有两个部分:单片机系统扩展电路和以太网接口电路。单片机系统扩展电路主要包括单片机及外部数据寄存器扩展电路、复位电路及串行通信电路等;以太网接口电路则包括单片机和RTL8019AS的总线接口、片选逻辑及网络通信接口。并绘制出RTL8019AS和单片机接口电路图。注意:除第一章绪论外,其他每一章都应该有一个本章小结第4章
49、软件设计4.1 串行口控制程序的设计根据设计要求,单片机串行口接收到的数据应通过RTL8019AS发送到以太网上,以便送达远端主机;从RTL8019AS接收到的数据应通过单片机串行口发送给外部设备。本章设计中,采用全中断驱动及环形缓存的方式对串行口的数据收发进行控制。现在要考虑的问题是:当单片机的串行口不断接收到外部设备送来的数据时,什么时候应该将缓存的数据发给RTL8019AS根据以太网协议的要求,一个以太网数据帧中,不包括源、目的MAC地址、数据类型以及数据报尾部的4字节校验码,纯数据字段的最大长度是1500字节。当使用UDP 协议传输数据时,UDP数据报头得长度为8字节,UDP协议又是封
50、装在IP数据报总传输的,IP数据报头的长度为20字节。因此,当使用UDP协议通过以太网传输数据时,一个以太网帧中可携带的用户数据的最大长度为1500-20-8=1472字节,即每次送往协议栈发送的数据不能大于1472字节。根据上述分析,协议栈程序中设计了两个参数:最大缓存字节和最大中断时间,用于控制串行口数据发送协议栈的时机。所谓最大缓冲字节,指的是当单片机的串行口不断接收数据时,如果接收缓冲区中的缓冲数据超过了最大缓存字节规定的数值,则将当前串行口的数据送协议栈进行一次发送操作。最大这段时间参数指的是当连续送往单片机串行口的数据发生中断时,如果超过了最大中断时间规定的时长仍无后续字节送达,则
51、将当前缓冲的数据送协议栈进行一次发送操作。引入了这两个参数之后,单片机可根据数据流量的情况灵活地调整数据发送时机。当数据流量较大时,缓冲一定的字节数后再发送,当这个门限设定得较大时,发出的每个以太网数据报几乎都是满载的,保证了传输的小路;当数据间时间间隔较大时,每间隔固定的时间发送一次数据,保证了传输的实时性。这样处理后,不管是批量数据还是用户交互数据都可以高效、及时地传输。当数据从远端主机送达RTL8019AS时,由于协议栈对标准的TCP/IP协议做了较大的精简,协议栈首先判断数据报的协议类型及各种参数,对于包含不支持的协议及参数的数据报一律丢弃,不做处理。而对于接收的数据,则直接存入串行口
52、发送缓冲区,通过中断驱动的方式由单片机发送给外部设备。4.2 RTL8019AS控制程序的设计(1)RTL8019AS的复位操作通常在应用中,RTL8018AS的复位操作引脚是RST,连接到计算机ISA总线对应的RSTDRV。RST高电平有效,至少需要800ms的宽度。在复位的过程中RTL8019AS将执行一些操作,例如将内部寄存器初始化等。为确保RTL8019AS完全复位和正常工作,CPU应等待足够的时间后再对RTL8019AS操作,在程序中延时等待的时间定为20ms。实例中RTL8019AS的复位引脚和单片机的复位引脚复接,因此上电后它们将同时复位。也可以直接访问RTL8019AS的复位端
53、口进行热复位。RTL8019AS的0x189x1F共8个地址,为复位端口。对这些端口地址中任意偶数地址的读写操作都会复位RTL8019AS。为了判断复位是否成功,可根据RTL8019AS中断状态寄存器的第7位RST来判断。如下表为中断寄存器的各个标志位。在表4-1中,ISR的第7位RST跟复位有关。RTL8019AS执行正确的复位之后该位为1.驱动程序可在复位之后检查该标志位以确认RTL8019AS是否正确复位。通常UNIX、Linux等操作系统都会在RTL8019AS的驱动程序中做一些其他判断和检查,例如检查RTL8019AS是否正常工作,是否存在地址冲突等。但由于本应用设计的是精简协议栈,
54、因此默认RTL8019AS工作正常,且IP地址和MAC地址均没有冲突。表4-1 RTL8019AS中断状态寄存器各位的含义位符 号简 述7RST复位标识,复位正常时置位,起始命令后清06RDC处理器和RTL8019AS之间的DMA操作后完成后置位5CNTRTL8019AS错误计数器溢出时置位4OVW接收缓冲区溢出时置位,RTL8019AS死锁3TXE发送数据报出错时置位2RXE接收数据报出错时置位1PTX正常发送数据报结束时置位0PRX正常接收数据报结束时置位(2)RTL8019AS的寄存器初始化操作RTL8019AS的寄存器占用其内部地址0x000x1F共16字节的区域,寄存器共分4页,记为
55、PAGE0PAGE3,每页都有16个寄存器地址。其中,所有页的地址0都为命令寄存器CR,CR为一个字节。利用CR的两个页选择位PS1和PS0可以选择寄存器页,PS1 PS0为00时选择寄存器页0,为01时选择寄存器页1,依次类推。在初始化时,因为RTL8019AS寄存器的PAGE2属性是只读的,而PAGE3用于即插即用的增强功能,所以并不需要关心。如下表4-2为需要初始化的寄存器及寄存器功能的简单介绍。表4-2 RTL8019AS PAGE0中需要初始化的寄存器寄存器符号寄存器功能简介PSTART接收缓冲区的起始页地址寄存器(存放接收到的第一个数据报)PSTOP接收缓冲区的结束也地址寄存器(不
56、存放数据报)BNRY指向最后一个已经读取的页地址(读指针)CURR指向当前的接收结束页地址(写指针)TPSR发送页的起始页地址RCR接收配置寄存器TCR发送配置寄存器DCR数据配置寄存器IMR中断屏蔽寄存器(1)PSTART寄存器(地址为PAGE0的0x01)为写寄存器,CPU向它写入接收缓冲区首页面的地址。(2)PSTOP寄存器(地址为PAGE0的0x02)为写寄存器,CPU向它写入接收缓冲区末页面的地址。RTL8019AS内部有16KB字节的RAM,地址为0x40000x7FFF,注意此处的地址指的是RTL8019AS内部的数据缓冲RAM地址,而不是单片机系统外扩的地址。这些内部数据缓冲RAM是RTL8019AS本身工作时所用的存储缓冲区,每256字节为一页,共64页,页地址就是地址编码的高8位,范围为0x400x7F。这16K RAM用来缓存RTL8019AS收发的数据报。(3)BNRY寄存器(地址为PAGE0的0x03)为读写寄存器,用于指向最后一个已经被CPU读取过页地址(读指针)。在初始状态,RTL8019AS没读取过任何数据报,所以BNRY初始化时应设置为指向第一个接收缓冲区的页0x4C。(4)CURR寄存器(地址为PAGE1的0x07)是RTL8019AS写内存的指针。它指向当前正写入页的下一页,那么初始化它就应该指向0x4C+1=0x4D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽主持人从业考试及答案解析
- 护理第四版外科题库及答案解析
- 2025车贷网借款合同示范文本
- 矿山安全国家题库及答案解析
- 2025-2030绿色建筑行业环保政策及市场投资价值预测报告
- 2025-2030绿色化工技术创新趋势与可持续投资回报周期分析报告
- 2025-2030绿氢制备成本下降曲线与基础设施投资窗口期预测
- 上海危险品从业人员考试及答案解析
- 2025-2030纳米材料在医疗诊断中的应用趋势与产业化发展报告
- 2025-2030纳米复合材料在智能窗户领域的应用场景探索报告
- 2025年人教版三年级上册道德与法治全册知识点(新教材)
- 传媒公司合伙合同范本
- 橡胶制品企业安全生产培训试题及答案解析
- 2025广东惠州市博罗县中小企业发展事务中心招聘编外人员2人考试参考试题及答案解析
- 2025年事业单位招聘考试卫生类医学检验专业知识试卷(临床技能考核)
- 2025年及未来5年中国压裂装备行业发展运行现状及投资潜力预测报告
- (新版)2025年6月25日生效的欧盟REACH法规250项SVHC高度关注物质清单(可编辑!)
- 2025年宠物用品市场消费者画像研究报告
- 2025年江西省省直机关公开选调公务员考试参考试题及答案解析
- 招投标自查报告和问题整改指导
- 《人工智能语言与伦理》章节测试题及答案
评论
0/150
提交评论