申 晗 耿 浩 黃 平(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,遼寧 沈陽 110870)
基于ZigBee的無線MIDI雙向接口設(shè)計(jì)
申晗耿浩黃平
(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,遼寧沈陽110870)
針對(duì)在音樂表演現(xiàn)場常用的傳統(tǒng)MIDI音樂系統(tǒng)接口僅支持單線單向傳輸?shù)膯栴},本文研究了MIDI音樂傳輸原理及幾種主流無線傳輸方式,提出了一種MIDI傳輸速率與標(biāo)準(zhǔn)串口傳輸速率的匹配方法,設(shè)計(jì)了基于ZigBee傳輸協(xié)議的低功耗、短距離、高可靠性的無線MIDI傳輸接口。測(cè)試表明,該設(shè)計(jì)方法可以將傳統(tǒng)MIDI接口單線單向的傳輸方式轉(zhuǎn)換為無線雙向傳輸方式,連接、移動(dòng)方便,傳輸距離遠(yuǎn)。
MIDI;有線單向;ZigBee;無線雙向
MIDI(MusicalInstrumentDigital Interface)即樂器數(shù)字接口,是電子樂器間硬件接口標(biāo)準(zhǔn)和音樂網(wǎng)絡(luò)中各設(shè)備間的通信協(xié)議。它用音符數(shù)字控制信號(hào)、記錄音樂,一首完整的MIDI音樂只有幾十KB,節(jié)省了存儲(chǔ)空間,并且包含數(shù)十條音樂軌道。目前幾近所有的現(xiàn)代音樂都是基于MIDI并結(jié)合音色庫制作合成。
從當(dāng)前應(yīng)用市場來看,MIDI音樂系統(tǒng)使用普遍,但音樂現(xiàn)場常用的MIDI音樂系統(tǒng)接口僅支持有線單向傳輸,不僅連接、移動(dòng)不方便,而且傳輸距離受限。本文主要提出了一種MIDI傳輸速率與標(biāo)準(zhǔn)串口傳輸速率的匹配方法,設(shè)計(jì)了基于ZigBee傳輸協(xié)議的低功耗、短距離、高可靠性的無線MIDI雙向傳輸接口,完美地解決了傳統(tǒng)有線單向傳輸帶來的弊端。
ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗個(gè)人局域網(wǎng)協(xié)議,并且是基于該協(xié)議規(guī)定的一種短距離、低功耗的全新無線網(wǎng)絡(luò)通信技術(shù)。它主要應(yīng)用于遠(yuǎn)程控制、自動(dòng)控制和無線傳感器網(wǎng)絡(luò)等相關(guān)領(lǐng)域,可嵌入各種設(shè)備,同時(shí)支持地理定位功能。
ZigBee具有低功耗、低成本、可靠性高、網(wǎng)絡(luò)容量大等特點(diǎn),并且支持?jǐn)?shù)據(jù)透明傳輸、一對(duì)一傳輸、多對(duì)一傳輸和一對(duì)多傳輸,適用于分布有大量終端設(shè)備的網(wǎng)絡(luò)。其工作方式是:在數(shù)千個(gè)微小的傳感器之間以接力的方式通過無線電波,將數(shù)據(jù)從一個(gè)傳感器傳到另一個(gè)傳感器,并進(jìn)入計(jì)算機(jī)分析或者被另一終端收集,使得MIDI音樂數(shù)據(jù)流可以在大量不同設(shè)備終端間傳輸。ZigBee所具有的空閑信道評(píng)估(CCA)、動(dòng)態(tài)信道選擇、信道算法、頻率快變FA及直序擴(kuò)頻技術(shù)(DSSS)等功能使其在2.4GHz ISM頻段表現(xiàn)出很好的抗干擾性能,特別適用于低功耗、高可靠性數(shù)據(jù)傳輸場合。
現(xiàn)有的應(yīng)用比較廣泛的無線通信技術(shù)主要有WiFi、藍(lán)牙技術(shù)等,Zigbee技術(shù)與其相比具有較大優(yōu)勢(shì),見表1。
MIDI是一種用來保障音樂網(wǎng)絡(luò)中各設(shè)備終端間數(shù)據(jù)傳送的協(xié)議。根據(jù)標(biāo)準(zhǔn)MIDI協(xié)議的要求,MIDI數(shù)據(jù)流包括狀態(tài)和數(shù)據(jù)兩類字節(jié),其基本命令格式主要由指令字節(jié)、音符字節(jié)及力度字節(jié)等組成。指令字節(jié)主要包括8mH關(guān)斷指令和9mH開啟指令(m為通道號(hào))兩種,音符字節(jié)是范圍為0~7FH的音符數(shù)據(jù),即演奏音符,力度字節(jié)也稱為速度數(shù)據(jù),其范圍也是0~7FH,表示擊鍵的力度。
表1 Zigbee、WiFi和藍(lán)牙比較
硬件部分由MIDI接口電路、匹配電路和ZigBee無線傳輸電路組成。由于MIDI傳輸速率不是標(biāo)準(zhǔn)波特率,因此需要基于匹配電路以實(shí)現(xiàn)與傳輸速率為115.2Kbps的KLZB214A串口轉(zhuǎn)ZigBee模塊匹配。匹配電路主要由光電耦合電路及波特率轉(zhuǎn)換電路組成,以達(dá)到隔離及電平轉(zhuǎn)換的目的,所選用光電隔離器件型號(hào)為6N137,最大可支持1MHz。
MIDI為數(shù)據(jù)傳送速率為31.25Kbps的異步串行接口,數(shù)據(jù)格式由為1個(gè)起始位、1個(gè)停止位和8個(gè)數(shù)據(jù)位組成。系統(tǒng)采用STM32微處理器硬件USART串口完成MIDI信號(hào)的接收和發(fā)送,波特率匹配電路選用意法半導(dǎo)體公司的高性能主控芯片STM32F103U8T6。
無線傳輸電路基于可藍(lán)電子公司ZigBee轉(zhuǎn)串口通信模塊KLZB214A,該模塊內(nèi)嵌符合標(biāo)準(zhǔn)的ZigBee2007協(xié)議棧,采用AES128加密。整機(jī)系統(tǒng)框圖如圖1所示。
數(shù)據(jù)流由MIDIIN_A進(jìn)入,經(jīng)過光電耦合電路、波特率匹配電路,將MIDI標(biāo)準(zhǔn)的31.25Kbps的波特率轉(zhuǎn)化為115.2Kbps的高速波特率。緊接著ZigBee模塊A將數(shù)據(jù)傳出,ZigBee模塊B將數(shù)據(jù)接收,將接收到的數(shù)據(jù)通過波特率匹配電路使其115.2Kbps的高速波特率轉(zhuǎn)化為MIDI標(biāo)準(zhǔn)的31.25Kbps波特率,最后通過驅(qū)動(dòng)電路將數(shù)據(jù)傳送到MIDIOUT_B端口輸出,如此往復(fù)。
在實(shí)際應(yīng)用過程中,對(duì)需要進(jìn)行數(shù)據(jù)傳輸?shù)脑O(shè)備安裝ZigBee模塊,通過軟件設(shè)置,實(shí)現(xiàn)在任意兩個(gè)設(shè)備終端間進(jìn)行數(shù)據(jù)通信,以達(dá)到MIDI數(shù)據(jù)流傳輸?shù)哪康?。系統(tǒng)具體接口連接電路如圖2所示。
MIDI接口采用標(biāo)準(zhǔn)的5芯DIN連接器。MIDI信號(hào)流為電流信號(hào)而非電壓信號(hào),因此傳送線使用帶有屏蔽層的雙絞線電纜,以增強(qiáng)其抗干擾能力。不僅其傳輸速率高達(dá)31.5Kbps,而且可達(dá)到15m傳輸距離,高于RS-232接口傳輸距離。
軟件設(shè)計(jì)主要包括STM32F103U8T6微處理器與MIDI接口及ZigBee之間通信以實(shí)現(xiàn)波特率的轉(zhuǎn)換。STM32F103U8T6微處理器內(nèi)部帶有兩個(gè)可編程USART串口,通過對(duì)相關(guān)寄存器進(jìn)行設(shè)置,可以將MIDI接口的低波特率轉(zhuǎn)換成與ZigBee相匹配的高波特率,反之,可使得ZigBee傳輸?shù)母咚俨ㄌ芈兽D(zhuǎn)化為MIDI設(shè)備可識(shí)別的標(biāo)準(zhǔn)MIDI數(shù)據(jù)流。主程序流程圖如圖3所示。
系統(tǒng)上電后,系統(tǒng)需要對(duì)USART1、USART2、系統(tǒng)時(shí)鐘等模塊進(jìn)行初始化設(shè)置,標(biāo)志位FLAG在無MIDI數(shù)據(jù)流時(shí)清零,當(dāng)存在MIDI數(shù)據(jù)流時(shí),即表明需要傳輸數(shù)據(jù),標(biāo)志位FLAG置1。
目前許多MIDI音樂設(shè)備會(huì)在MIDI數(shù)據(jù)流中加入FE、F8等數(shù)據(jù)標(biāo)識(shí)符以提高硬件連接的活躍性,并且在傳輸連續(xù)多個(gè)指令字節(jié)、音符字節(jié)以及力度字節(jié)的情況下,許多MIDI設(shè)備會(huì)省略指令字節(jié)8mH或9mH。為了保證MIDI數(shù)據(jù)流傳輸?shù)臉?biāo)準(zhǔn)性、準(zhǔn)確性和高效性,需要對(duì)MIDI數(shù)據(jù)流進(jìn)行軟件濾波,濾除無用信息并調(diào)整數(shù)據(jù)格式。
速率匹配算法包括低速轉(zhuǎn)高速及高速轉(zhuǎn)低速兩部分。低速轉(zhuǎn)高速只需在軟件上將收到的數(shù)據(jù)經(jīng)過軟件濾波后,立即轉(zhuǎn)發(fā)到下一接口。高速轉(zhuǎn)低速部分,由于輸入是高速且輸出為低速,所以需將接收到的數(shù)據(jù)存入數(shù)組A中,并設(shè)定參數(shù)j記錄接收數(shù)據(jù)個(gè)數(shù)。由于高速數(shù)據(jù)的來源是低速數(shù)據(jù)轉(zhuǎn)化而來,高速轉(zhuǎn)低速部分的輸入是間斷的高速數(shù)據(jù)流,而輸出則為慢速連續(xù)的數(shù)據(jù)流。因此,如圖4所示,當(dāng)i<j時(shí),即輸出數(shù)據(jù)量小于輸入數(shù)據(jù)量,輸出繼續(xù)“追趕”輸入。當(dāng)i=j時(shí),即輸出數(shù)據(jù)量等于輸入數(shù)據(jù)量,令i=j=0,重新計(jì)數(shù)。根據(jù)上述“追趕”算法能夠保證在高速轉(zhuǎn)低速的過程中所傳輸數(shù)據(jù)的完整性。
本文的主要?jiǎng)?chuàng)新點(diǎn)是基于ZigBee實(shí)現(xiàn)MIDI接口的無線雙向接口設(shè)計(jì),ZigBee無線傳輸距離是該技術(shù)實(shí)現(xiàn)的關(guān)鍵。表2是分別在無障礙物的走廊和在走廊與教室間有障礙物的實(shí)驗(yàn)條件下對(duì)無線數(shù)據(jù)傳輸距離的測(cè)試。
通過表2可知,在空曠的開放空間條件下,ZigBee無線通信技術(shù)傳輸數(shù)據(jù)的距離大約在50m,而在有障礙物條件下雖然數(shù)據(jù)傳輸?shù)木嚯x有近一半的衰減,但仍可達(dá)到25m左右。因此,基于ZigBee的無線雙向MIDI接口設(shè)計(jì)方法適用于大型音樂現(xiàn)場和家庭使用。在實(shí)際應(yīng)用中,可根據(jù)實(shí)際的環(huán)境條件,在不同地點(diǎn)放置主節(jié)點(diǎn),實(shí)現(xiàn)遠(yuǎn)距離的音樂數(shù)據(jù)傳輸。
表2 不同實(shí)驗(yàn)環(huán)境下ZigBee 無線傳輸距離
(1)本文提出了一種基于ZigBee技術(shù)的MIDI無線雙向接口設(shè)計(jì)方案,利用KLZB214A無線通信模塊,將傳統(tǒng)MIDI的有線單向傳輸方式轉(zhuǎn)換為無線雙向傳輸方式,實(shí)現(xiàn)了MIDI接口之間的無線數(shù)據(jù)通信。
(2)在無障礙物和有障礙物條件下傳輸距離分別達(dá)到50m及25m左右,表明基于ZigBee的雙向無線MIDI接口設(shè)計(jì)方案可滿足大多數(shù)音樂現(xiàn)場和家庭使用。
(3)完美解決了傳統(tǒng)MIDI接口僅支持有線單向傳輸?shù)膯栴},而且連接、移動(dòng)方便,傳輸距離遠(yuǎn),可以實(shí)現(xiàn)任意設(shè)備之間的相互數(shù)據(jù)流傳輸。
[1]譚勁.MIDI接口和MIDI文件[J].惠州大學(xué)學(xué)報(bào):自然科學(xué)版,1995(04):8-10.
[2]呂鑫,王忠.ZigBee無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].安徽師范大學(xué)學(xué)報(bào):自然科學(xué)版,2010,33(04):332-335.
[3]紀(jì)晴,段培永,李連防,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的智能家居系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(12).
[4]彭燕.基于ZigBee的無線傳感器網(wǎng)絡(luò)研究[J].現(xiàn)代電子技術(shù),2011,34(05):49-51.
[5]金純,蔣小宇,羅祖秋.ZigBee與藍(lán)牙的分析與比較[J].信息技術(shù)與標(biāo)準(zhǔn)化,2004(06):17-20.
[6]楊軍.MIDI消息和標(biāo)準(zhǔn)MIDI文件格式剖析及應(yīng)用[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2003.
[7]潘曉利,陳學(xué)煌,祝祥迪.基于單片機(jī)的MIDI電子琴的設(shè)計(jì)[J].電子測(cè)量技術(shù),2008,31(06):174-176.
TP39
A