《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM9處理器的嵌入式音頻系統(tǒng)設(shè)計
基于ARM9處理器的嵌入式音頻系統(tǒng)設(shè)計
摘要: 本文利用ATMEL公司的AT91RM9200型微處理器和Philips公司的UDA1341型立體聲音頻編解碼器設(shè)計了一種嵌入式音頻系統(tǒng)。該嵌入式音頻系統(tǒng)硬件部分采用基于IIS總線的音頻系統(tǒng)體系結(jié)構(gòu),其主要硬件電路后文作了詳細的介紹。軟件上,筆者以嵌入式Linux操作系統(tǒng)作為平臺,重點介紹該音頻系統(tǒng)在此平臺下的驅(qū)動程序的實現(xiàn)。
Abstract:
Key words :

  1引言

  隨著Internet技術(shù)和多媒體技術(shù)的快速發(fā)展,語音通信技術(shù)的應(yīng)用越來越廣泛,也越來越受到重視[1]。如今的嵌人式設(shè)備日益復(fù)雜化,功能比以前更加豐富,性能也越來越高。在多種嵌人式終端產(chǎn)品中,音頻處理功能已成為不可缺少的重要組成部分,高質(zhì)量的音效是當(dāng)前發(fā)展的重要趨勢。

  本文利用ATMEL公司的AT91RM9200型微處理器和Philips公司的UDA1341型立體聲音頻編解碼器設(shè)計了一種嵌入式音頻系統(tǒng)。該嵌入式音頻系統(tǒng)硬件部分采用基于IIS總線的音頻系統(tǒng)體系結(jié)構(gòu),其主要硬件電路后文作了詳細的介紹。軟件上,筆者以嵌入式Linux操作系統(tǒng)作為平臺,重點介紹該音頻系統(tǒng)在此平臺下的驅(qū)動程序的實現(xiàn)。

  2AT91RM9200處理器簡介

  AT91RM9200是ATMEL公司針對系統(tǒng)控制以及通信領(lǐng)域推出的基于ARM920T內(nèi)核的新型微處理器[2],在高性能和低功耗特性方面具有極大的優(yōu)勢,而且具有很高的主頻,最高可達到180MHz。該處理器具有獨立的16K指令和16K數(shù)據(jù)cache,全功能的MMU虛擬內(nèi)存管理單元,以及內(nèi)部的16KBSRAM和128KBROM,EBI接口控制器。片上集成了豐富的外圍接口,包括網(wǎng)絡(luò)MAC、USB控制器、SDRAM控制器、CF接口、NANDflash接口、IIC接口、JTAG調(diào)試器以及支持256MB的地址空間。而且處理器還提供自舉模式,供用戶寫入引導(dǎo)代碼,方便Linux等操作系統(tǒng)的移植。

  3UDA1341TS音頻芯片及IIS總線簡介

  PHILIPS公司的UDA1341TS是一塊功能強大的專用語音處理芯片[3]。該芯片集語音放大、濾波、采樣、A/D和D/A轉(zhuǎn)換等功能于一體,并且能進行數(shù)字語音處理。本設(shè)計使用的AT91RM9200處理器具有一個IIS音頻接口,此接口采用DMA方式傳輸數(shù)據(jù)。在該方式下,由DMA控制器取代CPU,獲得總線控制權(quán),從而實現(xiàn)內(nèi)存與外設(shè)或者內(nèi)存之間的不同區(qū)域之間大量數(shù)據(jù)的快速傳輸。用DMA接口傳輸數(shù)據(jù),不僅可以降低CPU負擔(dān),還可以節(jié)省系統(tǒng)的軟件設(shè)計時間,降低編程難度。而UDA1341TS支持IIS總線格式,并且具有數(shù)字語音處理特性,由此決定了UDA1341TS與AT91RM9200處理器的電路連接比較簡單,并且能實現(xiàn)語音的A/D和D/A等預(yù)處理,而不需要再額外增加專門的A/D和D/A器件。

  需要說明的是,數(shù)字音頻系統(tǒng)需要多種多樣的集成電路,因此,為這些電路提供一個標(biāo)準的通信協(xié)議非常重要。IIS總線是由SONY和PHILIPS公司等電子巨頭共同提出的數(shù)字音頻總線協(xié)議,全稱是內(nèi)部集成電路聲音總線(InterICSoundBus),它是一種串行的數(shù)字音頻總線協(xié)議,該總線專門用于音頻設(shè)備之間的數(shù)據(jù)傳輸,為數(shù)字立體聲提供一個序列連接至標(biāo)準編解碼器[4],目前很多音頻芯片和處理器都提供了對IIS總線的支持。筆者根據(jù)IIS總線的原理,結(jié)合AT91RM9200處理器和數(shù)字音頻輸入/輸出接口芯片UDA1341TS的結(jié)構(gòu)特點,設(shè)計的嵌入式音頻系統(tǒng)可以運用到很多類似的音頻系統(tǒng)中。

  4系統(tǒng)硬件設(shè)計方案

  由于IIS總線只處理音頻數(shù)據(jù),而其他的信號如編碼、控制等信號單獨傳送。為了使必需的引腳數(shù)最小并且保持連線簡單,IIS總線由3條信號線組成:時分復(fù)用的數(shù)據(jù)通道線、字段選擇線和時鐘信號線。本系統(tǒng)由系統(tǒng)主控制器提供時鐘信號,控制數(shù)字音頻數(shù)據(jù)在各個IC之間的流向。此時,發(fā)送器在外部時鐘信號的控制下產(chǎn)生數(shù)據(jù),處于從模式。

  本設(shè)計硬件連接圖比較簡單,如圖1所示。圖中的處理器采用了AT91RM9200處理器,其內(nèi)置IIS音頻總線,內(nèi)置的IIS接口能讀取IIS總線上的數(shù)據(jù),并由UDA1341TS芯片外擴,通過總線和系統(tǒng)連接,需要處理器提供系統(tǒng)時鐘和3根控制線。

圖1硬件設(shè)計簡圖

  AT91RM9200的IIS控制器由5個引腳與外部的音頻編解碼器相連。這些引腳分別是:系統(tǒng)時鐘;位速率時鐘(可使用內(nèi)部或外部時鐘源);字段選擇;串行聲音輸入;串行聲音輸出。本設(shè)計中,UDA1341TS使用的是L3接口,該接口用來控制音頻信號的音量大小以及低音等。L3接口有3個信號:L3MODE,L3CLK,L3DATA,將字節(jié)寫入L3總線寄存器。IIS總線控制器通過軟件控制AT91RM9200的通用I/O引腳(筆者選用的是PA0、PA1、PA2三個通用I/O口)來支持L3接口。下圖是本嵌入式音頻系統(tǒng)的硬件電路連接圖,見圖2。

圖2硬件電路的連接

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

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

 

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

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

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

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

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

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

  設(shè)備初始化是整個音頻驅(qū)動程序的開始部分,主要完成對UDA1341TS音量、采樣頻率、L3接口等的初始化,并且注冊設(shè)備。通過函數(shù)audio_init(void)完成以下具體功能:AT91RM9200控制端口(PA0、PA1、PA2)的初始化;為UDA1341TS分配DMA通道;初始化UDA1341TS芯片;注冊音頻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*/

  ……

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

  Audio_dev_dsp=register_sound_dsp(&at91rm9200_audio_fops,-1);

  Audio_dev_mixer=register_ound_mixer(&at91rm9200_mixer_fops,-1);

  }

  打開設(shè)備由函數(shù)open()來實現(xiàn),該函數(shù)可以完成以下功能:配置IIS總線接口;設(shè)置UDA1341TS聲道及采樣頻率等參數(shù);計算緩沖區(qū)大小;為UDA1341TS分配DMA緩沖區(qū)。

  該音頻模塊經(jīng)過正確的配置可以實現(xiàn)錄音、放音及循環(huán)放音等功能。本文給出初始化IIS接口、測試IIS接口以及運用IIS接口來播放一段音樂的程序設(shè)計基本流程,流程圖如圖3所示。錄音和循環(huán)播放功能的設(shè)計流程與放音類似,這里不再贅述。

圖3IIS接口功能測試軟件設(shè)計流程圖
圖3IIS接口功能測試軟件設(shè)計流程圖

  6結(jié)論

  本文介紹了一種基于IIS總線的嵌入式音頻系統(tǒng),該系統(tǒng)簡潔實用,可以實現(xiàn)音頻的采集和播放,文章具體講述了基于ATMEL公司AT91RM9200型微處理器與音頻編解碼芯片UDA1341TS的硬件連接及嵌入式Linux下音頻驅(qū)動的實現(xiàn)。當(dāng)然,這只是本系統(tǒng)的主要組成部分,至于其他相關(guān)組成部分如FLASH和SDRAM等,筆者在實際設(shè)計中已經(jīng)完成,由于篇幅關(guān)系,文中沒有詳細介紹。該系統(tǒng)已經(jīng)在AT91RM9200的開發(fā)平臺上得到了實現(xiàn),可以順利進行音頻的采集和播放,并取得了良好的效果。另外,當(dāng)今實時視頻處理和傳輸技術(shù)發(fā)展迅速,應(yīng)用也日益廣泛,如視頻會議、VOIP電話等等,本設(shè)計適當(dāng)加以擴展,特別是與視頻模塊結(jié)合,即可應(yīng)用于更多相關(guān)的復(fù)雜系統(tǒng)中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产综合婷婷| 亚洲中午字幕| 国产精品无人区| 欧美日韩国产成人在线91| 久久综合伊人77777尤物| 欧美影视一区| 欧美一级在线亚洲天堂| 亚洲免费在线| 亚洲欧美一区二区三区久久| 亚洲一级一区| 在线亚洲精品福利网址导航| 日韩一级大片在线| 日韩一级大片| 一区二区久久久久| 亚洲午夜激情在线| 亚洲午夜女主播在线直播| 99riav1国产精品视频| 99国产精品久久久久老师| 亚洲免费成人av电影| 亚洲精品乱码久久久久久蜜桃麻豆| 久久精品视频导航| 亚洲福利视频二区| 亚洲欧洲一二三| 亚洲精品国产精品乱码不99按摩| 亚洲精品视频免费观看| 亚洲美女电影在线| 一区二区三区四区国产精品| 亚洲校园激情| 欧美一级电影久久| 久久久久久久久久码影片| 葵司免费一区二区三区四区五区| 另类图片国产| 欧美欧美在线| 国产精品久久国产愉拍| 国产精品视频导航| 国产一区二区高清| 尤物精品在线| 日韩视频不卡中文| 亚洲综合首页| 亚洲国产婷婷综合在线精品 | 久久成人资源| 亚洲日韩欧美视频| 亚洲永久免费| 久久久国产精品一区二区三区| 免费欧美在线| 欧美午夜www高清视频| 国产女人精品视频| 亚洲电影免费在线| aa日韩免费精品视频一| 篠田优中文在线播放第一区| 亚洲国产精品久久久久婷婷884| 亚洲欧洲视频在线| 亚洲一区黄色| 久热精品视频| 欧美日韩综合不卡| 狠狠色狠狠色综合日日小说 | 99精品国产在热久久婷婷| 亚洲免费综合| 亚洲精品激情| 欧美淫片网站| 欧美精品久久一区二区| 国产精品影片在线观看| 亚洲国产日韩美| 午夜精品一区二区三区在线视 | 99re6这里只有精品| 亚洲欧美日韩在线高清直播| 久久夜色撩人精品| 欧美私人网站| 亚洲国产精品久久久| 亚洲视频中文字幕| 亚洲欧洲综合| 欧美中文字幕第一页| 欧美精品自拍| 狠狠色综合网站久久久久久久| 日韩视频在线免费观看| 久久av在线看| 亚洲在线视频一区| 欧美成人亚洲成人日韩成人| 国产精品综合色区在线观看| 日韩亚洲视频在线| 亚洲黑丝在线| 久久精品视频在线播放| 国产精品高清网站| 亚洲国语精品自产拍在线观看| 午夜在线视频一区二区区别| 一本色道久久综合狠狠躁篇的优点 | 久久久久久久综合日本| 国产精品久久久久aaaa| 亚洲精品中文字幕在线| 久久精品一区二区三区不卡| 亚洲女优在线| 欧美日韩不卡| 亚洲国产精品成人久久综合一区 | 久久久午夜视频| 国产精品久久午夜夜伦鲁鲁| 亚洲片在线资源| 亚洲国产精品ⅴa在线观看| 久久国产主播| 国产精品一区在线播放| 夜夜精品视频一区二区| 亚洲精品视频二区| 欧美.日韩.国产.一区.二区| 国内精品久久久久伊人av| 性欧美长视频| 欧美在线视频在线播放完整版免费观看 | 国产日韩综合| 亚洲一区二区三区高清 | 亚洲字幕在线观看| 欧美日本成人| 亚洲日本成人| 亚洲精品字幕| 欧美精品久久久久久久免费观看| 亚洲第一久久影院| 亚洲国产小视频| 牛牛国产精品| 亚洲国产老妈| 亚洲伦理网站| 欧美日韩播放| 一本色道久久综合亚洲精品不| 亚洲日产国产精品| 欧美电影电视剧在线观看| 亚洲国产高清高潮精品美女| 亚洲国产欧美一区二区三区同亚洲 | 亚洲网站啪啪| 欧美一区二区三区在线| 国产精品一区二区三区乱码| 亚洲在线观看免费| 久久福利视频导航| 国产欧美视频一区二区| 香蕉乱码成人久久天堂爱免费| 久久福利电影| 韩国三级电影久久久久久| 久久www免费人成看片高清 | 国产女人18毛片水18精品| 欧美亚洲日本网站| 久久久久在线观看| 亚洲成色www8888| 99精品视频免费观看| 欧美香蕉视频| 亚洲免费在线观看视频| 久久精品国产69国产精品亚洲| 国产一区二区三区久久悠悠色av| 久久精品国产69国产精品亚洲 | 亚洲动漫精品| 一区二区日韩精品| 国产精品久久久久aaaa| 午夜视频在线观看一区二区三区| 久久久蜜臀国产一区二区| 亚洲高清色综合| 亚洲少妇诱惑| 国产欧美视频一区二区| 亚洲国产专区校园欧美| 欧美区视频在线观看| 亚洲小视频在线观看| 久久久久高清| 亚洲国产中文字幕在线观看| 亚洲在线不卡| 精品粉嫩aⅴ一区二区三区四区| 亚洲欧洲一区二区在线播放 | 国产精品久久久久久亚洲调教| 午夜精品视频| 欧美大片一区| 亚洲婷婷在线| 蜜乳av另类精品一区二区| 日韩一级精品| 久久大逼视频| 亚洲精选成人| 久久久999成人| 99国产精品99久久久久久| 久久精品亚洲乱码伦伦中文 | 欧美日韩视频在线| 亚洲欧美日韩精品久久亚洲区| 美女精品视频一区| 一区二区三区国产盗摄| 久久综合网色—综合色88| 亚洲精品孕妇| 久久久噜噜噜久久人人看| 夜夜夜久久久| 久久午夜影视| 99国产精品99久久久久久粉嫩| 久久久成人精品| 夜夜爽www精品| 另类激情亚洲| 亚洲欧美成aⅴ人在线观看| 欧美福利视频网站| 亚洲欧美影音先锋| 欧美久久电影| 欧美中文在线视频| 国产精品v欧美精品∨日韩| 亚洲国产日韩欧美综合久久| 欧美视频亚洲视频| 亚洲精品欧美在线| 国产香蕉久久精品综合网| 宅男噜噜噜66一区二区66| 狠狠色丁香久久婷婷综合_中| 亚洲欧美欧美一区二区三区| 91久久在线播放| 久久看片网站| 亚洲欧美一区二区三区在线| 欧美日韩亚洲综合在线|