八位单片机以太网接入研究与实现.docx
- 文档编号:6275196
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:50
- 大小:2.25MB
八位单片机以太网接入研究与实现.docx
《八位单片机以太网接入研究与实现.docx》由会员分享,可在线阅读,更多相关《八位单片机以太网接入研究与实现.docx(50页珍藏版)》请在冰豆网上搜索。
八位单片机以太网接入研究与实现
第1章绪论
1.1嵌入式设备Internet接入的需求
单片机或微处理器(MCU)已经在家庭和工业的各个领域得到了广泛的应用,以MCU为核心,与一些监测、伺服、指示设备配合实现一定的功能,通称为嵌入式系统。
但大多数嵌入式系统还处于单独应用的阶段[17]。
在一些工业的应用中,为了实现多个MCU之间的信息交流,利用CAN、RS-232、RS-485等总线将MCU组网,但是这种网络的有效半径比较有限,关的协议也比较少,并且一般是孤立于Internet以外的。
这难以满足复杂、远程(异地)和较大范围的测控任务的需求。
近十多年以来,以Internet为代表的网络技术的出现以及它与其它相关技术的相互结合,不仅己开始将智能互联网产品带入现代生活,而且也为远程测控技术带来了前所未有的发展空间和机遇,网络化测控技术以及具备网络功能的各种新型仪器便应运而生。
当前,Internet己成为社会重要的基础信息设施之一,是信息流通的重要渠道,如果能够将嵌入式系统连接到Internet上面,则可以方便低廉地将信息传送到世界的任何一个角落。
传统的Internet应用以PC为中心,当代的Internet应用将转向以嵌入式设备为中心。
AI(InternetAppliance)概念的流行表明Internet,应用己经进入嵌入式,Internet,时代。
据网络专家的预测,将来在Internet上传输的信息中,将有70%的信息来自于小型嵌入式系统。
可以预言,嵌入式设备与Internet的结合代表着嵌入式系统和网络技术的真正未来。
1.2嵌入式设备internet接入的现有方案
利用单片机实现嵌入式internet方案的技术难点在于:
如何利用单片机自身有限的资源对信息进行TCP/PI协议处理,使之可以在Internet上传输IP数据包。
从解决这一技术问题出发,目前出现了几种方案:
1.PCGateway+专用网:
采用专用网络(如RS232,RS485,CANBus等)
把一小批单片机连接在一起,然后再将该专用网络连接到一个PC上,该PC作为网关将专用网络上的信息转换为TCP/IP协议数据包,然后发到Internet上实现信息共享。
该方案可以连接多种单片机,因为把复杂的TCP/IP协议通过PC机来实现,因此对MCU的要求比较低。
但存在如下缺点:
a.需要依赖PC机作网关进行协议转换,在多个单片机系统分散的情况下,专用网络布线极为不便。
b.需要在PC机上安装专门的协议转换软件,该软件通常由专门的第三方软件商提供,费用较高。
2.32位MCU十RTOS:
采用32位的高档单片机,在TR0S(实时多任务操作系
统)的平台上进行软件开发,在嵌入式系统中实现TCP/IP的协议处理。
由于采用
高档单片机,该方案可以完成很多复杂的功能。
但这种方案存在如下缺点:
a.高档单片机价格较贵,开发周期较长。
b.需要购买昂贵的RTOS开发软件,对开发人员的开发能力要求较高。
3.TCP/IP专用芯片:
由于近年来Internet及通讯产业的迅猛发展,半导体
造商都试图将通讯协议、Internet协议、Ip及许多外设集成在一个SOC(SystemOnChip)内。
应该说这种方法是最直接也是最方便的上网方法,是目前国际上研究的热点,也是将来家电等嵌入式设备上网的一个重要方向。
但是这种方法在实现过程中存在着很多问题,无法对系统进行灵活配置,根据应用的需要对系统进行裁减,并且因为芯片的加入而增加系统的成本。
为解决上述向题,可以利用软件来完成协议的处理功能。
当然,利用软件来
现硬件功能需要解决处理速度问题。
同时,由于单片机采用软件来实现各种协议
处理,便于将来在不改变硬件的情况下,只需改变内置程序即可升级整个嵌入式
系统的功能,这在当今各种协议层出不穷、频繁升级的情况下,SCENIX提出的
“SoftwareinSilicon”的概念具有无比重大的意义。
1.3嵌入式设备的Internet接入底层硬件协议
要实现小型嵌入式设备的internet接入,TCP/PI首先要解决的是底层硬件问题,即协议的物理层。
Ethernet具有成熟的技术、低廉的网络产品、丰富的开发工具和八位单片机以太网接入研究与实现韩东起技术支持,当现场总线的发展遇到阻碍时,以太网控制网络技术以其明显的优势得到了迅猛的发展,并逐渐形成了现场总线的新标准一一Ethernet。
考虑到国内局域网大部分是以太网,随着交换式网络、宽带网络的发展,基于以太网的嵌入式设备Internet接入应用有着现实意义。
1.4本课题研究的内容
从上面的分析可看出,如何在单片机上实现TCP/IP协议站是小型嵌入式设
internet接入问题的根源。
目前,8位单片机直接上网存在的问题是:
1.小型嵌入式设备中的微控制器一般都是简单的控制器,它们的运算速度和
系统资源有限。
2.TCP/IP协议在实时性方面不能满足嵌入式应用的实时要求。
因此,目前
型嵌入式设备直接Internet接入在软件上需解决的关键技术是TCP/IP协议的简化和实时性改进。
本文探讨了在小型嵌入式设备中实现网络通信的技术难点,对实现嵌入式环境下的网络通信的TCP/IP协议族作了阐述分析,在此基础上,设计了一个简单的网络单片机数据通信系统,它利用51MCU、以太网络接口芯片、相关外围接口电路实现系统的硬件架构;软件上,根据8位单片机本身资源(ROM、RAM和外围接口)有限的特点,精简了TCP/PI协议族,使之能运行在8位单片机,完成客户方的链接请求,实现远程数据采集、传输和控制。
1.5本论文的主要内容
第一章,简要的介绍了本课题研究的价值和研究的主要内容。
第二章,主要讨论了TCP/IP网络体系结构和嵌入式设备接入Internet的特点。
第三章,对TCP/IP协议作了详细分析,从单片机TCP/IP构架入手,详细介绍了网际协议PI、用户数据报协议UDP、internet控制报文协议CIMP、地址解析协议ARP的协议功能和报文格式。
第四章,着重介绍了本系统的硬件构成和各组成元件的特性和功能,并以此
出了单片机和以太网控制芯片DMgO00的接口方案。
第五章,为本系统的软件实现部分。
本章提出了系统的总体程序设计思想,详细介绍了各功能模块的软件设计方法,包括DM9000驱动程序设计、ARP模块设计、IP模块设计、ICMP模块设计、UDP模块设计和上位机程序设计。
第六章,对本文的主要内容进行总结,并提出了本系统下一步的改进方法。
1.6本章小结
本章从嵌入式设备internet接入的需求入手,探讨了嵌入式设备Internet接入现有方案的不足,以此提出了其解决方案,并介绍了本文所做的主要研究工作。
第2章嵌入式设备internet接入实现的特点
2.1TCP/PI网络体系结构
2.1.1150/051网络体系结构
在网络发展的早期,由于不同计算机和网络厂商设计了各自的网络体系结构,造成不同网络设备难以互连互通,互连网络的性能难以保证,而且建网费用很高。
广大用户强烈要求便宜、灵活、方便的联网方案。
面对这种需求,国际标准化组织(150)于1983年提出了开放系统互连(051)网络体系结构框架,即150/051参考模型,如图2.1所示[31]。
150/051开放网络体系结构的理论指导作用大于实际应用。
目前广泛应用的网络体系结构是TCP/PI,但150/051开放网络体系结构为人们描述了指导进行网络互连的理想框架和蓝图,有待人们去探索和实现。
其具体的特点如下[6]。
(l)描述了实现异构系统互连的分层结构。
(2)提供了控制互连系统交互规则的标准框架。
(3)定义了一种抽象结构,而非具体实现的描述。
(4)规定了同等层实体(指能发送和接收信息的软件和设备,如终端、程序、
数据库系统、电子邮件系统等)之间的通信由该层的协议进行管理和实现。
(5)规定每层只完成所定义的功能,修改本层的功能对其他层没有影响。
(6)定义了相邻层之间的接口。
(7)规定直接的数据传输在最底层(物理层)实现。
(8)通信网只涉及第一层到第三层,例如路由器涉及网络层、网桥涉及数据链路层、中继器涉及物理层,网关则涉及到第四到第六层,属于高级协议转换设备。
ISO/OSI网络体系结构具有开放性,所谓“开放性”指任何遵守该参考模型和有关标准的系统之间都能进行互连。
ISO/OSI参考模型只定义了各层的功能,并未定义每层的具体实现协议,其协议由其他标准来定义,这充分体现了该模型的灵活性和远见卓识。
ISO/OSI分层模块化/结构化的网络设计思想,完整而清晰明了,对计算机网络和其他网络的发展具有十分重要的指导意义。
2.1.2TCP/IP网络体系结构
OSI模型是一种通用的、标准的、理论模型,今天市场上没有一个流行的网络协议完全遵守OSI模型,TCP/PI也不例外,TCP/IP协议族有自己的模型,被称为TCP/IP协议栈,又称DOD模型(Departmentofdefense)【31】,如图2.2所示【7】。
1.应用层
应用层主要向用户提供一组常用的应用程序,比如文件传输访问,电子邮件等。
严格说起来,TCP/IP网间网协议只包含了下三层(不含硬件),应用程序不能算TCP/IP协议的一部分。
就是上面提到的常用应用程序,TCP/IP制定了相应的协议标准,所以也把它们作为TCP/IP的内容。
事实上,用户完全可以在网间网上(即传输层上)建立自己的专用应用程序,这些专用应用程序用到TCP/IP,但不属于TCP/IP。
2.传输层
传输层提供应用程序之间的(即端到端)的通信,功能包括:
格式化信息流,
提供可靠传输,接收端一定要进行接收确认,否则要进行重传。
传输层还要解决
不同应用程序的识别问题,因为常常有多个程序同时访问网间网。
为区别各应用
程序,传输层在每一分组中增加识别信源、信宿应用程序的信息。
另外传输层每
一个分组均附带校验和,接收机以此校验收到分组的正确性。
3.网际层(IP)
网际层负责相邻计算机之间的通信,其功能包括三方面:
一、处理来自传输层的分组发送请求,收到请求后,将分组装入Pl数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报。
首先检查其合法性,然后进行寻径,假如该数据报己到达信宿地,则去掉报头,将剩下的部分(传输层分组)交给适当的传输协议;假如数据报尚未到达信宿,则转发该数据报。
三、处理CIMP报文,处理路径、流控制、拥塞等问题。
4.网络接口层
网络接口层是TCP/IP协议的最底层,负责接收PI数据报,并通过网络发送之,或从网络上接收数据帧,抽出Pl数据报,交给Pl层。
网络接口层定义了Internet与各种物理网络之间的网络接口。
网络接口有两种类型,第一种是设备驱动程序(如局域网的网络接口),第二种是含有自身数据链路协议的复杂子系统。
2.2总线式以太网及802.3标准
2.21总线式以太网技术
以太网是基于总线型的广播式网络,在已有的局域网标准中,它是最成功的局域网技术,也是当前应用最广泛的一种局域网。
它是Xerox公司的PARC在20世纪70年代早期开发的。
以太网传输介质从同轴电缆(粗缆与细缆)、双绞线到光纤,现在常用的双绞线以太网工作在10Mbps、l00Mbps、1000Mbps,它用8根线(4对双绞线)把每台以太网设备连到一个以太网集线器(hub)或交换机上,集线器是一个电子设备,它模拟以太网电缆上的信号,集线器和以太网设备之间的连接长度须小于100米川。
现在的以太网已发展到了吉比特以太网,速度越来越快,但从技术上讲,以太网是基于CSMA/CD(CarriersenseMultipleAccesswithcollisionDetect)机制的,CSMA/CD是具有冲突检测(CD)功能的载波监听多路访问(CSMA)介质访问控制方法,它被广泛地应用于局域网的MAC子层,是EIEE80.23的核心协议,也是著名的以太网所采用的协议。
CSMA/CD主要是为解决如何争用一个广播型的共享传输信道而设计的,它能够决定该谁占用信道。
当一个站点开始传送一个分组时,信号并没有同时到达网络各处,这样就有可能有两个收发器同时探测到网络空闲,并同时开始发送。
当这两个电信号交汇时,它们混杂在一起,每个信号都失去了意义,这种事件称为冲突(collision)。
在以太网的基带传输中,以太网以一种比较巧妙的方式处理冲突。
每个收发器在发送时监视电缆,看是否有外来信号干扰其发送。
从技术说,这种监视称为冲突检测CD,.使以太网成为一个CSMA/CD网。
当检测到冲突时,主机接口放弃本次发送,等待活动停止,并再次试发送[3]。
CSMA/CD的工作流程如下12]:
(1)准备发送站监听信道。
(2)信道空闲进入第(4)步,开始发送数据,并监听冲突信号。
(3)信道忙,就返回到第
(1)步。
(4)传输数据并监听信道,如果无冲突就完成传输,检测到冲突则进入第(5)步。
(5)发送阻塞信号,然后按二进制指数退避策略等待,再返回第(l)步,准备重新发送。
2.2.2以太网的物理传输帧封装格式
各字段解释如下:
同步位——用于收发双方的时钟同步,由网卡控制器自动添加。
分隔位——表示下面跟着的是真正的数据,由网卡控制器自动添加。
目的地址——指接收端的物理地址,48位。
源地址——指发送端的物理地址,48位。
类型——表明该帧的数据是什么类型的数据,不同协议的类型不同。
数据段——指发送的数据,不能大于1500字节。
填充位——指如果以太网传输的数据包小于46字节要补0。
FCS——校验位,4个字节,由芯片自动生成。
所有数据位的传输都由低位开始,以太网的冲突退避算法由硬件自动执行。
2.23以太网的数据传送过程
当一个以太网站点的信息帧被发送到共享的信道或介质时。
所有与信道相连的以太网接口都读入该帧,并且查看该帧的第一个48比特地址字段,其中包含有目的地址。
各个接口把帧的目的地址与自己的48比特地址进行比较。
如果该地址与帧中的目的地址相同,则该以太网站点将继续读入整个帧,并将它送给计算机正在运行的上层网络软件。
上层网络软件读入帧的类型字段,判断这个信息帧是入ARP包还是IP包,然后再交给不同的协议栈处理。
当其他的网络接口发现目的地址与它们的地址不同对,就会停止读入信息帧。
2.3嵌入式设备Internet接入实现的特点
嵌入式设备系统中的微处理器,不管速度,还是RAM、ROM的资源,都远没
有PC机强大,而嵌入式系统接入Internet需要解决的主要问题是:
要在8位单片机上实现复杂的TCP/IP协议族,解决数据的封装、拆包、编码、解码及数据发送等。
另外,微处理器除了完成这些任务外,还要控制一些设备,来完成特定的测量和控制的任务,再就是,嵌入式系统的成本不能太高。
而完整的TCP/IP协议族要消耗大量的系统资源,并且在嵌入式系统中要实现的是比较单一的网络传输和数据采集任务,所以没必要嵌入完整的TCP/IP协议族,只须把TCP/IP最精简的内核和用得到的协议嵌在里面就行了。
例如,系统中如果没用到HITP协议而只用到了下层的TCP和UDP协议,可以去掉HTTP协议,而只保留下层协议,这样把不必要的协议去掉可以大大简化内核,从而节省了系统资源,降低了成本。
另外,为了减少MCU的负担,底层最好选用现成的网络接口芯片,来完成物
理帧的形成、接收、校验、编码、解码等任务。
这样,MCU可以把主要的时间用
于数据采集和过程控制上,减少开销,另外用现成的接口芯片还可以缩短开发时
间、降低开发成本。
2.4单片机与计算机TCP/IP协议实现的不同
单片机与计算机的差别很大,两者对TCP/PI的实现有很大的不同。
在计算机里编写TCP/PI程序,可以不考虑代码大小、代码速度,但在单片机上这些都是要考虑的问题。
综合来说,单片机实现与计算机实现TCP/PI有如下区别:
(1)操作系统。
不论是Windows、Unix、Linux,它们都有一个多任务操作
系统,这使得代码编写简单化,而在单片机上,因为资源的原因,使用多任务操
作系统则较为困难,这使得代码结构变为顺序执行+硬件中断的方式,而在计算机里却可以并发地执行。
对程序执行结构,单片机要考虑更多。
(2)内存分配。
windows或UNIX的内存分配是动态的,根据需要随时分配,
随时撤消。
但是在单片机却不能够这样做。
一个最大的以太网数据帧有1500多个字节,分配一帧的缓冲区就要1.5K字节,而单片机的RAM要被各个协议所用,而不仅仅是存放收到的数据包。
所以,需要分配RAM的一个固定空间来存放收到的八位单片机以太网接入研究与实现韩东起以太网数据包。
收到一包就处理一包。
在单片机里,存放收到的以太网数据包的RAM是固定的,而不是动态分配的。
(3)指针。
在单片机里指针有几种:
a.指向外部RAM的指针,例ucharxdata*p使用指令move@dptr占二个字节;b.指向程序ROM的指针,例ucharcode*p使用指令move占二个字节;e指向内部的RAM的指针,例uchardata*p使用指令mov@ri占一个字节;d.指向外部RAM的分页指针,例ucharxdata*p使用指令mov@ri占一个字节;e一般指针,可以指向以上的任何一种,占三个字节。
而在计算机里,所有程序都必须先放在RAM里才能运行,所以它的指针只有一种情况,就是指向RAM。
单片机的结构和计算机的结构有很大差别,指针类型很多,对指针运算的速度也不一样,由于第5种指针“一般指针”运算很慢,同时又需要占用很多程序空间,所以,在单片机里一般要少用指针,或使用特定类型的指针[18]。
(4)参数传递。
在计算机实现的TCP/IP源代码中,一般有很多的参数传递,而在单片机里允许传递的参数是有限的(因为受到内部RAM的限制),同时参数传
递的过程要浪费程序代码空间,也降低单片机执行速度。
所以在单片机的实现里,
一般不能做太多的参数传递,而多使用公共的全局变量来实现调用的过程。
这种
情况下,计算机的源程序是相对独立的,受其它函数或变量的影响很小,而单片
机里各程序相互依赖程度要大。
因为在单片机里往往共享某一数据、某一变量【18】。
(5)协议支持。
在计算机里可支持比较完整的TCP/PI协议,但在单片机里无法做到,这是因为单片机根本没有足够的代码空间来支持这些协议。
一般在单片机里实现与需要有关的部分,而不使用的协议则一般不嵌入进去。
一般只能在单片机中实现:
ARP,IP,ICMP,TCPDP这些协议,而更高层的协议,如:
HTTP、
SMTP、TFP一般是不需要嵌入的。
单片机应用的TCP/PI协议大多是为了完成数据采集和数据传输,而不是网页浏览、文件传输这些功能。
就对某一协议而言,例如ARP协议,UNIX系统支持以太网、令牌环等网络的ARP,在该系统中单片机里只支持以太网,也就是说,对于某一协议,也有可能要作简化。
IP包最大可以为65K,可以分段传输,而在单片机里根本无法容纳如此大的数据包,因此一般是不支持分段的。
单片机一般采用发送小数据包的方式,以避免分段。
(6)使用UDP还是TCP。
相对于UDP,TCP的可靠性是以许多复杂措施及由此
而增加的开销为代价换来的。
UDP本身无连接能力和不可靠,但对传输率却无阻
碍,适于数据量比较小的应用;而TCP提供可靠的数据流,但处理的开销较大,
使传输率有所降低。
UDP不可靠不可简单化以致有所误解,真正使用UDP时,经
常是要在应用层增加提高UDP可靠性的代码。
嵌入式的设计者经常会面临许多具
体的特殊要求,如代码不能长、或传输率是关键、或可靠性最重要等等,需要很
好地加以分析和折衷。
考虑到单片机运行速度比较慢,数据量又比较小,用UDP
作为单片机应用的传输控制层协议,只要在应用层增加相应的可靠性代码,是能
满足测控应用要求的。
(7)硬件接口。
在计算机里,对网卡的驱动相对简单,而在单片机里需要处理的事情更多。
比如缓冲区溢出,在计算机里的一些程序根本没有处理溢出的代码。
因为计算机执行快,网卡缓冲区的溢出几乎是不会发生的。
计算机往往采用即插即播即用方式来驱动网卡,而单片机却不能这样做,因为即插即用要很多代码来实现,一般使用跳线方式。
计算机里驱动NE2000的网卡,一般都是用16位DMA的方式,而在8位单片机里却只能用8位DMA方式。
2.5本章小结
本章介绍了TCP/PI的网络体系结构,并着重讲述了嵌入式设备接入Internet的特点,同时也对以太网80.23标准作了简要说明。
第3章TCP/IP协议分析
3.1TCP/IP协议的封装和分用
TCP/IP协议采用分层结构,实现也采用分层实现的方法。
在实现的过程中首先要了解封装和分用的概念。
3.1.1封装
当应用程序用UDP传送数据时,数据被送入协议栈中,然后通过每一层直到
被当作一串比特流送入网络。
其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),这个过程称作封装。
如图3.1所示2sI]。
UDP传给的数据单元称作UDP报文段或简称UDP段。
IP传给网络接口层的数据单元称作PI数据报。
通过以太网传输的比特流也称作帧(Frame)。
3.1.2分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈底层向上升,同时去掉各层协议加上的报文首部。
以太网帧要检查首部中的帧类型字段,IP要检查首部中的协议值字段,TCP和UDP要检查首部中的端口号字段来确定数据属于哪一层,这个过程称作分用。
如图3.2所示[25]:
3.2TCP/PI协议分析
3.21单片机TCP/IP构架
如前所述,TCP/PI协议是一个协议族,有很多种协议。
图3.3给出了本文研究的协议和各协议之间的关系[33][34]。
TCP和UDP是两种最为著名的传输层协议,二者都使用IP作为网络层协议。
TCP使用不可靠的PI服务,但它却提供一种可靠的传输层服务。
UDP为应用程序
发送和接收数据报。
与TCP不同的是,UDP是不可靠的,它不能保证数据报能安
全无误的到达目的地。
PI是网络层上的主要协议,同时被TCP和UDP使用。
TCP
和UDP的每组数据都通过端系统和每个中间路由器中的PI层在互联网中进行传
输。
CIMP是PI协议的附属协议,IP层用它来与其他主机或路由器交换错误报文
和其他重要信息。
ARP协议是以太网用来转换PI层和网络接口层使用的地址。
3.22网际协议IP
1.IP的结构
IP是TCP/IP协议族中最为核心的协议。
所有的TCP、UDP、ICMP及IGMP
数据都以IP数据报格式传输。
IP的功能由IP头结构中的数据定义。
IP数据报的格式如表3-1所示[31][41][47]。
普通的IP首部长为20个字节,除
非含有选项字段。
字段解释如下:
版本——IP头中前4位标识了IP的操作版本,目前的协议版本号是4,因此IP时也称作IPv4。
首部长度——指的是首部占32bit字的数目,包括任何选项。
由于它是一个4比特字段,因此首部最长为60个字节。
普通IP数据报(没有任何选择项)字段的是5。
服务类型——包括一系列标志,这些标志能保证优先级、延时、吞吐量以及
报文数的可靠性参数。
本文为一般服务,所有4bit均为0。
总长度字段——指整个IP数据报的长度,以字节为单位。
标志字段和片偏移一一标识字段唯一地标识主机发送的每一份数据报。
通常
发送一份报文它的值就会加1。
标志字段和片偏移在分片和重组的时候会用到,
于本系统中对数据不分片、无偏移,故设为0X4000。
生存时间(竹TTL)——生存时间字段设置了数据报可以经过的最多路由器数
它指定了数据报的生存时间。
TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。
当该字段的值为0时,数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八位 单片机 以太网 接入 研究 实现