时间:2024-07-28
(重庆邮电大学移动通信协议研究所,重庆 400065)
现代数字信号处理技术已经应用于通信雷达图像处理等领域。随着现代科学技术和国际半导体制造工艺的发展,各种高性能的DSP芯片相继推出(尤其C6000系列之后),使图像处理的速度问题得到极大解决。然而图形处理速度过高而传输速度跟不上会使处理器出现闲置,浪费资源。在长期演进项目(long term evolution,LTE)中,下行小区搜索、信道模拟、FFT变换等模块数据量大、处理复杂等因素对接口的传输速率提出了新的挑战。目前,人们用于图像数据传输的通信接口主要有USB接口、Cameralink接口、UART接口等,这些接口虽然有的也能达到几百兆字节的通信速率,但仍然不能满足高性能处理器的通信需求,如UART接口[1]。
本文针对TMS320C6A8168Xc6 芯片的特点和资源,扩展了以太网接口。该接口主要完成接口电路的设计、底层驱动程序的开发等工作,实现了数字处理信号的网络传输。
TMS320C6A8168Xc6是TI推出的一款面向高端用户的高性能、浮点、超长指令字结构(VLIW)的数字信号处理器,最高工作频率为1.5 GHz。片内除了高性能的674X DSP内核外,还集成了丰富的外设资源,比如用于片级互联的RapidIO接口、PCI接口、MCBSP接口、UART接口、USB接口、千兆以太网控制器等。本文利用TMS320C6A8168Xc6片内的千兆以太网接口模块MDIO/EMAC,结合片外的PHY芯片ET1011C以及简单的外围电路,扩展了TD-LTE射频一致性开发平台的以太网通信接口,实现了系统的网络化。
EMAC模块是DSP处理器内核与另一个主机(在片外与DSP处理器内核连接在同一网络上)之间的网络物理层数据传输接口,并负责以太网数据的接收和发送。它将从上层协议栈传来的数据打包为符合IEEE 802.3标准的以太网数据包,并从收到的包中分离出载荷数据,提供给上层进行分析和处理,实现了IEEE 802.3标准的以太网MAC层协议功能。EMAC模块具有以下特点:同步10/100/1 000 Mbit/s操作;与物理层器件PHY之间的GMII接口;充当到片内外的内存DMA 主控制器;包括CRC的硬件错误处理;拥有8个接收通道,带VLAN tag辨识,用于支持接收QOS;8个发送通道,支持Round-Robin或固定优先级,用于支持发送QOS、Ether-Stats或802.3-Stats RMON统计值收集;在单个通道上选择接收广播帧;8 kB本地EMAC描述符内存,允许外设操作描述符(无需CPU参与),描述符内存保持足够的信息,用于传输多达512个以太网包,而无需CPU干扰;TI自适应性能优化,改善半双工的运行性能;可配置的接收地址匹配/过滤、接收FIFO深度、发送FIFO深度;回环模式等。
系统平台基于TMS320C6A8168Xc6片内EMAC/EMAC控制/MDIO模块、片外PHY芯片ET1011C以及外围接口电路的设计,能够快速实现OSI模型中DL和PHY层的功能。GMII接口以太网配置框图如图1所示。GMII接口支持10/100/1 000 Mbit/s模式,在1 000 Mbit/s下支持全双工模式;在10/100 Mbit/s下,GMII与MII功能基本相同。
图1 GMII接口以太网配置框图
图1中的主要信号分别描述如下。
① EMAC_TXCLK:发送时钟,是一个连续的时钟,提供10/100 Mbit/s模式下发送操作的定时基准。EMAC_TXD和EMAC_TXEN信号在10/100 MHz时参考这个时钟,时钟由PHY产生。在10 Mbit/s时,时钟频率为2.5 MHz;在100 Mbit/s时,时钟频率为25 MHz。
② EMAC_GMTCLK:GMII源异步发送时钟,仅在1 000 Mbit/s模式下使用,用来提供连续的125 MHz频率的发送时钟。EMAC_TXD和EMAC_TXEN信号在1 000 Mbit/s下同步于该时钟,125 MHz时钟是由EMAC产生的。
③ EMAC_TXD[0~7]:发送数据信号,同步于EMAC_TXCLK(10/100 Mbit/s)、EMAC_GMTCLK(1 000 Mbit/s)。
④ EMAC_TXEN:发送数据使能。发送数据使能指示EMAC_TXD[0~7]管脚产生有效数据,供PHY使用。
⑤ MDIO_MCLK:管理数据串行时钟,由MDIO产生,同步MDIO的数据接入操作且其频率受控于MDIO控制寄存器的CLKDIV比特位。
⑥ MDIO_MDIO:管理数据输入输出。该管脚通过接入帧管理PHY的数据输入输出。接入帧由开启位、读写标志位、PHY地址位、寄存器地址位和数据位组成。MDIO_MDIO管脚充当这些位的数据输出,仅在读操作时作为数据位的输入。
本系统采用84脚的千兆物理层芯片ET1011C。该芯片采用低功耗设计并使用0.13微米技术制造,广泛应用于服务器和PC机的网络接口卡。其集成在单块CMOS芯片上,也可用于Gigabit传输的以太网收发设备,并兼容IEEE 802.3、802.3u和802.ab标准,支持10、100、1000Base-T设备。TMS320C6A8168Xc6片上EMAC模块和ET1011芯片均支持GMII接口模式,因此两芯片之间可以进行无缝连接[2]。
2.1.1 帧格式
以太网为网络应用提供的是一个不可靠的、无连接服务。以太网数据包的大小为1 514 B,其中帧格式由源MAC地址、目的MAC地址、数据、帧检测序列、长度/类型域等组成。在编写底层软件时,应注意以太网数据包的数据是从第18字节开始的。以太网帧格式如图2所示[3-4]。
图2 以太网帧格式
图2中,帧界定符(SFD)紧随前缀,表示重要数据的开始。数据域携带包含上层协议帧的数据报,即IP数据报。以太网最大发送单位为RXMAXLEN-18个字节,这意味着上层协议数据报长度如果超过RXMAXLEN-18个字节,主机就必须将数据报拆分成多个以太网包来发送。数据域的最小尺寸为46 B,如果上层协议数据报的数据长度小于46 B,数据必须通过在数据域后面添加冗余位来扩展到46 B,且添加冗余位应在计算和附加帧校验序列(FCS)之前,即先添加后计算CRC[5]。
2.1.2 编程接口
经信号处理器处理过的数据要发送到外围设备必须用到编程接口。编程接口包括包缓冲描述符、收发描述符队列和收发缓冲描述符。缓冲描述符是EMAC模块的一个重要部分,它描述了应用软件怎样发送与接收以太网包以及如何用输入的数据包填充空缓冲器。包缓冲描述格式如图3所示。
图3 包缓冲描述格式
下一个描述符指针用于创建单连接描述符列表,每个描述符都描述一个包或者一个包的片段。当一个描述符指向单个缓冲包或者包的第一个片段时,包开始(SOP)标志被设置;当指向缓冲包或者包的最后一个片段时,包结束(EOP)标志被设置;当一个包被拆分时,每个片段必须有自己的描述符,并顺序显示在描述符列表中。在发送操作时,缓冲区指针指向包含数据包的实际内存缓冲区或在接收操作时为一个空缓冲且准备用于接收数据包。缓冲偏移是从包缓冲起始地址开始到第一个有效数据的偏移量。这个域仅在缓冲描述符指向一个包含实际数据的缓冲时才有效。
发送数据包时,要按照传输缓冲描述格式进行配置,把处理器EMAC描述存储器的地址赋给当前缓冲指针,再把下一个缓冲指针指向待发包的地址。在缓冲长度的控制下,当第一以太网包发送完毕后,在下一个描述符指针的指引下接着发送下一个包。如果当前包为最后一个待发包或者为一个包的最后一个片段,则下一个描述符指针指向0x0。
C语言程序配置如下[6]。
pDesc = pDescBase+10 ;
pDesc->pNext = pDescBase + 11;
pDesc->pBuffer=packet_data1;
∥packet_data;
pDesc->BufoffLen = 512;
pDesc->pktFlgLen=EMAC_DSC_FLAG_OWNER| EMAC_DSC_FLAG_SOP
|EMAC_DSC_FLAG_EOP
|512;
∥下一个包的配置
pDesc = pDescBase + 11;
pDesc->pNext = 0;
pDesc->pBuffer = packet_data;
pDesc->BufoffLen = TX_BUF;
pDesc->pktFlgLen=EMAC_DSC_FLAG_OWNER| EMAC_DSC_FLAG_SOP
|EMAC_DSC_FLAG_EOP
|TX_BUF;
底层硬件驱动负责向TCP/IP协议栈提供具体的操作接口,用于控制以太网器件的配置和运行。这些控制功能主要包括:初始化驱动环境,如存储区数据访问优先级、中断使能;以太网数据包的发送与接收;监测底层网络器件状态,将时间信息反馈给上层;关闭驱动程序,收回占用的资源[1]。以发送数据包为例,具体配置流程图如图4所示[7]。
图4 发送端配置流程图
在PC机上利用软件Wireshark抓包工具监测数据,结果基本符合工程需求,且传输速率快。
抓包结果如下。发送数据包前6个字节即50-e5- 49-ad- 4a-b5为目的MAC地址(PC机MAC地址);00-01-02-03-04-05为源MAC地址即DSP芯片的自定义MAC地址。紧跟其后的数据0x0200为发送的帧长度512 B,数据占508 B。紧接着4个字节00-01-00-00为LLC协议控制信息,目的服务访问点DSAP和源服务访问点分别为0x00、0x01。利用Wireshark软件可以清楚地观察到DSP通过高速以太网发送信息的控制字符和数据的正确性,这样更有利于对数据进行分析。
与系统平台中速率为50 kbit/s的UART接口和PC机通信相比,EMAC网口不但传输速率快,而且能和以太网连接进行远程通信。EMAC GMII接口速率比UART接口速率快20 000多倍,达到1 000 Mbit/s。
本文利用TMS320C6A8168Xc6片内外设资源,提出了以太网通信接口的软硬件设计方案。该方案不仅扩展了TD-LTE射频一致性开发平台的信息交互能力,而且创造了平台与远程网络的通信功能。
最后在多种条件下进行了性能测试。测试结果表明,该通信接口的设计方案能够有效提高DSP数据传输的实时性,具有简单易行、开发周期短、性价比高、便于扩展和维护等优点。
该设计成功应用于TD-LTE射频一致性开发系统,目前系统运行稳定。
[1] 赵金保,许枫.基于TMS320C6455的千兆以太网设计[J].微计算机信息,2009,25(2):270-271.
[2] 于凤芹,张庆荣.TMS320 C6000 DSP结构原理与硬件设计[M].北京:北京航空航天大学出版社,2008:76-80.
[3] 邓伟,王文菊.基于TMS320 C6455的以太网通信程序的设计[J].电子设计工程,2013,25(7):165-167.
[4] 左颢睿,张启衡,徐勇,等.基于DSP的千兆以太网接口设计[J].通信技术,2012,43(8):1-3.
[5] 杨永,刘铁根.基于高速DSP的千兆以太网嵌入式系统研究[D].天津:天津大学,2007.
[6] 邹依依,郭灿欣,欧阳三元,等.基于以太网硬件协议栈的DSP嵌入式系统设计[J].自动化仪表,2008,29(3):69-71.
[7] 许喆,张平.TD-LTE中测仪中基带板DSP的部分接口的研究与实现[D].北京:北京邮电大学,2010.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!