基于ZigBee和USB主機的無線音響系統(tǒng)
本設計借助嵌入式USB 主機和ZigBee 無線通信技術(shù),為家用音響系統(tǒng)的設計提供了一種靈活、方便的無線解決方案,該系統(tǒng)具有良好的可擴展性和實用價值。相信隨著智能家居產(chǎn)業(yè)的發(fā)展和ZigBee 無線通訊技術(shù)的不斷完善,ZigBee 技術(shù)將越來越好地融合在智能家居系統(tǒng)的設計中。
本文作者創(chuàng)新點:將嵌入式USB 主機和ZigBee 技術(shù)創(chuàng)新性地應用于家用無線音響系統(tǒng),實現(xiàn)了音頻數(shù)據(jù)通過ZigBee 網(wǎng)絡的無線傳輸,實驗證明,系統(tǒng)設計合理,方便擴展,價格低廉,是一種有效的解決方案。
1 引言
近幾年來,隨著嵌入式系統(tǒng)技術(shù)、網(wǎng)絡通訊技術(shù)以及家電產(chǎn)業(yè)的迅猛發(fā)展,信息技術(shù)正逐漸滲透到人們的生活當中,智能家居設計也漸漸進入視野。然而,現(xiàn)階段的智能家居設計,多采用有線設計,存在著系統(tǒng)結(jié)構(gòu)復雜、不易改動等缺點。
本文設計了一種基于嵌入式USB 主機的家用無線音響系統(tǒng),可以實現(xiàn)在不連接PC 機的情況下直接讀取U盤或mp3 中的音頻數(shù)據(jù),并通過ZigBee 無線網(wǎng)絡傳輸給家庭內(nèi)部各個位置上的分節(jié)點,實現(xiàn)家庭音響的無線播放mp3 的功能,將人們從繁雜的布線中解放出來。
2 系統(tǒng)結(jié)構(gòu)
系統(tǒng)主要由嵌入式USB 主機和ZigBee 分節(jié)點播放器組成。而USB 主機又是系統(tǒng)設計的關鍵,主要由USB接口、MCU 控制器、ZigBee 主節(jié)點和電源模塊等組成,系統(tǒng)結(jié)構(gòu)如圖1 所示。
系統(tǒng)處理流程為:本地端控制器MSP430 通過CH375 按照相應的USB 協(xié)議,讀取U 盤或MP3 中的音頻文件,并將其傳輸給ZigBee 主節(jié)點。ZigBee主節(jié)點利用ZigBee 網(wǎng)絡將音頻信號發(fā)送給位于不同位置的ZigBee 分節(jié)點。分節(jié)點接收到信號后,經(jīng)過處理,將數(shù)字信號傳送給音頻解碼芯片,經(jīng)解碼后實現(xiàn)音頻輸出。
圖1 系統(tǒng)結(jié)構(gòu)
3 系統(tǒng)硬件設計
3.1 USB 接口部分
3.1.1 CH375 介紹
CH375 是一個USB 總線的通用接口芯片,支持USB-HOST主機方式和USB-DEVICE/SLAVE 設備方式。在本地端,CH375 具有8 位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU/MPU 等控制器的系統(tǒng)總線上。
CH375的USB主機方式支持常用的USB全速設備,外部單片機可以通過CH375按照相應的USB協(xié)議與USB 設備通訊。CH375 還內(nèi)置了處理Mass-Storage 海量存儲設備的專用通訊協(xié)議的固件,通常情況下,外部單片機不需要編寫固件程序,就可以直接以扇區(qū)為基本單位讀寫常用的USB存儲設備(包括USB硬盤/USB閃存盤/U盤)。
3.1.2 U盤接口電路設計
由于CH375 和單片機采用并行方式通信傳輸速度快,編程簡單,所以本設計采用并行連接方式。
圖2 CH375 并行接口電路
在CH375 芯片的復位期間,TXD 引腳用于選擇通訊接口。如果CH375 在復位期間檢測到TXD 引腳為低電平則啟用并行接口。硬件連接方式如下:CH375的8 位雙向數(shù)據(jù)總線D7~D0、中斷輸出引腳INT#、讀選通輸入引腳RD#、寫選通輸入引腳WR#以及地址輸入引腳A0 分別接MSP430 的P3 口、P1.0、P4.4、P4.5、 P4.6 腳,由于在本系統(tǒng)中CPU 只有一片CH375 擴展,所以片選輸入引腳CS#接地選通,接口電路如圖2 所示。
3.2 主控制器與ZigBee 無線網(wǎng)絡部分
本系統(tǒng)采用MSP430F1611 構(gòu)成控制模塊,采用CC2430 為核心的無線收發(fā)模塊,核心芯片之間采用SPI 方式通訊,MSP430F1611 采用主模式,CC2430采用從模式。
MSP430 系列單片機是美國TI 公司推出的超低功耗16 位混合信號處理器,具有精簡指令集結(jié)構(gòu)(RISC)以及豐富的尋址方式;擁有高性能模擬技術(shù)及豐富的片上外圍模塊;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器可參加多種運算;在8MHz 晶振工作時,指令速度可達8MIPS.這些特點即保證了可編制出高效率的源程序,又為系統(tǒng)的單片解決方案提供了極大的方便[3].
CC2430 的選擇性和敏感性指數(shù)超過了IEEE802.15.4 標準的要求,可確保短距離通信的有效性和可靠性。利用此芯片開發(fā)的無線通信設備支持數(shù)據(jù)傳輸率高達250Kbps,可以實現(xiàn)多點對多點的快速組網(wǎng)。更重要的是,CC2430 只需極少外部元器件,性能穩(wěn)定且功耗極低。
MSP430 在低功耗節(jié)能方面表現(xiàn)突出,ZigBee 的特色之一也是低功耗,選用這兩種芯片,可以保證二者在功耗方面的一致性,有利于系統(tǒng)應用,同時也能保證工作的穩(wěn)定性。
在電路設計中,利用MSP430 的P3 口接收CH375 讀取的U 盤數(shù)據(jù),并通過DMA 方式將數(shù)據(jù)傳送給USART1,后者將數(shù)字音頻信號以SPI 方式傳送給ZigBee 主節(jié)點。
3.3 音頻解碼部分
在接收端,ZigBee分節(jié)點接收到數(shù)字信號后,以SPI方式將數(shù)據(jù)串行傳輸給解碼芯片VS1003,此時CC2420為主模式,VS1003為從模式。
VS1003是由荷蘭VLSI公司出品的一款單芯片的MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片,其擁有一個高性能低功耗的DSP處理器核VS_DSP,5K的指令RAM,0.5K的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口, 4個通用IO口,一個UART口;同時片內(nèi)帶有一個可變采樣率的ADC、一個立體聲DAC以及音頻耳機放大器。
VS1003通過一個串行接口來接收輸入的比特流,比特流被解碼后通過一個數(shù)字控制器到達一個18位過采樣多位ε-ΔDAC.通過串行總線控制解碼器。
除了基本的解碼,在用戶RAM中它還可以做其他特殊應用,例如DSP音效處理。
VS1003與單片機連接的引腳主要有7個,分別為SO、SI、SCLK、/XCS、/XRESET、DREQ、/XDCS.
只有保證它們與單片機正確可靠的連接,才能對VS1003 進行有效的操作與控制[4] .CC2430 與VS1003的連接關系如圖3所示。
圖3 CC2430 與音頻解碼芯片連接電路圖
4 協(xié)議的實現(xiàn)
4.1 USB 協(xié)議
USB 設備就是能夠通過USB 來發(fā)送和接收數(shù)據(jù),從而實現(xiàn)一定功能的實體。每個USB 設備都具有表明自身能力和所需資源的描述符。在設備第一次連接到主機上之后,首先要接受主機枚舉,提供描述符。在得到主機的允許之后,設備就可以分得的USB 帶寬,進行數(shù)據(jù)傳輸了。
系統(tǒng)通過簡單的數(shù)據(jù)線上的電平變化檢測到USB設備的接入與移出,接著主機和外設就按照事先約定的順序執(zhí)行一系列的信息交換,也就是主機復位設備->主機給設備供電->設備通過缺省的地址0 與主機通信->主機給設備分配地址->主機請求設備的一系列功能和設備描述符…,因此,在程序中,通過順序的編程和中斷的調(diào)度,就可以完成主機系統(tǒng)的標準的USB 活動。以上是主機軟件的第一部分,主要實現(xiàn)對外設的配置,讀取外設的信息,從而判斷該設備屬于USB 的哪一類,并確定下一步選用哪個特定的程序加以支持。
單片機系統(tǒng)中,限于系統(tǒng)的性能和要求,只需要支持某幾個特定的類就可以了。本系統(tǒng)是一個在USBFlash 存儲器中的應用,這個USB 主機需要支持的就是USB 的Mass Storage 類,那么程序就要實現(xiàn)USB的Mass Storage 類所規(guī)定的各種命令。主機的程序流程如圖4 所示。
圖4 USB 主機的軟件流程
整個主機協(xié)議的實現(xiàn)主要可以分為以下三點:
①單片機與接口芯片通信的實現(xiàn)。②主機最底層數(shù)據(jù)包發(fā)送的實現(xiàn)。③請求命令的實現(xiàn)。1,2,3,層層遞進,一級比一級高級。
4.2 ZigBee 協(xié)議
ZigBee協(xié)議棧建立在IEEE802.15.4標準之上,該標準制定了物理層(PHY)和媒體接入控制層(MAC)規(guī)范。ZigBee聯(lián)盟則定義了其上的網(wǎng)絡層(NWK)、應用層(APL)以及安全服務規(guī)范。
物理層提供了基本的物理無線通信能力;MAC層提供設備間的可靠性授權(quán)和單跳通信連接服務;ZigBee協(xié)議棧的核心部分在網(wǎng)絡層,主要實現(xiàn)節(jié)點加入或離開網(wǎng)絡、接收或拋棄其他節(jié)點、路由查找及傳送數(shù)據(jù)等功能;應用層包括應用支持子層(APS)、ZigBee設備對象(ZDO)和應用對象。APS提供了網(wǎng)絡層和應用層之間的接口;ZDO負責所有設備的管理,如初始化設備的發(fā)現(xiàn)和建立安全關系等功能。
ZigBee采用自組織方式組網(wǎng),支持星形網(wǎng)、網(wǎng)狀網(wǎng)和簇狀網(wǎng)等多種拓撲結(jié)構(gòu)。由于在智能家居中多采用星型拓撲結(jié)構(gòu), 因而本論文主要對星型拓撲進行組網(wǎng)和測試。
5 系統(tǒng)軟件設計
5.1MSP430控制讀取U盤數(shù)據(jù)
當設備連接到USB總線時,固件執(zhí)行USB處理程序,處理程序的流程如下:
(1)FAT文件系統(tǒng)初始化。
本系統(tǒng)采用的U盤是滿足FAT文件格式的,了解FAT文件系統(tǒng)是系統(tǒng)軟件設計的基礎。
FAT文件系統(tǒng)有固定的格式,主要分為主引導扇區(qū)、引導扇區(qū)、文件目錄表和數(shù)據(jù)區(qū)等幾個部分。MP3文件的內(nèi)容存放在數(shù)據(jù)區(qū),但為了得到數(shù)據(jù)區(qū)的地址,首先要得到主引導區(qū)和引導扇區(qū)的內(nèi)容;文件目錄表中記錄著文件的信息,如文件名稱、類型和簇號等,可以通過得到文件目錄表來判斷分區(qū)中MP3格式文件的數(shù)目和每個文件的簇號,這些都為正確地定位MP3文件打基礎。
(2)獲得MP3文件個數(shù),在這個程序中僅僅查詢根目錄下MP3格式的文件個數(shù)。
FAT文件系統(tǒng)的文件目錄表中包含分區(qū)中所存的文件信息,每個文件的文件目錄表占用32個字節(jié)空間,該空間的第9、10、11位為文件的擴展名,可以把每個文件的擴展名和MP3格式文件的擴展名相比,進而得到總的MP3格式文件個數(shù)。
(3)通過文件目錄表找到MP3文件所在的簇號之后就可以得到文件的物理地址,進而讀取MP3文件的幀頭并獲得該文件的信息。MP3文件由三部分組成,首先是ID3V2,然后是數(shù)據(jù)幀,最后為ID3V1,數(shù)據(jù)幀的幀頭包含MP3的采樣率信息,將這些信息通過無線方式傳送到接收端,進而對解碼器和接口模塊進行配置,這樣就可以讀取文件了。
5.2 ZigBee 網(wǎng)絡傳輸?shù)能浖O計
ZigBee 無線通信網(wǎng)絡由三種節(jié)點組成:協(xié)調(diào)器(ZC)、路由器(ZR)和終端設備(ZD)。協(xié)調(diào)器是網(wǎng)絡的中心節(jié)點,在本文中即為ZigBee 主節(jié)點;路由器負責網(wǎng)絡內(nèi)信息幀的路由;終端設備連接解碼器,實現(xiàn)音頻輸出。
網(wǎng)絡組建過程主要包括以下三個過程:
(1)網(wǎng)絡初始化過程:節(jié)點初始化后, 掃描信道檢查網(wǎng)絡是否存在;(2)主節(jié)點配置網(wǎng)絡過程:產(chǎn)生協(xié)調(diào)器網(wǎng)絡節(jié)點,開始配置網(wǎng)絡;(3)從節(jié)點入網(wǎng)過程:終端設備節(jié)點申請加人協(xié)調(diào)器節(jié)點或路由節(jié)點。
網(wǎng)絡協(xié)調(diào)器啟動后,其它普通節(jié)點加入網(wǎng)絡時,只要將自己的信道設置成與現(xiàn)有的協(xié)調(diào)器使用的信道相同,并提供正確的認證信息,即可請求加入網(wǎng)絡。一個節(jié)點若成功地接收一個子節(jié)點,或者子節(jié)點成功脫離網(wǎng)絡,都必須向協(xié)調(diào)器匯報[8].圖5 是節(jié)點加入及脫離網(wǎng)絡握手示意圖。
圖5 節(jié)點及脫離網(wǎng)絡握手示意圖
5.3 音頻解碼部分的軟件說明
(1)MP3播放器初始化處理子函數(shù)。
初始化程序完成對VS1003的PLL、MP3解碼器和AUDIO接口初始化,設定控制器的時鐘和采樣率,開啟MP3中斷等工作。
(2)MP3播放子程序。
找到MP3文件并且配置完MP3解碼器和AUDIO接口后,就可以播放MP3了。播放MP3的過程就是按照MP3解碼器的請求,把接收到的MP3數(shù)據(jù)傳輸?shù)浇獯a器的輸入緩沖區(qū)的過程。