首頁(yè) > 新聞 > 國(guó)內(nèi) >

基于ARM9的嵌入式網(wǎng)絡(luò)語音通信終端

2014-11-24 14:35:17   作者:   來源:EDN電子技術(shù)設(shè)計(jì)   評(píng)論:0  點(diǎn)擊:


  2 軟件實(shí)現(xiàn)

  網(wǎng)絡(luò)語音終端系統(tǒng)軟件部分主要由系統(tǒng)初始化、語音采集播放模塊、網(wǎng)絡(luò)通信模塊等部分構(gòu)成。

  2.1 系統(tǒng)初始化

  使用UDA1341TS芯片與I)M9000CEP芯片之前,需要對(duì)芯片內(nèi)部的寄存器進(jìn)行初始化。

  DM9000CEP芯片的初始化設(shè)置工作方式:通過CMD與ADDR2引腳相連,高電平時(shí)為數(shù)據(jù)端口,低電平時(shí)為地址端口。CS與NGCS4引腳相連,選擇DM9000CEP的端口基址為0x2000 0000,偏移300個(gè)單位。發(fā)送給DM9000的地址信息固定放在0x2000 0300上,把存放在該地址的數(shù)據(jù)放在0x2000 0304,采用此方式可對(duì)DM9000CEP內(nèi)部的寄存器進(jìn)行操作,如啟動(dòng)、復(fù)位、TX控制、RX控制以及MAC地址初始化等。其代碼如下:

  UDA1341TS芯片的初始化工作需要與L3的總線連接,該L3總線是MCU通過GPB2、GPB3、GPB4三個(gè)引腳來模擬控制,用于處理器配置UDA1341內(nèi)部的寄存器。UDA1341有兩種模式:地址模式和數(shù)據(jù)傳輸模式。地址模式表示傳輸?shù)氖堑刂沸畔,它的?位永遠(yuǎn)是000101,低兩位用來表明模式是狀態(tài)模式、數(shù)據(jù)0模式還是數(shù)據(jù)1模式,其中狀態(tài)模式主要用于配置UDA1341的各類初始狀態(tài):采用頻率、ADC、DAC等;數(shù)據(jù)模式主要用于改善音頻輸入、輸出的效果、音量大小調(diào)節(jié)等。

  此外,要初始化S3C2440芯片內(nèi)部的特殊寄存器,對(duì)I2S、DMA、中斷相關(guān)的各個(gè)寄存器進(jìn)行初始化設(shè)置,以及各個(gè)引腳功能的設(shè)置,如把GPF7引腳設(shè)置為EINT7外部中斷功能引腳,當(dāng)以太網(wǎng)網(wǎng)卡接收到數(shù)據(jù),此引腳電平就會(huì)因中斷跳變以使程序進(jìn)入網(wǎng)卡中斷接收處理函數(shù)。

  2.2 語音采集播放模塊

  完成實(shí)時(shí)語音通話,UDA1341TS芯片在錄音同時(shí)也必須完成放音功能。數(shù)據(jù)傳輸使用兩個(gè)DMA通道。其錄音過程為:音頻芯片從麥克風(fēng)中拾取聲音信號(hào)進(jìn)行采樣、量化、編碼,把采集到的數(shù)據(jù)通過I2S總線傳給DMA1通道,并通過內(nèi)部總線傳到內(nèi)存緩沖區(qū)中,之后送給處理器處理。放音:內(nèi)存從處理器中獲取數(shù)據(jù),通過內(nèi)部總線傳給DMA2通道,之后通過I2S總線把數(shù)據(jù)傳給音頻芯片送給揚(yáng)聲器播音。通過采用DMA通道數(shù)據(jù)傳輸方式,處理器不需要花大量時(shí)間參與數(shù)據(jù)的傳輸,有充足的時(shí)間來處理其他事件。

  本設(shè)計(jì)需要實(shí)現(xiàn)全雙工語音通信功能,本終端采用雙緩存的設(shè)計(jì)方法,緩存處理機(jī)制以錄音為例,系統(tǒng)在使用緩存2來存放音頻設(shè)備量化好的數(shù)據(jù)時(shí),CPU則處理緩存1的數(shù)據(jù),當(dāng)設(shè)備填充完緩存2,則轉(zhuǎn)向緩存1進(jìn)行填充,此時(shí)CPU處理緩存2的數(shù)據(jù),如此不斷循環(huán)交替,其處理過程如圖4所示。

  圖4 雙緩存處理過程

  其錄音與播放過程都采用雙緩存設(shè)計(jì)方案,以錄音為例,程序流程圖如圖5所示。

  圖5 錄音程序流程圖

分享到: 收藏

專題