【VC++开源代码栏目提醒】:网学会员为广大网友收集整理了,基于DSP的嵌入式TCPIP协议栈的实现 - 期刊论文,希望对大家有所帮助!
哈尔滨工程大学硕十学位
论文 摘 要 随着信息技术、网络技术的高速发展,嵌入式系统的未来将向网络化方向发展,特别是与Intemet的结合。
本文讨论嵌入式系统网络化设计的思想和方法,并且设计一种基于DSP的嵌入式系统来实现TCP/IP协议栈。
硬件上,采用主流的DSP芯片TMS320VC5509A为微处理器,通过控制CS8900A来提供常用的以太网接口。
文中也介绍了硬件平台上的数据采集模‘块设计思路和方法,包括芯片的选型,接口电路的设计等。
软件上,主要是采用公
开源码的嵌入式操作系统I-tC/OS II和嵌入式TCP/IP协议栈进行裁减和移植,嵌入式TCP/IP协议栈采用uIP协议栈和LwIP协议栈。
文中分别提供了基于I_tC/OS II的uIP、LwIP在DSP上的移植方法,并且给出外设驱动程序的设计思想和方法。
而且通过实验讨论了在I.LC/OS II上网络通信任务的实现,以及利用uIP协议栈和LwIP协议栈提供的API函数实现网络通信的方法。
本文的最后对实验的结果进行了分析。
‘关键词:DSP;lxC/OS II;LwIP;uIP 哈尔滨丁程大学硕士学位
论文 ABSTRACT Wltll the development of information and network,the direction ofdevelopment of embedded system is network,especially,its combination谢绣Internet.The thesis discusses the thought and method of the design of embeddedsystem combining with network.Moreover,a testing platform of embeddedsystem based on DSP is designed to implement the TCP/IP protocol stack. In terms of hardware design,the testing board as a hardware platform isdesigned with TMS320VC5 509A as its microcontroller,which is n widely usedDSE The microcontroller provides Ethemet interface with controlling CS8900A,which is used frequently近the network system.The thought and method aboutthe hardware design of the collecting module is introduced in the thesis,includingthe selecting of the component and the design ofthe interface. In terms of software design,most work is done to replant and cut down theopen-code p,C/OS II and TCP/IP stack.The thesis introduces ulP and LwlP as theembedded TCPflP protocol stack differently.In this thesis,the experience infeplanting ulP and LwlP based on I-LC/OS II to DSP is presented,and the thoughtand method of the design of service driver program is provided.Moreover,someexperiments are given to illustrate the implementation of the task of networkcommunication in I,tC/OS II and the implementation of the method of networkcommunication about TCP/口stack such as UIP and L、订P wi小its A-PI functions.The end of the thesis analyses the results of the experiments.Key words:DSP;I_tC/OS II;LwlP;ulP 哈尔滨工程大学 学位
论文原创性声明 本人郑重声明:本
论文的所有工作,是在导师的指导下,由作者本人独立完成的。
有关观点、方法、数据和文献等的引用己在文中指出,并与参考文献相对应。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经公开发表的作品成果。
对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
哈尔滨丁程大学硕+学何
论文 第1章绪论1.1课题背景 人类已经进入了信息时代,Interact己经成为现代社会重要的基础信息设施之一,是信息流通的重要渠道。
Intemet技术的不断发展,将丰富的信息带入了人们的日常生活以及生产生活中,Intemet的应用领域也不断扩大,除了传统的信息检索¨1、电子邮件、远程登录外、各种新的应用(如信息家电、远程数据采集删、工业控制p1)也越来越受到人们的关注。
嵌入式系统也越来越多地需要支持网络的功能。
将嵌入式系统与Intemet结合起来的主要困难在于将嵌入式系统联入Intemet,就必须让嵌入式系统支持TCP/IP协议栈H1。
但实现完整的TCP/IP协议栈对设备处理器、存储器等都有很高的要求,由于嵌入式系统的计算资源和存储资源都十分有吲51。
所以针对具体的嵌入式硬件环境,实现一个简化的TCP/IP协议栈是很有必要的。
本文的实现目的就是通过分析理解嵌入式TCP/IP协议栈的应用性及移植性问题,扩大嵌入式TCP/IP协议栈在各种通信领域应用,特别是在远程数据采集领域中的应用。
由于远程数据采集需要保证传输距离,传输速度,而这些又都是网络传输,特别是无线网络传输能够满足的;并且网络传输还可以确保传输数据的稳定性和可靠性。
1.2国内外研究状况 随着网络的迅猛发展,考虑到成本、通用性以及互操作性等方面,网络通信已经逐步深入到通信领域、工控领域以及自动化等领域。
网络的发展又进一步带动嵌入式TCP/IP协议栈的迅速发展。
到目前为止,国内外对嵌入式TCP/IP协议栈的研发已经做了不少的工作p1。
目前已经存在的嵌入式TCP/IP协议栈大致可分为两大类:一类沿用了BSD的TCP/IP协议栈实现思路;而另一类则是完全与BSD的TCP/IP协议栈无关的独立的实现。
由于BSD协议栈最初是针对工作站设计的,而并非是针对嵌入式设备设计的p1,因此沿用了BSD的TCP/IP协议栈实现思路的一类嵌入式TCP/IP协议栈通常都比较复杂,而且
代码也比较大,一般都定位在32位微处理器。
另一类完全是与BSD 1 哈尔滨丁程大学硕士学位
论文暑i暑ii宣iiii宣ii- i宣葺宣暑宣;iiiiiiij暑宣暑i宣暑iiiiiiiii宣置宣i宣宣;;i暑i暑暑宣宣暑宣暑暑宣ii宣i暑暑置葺暑暑;毫 的TCP/IP协议栈无关实现,从而可以使用简化的模型来实现TCP/IP协议栈。
这类TCP/IP协议栈~般都定位在16位,甚至8位微处理器上踟。
对于操作系统而言,当前较流行的操作系统有VxWorks、PalmOS、eCos、WindowsCE、lxC/OS—II等。
VxWorks、PalmOS、WindowsCE等操作系统均属于商品化产品,价格昂贵且由于源
代码不公开导致了诸如对设备的支持p1、应用软件的移植等
问题;而开放源码的操作系统在成本和技术上有其特有的优势,在操作系统领域占有越来越重要的地位,因此选择开放源码的操作系统对本系统来说有一定的优势。
1.3技术路线 考虑到可移植性和实用性等因素,将分别采用完全
开源的ANSI C源码 的LwlP和ulP嵌入式TCP/IP协议栈来完成整个系统的网络通信功能。
由于TCP/IP协议栈的移植需要一个实时操作系统作为操作系统模拟层,并且pC/OS II是比较优秀的源码公开的实时操作系统。
经过多方面的斟酌,本文选择I_tC/OS II作为支持TCP/IP协议栈的操作系统支持层。
具体的实施步骤如图1.1所示。
底层硬件 物理层 系统抽象E=)I操作
系统模拟层 通用Ethemet接口 传输层 网络层I(=习数据链路层 Socke接1:2 E≤)f完善与细化 图1.1研发步骤 1.4
论文的主要工作 根据目前嵌入式系统接入Intemet的解决方案,本
论文基于TMS320VC5509A微处理器、lxC/OS II操作系统以及ulP和LwIP嵌入式TCP/IP协议栈,完成了以太网数据收发功能,从而为嵌入式系统接上以太网 联入Intemet提供了一种快捷、廉价的方法。
论文的主要工作如下: (一)硬件平台的搭建(系统
方案论证、原理图绘制、PCB绘制、电路 的焊接与调试): 2 哈尔滨T程大学硕十学位
论文 ·两路数据采集模块接口设计; · 基于TMS320VC5509A处理器平台的搭建,包括EEPROM接口设计 和程序软件固化: ·CS8900A网络接口芯片与DSP处理器通信接口
设计: ●EPM7128S时序控制平台的搭建。
包括EPM7128S对ADS8320的时 序控制、数据串并转换、FIFO时序的控制。
(二)分析I_LC/OS II操作系统的源
代码,根据TMS320VC5509A处理器-的特点和嵌入式TCPflP协议栈的特点,进行裁减、移植工作。
并进行了J-tC/OSII操作系统在DSP上的移植测试。
(三)分析uIP协议栈的源
代码,编写针对于uIP协议栈的CS8900A网络芯片的驱动程序,完成uIP协议栈结合I-tC/OS II操作系统,在DSP上的移植工作。
并进行Ping和网速的测试工作。
(四)分析LwIP协议栈的源
代码,并做了裁减工作。
编写了针对于LwIP协议栈的CS8900A网络芯片的驱动程序,完成LwIP协议栈结合lxC/OS II操作系统,在DSP上的移植工作。
通过调用/aC/OS II和LwIP提供的API函数,分别完成目标机和服务器
软件(VC++)的编写
工作,进行了Socket通信,并进行了网速测试和ICMP测试。
并且利用sniffer软件对此次
通信结果的抓包,分别对TCP、IP、链路层的性能进行了分析。
最后针对移植的两种不同的嵌入式TCP/IP协议栈的特点,加以比较。
3 哈尔滨_I二程大学硕士学位
论文 第2章系统的硬件设计2.1系统硬件框图的设计 本系统的硬件包括一片TMS320VC5509A芯片,一片CS8900A网卡芯片,一片CPLD芯片,两片AD芯片,一片
网络变压器芯片,一片硬件FIFO芯片,一片程序固化芯片,具体的连接框图如图2.1所示。
图2.1系统连接框图2.2 TMS320VC5509A的结构 TMS320VC5509A是在C54X基础上发展起来的,能够与C54X兼容。
C55X通过增加功能单元,增强了DSP的运算能力,性能更好,并且是目前功耗最低的产品。
TMS320vC5509A有丰富的外围设备n01,主要如下: ● 128K*16bit的片上RAM; ●最大可访问外部存储器空间为8M·16bit; ◆可编程低功耗控制模式: ● 三个多功能缓冲串口(McBSP)¨¨; ●两个SD/MMC控制器接口; ·可编程数字锁相环时钟产生器通道的直接存储器存取; ·16位的并行存储器接口; ●两个20位的定时器。
TMS320VC5509A由C55X处理器(CPU)、接口控制器、存储器和多种接12I电路构成¨习。
C55X由一条32位
程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和6条24位的程序地址总线及数据地址总线 4 哈尔滨工程大学硕十学位
论文rm 〔〕 i i_ _ 一 ii;宣ii;宣i暑宣鼍 分别与CPU相连。
这些总线可以通过存储器接I=1单元(M)与外部程序总线 和外部数据总线相连,实现CPU对外部存储器的访问。
这种并行的多总线结 构,使CPU能在一个CPU周期内完成一个32位程序
代码的读、3个16位 数据的读和2个16位数据的写。
C55X根据功能的不同将CPU分成4个单 元,即指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)和数据 计算单元(D)¨”。
2.3以太网接口的设计 以太网(Ethemet)和TCP/IP协议已经成为使用最广泛的通信协议¨41。
它 的高速、可靠、分层以及可扩充性使得它在各领域的应用越来越灵活。
本节 重点介绍嵌入式系统的以太网网络接口的设计方法。
2.3.1以太网接口的基本知识 以太网是当今现有局域网采用的最通用的通信协议标准。
以太网采用广 播机制,所有与网络连接的工作站都可以看到网络上传递的数据。
通过查找 数据帧中的目标地址,确定是否进行接收或放弃。
如果证明数据确实是发给 自己的,工作站将会接收数据并传递给高层协议进行处理。
以太网采用CSM刖CD媒体访问机制¨引,任何工作站都可以在任何时间 访问网络。
在发送数据之前,工作站首先需要侦听网络是否空闲,如果网络 上没有任何数据传送,工作站就会把所要发送的信息投放到网络当中。
否则, 工作站只能等待网络下一次出现空闲的时候再进行数据的发送。
以太网协议有许多种,支持不同的速率(如:10Mbps、100Mbps、1Gbps) 并且规定了网络媒体和连接方式。
最
常用的以太网协议是IEEE 802.3标准。
现在的操作系统均能同时支持这种类型的协议格式。
对于嵌入式应用而言, 一般只需支持一种就可以了。
同时考虑到,实际控制网络的子网络层一般采 用lOMbps,这足够承担网络通信任务。
因此,本文也只讨论lOMbps以太网 接入的实现。
IEEE 802.3主要是对物理层和数据路层的通道访问部分进行了规定,并 指定了多种不同的物理层。
帧格式如图2.2所示。
其数据帧格式有如下特点: ·数据位的传输由低位开始,传输的位流是曼彻斯特编码; 5 哈尔滨T程大学硕士学位
论文 ●基于冲突检测的总线复用方法,冲突退避算法一般由控制芯片硬件自 动执行; · 数据段长度,DA十SA+TYPE+D御除+PAD,最小为60字节,最大为 1514字节(FCS段由硬件自动加载); ● 通常的以太网卡可以接收三种地址的数据,一是广播地址,一是多播 地址(组播地址),一是它自己的地址。
但有时,用于网络分析和监 控,网卡也可以设置为接收任何数据包; ◆任何两个网卡的物理地址都不是一样的,是世界上唯一的。
● F亿me - 同步位PR 帧起始位SD 目的IP地址DA 源IP地址SA 类型PYE/长度EN 数据DATA 填充PAD 校验FCS 56位 8位 48位 48位 16位 <=1500字节 可选 32位 J ,-已,·±},—.J击J己I白:~’f·oc,j士 k ● 前导位 ’ 、v’丁H、〕斗n£〕‘、一l,■口丁卜 ,r 图2.2数据帧格式2.3.2以太网控制芯片特点 CS8900A是C瓜RI yS公司开发的符合IEEE 802.3协议、面向ISA接口的单芯片以太网控制器,支持3.3V供电型号产品¨q。
因此,与仅支持5V供电的以太网接口芯片相比,CS8900A与TMS320VC5509A能够直接连接,无需电平转换电路。
CS8900A主要技术指标如下: ·单片IEEE 803.2以太网解决方案; · 高效PacketPage的结构,作为从属,可以工作在I/O模式和内存模式 下全双工操作,以及DMA方式与主机以16/8位数据长度进行交换 数据等: ·碰撞、填充和CRC(循环冗余码检测)时的自动再发送; ·连接状态和LAN运行的LED驱动: ●3.3V和5V电压运行; · 内嵌4K字节RAM,作为寄存器空间以及用来缓存接收帧和发送帧; ●全双工操作,支持10BASE.T、10BASE.2、10BASE-5网络接口: 6 哈尔滨〕二程大学硕十学位
论文 ·可编程设置发送和接收条件。
从内存结构组织上看,CS8900A采用了独特的PacketPage结构。
如表2.1所示。
采用这种结构,不论CS8900A是设置为I/O模式,还是内存模式,都可以以一种统一的方式对其进行控制;能够自动调整网络传输方式和所需的系统资源,这样既减少CPU的开销,又简化了软件编程,提高了系统灵活性和效率。
适应嵌入式系统开发原则。
表2.1 CS8900A的PacketPage结构.PacketPage地址 内容 0000h一-0045h 总线接口寄存器 0100h~013Fh 状态和控制寄存器 0140h~014Fh 初始化和传输寄存器 01 50h~01 5Dh 地址过滤寄存器 0400h 接收帧 0A00h 发送帧2.3.3以太网接口电路设计 TMS320VC5509A与CS8900A之间的通信可采用内存模式或I/O模式。
在内存模式中,16位的DSP对CS8900A访问,都应以PacketPage基地址加上偶数偏移地址进行寻址。
这种模式下,系统效率最高,但必须占有4K系统数据内存空间。
I/O模式是CS8900A与主机之间通信的默认模式,任何操作模式下都使能。
其I/O地址空间映射如表2.2(其中端口0用于16位操作,端121 1是与端口0合用在32位操作情况下)。
由于对内部RAM的地址采用统一编码,通过对PacketPage指针的低12位赋值,可以对整个4K的RAM进行访问。
状态和控制寄存器的低6位分别为其各自内部寄存器地址,因此通过对中断状态队列端口访问,便可确知哪个中断寄存器响应。
从实际出发,考虑到系统内存资源的限制,同时为了简化软硬件设计,本系统采用了I/O模式。
CS8900A通过10BASE.T与网络连接。
CS8900A的I/O基地址取默认值0X300H。
考虑到TMS320VC5509A是以16位字长进行操作,对CS8900A是以偶地址进行寻址,虽然内存模式访问速度比I/O模式稍快一些,但I/O模式使用起来也要容易些,也是CS8900A的默认工作模式, 7 哈尔滨T程大学硕士学位
论文电路设计也比较简单。
TMS320VC5509A是通过EMIF(External MemoryInterface)控制器和CS8900A进行通信的,CS8900A被映射到TMS320VC5509A的CEl空间。
TMS320VC5509A采用异步方式、16bit的数据宽度与CS8900A交换数据,把CS8900A看作TMS320VC5509A的外部存储器进行访问,在访问CS8900A之前首先必须按照CS8900A的读写时序要求来设置TMS320VC5509A外部存储器的相应参数。
TMS320VC5509A的AI~A13是与CS8900A的A0”-A12一一对应的¨饥。
1MS320VC5509A读取,CS8900A的数据是通过CS8900A产生中断的方式来工作的,由于CS8900A产生的中断是高电平有效,而TMS320VC5509A中断是低电平有效,所以CS8900A产生的中断信号在进入TMS320VC5509A以前信号电平要进行反相。
CS8900A产生的中断信号电平的反相是在CPLD中实现的。
图2.3为CS8900A的电路图¨卅。
表2.2 I/O的映射模式 地址偏移 类型 描述 0000h 读7写 接送/发送数据(端口O) 0002h 读/写 接送/发送数据(端口1) 0004h 只写 TxCMD(发送操作命令) 0006h 只写 Txl戈ngth(发送帧长度) 0008h 只读 中断状态队列 读,写 PacketPage指针 000Ah 读/写 PacketPage数据(端口0) 000Eh 读冯 PacketPage数据(端口1) CS8900A与主机通信,采用10BASE-T连接。
其中cS8900A与RJ45的连接需要通过一个脉冲隔离变压器。
线圈的匝数比为,传输TX:1:2.5,接收RX:l:1。
在网口PCB布线的时候,因为是差分信号,需要保证输入信号线、输出信号线尽量平行且等长。
另外需要保证差分电阻和匹配电阻的精度,否则即便电路连接正确,布线合理,也没有结果输出。
隔离变压器的电路图如图2.4所示。
8 堕ii堡!垒垒兰堡:;;型:堡圣 罔2 3 CS8900A的l乜蹄剧 图2.4 10BASE.T的电路图2.4电源芯片接口设计 奉文选用的电源芯片为美困TI公司的电源芯片TPS767D301,其主要特性如下 ● 双输出电压:3 3V、1 5V~5 5V可调 ● 输入电压:2 7V~10V; ● 输出电流:0--1A; 省电时静态电流:1p.A 9 哈尔滨工程大学硕十学何
论文 ●200ms的低电平复位信号。
本系统的数字部分的输入电压为+5V,输出电压一个为3.3V,另一个调到1.6V。
TPS767D301有两个输入使能端1EN和2EN,只有当这两个使能端为低电平时,它们所对应的3.3V和1.6V电压才会被输出。
设计中两个输入使能端接盈J+sv。
图2.5是TPS767D301电源芯片的电路图。
~一 一‘ 岭 R18 J —P 7≮ ’5 II 3 2; C 33 c: 34 ‘, ’l 、 4 l 硎D lEN 1〕 旺: ;E1 一 -●●● lSENSE 25 ,彳 — 一一 二 j_ …一 5 晚1≥ 、上Z: \ 24 -● l瑙 10UT 矗 码. .