• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ARM的音頻錄放系統(tǒng)設(shè)計(jì)

      2017-04-13 23:15王玲玲丁學(xué)用
      中國新技術(shù)新產(chǎn)品 2017年9期

      王玲玲+丁學(xué)用

      摘 要:本文給出了基于ARM體系結(jié)構(gòu)的音頻錄放系統(tǒng)總體設(shè)計(jì)方案。搭建硬件平臺、構(gòu)建交叉開發(fā)環(huán)境,對Linux操作系統(tǒng)內(nèi)核移植,根據(jù)Linux2.4內(nèi)核UDA1380音頻芯片結(jié)構(gòu),設(shè)計(jì)了符合系統(tǒng)要求的UDA1380音頻驅(qū)動、矩陣鍵盤驅(qū)動,基于音頻驅(qū)動系統(tǒng)調(diào)用函數(shù),設(shè)計(jì)與開發(fā)用戶應(yīng)用層程序,實(shí)現(xiàn)了音頻錄放系統(tǒng)的設(shè)計(jì)要求。

      關(guān)鍵詞:Linux;S3C2410;UDA1380

      中圖分類號:TP391 文獻(xiàn)識別碼:A

      0.引言

      當(dāng)今社會是一個數(shù)字化信息迅猛發(fā)展的社會,語音信息的數(shù)字化處理技術(shù)得到了全社會的普遍認(rèn)可和廣泛的應(yīng)用。因此生產(chǎn)的語音信息處理器的性能也隨著科學(xué)技術(shù)的快速發(fā)展而愈來愈好。數(shù)字語音錄放系統(tǒng)是指利用數(shù)字技術(shù)對語音信號進(jìn)行采集、處理,并且在一定的存儲設(shè)備中進(jìn)行存儲,而且可在需要時進(jìn)行輸出。與模擬設(shè)備相比較,數(shù)字設(shè)備更趨向于集成化、微型化,且成本低、穩(wěn)定性強(qiáng)、操作簡單方便。使得數(shù)字語音錄放系統(tǒng)廣泛地滲透到儀器儀表、人工智能、電話的錄放音、車輛的到站提示音、移動電話機(jī)以及其他便攜式電子產(chǎn)品、監(jiān)控環(huán)境中使用的語音采集系統(tǒng)、智能玩具等多種領(lǐng)域。

      本文研究的意義在于它能用于實(shí)時監(jiān)聽、信息提示,會議記錄,站名廣播等,能夠省去聽眾現(xiàn)場記錄,節(jié)約筆墨紙張,可使聽眾專心聽講,可按設(shè)定時間功能自動播放提示預(yù)警信息等。

      1.系統(tǒng)總體設(shè)計(jì)(圖1)

      1.1 硬件整體結(jié)構(gòu)

      本系統(tǒng)的硬件電路部分將由以下器件組成:微處理器S3C2410、內(nèi)存、24bit編解碼芯片UDA1380、時鐘、電源、矩陣鍵盤等。內(nèi)存包括16MB的NOR FLASH和32MB的SDRAM。S3C2410內(nèi)置了一個IIC控制器,控制器通過IIC總線控制音頻信號。FIFO(First In First Out)是先進(jìn)先出電路,在系統(tǒng)中引導(dǎo)數(shù)據(jù)先進(jìn)先出功能,作為一個臨時存儲數(shù)據(jù)的音頻數(shù)據(jù)緩沖區(qū),通過S3C2410內(nèi)置IIS控制器共同工作實(shí)現(xiàn)音頻數(shù)據(jù)傳輸。由于S3C2410有一個內(nèi)置DMA控制器,系統(tǒng)可以應(yīng)用DMA傳輸和緩存段來提高音頻數(shù)據(jù)實(shí)時性處理性能,系統(tǒng)硬件結(jié)構(gòu)如圖2所示。

      1.2 音頻接口電路設(shè)計(jì)

      UDA1380的L3總線接口用來作為混音器的控制接口,微處理器通過此接口來配置UDA1380中的數(shù)字音頻參數(shù)和系統(tǒng)控制參數(shù),以方便對輸入輸出音頻信號的音量大小、高低音和靜音等功能進(jìn)行控制。L3總線包括微處理器接口模式線(L3MODE)、微處理器接口時鐘線(L3CLOCK)以及微處理器接口數(shù)據(jù)線(L3DATA)三根接線。通過對L3模式的控制來選擇使用哪種方式傳輸數(shù)據(jù),當(dāng)L3選取模式0時,選擇IIC總線進(jìn)行傳輸數(shù)據(jù);當(dāng)L3選取模式1時,選擇L3進(jìn)行傳輸數(shù)據(jù)。在系統(tǒng)設(shè)計(jì)時選用IIC總線進(jìn)行傳輸數(shù)據(jù)和控制信號,因此把L3模式直接接地,即是使L3MODE=0。而關(guān)于L3的余下兩根接線,L3CLOCK與IIC的本身時鐘信號線鏈接,L3DATA與IIC的本身數(shù)據(jù)傳輸線鏈接。這里需要特別注意的是,為了保證電路可以安全使用,在連接UDA1380的兩個引腳時都要加一個上拉電阻,并且外接+3.3V的電源。

      在本次系統(tǒng)設(shè)計(jì)中,UDA1380的音頻輸入設(shè)備選取為麥克風(fēng),輸出設(shè)備任選揚(yáng)聲器或者耳機(jī)。接線情況,麥克的左右聲道分別連接UDA1380TT的VINL、VINR;輸出設(shè)備的左右聲道需要接到UDA1380TT的VOUTL、VOUTR。

      在進(jìn)行時鐘信號連線以及選擇字段時,其IIS總線的時鐘信號IIS_SCLK的兩端分別與UDA1380的BCK引腳和S3C2410的GPE1引腳相連接;而IIS_LRCK字段選擇的兩端分別與UDA1380的WSO/WSI引腳以及S3C2410的GPEO引腳相連接。S3C2410的GPE2引腳與UDA1380的SYSCLK相連激活系統(tǒng)時鐘。

      1.3 鍵盤接口電路設(shè)計(jì)

      控制端采用4×4矩陣鍵盤,將直接與處理器的I/O口互連,矩陣鍵盤4行分別連接GPC7、GPC8、GPC9、GPC104個引腳,其四列連接的則分別是GPD0、GPD1、GPD8、GPD9引腳。系統(tǒng)工作時將會采用輪循方式,這樣在滿足系統(tǒng)的實(shí)時性要求的同時,還能實(shí)現(xiàn)鍵盤的去抖動功能。

      2.系統(tǒng)軟件設(shè)計(jì)

      2.1 建立交叉編譯環(huán)境

      在對Linux系統(tǒng)進(jìn)行移植之前,先要在PC機(jī)上建立一個交叉編譯環(huán)境,目的是使在PC機(jī)平臺(即宿主機(jī))上編譯的目標(biāo)文件能夠在ARM9平臺(即目標(biāo)機(jī)器)上順利執(zhí)行。大體流程如下:

      (1)交叉編譯工具網(wǎng)絡(luò)下載:cross-2.95.3.tar.bz2;

      (2)根目錄的建立,在宿主機(jī)上任意盤符下建立/usr/local/arm目錄,并將解壓后的交叉編譯工具置于此目錄下;

      (3)設(shè)置環(huán)境變量,實(shí)現(xiàn)命令路徑尋找;

      (4)為使環(huán)境變量能夠每次在登錄時自動生效,需在/etc/bashrc中添加相關(guān)路徑:PATH=$PATH:/usr/local/arm/2.95.3/bin。

      2.2 內(nèi)核移植、編譯及燒寫

      (1)在宿主機(jī)的終端下,輸入make menuconfig命令進(jìn)行內(nèi)核配置,除了一些基本功能模塊以外,將內(nèi)核中其余不必要的功能模塊全部去除。

      (2)對于網(wǎng)絡(luò)配置、文件系統(tǒng)的配置、塊設(shè)備和可加載模塊等相關(guān)模塊的配置,由于與多數(shù)嵌入式開發(fā)相同,在此不再累述。

      (3)在宿主機(jī)終端的my_project/kernel目錄下執(zhí)行:

      [my_project//kernel]#make dep

      [my_project/lkernel]#make zImage

      運(yùn)行生成的映像文件zImage,自動保存在my_project/kernel/arch/arm/boot當(dāng)中。

      (4)根據(jù)前文中的內(nèi)存地址空間分配,通過網(wǎng)口進(jìn)行新內(nèi)核的燒寫。0x1040000為內(nèi)核燒寫到FLASH的地址;0x30008000為內(nèi)核下載到內(nèi)存SDRAM中的地址,其燒寫空間大小為0x100000,內(nèi)核文件的大小不能超過燒寫空間大小。

      2.3 初始化底層程序

      DSP程序初始化過程主要有:設(shè)定工作頻率、配置存儲區(qū)域、McBSP的初始化、設(shè)定IIC控制器相關(guān)參數(shù)、通用IO口設(shè)定以及設(shè)置定時中斷等,使系統(tǒng)能夠在正常狀態(tài)運(yùn)行;

      音頻編解碼初始化過程主要有:設(shè)定音頻采樣頻率、位數(shù)以及工作模式等,完成音頻錄放和編輯界面程序;

      SD卡初始化過程主要有:GPIO模擬SPI控制器,用戶字節(jié)、塊讀寫的基本程序設(shè)計(jì),提供后續(xù)讀寫接口。

      2.4 音頻錄制

      (1)設(shè)定錄音參數(shù),用戶在錄音之前將錄音參數(shù)設(shè)定好。

      (2)在上一步錄音參數(shù)設(shè)置好后,執(zhí)行打開音頻設(shè)備命令,取得訪問音頻芯片權(quán)利。在錄音過程中,文件標(biāo)識符將會通過返回的一個正整數(shù)產(chǎn)生。在后續(xù)錄音操作中,此文件標(biāo)識符將會在相關(guān)系統(tǒng)調(diào)用函數(shù)中使用。

      (3)錄制音頻文件過程,緩沖區(qū)中輸入從設(shè)備文件中讀取的錄音數(shù)據(jù)。

      2.5 DSP音頻設(shè)備驅(qū)動

      (1)DSP設(shè)備驅(qū)動,在file_operations數(shù)據(jù)結(jié)構(gòu)中,選取實(shí)現(xiàn)驅(qū)動所需系統(tǒng)調(diào)用函數(shù):open,write,ioctl,poll,release等。

      (2)由數(shù)據(jù)結(jié)構(gòu)中函數(shù)指針,設(shè)計(jì)相應(yīng)入口點(diǎn)函數(shù)。如:open函數(shù),音頻芯片訪問權(quán)通過系統(tǒng)調(diào)用它來實(shí)現(xiàn),并可檢查設(shè)備特定的錯誤;read函數(shù)接收音頻芯片數(shù)據(jù),進(jìn)行錄音操作;write函數(shù)向音頻芯片發(fā)送數(shù)據(jù),進(jìn)行放音操作。

      2.6 放音程序設(shè)計(jì)

      初始化中斷和串口,申請與音頻數(shù)據(jù)相同長度字節(jié)的內(nèi)存空間,并把flash存儲器中存放數(shù)據(jù)拷貝到相應(yīng)存儲空間中,最后直接播放存儲的音頻數(shù)據(jù)。

      結(jié)語

      本文研究了基于嵌入式平臺的音頻錄放系統(tǒng)。該系統(tǒng)是一種高實(shí)時性音頻處理系統(tǒng),它主要由S3C2410微處理器和UDA1380編解碼芯片構(gòu)成。系統(tǒng)設(shè)計(jì)包含硬件設(shè)計(jì)與軟件設(shè)計(jì)兩大塊。系統(tǒng)可用于人工智能、通信工具、語音識別系統(tǒng)、電子產(chǎn)品、監(jiān)控環(huán)境中等,具有重要的理論與現(xiàn)實(shí)意義。

      參考文獻(xiàn)

      [1]葛超,王嘉偉,陳磊. ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2007:101-132.

      [2]潘巨龍,等. ARM9嵌入式Linux系統(tǒng)構(gòu)建與應(yīng)用[M].北京:航空航天出版社,2006:42-77.

      平山县| 连江县| 嵊州市| 奉化市| 金平| 清水县| 庆安县| 孝感市| 平乡县| 华池县| 汨罗市| 杭州市| 舟山市| 汨罗市| 凌源市| 喀喇沁旗| 藁城市| 惠来县| 中西区| 敖汉旗| 杭锦后旗| 遂宁市| 三明市| 白河县| 偏关县| 岳阳县| 惠来县| 名山县| 通榆县| 蒙自县| 海宁市| 探索| 泗洪县| 遵义市| 青阳县| 任丘市| 琼结县| 班戈县| 焦作市| 故城县| 康乐县|