<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9處理器的嵌人式音頻系統(tǒng)設(shè)計(jì)

          基于ARM9處理器的嵌人式音頻系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-11-26 來源:網(wǎng)絡(luò) 收藏



            圖2 硬件電路的連接

            各個(gè)引腳的連接說明如下:

            SYSCLK:IIS總線的基本時(shí)鐘源,處理器的TCLK3引腳與UDA1341TS芯片的系統(tǒng)時(shí)鐘相連接。由于UDA1341TS芯片僅支持從模式 ,因此在所有的應(yīng)用中系統(tǒng)設(shè)備必須提供系統(tǒng)時(shí)鐘。系統(tǒng)時(shí)鐘頻率是可編程的,其分頻率可以是 256、384或512倍的采樣頻率。系統(tǒng)時(shí)鐘必須在頻率上與數(shù)字接口信號(hào)一致。在設(shè)計(jì)中筆者用的是256fs的時(shí)鐘。

            WS:字段選擇引腳,用于指出現(xiàn)行串行數(shù)據(jù)采樣值為左聲道還是右聲道數(shù)據(jù),處理器的TK0引腳與WS相連接。

            BCK:向UDA1341TS提供用作采樣邏輯的串行聲音位速率時(shí)鐘,處理器的TD0引腳與 UDA1341TS芯片的BCK引腳相連接。

            DATAI, DATAO:用于從UDA1341TS接收、發(fā)送串行聲音數(shù)據(jù),AT91RM9200處理器的RD0,RK0引腳分別對(duì)應(yīng)UDA1341TS的音頻輸入、輸出引腳。

            L3M0DE,L3CLOCK,L3DATA:UDA1341TS的L3接口引腳,分別與AT91RM9200的3個(gè)通用數(shù)據(jù)輸出引腳PA0、PA1、PA2連接。

            5 系統(tǒng)軟件設(shè)計(jì)方案

            嵌入式 Linux是一種完全開放且免費(fèi)的操作系統(tǒng),其支持多種硬件體系結(jié)構(gòu),運(yùn)行穩(wěn)定 ,擁有完善的開發(fā)工具,為開發(fā)人員提供了優(yōu)良的開發(fā)環(huán)境[5]。在嵌入式 Linux系統(tǒng)中,設(shè)備驅(qū)動(dòng)程序提供了應(yīng)用程序和實(shí)際設(shè)備之間的一個(gè)軟件層(接口),為應(yīng)用程序屏蔽了硬件細(xì)節(jié)。本設(shè)計(jì)中,音頻設(shè)備驅(qū)動(dòng)程序主要通過對(duì)硬件的控制實(shí)現(xiàn)音頻流的傳輸,同時(shí)向上層提供標(biāo)準(zhǔn)的音頻接口。整個(gè)音頻驅(qū)動(dòng)程序包括設(shè)備初始化、打開設(shè)備、數(shù)字音頻處理(DSP)驅(qū)動(dòng)、混頻器(MIXER)驅(qū)動(dòng)和釋放設(shè)備等部分。本文由于篇幅的限制,僅介紹設(shè)備初始化及打開設(shè)備的實(shí)現(xiàn)。

            設(shè)備初始化是整個(gè)音頻驅(qū)動(dòng)程序的開始部分,主要完成對(duì)UDA1341TS音量、采樣頻率、L3接口等的初始化,并且注冊(cè)設(shè)備。通過函數(shù)audio_init(void)完成以下具體功能: AT91RM9200控制端口(PA0、PA1、PA2)的初始化;為UDA1341TS分配 DMA通道;初始化UDA1341TS芯片;注冊(cè)音頻audio設(shè)備和混頻器設(shè)備。

            以下給出的是該函數(shù)總體框架:

            audio_init(void)

            {

            Set_gpio_ctrl(GPIO_L3CLOCK); /*CPU控制端口的初始化 */

            … … /*“……”表示省略部分代碼,以下同 */

            Input_stream.dma_ch=DMA_CH1; /*輸入 DMA通道的選擇 */

            Output_stream.dma_ch=DMA_CH2; /*輸出DMA通道的選擇 */

            Local_irq_restore(flags);

            Init_UDA1341(); /*初始化 UDA1341*/

            … …

            /*下面兩個(gè)函數(shù)用來注冊(cè)音頻 audio設(shè)備和混頻器設(shè)備 */

            Audio_dev_dsp=register_sound_dsp (at91rm9200_audio_fops,-1);

            Audio_dev_mixer=register_ound_mixer (at91rm9200_mixer_fops,-1);

            }



          關(guān)鍵詞: ARM9 音頻系統(tǒng) AT91RM9200

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();