微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DM9000A的DSP以太网接口设计与实现

基于DM9000A的DSP以太网接口设计与实现

时间:03-12 来源:互联网 点击:

5所示。

3.1.3 数据帧接收

当DM9000A数据接收使能后,DM9000A就会自动接收数据。DM9000A接收到的数据先保存在地址从0x0C00~0x3FFF的13 KB内部SRAM缓存空间中,它是一个环形结构。

利用寄存器MRCMDX(FOH)和寄存器MRCMD(F2H)可获取缓存中的数据帧信息。接收到的数据帧格式如图6所示。

其中第1个字节是接收数据标志字节,表征接收到数据帧是否有效。第2个字节是接收数据帧的状态字节,其中的内容与接收状态寄存器RSR中的内容相同,可以用来判断所接收的数据帧是否正常。第3,4个字节是接收到数据的长度字节,其中低位在前,高位在后。从第5个字节开始的数据才是真正数据帧内容。

数据接收过程如下:

(1)检查中断状态寄存器:ISR(FEH),若PRS位为1,说明有新的数据帧接收,写1清除PRS位;若为0,说明无数据,直接返回。

(2)读取第1个字节,即接收数据标志字节。如果该字节为01,则表示接收下来的是有效数据帧;如果该位为00则表示没有数据到达,或数据已经接收完成;如果既不是01又不是00,则认为有异常发生,这时就要将DM9000A芯片重启以使芯片恢复到正常状态。

(3)读取第2个字节,即接收状态字节。根据接收状态字节判断所接收的数据帧是否正常。

(4)读取第3,4字节,即数据帧长度字节。

(5)读取真正的数据帧内容。

(6)根据获取的长度信息,判断是否读完一帧。如果读完,接着读下一帧,直到遇到首字节是00H的帧,说明接收数据已读完。

数据帧接收流程如图7所示。

3.2 上层通信协议程序设计

TCP/IP协议模型可以分为四个层次,从下到上依次为:链路层、网络层、传输层和应用层。每一层都有不同的功能,低一层为高一层提供服务。

标准的TCP/IP协议栈对处理器的计算、存储要求比较高,然而,DSP系统的计算资源和存储资源通常是非常有限,在DSP中实现标准的TCP/IP协议栈将占用大量系统资源,不利于DSP其他方面的应用,因此必须对它进行简化并优化,尽可能做到代码精简,降低存储开销。本系统设计和实现了TCP/IP通信协议的必要部分,包括:ARP,IP,ICMP,TCP,UDP等协议。

ARP(地址解析协议)为IP地址到对应的硬件地址之间提供动态映射。IP协议是TCP/IP协议的核 心,所有的TCP,UDP,ICMP的数据都是以IP数据格式传输的。ICMP(网络控制报文)是用来传递差错报文以及其他需要注意的信息,有各种类型的ICMP报文,本文只用到ICMP的请求回显(类型字段为8、代码字段为0)。TCP提供一种面向连接的、可靠的字节流服务,交换数据之前必须先建立一个TCP连接,即“三次握手”UDP是一个简单的面向数据报的传输层协议,它把应用程序传给IP层的数据发送出去,但是并不保证他们能到达目的地。在链路层,当DM9000A完成一个以太网数据帧接收后,将其读入暂存数组,检查以太网帧类型字段,该字段值为0x0806,表示数据帧为ARP帧;该字段的值为0x0800,表示数据帧为IP帧。接着,分别交由ARP协议处理模块或IP协议处理模块。编程时使用框架如下:

if(完成以太网数据帧接收)

{ if(以太网类型字段==0x0806)

{ARP处理模块}

if(以太网类型字段==0x0800)

{IP处理模块}

}

网络层收到的为ARP数据报,ARP根据操作字段(ARP请求为1,ARP应答为2),或者发送ARP应答或者更新ARP地址映射表。若为IP数据报,IP协议处理模块对数据包解析后,IP首部协议字段若为1就将数据交给ICMP协议处理模块,若为6则交给TCP处理模块,若为17则交给UDP处理模块。传输层得到UDP的报文后,按照UDP协议中的端口,分别送给不同的应用层序。若传输层得到的是TCP报文,则要根据TCP的状态转换图进行处理。在TCP或UDP的处理模块中,根据目的端口号,分别将数据送往不同的用户应用程序。其工作流程如图8所示。

4 结语

本文把高度集成、低成本的快速以太网控制器DM9000A与数据处理能力强大、高运行速度的DSP(TMS320F28335)相结合,设计出了一种DSP的以太网接口。实验结果表明,DSP系统可以通过该接口实现以太网数据通信,经自行裁剪的TCP/IP协议栈,不仅实现了IP,ARP,ICM P,TCP和UDP协议,而且提高了数据传输效率。该接口具有硬件接口简单、外围器件少、运行稳定可靠、性价比高等特点,同时也能够满足测试、采集等高速数据传输系统的要求,符合当今DSP设备趋于网络化发展的方向。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top