www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于AC48304的嵌入式多路語(yǔ)音記錄器

摘要AC48304C-C是Audiocodes公司的一款四通道VOIP語(yǔ)音處理器,大量地應(yīng)用于各種小型語(yǔ)音網(wǎng)關(guān)中,實(shí)現(xiàn)多種語(yǔ)音編碼、解碼及信令處理等功能。本文介紹的嵌入式系統(tǒng)基于該芯片,采用ARM處理器及嵌入式Linux操作系統(tǒng),實(shí)現(xiàn)了較低成本的嵌入式多路語(yǔ)音記錄器。數(shù)據(jù)采集在內(nèi)核級(jí)別的用戶(hù)進(jìn)程中實(shí)現(xiàn),從而保證了系統(tǒng)的實(shí)時(shí)性。
關(guān)鍵詞:AC48304;嵌入式;S3C2410;Linux;內(nèi)核空間

1. 引言

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

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

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

2. 系統(tǒng)結(jié)構(gòu)

    語(yǔ)音記錄器包括語(yǔ)音處理模塊、ARM系統(tǒng)模塊、硬盤(pán)記錄模塊、網(wǎng)絡(luò)接口模塊幾個(gè)部分。為使系統(tǒng)配置靈活,將系統(tǒng)設(shè)計(jì)為主控板和擴(kuò)展板兩個(gè)部分,在主控板上實(shí)現(xiàn)16路語(yǔ)音通道,另設(shè)計(jì)一個(gè)16通道的語(yǔ)音擴(kuò)展板,整個(gè)系統(tǒng)可以用4的倍數(shù)進(jìn)行語(yǔ)音通道的擴(kuò)展,最多達(dá)到32個(gè)語(yǔ)音通道。計(jì)算機(jī)控制部分集成S3C2410 處理器、64MB SDRAM及16MB 的FLASH,構(gòu)成一個(gè)嵌入式小系統(tǒng)。

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

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

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

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

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

圖2  PCM Highway時(shí)序

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

4. 軟件設(shè)計(jì)

4.1Linux中的驅(qū)動(dòng)程序設(shè)計(jì)

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

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

       static file_operations mpi_ctl_fops = {

       ioctl:       mpi_ctl_ioctl, //設(shè)備控制

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

       close:      mpi_ close, //關(guān)閉設(shè)備

}

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

4.2 AC48304的數(shù)據(jù)讀寫(xiě)實(shí)現(xiàn)

    每個(gè)AC48304可同時(shí)進(jìn)行4個(gè)通道的語(yǔ)音編/解碼,片內(nèi)有數(shù)據(jù)緩存區(qū),編碼后的語(yǔ)音數(shù)據(jù)先存儲(chǔ)在各通道的緩存區(qū),然后依次拷貝到輸出緩沖區(qū)。表1為本系統(tǒng)支持的幾種主要語(yǔ)音編碼格式的相關(guān)參數(shù)。其中G.711的A/u律數(shù)據(jù)量最大為64kbps,每個(gè)通道每秒有8000字節(jié)的數(shù)據(jù),而AC48304的數(shù)據(jù)讀取區(qū)的有效量為80字節(jié),即每秒鐘要進(jìn)行100次的讀取操作,對(duì)每個(gè)AC48304而言每秒鐘要進(jìn)行400次讀取操作才能保證數(shù)據(jù)及時(shí)讀取。由于語(yǔ)音編碼包是以恒定的速率產(chǎn)生的,因此每2.5毫秒必須對(duì)DSP進(jìn)行一次讀取操作。本平臺(tái)的Linux內(nèi)核中,進(jìn)程調(diào)度算法的時(shí)間單位為10毫秒,在進(jìn)程中執(zhí)行數(shù)據(jù)的讀取操作很難保證數(shù)據(jù)及時(shí)讀取,如果某個(gè)服務(wù)進(jìn)程或者是本進(jìn)程中的某個(gè)控制操作執(zhí)行時(shí)間過(guò)長(zhǎng),就會(huì)造成語(yǔ)音數(shù)據(jù)的丟失。

表1:語(yǔ)音數(shù)據(jù)特性

編碼

方式

每幀大小(byte)

每幀時(shí)長(zhǎng)(ms)

碼率

(kbps)

G.711 A/u

80

10

64

G.726(24k)

30

10

24

G.726(40k)

50

10

40

G.723.1(5.3)

20

30

5.3

G.723.1(6.3)

24

30

6.3

G.729

20

20

8

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

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

4.3 應(yīng)用軟件設(shè)計(jì)

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

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

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

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

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

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

圖3.主程序流程圖

5. 結(jié)束語(yǔ)

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

    本文作者創(chuàng)新點(diǎn):采用嵌入式實(shí)現(xiàn)系統(tǒng)設(shè)計(jì),操作系統(tǒng)及應(yīng)用軟件完全固化在FLASH中,實(shí)現(xiàn)了高穩(wěn)定性;相對(duì)基于工控機(jī)的語(yǔ)音記錄器,本文設(shè)計(jì)的系統(tǒng)具有低成本、低功耗的特點(diǎn);在本文中創(chuàng)新性地將VOIP語(yǔ)音處理器AC-48304應(yīng)用在多路語(yǔ)音記錄器中;在軟件是設(shè)計(jì)中,在LINUX操作系統(tǒng)內(nèi)核空間實(shí)現(xiàn)數(shù)據(jù)采集功能,從而保證了系統(tǒng)數(shù)據(jù)采集的實(shí)時(shí)性要求。

參考文獻(xiàn):

[1].華恒公司. HHARM2410平臺(tái)手冊(cè). 2004.

[2].AC4830xC-C Vopp Designer's Manual.pdf. 2003.

[3].吳姣梅,李紅艷,吳保榮,嚴(yán)明.改善嵌入式Linux實(shí)時(shí)性能的方法研究.微計(jì)算機(jī)信息.2006年,02期,72頁(yè).

[4].K.Wall,等.GUN/LINUX編程指南.王勇等譯,北京:清華大學(xué)出版社,2000.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

經(jīng)過(guò)幾十年發(fā)展,嵌入式技術(shù)已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專(zhuān)業(yè)性強(qiáng)的屬性,讓很多非嵌入式領(lǐng)域的同學(xué)望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來(lái)越多領(lǐng)域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領(lǐng)域,不僅吸引...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 技術(shù)

隨著IT技術(shù)飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進(jìn)入了“物聯(lián)網(wǎng)”時(shí)代。物聯(lián)網(wǎng)中需要的大量設(shè)備不在依賴(lài)人與人之間的交互產(chǎn)生聯(lián)系,更多通過(guò)協(xié)議、通信、程序設(shè)計(jì)等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計(jì)算機(jī)的智能但并不以通...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計(jì)算機(jī)

要問(wèn)機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開(kāi)發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車(chē)

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國(guó)高端家電品牌G50峰會(huì)》于浙江寧波落幕,來(lái)自?xún)砂儆嗝袠I(yè)大咖、專(zhuān)家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

SAIHUB CAB 025M成功獲得安全試驗(yàn)所UL美國(guó)與加拿大認(rèn)證證書(shū) 新加坡2022年10月17日 /美通社/ -- SAI.TECH Global Corporation("SAI.TECH"...

關(guān)鍵字: AI BSP PS 清潔能源

鄭州2022年10月17日 /美通社/ -- 近日,《福布斯》發(fā)布了"2022年全球最佳雇主榜單"(The World's Best Employers 2022),中國(guó)平安再度上榜并排名全...

關(guān)鍵字: 福布斯 ST TI BSP

通過(guò)第二項(xiàng)3nm設(shè)計(jì)選用擴(kuò)展技術(shù)領(lǐng)先地位 第三季度強(qiáng)勁的貿(mào)易和設(shè)計(jì)選用反映出我們結(jié)合了IP和定制硅的混合業(yè)務(wù)模式 自2022年9月1日起,OpenFive首次并入集團(tuán) 盡管宏觀環(huán)境困難,但管理層仍對(duì)業(yè)務(wù)...

關(guān)鍵字: BSP ALPHA PEN Silicon

歐洲藥品管理局人用藥品管理委員會(huì) (CHMP) 的積極建議是基于 EFFISAYIL® 1 研究結(jié)果,該研究是針對(duì)泛發(fā)性膿皰型銀屑病 (GPP) 發(fā)作患者的最大的臨床研究[1] 與斑塊狀銀屑病不同,GP...

關(guān)鍵字: HM BSP GP FOR

流體動(dòng)壓滑動(dòng)軸承為風(fēng)機(jī)發(fā)展書(shū)寫(xiě)嶄新篇章 軸承滑動(dòng)層增材制造與精加工為工業(yè)級(jí)大規(guī)模生產(chǎn)鋪平道路 軸承設(shè)計(jì)從綜合性系統(tǒng)理念出發(fā) 德國(guó)施韋因富特和漢堡2022年10月17日 /美通社/ -- 舍弗勒推出了采...

關(guān)鍵字: 齒輪箱 滑動(dòng)軸承 風(fēng)力渦輪機(jī) BSP

上海2022年10月17日 /美通社/ -- Brother內(nèi)置墨倉(cāng)彩色噴墨一體機(jī)DCP-C421W新上市。此次Brother創(chuàng)新引入"按需打印,按頁(yè)付費(fèi)"...

關(guān)鍵字: DC 打印機(jī) BSP DESIGN

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉