本科论文基于单片机的网络通讯协议研究及应用基于单片机的TCPIP技术研究及应用.docx
《本科论文基于单片机的网络通讯协议研究及应用基于单片机的TCPIP技术研究及应用.docx》由会员分享,可在线阅读,更多相关《本科论文基于单片机的网络通讯协议研究及应用基于单片机的TCPIP技术研究及应用.docx(42页珍藏版)》请在冰豆网上搜索。
![本科论文基于单片机的网络通讯协议研究及应用基于单片机的TCPIP技术研究及应用.docx](https://file1.bdocx.com/fileroot1/2023-8/7/2726fa33-99c5-4aaa-8156-98b56cdf38eb/2726fa33-99c5-4aaa-8156-98b56cdf38eb1.gif)
本科论文基于单片机的网络通讯协议研究及应用基于单片机的TCPIP技术研究及应用
四川理工学院毕业设计(论文)
基于单片机的TCP/IP技术研究及应用
学生:
学号:
专业:
班级:
指导教师:
摘要
今天,嵌入式Internet的应用己经深入到日常生活的各个方面。
研究嵌入式TCP/IP协议在内部资源有限微处理器上的实现,具有重要的现实意义和经济价值。
论文首先介绍了嵌入式系统的组成及对嵌入式Internet产生。
通过对现有的嵌入Internet及比较了目前几种单片机接入Internet实现方案的前提下,应用了一种基于单片机自身特点的具体的解决方案:
嵌入式TCP/IP协议。
通过对TCP/IP网络协议的深入分析,对TCP/IP协议进行合理的简化,将其嵌入到内部资源有限的微处理器中,实现以电子邮件方式进行远程数据传输。
关键字:
嵌入式;Internet;TCP/IP;单片机
ABSTRACT
Nowadays,theapplicationofembeddedInternethascomeintoallaspectsofpeople'sdailylife.ResearchtheembeddedTCP/IPprotocolonmicroprocessorwithlimitedinternalresourcesrun,ithasimportantrealisticsignificanceandeconomicvalue.occurrenceoftheembeddedInternetandcompositionoftheembeddedsystemaresummarizedinthisthesis.ThenresearchingthestatusinquoofembeddedInternettechnologyandanalyzingandcomparingseveralprojects,basedonthecharacteristicof51MCU,asolutionschemeoftheconnectionofMCUandInternetisshowedinthispaper.embeddedTCP/IPprotocols.AfteranalyzingtheTCP/IPprotocolsdeeply,theTCP/IPprotocolshavebeenreasonablysimplified,whichcanbeembeddedintomicroprocessorwithlimitedinternalresources.Thus,itcanrealizethelong-distancedatatransmissionbyE-mail.
Keywords:
Embedded;Internet;TCP/IP;MCU
目录
摘要I
ABSTRACTII
第1章引言1
1.1论文选题的背景及意义1
1.2本文主要工作1
第2章方案的选取3
第3章网络协议5
3.1TCP/IP分层模型5
3.2数据封装6
3.3数据帧分用7
3.4协议层简介8
3.4.1网际层协议8
3.4.1.1IP地址分配9
3.4.1.2地址解析协议10
3.4.1.3IP分片/重组11
3.4.1.4ICMP协议11
3.4.2传输控制协议12
3.4.2.1TCP连接和释放12
3.4.2.2用户数据报协议13
第4章系统总体设计14
4.1硬件总体功能结构设计14
4.2TCP/IP协议层选择及分析15
4.2.1链路层协议选择及分析16
4.2.2网络层协议选择及分析16
4.2.3传输层协议选择及分析16
4.2.4应用层协议选择17
第5章TCP/IP协议栈的实现19
5.1ARP协议的实现19
5.1.1ARP分组格式19
5.1.2ARP协议软件实现19
5.2IP协议及其实现22
5.2.1IP数据报格式22
5.2.2IP软件实现22
5.3ICMP报文协议的实现24
5.4TCP协议的实现25
5.4.1TCP的报文段25
5.4.2TCP协议的实现26
5.4.2.1运输控制块TCB26
5.4.2.2处理传入数据模块27
5.4.2.3处理数据输出模块28
5.4.2.4定时管理器29
5.5SMTP协议的实现31
5.5.1客户机与服务器之间的交互31
5.5.2SMTP邮件协议的实现32
第6章结束语34
致谢35
参考文献36
附录37
第1章引言
1.1论文选题的背景及意义
嵌入式Internet是本世纪计算机世界的一项热门技术。
目前,嵌入式系统已经成为我们生活的一部分,应用领域不断扩大。
嵌入式设备的联网已经开始。
但是,由于嵌入式系统资源有限,一些传统的Internet技术和设备无法直接应用。
这种趋势使着嵌入式Internet技术的产生和迅速发展。
嵌入式Internet(简称EI,EmbeddedInternet)通常可以理解为把TCP/IP协议作为一种嵌入式的应用,从而实现嵌入式设备Internet的技术[1]。
近年来以单片机(MicroComputerUnit,MCU)为代表的嵌入式系统在工业探测系统、智能仪器、智能家电和信息家电领域得到了广泛应用。
如今嵌入式系统带来的年产值早己超过万亿美元,1997年来自美国嵌入式系统大会的报告指出,未来几年仅基于嵌入式的全数字电视产品,就将在美国产生一个每年上千亿美元的新市场[2]。
在这样的背景下,嵌入网络得以快速发展,目前世界许多国家的科研机构和各大公司纷纷加入了嵌入式Internet技术的研究行列。
另据网络专家预测,将来在Internet上传输的信息中,将有70%的信息来自于小型嵌入式系统[3]。
现正的我们可以说是正由PC机成熟技术向嵌入式产品转化的后PC时期。
因此,研究嵌入式系统的Internet接入技术,将会有极具现实意义和经济价值。
如何利用单片机接入Internet网络是当今最热门的技术之一。
鉴于8/16位单片机大量存在于嵌入式领域,在单片机上实现TCP/IP协议时嵌入式Internet的关键技术之一。
本文在这样的背景下,试图开展一些有益的研究。
1.2本文主要工作
本文主要工作是将TCP/IP协议嵌入低档单片机中。
通过89C51系列单片机和网卡芯片RTL8019AS在单片机上实现Internet接入,在对TCP/IP协议深入分析的基础上,对TCP/IP协议栈进行合理的简化后嵌入到单片机中。
具体的工作有:
1.对TCP/IP协议嵌入低档单片机的硬件系统框图的设计。
2.对TCP/IP协议栈进行研究,并分析各协议,完成软件结构的总体规划设计。
3.对我们需要的协议进行必要的精简,以达到软件的实现。
课题的难点在于要对TCP/IP协议熟悉,要对其有较为全面和深入的研究,由于低档单片机资源有限,就必须根据需求对TCP/IP协议进行精简,精简后固化到单片机中实现单片机中数据的远程传输。
第2章方案的选取
嵌入式Internet技术的实现方法有很多种,体系结构不同、使用的芯片不同
采用的底层技术不同,采用的软件技术不同等等。
大体可有以下几种方式:
1.PC网关与专用网结合接入Internet
嵌入式系统和PC网关连接通信,连接方式采用RS482、RS232、RS485等总线技术组成专用网。
在专用网中由PC网关实现TCP/IP协议,并完成与Internet连接,实现嵌入式系统与Internet之间的信息交换。
PC网关为嵌入式系统提供通信和管理服务。
如安全防护、协议处理、监听设备的运行情况、向外界则提供Web服务器等。
这种技术需要一个专用的PC网关,而且PC网关跟嵌入式系统之间通信也会受到网络协议的制约。
这种方案对嵌入式系统处理器和资源要求都比较低,开发相对容易,足以解决嵌入式系统与Internet之间通信的问题,特别适合在嵌入式系统多且集中的环境中应用。
不足之处在于接入成本高,不适合大范围的推广。
该方案适合于大型和昂贵工业设备的上网需求,不适合在信息家电及网络智能等领域推广[4]。
基于这种技术模型,EmWare公司开发出嵌入式微Internet网络技术EMIT[5](embeddedmicrointernetworkingtechnology)。
EMIT由emMicro、emGateway和网络浏览器组成,并在MCU内部以软件方式嵌入emNet协议。
如图2-1所示。
图2-1采用专用嵌入式网络协议方式
2.高性能MCU+RTOS
采用高档片机在RTOS平台上进行软件的开发,在单片机上实现对协议的处理。
由于采用高档单片机,可以实现很多复杂功能。
这种方法的缺点是:
对程序员的要求高,须对RTOS和TCP/IP协议都要很熟悉,开发周期也较长,难度较大。
同时高档单机价格不菲,因此硬件开发成本较高[6]。
如图2-2所示。
图2-2在嵌入式实时操作系统RTOS上运行TCP/IP
3.使用专用的嵌入式芯
专用嵌入式芯片是一种内置了通信和控制功能的单片机,采用这种方案的芯片有UbiCom公司的IP2022,iReady公司的InternetTuner,SeikoInstruments公司的S7600A,ConnectOne公司的iChip等[7]。
这些芯片固化了TCP/IP协议栈,支持HTTP,SMTP,MIME,POP3等协议,可进行E_mail的收发及Web浏览。
此方案更为方便,无需操作系统,大大的节省资源,开发难度相对较低,要求对TCP/IP协议与相关接口熟悉,技术实现也相对困难,且对处理器性能要求较高,需要提供大容量存储器。
这类芯片功能强,能够实现多种网络协议,一般提供有相应的TCP/IP网络协议栈。
但是这种芯片价格偏高,用户需要支付软硬件费用,不易于实现市场的广泛应用。
如图2-3所示。
图2-3直接在嵌入式处理器上实现TCP/IP协议
4.使用普通单片机和网络控制芯片
通过在系统中集成网络接口芯片,采用软件方式实现TCP/IP协议栈,使得嵌入式系统具备网络功能从而接入Internt。
单片机通过加载TCP/IP协议控制网卡来进行数据的传输,并通过TCP/IP协议接入互联网。
远程控制端的操作指令的执行通过网络找到目标,经网卡接口传入单片机,通过在单片机上加载响应的程序来转换成物理帧格式,再让TCP/IP转换成相应的应用层控制指令。
这种方法实现起来比较简单,而且可根据实际需要进行功能扩展,但是需要在单片机上实现嵌入式TCP/IP网络协议,软件编程的工作量比较大[8]。
由于采用普通单片机,所以其优点是成本低,单片机体积小,而且产品可以自己搭建,有利于产品的维护和二次开发,易于以极高的性价比向诸多需要实现嵌入式接入Internet的场合推广。
本文设计的系统就是采用这种技术方案。
第3章网络协议
3.1TCP/IP分层模型
TCP/IP采用分层体系结构,它与开放系统互联OSI模型的层次结构相似。
如表2-1所示,它可以分为4层,由低到高依次为:
链路层、网际层、传输层和应用层[9]。
表2-1OSI参考模型与TCP/IP参考模型比较
OSI参考模型
OSI层次号
TCP/IP层次描述
主要应用协议
应用层
7
应用层
FTP、e-mail和Telnet等
表示层
6
会话层
5
传输层
TCP和UDP
传输层
4
网络层
3
网际层
IP、ICMP和IGMP
链路层
设备驱动及接口卡
数据链路层
2
物理层
1
TCP/IP分层模型的四个协议层分层完成如下功能。
(1)第一层链路层
链路层包括用于协作IP数据在已有网络介质上传输协议。
实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。
相反它定义像地址解析协议这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
(2)第二层网际层
对应于OSI7层参考模型的网络层,网络层主要解决计算机之间的通信问题,它负责管理不同设备之间的数据交换,它是Internet通信子网的最高层,它所提供的是不可靠的无连接数据报服务,无论传输是否正确,不做验证、不发确认,也不保证分组的正确顺序。
网际层主要有以下协议。
●IP协议:
使用IP地址确定收发端,提供端到端的“数据报”传递,是TCP/IP协议簇的核心协议。
●ICMP协议(网络控制报文协议):
处理路由,协助IP层实现报文传送的控制机制,提供错误和信息报告。
●ARP协议(正向地址解析协议):
将网络层地址转换为链路层地址。
●RARP协议(逆向地址解析协议):
将链路层地址转换为网络层地址。
(3)第三层传输层
对应于OSI7层参考模型的传输层,提供两种端到端的通信服务。
其中TCP协议提供可靠的数据流运输服务,UDP协议提供不可靠的用户数据服务。
该层有以下协议。
●TCP协议:
传输控制协议,提供可靠的面向连接的数据传输服务。
●UDP协议:
用户数据报协议,一种无连接的数据传输协议,适合于一次少量数据传输情况,通信子网络相对可靠时,UDP的优越性便会得到充分的体现[9]。
(4)第四层应用层
对应于OSI7层参考模型的应用层和表达层,应用层作用是把应用程序的数据传输到传输层,来进行信息的交换。
它为应用程序提供各种使用协议,标注的应用层主要有以下协议。
●FTP文件传输协议:
为文件传输提供路径,它允许数据从一台主机传送到另一台主机上,我们可以在FTP服务器上下载文件,或者往FTP服务器上传文件。
●SMTP简单邮件传输协议:
实现互联网中电子邮件的传输功能。
●HTTP超文本传输协议:
用来访问在WWW服务器上的各种页面。
●DNS域名服务系统:
用于实现主机域名到IP地址之间的转换。
●TELNE虚拟终端服务:
实现互联网中的工作站登陆到远程服务器的能力。
●NFS网络文件系统:
用于实现网络中不同主机之间的文件共享。
●RIP路由信息协议:
用于网络设备之间交换路由信息。
3.2数据封装
当应用程序用TCP传送数据时,数据被传送入协议栈中,之后逐个通过每一层直到被当做一串比特流送入网络。
其中每一层对收到的信息都要增加一些首部信息,必要时还要增加尾部信息,这个过程如图3-1所示。
TCP传给IP的数据单元通常称TCP报文段,IP传给链路层的数据单元称作IP数据报,通过以太网传输的比特流称作帧。
以太网数据帧的物理特性是其长度必须在46B~1500B之间[10]。
确切的说,图3-1中所示IP与链路接口之间传送的数据单元应该是分组,分组可以是一个IP数据报,也可以是IP数据报的一个片。
图3-1数据进入协议栈时的封装过程
TCP和UDP都用一个16bit的端口号区分不同的应用程序,并将源端口号与目的端口号分别放入报文首部里,由于TCP、UDP、ICMP跟IGMP都要向IP传送数据,因此IP必须在生成的IP首部添加某种标识。
1表示ICMP协议,2表示IGMP协议,6表示TCP协议,17表示UDP协议。
而链路接口分别要接收和发送IP、ARP和RARP数据,因此也需要在以太网帧首部中加入标识,以指明生成数据的网络协议层。
所以,以太网的帧首部也有一个16bit的帧类型域这就是数据报文的封装,应用层数据是被逐层封装,直到数据链路层。
要指出的是UDP数据与TCP数据唯一不同是UDP传给IP的信息单元称作UDP数据报,而且UDP的首部长为8B。
3.3数据帧分用
当目的主机收到一个以太网数据帧是,数据就开始从协议战中由底向上传送,与此同时去掉报文首部被各层协议加上的。
每层协议盒都会检查报文首部中的协议标识,以确定接受数据的上层协议,这个过程称作分用[10]。
图3-2显示这个如何过程如何发生的。
图3-2以太网数据帧的分用过程
3.4协议层简介
3.4.1网际层协议
网际协议是TCP/IP协议最重要的组成部分,是整个协议族的核心,主要负责网络层IP分组的传输。
它位于网际层,为运输层提供服务,并从网络接入层请求服务。
IP提供不可靠的、无连接的、尽最大努力交付的分组传输机制。
IP提供了3个重要定义[11]:
1)IP定义了数据传输所用的基本单元,及规定了传输的数据格式。
2)IP规定了IP分组的路由机制。
3)除了数据格式和路由机制以外,IP还包括了一组体现不可靠分组交付思路的规则。
这些规则指明了主机和路由器应该如何处理IP分组、何时及如何发现错误信息以及在什么情况下可以放弃分组等等。
IP是TCP/IP互联网设计里最基础的部分。
3.4.1.1IP地址分配
1.IP地址
计算机网络内的每台计算机必须具有唯一的身份标识符[9]。
在TCP/IP协议簇中,这种标识符叫做IP地址。
IP地址有两部分组成:
网络号和主机号。
其中网络号标识一个物理的网络,同一个网络上所有主机需要同一个网络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作端、服务器、路由器或其它TCP/IP主机。
对于同一网络号而言,主机号是唯一的。
IP地址有两种表示形式:
二进制表示和点分十进制表示。
在IPv4中使用的IP地址是32位的二进制地址。
但是为了是32位的二进制地址更简洁和便于阅读,通常采用点分十进制。
在点分十进制中,每个IP地址的长度为4个字节,有4个8位域组成,称之为八为体。
八为体由句点“.”分开,来表示为一个0~255之间的十进制书。
IP地址的4个域分别标明了网络号和主机号。
目前,因网络大小不同,Internet定义了5种IP地址类型:
A类、B类、C类、D类、E类。
如表3.1所示。
表3.1IP地址分类
地址类型
特征地址位
开始地址
结束地址
A类
0×××××××B
0.0.0.0
127.255.255.255
B类
10××××××B
128.0.0.0
191.255.255.255
C类
110×××××B
192.0.0.0
223.255.255.255
D类
1110××××B
224.0.0.0
239.255.255.255
E类
1111××××B
240.0.0.0
255.255.255.255
A类地址:
用于支持特大型的网络,最高位为0,紧跟的7位表示网络号,其余24为表示主机号,总共允许有126个网络。
B类地址:
用于支持大型和中型网络。
最高两位总置于二进制的10,允许有16384个网络。
C类地址:
用于局域网。
高3位置为二进制110,允许2097152个网络。
D类地址:
用于多路广播组用户。
高4位总置为110,余下的为用于标明客户机所属的组
E类地址:
E类地址没有网络号和主机号之分,最高位置为1111。
整个E类地址是一种不用的实验性地址。
3.4.1.2地址解析协议
要想在网上实现通信,主机必须知道对方主机的硬件地址[9]。
IP地址编号只是一个逻辑地址,不是硬件地址。
在网络中传递的帧必须含有目的地址的硬件地址。
所以在进行底层数据传输的时候必须将IP地址转换为硬件地址,即介质访问控制地址。
ARP协议就是将IP地址映射为硬件地址的过程。
1.ARP缓存
ARP在缓存中保存地址映射以备用。
ARP缓存保存有动态和静态项。
动态是自动添加和删除的,静态项则是保留Cache中直至计算机重启。
2.主机IP地址解析为硬件地址
ARPS是使用映射表进行工作。
映射表指的是地址解析协议高速缓存。
(1)当一台主机须要与另一台主机通信时,初始化ARP请求。
当该IP断定IP地址是本地时,源主机开始在ARP缓存中查找目标主机的硬件地址。
(2)如果找不到映射,ARP建立一个请求,源主机IP地址和硬件地址都会包括在请求中,这个请求通过广播,是所有本地主机都可以接受处理。
(3)本地网上的每个主机都收到广播并寻找与之相符的IP地址。
(4)当目标主机断定请求的IP地址自己相符时,会直接发送一个ARP回复,将自己的硬件地址传给源主机。
让源主机的IP地址和硬件地址更新它的ARP缓存。
源主机收到回复后就建立起了通信。
3.解析远程IP地址
ARP广播的源主机是缺省网关的。
目标IP地址如果是远程主机,ARP将广播一个路由器的地址。
(1)通信请求初始化时,得知目标IP地址为远程地址。
源主机将在本地路由表中查找,如果没有找到,将认为是缺省网关的IP地址。
在ARP缓存中查找符合网关记录的IP地址。
(2)如果没有找该网关记录,ARP将广播请求网关地址不在是目标主机的地址。
路由用自己的硬件地址回应源主机的请求。
源主机则将数据报传送到路由器以传送到目标主机的网络,最终到达目标主机。
(3)在路由器上,由IP决定目标IP地址是本地地址还是远程地址。
若是本地,路由器用ARP获得硬件地址。
远程的话,路哟器则在路由表中找该网关,然后通过ARP获得硬件地址。
数据报将直接发送下一个目标主机。
(4)目标主机接收到请求后,形成ICMP响应。
由于源主机在远程网上,将在本地路由表找源主机网的网关。
找到网关后,ARP就获得了它的硬件地址。
(5)若该网关硬件地址不在ARP中,则通过ARP广播获得。
一旦获得硬件地址,ICMP响应就传送到路由器上,后传到源主机。
3.4.1.3IP分片/重组
正如上文3.2中描述的一样,物理网络层一般要限制每次发送帧的的最大长度。
任何时候IP层接受到一份要发送的IP数据报是,它要判断向本地哪个接口发送数据,并查询该接口获得其(MTU最大运输单元也称最大数据长度),IP把MTU跟数据报长度比较。
若数据报长度大于MTU就需要分片。
IP协议进行分段的原则就是,一个较长的IP分组经过一个MTU值较小的物理网络时,会把长分组分割成较小的分组进行传输。
这个过程称为分片,每个分片包含一个分片首部,用来控制数据的分片和重组,它含有标识、标志和分片偏移3个字段[12]。
把一份数据报分片以后,只有到达目的地后才进行重组。
重组是由目的端IP层完成。
IP首部中包含的数据分为分片和重组提供了足够的信息。
3.4.1.4ICMP协议
IP协议不是一个可靠的协议,它不能保证数据被送达。
自然地为保证数据的送达应该由其它模块来完成。
这个协议就是ICMP协议,经常被认为是IP层的一个组成部分[13]。
所有的IP服务器和主机都支持这个协议。
当传送的IP数据包发生错误,如主机不可达,路由不可达等,ICMP协议将会把错误信息封包,然后传送给主机,让主机处理错误。
为防止ICMP的无限产生和传送,ICMP差错报文不会产生ICMP报文。
ICMP协议提供的差错服务有以下:
(1)目的站不可达当路由器无法转发或者交付IP分组时,就丢弃这个分组,然后向源站发回目的站不可达的报文。
(2)超时为避免循环路由,每个IP数据报的TTL倒计时为0时,就丢弃该分组,同时向源站发送超时文本。
(3)源站抑制由于IP中没有流量控制机制,源站抑制报文为IP增加了流量控制的能力。
当路由或目的站因为拥塞丢弃分组时,它就向分组的源站发送抑制报文。
3.4.2传输控制协议
3.4.2.1TCP连接和释放
TCP是一种面向连接的、全