八核浮點型DSP的雙千兆網接口設計
千兆網絡接口具有數(shù)據(jù)傳輸速率快、連接方便、可以即插即用的優(yōu)點,使得其應用較為廣泛。隨著電子技術和處理器的發(fā)展,很多應用場合的數(shù)據(jù)通信速率超過千兆網口的實際傳輸速率。例如,在A/D采樣中,需要直接存儲A/D轉換的采樣數(shù)據(jù),如果A/D轉換位數(shù)為16位,工作在100MHz,則實際數(shù)據(jù)量為1.6Gbps。為了實現(xiàn)高速傳輸,必須采用更高傳輸速率的接口,例如PCIe或者RapidIO接口。但這些接口不具有即插即用功能,與很多工業(yè)既有設備不能直接連接,限制了其應用場合。
本文引用地址:http://www.ex-cimer.com/article/201808/387567.htmDSP(數(shù)字信號處理器)具有較高的工作頻率,其內部集成硬件網絡MAC接口,外接一個物理層芯片就可以方便地實現(xiàn)千兆網絡通信。多核DSP芯片可以連接多個千兆網口,使得其可以應用到高速數(shù)據(jù)傳輸場合。本文介紹一種基于多核數(shù)字信號處理器TMS320C6678的嵌入式雙千兆網絡接口,實現(xiàn)單個芯片連接兩個千兆網口,這兩個網口可以各自獨立傳輸數(shù)據(jù),也可以聯(lián)合傳輸數(shù)據(jù),提高了實際的數(shù)據(jù)傳輸速率。
1 C6678及其結構
TMS320C6678是TI公司多核處理器中的一款8核浮點型DSP,每個核最高工作頻率可達1.25GHz,每個核可以提供40GMAC定點計算或者20GFLOP浮點計算能力,單個芯片可以提供320GMAC或者160GFLOP計算能力。
TMS320C6678的每個核具有32KB的程序、32KB的數(shù)據(jù)以及512KB的2級Cache存儲空間,芯片片內具有一個4MB的共享SRAM。TMS320C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達到8GB。TMS320C6678的片內外設有RapidIO、PCIe、EMIF、SPI、I2 C總線等接口。這些接口通過片內的高速互聯(lián)總線和各個處理器交互數(shù)據(jù)。
與網絡相關的片內設備,主要包括兩個對外的SGMII接口、以太交換和網絡交換模塊,以及用于數(shù)據(jù)管理的安全加速器和包加速器,可以快速檢測數(shù)據(jù)的校驗以及協(xié)議是否遵循網絡標準,對于錯誤的數(shù)據(jù)直接丟棄,降低CPU 的負擔。為了加快網絡和CPU的數(shù)據(jù)交換,片內的隊列管理器用于管理網絡包或者網絡幀的緩存、分發(fā)等功能。這些數(shù)據(jù)都采用數(shù)據(jù)包DMA讀寫,不需要CPU參與。
TMS320C6678的其他片內設備包括PLL、仿真口、信號量、電源管理和復位管理等模塊。其中PLL配置CPU和外設的工作時鐘;仿真口用于連接仿真器,實現(xiàn)對軟件運行的監(jiān)控;信號量實現(xiàn)對DSP/BIOS操作系統(tǒng)中信號量的控制;電源管理實現(xiàn)整個芯片電流電壓的控制;復位管理配置啟動的方式,硬復位進行全啟動,軟復位進行部分啟動。
2 88E1111及其結構
網絡物理層芯片很多,一般都兼容MII、RMII以及SGMII等接口標準之一或者多個。但TMS320C6678只提供了SGMII接口,所以和TMS320C6678連接的物理層芯片必須具有SGMII接口。本文使用兩片Marvell公司的88E1111 物理層芯片進行雙千兆網絡的連接。
網絡RJ45接口發(fā)送過來的帶有調制數(shù)據(jù)的模擬信號經過A/D轉換變成數(shù)字信號,然后依次經過均衡、整形濾波和譯碼后由接收單元傳輸?shù)組AC芯片,實現(xiàn)數(shù)據(jù)的接收。MAC發(fā)送的數(shù)據(jù)經過整形濾波后由D/A轉換成模擬信號發(fā)送到RJ45接口。為了降低誤碼率,88E1111內部具有鎖相環(huán)(PLL)、自動增益控制(AGC)、時序/相位控制、回音抵消等模塊,這些模塊都是為了提高數(shù)據(jù)傳輸?shù)目煽啃?,在不同環(huán)境或者不同外接設備下,都可以高速可靠地通信。LED控制模塊實現(xiàn)數(shù)據(jù)傳輸時的燈光顯示,MDIO模塊實現(xiàn)鏈接建立和狀態(tài)監(jiān)測,時鐘模塊提供工作時鐘。
3 硬件設計
硬件設計主要包括TMS320C6678和兩個88E1111的接口、88E1111和RJ45的接口、88E1111的硬件配置設計等幾個部分。
TMS320C6678的網絡模塊結構如圖3所示。片內集成了一個3口的以太交換機,負責將兩個千兆網口的數(shù)據(jù)交換到主機,同時提供交換中斷到主機,主機通過中斷可以實時接收和發(fā)送數(shù)據(jù)。主機通過總線配置或者監(jiān)控外部的物理層芯片,配置和監(jiān)控數(shù)據(jù)通過MDIO接口連接到物理層芯片。
TMS320C6678 采用SGMII(Serial Gigabit Media Independent Interface)接口,兼容10/100/1000M 工作方式。SGMII為串行數(shù)據(jù)收發(fā)方式,具有較少的引腳連接。實際上只有兩對收發(fā)的差分線,分別連接到對應的88E1111引腳上。讀寫時鐘隱含在數(shù)據(jù)上傳輸,由硬件自動識別,無須軟件參與。
MDIO和MDCLK 為TMS320C6678內部MDIO 模塊的數(shù)據(jù)和時鐘,用于TMS320C6678和88E1111建立連接,TMS320C6678可以通過該接口配置88E1111,或者讀取88E1111的信息。由于88E1111的MDIO模塊接口電平為2.5V,而TMS320C6678的MDIO模塊接口電平采用1.8V電壓,所以兩者之間需要增加電壓轉換芯片,本設計采用PCA9306實現(xiàn)電壓轉換。需要注意的是,由于存在兩個88E111芯片,MDIO和MDCLK引腳直接連接到兩個芯片上,MDIO可以最多控制32個物理層芯片,物理層芯片地址分別為1~32。88E111的地址分別為4和8。
4 軟件設計
系統(tǒng)軟件設計包括硬件初始化、網絡配置以及數(shù)據(jù)通信流程等。TMS320C6678復位后的工作流程如圖7所示。首先配置第一個網口,記錄其狀態(tài)后配置第二個網口。只要兩個網口有一個配置成功,將配置TMS320C6678的EMAC模塊,為成功配置的網口設置收發(fā)緩沖和收發(fā)任務。這些配置好后,就可以實現(xiàn)網絡的數(shù)據(jù)收發(fā)。需要注意的是,在用戶應用程序中,需要考慮到網口配置失敗的情況。例如,用戶應用程序通過雙網口實時傳輸1.2Gbps的數(shù)據(jù),如果一個網口配置失敗,則應用程序應有相應的機制將實時傳輸速率降低到0.8Gbps以下(單網口實際傳輸速率可能低于0.8Gbps)。本文硬件系統(tǒng)在沒有其他任務開銷情況下,實測可以傳輸1.5Gbps的數(shù)據(jù)(傳輸過程中不考慮錯誤,不進行重發(fā))。
結語
超過1Gbps傳輸速率的通信接口一般采用光纖、PCE、PCIe等接口方式。本文采用雙網口方式可以降低設備要求,和既有設備方便連接。使用多核DSP提高處理器工作能力,在保證大容量數(shù)據(jù)傳輸過程中,處理器仍然具有對數(shù)據(jù)的計算能力。雙網口設計方案可以彌補單網口的傳輸速率不足,又可以降低其他接口的硬件復雜度,是介于兩者之間的有益補充。在嵌入式設備中具有一定的應用價值。
評論