基于TMS320 C6455的以太网通信程序设计解析
基于TMS320 C6455的以太网通信程序设计解析
点击数:7553 次 录入时间:03-04 11:41:11 整理:http://www.55dianzi.com 源码-程序
3)配置MAC的是否为多播地址,使能以太网中断,EMAC处于就绪状态。
3.2.2 EMAC接收模块
EMAC接收模块主要由EMAC中断来驱动。当EMAC硬件接收完一个或多个包数据时,会向DSP核发出一个接收完成中断。DSP核在接收到中断后,调用应用程序提供的接收数据回调函数处理接收到的数据,并返回给中断服务程序一个空闲的存储块,中断服务程序将该存储块重新链接到接收存储块链表,完成接收数据流程。
3.2.3 EMAC发送模块
EMAC发送模块主要由一个发送接口函数ethSendPacket(char*Buffer,int Length)构成,用户程序通过调用该函数完成以太网数据的发送。该函数参数中,Buffer表示应用程序需要发送的数据,Length表示发送数据的长度。该函数首先将Buffer中的数据拷贝到空闲的存储块,并将该储存块加入如图7所示的WaitQueue队列中,WaitQueue队列表示等待加入EMAC发送队列(DescQueue)的存储块。ethSendPacket函数接着检查EMAC发送队列DescQueue是否有空闲的发送描述符,如果有,将WaitQueue链表中的存储块加入到DeseQueue。EMAC硬件将通过相应的描述符,将DescQueue中的数据发送出去。

当数据发送完成后,EMAC向DSP核发出一个发送完成中断。发送完成中断服务程序将发送后的存储块从DescQueue中移除并交还给应用程序,然后将使用过的发送描述符置为空闲状态,以便下次发送数据时使用。
3.3 ARP/ICMP/UDP网络协议模块的设计
为了与上位机完成网络通信,信号处理机还必须提供基本的网络通信协议。文中在设计时,主要提供了ARP/ICMP/UDP 3种网络协议。ARP协议主要完成信号处理机IP地址和MAC地址的转换;ICMP协议主要完成测试信号处理机与上位机之间的网络连通性;UDP协议主要完成实际指令和数据的通信。
文中简化了这些网络协议模块的设计,设计的主要思路是解析3种协议的包格式,并根据不同协议,封装相应的回应包,发送给上位机。在UDP协议设计中,为了保证数据能够准确送达上位机,加入了CRC校验和出错重传机制。协议处理流程如图8所示。

4 结束语
文中以TMS320C6455为核心芯片,通过对C6455 EMAC硬件的研究,参考相关的以太网驱动程序,完成了C6455的以太网通信程序的设计。结果表明,文中设计的以太网驱动程序以及网络协议模块较好的满足了处理机对实时高效数据通信的基本需求,省却了对信号处理机硬件的修改,降低了系统的复杂度,为其他项目的开发提供了很好的借鉴。
但在对信号处理机网络吞吐性能的测试过程中发现实际的网络吞吐速率与千兆以太网的理论速率还是有较大的差距。如何进一步优化驱动程序的架构和关键数据结构的算法,以便进一步提高网络吞吐率,是笔者下一步的研究方向。
上一页 [1] [2]
本文关键字:程序设计 通信 以太网 源码-程序,单片机-工控设备 - 源码-程序