基于单片机的tcpip技术研究及应用内容摘要:

控制等功能,这种嵌入式系统与 Inter 之间的连接与应用就称为嵌入式 Inter。 嵌入式 Inter 技术的诞生虽然不算久,但发展却相当迅速,我们还未适应它的时候,很多相关的技术已经出现了,很多大的芯片制造商开始研制功能更强大的嵌入式芯片,软件厂商则开发出了微型的 Web 服务器、TCP/IP 协议栈。 由于出现了很多灵活的微控制器,现在可以为用户创造廉价的嵌入式 Inter 解决方案, 8 位和 16 位微控制器都可以接入 Inter 等大规模网络,例如 emWare 就已经为开发人员和生产商提供了 8 位和 16 位微控制器网络接入解决方案。 随着 PC 机时代的到来, 21 世纪将是嵌入式 Inter 的时代。 美国贝尔实验室总裁 Arun Netravali 的一批科学家对此做出了预测:嵌入式Inter“将会产生比 PC 机时代多成百上千倍的瘦服务器和超级嵌入式瘦服务器 ”。 这些瘦服务器将与我们所能想到的各种物理信息、生物信息相联接,通过Inter 网自动地、实时地、方便地、简单地提供给需 要这些信息的对象。 嵌入式系统接入 Inter 同 PC 机接入 Inter 一样,必须通过相应的通信协议。 目前的 Inter 采用 TCP/IP 协议,因此嵌入式系统接入 Inter 最终必须通过 TCP/IP 协议,对信息进行 TCP/IP 协议处理,使其变成可以在 Inter 上传输的 IP 数据包。 Inter网络通信中, TCP/IP协议簇非常庞大,需要占用大量的系统资源。 单片机的缺点是资源有限,无法容纳下 Inter的 TCP/IP协议簇。 因此单片机实现嵌 8 入式接入 Inter技术的关键是如何在单 片机等嵌入式设备的有限资源上实现Inter的网络通信协议栈。 其难点在于:如何利用单片机自身有限的资源对信息进行 TCP/IP协议处理,使之变成可以在 Inter上传输的 IP数据包。 目前许多机构都在积极探讨利用 MCU实现接入 Inter技术。 单片机接入 Inter方案 1. PC 网关 (Gateway)与专用网结合接入 Inter 首先嵌入式系统和嵌入式网关连接通信, 连接方式采用传统的 RS232, RS482, RS485,IIC、 SPI、 USB、 CAN、 LIN 总线等 轻量级网络协议。 再由嵌入式网关负责实现 TCP/IP 协议,并与 Inter 连接,完成嵌入式系统和 Inter 的信息交互。 嵌入式网关向嵌入式系统提供 Inter 或 Intra 通信和管理服务。 如防火墙、协议转换、监视嵌入式设备的运行状态、向外界提供 Web 服务器等。 这种技术需要一个专门的嵌入式网关,而且网关和嵌入式系统之间通信也会受到轻量级网络协议的制约。 它对嵌入式系统处理器速度、资源要求也比较低,开发难度低,可以解决各种嵌入式系统接入 Inter 的问题,特别适用于嵌入式系统多且较为集中的 场合。 缺点是接入成本比较高,不利于大规模推广。 该方案比较适合大型或较昂贵工业设备的上网需求,不适合用于低价格设备。 基于这种接入技术模型, EmWare公司提出了嵌入式微 Inter网络技术 EMIT ( embedded micro interworking technology)。 EMIT 由 emMicro、 emGateway 和网络浏览器组成,并在 MCU 内部以软件方式嵌入 emNet 协议 ,如图 22 所示。 图 22 图 21 采用专用嵌入式网络协议方式 2. 高性能 MCU+RTOS 即用软件方式直接 处理 TCP/IP协议。 目前 RTOS的功能越来越强大,大多数都带有 TCP/IP协议栈,还具有对图像界面的支持能力。 采用这种方法的缺点是:对开发人员的要求高,必须对操作系统和 TCP/IP协议都要有一定的熟悉,开发周期也较长,难度相对较大。 同时嵌入式操作系统的运行需要占用大量的处理器资源和存储器空间,对硬件配置也有较高的要求,开发成本高。 如图 23所示 . emGateway (PC 机 ) 文件系统 Inter Web Browser RS232 RS485 emMirco 应用系统 +em MCUNet 9 图 23 在嵌入式实时操作系统 RTOS 上运行 TCP/IP 3. 使用专用的嵌入式芯 专用嵌入式芯片是一种内置了通信和控制功能的单片机,采用这种方案的芯片有 UbiCom公司的 IP2022, Seiko Instruments公司的 S7600A ,iReady公司的Inter Tuner, Connect One公司的 iChip等。 它们固化有 TCP/IP协议栈,支持HTTP, SMTP, POP3, MIME等多种协议,可进行 Web浏览和 E_mail的收发。 也可用 Scenix公司的 8位 SX单片机加虚拟外设的方式接入 Inter。 该方式更方便,不需要操作系统,大大节省了资源,开发难度有所降低,但还是需要熟悉 TCP/IP 协议和相关接口,技术实现上也比较困难,且对处 理器的性能仍然要求较高,需要大容量的存储器。 这类芯片功能强,能够实现多种网络协议,一般提供有相应的 TCP/IP网络协议栈。 但是这种芯片价格偏高,用户需要支付软硬件费用,不易于实现市场的广泛应用。 如图 24所示。 图 24 直接在嵌入式处理器上实现 TCP/IP 协议 4. 使用普通单片机和网络控制芯片 通过在系统中集成网络接口芯片 , 采用软件方式实现 TCP/IP协议栈 , 使得嵌入式系统具备网络功能从而接入 Internt。 单片机加载 TCP/IP协议控制以太网网卡进行数据传输,并通过 TCP/IP协议联接到 互联网。 远程控制端的操作通过路由器找到目标后,由网卡芯片的接口传入单片机,通过在单片机中加载的驱动程序转换成物理帧格式,再由 TCP/IP协议转换成应用层的控制命令。 这种方法实现起来比较简单,而且可根据实际需要进行功能扩展,但是需要在单片机上实现嵌入式TCP/IP网络协议,软件编程的工作量比较大。 由于采用普通单片机,所以其优点是成本低,单片机体积小,易于以极高的性价比向诸多需要实现嵌入式接入Inter的场合推广。 本文设计的系统就是采用这种技术方案。 RTOS MCU TCP/IP Inter MCU 固化 TCP/IP 协议栈 TCP/IP Inter 10 第 3 章 网络协议 TCP/IP 分层模型 TCP/IP 采用分层体系结构,它与开放系统互联 OSI 模型的层次结构相似。 如表 21 所示,它可以分为 4 层,由低到高一次为:网络接口层、网际层、传输层和应用层。 表 21 OSI 参考模型与 TCP/IP 参考模型比较 OSI 参考模型 OSI 层次号 TCP/IP 层次描述 主要应用协议 应用层 7 应用层 FTP、 和 Tel等 表示层 6 会话层 5 运输层 TCP 和 UDP 传输层 4 网络层 3 网络层 IP、 ICMP 和 IGMP 链路层 设备驱动及接口卡 数据链路层 2 物理层 1 TCP/IP 分层模型的四个协议层分层完成如下功能。 (1) 第一层 网络接口层 网络接口层包括用于协作 IP 数据在已有网络介质上传输协议。 实际上TCP/IP 标准并不定义与 ISO 数据链路层和物理层相对应的功能。 相反它定义像地址解析协议这样的协议,提供 TCP/IP 协议的数据结构和实际物理硬件之间的接口。 (2) 第二层 网际层 对应于 OSI 7层参考模型的网络层,网络层主要解决计算机之间的通信问题,它负责管理不同设备之间的数据交换,它是 Inter 通信子网的最高层, 它所提供的是不可靠的无连接数据报服务,无论传输是否正确,不做验证、不发确认,也不保证分组的正确 顺序。 网际层主要有以下协议。  IP 协议 (网际协议 ):使用 IP 地址确定收发端,提供端到端的 “数据报 ”传递,也是 TCP/IP 协议簇中处于核心地位的协议。 11  ICMP 协议 (网络控制报文协议 ):处理路由,协助 IP 层实现报文传送的控制机制,提供错误和信息报告。  ARP 协议 (正向地址解析协议 ):将网络层地址转换为链路层地址。  RARP 协议 (逆向地址解析协议 ):将链路层地址转换为网络层地址。 (3) 第三层 传输层 对应于 OSI 7 层参考模型的传输层,提供两种端到端的通信服务。 其中 TCP协议提供可靠的数据流运输服务, UDP 协议提供不可靠的用户数据服务。 该层有以下协议。  TCP 协议:传输控制协议,提供可靠的面向连接的数据传输服务。  UDP 协议:用户数据报协议 ,采用无连接数据报传送方式,一次传输少量的情况,如数据查询等,当通信子网相当可靠是, UDP 协议的优越性更为突出。 (4) 第四层 应用层 对应于 OSI 7 层参考模型的应用层和表达层,应用层是将应用程序的数据传送给传输层,以便进行信息交换。 它主要为各种应用程序提供使用协议,标注的应用 层主要有以下协议。  FTP 文件传输协议:为文件传输提供路径,它允许数据从一台主机传送到另一台主机上,我们可以从 FTP 服务器上下载文件,或者向 FTP 服务器上传文件。  HTTP 超文本传输协议:用来访问在 WWW 服务器上的各种页面。  DNS 域名服务系统:用于实现主机域名到 IP 地址之间的转换。  SMTP 简单邮件传输协议:实现互联网中电子邮件的传输功能。  TELNE 虚拟终端服务:实现互联网中的工作站登陆到远程服务器的能力。  NFS 网络文件系统:用于实现网络中不同主机之间的文件共享。  RIP 路由信息协议:用于网络设备 之间交换路由信息。 数据封装 当应用程序用 TCP 传送数据时,数据被传送入协议栈中,之后逐个通过每一层直到被当做一串比特流送入网络。 其中每一层对收到的信息都要增加一些首部信息,必要时还要增加尾部信息,这个过程如图 31 所示。 TCP 传给 IP 的数据单元称作 TCP 报文段, IP 传给网络接口层的数据单元称作 IP 数据报,通过以 12 太网传输的比特流称作帧。 以太网数据帧的物理特性是其长度必须在 46B~1500B之间。 确切的说,图 31 中所示 IP 和网络接口传送的数据单元应该是分组,分组可以是一个 IP 数据报,也可以是 IP 数据报的一个片。 图 31 数据进入协议栈时的封装过程 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。 数据帧分用 当目的主机收到一个以太网数据帧是,数据就开始从协议战中由底向上传用户数据 用户数据 TCP 首部 14B 20B 20B 4B 应用数据 应用数据 应用数据 Appl首部 以太网 驱动程序 以太网 首部 以太网 尾部 应用数据 IP 首部 IP 首部 TCP 首部 TCP 首部 IP 报文段 TCP 报文段 以太网帧 TCP IP 以太网 13 送,同时去掉各层协议加上的报文首部。 每层协议盒都要去检查报文首部中的协议标识,以确定接受数据的上层协议,这个过程称作分用。 图 32 显示这个如何过程如何发生的。 图 32 以太网数据帧的分用过程 协议层简介 网际层协议 网际协议 时 TCP/IP 协议最重要的组成部分,是整个协议族的核心,主要负责网络层 IP 分组的传输。 它位于网际层,为运输层提供服务,并从网络接入层请求服务。 IP 提供不可靠的、无连接的、尽最大努力交付的分组传输机制。 IP 提供了 3个重要定义: 1) IP 定义了数据传输所用的基本单元,及规定了传输的数据格式。 2) IP 规定了 IP 分组的路由机制。 3) 除了数据格式和路由机制以外, IP 还包括了一组体现不可靠分组交付思路的规则。 这些规则指明了主机和路由器应该如何处理 IP 分组、何时及如何发现错误信息以及在什么情况下可以放弃 分组等等。 IP 是 TCP/IP 互联网设计里最基础的部分。 应用程序 应用程序 应用程序 应用程序 UDP TCP ICMP IGMP IP ARP RARP 以太网 驱动程序 进入的帧 以 TCP 或 UDP 首部端口号进行分用 以 I。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。