《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于OMAP-L138的數(shù)字接收機(jī)高速傳輸系統(tǒng)設(shè)計(jì)
基于OMAP-L138的數(shù)字接收機(jī)高速傳輸系統(tǒng)設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第7期
李朝海,羅 超,黃東輝
電子科技大學(xué) 電子工程學(xué)院,四川 成都611731
摘要: 基于TI公司的雙核處理器OMAP-L138,完成了數(shù)字接收機(jī)中從無線電磁信號(hào)到網(wǎng)絡(luò)頻譜信息的高速傳輸系統(tǒng)。重點(diǎn)介紹了系統(tǒng)中各高速器件之間的接口連接以及相關(guān)軟件設(shè)計(jì)。在ARM與DSP的高速通信中提出了雙FIFO共享內(nèi)存的結(jié)構(gòu),大大提高了雙核通信的性能。本系統(tǒng)大幅提高了頻譜監(jiān)測(cè)中的數(shù)據(jù)吞吐能力,保證了對(duì)更高帶寬頻譜監(jiān)測(cè)的可能性。同時(shí)此系統(tǒng)可以很方便地?cái)U(kuò)展到其他應(yīng)用,具有一定的參考價(jià)值。
中圖分類號(hào): TP202.2
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2014)07-0006-03
The design of high-speed transmission system of spectrum receiver based on OMAP-L138
Li Chaohai,Luo Chao,Huang Donghui
School of Electronic Engineering, University of Electronic Science and Technology of China, Chengdu 611731,China
Abstract: Based on TI′s OMAP-L138 dual-core processor, the high-speed transmission system from wireless electromagnetic signal to network spectral information is realized. This paper mainly introduces the connection and software design between the high-speed devices. In the high-speed transmission between ARM and DSP, a dual FIFO shared memory structure is proposed, which greatly improves the performance of dual-core communication. This design greatly improves data throughput of spectrum monitoring capacity, which ensures the possibility for higher bandwidth spectrum monitoring. Besides, the system can be easily extended to other applications, which has a certain reference value.
Key words : OMAP-L138;high-speed transmission system;shared memory structure

       隨著信息技術(shù)的發(fā)展,對(duì)頻譜的需求日益增強(qiáng),信號(hào)工作頻段越來越高,單個(gè)信道占用的頻譜帶寬也越來越寬[1]。在實(shí)際生活中,越來越多的通信系統(tǒng)工作在很寬的頻帶,如LTE的頻譜帶寬已經(jīng)達(dá)到20 MHz。若要監(jiān)測(cè)這一類頻譜,由帶通采樣定理可知[2],對(duì)數(shù)據(jù)采樣率有更高的要求,相應(yīng)地對(duì)數(shù)字信號(hào)處理器件處理能力的要求也更高。但僅僅提升數(shù)字信號(hào)處理器件的處理能力,而相應(yīng)數(shù)據(jù)傳輸接口傳輸緩慢,也無法實(shí)時(shí)完成頻譜監(jiān)測(cè)任務(wù)。因此,各類數(shù)字處理器件之間數(shù)據(jù)接口的傳輸速率成為了解決這類問題的核心所在。

        為實(shí)現(xiàn)更好、更快、更寬的頻譜監(jiān)測(cè),采用TI公司的OMAP-L138雙核處理器,利用其EMAC模塊、uPP接口,結(jié)合ARM與DSP之間的雙FIFO緩存結(jié)構(gòu),實(shí)現(xiàn)了一種高速處理器件之間高速數(shù)據(jù)傳輸接口的設(shè)計(jì)。該設(shè)計(jì)具有良好的可行性及擴(kuò)展性,可以很方便地應(yīng)用到其他對(duì)數(shù)據(jù)傳輸有較高要求的應(yīng)用中。

1 設(shè)計(jì)方案

        本文提出的高速傳輸接口設(shè)計(jì)以O(shè)MAP-L138雙核處理器為核心,配合高速以太網(wǎng)PHY芯片DP83640和FPGA(現(xiàn)場(chǎng)可編程門陣列),組成了一個(gè)高速數(shù)字信號(hào)傳輸系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。射頻信號(hào)通過射頻前端變頻到75 MHz中頻,通過ADC以60 MS/s的采樣率采樣后送入FPGA,在FPGA中進(jìn)行相關(guān)處理后通過uPP接口將數(shù)字化信息傳至DSP。在DSP中進(jìn)行相關(guān)的頻譜參數(shù)處理后,利用共享內(nèi)存的方式交由ARM回傳數(shù)據(jù)到遠(yuǎn)端觀測(cè)、記錄,實(shí)現(xiàn)了無線電磁信號(hào)到網(wǎng)絡(luò)頻譜信息的高速傳輸。本設(shè)計(jì)提高了數(shù)字頻譜監(jiān)測(cè)中數(shù)據(jù)傳輸?shù)耐掏履芰Γ瑢?shí)時(shí)性更強(qiáng),更易擴(kuò)展。

        本設(shè)計(jì)中以TI公司的OMAP-L138為核心,其集成了ARM926EJ-STM精簡(jiǎn)指令集處理器和C674x定點(diǎn)/浮點(diǎn)超長(zhǎng)指令字(VLIW)數(shù)字信號(hào)處理器,其時(shí)鐘頻率最高可達(dá)300 MHz,提供了較強(qiáng)的控制能力與數(shù)據(jù)處理能力。外設(shè)中包括一個(gè)具有管理數(shù)據(jù)輸入/輸出(MDIO)模塊的10/100 Mb/s以太網(wǎng)模塊(EMAC)、通用并行接口uPP(Universal Parallel Port)等[3-4],這些強(qiáng)大的外設(shè)保證了高速傳輸系統(tǒng)的可實(shí)現(xiàn)性。

1.1 DSP與FPGA高速通信接口設(shè)計(jì)

        從圖1可知,F(xiàn)PGA完成信號(hào)的高速采集并進(jìn)行預(yù)處理之后,需要將數(shù)據(jù)交由DSP來進(jìn)行相應(yīng)的信號(hào)處理。在DSP與FPGA的傳輸上采用了OMAP-L138提供的uPP接口。uPP為高速并行接口,可以利用其自身的DMA完成數(shù)據(jù)傳輸,而不占用處理器運(yùn)行時(shí)間。在OMAP處理器中包含兩個(gè)通道的uPP[3],每個(gè)通道可以設(shè)置成8 bit或16 bit傳輸,通過使用START、ENABLE和WAIT接口控制。uPP引腳功能說明如表1所示。

        uPP包含內(nèi)部DMA控制器以實(shí)現(xiàn)最大的吞吐率和最小化CPU占用。此外uPP外設(shè)支持?jǐn)?shù)據(jù)的交織模式,使用這種模式,所有DMA資源可以服務(wù)一個(gè)單獨(dú)的I/O。uPP最大工作頻率可以達(dá)到75 MHz,若以16 bit傳輸,可以達(dá)到1 200 Mb/s的傳輸速率,兩個(gè)通道并行傳輸則能夠達(dá)到最大2 400 Mb/s的傳輸速率,這個(gè)數(shù)據(jù)傳輸速率對(duì)于大多數(shù)的應(yīng)用都已足夠。而在參考文獻(xiàn)[5]中提到的基于McBSP的傳輸方式能夠達(dá)到的最大數(shù)據(jù)速率只有40 Mb/s,可見uPP的使用大大提升了DSP與FPGA的接口速率。uPP與FPGA通信的時(shí)序如圖2所示。

        在開始傳輸時(shí),F(xiàn)PGA端只需要拉高使能信號(hào)并提供一個(gè)START信號(hào),DSP收到信號(hào)之后便能夠啟用uPP自帶的DMA開始進(jìn)行數(shù)據(jù)傳輸,其傳輸快捷,實(shí)現(xiàn)方便,利于擴(kuò)展到其他類似數(shù)據(jù)傳輸任務(wù)中。

1.2 ARM與DSP雙核通信接口設(shè)計(jì)

        DSP接收到FPGA回傳的預(yù)處理數(shù)據(jù)并完成相關(guān)處理之后便需要將數(shù)據(jù)信息回傳到客戶端進(jìn)行相應(yīng)的觀察、記錄。在本設(shè)計(jì)中,為了充分發(fā)揮雙核的性能,完成數(shù)據(jù)的高速傳輸,提出了一種雙FIFO共享內(nèi)存的結(jié)構(gòu)實(shí)現(xiàn)ARM與DSP之間的高效通信。

        在參考文獻(xiàn)[6]中,介紹了OMAP3530上ARM與DSP聯(lián)合調(diào)試的方法。在本文中,基于此方法,將ARM與DSP之間的通信進(jìn)行了適當(dāng)?shù)膬?yōu)化。ARM與DSP的通信采用DSP/BIOS Link(簡(jiǎn)稱為DSPLink)完成。DSP Link是雙核處理器內(nèi)部GPP與DSP兩側(cè)通信的基礎(chǔ)軟件。它提供了一個(gè)通用的API,這個(gè)API可以從應(yīng)用層上實(shí)現(xiàn)物理層GPP與DSP交互,避免了客戶重新開發(fā),可以快速實(shí)現(xiàn)GPP與DSP的交互功能[4,7]。

        DSPLink軟件架構(gòu)如圖3所示[7]。在GPP端,OS適應(yīng)層將DSP/BIOS Link組件需要的操作系統(tǒng)服務(wù)封裝。這個(gè)組件提供一些通用的API而非直接系統(tǒng)調(diào)用,使得DSP/BIOS Link可以很方便地在不同操作系統(tǒng)上移植。DSP端運(yùn)行DSP/BIOS實(shí)時(shí)操作系統(tǒng)[8],GPP端與DSP端通過兩端的Link Driver模塊完成通信。Link Driver模塊封裝一些GPP與DSP之間底層的控制操作,同時(shí)負(fù)責(zé)控制DSP端的執(zhí)行以及數(shù)據(jù)傳輸。

       DSPLink通過在ARM和DSP兩端觸發(fā)硬件中斷的方式來實(shí)現(xiàn)雙核之間的通信,實(shí)際上并不能夠達(dá)到高速的數(shù)據(jù)傳輸。但在本設(shè)計(jì)中,采用雙FIFO共享內(nèi)存的方式可有效解決這一問題。

        在實(shí)際傳輸中,數(shù)據(jù)并不需要直接從DSP搬移到ARM,這種搬移必定會(huì)占用較多的時(shí)間,效率低下。本設(shè)計(jì)中通過對(duì)輸入數(shù)據(jù)在兩塊FIFO間進(jìn)行乒乓緩存的方式完成。當(dāng)一塊FIFO存滿時(shí),只需要利用DSPLink將該FIFO在共享內(nèi)存中的地址以及數(shù)據(jù)大小傳遞給ARM,ARM直接從共享內(nèi)存中取出使用,這樣可以大大提高雙核之間數(shù)據(jù)傳遞的效率。該共享內(nèi)存結(jié)構(gòu)如圖4所示。

        然而,在這個(gè)過程中存在一個(gè)問題,由于ARM運(yùn)行Linux系統(tǒng),進(jìn)程運(yùn)行時(shí)使用的是虛擬地址,所分配的一串內(nèi)存在DSP端可能并不是一片連續(xù)的物理內(nèi)存,這就為共享內(nèi)存的實(shí)現(xiàn)帶來了較大的麻煩。為了解決這個(gè)問題,采用了TI公司提供的連續(xù)內(nèi)存管理CMEM(Contiguous Memory Manage)函數(shù)庫。CMEM是一個(gè)API函數(shù)庫,用于管理一塊或多塊連續(xù)物理內(nèi)存。CMEM同時(shí)提供了地址轉(zhuǎn)換服務(wù)和用戶模式的緩存管理API,用于管理一個(gè)或多個(gè)連續(xù)的物理內(nèi)存并提供地址轉(zhuǎn)換功能,物理連續(xù)地址內(nèi)存用于主處理器與DSP的數(shù)據(jù)緩存共享。

        通過CMEM可以有效地解決DSPLink不能分配大片連續(xù)內(nèi)存的問題。CMEM提供了ARM核Linux程序和DSP程序的直接數(shù)據(jù)緩存共享,此外還可以提供ARM核Linux中不通過MMU存取內(nèi)存調(diào)用硬件加速器的方法。

        利用CMEM基于POOL的配置,能夠避免內(nèi)存碎片,且能夠保證即便系統(tǒng)已經(jīng)運(yùn)行了很長(zhǎng)一段時(shí)間,也可以分配到很大一塊連續(xù)物理內(nèi)存塊[4]。

        至此,ARM端只需要通過網(wǎng)絡(luò)便可以將監(jiān)測(cè)到的信息回傳到PC客戶端,完成監(jiān)測(cè)任務(wù)。

1.3 網(wǎng)絡(luò)接口設(shè)計(jì)

        ARM通過網(wǎng)絡(luò)接口與PC相連,通過網(wǎng)絡(luò)來完成與用戶的數(shù)據(jù)交互。網(wǎng)絡(luò)結(jié)構(gòu)的標(biāo)準(zhǔn)模型是OSI模型,該參考模型從上到下分為7層,分別為:應(yīng)用層、表示層、會(huì)話層、傳輸層、數(shù)據(jù)鏈路層及物理層。在實(shí)際應(yīng)用中,通常使用TCP/IP網(wǎng)絡(luò)模型,該模型從上到下分為4個(gè)層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和網(wǎng)絡(luò)接口層(即物理層)[8]。其中應(yīng)用層、傳輸層、網(wǎng)絡(luò)層均在移植Linux系統(tǒng)時(shí)集成,本文不做重點(diǎn)討論。物理層對(duì)應(yīng)OSI模型中的數(shù)據(jù)鏈路層和物理層。數(shù)據(jù)鏈路層包括LLC(Logic Link Control)和MAC(媒體訪問控制器)子層,LLC負(fù)責(zé)與上層(網(wǎng)絡(luò)層)通信,MAC負(fù)責(zé)對(duì)物理層的控制。本系統(tǒng)中數(shù)據(jù)鏈路層使用OMAP-L138內(nèi)部集成的EMAC模塊實(shí)現(xiàn),而物理層使用NS公司的PHY芯片DP83640實(shí)現(xiàn)。

        DP83640是一款具有IEEE 1588功能的Ethernet PHY芯片。可以在100 Mb/s的高傳輸速率下,通過以太網(wǎng)連接的IEEE 1588精密時(shí)間協(xié)議(PTP)實(shí)現(xiàn)系統(tǒng)之間的精確同步。

        DP83640通過OMAP-L138提供的標(biāo)準(zhǔn)媒體獨(dú)立接口MII(Media Independent Interface)與其連接,其硬件連接圖如圖5所示。

        MII接口以4 bit的方式雙向傳輸,時(shí)鐘為25 MHz,工作速率可以達(dá)到100 Mb/s。MDIO為MII的管理接口,用來傳送MAC層的控制信息和物理層的狀態(tài)信息。MDIO具有兩根信號(hào)線,一個(gè)時(shí)鐘信號(hào),一個(gè)數(shù)據(jù)信號(hào)。利用MII接口可以確保在不對(duì)MAC硬件重新設(shè)計(jì)或替換的情況下,任何類型的PHY設(shè)備都可以正常工作。

2 接口測(cè)試

2.1 ARM與DSP數(shù)據(jù)傳輸測(cè)試

        測(cè)試ARM與DSP之間的通信時(shí),通過DSP往ARM端傳遞消息。測(cè)試中,共發(fā)送1 000條消息,測(cè)試結(jié)果如圖6所示。

        從圖6中可以看出,傳遞1 000條消息總共耗時(shí)359 704 μs,即ARM與DSP之間傳遞一條消息大約耗時(shí)359 μs,利用文中提到的共享內(nèi)存的方式,便可以在359 μs內(nèi)完成一次大量數(shù)據(jù)的傳輸,傳輸性能得到了大大的提高。在本應(yīng)用中,所選用的共享內(nèi)存FIFO大小僅為8 KB,但此時(shí)等效的傳輸速率已經(jīng)達(dá)到178.4 Mb/s。

        在實(shí)際應(yīng)用中,可以根據(jù)需求來設(shè)定FIFO大小,從而可以改變ARM與DSP之間的等效傳輸速率。

2.2 網(wǎng)絡(luò)傳輸速率測(cè)試

        測(cè)試方法:

        (1)接收機(jī)作為客戶端,接收PC數(shù)據(jù);

        (2)接收機(jī)作為服務(wù)器,往PC寫數(shù)據(jù)。

        測(cè)試工具選用Linux平臺(tái)上的開放網(wǎng)絡(luò)測(cè)試工具bwm-ng,能夠準(zhǔn)確地測(cè)試網(wǎng)絡(luò)通信速率[9]。

2.2.1 PC往接收機(jī)傳送數(shù)據(jù)速率測(cè)試

        此種情況下PC作為服務(wù)器往接收機(jī)發(fā)送數(shù)據(jù),測(cè)試得到的通信速率可以達(dá)到61 Mb/s左右,最快可以達(dá)到64 Mb/s,這個(gè)速率能夠滿足大多數(shù)的應(yīng)用。

2.2.2 接收機(jī)往PC回傳數(shù)據(jù)速率測(cè)試

        在這種情況下,接收機(jī)作為服務(wù)器往PC客戶端傳輸數(shù)據(jù)。PC端觀測(cè)到的接收速率在14.5 Mb/s左右,對(duì)于回傳頻譜監(jiān)測(cè)后的數(shù)據(jù)已經(jīng)足夠。

        對(duì)比以上測(cè)試結(jié)果,在這兩種情況下,獲得的結(jié)果存在一定的差異,主要原因?yàn)楫?dāng)接收機(jī)作為服務(wù)器往外發(fā)送數(shù)據(jù)時(shí),由于其時(shí)鐘頻率僅有300 MHz,而使用的PC主頻接近2.4 GHz,所以發(fā)送速率較PC慢。但從兩者可以看出,本設(shè)計(jì)中的網(wǎng)絡(luò)接口部分可以達(dá)到上行14.5 Mb/s、下行64 Mb/s的傳輸速率,已滿足大多數(shù)的網(wǎng)絡(luò)傳輸應(yīng)用需求。

        本文采用OMAP-L138雙核處理器,結(jié)合FPGA實(shí)現(xiàn)了數(shù)字頻譜監(jiān)測(cè)接收機(jī)中的高速傳輸接口。利用uPP接口,DSP與FPGA之間最大通信速率可以達(dá)到2 400 Mb/s,能很好地滿足頻譜監(jiān)測(cè)任務(wù)的需求。雙核間采用共享內(nèi)存的方式,有效地解決了雙核系統(tǒng)間的高速傳輸問題,此設(shè)計(jì)可以很方便地?cái)U(kuò)展到其他應(yīng)用中。

參考文獻(xiàn)

[1] 費(fèi)連.無線電監(jiān)測(cè)系統(tǒng)的革新——網(wǎng)絡(luò)化小型頻譜監(jiān)測(cè)系統(tǒng)的概念及主要技術(shù)要求[J].電子測(cè)量與儀器學(xué)報(bào),2009(S1):180-184.

[2] 陳祝明.軟件無線電技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2007.

[3] Texas Instrument Inc..OMAP-L138 technical reference manual[Z].2009.

[4] DSP+ARM雙核處理器OMAPL138開發(fā)入門[M].北京:清華大學(xué)出版社,2013.

[5] 徐萍,左洪成,徐婷.基于雙FIFO乒乓緩存的多速率匹配McBSP接口設(shè)計(jì)[J].電子質(zhì)量,2011(9):29-31.

[6] 林上升,韓潤(rùn)萍.基于OMAP3530硬件平臺(tái)的ARM和DSP協(xié)同開發(fā)方法[J].電子技術(shù)應(yīng)用,2013,39(2):6-8.

[7] Texas Instrument Inc.DSP/BIOS LINK user guide[Z].2010.

[8] 邴哲松.ARM Linux嵌入式網(wǎng)絡(luò)控制系統(tǒng)[M].北京:北京航空航天出版社,2012.

[9] Volker Gropp.Bandwidth monitor NG[EB/OL](2007)[2014-03-31].http://www.gropp.org.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。