OMAP5912雙核通信及其數字音頻系統實(shí)現
1OMAP5912平臺簡(jiǎn)介
本文引用地址:http://dyxdggzs.com/article/269120.htm開(kāi)放式多媒體應用平臺(()pen MuItimedia Appli一cations PIatform,OMAP)是針對第三代手機開(kāi)發(fā)的高性能多媒體處理器。除具有性能/功耗比的優(yōu)勢外,還提供豐富的外圍接口,支持幾乎所有流行的有線(xiàn)和無(wú)線(xiàn)接口標準。因其出色表現,該平臺一直得到世界主要移動(dòng)設備制造商(如諾基亞、愛(ài)立信、索尼等)的青睞。
0MAP5912采用獨特的雙核結構,內含1個(gè)實(shí)現控制功能的帶有TI增強型ARM926EJ-S內核的處理器和1個(gè)實(shí)現數據處理功能的高性能、低功耗TMS320C55x DSP內核。ARM處理器可用來(lái)實(shí)現各種通信協(xié)議、控制和人機接口;DSP具有多條數據地址總線(xiàn),非常適合數據密集的多媒體處理(如視頻編解碼),并具有極低的功耗[l]。為結合這兩個(gè)處理器的優(yōu)勢,使其發(fā)揮最大效率,雙核通信機制起了至關(guān)重要的作用。
2 OMAP5912的雙核間通信方式
在0MAP5912中實(shí)現ARM和DSP雙核通信方式有共享郵箱寄存器、共享存儲空間2種,在實(shí)際應用中需要配合使用這些雙核通信方式。如雙核通信中的握手聯(lián)絡(luò ),其數據量小,可用傳遞消息及時(shí)可靠的共享郵箱用來(lái)實(shí)現;當需要傳輸大量數據(如圖像數據)時(shí),通常要使用高效率的共享存儲空間這種通信方式。
2.1共享郵箱寄存器方式
雙核間可相互中斷并通過(guò)郵箱寄存器傳遞少量數據。共有4套郵箱寄存器,每套郵箱寄存器由2個(gè)16 bit寄存器和1個(gè)1 bit寄存器組成。當一個(gè)處理器將合適的命令字寫(xiě)到命令字寄存器后,該寄存器會(huì )產(chǎn)生中斷,對另一個(gè)處理器的標志寄存器進(jìn)行正確設置。被中斷的處理器通過(guò)讀標志寄存器響應中斷并清空標志寄存器。每套郵箱寄存器中,還有1個(gè)附加的數據字寄存器,可在每次中斷時(shí)在處理器間傳送2個(gè)字的數據。通過(guò)命令和數據字通信的信息完全由用戶(hù)定義。數據字可用來(lái)表示地址指針或狀態(tài)字。
2.2共享存儲器方式
共享存儲器有2種方式。第一種方式由ARM通過(guò)主機接口(MPU Interface,MPUI)獲取對DSP存儲空間和I/O空間的訪(fǎng)問(wèn)權,由ARM完成數據在雙核間的搬移。MPUI為MPU和系統DMA控制器與DSP及其外設的通信提供了橋梁,通過(guò)MPuI可訪(fǎng)問(wèn)DSP的整個(gè)存儲空間及其公共外設總線(xiàn)。
另一種方式是ARM通過(guò)對DSP存儲管理單元(Memoy Management Unit,MMU)的設置將DSP的外部存儲空間映射到OMAP5912系統存儲資源中,由DSP完成雙核間的數據傳輸。OMAP5912通過(guò)通信控制器(Traffic Controller,TC)實(shí)現共享存儲器,這樣ARM和DSP可訪(fǎng)問(wèn)共享的靜態(tài)隨機存儲器(StaticRAM,SRAM)、高速外部存儲器接口(I,Zxteraaal:Mem0ryInterface Fast,EMIFF)以及低速外部存儲器接口(Ex-terhal Memory Interface Slow,EMIFS)的存儲空間[2]。
3 雙核間通信的基礎應用程序
為降低上層應用開(kāi)發(fā)者的實(shí)現難度和節省設計時(shí)間,采用雙核間通信的基礎應用程序--DSP/BIOSLINK[3],其為上述兩種雙核通信方式的實(shí)現。開(kāi)發(fā)人員在進(jìn)行上層應用程序開(kāi)發(fā)時(shí),只需使用DSP/BIOSLINK提供的接口函數。DSP/BIOS LINK允許開(kāi)發(fā)人員在A(yíng)RM端利用一套標準API進(jìn)入和控制DSP的運行環(huán)境;用于非對稱(chēng)的、由一個(gè)通用處理器(如ARM)和一個(gè)或多個(gè)DSP組成的處理器環(huán)境。圖1為DSP/BIOSLINK的軟件體系結構圖。

DSP/BIOS LINK為開(kāi)發(fā)人員提供的服務(wù)有:基本的處理器控制(啟動(dòng)、執行、停止)、基于邏輯通道(CHANNEL)的數據傳輸、消息(基于MSGQ模塊)。由PROC,CHNL,MSGQ3個(gè)組件組成。PROC是PROCESSCONTROL的縮寫(xiě),負責DSP處理器在應用程序用戶(hù)空間的操作,主要功能有:DSP初始化、DSP端程序的加載、執行和停止。CHNL是CHANNEL的縮寫(xiě),表示ARM和DSP間數據流的邏輯通道,負責ARM和DSP間的數據傳輸。CHNL是ARM和DSP之間的邏輯實(shí)體,實(shí)現二者的物理連接。MSGQ是MESSAGEQUEUE的縮寫(xiě),負責ARM和DSP間長(cháng)短不一的消息的交互和通信。消息的接收和發(fā)送是通過(guò)消息隊列實(shí)現的[4]。
4 基于OMAP5912的數字音頻系統買(mǎi)現
筆者以基于OMAP5912_的數字音頻系統為例介紹OMAP雙核間通信的具體應用。系統在RF6(ReferenceFramework Level 6)框架基礎上實(shí)現,整個(gè)系統將輸入的立體聲音頻信號按照給定的采樣率和量化精度轉化為左、右兩聲道數據幀,再對其進(jìn)行有限脈沖濾波器FIR算法和聲音控制VOL算法處理,然后合成立體聲輸出。整個(gè)系統劃分為ARM端應用程序和DSP端算法2部分。
4.1 RF6框架簡(jiǎn)介
RF6是專(zhuān)門(mén)針對雙核芯片OMAP中DSP端軟件設計提出的一種參考框架[5],不但包含了外圍器件驅動(dòng)模塊、線(xiàn)程模塊以及算法封裝模塊,還包含了用于同ARM端進(jìn)行通信的模塊。RF6中數據處理的4種基本元素為:?jiǎn)卧?、通道、任?wù)和TMS320DSP數字信號處理器標準算法(eXpressDSP Algol-ithm InteropeliabilityStandard,XDAIS)。其中,單元是算法的集合,為外界和算法提供標準接口;通道是單元的集合;任務(wù)是按時(shí)間順序執行的一系列通道,其目的是和設備驅動(dòng)程序及其他任務(wù)通信。圖2為基于RF6框架的數字音頻系統結構圖。

4.2 ARM端應用程序和DSP端算法
ARM端應用程序主要實(shí)現人機交互、系統控制(如傳送參數)等功能,由2個(gè)線(xiàn)程組成:主線(xiàn)程和數據處理線(xiàn)程。主線(xiàn)程提供用戶(hù)界面和調用DSIVBIOSLINK中:PROC模塊的API函數,引導和加載DsP端可執行文件。數據處理線(xiàn)程將從DsP端任務(wù)O傳輸過(guò)來(lái)的音頻數據幀回送給任務(wù)1,其通過(guò)調用CHNL模塊中的API函數來(lái)實(shí)現ARM和DSP間的數據傳輸。
DSP端有2個(gè)任務(wù):任務(wù)0和任務(wù)1。任務(wù)0將交又存取的音頻數據幀分開(kāi)成左、右2個(gè)聲道。任務(wù)0分別對2個(gè)聲道進(jìn)行FIR濾波器處理,濾波器參數(如低通、高通)通過(guò)ARM端程序調用MSGQ模塊中的API函數來(lái)設定。然后任務(wù)0將左右聲道數據幀重新合成一個(gè)音頻信號數據幀,通過(guò)DSP/BIOS LlNK發(fā)送給ARM端。任務(wù)1與任務(wù)0非常相似,其通過(guò)DSP/BIOSLlNK從ARM端接收數據,然后對其采用音量控制算法實(shí)現聲音大小控制。
DSP端程序通過(guò)CodeComposer Studio編譯后,生成out格式的可執行文件。ARM端程序交叉編譯后生成應用程序。運行應用程序,可執行文件以參數形式傳遞給ARM端應用程序。采樣率44.1 kHz,量化精度16 bit。經(jīng)測試,用戶(hù)可通過(guò)在超級終端輸入命令實(shí)現對FIR和音量的調節,其運行結果如圖3所示。

5 結束語(yǔ)
0MAP平臺因其特有的雙核結構,廣泛應用于實(shí)時(shí)多媒體影音數據處理、語(yǔ)音識別系統、網(wǎng)絡(luò )通信等領(lǐng)域。筆者以OMAP5912平臺的數字音頻系統為例介紹雙核通信的具體應用,希望能對使用OMAP的人員具有借鑒意義。
通信相關(guān)文章:通信原理
存儲器相關(guān)文章:存儲器原理
評論