嵌入式TCPIP协议栈.ppt

上传人:laozhun 文档编号:2406671 上传时间:2023-02-18 格式:PPT 页数:32 大小:765KB
返回 下载 相关 举报
嵌入式TCPIP协议栈.ppt_第1页
第1页 / 共32页
嵌入式TCPIP协议栈.ppt_第2页
第2页 / 共32页
嵌入式TCPIP协议栈.ppt_第3页
第3页 / 共32页
嵌入式TCPIP协议栈.ppt_第4页
第4页 / 共32页
嵌入式TCPIP协议栈.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《嵌入式TCPIP协议栈.ppt》由会员分享,可在线阅读,更多相关《嵌入式TCPIP协议栈.ppt(32页珍藏版)》请在三一办公上搜索。

1、把握机会,创造奇迹,嵌入式TCP/IP协议栈,2007-06-26,2,主要内容,嵌入式Internet的应用背景和特点嵌入式设备接入Internet的方法嵌入式TCP/IP协议栈硬件TCP/IP协议栈基于RTOS的软件TCP/IP协议栈,3,嵌入式Internet的应用背景,嵌入式系统已经广泛的应用在工业自动化、智能仪表、信息家电、虚拟现实机器人、环境工程等领域。大多数嵌入式系统仍处在单独应用的阶段,为了实现多个嵌入式系统之间的信息共享和交流,目前主要利用各种现场总线技术将它们组网。但这种网络存在如下缺点:有效半径短、有关的通信协议少、缺乏统一的标准,并且一般都孤立于Internet之外。嵌

2、入式Internet是嵌入式技术和Internet技术相结合的产物。它既保留了嵌入式设备的小巧、智能、可编程的特点,又借助Internet把对现场设备的控制延伸到地球上几乎任何一个角落。嵌入式Internet实现远程控制、数据采集、嵌入式设备程序更新,,4,嵌入式Internet的特点,硬件资源有限;实时性;设备分散和移动;程序固态化存储;TCP/IP协议的可裁剪性;TCP/IP协议的可移植性;TCP/IP协议代码精简。,5,嵌入式Internet的应用背景和特点嵌入式设备接入Internet的方法嵌入式TCP/IP协议栈硬件TCP/IP协议栈基于RTOS的软件TCP/IP协议栈,6,轻量级网

3、络,嵌入式设备接入Internet的方法(一),嵌入式设备网关接入方式网关实现TCP/IP协议、服务器功能、Internet到轻量级(Light Weight)网络的协议转换和路由功能。网关可以是PC或专用设备;解决低端嵌入式设备接入Internet的需求;嵌入式设备和网关不便移动;对于比较分散的嵌入式设备,受距离限制,需要多个网关,实现成本将会增加。,网关,Internet,嵌入式设备1,嵌入式设备n,RS232,USBRF红外,客户端,7,嵌入式设备接入Internet的方法(二),嵌入式设备直接接入Internet16/32位微控制器;硬件芯片固化TCP/IP协议栈;或软件实现TCP/I

4、P协议栈;可灵活实现协议栈;开发复杂度高,开发周期长;嵌入式设备价格高;嵌入式Internet设备充当“瘦(Thin)服务器”。,以高档微控制器为核心的嵌入式系统,Internet,客户端,8,嵌入式Internet的应用背景和特点嵌入式设备接入Internet的方法嵌入式TCP/IP协议栈硬件TCP/IP协议栈基于RTOS的软件TCP/IP协议栈,9,典型的TCPIP协议栈,DHCP,SMTP,SNMP,HTTP,FTP,UDP,TCP,ICMP,IP,PPP,SLIP,ARP,Modem,USART,Ethernet,应用层,链路层,网络层,传输层,10,应用层和传输层,应用层协议DHCP

5、:动态配置IP地址;SMTP:邮件收发;SNMP:收集网络管理信息;HTTP:Web浏览;FTP:数据上传和下载。传输层协议UDP:用于实时性要求较高、可靠性要求较低的设备;TCP:用于实时性要求较低、可靠性要求较高的设备。,11,网络层和链路层,网络层协议IP:必须实现;ICMP:只需实现ping命令。链路层协议PPPIP包分割成帧,接收物理层比特率封装成帧;建立、配置和测试链路的链路控制协议LCP;网络控制协议NCP支持不同网络层协议:IP、DECnet、AppleTalk等;SLIP:面向不超过19.2kbps的低速串行线路,仅支持IP协议;(Modem的传输速率在1.2kbps到19.

6、2kbps)ARP:通常必须实现,解决寻址问题。,12,嵌入式Internet的应用背景和特点嵌入式设备接入Internet的方法嵌入式TCP/IP协议栈硬件TCP/IP协议栈基于RTOS的软件TCP/IP协议栈,13,WIZnet硬件协议栈芯片W3100A-LF 的内部结构,14,W3100A-LF的主要性能特点,硬件协议栈包括TCP、IPV4、UDP、ICMP、ARP;支持硬件以太网协议DLC和MAC;同时支持四路独立的网络连接;支持Ping命令;协议处理速度达到全双工45Mbps;支持Intel/Motorola MCU总线接口;支持I2C接口;带有标准的MII接口,可连接底层以太网接口

7、芯片;可提供Socket API加速应用程序开发;支持全双工模式;其内建16KB双口RAM可作为数据缓冲区;采用035m CMOS制造工艺。,15,W3100A直接总线连接方式,8数据线,15地址线;占用MCU资源较多。,16,W3100A间接总线连接方式,8数据线,2地址线;A14:4接地为0,A3:2接上拉电阻置为1。,17,W3100A I2C总线连接方式,SCL和SDA接上拉电阻置为1;A14:8设置为I2C设备地址,A7:0接地设置为0。,18,嵌入式Internet的应用背景和特点嵌入式设备接入Internet的方法嵌入式TCP/IP协议栈硬件TCP/IP协议栈基于RTOS的软件T

8、CP/IP协议栈,19,ARM+ENC28J60+uC/OS+LwIP实现实例,ARM MCU,ENC28J60,uC/OS-II,网络接口驱动,LwIP协议栈,应用程序(网络或非网络),20,Microchip的以太网控制器ENC28J60,21,ENC28J60的七个主要功能模块,SPI 接口充当主控制器和ENC28J60 之间通信通道。总线接口对通过SPI 接收的数据和命令进行解析。控制寄存器用于控制和监视ENC28J60。双端口RAM缓冲器用于接收和发送数据包。判优器当DMA、发送和接收模块发出请求时对RAM 缓冲器的访问进行控制。MAC(Medium Access Control)模

9、块实现符合IEEE 802.3 标准的MAC 逻辑。PHY(物理层)模块对双绞线上的模拟数据进行编码和译码。该器件还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5V 电压的I/O 引脚)和系统控制逻辑。,22,ENC28J60的典型连接方式,MCU和ENC28J60通过SPI接口连接;在MCU之上构建RTOS和TCP/IP协议栈。,23,uC/OS的特点,公开源代码;可移植;可固化;可裁剪;多任务:最多64个任务,不同优先级;抢占式:始终运行最高优先级的任务;函数调用和服务执行时间具有可确定性;任务栈;系统服务:信号量、标志组、邮箱、队列、内存管理、时间相关函数等;中断管

10、理;稳定性和可靠性。,24,LwIP,Light Weight Internet Protocol由瑞典计算机科学学院计算机和网络体系结构实验室的Adam Dunkels在2001年开发.源码公开;可移植;代码精简,占用几十KB的RAM和40KB左右的 ROM;既可移植到操作系统上,也可以在没有操作系统的情况下独立运行。,25,LwIP支持的协议,IP(Internet Protocol)including packet forwarding over multiple network interfaces.ICMP(Internet Control Message Protocol)for

11、network maintenance and debugging.UDP(User Datagram Protocol)including experimental UDP-lite extensions.TCP(Transmission Control Protocol)with congestion control,RTT estimation and fast recovery/fast retransmit.Specialized raw API for enhanced performanceOptional Berkeley-alike socket API.DHCP(Dynam

12、ic Host Configuration Protocol).PPP(Point-to-Point Protocol).ARP(Address Resolution Protocol)for Ethernet.,26,uC/OS到ARM的移植,参见www.M,MicroC/OS-II:The Real-Time Kernel,Second Edition,Jean J.Labrosse,27,LwIP到ARM和uC/OS的移植,移植 LwIP需实现cc.h、cpu.h、perf.h、sys_arch.h和sys_arch.c文件,保存到LwIP-x.x.x/arch 目录下。cc.h 定义与

13、体系结构环境、编译器、平台等相关的内容。其中有 LwIP 基本数据类型定义、数据结构包装方法定义、调试诊断和打印输出定义等。通过 cc.h 使得 LwIP 实现与平台无关。cpu.h定义与CPU相关的内容。perf.h定义性能测量的操作。操作系统封装层:为了增强移植性,LwIP专门把和操作系统有关的数据结构和函数放在一起组成操作系统封装层,为定时、进程同步和消息传递等操作系统服务提供统一LwIP接口,这些是由sys_arch.h和sys_arch.c实现的。,28,LwIP操作系统封装层实现,sys_arch.h主要定义与操作系统相关的数据结构信号量、邮箱和进程号LwIP中的信号量对应uC/O

14、S中的信号量;LwIP中的邮箱对应uC/OS中的消息队列;LwIP中的进程对应uC/OS中的任务;信号量用于进程(任务)同步,消息队列用于进程(任务)的通信。sys_arch.c中要实现和操作系统有关的函数,包括:系统的初始化;信号和邮箱的操作创建、删除、发送和请求;定时器操作;这些函数只需要用uC/OS-II中相应的函数进行重新封装即可。,29,LwIP网络设备驱动,在LwIP中可以有多个网络接口,每个网络接口对应一个struct netif结构,这个netif包含了相应的网络接口的属性、初始化、中断处理函数、收发函数。void ethernetif_init(struct netif*ne

15、tif);void ethernetif_input(struct netif*netif);err_t ethernetif_output(struct netif*netif,struct pbuf*p,struct ip_addr*ipaddr);void ethernetif_isr(void);在LwIP/netif/ethernetif.c文件中添加ENC28J60的驱动程序。,30,LwIP的进程模型,所有tcp/ip协议栈都在一个进程当中,对于uC/OS来说进程就是任务,这样tcp/ip协议栈就和操作系统内核分开了。应用程序既可以是单独的进程,也可以驻留在 TCP/IP进程中。如果应用程序是单独的进程,可以通过操作系统的邮箱、消息队列等和TCP/IP进程进行通讯。如果应用程序驻留TCP/IP进程中,就利用内部回调函数接口(Raw API)和TCP/IP协议栈通讯。,31,32,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号