基于A(yíng)RM9的嵌入式網(wǎng)絡(luò )語(yǔ)音通信終端
傳統的語(yǔ)音通信是以公共交換電話(huà)網(wǎng)(PSTN)為語(yǔ)音系統進(jìn)行話(huà)音交流,該系統以電路交換為通信基礎,信道利用率低、通信資費較高。而隨著(zhù)通信技術(shù)和網(wǎng)絡(luò )的快速發(fā)展,越來(lái)越多的用戶(hù)采用IP網(wǎng)絡(luò )進(jìn)行語(yǔ)音通信與視頻通話(huà),該通信系統采用分組交換為基礎,具有靈活的業(yè)務(wù)擴展能力和低廉的話(huà)費價(jià)格。從2013年開(kāi)始到如今,工信部已經(jīng)發(fā)放了兩批虛擬運營(yíng)商牌照,此舉必然會(huì )進(jìn)一步推動(dòng)國內市場(chǎng)的網(wǎng)絡(luò )語(yǔ)音發(fā)展。
本文引用地址:http://dyxdggzs.com/article/201808/387112.htm本文采用嵌入式處理器、以太網(wǎng)控制芯片、音頻處理芯片設計出一款語(yǔ)音通信終端,該終端通過(guò)音頻采集、播放語(yǔ)音、處理器進(jìn)行數據處理,通過(guò)網(wǎng)卡進(jìn)行數據傳送與接收,從而實(shí)現終端的語(yǔ)音通信功能。
1 硬件電路設計
網(wǎng)絡(luò )語(yǔ)音終端系統硬件由微處理器、以太網(wǎng)通信模塊、音頻處理模塊、電源等模塊組成。該終端系統各個(gè)模塊之間進(jìn)行數據交互的示意圖如圖1所示。

圖1 系統模塊數據交互圖
網(wǎng)絡(luò )語(yǔ)音終端啟動(dòng)音頻模塊后,從麥克風(fēng)拾取語(yǔ)音進(jìn)行A/D轉換采集,把語(yǔ)音信號轉換為數字信號,經(jīng)I2S總線(xiàn)送給處理器處理,并通過(guò)以太網(wǎng)通信模塊把數據發(fā)送到IP網(wǎng)絡(luò )上;從IP網(wǎng)絡(luò )上把數據取出,經(jīng)處理器處理后,由I2S總線(xiàn)送給音頻模塊進(jìn)行D/A轉換,然后把語(yǔ)音信號送給揚聲器播放語(yǔ)音。
系統采用S3C2440微處理器實(shí)現數據處理,利用DM9000CEP以太網(wǎng)控制芯片來(lái)實(shí)現與IP網(wǎng)交互,并且采用UDA1341TS音頻芯片進(jìn)行語(yǔ)音采集及播放。其他接口電路比較常見(jiàn),這里不再贅述。
1.1 以太網(wǎng)通信模塊
主控芯片采用三星公司的S3C2440通用32位微處理器,該處理器采用ARM920內核,具有低功耗、處理計算能力強等特點(diǎn)。以太網(wǎng)控制芯片采用DAVICOM(聯(lián)杰)公司的DM9000CEP芯片。該芯片支持16位數據傳輸,集成10/100M自適應收發(fā)器,可以自動(dòng)協(xié)調功能將自動(dòng)完成配置以最大限度地適合其線(xiàn)路帶寬,且支持IEEE802.3x全雙工流量控制。
為實(shí)現DM9000CEP與S3C2440的連接,對兩者間的數據、地址、控制三大總線(xiàn)進(jìn)行連接和轉換。由于S3C2440是32位微處理器,可尋址1G的地址空間,但其只有27根地址線(xiàn),理論上只能尋址2的27次方(即128M)的地址范圍。所以引出了8根BANK線(xiàn)(對應nGCS0~nGCS7),用這8根線(xiàn)來(lái)選通和關(guān)閉不同的存儲器,實(shí)現1G地址空間的尋址。本文DM9000與S3C2440之間數據交換,是通過(guò)NGCS4線(xiàn)選擇基址為0x2000 0000來(lái)實(shí)現的。圖2給出了S3C2440與DM9000CEP的連接方法。

圖2 DM9000CEP與S3C2440的接口圖
1.2 音頻處理模塊
音頻處理芯片選用Philips公司的UDA1341TS音頻芯片,該芯片內部集成了立體聲的ADC、DAC,可以實(shí)現模擬信號和數字信號的相互轉換,并可用可編程增益控制(PGA)和自動(dòng)增益控制(AGC)來(lái)對模擬信號進(jìn)行控制,該芯片還提供數字信號處理功能。微處理器通過(guò)L3總線(xiàn)接口對音頻芯片進(jìn)行控制。其與處理器連接圖如圖3所示。

圖3 UDA1341TS與S3C2440的接口圖
UDA1341TS音頻芯片提供一組I2S總線(xiàn)接口和一組L3總線(xiàn)接口。其中,I2S總線(xiàn)接口包括音頻系統時(shí)鐘線(xiàn)(SYSCLK)、位時(shí)鐘輸入信號線(xiàn)(BCK)、字選擇輸入線(xiàn)(WS)、數據輸出信號線(xiàn)(DATAO)、數據輸入信號線(xiàn)(DATAI)。而L3總線(xiàn)接口由時(shí)鐘線(xiàn)、數據線(xiàn)以及模式選擇線(xiàn)組成。S3C 2440處理器通過(guò)這兩組總線(xiàn)接口實(shí)現與UDA1341TS芯片之間的音頻數據交互及控制。
2 軟件實(shí)現
網(wǎng)絡(luò )語(yǔ)音終端系統軟件部分主要由系統初始化、語(yǔ)音采集播放模塊、網(wǎng)絡(luò )通信模塊等部分構成。
2.1 系統初始化
使用UDA1341TS芯片與I)M9000CEP芯片之前,需要對芯片內部的寄存器進(jìn)行初始化。
DM9000CEP芯片的初始化設置工作方式:通過(guò)CMD與ADDR2引腳相連,高電平時(shí)為數據端口,低電平時(shí)為地址端口。CS與NGCS4引腳相連,選擇DM9000CEP的端口基址為0x2000 0000,偏移300個(gè)單位。發(fā)送給DM9000的地址信息固定放在0x2000 0300上,把存放在該地址的數據放在0x2000 0304,采用此方式可對DM9000CEP內部的寄存器進(jìn)行操作,如啟動(dòng)、復位、TX控制、RX控制以及MAC地址初始化等。其代碼如下:

UDA1341TS芯片的初始化工作需要與L3的總線(xiàn)連接,該L3總線(xiàn)是MCU通過(guò)GPB2、GPB3、GPB4三個(gè)引腳來(lái)模擬控制,用于處理器配置UDA1341內部的寄存器。UDA1341有兩種模式:地址模式和數據傳輸模式。地址模式表示傳輸的是地址信息,它的高6位永遠是000101,低兩位用來(lái)表明模式是狀態(tài)模式、數據0模式還是數據1模式,其中狀態(tài)模式主要用于配置UDA1341的各類(lèi)初始狀態(tài):采用頻率、ADC、DAC等;數據模式主要用于改善音頻輸入、輸出的效果、音量大小調節等。
此外,要初始化S3C2440芯片內部的特殊寄存器,對I2S、DMA、中斷相關(guān)的各個(gè)寄存器進(jìn)行初始化設置,以及各個(gè)引腳功能的設置,如把GPF7引腳設置為EINT7外部中斷功能引腳,當以太網(wǎng)網(wǎng)卡接收到數據,此引腳電平就會(huì )因中斷跳變以使程序進(jìn)入網(wǎng)卡中斷接收處理函數。
2.2 語(yǔ)音采集播放模塊
完成實(shí)時(shí)語(yǔ)音通話(huà),UDA1341TS芯片在錄音同時(shí)也必須完成放音功能。數據傳輸使用兩個(gè)DMA通道。其錄音過(guò)程為:音頻芯片從麥克風(fēng)中拾取聲音信號進(jìn)行采樣、量化、編碼,把采集到的數據通過(guò)I2S總線(xiàn)傳給DMA1通道,并通過(guò)內部總線(xiàn)傳到內存緩沖區中,之后送給處理器處理。放音:內存從處理器中獲取數據,通過(guò)內部總線(xiàn)傳給DMA2通道,之后通過(guò)I2S總線(xiàn)把數據傳給音頻芯片送給揚聲器播音。通過(guò)采用DMA通道數據傳輸方式,處理器不需要花大量時(shí)間參與數據的傳輸,有充足的時(shí)間來(lái)處理其他事件。
本設計需要實(shí)現全雙工語(yǔ)音通信功能,本終端采用雙緩存的設計方法,緩存處理機制以錄音為例,系統在使用緩存2來(lái)存放音頻設備量化好的數據時(shí),CPU則處理緩存1的數據,當設備填充完緩存2,則轉向緩存1進(jìn)行填充,此時(shí)CPU處理緩存2的數據,如此不斷循環(huán)交替,其處理過(guò)程如圖4所示。
評論