• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于TMS320 C6455的以太网通信程序的设计

基于TMS320 C6455的以太网通信程序的设计

录入:edatop.com     点击:

如图6,文中用EMAC_Ch_Struct结构体涵盖了接收模块所用到的链表指针。其中,DescQueue表示空的接收存储块链表,EMAC在接收到一块数据时,启动EMAC内部的DMA,将数据放入当前描述符指向的存储块,并通过中断通知应用程序有数据到达;pDescFirst指向接收描述符链表的首地址,pDescLast指向接收描述符链表的末地址;pDescRead指向第一个可使用的描述符;pDescWrite指向最后一个可使用的描述符;

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结束语

文中以TMS320 C6455为核心芯片,通过对C6455 EMAC硬件的研究,参考相关的以太网驱动程序,完成了C6455的以太网通信程序的设计。结果表明,文中设计的以太网驱动程序以及网络协议模块较好的满足了处理机对实时高效数据通信的基本需求,省却了对信号处理机硬件的修改,降低了系统的复杂度,为其他项目的开发提供了很好的借鉴。

但在对信号处理机网络吞吐性能的测试过程中发现实际的网络吞吐速率与千兆以太网的理论速率还是有较大的差距。如何进一步优化驱动程序的架构和关键数据结构的算法,以便进一步提高网络吞吐率,是笔者下一步的研究方向。

上一篇:大联大控股诠鼎力推TOSHIBA多媒体应用解决方案
下一篇:Bluetooth Low Energy系统的开发

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图