英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
AVR单片机TCP/IP协议的设计与实现
摘要
随着嵌入式技术的飞速发展,物联网的研究与实现将是一场新的技术革命,而物联网的实现是在物联网的基础上进行的。因此,实现单片机之间的通信功能尤为重要。基于嵌入式微控制器的特点, 我们分析了传统PC的TCP/IP协议,在适当定制的TCP/IP协议簇的基础上变现嵌入式单片机的特点。最后,我们意识到减少TCP / IP协议簇适合嵌入式单片机,特别是在AVR单片机平台上的应用。
关键词: 物联网,Webit,互联网的嵌入式系统,TCP/ IP协议,以太网
1. 介绍
物联网是指通过信息网络,如RFID传感装置,红外传感器、全球定位系统、激光扫描仪等,在协议中,加入任何内容与互联网之间的信息,可以实现智能识别,跟踪,监控和管理。物联网的概念在1999才刚刚被人们所提出。这是各种各样的物体在网络当中被联系到一起。这意味着2个方面:第一个是,物联网的核心和基础是互联网,基于互联网扩展和扩展; 第二个是,其客户端延伸和扩展到了任何位置,使信息可以进行交换与通信[1-3]。
随着计算机技术和网络技术的飞速发展,互联网已成为信息传播的重要手段,需要越来越多的嵌入式设备来实现互联网的净网工作[4-5]。 相对于电脑, 嵌入式系统的计算和存储资源相对有限;因此,要实现所有的TCP / IP协议在嵌入式单片机协议簇是不现实的。所以, 为了节省系统资源,保证系统的可靠性,提高每个嵌入式系统的性能的条件下,有必要针对模块化简化的TCP/IP协议。
2. 适用设备和测试平台
该是一个整体的解决方案,使设备智能和网络化。它是以互联网为基础的新型网络系统结构,它的基本思想是一个独立的系统结构,低成本的万维网服务器嵌入设备,使设备具有依赖于网络的特性。
该是一个嵌入式网络产品由辽宁自行建立的嵌入式技术省级重点实验室。引擎1.0是成功通过技术鉴定,并在2000年的商标注册,与引擎2.0 (互联网非标电气设备接入服务器) 通过辽宁省科技委员会2001次科技成果鉴定会。考虑到该是8位AVR单片机,它的存储单元是非常有限的, 因此设计一种适合产品的TCP/IP协议簇,是非常重要的。
Webit 2.0性能如下:
- 不依赖于计算机系统结构;
- 采用ATMEL公司的AVR RISC处理器;
- 用户自定义的网页;
- 用户自定义的CGI程序用于控制;
- 14位I/O接口(TTL电平);
- TTL电平UART支持115200个基点;
- 10 M以太网接口(RJ-45);
系统编程(ISP);
在处理器的以太网控制芯片RTL8019AS的概述:
RTL8019AS是一个高度集成的以太网控制器,它可以简单的回答即插即用NE2000兼容适配器,它具有双重特性,功率下降。通过三电平控制特性,RTL8019AS是在所有已知的事物中针对网络设备的绿色电脑最理想的选择。双重功能可以模拟发送和接收的双绞线和双重的以太网交换机之间的传播。这不仅可以使带宽从10 Mbps提升到20 Mbps,同时也避免读muliaccess协议由于以太网通道所造成的麻烦。 微软的插件和播放功能,可以减轻用户较低的收入问题,并专注于适配器资源, 如输入和输出、中断、内存地址等。然而, 在没有特殊应用的即插即用功能的兼容性,RTL8019AS提供跳线和跳线选择支持的功能。
为了提供完整的插件和播放解决方案,RTL8019AS有集成10BaseT的收发器,并自动检测功能之间的AUI,BNC接口。此外,8 IRQ总线和16基本地址为总线的大型资源情况提供舒适的环境。
RTL8019AS支持16 k,32 k和64 k字节内存布朗和闪存接口。它提供了页面模型函数,它可以只支持4米字节布朗16 k字节的内存系统空间。布朗的无用的命令是用来释放布朗
内存空间。RTL8019AS的单片机设计的16 k字节存储器,这样不仅提供了更多友好的功能,而且还节省了SRAM存储资源。
3.Webit简化TCP / IP的设计协议栈
AVR单片机,由于相对有限的资源,完整的TCP / IP协议簇的功能是不能实现的。所以根据的特点AVR单片机,我们原始的TCP / IP协议集群获得减少了TCP / IP协议簇。
与此同时,基于TCP / IP协议栈的体系结构,我们适应网络的设计方法片模型。TCP / IP协议的架构集群简化后包含了ARP、IP、ICMP TCP,UDP协议处理模型,等等(6 - 8)。每一层的TCP / IP协议栈的体系结构是作为一个设计的独立功能的模块,处理他们的数据。不同的模块可以通过函数将被调用基准面上或下处理模块[9]。图1显示了简化TCP / IP协议的体系结构。的图1中,当AVR单片机接收到的数据网络,数据包处理模块将在一定条件下选择ARP基地模块的链路层或IP协议模块的网络层的过程。
图1所示。简化TCP / IP协议的体系结构
UDP和TCP协议模块的传输层,它将移交处理数据包的IP协议处理模块,并使封装为IP地址,第一(如地址、类型的协议,等等)。通过相应的函数调用。然后将数据报传输包括IP第一和TCP层越低通过函数调用,直到顺利发送数据。物理链路层:包含网络芯片的硬件和基于硬件上的芯片级驱动。随着网络物理介质的不同和使用网络芯片的不同,需要选择不同的通信方式和修改相应的驱动程序,但只要对外提供的接口不变,网络层的程序是不用修改的。例如以太网(Ethernet)和通过Modem上网的方式不同,驱动不同,但不影响网络层。 网络层:接收物理链路层过滤后的数据,并对通过识别不同的分组信息后传给传输层中不同的协议。著名的IP(网际协议)是网络层的协议,它支持将多种网络技术互联为一个逻辑网络。IP提供不可靠的、无连接的、尽最大努力交付的分组传输机制,为两个物理设备之间的信息传递提供最好的传输服务。所有具有网络层的因特网设备都会运行IP协议。 传输层:传输层的两个重要协议TCP(传输控制协议)和UDP(用户数据报),都是端到端的协议,根据应用程序需要的服务的不同可以选择其中的一个协议。发送时,TCP和UDP都将报文头和数据打包放在IP的数据段中发送出去。接收IP分组后,剥离IP的首部,得出是TCP还是UTP协议,再根据其首部中端口的不同,交给应用层程序处理。 应用层:这一层的功能最终面向用户,因此非常丰富,并且千差万别。每一个应用层协议都是为了解决某一类应用问题而规定的,是通信双方都需要遵循该协议才能正常通讯。比如,telnet提供远程登陆服务;FTP提供应用级的文件传输服务;SMTP提供简单的电子邮件发送服务;http提供网页浏览服务;还有域名服务系统DNS、简单网络管理协议SNMP等等。TCP / IP协议处理如图2所示。
图2.TCP / IP协议处理
4.简化的设计和实现嵌入式TCP协议
首先,在Webit,我们的格式和大小MAC和转换功能,系统地址配置,大小缓冲器已经被定义。我们让MAC地址格式化、IP成为固定的价值系统。系统组态用于设置特定值的转换功能,港口和MAC地址。在此系统中,为有限的数据需要单片机处理,所以我们不会设置缓冲区比正常。
.DSEG
.ORG 0x60
LocalMAC: .6字节
LocalIP: .4字节
LocalPort: .2字节
RemoteMAC: .6字节
RemoteIP: .4字节
RemotePort: .2字节
Plugdelaytime: .32字节
TCPCB: .30 * 2字节
RevBuffer: .260字节
4.1 ARP协议的实现
因为嵌入式单片机通常是在服务的被动状态。所以当我们设计和实现了ARP协议,我们不实现地址映射功能表,没有实现的功能查询任何客户机IP映射到MAC地址,只需要实现当其他客户端查询本地Mac地址。数据包并获得反馈的关系之间的IP和MAC地址,并发送。
当嵌入式单片机接收到ARP数据包从以太网,我们根据操作的类型编码的数据包决定类型的ARP包,如果ARP请求数据包,比较目的IP地址字段ARPP包的本地设置IP地址。如果
是相等的,当地的MAC地址包装回应道ARP应答包,如果没有,不做处理,丢弃它。ARP数据包的处理流程如图所示3。
图3.ARP协议处理
4.2 IP协议的实现
IP协议是TCP / IP协议的核心集群。所有的ICMP、UDP和TCP数据传输IP数据报
图3。ARP协议处理格式。在IP协议处理模块实现IP协议模块,我们首先收到IP日期从以太网的数据包和决定目的IP地址字段值在数据报主管等于本地IP地址,如果没有,丢弃,如果一致,检查等领域的版本号和校验和IP数据报等。
检查后,确认包是正确的,和然后决定选择ICMP协议,UDP协议或TCP服从上层处理,根据类型IP数据。另外,IP协议的另一个功能我们设计和实现是使模块从上层到IP数据消息封装交付,然后向IP封装数据链路层数据帧封装和发送。处理IP协议流程如图4所示。
图4.IP协议处理
4.3 ICMP协议的实现
ICMP协议是一种信息传递的控制协议。我们考虑嵌入式单片机作为一般服务器回应客户,作为一个被动的设备,它不需要主动发回消息。所以我们只实现单片机之间的接收和处理回声请求等设备在ICMP协议模块,并发送回声回答。ICMP协议的实现:阅读类型代码的ICMP数据的第一个字节数据包,检查ICMP数据包类型。如果类型代码是8,数据包的类型将被修改为0,每个字段的数据包封装的回声回复数据包需要发回,最后调用发送IP函数,使ICMP数据包到IP数据报封装发送。如果数据包的类型代码不是8,丢弃数据包。ICMP协议的处理流程如图5所示。
图5.ICMP协议处理
4.4 UDP协议的实现
UDP协议提供可靠的连接应用程序之间的通信,它传输数据IP层和发送,但不能保证到达目的地。
当UDP协议模块接收数据包,第一次定位端口的UDP包,保存远程和目的端口的UDP数据包,然后比较包的目的港当地的港口规定,如果不是平等的,丢弃它;如果相等,调用相应的函数。最后,源端口,目的端口,数据长度,校验和字段的标题UDP数据包,发送添加数据,使封装
和发送通过IP层。UDP的处理流程协议如图6所示。
图6.UDP协议处理
4.5 TCP协议的实现
由于单片机的资源有限,和处理TCP包更好,因此,尽管实现TCP协议模块,我们减少了常见的TCP / IP协议,并没有实现滑动窗口协议,流控制和拥塞控制机制。与此同时,我们设置了两个TCP连接的TCP控制块协议模块,并采用响应模式单一窗口。当接收TCP数据包,第一次定位标志的TCP数据包,如果TCP包是必需的建立一个新的连接,检查是否仍然存在系统中TCP连接控制块。如果存在,这个备用控制块将被用作控制块对于这个连接,并建立连接。相反,如果没有多余的TCP连接控制块,什么都不做。
当标记TCP数据包是另一个领域类型,搜索是否存在TCP连接控制块对应于TCP数据包。如果存在,法官根据SYN标志字段的值,鳍,ACK等等,然后选择相应的函数来处理包。如果不存在TCP连接控制块对应于TCP数据包,不做任何事。建筑和关闭连接的TCP协议通过“三握手”和“特定波四倍”。设置TCP数据包标记字段不同的控制位的具体方法。TCP协议的处理流程如图7所示。
图7.TCP协议处理
5.测试
为了测试是否TCP / IP协议实现达到预期的目标,我们进行了一系列的测试。
Ping命令是最常用的网络。这个命令发送网络消息并通过ICMP请求响应协议。因此,通过我们可以确定当前Ping命令网络连接正确,并测试是否可用的网络连接的条件。所以,为测试的ARP、IP、ICMP协议,我们可以完成测试通过Ping命令。测试的过程是:首先,Webit和电脑连接,通过Webit网络配置功能,做配置合适的IP地址(在本测试集Webit的IP192.168.180.94)。最后,输入“萍192.168.180.94”在个人电脑上。图8显示的运行测试网络连接、网络设备可用。它状态:
1)ARP模块是正常的,可以适当实现地址映射;
2)IP协议模块正常工作,可以正确的分析,这是一个ICMP消息;
3)ICMP协议模块正常工作和可以正确的返回响应消息。
ICMP数据包的反应条件是手上1中列出。测试主要是通过向单片机发送ping包日期来验证日期发送的成功率。
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[147293],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。