基于TMS320的以太网通信程序设计
摘要:文中介绍了TMS320 C64155 DSP EMAC接口的构成以及工作原理和关键数据结构,参考相关的以太网驱动程序,完成了基于C6455 DSP的以太网通信程序的设计。该网络通信程序实现了某款信号处理机与上位机之间的高速通信接口。系统测试结果表明,利用C6455实现的以太网通信接口完全满足系统设计要求,并且系统具有组成简单、系统集成度高等优点。该方案在其他多功能信号处理设备方面具有一定的应用价值。
关键词:TMS320 C6455;DSP;以太网通信;网络驱动程序
随着以太网技术的普及和发展,以太网的通信速率从百兆网逐渐进入了千兆网,甚至万兆网,其通信速率已经满足了常用信号处理机所需要的吞吐率。而以前仅用来做信号处理的DSP器件逐渐也加入了以太网通信功能,常见的如TI公司的DM642,C6455,C6678等DSP器件都带有以太网接口,这给一些需要高速通信接口的信号处理板的设计提供了极大的便利。本文利用某处理板上的TI公司高端DSP器件TMS320 C6455,完成了信号处理板与人机界面之间的高速以太网通信功能。系统测试结果表明,利用C6455实现的以太网通信接口完全满足系统设计要求,并且系统具有组成简单、系统集成度高等优点。
1 硬件平台
信号处理板的主要硬件包括两路高速DAC,两路高速ADC以及一块Xilinx V5的FPGA和一块TMS320 C6455DSP处理器,其中网络通信接口部分主要包括C6455、PHY芯片和RJ45接口,如图1所示。C6455的EMAC接口与信号板上的PHY芯片以GMII方式连接,支持千兆双工通信模式。
2 C6455 EMAC接口介绍
C6455的EMAC接口主要由3部分构成,包括MDIO模块、EMAC模块、EMAC控制模块。其中MDIO模块通过802.3协议规定的串行通信接口,完成以太网物理层芯片的配置和管理:EMAC模块负责以太网数据包的发送和接收;EMAC控制模块作为DSP核和EMAC接口之间的桥梁,实现DSP核对EMAC模块和MDIO模块的控制。
如图2所示,EMAC接口通过C6455提供的外设总线与DSP核连接,外设总线中的配置总线提供DSP核对EMAC寄存器的访问,数据总线完成DSP核与EMAC接口之间的以太网通信包的交换。此外,EMAC控制模块将EMAC模块和MDIO模块产生的18个中断信号综合在一起,对外提供一个中断信号,发往C6455的中断控制器,成为C6455处理器的第17号系统事件。C6455的DSP核在接到中断信号后,通过查询EMAC控制模块提供的中断状态寄存器判断中断产生的中断源。
包缓存描述符(Packet Buffer Descriptors)在C6455的网络通信中起到关键的作用,应用程序和EMAC接口之间的信息交换主要是通过包缓存描述符来实现。包缓存描述符的结构如图3所示,每个包缓存描述符大小为16个字节,其中各个域的意义如下:Next Descriptor Poin ter表示指向下一个描述符的指针,这样多个包缓存描述符可以形成一个单向链表;Buffer Pointer表示指向接收或者发送数据内存空间的指针,EMAC模块根据该指针,启动内部的DMA引擎将数据放入到内部FIFO以便发送,或者从内部FIFO读出到该地址,以便应用程序处理;Buffer Offset表示从Buffer Pointer指向的地址到有效数据之间的距离;Buffer Length表示该缓存器指向数据的大小;Flags表示该缓存器指向的数据是否是应用程序数据包的起始包,或是结束包;Packets Length表示应用程序数据包的总长度,应用程序包可能是由一个或者多个包缓存描述符构成。
EMAC模块以链表的形式处理包缓存描述符,描述符链表的第一个地址需要写入EMAC的头描述符寄存器(head descriptor pointer),EMAC从头描述符寄存器指向的描述符开始,逐个处理链表中所有的描述符,直到遇到Next Descriptor Pointer为零的描述符。当链表中所有的描述符都处理完成时,EMAC向DSP核发出一个中断,并将处理完的最后一个描述符的地址写入发送/接收完成寄存器,DSP核通过中断和完成寄存器与EMAC进行发送或接收数据的同步。
3 以太网通信程序设计
文中设计的以太网通信程序是基于TI公司提供的DSP操作系统DSP/BIOS之上,由该操作系统提供时钟定时、任务同步、硬件中断管理等功能。如图4所示,以太网通信程序主要由DSP/BIOS操作系统、网络驱动程序和用户程序构成。DSP/BIOS操作系统为其他模块提供定时、任务同步等服务;网络驱动程序完成以太网通信功能;用户程序负责解释并执行人机界面发送的命令和数据。网络驱动程序主要包括以太网硬件驱动程序和几个基本的网络协议,包括ICMP,ARP和UDP协议,其中,以太网硬件驱动程序的设计是文中描述的重点,其主要包括MDIO驱动程序与EMAC驱动程序。MDIO驱动程序完成C6455 EMAC与物理芯片
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- 基于TMS320DM642的农药喷洒系统(04-22)
- 基于DSP的信号采集处理系统(07-21)
- 基于TMS320VC5509A的语音识别与控制系统(06-17)
- 基于DSP的视频采集驱动程序的实现(07-21)
- 基于DSP的无刷直流电机调速系统(06-01)