DSP的應(yīng)用
DSP的設(shè)計(jì)與應(yīng)用:基于多核DSP的以太網(wǎng)通信接口設(shè)計(jì)
發(fā)布時(shí)間:2017-05-31 責(zé)任編輯:susan
【導(dǎo)讀】隨著DSP處理器在現(xiàn)代工業(yè)的應(yīng)用越來(lái)越廣泛,DSP的功能不僅只有快速運(yùn)算處理,還需要與其他處理器或者設(shè)備之間進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,以實(shí)現(xiàn)資源的共享。因此,針對(duì)不同設(shè)備的需求,選擇穩(wěn)定、快速和高效率的接口方式在當(dāng)今數(shù)字信號(hào)處理系統(tǒng)設(shè)計(jì)中關(guān)鍵的組成部分。
DSP的應(yīng)用
針對(duì)8核DSP TMS320C6678與外部設(shè)備進(jìn)行數(shù)據(jù)通信的需求,以片上集成千兆以太網(wǎng)交換子系統(tǒng)為核心,選取芯片88E1111作為PHY設(shè)備,設(shè)計(jì)了千兆以太網(wǎng)通信接口的硬件電路。在嵌入式操作系統(tǒng)SYS/BIOS和網(wǎng)絡(luò)開(kāi)發(fā)環(huán)境NDK上,完成了以太網(wǎng)底層驅(qū)動(dòng)和TCP/IP協(xié)議的程序設(shè)計(jì)。通過(guò)DSP與上位機(jī)進(jìn)行以太網(wǎng)通信測(cè)試,證明了以太網(wǎng)接口電路硬件及軟件的正確性和實(shí)用性。
隨著DSP處理器在現(xiàn)代工業(yè)的應(yīng)用越來(lái)越廣泛,DSP的功能不僅只有快速運(yùn)算處理,還需要與其他處理器或者設(shè)備之間進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,以實(shí)現(xiàn)資源的共享。因此,針對(duì)不同設(shè)備的需求,選擇穩(wěn)定、快速和高效率的接口方式在當(dāng)今數(shù)字信號(hào)處理系統(tǒng)設(shè)計(jì)中關(guān)鍵的組成部分。
TI公司的8核處理器TMS320C6678(以下簡(jiǎn)稱(chēng)C6678)提供豐富的片上接口資源用于處理器與外設(shè)之間的通信,這些接口都可以用于DSP與外設(shè)之間的通信,但是靈活性有差異,使用SGMII接口來(lái)實(shí)現(xiàn)千兆以太網(wǎng)通信,可使得通信接口一般化,能夠適用于眾多的設(shè)備連接。本文針對(duì)C6678的芯片特點(diǎn)以及含有的接口資源,設(shè)計(jì)實(shí)現(xiàn)了千兆以太網(wǎng)通信,主要設(shè)計(jì)了以太網(wǎng)接口電路、網(wǎng)絡(luò)底層硬件驅(qū)動(dòng)、TCP/IP協(xié)議的用戶(hù)程序,并完成了與上位機(jī)以太網(wǎng)通信測(cè)試,實(shí)現(xiàn)了數(shù)字信號(hào)高速有效地網(wǎng)絡(luò)傳輸。
1.C6678以太網(wǎng)交換子系統(tǒng)
C6678是基于KeyStone I構(gòu)架的8核高性能、定點(diǎn)/浮點(diǎn)處理器,單核最高工作頻率可達(dá)1.25 GHz。C6678的以太網(wǎng)交換子系統(tǒng)包括2個(gè)以太網(wǎng)媒體訪問(wèn)控制(Ethernet Media Access Controller,EMAC)、2個(gè)SGMII、1個(gè)管理數(shù)據(jù)輸入輸出(Management Data Input Output,MDIO)、3-Port以太網(wǎng)交換模塊以及網(wǎng)絡(luò)配置總線,其網(wǎng)絡(luò)交換子系統(tǒng)如圖1所示。
EMAC的作用是將交換子系統(tǒng)的內(nèi)部信號(hào)轉(zhuǎn)換為GMII信號(hào)傳遞給SGMII模塊;MDIO控制物理層芯片執(zhí)行對(duì)多數(shù)據(jù)流的控制輸入輸出。
2.PHY芯片88E1111
本文選擇C6678作為主芯片,由于C6678的千兆網(wǎng)絡(luò)交換子系統(tǒng)只支持SGMII接口,所以本文選擇對(duì)SGMII接口的網(wǎng)絡(luò)數(shù)據(jù)傳輸具有較好兼容性的物理芯片88E1111。88E1111芯片的內(nèi)部結(jié)構(gòu)如圖2所示。
88E1111的介質(zhì)接口有銅介質(zhì)接口和光纖接口。銅介質(zhì)接口為MDI[3:0],通過(guò)設(shè)置HWCFG_MODE[3:0]來(lái)選擇運(yùn)行模式。 88E1111集成的MDIO模塊與EMAC的MDIO接口相連接,可將方便網(wǎng)絡(luò)控制端讀取物理芯片狀態(tài)寄存器,達(dá)到實(shí)時(shí)監(jiān)測(cè)的效果。
3.硬件接口設(shè)計(jì)
本文設(shè)計(jì)的任務(wù)是基于C6678片內(nèi)以太網(wǎng)交換子系統(tǒng)和片外PHY芯片88E1111及其外圍電路的接口設(shè)計(jì)。主要包括:C6678與88E1111芯片連接、88E1111芯片配置以及88E1111芯片與網(wǎng)絡(luò)介質(zhì)連接。
3.1 C6678與88E1111芯片連接
C6678和PHY芯片88E1111的接口電路如圖3所示。88E1111工作在SGMII接口模式下,不需要TXCLK時(shí)鐘輸入,更有助于減少電路板上走線的數(shù)量,同時(shí)也可減少噪聲的產(chǎn)生。
主要的接口信號(hào)包括時(shí)鐘和數(shù)據(jù)信號(hào)如下:
MDIO_CLK:管理數(shù)據(jù)時(shí)鐘。該時(shí)鐘信號(hào)由C6678片上的MDIO模塊提供,該時(shí)鐘頻率通過(guò)配置MDIO的控制寄存器CONTROL中的CLKDIV位來(lái)控制實(shí)現(xiàn)。
SGMII_TXP和SGMII_TXN:串行發(fā)送差分?jǐn)?shù)據(jù)線。連接DSP內(nèi)部SerDes和物理芯片的S_IN管腳,DSP的SerDes通過(guò)該管腳向物理層發(fā)送串行數(shù)據(jù),數(shù)據(jù)中包含發(fā)送數(shù)據(jù)時(shí)鐘信號(hào)。
SGMII_RXP和SGMII_RXN:串行接收差分?jǐn)?shù)據(jù)線。連接DSP內(nèi)部SerDes和物理芯片的S_OUT管腳,物理層芯片通過(guò)該接口將數(shù)據(jù)傳送到DSP的SerDes,數(shù)據(jù)中包含數(shù)據(jù)接收時(shí)鐘信號(hào)。
MDIO:管理數(shù)據(jù)I/O。可最多連接32個(gè)PHY設(shè)備到DSP的EMAC,并且可以枚舉所有PHY設(shè)備,讀取PHY設(shè)備狀態(tài)寄存器來(lái)監(jiān)測(cè)PHY的連接狀態(tài)。數(shù)據(jù)幀結(jié)構(gòu)符合802.3標(biāo)準(zhǔn),包含讀寫(xiě)指令、PHY地址、寄存器地址和數(shù)據(jù)等。
因?yàn)?8E1111上集成的MDIO與C6678集成MDIO模塊進(jìn)行連接時(shí),電壓有所差別,前者電壓為2.5 V,后者電壓為1.8 V,所以在二者之間應(yīng)該添加電壓轉(zhuǎn)換器。本文采用一片PCA9306,實(shí)現(xiàn)2.5 V和1.8 V之間的電平轉(zhuǎn)換,其連接電路如圖4所示。
3.2 88E1111芯片配置
88E1111與C6678的MDIO模塊相連接,MDIO最多可識(shí)別32個(gè)物理芯片,在使用物理芯片之前需要對(duì)其進(jìn)行配置,配置內(nèi)容主要包括芯片的地址、模式等。配置CONFTG[6:0]管腳定義可查詢(xún)文獻(xiàn),本文配置的硬件電路如圖5所示,圖5中可以不使用電阻,本文為了測(cè)試方便,加一個(gè)0 Ω的電阻。
88E1111硬件配置完成后,系統(tǒng)將固定為一種接口方式,按照文獻(xiàn)的定義,物理芯片的地址為:PHY_ADDRESS=0’b00001,芯片模式為:不帶時(shí)鐘,自動(dòng)協(xié)商的SGMII模式。
3.3 88E1111芯片與RJ45連接
88E1111和網(wǎng)絡(luò)介質(zhì)之間無(wú)法直接連接,因傳輸速度在千兆級(jí),所以更加需要設(shè)計(jì)合適的網(wǎng)絡(luò)隔離變壓器來(lái)降低傳輸損耗、回音和串?dāng)_。本文選擇千兆網(wǎng)口插座HR911130C,該插座內(nèi)部自帶變壓器電路,只需在外部連接濾波網(wǎng)絡(luò)便可實(shí)現(xiàn)網(wǎng)絡(luò)信號(hào)穩(wěn)定地傳輸,如圖6所示。88E1111和 HR9111130C采用差分連接,在PCB布線時(shí)需要嚴(yán)格等長(zhǎng),且一般還需使用阻抗匹配網(wǎng)絡(luò),如圖6中的R1和C1。
4.軟件程序設(shè)計(jì)
TI針對(duì)網(wǎng)絡(luò)開(kāi)發(fā)發(fā)布了網(wǎng)絡(luò)開(kāi)發(fā)套件(Network Development Kit,NDK),能將多個(gè)模塊的配置操作交給NDK網(wǎng)絡(luò)框架實(shí)現(xiàn),同時(shí)數(shù)據(jù)分包和解析也無(wú)需程序員過(guò)多考慮,加速了網(wǎng)絡(luò)開(kāi)發(fā)進(jìn)程。NDK構(gòu)建在實(shí)時(shí)操作系統(tǒng)SYS/BIOS之上,NDK通過(guò)OS抽象層與BIOS進(jìn)行交互,同時(shí)BIOS的cfg配置文件能對(duì)NDK各模塊進(jìn)行可視化查看。
本文基于多核DSP實(shí)時(shí)操作系統(tǒng)SYS/BIOS上,設(shè)計(jì)了以太網(wǎng)通信程序。該操作系統(tǒng)能夠提供較多的集成模塊,方便用戶(hù)編寫(xiě)程序,且還有軟硬件中斷管理、多任務(wù)同步機(jī)制、多核通信機(jī)制和存儲(chǔ)器管理機(jī)制等,可為用戶(hù)進(jìn)行多線程多任務(wù)開(kāi)發(fā)提供模塊化的框架。以太網(wǎng)通信接口的軟件總體結(jié)構(gòu)如圖7所示。
SYS/BIOS為整個(gè)軟件提供集成開(kāi)發(fā)環(huán)境,不僅擁有適合實(shí)時(shí)系統(tǒng)的多線程優(yōu)先搶占機(jī)制,還可添加需要的封裝庫(kù),使得編寫(xiě)程序時(shí)可以更加方便地調(diào)用庫(kù)函數(shù)。NDK是DSP的網(wǎng)絡(luò)程序開(kāi)發(fā)集成工具,其中,stack.lib給出了從頂層socket到底層PPP關(guān)于TCP/IP協(xié)議棧的封裝庫(kù);nettool.lib提供用于socket網(wǎng)絡(luò)套接字和用于網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)工具的封裝庫(kù);os.lib提供應(yīng)用于SYS/BIOS和網(wǎng)絡(luò)編程套件之間的系統(tǒng)協(xié)調(diào)的封裝庫(kù);hal.lib提供外圍設(shè)備和網(wǎng)協(xié)議棧之間接口的封裝庫(kù);netctrl.lib提供DSP網(wǎng)絡(luò)編程的整體控制,可用來(lái)配置底層驅(qū)動(dòng)和協(xié)議。
本文DSP片上系統(tǒng)軟件分為3部分:SYS/BIOS平臺(tái)和NDK的TCP/IP協(xié)議棧建立和配置;用戶(hù)程序;編制底層驅(qū)動(dòng)程序。
4.1 底層硬件驅(qū)動(dòng)的實(shí)現(xiàn)
NDK的基本結(jié)構(gòu)如圖7所示,可看出NDK開(kāi)發(fā)套件與用戶(hù)程序、SYS/BIOS操作系統(tǒng)和底層硬件都有密切的聯(lián)系。NDK中網(wǎng)絡(luò)控制層和操作系統(tǒng)接口層與SYS/BIOS系統(tǒng)相連接,NDK的硬件驅(qū)動(dòng)層用于控制底層硬件驅(qū)動(dòng)的配置,這些操作和配置均可在網(wǎng)絡(luò)工具庫(kù)中找到相應(yīng)的驅(qū)動(dòng)函數(shù),并可直接由用戶(hù)應(yīng)用程序來(lái)調(diào)用實(shí)現(xiàn)。
這些功能主要包括:
(1)底層硬件驅(qū)動(dòng)包括:MDIO模塊和EMAC模塊的初始化;PHY芯片搜索配置和狀態(tài)監(jiān)測(cè);EMAC/MDIO中斷使能。(2)TCP/IP協(xié)議棧的建立,配置接收和發(fā)送緩存區(qū)的大小,完成以太網(wǎng)數(shù)據(jù)的收發(fā)任務(wù)。(3)利用MDIO模塊,根據(jù)MDIO讀取的PHY狀態(tài)寄存器來(lái)監(jiān)測(cè)其連接狀態(tài),識(shí)別可以是CPU產(chǎn)生中斷的狀態(tài)變化事件,并將信息反饋。(4)關(guān)閉驅(qū)動(dòng),復(fù)位前面對(duì)寄存器進(jìn)行的操作,收回占用資源。
如圖7所示,硬件驅(qū)動(dòng)包含在硬件驅(qū)動(dòng)層hal.lib中,用戶(hù)需要對(duì)按照系統(tǒng)對(duì)驅(qū)動(dòng)函數(shù)進(jìn)行修改。C6000系列NDK的API封裝了許多固定的驅(qū)動(dòng)函數(shù),具有特定的功能,比如_llPacketSerivceCheck()的作用是檢測(cè)以太網(wǎng)數(shù)據(jù)包的結(jié)構(gòu),且將檢測(cè)到的結(jié)構(gòu)信息反饋給協(xié)議棧進(jìn)行分析處理。具體的驅(qū)動(dòng)程序需要按照硬件系統(tǒng)的配置來(lái)進(jìn)行設(shè)計(jì),在C6678中,可在集成度較高的片上系統(tǒng)直接對(duì)網(wǎng)絡(luò)通信模塊的寄存器進(jìn)行配置查詢(xún),就可以完成硬件底層驅(qū)動(dòng),使得底層硬件能夠有效地運(yùn)行。
4.2 DSP端網(wǎng)絡(luò)應(yīng)用程序
DSP軟件設(shè)計(jì)是基于SYS/BIOS實(shí)時(shí)多任務(wù)操作系統(tǒng)和C語(yǔ)言,采用Socket套接字,創(chuàng)建TCP/IP客戶(hù)端(Client)和服務(wù)器端 (Server),Client負(fù)責(zé)與外部設(shè)備服務(wù)器端建立連接并接收數(shù)據(jù)包,Server用來(lái)向PC機(jī)發(fā)送處理后的數(shù)據(jù)包。接收任務(wù)和發(fā)送任務(wù)流程如圖 8所示。在C6678的內(nèi)核Core0中建立兩個(gè)同步線程任務(wù),即數(shù)據(jù)接收和發(fā)送任務(wù),分別用來(lái)接收TCP服務(wù)器發(fā)送過(guò)來(lái)的數(shù)據(jù)和發(fā)送處理后的數(shù)據(jù)到PC 上位機(jī)中進(jìn)行處理、存儲(chǔ)和顯示。
4.3 上位機(jī)測(cè)試程序
上位機(jī)測(cè)試程基于VC++的MFC界面設(shè)計(jì),使用套接字Socket進(jìn)行網(wǎng)絡(luò)編程。程序中需設(shè)計(jì)兩個(gè)同步線程,用來(lái)實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)接收和動(dòng)態(tài)顯示功能。使用TCP服務(wù)器端發(fā)送船體結(jié)構(gòu)應(yīng)力數(shù)據(jù),經(jīng)過(guò)DSP的接接收、處理和發(fā)送過(guò)程,最后發(fā)送到PC上位機(jī)進(jìn)行數(shù)據(jù)動(dòng)態(tài)顯示,結(jié)果如圖9所示。
5.結(jié)論
本文以8核處理器C6678為核心,對(duì)片上集成的以太網(wǎng)交換子系統(tǒng)接口硬件進(jìn)行了研究,按照接口的特點(diǎn)設(shè)計(jì)了包括以太網(wǎng)交換子系統(tǒng)和物理芯片的接口連接、物理芯片與網(wǎng)絡(luò)介質(zhì)接口連接的硬件系統(tǒng),并完成了千兆以太網(wǎng)驅(qū)動(dòng),最終實(shí)現(xiàn)多核DSP C6678與上位機(jī)進(jìn)行千兆以太網(wǎng)通信。通過(guò)與上位機(jī)進(jìn)行網(wǎng)絡(luò)通信測(cè)試,結(jié)果顯示以太網(wǎng)數(shù)據(jù)通信接口能實(shí)時(shí)高效地進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書(shū):滿(mǎn)足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
單向可控硅
刀開(kāi)關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車(chē)
電動(dòng)工具
電動(dòng)汽車(chē)
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖