(重慶郵電大學移動通信協議研究所,重慶 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.