




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AVR 单片机 TCP IP 协议的设计与实现 荣盘 赵海 王嘉良 刘丹 蔡鹏华 东北大学信息科学与工程学院 沈阳 中国 电子邮件 panrong1012 收到的 6 月 3 日 2010 修订后的 6 月 30 日 2010 接受 7 月 6 日日 2010 摘要 摘要 随着嵌入式技术的快速发展 物联网的研究和实施将是一个新的技术革命 但物联网之间实 现的通信的基础的事情是个问题 随着嵌入式控制技术的成熟 网络也逐步与之结合 深 入到工业 楼宇 家居智能化等领域 实现远程数据采集 远程控制等功能 网络化已经 成为新一代嵌入式系统发展的一个重要趋势 出于这个原因 实现单片机之间的通信的功能 尤为重要 此文基于嵌入式单片机的特点 分析了传统 PC TCP IP 协议 和适当定制的 TCP IP 协议簇的基础上表现嵌入式单片机的特点 最后 我们意识到减少 TCP IP 协议 簇适合嵌入式单片机 特别是在 AVR 单片机平台上的应用 关键词 物联网 Webit 互联网的嵌入式系统 TCP IP 协议 以太网 1 1 介绍介绍 物联网的意思是指通过信息的一种网络设备如 FRID 等设备 红外传感器 全球定位系 统 激光扫描仪等 在安排的协议 加入任何和互联网之间沟通信息 实现智能识别 跟踪监 视和管理 互联网的概念建议出现在 1999 年的时候 意思是 在因特网传达的东西 这 意味着两个方面 第一个是 互联网的核心和基础事情仍然在互联网 这基于扩展和延伸互联 网 第二个是其客户延伸和扩展到任何东西 形成交流和沟通 1 3 随着计算机和网络的迅速发展技术 互联网已经成为一个重要手段来传播信息 越来越 多的嵌入式设备是有必要实现互联网的网络工作 4 5 相对于电脑 计算和存储相比嵌 入式系统资源相对有限 因此要实现所有的 TCP IP 协议簇嵌入式单片机是非常不现实的 所以 为了节省系统资源和保证的可靠性系统的情况下提高嵌入式系统的性能 这就有必要 简化的模块化的 TCP IP 协议 2 2 采用设备和测试平台采用设备和测试平台 服务器是一个整体解决方案使设备智能化和网络化 这是新的网络设备系统与互联网 的元素和结构 其基本思想是一个独立的 低成本的 3 W 服务器嵌入式设备 使设备有独立 的情报网络 辽宁省重点实验室推出服务器嵌入式互联网产品决定的嵌入式的技术 Webit 1 0 在 2000 年成功通过技术鉴定和商标注册 Webit 2 0 互联网标准电气设备访问服务器 通 过了 2001 年 5 月由辽宁科学技术委员会鉴定科技成果的会议 考虑到 webit AVR 8 位单片 机 它的存储单元是非常有限的 因此设计一种 TCP IP 协议适合的产品集群是非常重要的 Webit 2 0 的性能如下 根据外部 PC 系统结构 使用 Atmel AVR RISC 处理器 用户定义的网页 用户定义的 CGI 程序用来控制 14 位 I O 接口 TTL TTL 水平 UART 支持 115200 个基点 10 M 以太网接口 注册插孔 45 系统编程 ISP 以太网控制器芯片 RTL8019AS 的概述 Webit 高度集成以太网控制器 RTL8019AS 它可 以简单的符合即插即用 NE2000 兼容的适配器 减少两倍的功率特征 通过三级控制的特点 RTL8019AS 网络装备是在已知的绿色电脑中最理想最好的网络设备 双重的功能可以模拟 发送和接收传播之间的双绞线以太网交换机和所有的 1 2 这不仅可以从 10 Mbps 到 20 Mbps 使带宽更强大 也避免 muliaccess 以太网阅读协议通道战斗角色 微软的即插即用功 能可以减轻用户较低的收入和集中在资源适配器 等输入和输出 IRQ 内存地址 等等 然 而 在特殊应用没有即插即用功能的兼容性 RTL8019AS 支持跨接和 JUMPERLESS 选项 为了提供完整的即插即用的解决方案 RTL8019AS 集成 10 baset 收发器 自动检测功 能 AUI 和 BNC 之间的接口 此外 8 IRQ 总线和 16 个基本地址总线为大型资源提供舒适的 环境的情况 数据的收发其实就是对 RTL8019AS 内部的寄存器进行操作的过程 所以首先 得对 RTL8019AS 进行初始化 主要是设置所需的寄存器状态 建立网络接口收发的条件 并对 RTL8019AS 缓冲区 RAM 进行划分 建立接收缓冲环 数据的收发就是对前面所介绍的 寄存器的读写过程 当然其中还涉及到对 RTL8019AS 数据缓冲环的操作 网络接口通过两 个 DMA 操作来完成数据的接收和发送 本地 DMA 完成 RTL8019AS 和它内部的 FIFO 之间的数 据传送 远程 DMA 完成 RTL8019AS 和 CPU 之间的数据传送 所有这些功能由驱动程序实现 下面将以太网驱动程序进行介绍 3 4 1 RTL8019AS 初始化 RTL8019AS 的初始化 其实 就是对 RTL8019AS 内部与 NE2000 兼容的寄存器的初始化 程序首先设置了 ARM 芯片 LPC2292 的 I O 口属性 然后对 RTL8019AS 网络芯片进行复位 包括硬件复位和软件复位 再进入芯片停止状态 对内部寄存器进行设置 包括 MAC 地址的写入和内部 SRAM 的分配 最后 使芯片进入运行状态结束初始化 3 4 2 数据接收过程 RTL8019AS 完成初始化 后 就处于接收状态 一旦有数据分组到达 就自动执行本地 DMA 将 RTL8019AS FIFO 中 的数据送入接收缓冲环 然后向 LPC2292 申请 数据分组到达 中断请求 同时 RTL8019AS 内部的寄存器会发生相应变化 如 ISR CURR CPU 响应中断请求 读 ISR 以 判断中断类型 后 从接收缓冲环中取出数据分组至 LPC2292 的存储器中 然后对接收缓 冲环 CURR BNRY 指针内容进行修改 以便 RTL8019AS 能从网络上正确接收后续分组 启动 远程 DMA 后 LPC2292 不断读写 RTL8019AS 的数据端口 BASE ADDR 10H 就能成功执行 远程 DMA 操作 完成 CPU 与 RTL8019AS 缓冲 RAM 之间数据的交换 接收函数总是把所有 数据报都读出来后才退出 而接收缓冲区没有指示哪些报未被处理 因此 如果接收到的 数据报 指放在网络接口芯片内部缓存的 来不及处理 那么可能会发生丢包现象 所以 对处理速度慢的机器需要设置更多的接收缓冲区 几乎接收函数的所有代码都属于临界区 代码 函数一开始就进入临界区 如果网络接口芯片是处于复位状态 则对网络芯片进行 初始化然后退出 RTL8019AS 支持 16 k 32 k 和 64 k 字节内存布朗和闪存接口 它提供了页面模型函 数 它可以只支持 4 米字节布朗 16 k 字节的内存系统空间 布朗的无用的命令是用来释放 布朗 内存空间 RTL8019AS 的单片机设计的 16 k 字节存储器 这样不仅提供了更多友好的功能 而且还节省了 SRAM 存储资源 3 Webit3 Webit 简化简化 TCPTCP IPIP 的设计协议栈的设计协议栈 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 1 所示 简化所示 简化 TCPTCP IPIP 协议的体系结构协议的体系结构 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 TCP2 TCP IPIP 协议处理协议处理 4 4 简化的设计和实现嵌入式简化的设计和实现嵌入式 TCPTCP 协议协议 首先 在 Webit 我们的格式和大小 MAC 和转换功能 系统地址配置 大小缓冲器已经 被定义 我们让 MAC 地址格式化 IP 成为固定的价值系统 系统组态用于设置特定值的转 换功能 港口和 MAC 地址 在此系统中 为有限的数据需要单片机处理 所以我们不会设置缓 冲区比正常 DSEG ORG 0 x60 LocalMAC 6 字节 LocalIP 4 字节 LocalPort 2 字节 RemoteMAC 6 字节 RemoteIP 4 字节 RemotePort 2 字节 Plugdelaytime 32 字节 TCPCB 30 2 字节 RevBuffer 260 字节 4 14 1 ARPARP 协议的实现协议的实现 因为嵌入式单片机通常是在服务的被动状态 所以当我们设计和实现了 ARP 协议 我们 不实现地址映射功能表 没有实现的功能查询任何客户机 IP 映射到 MAC 地址 只需要实现当 其他客户端查询本地 Mac 地址 数据包并获得反馈的关系之间的 IP 和 MAC 地址 并发送 当嵌入式单片机接收到 ARP 数据包从以太网 我们根据操作的类型编码的数据包决定类 型的 ARP 包 如果 ARP 请求数据包 比较目的 IP 地址字段 ARPP 包的本地设置 IP 地址 如果 是相等的 当地的 MAC 地址包装回应道 ARP 应答包 如果没有 不做处理 丢弃它 ARP 数据 包的处理流程如图所示 3 图图 3 ARP3 ARP 协议处理协议处理 4 24 2 IPIP 协议的实现协议的实现 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 IP4 IP 协议处理协议处理 4 34 3 ICMPICMP 协议的实现协议的实现 ICMP 协议是一种信息传递的控制协议 我们考虑嵌入式单片机作为一般服务器回应客 户 作为一个被动的设备 它不需要主动发回消息 所以我们只实现单片机之间的接收和处 理回声请求等设备在 ICMP 协议模块 并发送回声回答 ICMP 协议的实现 阅读类型代码的 ICMP 数据的第一个字节数据包 检查 ICMP 数据包类型 如果类型代码是 8 数据包的类型将 被修改为 0 每个字段的数据包封装的回声回复数据包需要发回 最后调用发送 IP 函数 使 ICMP 数据包到 IP 数据报封装发送 如果数据包的类型代码不是 8 丢弃数据包 ICMP 协议 的处理流程如图 5 所示 图图 5 ICMP5 ICMP 协议处理协议处理 4 44 4 UDPUDP 协议的实现协议的实现 UDP 协议提供可靠的连接应用程序之间的通信 它传输数据 IP 层和发送 但不能保证到 达目的地 当 UDP 协议模块接收数据包 第一次定位端口的 UDP 包 保存远程和目的端口的 UDP 数 据包 然后比较包的目的港当地的港口规定 如果不是平等的 丢弃它 如果相等 调用相应的 函数 最后 源端口 目的端口 数据长度 校验和字段的标题 UDP 数据包 发送添加数据 使 封装 和发送通过 IP 层 UDP 的处理流程协议如图 6 所示 图图 6 UDP6 UDP 协议处理协议处理 4 54 5 TCPTCP 协议的实现协议的实现 由于单片机的资源有限 和处理 TCP 包更好 因此 尽管实现 TCP 协议模块 我们减少了 常见的 TCP IP 协议 并没有实现滑动窗口协议 流控制和拥塞控制机制 与此同时 我们 设置了两个 TCP 连接的 TCP 控制块协议模块 并采用响应模式单一窗口 当接收 TCP 数据包 第 一次定位标志的 TCP 数据包 如果 TCP 包是必需的建立一个新的连接 检查是否仍然存在系 统中 TCP 连接控制块 如果存在 这个备用控制块将被用作控制块对于这个连接 并建立连 接 相反 如果没有多余的 TCP 连接控制块 什么都不做 当标记 TCP 数据包是另一个领域类型 搜索是否存在 TCP 连接控制块对应于 TCP 数据包 如果存在 法官根据 SYN 标志字段的值 鳍 ACK 等等 然后选择相应的函数来处理包 如果 不存在 TCP 连接控制块对应于 TCP 数据包 不做任何事 建筑和关闭连接的 TCP 协议通过 三握手 和 特定波四倍 设置 TCP 数据包标记字段不同的控制位的具体方法 TCP 协 议的处理流程如图 7 所示 图图 7 TCP7 TCP 协议处理协议处理 5 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 包日期 来验证日期发送的成功率 表的测试日期显示 请求数据包发送到单片机是较小的 所以请 求 有效地处理服务器 对于 TCP 协议的测试 我们可以选择写一个简单的 telnet 服务器程序基于 TCP IP 协议 用户可以访问个人电脑 根据系统提示 用户可以输入一些简单的命令来获得相关的 信息 测试方法是 输入 远程登录 192 168 180 94 电脑 结果是 系统显示成功建立连 接 相关的提示 根据提示输入的东西 然后获得适当的信息 最后 测试表明 TCP 协议 TCP IP 协议模块集群是正确的 和网络层协议是正确的 此外 我们也多次测试 TCP 的建立时间 图图 8 ARP8 ARP ICMPICMP 协议的测试结果和协议的测试结果和 IPIP 协议协议 表 1 ICMP 数据包响应 表 2 TCP 的建立时间 如表 2 中列出的测试结果 平均水平建立 TCP 的时间大约是 2 314 毫秒 这意味着根据 外部请求服务器可以快速反应 在测试的过程中 服务器接受单片机连接请求 可靠性好 的意思是 这意味着实施后减少了 TCP IP 协议 AVR 单片机 它可以满足要求个人计算机设 备被连接到互联网 对于 UDP 协议的测试 我们编写一个程序根据实现 UDP 协议 创建了两个 UDP 套接字 一 个是实现发送的功能 UDP 数据 另一种是用于实现函数接收 UDP 数据 为了测试的正确性 UDP 协议 测试的过程是 1 初始化设备 2 创建一个 UDP 套接字通过 Webit UDP 创造插件 S1 和 S2 3 S1 发送 UDP 数据 S2 的功能 WebitUdpSendTo S2 S1 通过接收数据形式 WebitUdp 接 收函数 输出串口接收的数据 4 关闭两个创建的套接字 S1 和 S2 WebitUdp 破坏插口命令 最后 测试结果表明 S2 接收的数据形成 S1 成功 这意味着的 UDP 协议 TCP IP 协议簇是正确的 6 6 结论结论 阐述了实现原理 方法和技术上的 TCP IP 协议 WEBIT 平台 在 TCP IP 协议的实 现 我们网络层的编程思想和减少 TCP IP 系统结构 适应单片机的特点 10 同时 该报 还 在嵌入式单片机和一定的探索和尝试网络应用程序最后 这个协议的可行性确认在仿真实验 系统中 所以它的重要的参考价值和全为嵌入式网络系统设计和开发 引用引用 1 G Y Xu Y C Shi and W K Xie Pervasive Computing Computer Journal Vol 26 No 9 2003 pp 1042 1052 2 D A Gregory and E D Mynatt Charting Past Presentand Future Research on Ubiquitous Computing ACMTransaction on Computer Human Interaction Vol 7 No l 2002 pp 29 58 3 H Zhao and Y Chen Pervasive Computing Northeastern University Press Shenyang 2005 4 H Zhao Embedded Internet Tsinghua UniversityPress Beijing 2002 5 T KindBerg and A Fox System Software for Ubiquitous Computing IEEE Pervasive Computing Vol 1 No 1 2002 pp 70 81 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行业能力测试题及答案
- 上海专业考试试题及答案
- 药学专业招聘试题及答案
- 宣传专业试题及答案
- 《烹饪原料初加工工艺》项目四干货原料的初加工
- 湖北省十堰市 2025年 七年级上学期期中考试地理试卷(含答案)
- 墙体铝扣板施工方案
- 跨国贸易合同范本
- 2026届安徽省合肥市普通高中学业水平选择性考试物理模拟检测试卷(三)
- 浸塑栏杆施工方案
- 山东省济南市2025届中考数学真题(含答案)
- 2025-2030农业传感器网络部署模式与精准农业实践案例
- 2024年绍兴职业技术学院军训动员大会校长发言稿9000字
- 接手烂尾项目的合同范本
- 物业客服人员培训
- 2025至2030年中国制药装备行业市场全景分析及投资前景展望报告
- 泌尿科膀胱灌注护理课件
- 2025北京京剧院招聘工作人员10人考试备考题库及答案解析
- 脊柱区课件教学课件
- 检修现场管理培训课件
- 村集体经济培训课件
评论
0/150
提交评论