999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

機車語音錄音系統的設計與實現

2013-04-12 00:00:00林永碩
現代電子技術 2013年4期

摘 要: 針對機車安全對語音錄音系統性能的要求,設計了由ARM微處理器與音頻處理芯片組成的嵌入式語音錄音系統。介紹了錄音系統的硬件設計方案及軟件設計要點?;贏RM處理器,應用和音頻芯片實現了對語音音頻數據流及其控制信號的傳輸,采用分段緩存技術改進了緩存管理方式,提高了系統處理速度,滿足了語音錄音實時性的要求。通過實際測試,證明該系統達到了良好的錄音效果。

關鍵詞: 微處理器; 音頻芯片; 緩存區; 設備驅動

中圖分類號: TN919?34; TP368.1 文獻標識碼: A 文章編號: 1004?373X(2013)04?0016?03

0 引 言

機車運行安全關系到旅客人身安全和財產安全,同時影響跌路系統的運行效率,因此研制一套實時性好,使用方便的機車語音錄音量系統非常重要。

語音可以采用模擬錄音方式,也可以采用工控機進行,前者使用不方便,后者的成本很高[1]。

針對機車語音錄音的要求,設計了一種實時性好、錄放方便的機車錄音系統。系統硬件主要采用基于Atmel公司的ARM處理器和飛利浦公司的音頻處理芯片。詳細介紹了硬件設計方案,和Linux環境下語音驅動程序的實現方法。

1 硬件設計

硬件系統以AT91系列ARM處理器為核心構建。

1.1 處理器簡介

Amtel公司的AT91系列ARM處理器是ARM9處理器為核心,擴展有DSP指令集,內置Java加速器,同時集成有JTAG?ICE和UART調試接口,能夠實現代碼調試,因此基于AT91系列處理器進行系統開發和調試非常方便[2]。

1.2 音頻數據總線簡介

音頻數據總線[3]是INTEL公司定義的一種面向音頻處理的系統總線,簡稱IIS(Intel IC Sound),主要音頻數據傳輸,并提供標準編解碼器。

IIS由三條串行線組成:數據線、聲道選擇線和時鐘,而編碼、控制等其他信號則另行傳送。

1.3 設計方案

基于AT91系列處理器AT91SAM9261和音頻芯片UDA1341的總體設計方案如圖1所示,其中UDA1341支持IIS,具有PGA(可編程增益)和數字AGC功能。

AT91SAM9261內部具有SSI(串行接口控制器),支持多種串行通信協議,能直接與外部8位或16位的音頻芯片相連接。通過設置AT91SAM9261的PDC控制器選擇DMA傳輸模式,從而使語音數據發送和接收可以同時進行。

音頻芯片UDA1341有兩組音頻接口,每組都有VINL2和VINR2左右兩個聲道,接口與ARM處理器的連接如圖2所示。VINR2可以用PGA和AGC對語音信號進行調理,同時可以通過軟件編程方法對語音音量的大小進行調節。

在硬件設計中,使用2個DAM通道對語音數據流進行錄放。錄音時語音數據流由IIS總線通過RD傳入,經過DMA通道1存入內部存儲器;放音時語音頻數據流從內存中通過DMA通道2傳入數據寄存器,然后通過TD將數據傳給UDA1341TS。由于DMA控制器沒有內置的緩存區域,所以需要在驅動程序編寫中申請DMA緩沖區,由于需要進行同時進行錄放,所以DMA緩存區定義為雙緩存結構。

ARM處理器的TK,TF,RD和TD四個接口分別對應連接與語音芯片的BCK,WS,DATAO和DATA1,時鐘(SYSCLOCK)則由ARM處理器的PCK2提供。

UDA1341的L3DATA(數據線)、L3MODE(模式選擇線)和L3CLOCK(時鐘)3個信號為內部L3總線接口,用于傳輸控制信號。L3MODE與ARM9處理器的PA7 I/O口相連、L3CLOCK與ARM9處理器的PA8相連,L3DATA與ARM9處理器的PA9相連, ARM處理器通用這3個I/O口線模擬L3總線時序和相應的總線協議,對語音處理參數和控制參數進行配置。

2 軟件設計

設備驅動程序是Linux操作系統內核的重要組成部分,通過驅動程序用戶可以對硬件設備操作。file_operations是Linux設備控制塊中重要的數據結構,用于訪問硬件設備。用戶對設備進行操作時,先通過用戶定義的設備號找到相應的設備驅動程序,然后讀取file_operations中相應的函數指針,然后把控制權交給該函數。

驅動程序通過硬件控制實現對語音數據流的錄制和播放[4]。語音驅動程序提供了2個標準接口:

(1)DSP接口:控制語音的錄制或播放。具體定義為:

static struct file_ops speech_fops = {

llseek:speech_llseek, //查找定位

write: speech _write, //播放

read: speech _read, //錄制

poll: speech _poll, //選擇

ioctl: speech _ioctl, //語音控制接口

open: device_open, //打開設備

release:device_release, //關閉設備

};

(2)混頻器:用于對語音進行混音處理。具體定義為:

static struct file_ops mixer_fops = {

ioctl: mixer_ioctl, //混音控制

open: mixer_open, //打開混音設備

release: mixer_release, //關閉混音設備

};

混合器的音效控制通過mixer_fops結構體的指針調用相應的函數來實現。

驅動程序中的DSP接口和混頻器設備文件分別定義為dev/dsp,dev/mixer。

2.1 設備初始化

調和初始化主要完成通用I/O口的設置、同步串行控制器的初始化、L3總線的初始化、DMA的初始化和初始化音頻芯片的采樣頻率及音量,并對語音設備進行注冊。這些操作都是通過初始化模塊module_init( )調用初始化函數uda1341_ init( )來實現的。

2.2 DMA設計

驅序程序中通過雙緩沖DMA分段方法,使讀寫可以同時進行,從而提高了語音的錄制和播放速度。若只設置一個DMA緩存區,則在寫操作時需要等待緩存區的數據傳輸完后才能進行后續操作,因此讀操作被阻塞,大大降低了語音處理速度。

audio_buf_t和audio_stream_t是管理循環緩存區的兩個結構,如圖3所示。具體的工作過程是:將申請到的緩存區分成N個塊,先寫塊1,然后再寫塊2,這樣就不管塊1的數據是否被傳輸完,當寫完第N個塊后,又開始回到第一個,而此時第一個緩存區相當有可能已傳輸完畢。同時驅動程序還提供了ioctl接口,給上層調用,這樣上層可以調用ioctl,根據語音數據流量來調整緩存區數據段的大小和塊數(N),以取得最好的傳輸效果。

2.3 錄放操作的實現

設備驅動程序控制語音的錄制和播放,是驅動程序的核心。錄制和播放操作分別對應于struct file_ops 結構中的speech_read函數和speech_write函數。

錄音和播放的實現過程相似,故只對錄音過程進行討論:驅動程序首先配置DMA緩存區,錄音時讀入語音數據塊(大小為count),然后將DMA中的語音數據流按照count大小傳送到用戶的緩沖區Buffer中。每讀完一個塊后將塊插入到DMA隊列中等待下次數據傳輸。最后驅動程序改變DMA緩存塊指針,使其指向下一個DMA塊繼續讀取數據。

2.4 設備的卸載

device_exit()函數用于卸載設備,調用注銷函數uda1341_exit()完成。具體過程是:需要注銷設備時,首先輸入注冊設備時所得到的設備號,然后釋放驅動程序申請使用的所有資源。

2.5 語音測試

為了測試語音驅動程序工作的正確性,需要使用音頻播放器。本文使用mplayer播放器,將mplayer原碼在Linux環境下重新編譯,然后寫入SD卡中,經過Linux的mount指令將mplayer播放器掛載到根文件系統中。在超級終端下輸入Linux命令:root@at91sam9261: /mou nt/sd$:./mplayer test.mp3,就會聽到播放的聲音。超級終端反饋信息如圖4所示,其中test.mp3為要測試的音頻文件。

3 結 語

本文基于ARM9處理器與音頻芯片UDA1341構建機車語音錄音和播放系統。文中主要對硬件系統的設計方案、語音錄制和播放驅動程序的編寫要點和雙緩沖DMA分段管理方法進行了仔細說明。目前,該系統已應用于列車電臺之間的語音通話錄音,實踐證明達到了較好的錄放音效果。

參考文獻

[1] 范新,陳生惠.LY?Ⅰ型列車無線調度電話機車電臺語音記錄裝置[J].中國鐵路,2001(6):57?58.

[2] Atmel Corporation. AT91SAM9261 datasheet rev. 1.09.02 [S]. US: Atmel Corporation, 2007.

[3] 吳平,曹曉琳,丁鐵夫.基于ARM和DSP的語音通訊系統設計[J].計算機測量與控制,2005,13(12):1423?1426.

[4] 奇浩淳.基于SEP4020的嵌入式音頻系統設計[J].計算機工程應用技術,2008(4):964?966,968.

[5] 商斌.Linux設備驅動開發入門與編程實踐[M].北京:電子工業出版社,2009.

[6] 易紅,李曉濤.LY?07語音錄音裝置音頻驅動的設計與實現[J].機車電傳動,2010(3):24?25.

[7] 林永碩.基于USB的音頻信號分析儀的設計[J].現代電子技術,2012,35(11):60?63.

[8] 王維.基于WinCE的車載電臺錄音裝置的設計[M].北京:北京交通大學出版社,2010.

[9] 劉彥明.嵌入式無線電臺檢測終端的設計與實現[M].濟南:山東大學出版社,2010.

[10] CRAIG Hollabaugh. Embeded Linux hardware software and interfacing [M].北京:電子工業出版社,2003.

主站蜘蛛池模板: 国产微拍精品| 无码中文AⅤ在线观看| 伊人久久大香线蕉影院| 日韩不卡免费视频| 五月天香蕉视频国产亚| 91免费观看视频| 亚洲精品爱草草视频在线| 亚洲精品视频免费看| 91精品专区国产盗摄| 最新国产精品第1页| 无码又爽又刺激的高潮视频| 久久久噜噜噜| 国产肉感大码AV无码| 久久99热这里只有精品免费看| 亚洲精品卡2卡3卡4卡5卡区| 2020亚洲精品无码| 草草影院国产第一页| 亚洲人成色在线观看| 久久久久青草线综合超碰| 亚洲欧美一区二区三区图片| 少妇人妻无码首页| av一区二区三区高清久久| 97久久免费视频| 中文字幕在线看| 欧美日韩免费| 福利在线一区| 久久久精品无码一区二区三区| 全部无卡免费的毛片在线看| 国产黄色片在线看| 凹凸国产分类在线观看| 久久99久久无码毛片一区二区| 亚洲男人天堂2020| 亚洲精选高清无码| 国产一级无码不卡视频| 亚洲全网成人资源在线观看| 中字无码av在线电影| 日本人妻一区二区三区不卡影院 | 久久黄色免费电影| 亚洲专区一区二区在线观看| 亚洲成人一区二区三区| 日韩精品专区免费无码aⅴ| 久久久久国产精品嫩草影院| 伊人大杳蕉中文无码| 亚洲欧美成人综合| 激情视频综合网| 久久精品66| 久久综合伊人77777| av一区二区无码在线| 欧美日本视频在线观看| 91在线精品免费免费播放| 亚洲Av综合日韩精品久久久| 亚洲成人一区二区| 久久精品娱乐亚洲领先| 日韩经典精品无码一区二区| 成人福利在线免费观看| 天天综合网站| 欧美日韩一区二区三| 中文纯内无码H| 亚洲欧洲日本在线| 在线观看国产小视频| 这里只有精品在线播放| 亚洲精品午夜无码电影网| 国产精品私拍在线爆乳| 国产夜色视频| 99视频在线观看免费| 日韩无码黄色网站| 国产欧美日韩综合一区在线播放| 91久久偷偷做嫩草影院精品| 亚洲欧美极品| 青青青伊人色综合久久| 免费在线视频a| 日本一区高清| 国产成人三级| 国产女人喷水视频| 欧美a在线| 欧美视频在线第一页| 亚洲中文字幕97久久精品少妇| 无码高潮喷水专区久久| 一级福利视频| 国产一区二区三区免费观看| 亚洲中文字幕久久无码精品A| 欧美精品v欧洲精品|