鄭立安,龔杏雄,牛昱光
(太原理工大學(xué)信息工程學(xué)院,太原030024)
利用電腦多媒體技術(shù)進(jìn)行課堂教學(xué)已是很普遍的做法。而在播放課件的同時(shí),多數(shù)教師更愿意離開講臺(tái)進(jìn)行講解以方便與學(xué)生的交流和溝通。目前普遍使用的激光筆雖然可以讓教師離開講臺(tái)實(shí)現(xiàn)課件演示的翻頁操作,但不能操作除ppt課件之外的其他教學(xué)軟件,而且多數(shù)是紅外遙控,操作范圍受到限制。再有就是教師想離開講臺(tái)時(shí)還能使用多媒體系統(tǒng)的音響設(shè)備,就得另外配戴一套無線話筒或攜帶便攜式擴(kuò)音器。教師會(huì)感覺繁瑣累贅。
為了解決這個(gè)問題,本人設(shè)計(jì)了一種新型的教學(xué)輔助工具。教師只需攜帶銀行卡大小的手持端和U盤大小的接收端,就可離開多媒體講桌,通過手勢(shì)和搖桿控制光標(biāo)移動(dòng),點(diǎn)擊左、右鍵操作課件或其他軟件,并能使用附帶的激光筆和話筒進(jìn)行授課活動(dòng),從而不再為多媒體講桌所限制。
硬件部分由手持端和接收端兩部分組成,兩者之間是通過2.4 G無線模塊nRF24L01進(jìn)行無線[1]通訊的,此無線模塊的傳輸范圍能滿足多媒體教室的空間要求。
手持端的硬件結(jié)構(gòu)如圖1所示。主控芯片采用ARM-CortexM3架構(gòu)的德州儀器公司的LM3S1P51[2]處理器。聲音采集采用硅麥克風(fēng)傳感器MSMAS42Z,采集到的模擬信號(hào)由音頻編解碼芯片TLV320AIC23B轉(zhuǎn)換成16 bit[3]雙聲道PCM音頻流,經(jīng)由專門用于音頻傳輸?shù)腎2S接口傳送至處理器,由處理器完成將PCM編碼壓縮成ADPCM編碼的運(yùn)算處理[4]。處理器通過I2C接口獲得加速度傳感器MXC6225XU的加速度數(shù)據(jù),從而獲得手持端晃動(dòng)的趨勢(shì),并結(jié)合處理器接收到的搖桿動(dòng)作,生成對(duì)應(yīng)的光標(biāo)移動(dòng)指令[5]。模擬鼠標(biāo)按鍵操作和激光筆控制按鍵操作也都由處理器識(shí)別并生成相應(yīng)的指令,其中激光筆的控制指令由處理器芯片的PWM調(diào)制輸出至激光筆驅(qū)動(dòng)電路。ADPCM音頻數(shù)據(jù)及光標(biāo)移動(dòng)指令和鼠標(biāo)按鍵指令會(huì)被處理器分別打包,并通過 SPI接口分別發(fā)送至無線模塊nRF24L01[6],以無線傳輸方式發(fā)送給接收端。
圖1 手持端硬件結(jié)構(gòu)圖
接收端的硬件結(jié)構(gòu)如圖2所示。主控芯片采用ARM-Cortex M3架構(gòu)[7]的意法半導(dǎo)體公司的STM32F103C8[8]處理器。處理器通過SPI口接收來自無線模塊nRF24L01收到的包含ADPCM音頻數(shù)據(jù)和各種操作指令的數(shù)據(jù)包。在處理器中,要將ADPCM編碼解壓縮成PCM編碼,并與按鍵指令一起經(jīng)由USB接口上傳到PC機(jī)。音頻流會(huì)被送入PC機(jī)的聲音播放系統(tǒng)播放出來,相應(yīng)的操作指令會(huì)實(shí)現(xiàn)鼠標(biāo)的屏幕光標(biāo)控制和左、右鍵命令,從而實(shí)現(xiàn)課件演示操作和教學(xué)軟件運(yùn)行操作。
圖2 接收端硬件結(jié)構(gòu)圖
軟件程序分為手持端和接收端兩部分,手持端的程序流程如圖3所示,設(shè)備初始化之后,整個(gè)程序工作在無限循環(huán)中。當(dāng)檢測(cè)到音頻采集電路的DMA傳輸中斷信號(hào),則優(yōu)先發(fā)送一幀音頻數(shù)據(jù)。在中斷結(jié)束或沒有中斷信號(hào)時(shí),采集各種操作的開關(guān)量信號(hào),將數(shù)據(jù)通過無線發(fā)出。接收端的程序流程如圖4所示,設(shè)備初始化之后,整個(gè)程序工作在無限循環(huán)中。通過對(duì)收到數(shù)據(jù)的類型判斷,按照音頻數(shù)據(jù)或開關(guān)量指令數(shù)據(jù)分別進(jìn)行不同的處理。最終將數(shù)據(jù)通過USB接口上傳到PC中。
圖3 手持端軟件流程圖
圖4 接收端的軟件流程圖
通過話筒音頻信號(hào)采集,經(jīng)由Codec芯片轉(zhuǎn)換而成的PCM編碼的數(shù)據(jù)量很大,需要一種較為完善且高效的傳輸機(jī)制,來保證聲音信號(hào)能同步傳輸?shù)膶?shí)時(shí)性要求,以避免因傳輸延時(shí)或數(shù)據(jù)缺失造成的聲音失真。本設(shè)計(jì)在手持端采用了DMA雙緩沖機(jī)制,即乒乓模式[9],它用于實(shí)現(xiàn)內(nèi)存與外設(shè)之間連續(xù)不斷的數(shù)據(jù)流。要使用乒乓模式必須同時(shí)配置主數(shù)據(jù)結(jié)構(gòu)體和副數(shù)據(jù)結(jié)構(gòu)體,兩個(gè)結(jié)構(gòu)體均用于實(shí)現(xiàn)存儲(chǔ)器與外設(shè)之間的數(shù)據(jù)傳輸,這可由處理器建立。傳輸過程如圖5所示。傳輸從主控制結(jié)構(gòu)體開始,當(dāng)主控制結(jié)構(gòu)體所配置的傳輸過程結(jié)束后,DMA控制器自動(dòng)載入副控制結(jié)構(gòu)體并按其配置繼續(xù)傳輸。每當(dāng)這時(shí)都會(huì)產(chǎn)生一個(gè)中斷,處理器對(duì)剛剛結(jié)束傳輸過程的數(shù)據(jù)結(jié)構(gòu)體進(jìn)行重新配置。于是,主/副控制結(jié)構(gòu)體交替在緩沖區(qū)與外設(shè)之間搬運(yùn)數(shù)據(jù)。
圖5 乒乓式DMA數(shù)據(jù)傳輸
ADPCM是將PCM的16 bit采樣數(shù)據(jù)壓縮成4 bit的。對(duì)于雙聲道的ADPCM來說,它是將PCM的左聲道的前8個(gè)采樣依次壓縮并寫入到一個(gè)DWORD中,然后寫入“data”chunk里。緊接著是右聲道的前8個(gè)采樣。如此循環(huán),見圖6所示。當(dāng)采樣數(shù)不足8時(shí)(到數(shù)據(jù)尾端),應(yīng)把多出來的采樣用0填充。解壓縮實(shí)為壓縮的一個(gè)逆過程。
圖6 PCM壓縮與解壓縮
射頻信號(hào)收發(fā)采用的是NORDIC公司的2.4 G無線模塊nRF24L01。這款無線模塊的控制芯片自帶CRC校驗(yàn),從而減小了軟件開發(fā)時(shí)間,同時(shí)也減輕了處理器的工作量。另外它的無線速率最高可達(dá)2 Mbit/s,完全能滿足音頻數(shù)據(jù)的實(shí)時(shí)性要求。
為了使接收端具有PC機(jī)USB口熱插拔設(shè)備性能,依照USB2.0協(xié)議標(biāo)準(zhǔn)將接收端設(shè)計(jì)成一個(gè)HID 類[10]和音頻類[11]的復(fù)合型 USB 設(shè)備,使得接收端只占用一個(gè)PC機(jī)的USB端口即可實(shí)現(xiàn)二者鏈接。值得一提的是,任何操作系統(tǒng)自帶的USB驅(qū)動(dòng)都直接支持本設(shè)計(jì)的接收端。換句話說,在多媒體設(shè)備的PC機(jī)上無需安裝任何驅(qū)動(dòng)程序,直接利用系統(tǒng)自帶驅(qū)動(dòng)即可使用接收端的功能。
本設(shè)計(jì)的結(jié)果可使教師離開講臺(tái)之后,依然可以利用多媒體的語音播放功能,再配合手勢(shì)移動(dòng)和相當(dāng)于鼠標(biāo)功能的按鍵操作,在教室的任何角落為學(xué)生授課和解惑,并且不用擔(dān)心距離較遠(yuǎn)的同學(xué)會(huì)聽不到,簡(jiǎn)單有效地實(shí)現(xiàn)了互動(dòng)教學(xué)的目的。
若要實(shí)現(xiàn)教師在課堂任意走動(dòng),并且隨意操控演示課件和教學(xué)軟件,那么無線話筒、無線鼠標(biāo)和紅外激光筆等多種設(shè)備得一應(yīng)俱全,這些設(shè)備的價(jià)格合起來也得幾百元,更主要是教師要同時(shí)使用多個(gè)設(shè)備,使用很麻煩。而本設(shè)計(jì)批量生產(chǎn)的成本將會(huì)不足百元,教師手持一個(gè)設(shè)備即可實(shí)現(xiàn)所有操作功能。
根據(jù)硬件和軟件設(shè)計(jì)思路完成的手持端和接收端試驗(yàn)樣機(jī)如圖7所示。圖8所示為PC機(jī)上采集到的聲音信號(hào)波形及分析說明。
圖7 手持端和接收端試驗(yàn)樣機(jī)
圖8 PC機(jī)上采集到的聲音波形分析
樣機(jī)試驗(yàn)證明,本設(shè)計(jì)方案、硬件結(jié)構(gòu)和軟件編程都能滿足預(yù)期目標(biāo)。不足之處是聲音信號(hào)的傳輸功能雖然基本實(shí)現(xiàn),但還有改進(jìn)空間,可以考慮在壓縮和解壓縮算法上作進(jìn)一步優(yōu)化。
[1]文光俊.無線通信射頻電路技術(shù)與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2010.
[2]德州儀器公司(http://www.ti.com).Stellaris?LM3S1P51 Microcontroller DATA SHEET[EB/OL].pdf,2012.1.
[3]陳自龍,周書杰,湯勇明.基于ARM嵌入式系統(tǒng)的高保真無損音樂播放器設(shè)計(jì)[J].電子器件,2012,35(6):692-698.
[4]陳河南譯.數(shù)字技術(shù):數(shù)字視頻和音頻壓縮[M].北京:電子工業(yè)出版社,2000.
[5]孫寧,陳進(jìn),林立新.一種基于光電鼠標(biāo)傳感技術(shù)的振動(dòng)偏移量采集設(shè)備[J].電子器件,2011,34(3):328-331.
[6]NORDIC公司(http://www.Nordicsemi.com).nRF24L01 Single Chip 2.4GHz Transceiver Product Specification[EB/OL].pdf,2007.7.
[7]劉波文.ARM Cortex-M3應(yīng)用開發(fā)實(shí)例詳解.北京:電子工業(yè)出版社,2011.
[8]陳貽國(guó),錢金芳,潘日敏.一種基于STM32的航模直升機(jī)飛控系統(tǒng)設(shè)計(jì)[J].電子器件,2012,35(1):47-51.
[9]德州儀器公司(http://www.ti.com).Stellaris?LM3S9B96 Microcontroller DATA SHEET[EB/OL].pdf,2012.1.
[10]應(yīng)冬青,王健.USB協(xié)議在嵌入式系統(tǒng)文件傳輸中的應(yīng)用[J].電子器件,2011,34(1):104-107.
[11]胡曉軍.USB接口開發(fā)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.