一種智能無線多媒體數字播放系統的設計方案
?。?)在open( )函數中,對SPI接口進行初始化,設置端口使用狀態(tài),設置SPI傳輸時鐘和傳輸模式。其代碼如下:
在對S3C2440A中的SPI相關寄存器進行初始化時,需要注意SPI的時鐘是與主時鐘相關聯的,如果不首先開啟主時鐘,即使將SPI自身工作時鐘開啟也不能使接口正常工作。
?。?)通過寫函數write( )實現對無線收發(fā)芯片CYWUSB6934的數據及地址寄存器的操作。其代碼如下:
static ssize_t spi_write(struct file*filp,const char*buf,size_t
count,loff_t*f_ops)
{
unsigned int tmp=0;
get_user(tmp,(char*)buf);/*獲取CYWUSB6934中寄存器地址*/
while((readl(SPSTA1) 0x1)==0);
writel(tmp,SPTDAT1);/*向寄存器中寫預置數據*/
while((readl(SPSTA1) 0x1)==0);
tmp=readl(SPRDAT1);/*再次從讀出的數據才是有用數據*/
put_user(tmp,(char*)buf);
return 0;
}
?。?)驅動中的ioctl( )函數通過改變I/O輸出電平的高低控制CYWUSB6934的PD(Power Down)口。該端口電平為低時可以使無線芯片工作在休眠狀態(tài),以達到省電的目的。其代碼如下:
3.2 智能點播界面
當手持智能無線多媒體終端接收到由地址碼無線發(fā)射機發(fā)出的地址碼時,將其存儲在數據寄存器中,主控芯片通過SPI接口讀取該地址碼信息,并以此為指針搜索對應的、預存在SD存儲卡中的音視頻文件,并按需調用終端中的音視頻播放器解碼播放。
軟件界面有2個按鈕,左邊是自動播放按鈕,右邊是手動播放按鈕。在用戶啟動點播軟件時,終端處于自動播放狀態(tài),而自動播放按鈕是當用戶進行手動播放后,如需要再讓其進行自動播放時使用此按鈕。當用戶點下手動播放按鈕時,會立即終止自動播放,彈出文件選擇菜單,手動選擇需要播放的文件。
智能點播軟件需要解決的是底層數據和上層應用程序的連接問題。而對地址碼的判斷是對底層進行操作,需調用C程序,則用戶界面程序使用一個自定義的data外部變量,作為上層界面程序與底層應用程序的橋梁。為了使程序能準確地調用播放器,這里還設立了一個消息機制,定時查詢CYWUSB6934的數據寄存器。一旦收到數據,就改變消息參數,上層界面程序查詢到這個參數改變后,便立即調用播放器。
本文設計的基于嵌入式的無線智能多媒體數字播放系統將嵌入式應用技術與短距離無線通信技術相結合,構成一套既具有工程實用價值,又可按需擴展功能的系統,實現了智能化的區(qū)域識別與音視頻播放,適用于各種景點及展臺的音視頻自動/手動受控播放,有很好的市場前景,能給廠商帶來很大的利潤。
評論