基于CP2200的嵌入式TCP/IP协议的设计与实现

来源 :中国信息通信 | 被引量 : 0次 | 上传用户:blacksi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要 为了实现嵌入式系统的以太网通信,本文设计了基于单片机C8051F340和网络控制芯片CP2200的以太网接口,并在介绍所需硬件的基础上,分析了TCP/IP协议栈的设计思想。通过Keil uVision3工具对协议代码进行调试编程,适当裁剪各层协议,从而实现嵌入式以太网的数据通信,并通过进行各项测试实验来证明其可行性。
  关键词 以太网 TCP/IP协议 嵌入式 CP2200
  如今,基于嵌入式的网络通信发展越来越迅速,其应用领域也变得更加广泛[1]。因此,嵌入式设备与网络的互联成为嵌入式系统发展的主要趋势。目前,嵌入式网络通信大都是基于TCP/IP协议实现的[2—4]。本文通过对精简的TCP/IP网络结构中各层协议模块的设计,并用C语言进行编程,实现了嵌入式以太网通信的各项测试,包括串口通信测试、ping命令功能测试、web网页浏览器测试和抓包软件测试。
  1 整体硬件系统简介
  本系统主要由Silicon labs公司生产的单片机C8051F340和以太网控制芯片CP2200组成[5]。其硬件结构框图如图1所示。
  C8051F340是系统的核心控制器,它具有可达48MIPS的微控内核,精确校准的12MHz内部振荡器和4倍时钟乘法器,10位的ADC,4个通用的16位定时器及多达4352字节的片内RAM[6]。
  CP2200是集成IEEE802.3以太网媒体访问控制器(MAC)、10Base—T物理层(PHY)和8KB非易失性FLASH存储器的以太网控制芯片,它的8位并行总线接口支持Intel和Motorola总线方式,可以是复用或非复用方式寻址,FLASH存储器的最后6个存储单元已在出厂前被预先写入一个唯一的48位MAC地址[7—9]。
  系统的主要硬件连接简图如图2所示。
  由图2可知,CP2200工作在非复用Intel总线方式。它的读写控制信号/RD、/WR分别与C8051F340的P1.6和P1.7引脚相连,外部中断/INT与P0.0连接。它通过RJ45插头与网络实现连接,其中LINK连接黄色LED灯用于检测有效的连接脉冲,ACT连接绿色LED灯用于检测发送或接受到一个数据包。
  2 精简TCP/IP协议的设计与实现
  2.1 TCP/IP协议栈结构
  TCP/IP协议栈是四层的体系结构,由上到下分别为应用层、运输层、网络层和网络接口层[10]。各层又有不同的网络协议,如图3所示。
  2.2 TCP/IP各层协议的设计与实现
  2.2.1 精简协议栈的软件实现流程
  在嵌入式系统中,根据实际应用的需求,要对TCP/IP协议族进行裁剪来实现嵌入式网络通信的目的。为了完成本文所需的各项测试功能,设计了如图4所示的软件实现流程图。初始化过程有对单片机的初始化,包括系统时钟初始化、端口初始化、定时器初始化、串口初始化等,还有对CP2200的初始化,包括物理层初始化、MAC层初始化、中断使能等。
  2.2.2 各层协议的设计及其实现
  本文设计的协议栈中,网络层包括ARP协议、IP协议及ICMP协议,运输层包括TCP协议和UDP协议,应用层主要涉及HTTP协议。各个协议模块的实现如下:
  (1)ARP协议模块。ARP缓存表更新函数age_arp_cache(),它每60s更新一次。ARP发送函数arp_send(),当发送请求报文时,不知道目的物理地址,它是广播报文;当发送应答报文时,接收方的物理地址要添加到目的物理地址。ARP重传函数arp_retransmit(),若发出ARP请求0.5s后没响应,就再发送一次,若两次都没响应则删除报文。ARP解析函数arp_resolve()解析发送IP报文的目的IP地址,若目的IP地址与发送的IP地址不在同一网络,则这个IP地址就是网关的IP地址;再看它是否在缓存表里,若不在则发送ARP请求报文。ARP接收函数arp_rcve()用来接收请求或应答报文,其中需要进行缓存表的更新和重新定时,如果接收到请求报文,需要发送ARP应答报文,若接收的是应答报文,要将等候地址解析的IP报文发出。
  (2)IP协议模块。IP发送函数ip_send()处理发送的IP报文,主要是对20字节头和校验和的处理,然后通过网络接口层发送。IP接收函数ip_rcve(),要考虑它的版本信息及分段情况,再根据接收到的报文类型转移到相应的接收函数进行处理。
  (3)ICMP协议模块。Ping命令请求信息函数ping_send(),主要用来测试发送方和接收方是否正确接收,在IP层能否通信。ICMP接收函数icmp_rcve()主要是处理ping请求的接收,根据ICMP不同的报文类型进行相应处理。
  (4)TCP协议模块。TCP发送函数tcp_send()是要发送一个TCP报文,里边不包含数据,主要是对字节头和校验和的处理。TCP重传函数tcp_retransmit()通过设置定时功能实现数据的可靠传输,它允许的重传次数为2次,传送的应用层程序是基于HTTP服务程序(即传送网页数据)。TCP的保活函数tcp_inactivity()也是0.5s运行一次,在连接处于建立状态下,当保活期满时还没被再次用到,则关闭连接。TCP接收函数tcp_rcve()要进行字节头信息和校验和的计算,然后判断是否为HTTP服务程序以及它的连接状态等信息,最后通过TCP的有限状态机判定数据包的流程。
  (5)UDP协议模块。UDP的发送函数udp_send()也是进行字节头和校验和的处理。它的接收函数udp_rcve()处理接收到的UDP报文,若没有接收到数据则发送ICMP的终点不可到达报文。
  (6)HTTP协议模块:它的发送函数http_send()就相当于TCP的发送函数加上了数据信息。而http_server()函数主要对网页内容进行了设计,其中包括超文本标记语言(HTML)和JPEG格式图像等内容的处理。   3 实验测试结果
  在进行测试实验前,要根据编写的程序内容将个人计算机的IP地址等信息进行设定,然后连接好串口线、以太网双绞线、单片机的下载仿真器等硬件设施。其中,个人电脑的IP地址设为192.168.0.10,测试板网卡芯片的IP地址设为192.168.0.126。
  3.1 串口通信测试
  若要实现终端设备与网络之间的通信,首先应确保串口与单片机之间的通信。因此,连接好电脑与单片机的串口线后,将编写的程序写入单片机,通过串口调试助手测试串口接收到的数据,如图5所示。接收区显示的是单片机的片上温度传感器的温度和P2.5引脚的工作电压。
  3.2 PING命令测试
  为了通信网络的连通情况,用个人计算机对测试板网卡芯片进行了PING命令测试,结果如图6所示。
  3.3 Web网页浏览器测试
  在浏览器的地址栏输入要访问的测试板的IP地址,即可得到如图7所示的网页内容。此网页是利用HTML超文本编辑语言进行编写,其中包括图片设计、表格设计及通过控制LED灯实现的表单设计。
  3.4 抓包软件测试
  做好实验前准备工作后,打开抓包软件CommView,运行程序,开始抓包并访问浏览器,得到如图8所示的测试结果。通过此抓包软件可知,个人电脑与测试板进行网络通信时,各个协议包的发送与接收流程,各层协议的字节头信息以及传输的数据信息等。
  4 总结
  本文设计了精简的TCP/IP协议栈,并通过多项实验测试实现了嵌入式网络通信的目的,即完成了以太网接口的设计。对于应用层服务程序,本文只是实现了HTTP客户端的功能,还可以开发TFTP客户端、FTP客户端、SMTP客户端等应用层程序,从而使之有更加广泛的应用环境,提高实用价值。
  参 考 文 献
  [1] 刘跃,傅一帆. 嵌入式系统以太网接口设计与实现. 计算机应用,2009,28(8):33—37
  [2] 杨杰,陈学工. 基于TCP/IP协议的嵌入式以太网客户端的设计与实现. 湖南科技学院学报,2008,29(12):100—103
  [3] 王晓菊,潘琢金,杜睿. 嵌入式网络接口模块设计及协议栈实现. 沈阳航空工业学院学报,2007,24(1):49—52
  [4] 李云岗. 基于CP2201的嵌入式以太网接口的实现及应用. 北京:北京交通大学,2008
  [5] 黄承. 基于嵌入式技术网络测试仪的研究及设计. 长沙:中南大学,2008
  [6] Silicon Laboratories著,潘琢金译. C8051F34x全速USB FLASH微控制器[内部资料]. 新华龙电子有限公司,2006
  [7] Silicon Laboratories著,潘琢金译. CP2200/1单芯片以太网控制器[内部资料]. 新华龙电子有限公司,2006
  [8] 徐杨. 利用CP2200在单片机局域网中进行通信. 计算机与网络,2009,(15):37—39
  [9] 张瑞瑞,马晨普. 用CP2200实现MCU的简易型以太网接口.单片机与嵌入式系统应用,2009,(12):38—40
  [10] 谢希仁. 计算机网络. 北京:电子工业出版社,2009
其他文献
班主任工作是学校实施德育管理工作的主要组成部分,班主任则是实施素质教育的主力军。在职业教育高速发展的形势下,如何把学生培养成为技能型、应用管理型的人才,是班主任所
一个优秀的教师不在于他的学生在课堂上的回答有没有错误,而在于怎样应对和引导,帮助孩子认识和纠正错误。作为教师既要善于倾听孩子的错误,更要善于将孩子的错误作为鲜活的
探索英语课堂教学的有效性,有效地提高英语教学的实效性。
小学阶段是学生学习语言的"敏感期"。要提高小学生的语音面貌、充分发挥他们习得语言的生理优势,起引导作用的教师要克服教材编排的缺陷,提高自身的语音素质和教学能力,采用全
本文首先提出人民币汇率影响因素实证检验问题,并重点从中端工业制造、高新技术产业出、国家外汇储备、非正常外资流出等方面入手,最后,本文选取年月人民币汇率制度改革之后
路,作为城市文化的重要组成部分,是城市软实力的重要组成部分,不仅仅体现着城市的魅力,其背后更是蕴含着空间上的价值以及时代的价值取向。因此,只想要了解一个城市的文化底
Microchip的新型USB端口电源控制器UCS1001-3、UCS1001和U CS10022——是其广受欢迎的UCS1001和UCS1002系列的扩展。这些全新控制器为智能手机和平板电脑提供了更高的电流和
采用Versa Power体系结构的APS电源具有极高的性能,其中包括:业界领先的技术指标,并具备更快的输出和测量速度;先进的测量功能,可精确捕获电压、电流及功率波形;集成了重点的功能,可
WT3000T是一款高精度功率分析仪,专门针对电力变压器行业的测试需求。在WT3000的基础之上,WT3000T将卓越的测量精度和长期稳定性完美结合,可以在低功率因数下执行测量,这正是变压
LMH2模组的系统光效为821m/w且显色指数(CRI)超过90,可提供2700K,3000K,3500K和4000K等多种色温,具有数字可寻址灯光接口(DALI)和DALI触摸调光。LMH2模组拥有长达50000小时的设计寿命