基于嵌入式系統(tǒng)的多媒體控制前臺(tái)設(shè)計(jì)分析
系統(tǒng)的應(yīng)用場(chǎng)合及意義
在一個(gè)大型會(huì)議系統(tǒng)或多媒體電教室系統(tǒng)中往往通過(guò)中央控制系統(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è)備,它往往是通過(guò)無(wú)線方式控制多路繼電器主機(jī),進(jìn)而控制各種多媒體設(shè)備的開(kāi)關(guān)及運(yùn)行。嵌入式系統(tǒng)的發(fā)展為這一媒體控制器提供了一個(gè)可靠的平臺(tái),而嵌入式處理器的更新?lián)Q代則意味著這個(gè)平臺(tái)將更加智能化,體積更小,功耗更低。 Intel公司推出的個(gè)人用戶端架構(gòu)(PCA)是一個(gè)開(kāi)放的嵌入式系統(tǒng)開(kāi)發(fā)應(yīng)用平臺(tái),它以XSCALE系列嵌入式處理器為核心,處理器時(shí)鐘可達(dá)1GHz,并可達(dá)到1200MIPS,同時(shí)支持Linux、WinCE.NET和VxWorks等操作系統(tǒng),是一個(gè)理想的面向無(wú)線互連的應(yīng)用平臺(tái)。
我們?cè)O(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)行編程操作。這些編程命令以無(wú)線方式傳到一個(gè)多路繼電器主機(jī),最終實(shí)現(xiàn)多媒體設(shè)備的智能控制。系統(tǒng)對(duì)實(shí)時(shí)性要求并不很高,我們采用的是微軟的WindowsCE嵌入式操作系統(tǒng),它提供了windows程序員熟悉的開(kāi)發(fā)環(huán)境,如API函數(shù)、ActiveX控件、消息隊(duì)列、COM接口、ATL和MFC,不僅提高了開(kāi)發(fā)效率,更重要的是,還有利于移植從其它Windows平臺(tái)上已開(kā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è)備的無(wú)線選擇方式來(lái)看,主要有三種方案:一是在藍(lán)牙串行口后接一個(gè)藍(lán)牙模塊;二是選擇紅外無(wú)線遙控;三是用短距離的無(wú)線數(shù)傳芯片。對(duì)于藍(lán)牙方案,無(wú)線傳輸距離和芯片價(jià)格是值得考慮的地方:藍(lán)牙主要用于短距離傳輸(最多10米),且芯片價(jià)格一直偏高,雖然目前也有使藍(lán)牙傳輸距離進(jìn)一步加大的方案(可達(dá)100米),但不幸的是,其價(jià)格也會(huì)比原來(lái)貴許多。紅外傳輸則沒(méi)有價(jià)格問(wèn)題,但從手持設(shè)備所能提供的功耗來(lái)看,它能傳輸?shù)木嚯x實(shí)在太近,只有幾米,且對(duì)紅外發(fā)射角度有一定的要求,存在"必須保證傳輸信息的兩個(gè)設(shè)備正對(duì),且中間不能有障礙物"等致命的缺陷。與前兩種方案相比,采用短距離的無(wú)線數(shù)傳芯片進(jìn)行無(wú)線傳輸則靈活得多,價(jià)格上從低端到高端選擇余地很大,傳輸距離從幾十米到幾百米都有,功耗毫瓦級(jí)的也很多。
考慮到多媒體控制系統(tǒng)的某些應(yīng)用場(chǎng)合,如多媒體語(yǔ)音教室、多媒體會(huì)議室的面積,故對(duì)無(wú)線設(shè)備的傳輸距離有一定的要求,最好在百米范圍內(nèi)并有一定穿透力為宜,且由于屬于手持設(shè)備,功耗應(yīng)盡可能小。無(wú)線設(shè)備主要傳輸?shù)氖抢^電器動(dòng)作及媒體控制命令,因此無(wú)線通信的數(shù)據(jù)量不大,對(duì)無(wú)線模塊的速度要求不高。綜合以上分析,媒體控制手持設(shè)備的無(wú)線模塊最好采用第三種方案,即選用短距離低功耗的無(wú)線射頻芯片。無(wú)線模塊與INTEL PXA250連接也有多種選擇,如GPIO、IIC、USB、串口等,從硬件連接及通信協(xié)議最簡(jiǎn)化來(lái)看,選擇串口與無(wú)線模塊相連是最佳的。
媒體控制手持設(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的快速頁(yè)面讀取模式的StrataFlash,16M字節(jié)Flash內(nèi)存(最大可到32Mbytes);
3.外沒(méi)
TFT 640 ×480 LCD,真彩色,帶觸摸屏;
AD觸摸屏控制器及四線電阻式觸摸屏接口;
用戶定義的多功能按鍵;
串行接口; 以太網(wǎng)接口;
DC-DC高效率的電源轉(zhuǎn)換或低價(jià)位的電源轉(zhuǎn)換;
直流電源輸入接口;
JTAG接口;
射頻無(wú)線模塊;
多個(gè)LED指示燈;
鋰電池的充電和供電系統(tǒng);
無(wú)線數(shù)傳模塊設(shè)計(jì)
市面上的射頻芯片很多,除了距離、功耗上的考慮外,選擇射頻波段也很重要:這個(gè)頻段不會(huì)影響其它無(wú)線設(shè)備的正常工作,如手機(jī)、電器等;它的頻段要合適,避免是國(guó)家管制的波段。基于以上幾點(diǎn),我們選擇挪威norDIC公司的nRF401。
nRF401是采用FSK方式的為433MHz ISM頻段設(shè)計(jì)的半雙工無(wú)線收發(fā)芯片。傳輸速率最高可達(dá)19.6K,發(fā)射功率可調(diào),最大發(fā)射功率+10dBm,還有待機(jī)模式,以便更加省電。實(shí)測(cè)的傳輸距離超過(guò)200米,工作電壓從2.7V到5V,符合系統(tǒng)所需的要求。
芯片主要管腳說(shuō)明如表1所示:
芯片采用SSOIC20的封裝,外圍電路設(shè)計(jì)非常簡(jiǎn)單。它不需要對(duì)芯片進(jìn)行初始化和配置,數(shù)據(jù)可以透明傳輸,不用專(zhuān)門(mén)進(jìn)行編碼解碼。發(fā)射、接收宇數(shù)據(jù)接口采用串行形式,發(fā)射器以及接收器完全獨(dú)立進(jìn)行操作,并具有休眠功能。芯片具有載波檢測(cè),發(fā)射、接收以及載波檢測(cè)路徑包含通帶濾波器,以使信號(hào)在調(diào)制解調(diào)器各部分得到完善。在信號(hào)條件比較差的情況下具有優(yōu)良的靈敏度,使產(chǎn)品的性能在高噪聲環(huán)境下完善。布線時(shí),RP電路對(duì)電源噪聲很敏感,要給RP電源加濾波電路,以減小電源噪聲對(duì)RF電路的干擾,最好在芯片電源引腳加旁路電容。射頻電路的元件面以nRF401為中心,各元件緊靠其周?chē)?,盡可能減少分布參數(shù)的影響。數(shù)字信號(hào)只能在電路板的數(shù)字部分布線,模擬信號(hào)只能在電路板的模擬部分布線,并且模擬電源和數(shù)字電源要分割,要注意大面積地的連續(xù)性。
由圖3可見(jiàn),嵌入式CPU對(duì)無(wú)線模塊的控制接口主要由5根信號(hào)線組成,分另U是DIN、DOUT、TXEN、PWR_UP、CS。其中PWR_UP是節(jié)能控制端,利用IntelPXA250的一個(gè)GPIO對(duì)其進(jìn)行編程,以實(shí)現(xiàn)無(wú)線模塊的工作模式與休眠狀態(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。
無(wú)線模塊軟件設(shè)計(jì)
無(wú)線模塊通過(guò)UART與系統(tǒng)連接,包括GUI用戶應(yīng)用程序也通過(guò)訪問(wèn)串口驅(qū)動(dòng)程序來(lái)訪問(wèn)設(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)是無(wú)法使用,必須通過(guò)編程GPIO寄存器來(lái)使能它們。每個(gè)UART有一個(gè)64 ×8位的FIFO用于緩沖輸出數(shù)據(jù),一個(gè)64 × 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ù)并沒(méi)有被清空,一旦UART再次使能,發(fā)送接收可以重新開(kāi)始。此外,將中斷允許寄存器(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)寄存器可以反映芯片目前的讀寫(xiě)狀態(tài)以及錯(cuò)誤類(lèi)型,數(shù)據(jù)寄存器分別對(duì)應(yīng)于發(fā)送FIFO頂部和接收FIFO底部:讀出RBRll位接收FIF0底部的8位數(shù)據(jù)、3位出錯(cuò)標(biāo)志;寫(xiě)入TBR發(fā)送FIFO頂部8位數(shù)據(jù)。對(duì)這些寄存器的正確配置和讀寫(xiě)是初始化UART的必要條件。寄存器SLDR[DLAB]位的狀態(tài)決定著一些UART寄存器的選擇模式,為了能對(duì)分頻器寄存器進(jìn)行操作,必須通過(guò)軟件對(duì)SLDR[DLAB]位置高。
對(duì)這些寄存器的正確配置和讀寫(xiě)是初始化UART的必要條件。除此以外還需要一些串行口的接口函數(shù),它們包括:
1 void Uart_Init(int Uartnum,int mclk,int baud)
功能:初始化串行口,設(shè)置串行口通訊的波特率
參數(shù)說(shuō)明:Uartnum:所設(shè)定的串行口號(hào)
mclk:系統(tǒng)的主時(shí)鐘頻率
band:所設(shè)定的串行口通訊的波特率
2 void Uart_Printf(Char*FMt,…)
功能:輸出字符串到串口0
參數(shù)說(shuō)明:fmt:輸出到串行口的字符串
3 char Uart_etch(int Uartnum)
功能:接收指定串口的數(shù)據(jù),收到數(shù)據(jù)時(shí)返回,返回串口接收到的數(shù)據(jù)
參數(shù)說(shuō)明:Uartnum:所設(shè)定的串行口號(hào)