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