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