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