摘? 要: 從系統(tǒng)設(shè)計(jì)入手,介紹了開放的多媒體應(yīng)用" title="多媒體應(yīng)用">多媒體應(yīng)用平臺(tái)OMAPTM的硬件和軟件結(jié)構(gòu),及OMAPTM平臺(tái)的實(shí)現(xiàn)——DSP/BIOSTM橋技術(shù)的概念和實(shí)現(xiàn)。
關(guān)鍵詞: OMAP? DSP/BIOS橋? XDAIS? RTOS
?
今天的系統(tǒng)設(shè)計(jì)者面對(duì)的是日益增長(zhǎng)的應(yīng)用需求,嵌入式系統(tǒng)設(shè)計(jì)顯得保守,新的系統(tǒng)設(shè)計(jì)理念是在開放式系統(tǒng)平臺(tái)上進(jìn)行設(shè)計(jì),。開放式平臺(tái)可以不斷地更新和下載新的應(yīng)用,使產(chǎn)品功能常新,從而使產(chǎn)品在市場(chǎng)競(jìng)爭(zhēng)中立于不敗之地,。
選擇好平臺(tái)是關(guān)鍵。本文介紹TI公司的OMAPTM平臺(tái)(Open Multimedia Applications Platform),。它是基于DSP的開放多媒體應(yīng)用平臺(tái),已被NOKIA,、ERICSSON、SONY,、HANDSPRING等公司選用,。
? OMAPTM平臺(tái)是雙核結(jié)構(gòu),由ARM核及DSP核組成,DSP以低功耗高性能實(shí)現(xiàn)多媒體應(yīng)用。目前在OMAPTM平臺(tái)上實(shí)現(xiàn)的多" title="的多">的多媒體應(yīng)用有語音,、音頻,、圖像、視頻等,。
1 OMAPTM的開放性
OMAPTM的開放性表現(xiàn)在以下三個(gè)方面:
(1)對(duì)于用戶來說,基于OMAPTM平臺(tái)的應(yīng)用是開放的,。針對(duì)產(chǎn)品的操作系統(tǒng),用戶不僅可以下載基于該操作系統(tǒng)的應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序,還可以下載基于DSP的多媒體應(yīng)用程序。也就是說OMAPTM平臺(tái)透過先進(jìn)的操作系統(tǒng)平臺(tái)不僅開放了ARM,而且開放了DSP,。通過DSP/BIOSTM橋,DSP的資源就如同ARM的外設(shè)一樣 通過操作系統(tǒng)的API被調(diào)用,。DSP/BIOSTM橋在OMAPTM平臺(tái)上實(shí)現(xiàn)了雙核的無縫連接。
(2)對(duì)于獨(dú)立的軟件制造商(ISV)來說,為OMAPTM平臺(tái)開發(fā)商業(yè)應(yīng)用軟件的標(biāo)準(zhǔn)是開放的,。算法的兼容性及可評(píng)估性是關(guān)鍵,。只有算法的性能、占用資源及接口方式是標(biāo)準(zhǔn)的,算法才能離架,。TI公司的XDAIS(eXpressDSPTM 算法標(biāo)準(zhǔn))的出臺(tái)解決了DSP算法的標(biāo)準(zhǔn)化問題,所有XDAIS兼容算法都必須得到TI公司的兼容性測(cè)試,。而且DSP/BIOSTM橋提供XDAIS兼容算法接口。ISV開發(fā)的XDAIS兼容算法可直接用于OMAPTM平臺(tái),。
(3)對(duì)于原始設(shè)備制造廠商(OEM)來說,可以開放先進(jìn)的操作系統(tǒng),。OMAPTM平臺(tái)支持的操作系統(tǒng)很多,如Microsoft的WINDOWS CE、Synbian的EPOC,、ATI的NUCLEUS,、Windriver的VXWORKS和LINUX等,OEM廠商可以按照自己的需求和LICENCE情況去定制。同時(shí),OEM廠商還可以根據(jù)自己的特點(diǎn)和產(chǎn)品的功能去開放地選購算法和軟件,。借助于第三方OS及TI的第三方網(wǎng)絡(luò)等,OEM廠商仿佛置身于一個(gè)巨大軟件超市,各種算法及軟件商品性能價(jià)格一目了然,盡可以取其所需,。
OMAPTM平臺(tái)分為軟件和硬件平臺(tái)" title="硬件平臺(tái)">硬件平臺(tái)。為滿足多媒體應(yīng)用的需求,硬件平臺(tái)必須高性能,、低功耗;同時(shí)為滿足應(yīng)用的發(fā)展需求,硬件平臺(tái)要具有不斷升級(jí)的能力,。OMAPTM軟件平臺(tái)的核心是DSP/BIOSTM橋,OMAPTM的軟件平臺(tái)獨(dú)立于硬件平臺(tái),。
2 OMAPTM的硬件平臺(tái)
OMAPTM的多媒體應(yīng)用取決于它內(nèi)部硬件結(jié)構(gòu)的實(shí)現(xiàn),DSP是實(shí)現(xiàn)多媒體應(yīng)用的關(guān)鍵。當(dāng)然其內(nèi)部的硬件加速器,、DMA及交通控制單元等也舉足輕重,。
OMAPTM硬件平臺(tái)主要由DSP核、ARM核及交通控制(TRAFFIC CONTROLLER)單元組成,。這三個(gè)部分可以獨(dú)立地進(jìn)行時(shí)鐘管理,有效地控制功耗,。
OMAPTM平臺(tái)采用雙核技術(shù)使操作系統(tǒng)的效率和多媒體代碼的執(zhí)行更加優(yōu)化。實(shí)時(shí)性任務(wù)由DSP完成,非實(shí)時(shí)性任務(wù)和系統(tǒng)控制工作由ARM完成,從而使系統(tǒng)的功耗降至最低,成功地解決了性能與功耗的最佳組合問題,。
OMAPTM平臺(tái)的硬件平臺(tái)會(huì)逐步升級(jí),以滿足日益增長(zhǎng)的應(yīng)用需求,。目前的ARM核選用ARM925TDMI,其上可以運(yùn)行先進(jìn)的操作系統(tǒng)如WINDOWS CE、EPOC等,。DSP核采用TMS320C55XTM DSP,其上運(yùn)行的RTOS是DSP/BIOSTM,。TMS320C55XTM DSP有高度并行能力,它的32位讀寫能力和功能強(qiáng)大的EMIF、雙流水線的獨(dú)立操作及雙MAC的運(yùn)算能力,以及它的變長(zhǎng)指令,、用戶自定義的并行指令是優(yōu)異的多媒體性能的保證,。其采用模塊化的IDLE模式,最大程度地降低了功耗。OMAPTM硬件平臺(tái)的框圖如圖1所示,。
?
?
3 OMAPTM的軟件結(jié)構(gòu)
OMAPTM的軟件結(jié)構(gòu)在兩個(gè)操作系統(tǒng)上,一是基于ARM的先進(jìn)的OS如 EPOC,、WINCE等;二是基于DSP的DSP/BIOSTM。如何使兩個(gè)操作系統(tǒng)無縫工作,是實(shí)現(xiàn)開放的軟件平臺(tái)的關(guān)鍵,。這個(gè)核心技術(shù)就是首次正式應(yīng)用在OMAPTM平臺(tái)上的DSP/BIOSTM橋,。
3.1 DSP/BIOSTM橋
DSP/BIOSTM橋用于連接DSP/BIOS和其他通用處理器(GPP)上的OS。GPP在 OMAPTM里是ARM,還可以是MIPS(Microprocessor without Interlocked Pipe Stage)等,。DSP/DIOSTM橋具有以下特點(diǎn):
·高性能;
·有效利用GPP和DSP的資源;
·可移植到不同的GPP和DSP硬件平臺(tái)上;
·可移植到不同的GPP和DSP操作系統(tǒng)上;
·支持多個(gè)DSP和一個(gè)GPP;
·從GPP應(yīng)用程序中使用;
·對(duì)象為中心的設(shè)計(jì);
·高可靠性;
·APIs與將來的版本向后兼容,。
????DSP/BIOSTM橋用于非對(duì)稱的,由一個(gè)通用的處理器(GPP)和一個(gè)或多個(gè)DSP組成的多處理器環(huán)境。DSP/BIOSTM橋作為GPP OS和DSP OS的軟件組合,把兩個(gè)操作系統(tǒng)連接在一起,。這種連接能夠使GPP端的客戶與DSP上的任務(wù)交換信息和數(shù)據(jù),。連接分為兩種類型的子連接,消息子連接和數(shù)據(jù)流子連接。每種子連接都按順序傳遞消息,哪個(gè)消息先到消息鏈,哪個(gè)消息就先被傳遞;同樣哪個(gè)數(shù)據(jù)流先到數(shù)據(jù)流鏈,哪個(gè)數(shù)據(jù)流就先被傳遞,。每個(gè)子連接都獨(dú)立地進(jìn)行操作,例如:GPP先發(fā)送數(shù)據(jù)流,然后發(fā)送消息,如果消息有高優(yōu)先級(jí),那么消息比數(shù)據(jù)流先到DSP,。
DSP任務(wù)通常用消息對(duì)象傳送控制和狀態(tài)信息,用數(shù)據(jù)流對(duì)象傳送高效實(shí)時(shí)數(shù)據(jù)流。圖2表示GPP客戶端程序和DSP任務(wù)間的關(guān)系,。
?
?
3.2 主機(jī)軟件結(jié)構(gòu)
對(duì)于GPP操作系統(tǒng)來說,DSP/BIOSTM橋增加了API,它能使GPP應(yīng)用和驅(qū)動(dòng)程序同時(shí)利用DSP的資源,。GPP客戶端可以通過API完成以下工作:
·初始化DSP上的信號(hào)處理任務(wù);
·與DSP任務(wù)交換信息;
·與DSP任務(wù)雙向交換數(shù)據(jù)流;
·停止、激活,、刪除DSP任務(wù);
·進(jìn)行資源的狀態(tài)查詢。
一個(gè)GPP應(yīng)用程序或設(shè)備驅(qū)動(dòng)程序" title="設(shè)備驅(qū)動(dòng)程序">設(shè)備驅(qū)動(dòng)程序可以使用DSP/BIOSTM橋API與DSP子系統(tǒng)上的DSP任務(wù)進(jìn)行通信,。例如:一個(gè)GPP WAVE設(shè)備驅(qū)動(dòng)程序可以利用API發(fā)送信息給DSP任務(wù)來管理數(shù)據(jù)從ADC到DAC,。
GPP端DSP/BIOSTM橋API以庫的形式實(shí)現(xiàn),它調(diào)用特定硬件的設(shè)備驅(qū)動(dòng)程序,如果沒有一個(gè)針對(duì)特定硬件的設(shè)備驅(qū)動(dòng)程序,API是不能工作的,。對(duì)于GPP API來說,這些專用于DSP子系統(tǒng)的設(shè)備驅(qū)動(dòng)程序執(zhí)行I/O操作和控制操作,就象其他GPP外設(shè)的設(shè)備驅(qū)動(dòng)程序一樣。每個(gè)DSP設(shè)備驅(qū)動(dòng)程序支持特定的DSP子系統(tǒng),如果存在同一個(gè)DSP硬件的多個(gè)實(shí)例,那么這個(gè)DSP設(shè)備驅(qū)動(dòng)程序的多個(gè)實(shí)例都會(huì)在GPP OS上運(yùn)行,。
DSP設(shè)備驅(qū)動(dòng)程序?yàn)镚PP端的API完成很多功能,它負(fù)責(zé)DSP的自舉工作,為DSP裝入RTOS和應(yīng)用程序代碼,并啟動(dòng)DSP運(yùn)行,。一旦DSP已經(jīng)初始化并且RTOS進(jìn)入運(yùn)行狀態(tài),DSP設(shè)備驅(qū)動(dòng)程序就開始了GPP和DSP間的消息和數(shù)據(jù)流的傳遞工作。與它對(duì)等的是DSP上的DSP主機(jī)驅(qū)動(dòng)程序,。DSP設(shè)備驅(qū)動(dòng)程序和DSP主機(jī)驅(qū)動(dòng)程序?qū)λ鶄鬟f的內(nèi)容并不關(guān)心,。
3.3 DSP軟件結(jié)構(gòu)
對(duì)于DSP RTOS,DSP/BIOSTM橋增加了目標(biāo)獨(dú)立的流式I/O界面(STRM)、消息界面(NODE)和資源管理(RM)服務(wù)器,。RM服務(wù)器就象DSP RTOS的一個(gè)任務(wù)一樣運(yùn)行,并服務(wù)于GPP的命令和查詢,。一旦GPP端的程序通過GPP端的API發(fā)出請(qǐng)求,RM服務(wù)器響應(yīng),啟動(dòng)或停止DSP信號(hào)處理節(jié)點(diǎn)。
由RM服務(wù)器啟動(dòng)的任務(wù)采用STRM和NODE界面,作為對(duì)應(yīng)的GPP客戶程序的服務(wù)器,并根據(jù)GPP客戶程序發(fā)出的信息進(jìn)行信號(hào)處理工作,。典型的,一個(gè)DSP 任務(wù)用設(shè)備獨(dú)立的流式I/O把數(shù)據(jù)從源端傳送到宿主端,并在數(shù)據(jù)傳送過程中進(jìn)行特定的處理和轉(zhuǎn)換,。例如:一個(gè)WAVE音頻任務(wù)從GPP WAVE設(shè)備驅(qū)動(dòng)程序接收到數(shù)據(jù)后,可能要執(zhí)行音頻解壓縮(ADPCM,MPEG,CELP),然后把解壓縮的線性采樣送到DAC。
3.4 DSP/BIOSTM橋的功能組件
DSP/BIOSTM橋的功能組件如圖3所示,。
?
?
在典型配置中,GPP與一個(gè)或多個(gè)DSP相連,最終用戶在GPP上的應(yīng)用程序調(diào)用媒體服務(wù)模塊或驅(qū)動(dòng)程序,通過DSP/BIOSTM橋來管理DSP資源,。
資源管理器負(fù)責(zé)動(dòng)態(tài)調(diào)度DSP資源,監(jiān)控DSP資源,動(dòng)態(tài)裝入DSP代碼,發(fā)生請(qǐng)求沖突時(shí),負(fù)責(zé)實(shí)現(xiàn)DSP資源的管理策略。資源管理器在平臺(tái)管理器之上,。平臺(tái)管理器負(fù)責(zé)靜態(tài)裝入DSP代碼,啟動(dòng)或停止DSP實(shí)現(xiàn)數(shù)據(jù)流,。平臺(tái)管理器位于GPP OS適配器及負(fù)責(zé)與DSP通信的連接驅(qū)動(dòng)器之上。
DSP上的RTOS是基礎(chǔ),它通過主機(jī)連接驅(qū)動(dòng)器與GPP通信,。在DSP RTOS的上面是資源管理(RM)服務(wù)器,。RM服務(wù)器的主要職責(zé)是在資源管理器的控制下動(dòng)態(tài)地創(chuàng)建、執(zhí)行和刪除DSP處理節(jié)點(diǎn),其他職責(zé)包括改變?nèi)蝿?wù)的優(yōu)先級(jí)并響應(yīng)資源管理器的配置命令和狀態(tài)查詢,。一個(gè)專門的流用來接收來自資源管理器的命令,另一個(gè)專門的流用來發(fā)響應(yīng)信號(hào)給資源管理器,。
DSP任務(wù)節(jié)點(diǎn)是DSP上單獨(dú)執(zhí)行的線程,它實(shí)現(xiàn)信號(hào)處理算法。任務(wù)節(jié)點(diǎn)通過固定長(zhǎng)度的短消息和與設(shè)備無關(guān)的流式I/O互相通信或與GPP通信,。
3.5 舉例說明DSP/BIOSTM橋的實(shí)現(xiàn)過程
在這個(gè)例子中用DSP進(jìn)行濾波,GPP應(yīng)用程序調(diào)用API控制DSP上的音頻濾波任務(wù),。API用來控制DSP,但GPP和DSP之間沒有數(shù)據(jù)流,如圖4所示,。
?
?
為初始化DSP上的濾波器任務(wù),,GPP應(yīng)用程序要完成的工作如下:
·連接到DSP;
·分配濾波器任務(wù)節(jié)點(diǎn)及ADC和DAC設(shè)備節(jié)點(diǎn);
·連接節(jié)點(diǎn);
·創(chuàng)建DSP上的節(jié)點(diǎn);
·啟動(dòng)濾波器節(jié)點(diǎn)。
為終止DSP上的濾波器應(yīng)用,GPP應(yīng)用程序要完成的工作如下:
·調(diào)DSP節(jié)點(diǎn),終止API發(fā)消息到濾波器來終止處理;
·刪除濾波器節(jié)點(diǎn)和ADC,, DAC節(jié)點(diǎn);
·與DSP分離,。
作為雙核的OMAPTM平臺(tái),其最大的特點(diǎn)是開放性及其軟件平臺(tái)和硬件平臺(tái)的獨(dú)立性,同時(shí)基于C的ARM和基于XDAIS算法的DSP使OMAPTM平臺(tái)易于開發(fā)和維護(hù),功能強(qiáng)大且可在線升級(jí),。軟件平臺(tái)的核心DSP/BIOSTM橋并不依賴于固定的操作系統(tǒng),具有可移植性,允許操作系統(tǒng)的更新,。DSP/BIOSTM橋技術(shù)是實(shí)現(xiàn)開放的多媒體應(yīng)用的核心技術(shù)。XDAIS兼容算法具有可重入和可重定位特性,因此不僅為算法提供標(biāo)準(zhǔn)的界面,而且具有多通道特性,并能直接在OMAPTM平臺(tái)上運(yùn)行,是TI推薦的算法封裝方式。目前已經(jīng)有眾多的第三方開發(fā)出大量XDAIS兼容算法,。OMAPTM的軟件開發(fā)集成環(huán)境支持多核的CCS2.0 IDE,、XDS510及XDS560 仿真器,同時(shí)TI還提供OMAPTM EVM做為評(píng)估工具。
?
參考文獻(xiàn)
1 TMS320C5000 DSP/BIOSTM USER GUIDE
2 TMS320C5000 CODE COMPOSER STUDIO
3 OMAPTM 3.1 SPECS
4 DSPBIOSTM BRIDGE SDK