当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要:该文首先对嵌入式tcp/ip 协议栈进行了分析,接着详细剖析了嵌入式tcp/ip 协议栈移植到msp430f149芯片的过程,最后提出了嵌入式tcp/ip 系统的整体实现方案。 关键词:嵌入式系统;uip;移植;msp430f149 引言 随着信息技术的不断发展,以及人们对日常生活舒适度、方便度要求的提高,信息家电、智能仪表等产品越来越频繁的出现在我们的生活当中;人们也越来越热衷于把家电、仪表等设备连接到internet 中,从而可以方便、及时的对它们进行远程察看、远程控制。把这些设备接入internet ,就需要考虑tcp/ip 网络协议的实现。 msp430 系列单片机是由ti 公司开发的16 位单片机,其突出特点是超低功耗,非常适合于各种功率要求比较低的场合,该系列已经应用在智能仪表、医疗设备和保安系统等方面。本文给出了在msp430f149 硬件平台上移植tcp/ip 协议的方案,实现了终端设备到internet 的接入。 嵌入式tcp/ip 协议栈uip tcp/ip 是一个协议族,它是一个四层网络协议模型,分别包含应用层、传输层、网络层、网络接口层。应用层定义清晰的会话过程,平常所用的协议如http、ftp、smtp、telnet 等都属于应用层。传输层提供端对端的通信,该层协议有传输控制协议(tcp) 和用户数据协议(udp) 。网络层负责数据打包和逻辑寻址,这一层的协议有ip、icmp、arp 等协议。网络接口层负责在源和目的节点间的线路上进行无差错的传送数据,并且具有流量控制等功能。 在嵌入式系统中,应用tcp/ip 协议是主要为了完成数据采集和数据传输,不需要实现网页浏览、文件传输等功能,同时,msp430 芯片也没有足够的空间资源实现所有的tcp/ip协议,所以在本文的方案中,采用了uip tcp/ip 栈。它是瑞士计算机科学院的adam dunkels 等开发的一种免费公开源代码的小型tcp/ip 协议栈,它专门为8 位和16 位mcu 编写。uip 代码的大小和ram的需求比其它一般的tcp/ip 栈要小得多。 uip实现了tcp/ip 协议组的四个基本协议:arp(地址解析协议) ,ip(网际协议) ,icmp(因特网信息控制协议) 和tcp(传输控制协议) 。链路层协议例如ppp 等可以由uip 下面的设备驱动实现;应用层协议例如http、ftp、smtp、telnet 等可以由uip 之上的应用程序实现。 arp 协议 arp 协议把目标ip 地址解析为相应的以太网mac 地址。当一个ip 包要在以太网上发出时,先查询arp 表,找出包要发送去的mac 地址。如果在表里找不到对应的ip 地址,就会广播arp 请求包,以获取给出ip 地址所对应的mac地址。目的主机收到请求包后发出一个arp 回应包,给出自己的mac 地址和ip 地址。 当arp 表中没有对应的地址条目时,就会发送arp 请求包时,同时该请求包会覆盖掉发出请求的ip 包,以节省储存器。arp 表每十秒更新一次。 ip 协议 uip 的ip 协议主要负责验证输入包的ip 头的正确性,以及在icmp 和tcp 之间复用数据包。ip 层没有实现数据包的分段和重组,从而代码得到极大的简化。 icmp 协议 icmp 中echo 和echo reply 信息常常用在ping 程序里,以检查目的主机能否连通。在uip 只实现echo 。在处理收到的echo 信息时,只需要把icmp 类型字段从“echo”类型改变到“echo reply”类型,调整icmp 校验和,并互掉ip 数据包头里的目的地址和源地址,把包发回到发送方。 tcp 为了减少储存器的使用,在uip 里,tcp 不再实现发送和接收数据的窗口调整;不会缓存刚刚收到的tcp 段,而是立即由应用程序处理,应用程序可以自己缓冲数据;在输出数据时,在每个连接只能有一个正在传输的tcp 段。 以上四个协议实现的过程中,极大的简化了代码和处理过程,节省了存储空间和缓存空间。 uip 协议栈的接口

uip 协议通过一系列接口函数与底层系统和上层应用通信,它内部的协议集合对外部系统来说是透明的,从而增强了该协议的通用性和独立性,可以非常方便地移植到不同系统和应用平台。 图1 描述了uip、底层系统和应用程序三者之间的调用关系。其中uip 提供了三个函数给底层系统:uip_init ( ) ,uip_input ( ) ,uip_periodic ( ) 。应用程序向uip 提供一个调用函数uip_ appcall( ) ,在网络事件或计时事件发生时进行调用;同时,uip 也要向应用程序提供一些与协议栈的接口函数,应用程序根据接口函数提供的信息或者状态,执行相应的操作。 uip 应用接口 uip 使用基于事件的程序模式,应用程序由c 语言函数实现。当收发数据、新连接建立或者数据需要重新传输时,uip 都会调用应用程序。同时,应用程序还要周期查询是否有新的数据收发。因为应用

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭