在TMS320VC5402上实现的嵌入式TCP/IP协议栈
扫描二维码
随时随地手机看文章
摘要:实现一个运行在16位数字信号处理器tms320vc5402上的小型嵌入式tcp/ip协议栈。对tcp/ip协议中的ip协议、arp协议、udp协议进行分析,完成基于tcp/ip协议的嵌入式网络系统。 关键词:dsp tms320vc5402 tcp/ip协议栈 嵌入式系统引言随着嵌入式系统应用范围的不断扩展及网络应用的日益普及,使得越来越多的嵌入式系统需要支持网络功能。tcp/ip是目前一种被广泛采用的网络协议。tcp/ip是一套把因特网上的各种系统互连起来的协议组,已成为事实上最常用的网络标准之一。本文对tcp/ip协议中的ip协议、arp协议和udp协议进行了分析,利用dsp的专用汇编语言实现了自己的通信协议。由此可使dsp直接对ethernet发来的数据包解分析,并能按照tcp/ip协议正确打包和发送,最终实现dsp与pc机的数据通信,成功地完成了语音数据的采集和发送,实现了dsp与pc机的语音数据传输。1 tcp/ip协议分析一般在嵌入式系统中实现的tcp/ip协议都是面向数据采集和传输的,所以大部分实现都是ip协议、arp协议、udp协议或者是tcp协议。本文完成的是ip协议、arp协议和udp协议。一般认为tcp/ip为四层协议,实现的协议栈结构如图1所示。dsp程序自下而上实现以下协议:①媒介访问控制mac(media access control),向以太网收发数据。传送的数据格式为ethernet数据帧格式。ethernet帧的长度是可变的,但都大于64字节,小于1518字节。它包括头部、数据和尾部三部分。8字节的前导用于帧同步,crc域用于帧校验。目的地址和源端地址是指网卡的物理地址(mac地址),具有唯一性。②地址解析协议arp(address resolution protocol),使得物理地址和ip地址可以对应起来。在ethernet上,使用地址解析协议arp协议来实现ip地址到mac地址的动态转换。arp request(arp请求)和arp response(arp响应)类型都是0x0806。arp报文格式包括硬件类型、协议类型、硬件地址长度、协议地址长度、操作字段、源端物理地址、源端ip地址、目的物理地址和目的ip地址。③internet网核心协议ip(internet protocol),实现ip网络上的数据传输的基础。ip协议提供了一种高效、不可靠和无连接的传输方式。ip报文是ip协议的基本处理单元,是由报头和数据两部分组成的。ip报头包括20字节的固定部分和变长的选项部分。20字节的固定部分包括ip协议的版本号、ip首部长度、服务类型、报文总长度、标识符、片偏移、报文生存时间、首部校验和以及源端ip地址和目的端ip地址。
④用户数据报协议udp(user datagram protocol),提供不可靠的数据传输功能。它不对要发送的数据进行缓冲,直接把从应用层收到的数据加上udp首部发送出去。udp不会把应用层多、次发送的数据合并成为一个包发送出去。这对于编写简单的请求/响应模式的应用是很方便的,而且利用udp协议对传输速率也没有太大的影响。udp协议的数据报格式包括源端口口、目的端口号、数据报长度、udp校验和以及udp数据。⑤上层应用协议,对语音数据打包传输,实现dsp与pc机的语音数据传输。2 硬件接口电路硬件接口电路如图2所示。微处理器采用的是ti公司生产的tms320vc5402数字信号处理器。它采用了改进的哈佛结构,操作速率达到了100mips。以太网控制芯片采用rtl8019as,是台湾realtek公司生产的一种高度集成的以太网控制器。它实现了以太网媒介访问层(mac)和物理层(phy)的全部功能。译码、电平变换及向功能由xc95144xl完成。它是xilinx公司生产的低功耗cpld器件。hr61001g是中山汉仁电子有限公司生产的10base-t接口器件,起低通滤波和隔离变压等作用。3 软件设计3.1 dsp上嵌入式tcp/ip协议的汇编程序设计由于dsp的资源有限,所以网络协议根据嵌入式应用进行了裁减。本设计中完成了arp、ip、udp等部分协议,既能够保证dsp接入以太网,又使dsp资源能够满足嵌入式系