基于VS1003B的語(yǔ)音通信方法研究
在通指裝備模擬訓練器材研發(fā)中,經(jīng)常會(huì )遇到需要模擬實(shí)現語(yǔ)音通話(huà)功能的情況。常規的解決方案是在計算機上通過(guò)高級語(yǔ)言編程實(shí)現對聲音的采集和播放,并通過(guò)局域網(wǎng)進(jìn)行傳輸??紤]到語(yǔ)音通信的模塊化和可控性,文中以STM32F107VCT6作為核心處理器,采用VS1003B作為語(yǔ)音采集和播放器件,通過(guò)CAN總線(xiàn)實(shí)現語(yǔ)音和信令傳輸,設計實(shí)現了一種低成本、高質(zhì)量的語(yǔ)音通信方法。
本文引用地址:http://dyxdggzs.com/article/201610/306190.htm1 VS1003B解碼芯片介紹
VS1003B是由芬蘭VLSI公司出品的一款單芯片的MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片,其內部電路如圖1所示。由圖可見(jiàn),VS1003B包含一個(gè)高性能、具有自主產(chǎn)權的低功耗DSP處理器內核VSDSP,工作數據存儲器為用戶(hù)應用提供5 kB的指令RAM和0.5 kB的數據RAM,串行的控制和數據接口,4個(gè)常規用途的I/O口,一個(gè)UART,一個(gè)高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個(gè)耳機放大器和地線(xiàn)緩沖器。

VS1003B通過(guò)一個(gè)串行輸入總線(xiàn)來(lái)接收輸入的比特流,它可以作為一個(gè)系統的從機。輸入的比特流被解碼,然后通過(guò)一個(gè)數字音量控制器到達一個(gè)18位過(guò)采樣多位ε-△DAC。解碼過(guò)程通過(guò)一個(gè)串行控制總線(xiàn)來(lái)控制實(shí)現。除了基本的解碼,在用戶(hù)RAM中它還可以做其他特殊應用,例如DSP音效處理。
2 設計原理
以半雙工語(yǔ)音通信為例,其工作原理如圖2所示。當一方需要講話(huà)時(shí),會(huì )按下PTT鍵,該信號被STM32微處理器檢測到后,一方面向對方發(fā)送“PTT已按下”的消息,另一方面控制已方VS1003B進(jìn)入錄音模式,VS1003B將采集到的音頻數據編碼后緩存給STM32,再通過(guò)CAN總線(xiàn)發(fā)送到對方。對方在收到“PTT已按下”消息后,會(huì )控制己方VS1003B開(kāi)啟語(yǔ)音播放模式,將對方傳來(lái)的音頻數據傳輸給VS1003B進(jìn)行解碼,并根據需要調節音量,供耳機播放。

VS1003B電路原理圖如圖3所示。J1為麥克風(fēng)輸入插座,用于連接麥克風(fēng)。J2為外部聲音輸入插座,連接音源。J3為耳機輸出插座,連接耳機,由于內部具有耳機驅動(dòng)器,VS1003B輸出信號不需經(jīng)過(guò)任何功放電路,從而簡(jiǎn)化了硬件電路。VS1003B各部分的供電電壓不同,IOVDD(I/O電壓)為3.3 V,CVDD(數字電路電壓)為2.5 V,AVDD(模擬電路電壓)為2.8 V。最大的采樣率XTAL1/256,決定了能以正確的速度播放的音頻采樣率。例如,如果要播放48 kHz采樣率的音頻,XTAL1至少為12.288 MHz才能獲得正確的播放速度。

對于STM32微處理器來(lái)說(shuō),總共需要7個(gè)IO口與VS1003B連接。SO(串行輸出)、SI(串行輸入)與SCLK(串行總線(xiàn)時(shí)鐘)分別接STM32的PB14、PB15和PB13,即接到STM32的SPI2上,VS1003B通過(guò)SPI接口輸出IMA ADPCM編碼的音頻數據。其余的四根線(xiàn)中,DREQ(數據請求)連接到PC3,XCS(命令片選)連接到PC10,XDCS(數據片選)連接到PC11,XRESET(復位)連接到STM32的14管腳(NRST),當STM32復位時(shí),VS1003B同時(shí)復位。操作時(shí),只有當DREQ為高(準備好)時(shí)才能讀寫(xiě)VS1003B。
3 VS1003B程序設計
3.1 初始化VS1003B
在設計中,STM32F103VET6通過(guò)SPI總線(xiàn)對VS1003B進(jìn)行控制,也就是通過(guò)VS1003B的串行數據接口SDI和串行控制接口SCI實(shí)現STM32F107 VCT6與VS1003B的通信。VS1003B初始化流程如圖4所示。其中,DREQ為高時(shí)可判斷為硬件復位或軟件復位結束。

3.2 語(yǔ)音信號的采集
語(yǔ)音信號的采集就是把模擬的語(yǔ)音信號轉化為可控制的數字信號。在這一處理過(guò)程中,主要是對模擬音頻信號進(jìn)行采樣、量化和編碼。
目前常見(jiàn)的音頻信號的頻率范圍大致如下:電話(huà)為200Hz~3.4 kHz,調幅廣播為50 Hz~7 kHz,調頻廣播為20Hz~15 kHz,高保真音頻信號為20 Hz~20 kHz。因此音頻取樣頻率一般定在8~48 kHz范圍內。
量化是利用預先規定的有限個(gè)電平來(lái)表示每一模擬采樣值的過(guò)程。量化的精度與其用來(lái)表示采樣值的二進(jìn)制位數有關(guān),例如4位可表示24=16個(gè)量化等級,8位可表示28=256個(gè)量化等級。明顯地,位數越多,量化值越接近采樣值,其精度也就越高,但相應的所需的存儲量也越大(見(jiàn)表1)。

鑒于STM32F107VCT6主頻最高為72 MHz,在保證聲音質(zhì)量的前提下,應盡量減少數據量,因此本文對聲音的采樣頻率為8 kHz,量化精度為8 bit,此時(shí)數據碼率為64 kbit/s。
語(yǔ)音壓縮編碼需要在保持可懂度、音質(zhì)、限制碼率及降低編碼過(guò)程的計算代價(jià)這幾個(gè)方面進(jìn)行折衷。VS1003B提供了IMA ADPCM編碼,這是由互動(dòng)多媒體協(xié)會(huì )(IMA)制定的標準,屬于波形編碼的一種,采用麥克風(fēng)和線(xiàn)入兩種輸入方式,可支持的音頻文件格式包括MP3、MP3+V、WMA、WAV、MIDI和SP-MIDI。IMA ADPCM適用于8~44.1 kHz采樣頻率,并且能在CPU占用率低和內存空間需求少的條件下保證較好的音質(zhì),在Windows和MAC操作系統中有廣泛的應用。IMA ADPCM錄音模式需要在SCI_MODE中對SM_RESET和SM_ADPCM進(jìn)行置位來(lái)啟動(dòng)。在啟動(dòng)ADPCM錄音前,必須分別向SCI_AICTRL0和SCI_AICTRL1寫(xiě)入時(shí)鐘分割值(據此可得到采樣率)和增益值。錄音流程如圖5所示。記錄的語(yǔ)音數據以512字節為單位進(jìn)行存儲,并由STM32處理器通過(guò)CAN總線(xiàn)向對方轉發(fā)。

3.3 CAN通信
CAN總線(xiàn)作為一種總線(xiàn)式串行通信網(wǎng)絡(luò ),與一般的通信總線(xiàn)相比,具有突出的可靠性、實(shí)時(shí)性和靈活性等特點(diǎn)??紤]到模擬訓練器材對語(yǔ)音傳輸距離的要求不高,且STM32自帶bxCAN,即基本擴展CAN,它支持CAN協(xié)議2.0A和2.0B,支持報文發(fā)送的優(yōu)先級要求,支持時(shí)間觸發(fā)通信,距離40 m內波特率可達1Mbit/s。因此,設計上采用CAN總線(xiàn)來(lái)實(shí)現語(yǔ)音數據傳輸,由STM32F107VCT6內嵌的2路CAN控制器與外圍器件SN65HVD230 (也標識為VP230)收發(fā)器組成2路CAN收發(fā)電路,其中一路CAN組成信令網(wǎng),實(shí)現控制信令的傳輸;另一路CAN組成語(yǔ)音網(wǎng),將ADPCM壓縮編碼后的數據,由STM32處理為CAN報文格式,發(fā)送到總線(xiàn)上,并對CAN過(guò)濾器進(jìn)行設置,使之僅在收到給自己的報文時(shí)引起中斷。
3.4 語(yǔ)音信號的播放
播放前將對方傳來(lái)的語(yǔ)音數據存放到STM32的緩沖區,緩沖區的大小設置為512字節,一般一次讀一個(gè)扇區,然后將數據發(fā)往VS1003B。由于VS1003B有32字節的數據緩沖區,一次可以發(fā)32個(gè)字節的數據,然后檢測DREQ,當DREQ為高時(shí)送下一個(gè)32字節的數據,直到發(fā)完為止。 DREQ為高表明VS1003B可以接受新的數據,如果不考慮DREQ而直接連續的給VS1003B發(fā)音頻數據,將會(huì )出現聲音斷斷續續的情況。語(yǔ)音播放流程如圖6所示,考慮到實(shí)際語(yǔ)音通信時(shí),本地PTT鍵抬起時(shí),對方會(huì )無(wú)法聽(tīng)到語(yǔ)音,因此流程圖中采用判斷對方PTT鍵的狀態(tài)來(lái)處理是否播放。

4 結束語(yǔ)
本文對基于STM32微處理器和VS1003B音頻解碼芯片的語(yǔ)音通信功能的實(shí)現進(jìn)行了研究,重點(diǎn)介紹了VS1003B的原理以及在語(yǔ)音通信應用中的硬件電路設計和軟件程序設計。經(jīng)測試,該方法可較好地滿(mǎn)足語(yǔ)音通信要求,工作穩定可靠,并在多個(gè)模擬訓練器材研發(fā)項目中得到應用,具有一定的參考價(jià)值。
- STM32單片機中文官網(wǎng)
- STM32單片機官方開(kāi)發(fā)工具
- STM32單片機參考設計
評論