<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于A(yíng)C48304的嵌入式多路語(yǔ)音記錄器

基于A(yíng)C48304的嵌入式多路語(yǔ)音記錄器

——
作者: 時(shí)間:2007-03-27 來(lái)源:控制工程網(wǎng) 收藏
1. 引言 

數字在安全、監控方面有很多應用。一些傳統的設計方案基于工控機,用數據采集卡實(shí)現語(yǔ)音的A/D轉換,用軟件實(shí)現語(yǔ)音編解碼,這種方案成本高、功耗大。如果采用嵌入式的設計方案,可以實(shí)現同樣的功能,并且具有低成本,低功耗的特點(diǎn)。

普通的低成本嵌入式處理器性能不高,不足以實(shí)現的實(shí)時(shí)編碼、解碼,需要用專(zhuān)門(mén)的語(yǔ)音處理芯片完成這一工作?;贒SP自主設計語(yǔ)音編碼器是一種方法,但工作量大。廣泛應用于各種小型VOIP網(wǎng)關(guān)中,價(jià)格低廉,是一種很好的替代方案。同時(shí)還具有DTMF識別和靜音檢測等功能,便于實(shí)現電話(huà)號碼識別和語(yǔ)音的自動(dòng)記錄。

ARM是一種應用廣泛的嵌入式處理器,Samsung、Atmel等廠(chǎng)家生產(chǎn)的ARM處理器接口豐富,技術(shù)支持全面。ARM處理器價(jià)格低、性?xún)r(jià)比高,向下取代了大量的應用,向上滲透高端嵌入式處理器的市場(chǎng)。在本中,采用了Samsung的ARM9處理器S3C2410,操作系統則采用了嵌入式linux。

2. 系統結構

語(yǔ)音包括語(yǔ)音處理模塊、ARM系統模塊、硬盤(pán)記錄模塊、網(wǎng)絡(luò )接

口模塊幾個(gè)部分。為使系統配置靈活,將系統設計為主控板和擴展板兩個(gè)部分,在主控板上實(shí)現16路語(yǔ)音通道,另設計一個(gè)16通道的語(yǔ)音擴展板,整個(gè)系統可以用4的倍數進(jìn)行語(yǔ)音通道的擴展,最多達到32個(gè)語(yǔ)音通道。計算機控制部分集成S3C2410 處理器、64MB SDRAM及16MB 的FLASH,構成一個(gè)嵌入式小系統。

語(yǔ)音CODEC采用AMD的LE58QL021,該器件是3.3V單電壓用戶(hù)線(xiàn)語(yǔ)音處理器,在小型語(yǔ)音網(wǎng)關(guān)中是的常用搭配,支持4通道語(yǔ)音AD/DA,支持E1 PCM Highway,能與AC48304實(shí)現無(wú)縫連接。LE58QL021的工作模式可軟件編程控制,ARM通過(guò)MPI(Microprocessor Interface)串行控制總線(xiàn)設置LE58QL021的各種工作參數。

基于DM9000網(wǎng)絡(luò )控制器,系統實(shí)現10/100Mbps自適應以太網(wǎng)接口,Linux操作系統提供設備驅動(dòng)支持。IDE接口則是由一片CPLD實(shí)現,硬盤(pán)用于語(yǔ)音的本地記錄。主要部分電路原理見(jiàn)圖1。

  
語(yǔ)音處理模塊
圖1 語(yǔ)音處理模塊的硬件電路原理圖

3. AC48304語(yǔ)音處理器

AC48304是AudioCodes公司基于DSP設計的一個(gè)四通道語(yǔ)音處理器,支持多種標準、多種碼率的G系列語(yǔ)音編碼器,如G.723.1,G.711,G.726和G.729等,支持T.38傳真中繼和其他語(yǔ)音信號處理功能。在系統中,ARM通過(guò)CPU局部總線(xiàn)實(shí)現對AC48304的控制及數據交換。AC48304與LE58QL021之間通過(guò)E1 PCM Highway接口實(shí)現多通道數字語(yǔ)音接口。E1接口由2.048Mhz時(shí)鐘驅動(dòng),有0~31共32個(gè)8位時(shí)隙,工作時(shí)序如圖2所示。

  
PCM Highway時(shí)序
圖2 PCM Highway時(shí)序

AC48304是一種專(zhuān)用的語(yǔ)音處理DSP芯片,需要運行相應的DSP程序。正常運行前, AC48304有兩個(gè)程序需要下載:kernel(內核)程序和application(應用)程序。kernel程序是個(gè)只有幾百字節的小程序,完成DSP的初始化工作,為下載應用程序做準備。application程序則完成AC48304的所有功能,在kernel程序程序下載完成后,才可以下載application程序。AC48304有4個(gè)工作模式:內核下載模式、程序下載模式、初始化模式、運行模式。其中運行模式有兩個(gè)狀態(tài):空閑狀態(tài)和激活狀態(tài),用戶(hù)只能在空閑狀態(tài)改變芯片的工作參數。

4. 軟件設計

4.1Linux中的驅動(dòng)程序設計

操作系統采用的是嵌入式Linux操作系統。Linux具有效率高、內核小的優(yōu)點(diǎn),且開(kāi)放源代碼,完全免費。在Linux操作系統下,應用程序不能直接訪(fǎng)問(wèn)硬件,盡管Linux在A(yíng)RM平臺上有較完整的板級支持包,但在該系統的開(kāi)發(fā)工作中仍然要完成部分設備的驅動(dòng)程序設計,包括AC48304驅動(dòng)程序、LE58QL021驅動(dòng)程序、S-EEPROM驅動(dòng)程序等。

設備驅動(dòng)程序要為應用軟件提供設備打開(kāi)、關(guān)閉、設備控制及數據讀/寫(xiě)等接口, 即一些類(lèi)似于open、close、read和write的函數,在主程序中直接采用文件讀寫(xiě)的方式實(shí)現數據的收發(fā)。LE58QL021與ARM處理器之間采用MPI串行控制總線(xiàn),MPI驅動(dòng)接口結構定義如下:

  static file_operations mpi_ctl_fops = {

  ioctl:  mpi_ctl_ioctl, //設備控制

  open:  mpi_open, //打開(kāi)設備

  close:  mpi

        _ close, //關(guān)閉設備

  }

linux提供ioremap函數將I/O內存資源的物理地址映射到核心虛地址空間,然后可像操作寄存器那樣進(jìn)行數據讀寫(xiě)。編寫(xiě)驅動(dòng)程序的時(shí)候,必須提供兩個(gè)函數,一個(gè)是module_init(),insmod在加載此模塊的時(shí)候自動(dòng)調用,負責進(jìn)行設備驅動(dòng)程序的初始化工作,一個(gè)函數是module_exit,在模塊 
被卸載時(shí)調用,負責進(jìn)行設備驅動(dòng)程序的清除工作。

4.2 AC48304的數據讀寫(xiě)實(shí)現

每個(gè)AC48304可同時(shí)進(jìn)行4個(gè)通道的語(yǔ)音編/解碼,片內有數據緩存區,編碼后的語(yǔ)音數據先存儲在各通道的緩存區,然后依次拷貝到輸出緩沖區。表1為本系統支持的幾種主要語(yǔ)音編碼格式的相關(guān)參數。其中G.711的A/u律數據量最大為64kbps,每個(gè)通道每秒有8000字節的數據,而AC48304的數據讀取區的有效量為80字節,即每秒鐘要進(jìn)行100次的讀取操作,對每個(gè)AC48304而言每秒鐘要進(jìn)行400次讀取操作才能保證數據及時(shí)讀取。由于語(yǔ)音編碼包是以恒定的速率產(chǎn)生的,因此每2.5毫秒必須對DSP進(jìn)行一次讀取操作。本平臺的Linux內核中,進(jìn)

程調度算法的時(shí)間單位為10毫秒,在進(jìn)程中執行數據的讀取操作很難保證數據及時(shí)讀取,如果某個(gè)服務(wù)進(jìn)程或者是本進(jìn)程中的某個(gè)控制操作執行時(shí)間過(guò)長(cháng),就會(huì )造成語(yǔ)音數據的丟失。

  表1:語(yǔ)音數據特性
語(yǔ)音數據
Linux中程序運行的環(huán)境分為內核空間和用戶(hù)空間,內核空間的程序優(yōu)先級高于用戶(hù)空間。為保證編碼數據被及時(shí)讀取,需在內核級別的進(jìn)程中定時(shí)讀取AC48304產(chǎn)生的數據。有兩種方式可將用戶(hù)程序加入到內核空間中運行:修改Linux內核源代碼,直接將用戶(hù)程序代碼編譯到內核中;利用Linux的模塊機制,動(dòng)態(tài)的將用戶(hù)程序代碼添加到內核空間中運行。第一種方法實(shí)現難度比較大,而且容易出錯。第二種方法實(shí)現難度小,效果與第一種相同,本系統中采用的是第二種方法。

將AC48304的讀取操作作為驅動(dòng)程序進(jìn)行設計,使用insmod命令動(dòng)態(tài)加載到內核中去,在定時(shí)中斷的服務(wù)函數中讀取AC48304的數據。S3C2410中有5個(gè)用戶(hù)可編程的時(shí)鐘中斷,中斷優(yōu)先級別高,中斷的頻率可編程控制,其中時(shí)鐘中斷Timer3已用于DMA控制,Tmer4用于進(jìn)程調度。本系統的程序設計中使用Timer2,通過(guò)配置相關(guān)控制寄存器將Timer2的中斷頻率設為500HZ,適當的增加讀取查詢(xún)操作頻率,保證數據及時(shí)讀取。中斷服務(wù)函數是由內核來(lái)執行的,優(yōu)先級高于用戶(hù)程序,可保證讀取操作的實(shí)時(shí)性。為AC48304的每個(gè)通道分配一個(gè)數據緩沖區,定時(shí)中斷函數中讀取的數據先保存在緩沖區中,用戶(hù)程序通過(guò)讀取該緩沖區獲得語(yǔ)音數據,這樣對外部用戶(hù)而言,語(yǔ)音數據沒(méi)有丟失,語(yǔ)音延遲在毫秒級別,完全可以滿(mǎn)足需求。

4.3 應用軟件設計

將應用程序及驅動(dòng)程序文件加入文件系統中,修改有關(guān)啟動(dòng)的配置文件,使得系統啟動(dòng)完畢時(shí)自動(dòng)加載目標程序,這樣每次設備啟動(dòng)時(shí)將自動(dòng)進(jìn)入應用程序。主程序流程如圖3所示,主程序的功能主要是:

u 系統配置:系統的配置表存儲在一片S-EEPROM中,配置表可以通過(guò)串口終端或者網(wǎng)絡(luò )在線(xiàn)配置。

u 初始化系統:包括向DSP下載內核程序和應用程序,啟動(dòng)DSP及LE58QL021等。

u 語(yǔ)音數據讀寫(xiě):通過(guò)DSP的HPI總線(xiàn)讀取DSP數據實(shí)現語(yǔ)音采集,通過(guò)HPI把數據寫(xiě)入DSP實(shí)現語(yǔ)音回放。

u 數據存儲:根據錄音計劃將需要錄音的語(yǔ)音數據保存到硬盤(pán)中。

u 命令處理:包括選擇語(yǔ)音通道命令、回放命令、校時(shí)命令、增益調節命令、配置表傳輸命令、錄音數據上傳命令等。

  主程序
圖3.主程序流程圖

5. 結束語(yǔ)

本記錄器最多支持32路語(yǔ)音實(shí)時(shí)處理,在硬盤(pán)上實(shí)現長(cháng)時(shí)間錄音,并可通過(guò)10/100Mbps以太網(wǎng)實(shí)現數據上傳和管理。經(jīng)測試本記錄器可以很好的完成語(yǔ)音數據的采集、壓縮、存儲、解壓縮和回放,內核級別的用戶(hù)進(jìn)程運行正常,保證了整個(gè)系統的實(shí)時(shí)性。該語(yǔ)音記錄器具有低成本、低功耗、結構精簡(jiǎn)、使用簡(jiǎn)單的特點(diǎn),具有很好的實(shí)用價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>