智能無線多媒體數(shù)字播放系統(tǒng)的設計與實現(xiàn)
嵌入式操作系統(tǒng)構成如下:(1)Bootloader使用三星公司專為其產(chǎn)品開發(fā)的啟動代碼VIVI;(2)內(nèi)核采用Linux2.6.13版[3];(3)文件系統(tǒng)選擇與NAND Flash兼容較好的YAFFS文件系統(tǒng)[4-6];(4)圖形用戶界面采用QTOPIA1.7[7]。
2.2 ARM9嵌入式微處理器S3C2440A
S3C2440A是三星公司基于ARM920T設計的一款處理器,主頻400MHz;擴展總線最大頻率100MHz;32bit數(shù)據(jù),27bit外部數(shù)據(jù)線;完全靜態(tài)設計(0~400MHz);存儲控制器(8個存儲體),4個帶有PWM的16bit定時器;多達55個中斷源的中斷控制器;RTC;3個UART,支持IrDA 1.0;4個DMA通道支持外設DMA;8通道,500kS/s,10bit ADC;支持STN與TFT LCD控制器;看門狗;I2S音頻接口;2個USB接口;I2C-Bus接口;2個串行外圍接口電路(SPI);SD卡接口。選擇ARM9芯片可以利用Linux操作系統(tǒng)來減少軟件開發(fā)時間,而且S3C2440A對主流多媒體支持較好,很適合用于開發(fā)智能多媒體系統(tǒng)。
2.3 CYWUSB6934無線收發(fā)模塊
無線收發(fā)模塊選用Cypress公司的CYWUSB6934。該芯片既可用作發(fā)射,也可用作接收,工作在2.4GHz ISM 頻段,頻率范圍為2.4GHz~2.483GHz。具有低功耗、低輻射的特點(輻射功率最大為0dBm),且發(fā)射功率可調(diào)(共7個等級);無線接收靈敏度高,可達-90dBm;通信半徑可達10m(當輸出最大功率且無障礙物阻擋時的直線通信距離可達15m左右)。由于其近距離、低功耗等特點,非常適用于短距離無線傳輸。
2.4 地址碼無線發(fā)射機
地址碼無線發(fā)射機是以單片機為核心構成的控制系統(tǒng),主要包括電源模塊、無線發(fā)射模塊和發(fā)射功率調(diào)整撥動開關,單片機與無線發(fā)射模塊的接口為SPI口。
2.5 手持智能無線多媒體終端
每個景點/展臺的音視頻內(nèi)容都以特定格式存儲在SD存儲卡中,每一個文件以規(guī)定方式命名,且對應于一個地址碼。
手持智能無線多媒體終端開機完成硬件初始化、Linux操作系統(tǒng)的啟動、文件系統(tǒng)的掛載和圖形用戶界面的啟動后,由用戶點擊圖形桌面上的智能點播系統(tǒng)程序圖標運行點播程序。系統(tǒng)查詢到這個信息后,立即讀取CYWUSB6934的數(shù)據(jù)寄存器以獲得地址碼。系統(tǒng)會將接收到的地址碼與前一數(shù)據(jù)進行對比,若相同則繼續(xù)播放,若不同則自動切換到對應該地址碼的文件進行播放。
3 智能無線點播的實現(xiàn)
微處理器S3C2440A和無線芯片CYWUSB6934之間通過SPI接口進行通信,在Linux系統(tǒng)中兩者之間的通信就必須通過SPI驅(qū)動程序來實現(xiàn)。而智能點播則是在用戶啟動Linux系統(tǒng)中的點播程序時,系統(tǒng)識別接收到的數(shù)據(jù)后,自動調(diào)用音視頻文件進行播放。
3.1 SPI驅(qū)動
在Linux操作系統(tǒng)中,所有外圍設備的控制都是通過驅(qū)動程序?qū)崿F(xiàn)的,設備驅(qū)動程序是操作系統(tǒng)內(nèi)核與機器硬件之間的接口。
SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。手持智能無線多媒體終端需要通過SPI接口控制無線收發(fā)芯片,這就需使用SPI接口驅(qū)動程序來建立無線收發(fā)芯片與內(nèi)核之間的通信橋梁。SPI接口以主從方式進行工作,其接口包括4種信號:(1)MOSI:主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入;(2)MISO:主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出;(3)SCLK:時鐘信號,由主器件產(chǎn)生;(4)/SS:從器件使能信號,由主器件控制。
圖2為S3C2440A與CYWUSB6934之間SPI接口的連接圖。圖中nSS控制CYWUSB6934作為從器件,SPIMOSI和SPIMISO是它們之間的數(shù)據(jù)傳輸通道,SPICLK為時鐘信號。當SPI作為主控制器時,由SPPRE寄存器中相應的比特位控制。而當SPI為從設備時,時鐘信號則是由其他設備提供。某些情況下,在將數(shù)據(jù)寫入SPTDAT寄存器之前,nSS應該被置為高電平。在本系統(tǒng)中主要用到的S3C2440A內(nèi)部與SPI相關的寄存器如下:
(1)SPCON寄存器:主要用于設置時鐘開啟、SPI傳輸格式、SPI傳輸模式。其中傳輸模式有3種,分別是polling模式、DMA模式、中斷模式。
(2)SPSTA寄存器:SPI接口的狀態(tài)寄存器,用于指示數(shù)據(jù)接收或發(fā)送是否已經(jīng)完成。
(3)SPPIN寄存器:用于檢測是否有多個主機。
(4)SPPRE寄存器:用于設置SPI傳輸時鐘頻率。其值通過如下計算式確定:
Baud rate=PCLK/2/(Prescaler value+1)
其中Prescaler value的初始值為0x00。
評論