论文(设计)基于单片机的网络通讯协议研究及应用.doc

上传人:文库蛋蛋多 文档编号:4150492 上传时间:2023-04-07 格式:DOC 页数:37 大小:251.50KB
返回 下载 相关 举报
论文(设计)基于单片机的网络通讯协议研究及应用.doc_第1页
第1页 / 共37页
论文(设计)基于单片机的网络通讯协议研究及应用.doc_第2页
第2页 / 共37页
论文(设计)基于单片机的网络通讯协议研究及应用.doc_第3页
第3页 / 共37页
论文(设计)基于单片机的网络通讯协议研究及应用.doc_第4页
第4页 / 共37页
论文(设计)基于单片机的网络通讯协议研究及应用.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《论文(设计)基于单片机的网络通讯协议研究及应用.doc》由会员分享,可在线阅读,更多相关《论文(设计)基于单片机的网络通讯协议研究及应用.doc(37页珍藏版)》请在三一办公上搜索。

1、 论文题目:基于单片机的网络通讯协议研究及应用摘 要 今天,嵌入式Internet的应用己经深入到日常生活的各个方面。研究嵌入式TCP/IP协议在内部资源有限微处理器上的实现,具有重要的现实意义和经济价值。论文首先介绍了嵌入式系统的组成及对嵌入式Internet产生。通过对现有的嵌入Internet及比较了目前几种单片机接入Internet实现方案的前提下,应用了一种基于单片机自身特点的具体的解决方案:嵌入式TCP/IP协议。通过对TCP/IP网络协议的深入分析,对TCP/IP协议进行合理的简化,将其嵌入到内部资源有限的微处理器中,实现以电子邮件方式进行远程数据传输。关键字:嵌入式;Inter

2、net;TCP/IP;单片机目 录摘 要I第1章 引 言11.1 论文选题的背景及意义11.2 本文主要工作1第2章 方案的选取3第3章 网络协议53.1 TCP/IP分层模型53.2 数据封装63.3 数据帧分用73.4 协议层简介83.4.1 网际层协议83.4.1.1 IP地址分配93.4.1.2 地址解析协议103.4.1.3 IP分片/重组113.4.1.4 ICMP协议113.4.2 传输控制协议123.4.2.1 TCP连接和释放123.4.2.2 用户数据报协议13第4章 系统总体设计144.1 硬件总体功能结构设计144.2 TCP/IP协议层选择及分析154.2.1 链路层

3、协议选择及分析164.2.2 网络层协议选择及分析164.2.3 传输层协议选择及分析164.2.4 应用层协议选择17第5章 TCP/IP协议栈的实现195.1 ARP协议的实现195.1.1 ARP分组格式195.1.2 ARP协议软件实现195.2 IP协议及其实现225.2.1 IP数据报格式225.2.2 IP软件实现225.3 ICMP报文协议的实现245.4 TCP协议的实现255.4.1 TCP的报文段255.4.2 TCP协议的实现265.4.2.1 运输控制块TCB265.4.2.2 处理传入数据模块275.4.2.3 处理数据输出模块285.4.2.4 定时管理器295.

4、5 SMTP协议的实现315.5.1 客户机与服务器之间的交互315.5.2 SMTP邮件协议的实现32第6章 参考文献34参考文献36第1章 引 言1.1 论文选题的背景及意义 嵌入式Internet是本世纪计算机世界的一项热门技术。目前,嵌入式系统已经成为我们生活的一部分,应用领域不断扩大。嵌入式设备的联网已经开始。但是,由于嵌入式系统资源有限,一些传统的Internet技术和设备无法直接应用。这种趋势使着嵌入式Internet技术的产生和迅速发展。嵌入式 Internet(简称EI, Embedded Internet)通常可以理解为把TCP/IP协议作为一种嵌入式的应用,从而实现嵌入式

5、设备Internet的技术1 。近年来以单片机(Micro Computer Unit,MCU)为代表的嵌入式系统在工业探测系统、智能仪器、智能家电和信息家电领域得到了广泛应用。如今嵌入式系统带来的年产值早己超过万亿美元,1997年来自美国嵌入式系统大会的报告指出,未来几年仅基于嵌入式的全数字电视产品,就将在美国产生一个每年上千亿美元的新市场2。在这样的背景下,嵌入网络得以快速发展,目前世界许多国家的科研机构和各大公司纷纷加入了嵌入式Internet技术的研究行列。另据网络专家预测,将来在Internet上传输的信息中,将有70%的信息来自于小型嵌入式系统3。现正的我们可以说是正由PC机成熟技

6、术向嵌入式产品转化的后PC时期。因此,研究嵌入式系统的Internet接入技术,将会有极具现实意义和经济价值。如何利用单片机接入Internet网络是当今最热门的技术之一。鉴于8/16位单片机大量存在于嵌入式领域,在单片机上实现TCP/IP协议时嵌入式Internet的关键技术之一。本文在这样的背景下,试图开展一些有益的研究。1.2 本文主要工作 本文主要工作是将TCP/IP协议嵌入低档单片机中。通过89C51系列单片机和网卡芯片RTL8019AS在单片机上实现Internet接入,在对TCP/IP协议深入分析的基础上,对TCP/IP协议栈进行合理的简化后嵌入到单片机中。具体的工作有:1. 对

7、TCP/IP协议嵌入低档单片机的硬件系统框图的设计。2. 对TCP/IP协议栈进行研究,并分析各协议,完成软件结构的总体规划设计。3. 对我们需要的协议进行必要的精简,以达到软件的实现。课题的难点在于要对TCP/IP协议熟悉,要对其有较为全面和深入的研究,由于低档单片机资源有限,就必须根据需求对TCP/IP协议进行精简,精简后固化到单片机中实现单片机中数据的远程传输。第2章 方案的选取 嵌入式Internet技术的实现方法有很多种,体系结构不同、使用的芯片不同采用的底层技术不同,采用的软件技术不同等等。大体可有以下几种方式:1. PC网关与专用网结合接入Internet emGateway(P

8、C机)文件系统InternetWeb BrowseremMirco应用系统+emnetMCUNetRS232RS485嵌入式系统和PC网关连接通信,连接方式采用RS482、RS232、RS485等总线技术组成专用网。在专用网中由PC网关实现TCP/IP协议,并完成与Internet连接,实现嵌入式系统与Internet之间的信息交换。PC网关为嵌入式系统提供通信和管理服务。如安全防护、协议处理、监听设备的运行情况、向外界则提供Web 服务器等。这种技术需要一个专用的PC网关,而且PC网关跟嵌入式系统之间通信也会受到网络协议的制约。这种方案对嵌入式系统处理器和资源要求都比较低,开发相对容易,足以

9、解决嵌入式系统与Internet之间通信的问题,特别适合在嵌入式系统多且集中的环境中应用。不足之处在于接入成本高,不适合大范围的推广。该方案适合于大型和昂贵工业设备的上网需求,不适合在信息家电及网络智能等领域推广4。基于这种技术模型,EmWare公司开发出嵌入式微Internet网络技术EMIT5 ( embedded micro internetworking technology)。EMIT由emMicro、emGateway 和网络浏览器组成,并在MCU内部以软件方式嵌入emNet协议。如图2-1所示。图2-1采用专用嵌入式网络协议方式2. 高性能MCU+RTOS RTOSMCUTCP/

10、IPInternet采用高档片机在 RTOS平台上进行软件的开发,在单片机上实现对协议的处理。由于采用高档单片机,可以实现很多复杂功能。这种方法的缺点是:对程序员的要求高,须对RTOS和TCP/IP协议都要很熟悉,开发周期也较长,难度较大。同时高档单机价格不菲,因此硬件开发成本较高6。如图2-2所示。图2-2在嵌入式实时操作系统RTOS上运行TCP/IP3. 使用专用的嵌入式芯 MCU固化TCP/IP协议栈TCP/IPInternet专用嵌入式芯片是一种内置了通信和控制功能的单片机,采用这种方案的芯片有UbiCom公司的IP2022,iReady公司的Internet Tuner,Seiko

11、Instruments公司的S7600A ,Connect One公司的iChip等7。这些芯片固化了TCP/IP协议栈,支持HTTP,SMTP,MIME,POP3等协议,可进行E_mail的收发及Web浏览。此方案更为方便,无需操作系统,大大的节省资源,开发难度相对较低,要求对TCP/IP 协议与相关接口熟悉,技术实现也相对困难,且对处理器性能要求较高,需要提供大容量存储器。这类芯片功能强,能够实现多种网络协议,一般提供有相应的TCP/IP网络协议栈。但是这种芯片价格偏高,用户需要支付软硬件费用,不易于实现市场的广泛应用。如图2-3所示。图2-3 直接在嵌入式处理器上实现TCP/IP 协议4

12、. 使用普通单片机和网络控制芯片 通过在系统中集成网络接口芯片, 采用软件方式实现TCP/IP协议栈, 使得嵌入式系统具备网络功能从而接入Internt。单片机通过加载TCP/IP协议控制网卡来进行数据的传输,并通过TCP/IP协议接入互联网。远程控制端的操作指令的执行通过网络找到目标,经网卡接口传入单片机,通过在单片机上加载响应的程序来转换成物理帧格式,再让TCP/IP转换成相应的应用层控制指令。这种方法实现起来比较简单,而且可根据实际需要进行功能扩展,但是需要在单片机上实现嵌入式TCP/IP网络协议,软件编程的工作量比较大8。由于采用普通单片机,所以其优点是成本低,单片机体积小,而且产品可

13、以自己搭建,有利于产品的维护和二次开发,易于以极高的性价比向诸多需要实现嵌入式接入Internet的场合推广。本文设计的系统就是采用这种技术方案。第3章 网络协议3.1 TCP/IP分层模型TCP/IP采用分层体系结构,它与开放系统互联OSI模型的层次结构相似。如表2-1所示,它可以分为4层,由低到高依次为:链路层、网际层、传输层和应用层9。表2-1 OSI参考模型与TCP/IP参考模型比较OSI参考模型OSI层次号TCP/IP层次描述主要应用协议应用层7应用层FTP、e-mail和Telnet等表示层6会话层5传输层TCP和UDP传输层4网络层3网际层IP、ICMP和IGMP链路层设备驱动及

14、接口卡数据链路层2物理层1TCP/IP分层模型的四个协议层分层完成如下功能。(1) 第一层 链路层 链路层包括用于协作IP数据在已有网络介质上传输协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反它定义像地址解析协议这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。(2) 第二层 网际层对应于OSI 7层参考模型的网络层,网络层主要解决计算机之间的通信问题,它负责管理不同设备之间的数据交换,它是Internet通信子网的最高层,它所提供的是不可靠的无连接数据报服务,无论传输是否正确,不做验证、不发确认,也不保证分组的正确 顺序。网际层主要有以下协

15、议。l IP协议:使用IP地址确定收发端,提供端到端的“数据报”传递,是TCP/IP协议簇的核心协议。l ICMP协议(网络控制报文协议):处理路由,协助IP层实现报文传送的控制机制,提供错误和信息报告。l ARP协议(正向地址解析协议):将网络层地址转换为链路层地址。l RARP协议(逆向地址解析协议):将链路层地址转换为网络层地址。(3) 第三层 传输层对应于OSI 7层参考模型的传输层,提供两种端到端的通信服务。其中TCP协议提供可靠的数据流运输服务,UDP协议提供不可靠的用户数据服务。该层有以下协议。l TCP协议:传输控制协议,提供可靠的面向连接的数据传输服务。l UDP协议:用户数

16、据报协议,一种无连接的数据传输协议,适合于一次少量数据传输情况,通信子网络相对可靠时,UDP的优越性便会得到充分的体现9。(4) 第四层 应用层对应于OSI 7层参考模型的应用层和表达层,应用层作用是把应用程序的数据传输到传输层,来进行信息的交换。它为应用程序提供各种使用协议,标注的应用层主要有以下协议。l FTP 文件传输协议:为文件传输提供路径,它允许数据从一台主机传送到另一台主机上,我们可以在FTP服务器上下载文件,或者往FTP服务器上传文件。l SMTP 简单邮件传输协议:实现互联网中电子邮件的传输功能。l HTTP 超文本传输协议:用来访问在WWW服务器上的各种页面。l DNS 域名

17、服务系统:用于实现主机域名到IP地址之间的转换。l TELNE虚拟终端服务:实现互联网中的工作站登陆到远程服务器的能力。l NFS网络文件系统:用于实现网络中不同主机之间的文件共享。l RIP路由信息协议:用于网络设备之间交换路由信息。3.2 数据封装当应用程序用TCP传送数据时,数据被传送入协议栈中,之后逐个通过每一层直到被当做一串比特流送入网络。其中每一层对收到的信息都要增加一些首部信息,必要时还要增加尾部信息,这个过程如图3-1所示。TCP传给IP的数据单元通常称TCP报文段,IP传给链路层的数据单元称作IP数据报,通过以太网传输的比特流称作帧。以太网数据帧的物理特性是其长度必须在46B

18、1500B之间10。用户数据用户数据TCP首部14B 20B 20B 4B应用数据应用数据应用数据Appl首部以太网驱动程序以太网首部以太网 尾部应用数据IP首部IP首部TCP首部TCP首部IP报文段TCP报文段以太网帧TCPIP以太网确切的说,图3-1中所示IP与链路接口之间传送的数据单元应该是分组,分组可以是一个IP数据报,也可以是IP数据报的一个片。图3-1 数据进入协议栈时的封装过程TCP和UDP都用一个16bit的端口号区分不同的应用程序,并将源端口号与目的端口号分别放入报文首部里,由于TCP、UDP、ICMP跟IGMP都要向IP传送数据,因此IP必须在生成的IP首部添加某种标识。1

19、表示ICMP协议,2表示IGMP协议,6表示TCP协议,17表示UDP协议。而链路接口分别要接收和发送IP、ARP和RARP数据,因此也需要在以太网帧首部中加入标识,以指明生成数据的网络协议层。所以,以太网的帧首部也有一个16bit的帧类型域这就是数据报文的封装,应用层数据是被逐层封装,直到数据链路层。要指出的是UDP数据与TCP数据唯一不同是UDP传给IP的信息单元称作UDP数据报,而且UDP的首部长为8B。3.3 数据帧分用应用程序应用程序应用程序应用程序UDPTCP ICMPIGMPIPARPRARP以太网驱动程序进入的帧以TCP或UDP首部端口号进行分用以IP首部中的协议值进行分用以以

20、太网首部中的帧类型进行分用 当目的主机收到一个以太网数据帧是,数据就开始从协议战中由底向上传送,与此同时去掉报文首部被各层协议加上的。每层协议盒都会检查报文首部中的协议标识,以确定接受数据的上层协议,这个过程称作分用10。图3-2显示这个如何过程如何发生的。图3-2 以太网数据帧的分用过程 3.4 协议层简介3.4.1 网际层协议网际协议是TCP/IP协议最重要的组成部分,是整个协议族的核心,主要负责网络层IP分组的传输。它位于网际层,为运输层提供服务,并从网络接入层请求服务。IP提供不可靠的、无连接的、尽最大努力交付的分组传输机制。IP提供了3个重要定义11:1) IP定义了数据传输所用的基

21、本单元,及规定了传输的数据格式。2) IP规定了IP分组的路由机制。3) 除了数据格式和路由机制以外,IP还包括了一组体现不可靠分组交付思路的规则。这些规则指明了主机和路由器应该如何处理IP分组、何时及如何发现错误信息以及在什么情况下可以放弃分组等等。IP是TCP/IP互联网设计里最基础的部分。3.4.1.1 IP地址分配1.IP地址计算机网络内的每台计算机必须具有唯一的身份标识符9。在TCP/IP协议簇中,这种标识符叫做IP地址。IP地址有两部分组成:网络号和主机号。其中网络号标识一个物理的网络,同一个网络上所有主机需要同一个网络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作端、服

22、务器、路由器或其它TCP/IP主机。对于同一网络号而言,主机号是唯一的。IP地址有两种表示形式:二进制表示和点分十进制表示。在IPv4中使用的IP地址是32位的二进制地址。但是为了是32位的二进制地址更简洁和便于阅读,通常采用点分十进制。在点分十进制中,每个IP地址的长度为4个字节,有4个8位域组成,称之为八为体。八为体由句点“.”分开,来表示为一个0255之间的十进制书。IP地址的4个域分别标明了网络号和主机号。 目前,因网络大小不同,Internet定义了5种IP地址类型:A类、B类、C类、D类、E类。如表3.1所示。表3.1 IP地址分类地址类型特征地址位开始地址结束地址A类0B0.0.

23、0.0127.255.255.255B类10B128.0.0.0191.255.255.255C类110B192.0.0.0223.255.255.255D类1110B224.0.0.0239.255.255.255E类1111B240.0.0.0255.255.255.255A类地址:用于支持特大型的网络,最高位为0,紧跟的7位表示网络号,其余24为表示主机号,总共允许有126个网络。 B类地址:用于支持大型和中型网络。最高两位总置于二进制的10,允许有16384个网络。 C类地址:用于局域网。高3位置为二进制110,允许2097152个网络。D类地址:用于多路广播组用户。高4位总置为110

24、,余下的为用于标明客户机所属的组E类地址:E类地址没有网络号和主机号之分,最高位置为1111。整个E类地址是一种不用的实验性地址。3.4.1.2 地址解析协议 要想在网上实现通信,主机必须知道对方主机的硬件地址9。IP地址编号只是一个逻辑地址,不是硬件地址。在网络中传递的帧必须含有目的地址的硬件地址。所以在进行底层数据传输的时候必须将IP地址转换为硬件地址,即介质访问控制地址。ARP协议就是将IP地址映射为硬件地址的过程。1. ARP缓存ARP在缓存中保存地址映射以备用。ARP缓存保存有动态和静态项。动态是自动添加和删除的,静态项则是保留Cache中直至计算机重启。2. 主机IP地址解析为硬件

25、地址 ARPS是使用映射表进行工作。映射表指的是地址解析协议高速缓存。(1) 当一台主机须要与另一台主机通信时,初始化ARP请求。当该IP断定IP地址是本地时,源主机开始在ARP缓存中查找目标主机的硬件地址。(2) 如果找不到映射,ARP建立一个请求,源主机IP地址和硬件地址都会包括在请求中,这个请求通过广播,是所有本地主机都可以接受处理。(3) 本地网上的每个主机都收到广播并寻找与之相符的IP地址。(4) 当目标主机断定请求的IP地址自己相符时,会直接发送一个ARP回复,将自己的硬件地址传给源主机。让源主机的IP地址和硬件地址更新它的ARP缓存。源主机收到回复后就建立起了通信。3解析远程IP

26、地址ARP广播的源主机是缺省网关的。目标IP地址如果是远程主机,ARP将广播一个路由器的地址。(1) 通信请求初始化时,得知目标IP地址为远程地址。源主机将在本地路由表中查找,如果没有找到,将认为是缺省网关的IP地址。在ARP缓存中查找符合网关记录的IP地址。(2) 如果没有找该网关记录,ARP将广播请求网关地址不在是目标主机的地址。路由用自己的硬件地址回应源主机的请求。源主机则将数据报传送到路由器以传送到目标主机的网络,最终到达目标主机。(3) 在路由器上,由IP决定目标IP地址是本地地址还是远程地址。若是本地,路由器用ARP获得硬件地址。远程的话,路哟器则在路由表中找该网关,然后通过ARP

27、获得硬件地址。数据报将直接发送下一个目标主机。(4) 目标主机接收到请求后,形成ICMP响应。由于源主机在远程网上,将在本地路由表找源主机网的网关。找到网关后,ARP就获得了它的硬件地址。(5) 若该网关硬件地址不在ARP中,则通过ARP广播获得。一旦获得硬件地址,ICMP响应就传送到路由器上,后传到源主机。3.4.1.3 IP分片/重组 正如上文3.2中描述的一样,物理网络层一般要限制每次发送帧的的最大长度。任何时候IP层接受到一份要发送的IP数据报是,它要判断向本地哪个接口发送数据,并查询该接口获得其(MTU最大运输单元也称最大数据长度),IP把MTU跟数据报长度比较。若数据报长度大于MT

28、U就需要分片。IP协议进行分段的原则就是,一个较长的IP分组经过一个MTU值较小的物理网络时,会把长分组分割成较小的分组进行传输。这个过程称为分片,每个分片包含一个分片首部,用来控制数据的分片和重组,它含有标识、标志和分片偏移3个字段12。把一份数据报分片以后,只有到达目的地后才进行重组。重组是由目的端IP层完成。IP首部中包含的数据分为分片和重组提供了足够的信息。3.4.1.4 ICMP协议 IP协议不是一个可靠的协议,它不能保证数据被送达。自然地为保证数据的送达应该由其它模块来完成。这个协议就是ICMP协议,经常被认为是IP层的一个组成部分13。所有的IP服务器和主机都支持这个协议。 当传

29、送的IP数据包发生错误,如主机不可达,路由不可达等,ICMP协议将会把错误信息封包,然后传送给主机,让主机处理错误。为防止ICMP的无限产生和传送,ICMP差错报文不会产生ICMP报文。 ICMP协议提供的差错服务有以下:(1) 目的站不可达 当路由器无法转发或者交付IP分组时,就丢弃这个分组,然后向源站发回目的站不可达的报文。(2) 超时 为避免循环路由,每个IP数据报的TTL倒计时为0时,就丢弃该分组,同时向源站发送超时文本。(3) 源站抑制 由于IP中没有流量控制机制,源站抑制报文为IP增加了流量控制的能力。当路由或目的站因为拥塞丢弃分组时,它就向分组的源站发送抑制报文。3.4.2 传输

30、控制协议3.4.2.1 TCP连接和释放TCP是一种面向连接的、全手工的、可靠的数据流传输协议14。它在每一次数据传输前先要在通信双方建立一条连接。TCP中建立连接采用3次握手如图3-3所示最简单情况下进行的连接。客户发送SYNSEQ =x服务器接收到SYN信号发送SYN+ACKSEQ=y,ACK=x+1接收到SYN+ACK发送ACKSEQ=x+1,ACK=y+1接收到ACK时间图3-3 连接建立三次握手示意图步骤如下: 1. 客户端发送第一个报文段,即SYN段,这个SYN报文段为报文段1。SYN标志置1,ACK标志置0。定义客户端打算建立连接的愿望。2. 服务器如果同意连接则发回报文段2,报

31、文段2中ACK标志为1,SYN标志为1。报文段2也称为SYN+ACK文段。3.客户端发送报文段3。这是一个确认报文段。报文段中ACK标志为1,SYN标志为0。在这3个报文段的交换过程中,即3次握手过程完成连接。在数据传输结束后,通信双方都可以发出释放连接请求。一个TCP连接是全双工的,每个方向须要单独的进行关闭。当双方没有数据发送时就发送一个终止位FIN。TCP连接释放需要4次握手,如图3-4所示步骤如下:1.首先要进行关闭的客户端TCP发送第一个报文段,即FIN报文段,FIN标志置1。执行主动关闭。2.服务器段TCP发送第二个报文段,即ACK报文段,用以确认FIN报文段。3.服务器端TCP可

32、以继续向客户端发送数据,当服务器没数据发送时,发送第三个报文段,即FIN报文段,FIN标志置1。关闭数据传送。4.客户端TCP发送第四个报文段,即ACK报文段,以确认服务器段TCP收到了FIN报文段。客户(应用程序关闭连接)发送FIN,SEQ=x接收到ACK不发送报文收到FIN发送ACK,ACK=y+2,SEQ=x+1时间服务器接收到FIN,发送ACKACK=x+1(应用程序关闭)发送FINACK=x+1,SEQ=y+1接收到ACKTCP对所有的报文采取一种简单的格式,包括携带数据的报文,甚至确认和建立连接和释放连的消息。TCP用滑动窗口来实现流量控制机制,接收者用该字段告诉发送者还有多少缓冲

33、空间可以用。传送者一次发送的数量总小于可用缓冲去,则不会引起溢出。当接收者处理完一定的数据后,便向发送者发送ACK,指出缓冲区空间已增加。发送者经确认及被告知窗口大小来决定发送数据的多少。TCP提供可靠的服务所使用的方法之一就是确认和重传。图3-4 TCP连接释放的4次握手3.4.2.2 用户数据报协议UDP也是IP之上的另外一个传输层协议。UDP与TCP不同,它是一个简单的面向数据报的运输层协议,它是一种无连接的传输层协议,它不提供可靠性的服务。与TCP不同,它并不提供给IP协议可靠机制、流量控制及错误恢复等功能。使用UDP数据服务的应用程序须自己提供可靠性。另外,UDP也不保证数据的传输顺

34、序。UDP是轻权协议,开销小,因其简单,适用于不需要可靠机制的情形。 第4章 系统总体设计在本系统的解决方案中,以MCS-51系列的单片机为CPU,负责TCP/IP协议栈实现的主体工作。以太网的接口芯片,负责收发以太数据包。实现数据的远程传输。在对数据的传输方式上选取电子邮件的方式,就是在单片机上实现的电子邮件发送功能,也就实现了对数据的远程传输。系统在单片机上实现嵌入式TCP/IP协议的方式上,选用“单片机+以太网网卡”方案实现,此种方案充分利用现有资源,节约成本,适合小系统的开发。4.1 硬件总体功能结构设计完整的TCP/IP协议是由许多个协议组成的协议簇,其功能强大,结构复杂,占用系统资

35、源较大。目前嵌入式系统按性能可大致分为两种:RTOS+高档32位CPU的系统和由8/16位MCU组成的系统。对TCP/IP协议实现,前者软硬件资源丰富,实现起来很容易,而后者由于资源相对有限,需直接对硬件操作而较为困难。因此在后者上实现TCP/IP协议更具有实际意义。所以我选用MCS-51系列单片机。MCS-51系列单片机优点很多,首先,应用普及,性价比高,而且形小体轻功耗低、软硬件开发灵活方便。8051单片机的基本特性如下15:1.8位CPU,CPU有运算器和控制器组成。;2.内部共有4个双向的8位并行I/O接口,一个全双工串行接口。串行接口内带有缓冲器;3.片内拥有128字节的静态随机存取

36、存储器SRAM,作为片内数据存储器和4K ROM 程序存储器,还有21个特殊功能寄存器SFR,用于编程控制;4.片内有两个16为加法计数器,分别为T0和T1。5.程序和数据存储空间分开,可各寻址64K;6片内中断逻辑具有5个中断源,两个优先级,并且每个中断源都被设置固定的入口地址,是编程简化;7片内有振荡电路,还有总线控制逻辑等。要想实现数据在Internet上的传输,就需将单片机联入Internet。我们选取RTL8019AS16芯片实现联网。RTL8019AS是一种NE2000的兼容网卡芯片,支持以太网全双工通信方式,软件移植性好;跟MCS-51单片机的接口简单;对于MCS-51单片机来说

37、RTLS8019AS的带宽充裕。系统硬件总体功能结构如图4-1 所示。与网络接口电路网卡芯片串行EEPROMMCU(89C51)键盘模块LED显示模块图4-1 硬件结构框图在系统功能的实现上,此次设计主要是在软件上着手进行设计,对硬件设计并未深入。由于选取MCS-51单片机,故而选取C语言作为开发语言。因为用C语言比汇编具有很多的优势。再有就是我自身而言C语言相对熟悉。C语言有如下特点10:1语言简洁、紧凑,使用灵活、方便。2语法限制不太严格,程序设计自由度大。3用C语言编写的程序移植性好(与汇编语言比)。基本上不须修改就可以运用于各种计算机和操作系统。4生成目标代码质量高,程序执行效率高。5

38、允许直接访问物理地址,能进行位才做,可以直接对硬件进行操作。 6. 程序模块化,便于资源共享,软件的维护和升级。从而保证系统的可靠性和安全性。4.2 TCP/IP协议层选择及分析Internet网络通信中,TCP/IP协议簇非常庞大,需要占用大量的系统资源。嵌入式系统对信息进行TCP/IP协议处理,使其变成在Internet上可传输的IP数据包。由于51系列单片机内部资源有限,不可能实现标准的Internet的TCP/IP协议簇,也不需要实现标准的TCP/IP协议簇。可根据具体应用需求对标准的TCP/IP协议簇进行适当的裁剪修改, 形成一个真正适用的嵌入式TCP /IP 协议子集。通过裁减对原

39、协议进行有选择地实现。这样在实现数据的远程传输上,我们就可以从TCP/IP协议子集上实现。考虑到51系列单片机资源有限,在对协议的选取上我们应考虑到系统资源和保证协议在功能及机制上的完整性。4.2.1 链路层协议选择及分析链路层主要作用是为其上层协议提供数据传输服务的。根据物理层的不同, 链路层有多种协议可以选择。其中主要有以太网、令牌环网、FDDI及RS- 232串行线路协议等。以太网上数据的传输是采用网络的MAC地址来进行识别的。这就是要求系统有实现IP地址与MAC地址的转换的功能, 即ARP协议。其可分为ARP请求和ARP响应两种协议, 系统要实现与其它计算机的通信, 就须实现ARP响应

40、协议, ARP请求协议在本地建立了一个IP地址与MAC地址的映像, 保证了对外通信的有的放矢。RARP(逆向地址解析)协议主要用于解决如何从MAC地址得到IP地址, 主要用于无盘工作站中, 可以无需实现。4.2.2 网络层协议选择及分析IP是TCP/IP最重要的组成部分,是整个协议的基础。目前版本号是4,也称IPv4。所有的TCP、UDP、IGMP及ICMP都是以IP数据报格式传输。IP提供不可靠的、无连接的、尽最大努力交付的分组传输机制。“不可靠的”按是指它不能保证IP分组成功地传送到目的站。“无连接的”指的是IP数据包可以不按顺序收发。IP提供的是“尽最大努力交付的”传输服务,就是说IP协

41、议尽量的发送每一个IP数据包,不随意放弃数据包,只有在资源用尽或底层网络出现错误时才有可能出现不可靠性。在IP进行数据交付过程中,如果遇到不能正常交付的情况,则需要通知源站采取措施来补救。由于IP自身没有提供差错报告和差错纠正机制,这就需要其他协议来完成,这就是ICMP协议。ICMP配合IP使用,提高了数据包交付成功的机会。4.2.3 传输层协议选择及分析 TCP协议是一种提供可靠的端到端、面向字节流连接的服务。UDP也是IP之上的一个传输协议。UDP是一个简单的快速的,但也是不可靠和无连接的。但是对于大多数Internet应用而言,需要的是可靠的、能按序递交的传输层协议。所以这次设计选取了T

42、CP而不是UDP。TCP为IP服务增加了面向连接和可靠性的特点。TCP主要特点如下17:1. 面向连接:使用两个TCP的应用在发生数据传输之前,必须建立一个连接,而在数据传送完后要终止连接。2全双工:一旦建立连接,就支持数据的双向传输。3字节流传输:TCP是面向字节流的。一个TCP连接就是一个字节流。4可靠:利用重发和流控机制来保证通信的可靠。5确认:TCP发送的每个报文都要被方确认。这样就知道数据是否丢失,是否重传丢失数据。6流控制:当发送方以一定的速率发送数据时,而接收方来不及处理时。TCP采用滑动窗口协议来进行流量控制,以防止数据发送过快导致接收方来不及处理。7校验和计算:校验和是对是对

43、伪首部、TCP首部和、用户数据的计算结果。计算是为了提供额外的错误监测。4.2.4 应用层协议选择 电子邮件协议是最流行的网络服务协议。SMTP协议是常用的电子邮件传送协议。它是基于TCP/IP的应用层的协议,作用是:当发送方与支持SMTP协议的服务器连接时,将邮件由发送方准确无误地传送到接收方。SMTP是一种简单的基于文本的电子邮件传输协议18。SMTP支持:l 文本、声音、图像和视频的报文。l 可以邮件发送个一个或多个收信人。l 可以把报文发送给Internet以外的网上用户。用户文件系统发送SMTP接收SMTPSMTP命令邮件内容SMTP响应用户文件SMTP的通信模型是基于TCP运输协议

44、的。模型如图4-2所示图4-2 SMTP通信模型示意图SMTP协议是一种请求响应协议,发送方发送命令,接收方给予响应,两者通过这种方式进行交付,以完成邮件传输的三个阶段:建立连接、传输数据和终止连接。1. 连接建立客户端主动与服务器建立一条TCP连接。服务器会返回一个响应。若客户端准备就绪, 客户端个向服务器发送HELO报文,以标识发送方的身份。服务器给予响应。2. 建立连接在客户端与服务器建立连接后,就可以进行报文传输了。首先,客户端发送MAIL报文标识报文的发送发,服务器返回响应。若服务器准备接收,客户端发送RCPT报文标识报文接收方,服务器返回响应。若服务器能够识别接收人,客户端发送DA

45、TA报文,指示将要发送的邮件数据,服务器返回响应。客户端连续的将邮件按行发送,服务器检测到邮件结束指示后,给予响应。3. 连接终止报文传送成功后,客户就终止连接。客户发送QUIT命令终止连接。 第5章 TCP/IP协议栈的实现5.1 ARP协议的实现 在网络底层的物理传输过程中,是通过MAC地址(硬件地址)来识别主机的,它一般也是全球唯一的。以太网卡的物理地址是48bit地址。所以就需要将IP地址转换为MAC地址。这个协议就是地址解析协议。5.1.1 ARP分组格式以太网目的地址以太网源地址发送端以太网地址发送端IP地址目的以太网地址目的IP地址OP协议类型硬件类型帧类型硬件地址长度协议地址长

46、度以太网首部ARP请求/应答在以太网上解析IP地址时, ARP请求和应答分组格式如图5-1。图5-1 用于以太网的ARP请求应答格式图5-1中,以太网报头的头两个字段是以太网的源地址、目的地址,若目的地址为全1则为广播地址,电缆上所有的以太网接口都接收广播数据帧,帧类型字段是用来表示后面数据的类型,ARP请求或应答,该字段的值是0x0806,硬件类型用来表示硬件地址的类型,它的值为1时表示的是以太网地址。协议类型字段表示所要映射的协议地址的类型,它的值为0x0800时表示的是IP地址。硬件地址和协议地址长度分别指出硬件地址和协议地址的长度。对于以太网上IP地址的ARP请求或应答,它们的值分别是6和4。操作字段(OP)指出了4种操作类型,分别是ARP请求(值1)、ARP应

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号