基于USB主機和ZigBee的無(wú)線(xiàn)音響系統 (二)
4 協(xié)議的實(shí)現
本文引用地址:http://dyxdggzs.com/article/202180.htm4.1 USB 協(xié)議
USB 設備就是能夠通過(guò)USB 來(lái)發(fā)送和接收數據,從而實(shí)現一定功能的實(shí)體。每個(gè)USB 設備都具有表明自身能力和所需資源的描述符。在設備第一次連接到主機上之后,首先要接受主機枚舉,提供描述符。在得到主機的允許之后,設備就可以分得的USB 帶寬,進(jìn)行數據傳輸了。
系統通過(guò)簡(jiǎn)單的數據線(xiàn)上的電平變化檢測到USB設備的接入與移出,接著(zhù)主機和外設就按照事先約定的順序執行一系列的信息交換,也就是主機復位設備->主機給設備供電->設備通過(guò)缺省的地址0 與主機通信->主機給設備分配地址->主機請求設備的一系列功能和設備描述符…,因此,在程序中,通過(guò)順序的編程和中斷的調度,就可以完成主機系統的標準的USB 活動(dòng)。以上是主機軟件的第一部分,主要實(shí)現對外設的配置,讀取外設的信息,從而判斷該設備屬于USB 的哪一類(lèi),并確定下一步選用哪個(gè)特定的程序加以支持。
單片機系統中,限于系統的性能和要求,只需要支持某幾個(gè)特定的類(lèi)就可以了。本系統是一個(gè)在USBFlash 存儲器中的應用,這個(gè)USB 主機需要支持的就是USB 的Mass Storage 類(lèi),那么程序就要實(shí)現USB的Mass Storage 類(lèi)所規定的各種命令。主機的程序流程如圖4 所示。
圖4 USB 主機的軟件流程。
整個(gè)主機協(xié)議的實(shí)現主要可以分為以下三點(diǎn):
?、賳纹瑱C與接口芯片通信的實(shí)現。②主機最底層數據包發(fā)送的實(shí)現。③請求命令的實(shí)現。1,2,3,層層遞進(jìn),一級比一級高級。
4.2 ZigBee 協(xié)議
ZigBee協(xié)議棧建立在IEEE802.15.4標準之上,該標準制定了物理層(PHY)和媒體接入控制層(MAC)規范。ZigBee聯(lián)盟則定義了其上的網(wǎng)絡(luò )層(NWK)、應用層(APL)以及安全服務(wù)規范。
物理層提供了基本的物理無(wú)線(xiàn)通信能力;MAC層提供設備間的可靠性授權和單跳通信連接服務(wù);ZigBee協(xié)議棧的核心部分在網(wǎng)絡(luò )層,主要實(shí)現節點(diǎn)加入或離開(kāi)網(wǎng)絡(luò )、接收或拋棄其他節點(diǎn)、路由查找及傳送數據等功能;應用層包括應用支持子層(APS)、ZigBee設備對象(ZDO)和應用對象。APS提供了網(wǎng)絡(luò )層和應用層之間的接口;ZDO負責所有設備的管理,如初始化設備的發(fā)現和建立安全關(guān)系等功能。
ZigBee采用自組織方式組網(wǎng),支持星形網(wǎng)、網(wǎng)狀網(wǎng)和簇狀網(wǎng)等多種拓撲結構。由于在智能家居中多采用星型拓撲結構, 因而本論文主要對星型拓撲進(jìn)行組網(wǎng)和測試。
5 系統軟件設計
5.1MSP430控制讀取U盤(pán)數據
當設備連接到USB總線(xiàn)時(shí),固件執行USB處理程序,處理程序的流程如下:
?。?)FAT文件系統初始化。
本系統采用的U盤(pán)是滿(mǎn)足FAT文件格式的,了解FAT文件系統是系統軟件設計的基礎。
FAT文件系統有固定的格式,主要分為主引導扇區、引導扇區、文件目錄表和數據區等幾個(gè)部分。MP3文件的內容存放在數據區,但為了得到數據區的地址,首先要得到主引導區和引導扇區的內容;文件目錄表中記錄著(zhù)文件的信息,如文件名稱(chēng)、類(lèi)型和簇號等,可以通過(guò)得到文件目錄表來(lái)判斷分區中MP3格式文件的數目和每個(gè)文件的簇號,這些都為正確地定位MP3文件打基礎。
?。?)獲得MP3文件個(gè)數,在這個(gè)程序中僅僅查詢(xún)根目錄下MP3格式的文件個(gè)數。
FAT文件系統的文件目錄表中包含分區中所存的文件信息,每個(gè)文件的文件目錄表占用32個(gè)字節空間,該空間的第9、10、11位為文件的擴展名,可以把每個(gè)文件的擴展名和MP3格式文件的擴展名相比,進(jìn)而得到總的MP3格式文件個(gè)數。
?。?)通過(guò)文件目錄表找到MP3文件所在的簇號之后就可以得到文件的物理地址,進(jìn)而讀取MP3文件的幀頭并獲得該文件的信息。MP3文件由三部分組成,首先是ID3V2,然后是數據幀,最后為ID3V1,數據幀的幀頭包含MP3的采樣率信息,將這些信息通過(guò)無(wú)線(xiàn)方式傳送到接收端,進(jìn)而對解碼器和接口模塊進(jìn)行配置,這樣就可以讀取文件了。
5.2 ZigBee 網(wǎng)絡(luò )傳輸的軟件設計
ZigBee 無(wú)線(xiàn)通信網(wǎng)絡(luò )由三種節點(diǎn)組成:協(xié)調器(ZC)、路由器(ZR)和終端設備(ZD)。協(xié)調器是網(wǎng)絡(luò )的中心節點(diǎn),在本文中即為ZigBee 主節點(diǎn);路由器負責網(wǎng)絡(luò )內信息幀的路由;終端設備連接解碼器,實(shí)現音頻輸出。
網(wǎng)絡(luò )組建過(guò)程主要包括以下三個(gè)過(guò)程:
?。?)網(wǎng)絡(luò )初始化過(guò)程:節點(diǎn)初始化后, 掃描信道檢查網(wǎng)絡(luò )是否存在;(2)主節點(diǎn)配置網(wǎng)絡(luò )過(guò)程:產(chǎn)生協(xié)調器網(wǎng)絡(luò )節點(diǎn),開(kāi)始配置網(wǎng)絡(luò );(3)從節點(diǎn)入網(wǎng)過(guò)程:終端設備節點(diǎn)申請加人協(xié)調器節點(diǎn)或路由節點(diǎn)。
網(wǎng)絡(luò )協(xié)調器啟動(dòng)后,其它普通節點(diǎn)加入網(wǎng)絡(luò )時(shí),只要將自己的信道設置成與現有的協(xié)調器使用的信道相同,并提供正確的認證信息,即可請求加入網(wǎng)絡(luò )。一個(gè)節點(diǎn)若成功地接收一個(gè)子節點(diǎn),或者子節點(diǎn)成功脫離網(wǎng)絡(luò ),都必須向協(xié)調器匯報[8].圖5 是節點(diǎn)加入及脫離網(wǎng)絡(luò )握手示意圖。
圖5 節點(diǎn)及脫離網(wǎng)絡(luò )握手示意圖。
5.3 音頻解碼部分的軟件說(shuō)明
?。?)MP3播放器初始化處理子函數。
初始化程序完成對VS1003的PLL、MP3解碼器和AUDIO接口初始化,設定控制器的時(shí)鐘和采樣率,開(kāi)啟MP3中斷等工作。
?。?)MP3播放子程序。
找到MP3文件并且配置完MP3解碼器和AUDIO接口后,就可以播放MP3了。播放MP3的過(guò)程就是按照MP3解碼器的請求,把接收到的MP3數據傳輸到解碼器的輸入緩沖區的過(guò)程。
6 結語(yǔ)
本設計借助嵌入式USB 主機和ZigBee 無(wú)線(xiàn)通信技術(shù),為家用音響系統的設計提供了一種靈活、方便的無(wú)線(xiàn)解決方案,該系統具有良好的可擴展性和實(shí)用價(jià)值。相信隨著(zhù)智能家居產(chǎn)業(yè)的發(fā)展和ZigBee 無(wú)線(xiàn)通訊技術(shù)的不斷完善,ZigBee 技術(shù)將越來(lái)越好地融合在智能家居系統的設計中。
本文作者創(chuàng )新點(diǎn):將嵌入式USB 主機和ZigBee 技術(shù)創(chuàng )新性地應用于家用無(wú)線(xiàn)音響系統,實(shí)現了音頻數據通過(guò)ZigBee 網(wǎng)絡(luò )的無(wú)線(xiàn)傳輸,實(shí)驗證明,系統設計合理,方便擴展,價(jià)格低廉,是一種有效的解決方案。
評論