基于嵌入式系統(tǒng)的多媒體控制前臺(tái)設(shè)計(jì)
系統(tǒng)的應(yīng)用場合及意義 在一個(gè)大型會(huì)議系統(tǒng)或多媒體電教室系統(tǒng)中往往通過中央控制系統(tǒng),實(shí)現(xiàn)整個(gè)系統(tǒng)的集中控制。點(diǎn)擊LCD觸摸屏,就能實(shí)現(xiàn)各種視像信號(hào)的快速切換(視頻信號(hào)、電腦信號(hào))、燈光系統(tǒng)的調(diào)光或自動(dòng)快速模式設(shè)定,以及各種音響系統(tǒng)調(diào)節(jié),攝像、監(jiān)控、大屏幕投放、窗簾收放等一系列功能的程序化控制。 這里的中央控制系統(tǒng)實(shí)際上是由一個(gè)帶處理器的智能控制平臺(tái)和帶多媒體設(shè)備接口的多路繼電器組成,前臺(tái)控制器可以設(shè)計(jì)成固定的臺(tái)式模式,也可以設(shè)計(jì)成便于攜帶的手持設(shè)備,它往往是通過無線方式控制多路繼電器主機(jī),進(jìn)而控制各種多媒體設(shè)備的開關(guān)及運(yùn)行。嵌入式系統(tǒng)的發(fā)展為這一媒體控制器提供了一個(gè)可靠的平臺(tái),而嵌入式處理器的更新?lián)Q代則意味著這個(gè)平臺(tái)將更加智能化,體積更小,功耗更低。 Intel公司推出的個(gè)人用戶端架構(gòu)(PCA)是一個(gè)開放的嵌入式系統(tǒng)開發(fā)應(yīng)用平臺(tái),它以XSCALE系列嵌入式處理器為核心,處理器時(shí)鐘可達(dá)1GHz,并可達(dá)到1200MIPS,同時(shí)支持Linux、WinCE.NET和VxWorks等操作系統(tǒng),是一個(gè)理想的面向無線互連的應(yīng)用平臺(tái)。 我們設(shè)計(jì)的手持式媒體控制器就是在PCA架構(gòu)下,選用Intel PXA250的硬件平臺(tái)。媒體控制器所實(shí)現(xiàn)的主要功能都是在一個(gè)多媒體控制軟件上實(shí)現(xiàn)的,這個(gè)應(yīng)用軟件把多媒體設(shè)備的各種操作解析為各個(gè)操作碼,并提供了一個(gè)前臺(tái)界面可進(jìn)行編程操作。這些編程命令以無線方式傳到一個(gè)多路繼電器主機(jī),最終實(shí)現(xiàn)多媒體設(shè)備的智能控制。系統(tǒng)對(duì)實(shí)時(shí)性要求并不很高,我們采用的是微軟的Windows CE嵌入式操作系統(tǒng),它提供了windows程序員熟悉的開發(fā)環(huán)境,如API函數(shù)、ActiveX控件、消息隊(duì)列、COM接口、ATL和MFC,不僅提高了開發(fā)效率,更重要的是,還有利于移植從其它Windows平臺(tái)上已開發(fā)好的應(yīng)用程序。 設(shè)計(jì)思路與系統(tǒng)硬件框圖 Intel R Xscale PXA250/210處理器是一個(gè)具有高集成度的通訊控制芯片,內(nèi)部集成了一個(gè)32bit XscaleRISC處理器內(nèi)核,并具有邏輯單元、多個(gè)通訊信道、LCD控制器、內(nèi)存PCMCIA控制器和通用的I/O口。它共有3個(gè)通用異步串行接口 (UART),其中包括一個(gè)藍(lán)牙串行口。每個(gè)串行口除了通用UART功能外,還包含一個(gè)低速紅外編解碼器,可直接與市售的紅外數(shù)據(jù)協(xié)會(huì)(IrDA)兼容的 LED收發(fā)器相連。
從手持設(shè)備的無線選擇方式來看,主要有三種方案:一是在藍(lán)牙串行口后接一個(gè)藍(lán)牙模塊;二是選擇紅外無線遙控;三是用短距離的無線數(shù)傳芯片。對(duì)于藍(lán)牙方案,無線傳輸距離和芯片價(jià)格是值得考慮的地方:藍(lán)牙主要用于短距離傳輸(最多10米),且芯片價(jià)格一直偏高,雖然目前也有使藍(lán)牙傳輸距離進(jìn)一步加大的方案(可達(dá)100米),但不幸的是,其價(jià)格也會(huì)比原來貴許多。紅外傳輸則沒有價(jià)格問題,但從手持設(shè)備所能提供的功耗來看,它能傳輸?shù)木嚯x實(shí)在太近,只有幾米,且對(duì)紅外發(fā)射角度有一定的要求,存在"必須保證傳輸信息的兩個(gè)設(shè)備正對(duì),且中間不能有障礙物"等致命的缺陷。與前兩種方案相比,采用短距離的無線數(shù)傳芯片進(jìn)行無線傳輸則靈活得多,價(jià)格上從低端到高端選擇余地很大,傳輸距離從幾十米到幾百米都有,功耗毫瓦級(jí)的也很多。 考慮到多媒體控制系統(tǒng)的某些應(yīng)用場合,如多媒體語音教室、多媒體會(huì)議室的面積,故對(duì)無線設(shè)備的傳輸距離有一定的要求,最好在百米范圍內(nèi)并有一定穿透力為宜,且由于屬于手持設(shè)備,功耗應(yīng)盡可能小。無線設(shè)備主要傳輸?shù)氖抢^電器動(dòng)作及媒體控制命令,因此無線通信的數(shù)據(jù)量不大,對(duì)無線模塊的速度要求不高。綜合以上分析,媒體控制手持設(shè)備的無線模塊最好采用第三種方案,即選用短距離低功耗的無線射頻芯片。無線模塊與INTEL PXA250連接也有多種選擇,如GPIO、IIC、USB、串口等,從硬件連接及通信協(xié)議最簡化來看,選擇串口與無線模塊相連是最佳的。 媒體控制手持設(shè)備主要功能描述如下: 1.CPU 采用Intel的Xscale PXA250處理器,運(yùn)行于400MHz(Xscale core); 32Bit RISC處理器,具有32K指令緩沖,32K數(shù)據(jù)緩沖,MMU單元,Mini cache; 很低的電源要求,可由鋰電池或AA/AAA電池供電; 內(nèi)部PCMCIA控制器; 2.內(nèi)存 采用三星SDRAM,32M字節(jié)SDRAM內(nèi)存(最大可到64Mbytes); 采用Intel的快速頁面讀取模式的StrataFlash,16M字節(jié)Flash內(nèi)存(最大可到32Mbytes); 3.外沒 TFT 640 %26;#215;480 LCD,真彩色,帶觸摸屏; AD觸摸屏控制器及四線電阻式觸摸屏接口; 用戶定義的多功能按鍵; 串行接口; 以太網(wǎng)接口; DC-DC高效率的電源轉(zhuǎn)換或低價(jià)位的電源轉(zhuǎn)換; 直流電源輸入接口; JTAG接口; 射頻無線模塊; 多個(gè)LED指示燈; 鋰電池的充電和供電系統(tǒng); 無線數(shù)傳模塊設(shè)計(jì) 市面上的射頻芯片很多,除了距離、功耗上的考慮外,選擇射頻波段也很重要:這個(gè)頻段不會(huì)影響其它無線設(shè)備的正常工作,如手機(jī)、電器等;它的頻段要合適,避免是國家管制的波段?;谝陨蠋c(diǎn),我們選擇挪威nordic公司的nRF401。
nRF401是采用FSK方式的為433MHz ISM頻段設(shè)計(jì)的半雙工無線收發(fā)芯片。傳輸速率最高可達(dá)19.6K,發(fā)射功率可調(diào),最大發(fā)射功率+10dBm,還有待機(jī)模式,以便更加省電。實(shí)測的傳輸距離超過200米,工作電壓從2.7V到5V,符合系統(tǒng)所需的要求。 芯片主要管腳說明如表1所示:
芯片采用SSOIC20的封裝,外圍電路設(shè)計(jì)非常簡單。它不需要對(duì)芯片進(jìn)行初始化和配置,數(shù)據(jù)可以透明傳輸,不用專門進(jìn)行編碼解碼。發(fā)射、接收宇數(shù)據(jù)接口采用串行形式,發(fā)射器以及接收器完全獨(dú)立進(jìn)行操作,并具有休眠功能。芯片具有載波檢測,發(fā)射、接收以及載波檢測路徑包含通帶濾波器,以使信號(hào)在調(diào)制解調(diào)器各部分得到完善。在信號(hào)條件比較差的情況下具有優(yōu)良的靈敏度,使產(chǎn)品的性能在高噪聲環(huán)境下完善。布線時(shí),RP電路對(duì)電源噪聲很敏感,要給RP電源加濾波電路,以減小電源噪聲對(duì)RF電路的干擾,最好在芯片電源引腳加旁路電容。射頻電路的元件面以nRF401為中心,各元件緊靠其周圍,盡可能減少分布參數(shù)的影響。數(shù)字信號(hào)只能在電路板的數(shù)字部分布線,模擬信號(hào)只能在電路板的模擬部分布線,并且模擬電源和數(shù)字電源要分割,要注意大面積地的連續(xù)性。 由圖3可見,嵌入式CPU對(duì)無線模塊的控制接口主要由5根信號(hào)線組成,分另U是DIN、DOUT、TXEN、PWR_UP、CS。其中PWR_UP是節(jié)能控制端,利用IntelPXA250的一個(gè)GPIO對(duì)其進(jìn)行編程,以實(shí)現(xiàn)無線模塊的工作模式與休眠狀態(tài)的切換。工作時(shí)手持設(shè)備僅與繼電器主機(jī)進(jìn)行半雙工通信,因此頻道選擇信號(hào)CS可以任意選擇,或亦用GPIO設(shè)置。Intel PXA250的全功官臣串口(FullFunction UART)支持MODEM信令,可以利用這個(gè)串口控制DIN、DOUT、TXEN信號(hào),串口的nRTS接TXEN。這里需要注意的是要對(duì)nRTS進(jìn)行延時(shí)處理,因?yàn)閚RF401發(fā)送到接收的轉(zhuǎn)換時(shí)間為5ms,所以延時(shí)要大于5ms。[!--empirenews.page--]
無線模塊軟件設(shè)計(jì) 無線模塊通過UART與系統(tǒng)連接,包括GUI用戶應(yīng)用程序也通過訪問串口驅(qū)動(dòng)程序來訪問設(shè)備,所以必須對(duì)UART進(jìn)行初始化。INTEL R PXA250的UART符合RS-232標(biāo)準(zhǔn),也支持16550工業(yè)標(biāo)準(zhǔn)的大部分功能,通訊的最高速度可以達(dá)到230.4kbps。 PXA250共有3個(gè)通用異步串行接口(UART),啟動(dòng)時(shí)UART默認(rèn)狀態(tài)是無法使用,必須通過編程GPIO寄存器來使能它們。每個(gè)UART有一個(gè)64 %26;#215;8位的FIFO用于緩沖輸出數(shù)據(jù),一個(gè)64 %26;#215; 1l位的FIFO用于緩沖輸入數(shù)據(jù)(其中的3位存放每個(gè)接收字符的幀、奇偶校驗(yàn)和接收FIFO溢出出錯(cuò)標(biāo)志)。當(dāng)UART單元被禁止時(shí),發(fā)送器和接收器完成當(dāng)前操作后停止任何數(shù)據(jù)傳送。此時(shí)FIFO中的數(shù)據(jù)并沒有被清空,一旦UART再次使能,發(fā)送接收可以重新開始。此外,將中斷允許寄存器(IER)的位 5置高,UART還可以進(jìn)行NRZ譯碼操作。 每個(gè)UART共有13個(gè)寄存器:其中12個(gè)用于UART操作,1個(gè)用于低速紅外調(diào)制功能。寄存器是32位,但只有最低的8位裝載的是有效數(shù)據(jù)。12個(gè) UART寄存器共享了I/O地址空間中的9個(gè)地址,基地址也是32位。各控制寄存器決定著UART各種模式、傳送方式以及波特率分頻系數(shù),狀態(tài)寄存器可以反映芯片目前的讀寫狀態(tài)以及錯(cuò)誤類型,數(shù)據(jù)寄存器分別對(duì)應(yīng)于發(fā)送FIFO頂部和接收FIFO底部:讀出RBRll位接收FIF0底部的8位數(shù)據(jù)、3位出錯(cuò)標(biāo)志;寫入TBR發(fā)送FIFO頂部8位數(shù)據(jù)。對(duì)這些寄存器的正確配置和讀寫是初始化UART的必要條件。寄存器SLDR[DLAB]位的狀態(tài)決定著一些 UART寄存器的選擇模式,為了能對(duì)分頻器寄存器進(jìn)行操作,必須通過軟件對(duì)SLDR[DLAB]位置高。 對(duì)這些寄存器的正確配置和讀寫是初始化UART的必要條件。除此以外還需要一些串行口的接口函數(shù),它們包括: 1 void Uart_Init(int Uartnum,int mclk,int baud)功能:初始化串行口,設(shè)置串行口通訊的波特率參數(shù)說明:Uartnum:所設(shè)定的串行口號(hào) mclk:系統(tǒng)的主時(shí)鐘頻率 band:所設(shè)定的串行口通訊的波特率 2 void Uart_Printf(Char*fmt,…) 功能:輸出字符串到串口0 參數(shù)說明:fmt:輸出到串行口的字符串
3 char Uart_etch(int Uartnum) 功能:接收指定串口的數(shù)據(jù),收到數(shù)據(jù)時(shí)返回,返回串口接收到的數(shù)據(jù)參數(shù)說明:Uartnum:所設(shè)定的串行口號(hào) 4 void Uart_SendByte(int Uartnum,int data) 功能:向指定的串口發(fā)送數(shù)據(jù)參數(shù)說明:Uartnum:所設(shè)定的串行口號(hào) data:發(fā)送的數(shù)據(jù) 在操作系統(tǒng)環(huán)境下,系統(tǒng)啟動(dòng)時(shí)會(huì)自動(dòng)初始化串行口,所以應(yīng)用程序調(diào)用串行口資源將變得更容易。值的注意的是,應(yīng)用程序往往是多任務(wù)系統(tǒng),為了實(shí)時(shí)監(jiān)測串行口信息,在操作環(huán)境中一般單開一個(gè)串行口掃描任務(wù),保證信息不丟失。在一個(gè)已有的工程文件的主函數(shù)MAIN中添加串行口的寄存器初始化代碼,并添加串行口掃描任務(wù)。由于對(duì)無線模塊的控制還有系統(tǒng)的GPl0,所以掃描程序中還要包括對(duì)10的操作。當(dāng)系統(tǒng)收到串行口信息時(shí),將會(huì)自動(dòng)向主任務(wù)發(fā)送一個(gè)串行口消息。主任務(wù)接收到該消息,將會(huì)調(diào)用響應(yīng)函數(shù),響應(yīng)該消息。 結(jié)束語 這種無線手持設(shè)備除了應(yīng)用于媒體控制系統(tǒng)外,還可以用于無線遙控系統(tǒng)、機(jī)器人控制、信息家電、無線PDA點(diǎn)菜系統(tǒng)等等。在高達(dá)400MHz的時(shí)鐘速度運(yùn)行的PXA250應(yīng)用處理器將為許多全功能的手持通信設(shè)備、信息通信系統(tǒng)和PDA提供先進(jìn)的集成度、領(lǐng)先的多媒體性能和更好的節(jié)能性。在Intel功能強(qiáng)大的PCA平臺(tái)(個(gè)人用戶端架構(gòu))下,系統(tǒng)設(shè)計(jì)人員可以不必過多的考慮CPU的處理瓶頸而把更多的精力放在應(yīng)用開發(fā)上。