基于ZigBee無(wú)線傳感網(wǎng)絡(luò)的語(yǔ)音會(huì)議系統(tǒng)設(shè)計(jì)
本方案設(shè)計(jì)了一種基于ZigBee傳輸?shù)臒o(wú)線傳感網(wǎng)絡(luò)結(jié)構(gòu)的語(yǔ)音會(huì)議系統(tǒng)。每個(gè)話筒作為無(wú)線傳感網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn),所有話筒組成一個(gè)無(wú)線傳感網(wǎng)絡(luò)。話筒的聲音數(shù)據(jù)通過(guò)ZigBee傳輸上傳到匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)再轉(zhuǎn)發(fā)到擴(kuò)聲系統(tǒng),此設(shè)計(jì)有效地解決傳送距離過(guò)遠(yuǎn)和部分死角位置無(wú)法傳送的問題。
1無(wú)線傳感網(wǎng)絡(luò)簡(jiǎn)介和特點(diǎn)
無(wú)線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)是一種由傳感器節(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò),能夠?qū)崟r(shí)地監(jiān)測(cè)、感知、采集節(jié)點(diǎn)部署區(qū)的觀察者感興趣的感知對(duì)象的各種信息,并對(duì)這些信息進(jìn)行處理后以無(wú)線的方式發(fā)送出去,通過(guò)無(wú)線網(wǎng)絡(luò)最終發(fā)送給觀察者。
無(wú)線傳感網(wǎng)絡(luò)有以下幾個(gè)特點(diǎn):
①在無(wú)線傳感器網(wǎng)絡(luò)中不存在嚴(yán)格的控制中心,整個(gè)無(wú)線傳感網(wǎng)絡(luò)是一個(gè)對(duì)等式網(wǎng)絡(luò),網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都可以隨時(shí)加入或離開網(wǎng)絡(luò)。
②網(wǎng)絡(luò)的布設(shè)和展開不需要依賴于其他預(yù)設(shè)的網(wǎng)絡(luò)設(shè)施,節(jié)點(diǎn)可以通過(guò)分層協(xié)議和分布式算法協(xié)調(diào)各自的行為,節(jié)點(diǎn)啟動(dòng)后可以快速、自動(dòng)地組成一個(gè)獨(dú)立的無(wú)線網(wǎng)絡(luò)。
③無(wú)線傳感器網(wǎng)絡(luò)中沒有專門的路由設(shè)備。節(jié)點(diǎn)的多跳路由是由普通網(wǎng)絡(luò)節(jié)點(diǎn)完成的,每個(gè)節(jié)點(diǎn)既可以發(fā)送信息,又可以轉(zhuǎn)發(fā)信息,可以有效避免部分節(jié)點(diǎn)無(wú)法與路由通信的問題。
④無(wú)線傳感器網(wǎng)絡(luò)是一個(gè)動(dòng)態(tài)的網(wǎng)絡(luò),節(jié)點(diǎn)可以隨處移動(dòng),既可以因?yàn)槟撤N原因退出網(wǎng)絡(luò)運(yùn)行,也可以由于某種原因新加入到網(wǎng)絡(luò)中。網(wǎng)絡(luò)結(jié)構(gòu)可以動(dòng)態(tài)變化,非常靈活。
2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)結(jié)構(gòu)圖如圖1所示。每個(gè)與會(huì)者的話筒作為無(wú)線傳感網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn),如圖1中左邊的圓形示意圖,每個(gè)節(jié)點(diǎn)可以直接和匯聚節(jié)點(diǎn)通信,部分節(jié)點(diǎn)(可能因?yàn)榫嚯x過(guò)遠(yuǎn)或者被障礙物阻擋)無(wú)法直接和匯聚節(jié)點(diǎn)通信,可以通過(guò)其他中間節(jié)點(diǎn)(圖中黑色節(jié)點(diǎn))轉(zhuǎn)發(fā)而間接與匯聚節(jié)點(diǎn)通信,甚至經(jīng)過(guò)多級(jí)子節(jié)點(diǎn)的路由最后到匯聚節(jié)點(diǎn)。
圖1 系統(tǒng)結(jié)構(gòu)圖
匯聚節(jié)點(diǎn)將子節(jié)點(diǎn)發(fā)送過(guò)來(lái)的聲音信號(hào)經(jīng)過(guò)音頻解碼后傳輸?shù)綌U(kuò)聲系統(tǒng)。同時(shí),當(dāng)部分會(huì)議系統(tǒng)需要同聲傳譯時(shí),系統(tǒng)中還會(huì)存在同聲傳譯的子節(jié)點(diǎn),同聲傳譯節(jié)點(diǎn)作為一個(gè)特殊的子節(jié)點(diǎn),將翻譯數(shù)據(jù)直接發(fā)送給匯聚節(jié)點(diǎn),再由匯聚節(jié)點(diǎn)轉(zhuǎn)發(fā)給各個(gè)子節(jié)點(diǎn)。子節(jié)點(diǎn)根據(jù)用戶的需求選擇對(duì)應(yīng)的語(yǔ)言,受到ZigBee的帶寬限制,能支持同聲傳譯的通道數(shù)目是有限制的。
3子節(jié)點(diǎn)的硬件設(shè)計(jì)
子節(jié)點(diǎn)的硬件設(shè)計(jì)如圖2所示。上行通道中,聲音首先經(jīng)過(guò)麥克風(fēng)轉(zhuǎn)換為電信號(hào),然后進(jìn)行A/D采樣,上傳給CPU再轉(zhuǎn)發(fā)給音頻編碼,編碼后回傳給CPU,最后通過(guò)無(wú)線傳輸網(wǎng)絡(luò)ZigBee傳送給匯聚節(jié)點(diǎn);下行通道剛好相反,無(wú)線傳感網(wǎng)絡(luò)將匯聚節(jié)點(diǎn)下發(fā)的數(shù)據(jù)經(jīng)過(guò)CPU給音頻解碼部分,完成解碼后CPU再次轉(zhuǎn)發(fā)給DAC進(jìn)行數(shù)模轉(zhuǎn)換,最后經(jīng)過(guò)信號(hào)放大以后輸出到耳麥。各個(gè)系統(tǒng)的節(jié)點(diǎn)通過(guò)電池供電,這樣可以方便每個(gè)節(jié)點(diǎn)的任意移動(dòng),增加系統(tǒng)的靈活性。
圖2 子節(jié)點(diǎn)硬件結(jié)構(gòu)圖
3.1 CPU、無(wú)線接收模塊和音頻編碼模塊的實(shí)現(xiàn)
該部分選用了美國(guó)CEL公司的MeshConnectTM系列ZICM2410模塊,其內(nèi)核芯片ZICM2410是一個(gè)真正的單芯片解決方案,遵從ZigBee規(guī)范和IEEE 802.15.4標(biāo)準(zhǔn),它由一個(gè)含有基帶MODEM的射頻收發(fā)器、硬連線的MAC和內(nèi)嵌8051內(nèi)核的微控制器(帶有內(nèi)部Flash存儲(chǔ)器)組成,包括多個(gè)通用I/O引腳、定時(shí)器、UART,SPI等,以及硬件語(yǔ)音編解碼器。獨(dú)有的I2S/SPI/UART音頻輸入/輸出接口,結(jié)合其擴(kuò)展的500 kbps或1 Mbps的無(wú)線傳輸速率,可以滿足廣大的無(wú)線語(yǔ)音應(yīng)用。該芯片具有集成度高、外設(shè)接口豐富、功耗低的特點(diǎn),工作電壓為3.3 V,非常適合無(wú)線模塊的使用,尤其是低功耗的特點(diǎn),非常適合電池場(chǎng)景使用,方便移動(dòng)。
ZICM2410芯片結(jié)構(gòu)如圖3所示。在ZigBee數(shù)據(jù)速率(250 khps)下所體現(xiàn)出的卓越射頻性能,完全能滿足經(jīng)過(guò)壓縮編碼的語(yǔ)音帶寬要求。C EL向客戶提供作為部分軟件庫(kù)的CEL ZigBee棧,CEL還可提供開發(fā)定制的應(yīng)用程序所需要的硬件和軟件工具。
圖3 ZICM2410內(nèi)部結(jié)構(gòu)圖
ZICM2410還具有一個(gè)集成的PCB板載天線,由于CEL的ZIC2410 IEEE 802.15.4/ZigBee收發(fā)器能提供106 dB的工業(yè)頂級(jí)鏈路預(yù)算,因此,即使沒有外部功率放大器,MeshConnect仍可以維持遠(yuǎn)距離的無(wú)線連接(3 000ft無(wú)障礙距離),在無(wú)需外置天線的情況下能滿足一般會(huì)場(chǎng)的要求,進(jìn)一步增加集成度,減小終端的復(fù)雜度和體積。
ZICM2410還有支持三種語(yǔ)音編碼解碼算法:μ-律、a-律和ADPCM,非常適合語(yǔ)音會(huì)議系統(tǒng)的需求,可以進(jìn)一步提高集成度、降低功耗。此外還對(duì)外提供非常豐富的外部接口,包括UART1、UART2、I2S、SPI、22個(gè)GPIO、4路ADC和I2S接口。
3.2上行通道系統(tǒng)的硬件實(shí)現(xiàn)
聲音首先通過(guò)麥克風(fēng)轉(zhuǎn)為電信號(hào),因?yàn)辂溈孙L(fēng)輸出的信號(hào)很小,所以要通過(guò)一放大器放大,其電路部分如圖4所示。
圖4 音頻信號(hào)放大電路
聲音從麥克風(fēng)輸出經(jīng)過(guò)C1耦合到運(yùn)算放大器的負(fù)向輸入端,經(jīng)過(guò)第一級(jí)反向運(yùn)算放大器放大,再通過(guò)第二級(jí)反向放大器放大后通過(guò)一電阻輸出最后給ADC采樣。
其中R7、R6分壓以后向運(yùn)放提供一個(gè)參考電壓,為了電壓更穩(wěn)定在R6兩端之間加一濾波電容。R12、R13為麥克風(fēng)提供一偏置電壓,同樣加C13、C16兩濾波電容以提高穩(wěn)定性。R8、C18組成運(yùn)算放大器的反饋?zhàn)杩梗瑫r(shí)也是一低通濾波器,這樣可以有效地濾除高次諧波的混疊干擾。同樣R17、C17的效果也一樣。C14也是一個(gè)低通濾波器,濾除高次諧波的干擾。
信號(hào)經(jīng)過(guò)放大后,輸出給ADC進(jìn)行采樣、ADC選用ADSS8865,它是TI公司的一款低功耗、16位的ADC,在100 ksps下只有0.65 mW的功耗,非常適合電池供電場(chǎng)景使用,其參考電壓和模擬電壓都是3.3 V.通過(guò)SPI接口與CPU連接。其連接示意圖如圖5所示。ADC的模擬電源、數(shù)字電源、參考電壓都是電源直接輸入3.3 V.
圖5 ADC采樣電路
ADC將聲音信號(hào)采樣回來(lái)以后,首先通過(guò)SPI接口發(fā)送給CPU,CPU在轉(zhuǎn)發(fā)給音頻壓縮模塊,音頻壓縮模塊編碼以后通過(guò)CPU轉(zhuǎn)發(fā)給無(wú)線發(fā)送模塊,無(wú)線發(fā)送模塊采用ZigBee協(xié)議轉(zhuǎn)發(fā)到匯聚節(jié)點(diǎn)。
3.3下行通道硬件系統(tǒng)的實(shí)現(xiàn)
子節(jié)點(diǎn)通過(guò)ZigBee模塊接收匯聚節(jié)點(diǎn)的數(shù)據(jù),經(jīng)過(guò)音頻解壓后,CPU通過(guò)I2C總線通道發(fā)送給DAC進(jìn)行數(shù)模轉(zhuǎn)換,最后經(jīng)過(guò)功放輸出給耳機(jī)接口。DAC選用TI公司的PCM1774,PCM1774是一塊16位DAC,最高帶寬達(dá)到50 kHz,工作電壓在數(shù)字和模擬部分均為3.3 V,與CPU系統(tǒng)和ADC保持一個(gè)電壓供電,減小電源設(shè)計(jì)的復(fù)雜度。
PCM1774內(nèi)部自帶一個(gè)功率放大模塊,可以直接輸出到一般的耳機(jī)接口,減少功放模塊的設(shè)計(jì),進(jìn)一步降低電路的復(fù)雜度。PCM1774支持SPI口和I2C總線口與控制器連接,由于CPU模塊ZICM2410只有一個(gè)SPI口已經(jīng)和ADC連接,此處DAC通過(guò)CPU的I/O口模擬I2C總線與DAC連接。其連接示意圖如圖6所示。同時(shí)PCM1774需要一路系統(tǒng)時(shí)鐘,通過(guò)CPU的I/O口輸出直接給PCM1774.
圖6 下行點(diǎn)硬件示意圖
4子節(jié)點(diǎn)的軟件設(shè)計(jì)
每個(gè)子節(jié)點(diǎn)啟動(dòng)后,首先初始化,設(shè)置本節(jié)點(diǎn)地址,設(shè)置默認(rèn)目標(biāo)節(jié)點(diǎn)地址是匯聚節(jié)點(diǎn),然后查找能否與匯聚節(jié)點(diǎn)連接。如果能連接則建立鏈接,并設(shè)置本節(jié)點(diǎn)可以與直接與匯聚節(jié)點(diǎn)連接,同時(shí)設(shè)置下一站的目標(biāo)地址為匯聚節(jié)點(diǎn),然后準(zhǔn)備傳輸數(shù)據(jù),如果有數(shù)據(jù)傳輸則將數(shù)據(jù)傳輸?shù)絽R聚節(jié)點(diǎn)。由于每個(gè)子節(jié)點(diǎn)可以是動(dòng)態(tài)移動(dòng)的,或者受外界因素干擾等,導(dǎo)致子節(jié)點(diǎn)的通信鏈路受阻,如果沒有傳輸數(shù)據(jù)或者傳輸數(shù)據(jù)結(jié)束后,子節(jié)點(diǎn)再次掃描能否與匯聚節(jié)點(diǎn)連接,如此重復(fù)。
在掃描與匯聚節(jié)點(diǎn)連接過(guò)程,如果無(wú)法直接與匯聚節(jié)點(diǎn)連接,則嘗試與周邊節(jié)點(diǎn)建立鏈接,如果無(wú)法找到能到達(dá)匯聚節(jié)點(diǎn)的子節(jié)點(diǎn),則直接返回查找匯聚節(jié)點(diǎn),如此反復(fù)。
如果能找到周邊可以與匯聚節(jié)點(diǎn)連接的子節(jié)點(diǎn),則找一個(gè)能最快到達(dá)匯聚節(jié)點(diǎn)的子節(jié)點(diǎn)建立鏈接,然后設(shè)置本節(jié)點(diǎn)可以到達(dá)匯聚節(jié)點(diǎn),并設(shè)置到達(dá)匯聚節(jié)點(diǎn)需要跳躍子節(jié)點(diǎn)的跳數(shù),然后設(shè)置下一節(jié)點(diǎn)地址,準(zhǔn)備數(shù)據(jù)傳輸,最后判斷是否有數(shù)據(jù)傳輸。如果沒有數(shù)據(jù)傳輸則子節(jié)點(diǎn)是動(dòng)態(tài)的,返回繼續(xù)掃描是否可以到達(dá)匯聚節(jié)點(diǎn),如此循環(huán)下去。
如果有數(shù)據(jù)傳輸則判斷是上行數(shù)據(jù)還是下行數(shù)據(jù),如果是上行數(shù)據(jù)則直接轉(zhuǎn)發(fā)至下一個(gè)站節(jié)點(diǎn),如果是下行數(shù)據(jù),則判斷是否為傳送給本機(jī)數(shù)據(jù),如果是則進(jìn)行音頻解碼最后直接輸出至DAC輸出。
由于每個(gè)子節(jié)點(diǎn)位置是動(dòng)態(tài)的,所以在轉(zhuǎn)發(fā)完數(shù)據(jù)或者解碼輸出給DAC完成后繼續(xù)查找匯聚節(jié)點(diǎn),如此反復(fù)。整個(gè)軟件流程圖如圖7所示。
圖7 子節(jié)點(diǎn)軟件流程圖
5匯聚節(jié)點(diǎn)和同聲傳譯節(jié)點(diǎn)設(shè)計(jì)
匯聚節(jié)點(diǎn)與子節(jié)點(diǎn)基本一致,只是硬件上數(shù)據(jù)轉(zhuǎn)發(fā)傳輸能力比一般子節(jié)點(diǎn)大,軟件上針對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)給所有與其連接的子節(jié)點(diǎn),如果是子節(jié)點(diǎn)上傳過(guò)來(lái)的數(shù)據(jù)則直接進(jìn)行音頻解碼,最后通過(guò)DAC輸出至音箱輸入線路。同聲傳譯節(jié)點(diǎn)和其他子節(jié)點(diǎn)硬件設(shè)計(jì)上是一致的。只是在
使用過(guò)程中,如果設(shè)置為同聲傳譯節(jié)點(diǎn),軟件處理上也有些細(xì)微差異。在此不做詳細(xì)展開。
結(jié)語(yǔ)
本系統(tǒng)以集成CPU、ZigBee收發(fā)模塊和音頻編解碼的ZICM2410為核心,ZICM2410有高集成度和低功耗的特點(diǎn),使得硬件電路設(shè)計(jì)非常簡(jiǎn)單,非常適合移動(dòng)的電池供電系統(tǒng)。
評(píng)論