新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM9處理器的嵌人式音頻系統設計

        基于ARM9處理器的嵌人式音頻系統設計

        作者: 時間:2012-11-26 來源:網絡 收藏



          圖2 硬件電路的連接

          各個引腳的連接說明如下:

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

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

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

          DATAI, DATAO:用于從UDA1341TS接收、發送串行聲音數據,AT91RM9200處理器的RD0,RK0引腳分別對應UDA1341TS的音頻輸入、輸出引腳。

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

          5 系統軟件設計方案

          嵌入式 Linux是一種完全開放且免費的操作系統,其支持多種硬件體系結構,運行穩定 ,擁有完善的開發工具,為開發人員提供了優良的開發環境[5]。在嵌入式 Linux系統中,設備驅動程序提供了應用程序和實際設備之間的一個軟件層(接口),為應用程序屏蔽了硬件細節。本設計中,音頻設備驅動程序主要通過對硬件的控制實現音頻流的傳輸,同時向上層提供標準的音頻接口。整個音頻驅動程序包括設備初始化、打開設備、數字音頻處理(DSP)驅動、混頻器(MIXER)驅動和釋放設備等部分。本文由于篇幅的限制,僅介紹設備初始化及打開設備的實現。

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

          以下給出的是該函數總體框架:

          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*/

          … …

          /*下面兩個函數用來注冊音頻 audio設備和混頻器設備 */

          Audio_dev_dsp=register_sound_dsp (at91rm9200_audio_fops,-1);

          Audio_dev_mixer=register_ound_mixer (at91rm9200_mixer_fops,-1);

          }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临邑县| 蓬溪县| 闻喜县| 无为县| 沿河| 陆良县| 稷山县| 岱山县| 四川省| 通江县| 两当县| 那曲县| 张北县| 宽城| 大厂| 改则县| 灵台县| 巴中市| 胶州市| 车致| 土默特右旗| 伊宁县| 南雄市| 响水县| 区。| 都江堰市| 郸城县| 固安县| 奉化市| 望谟县| 桂阳县| 准格尔旗| 柳江县| 花莲市| 西乌珠穆沁旗| 柞水县| 读书| 望奎县| 淮北市| 仙游县| 拜泉县|