国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于I2S的USB 聲卡系統(tǒng)設(shè)計

發(fā)布時間:2010-9-15 12:26    發(fā)布者:techshare
關(guān)鍵詞: I2S , USB , 聲卡
近年來USB產(chǎn)品層出不窮,USB音頻類在USB開發(fā)者論壇的努力下,成為一種標(biāo)準(zhǔn)的規(guī)范,USB聲卡也開始在市場上悄然出現(xiàn)。因為USB聲卡內(nèi)置了DAC和有源功放,音頻數(shù)據(jù)以數(shù)字方式進(jìn)入USB聲卡,完全杜絕了PC的內(nèi)部干擾,所以,USB聲卡將有可能成為現(xiàn)有內(nèi)置聲卡的替代品。本文介紹了一種基于ARM處理器的USB聲卡設(shè)計。

USB聲卡原理

由USB聲卡數(shù)據(jù)流圖(見圖1)可以看出USB聲卡的工作原理。在主機(jī)端播放音樂時,應(yīng)用軟件或驅(qū)動程序把各類音頻信號轉(zhuǎn)換為統(tǒng)一的格式,如PCM、MPEG等格式的數(shù)據(jù)流,通過主機(jī)的USB接口發(fā)送給USB聲卡。聲卡的USB接口接收到數(shù)據(jù)后,通過I2S接口把并行音頻數(shù)據(jù)轉(zhuǎn)為串行,再發(fā)送給音頻編解碼芯片進(jìn)行D/A轉(zhuǎn)換,即可在音頻芯片連接的揚聲器中發(fā)音。錄音過程和播放過程正好相反。



圖1 USB 聲卡數(shù)據(jù)流  

硬件設(shè)計

USB聲卡硬件主要包括MCU和音頻編解碼芯片。MCU采用三星公司的處理器S3C2410,S3C2410內(nèi)置I2S總線控制器和USB Slaver控制器。S3C2410的I2S控制器實現(xiàn)了一個外部8/16位立體聲音頻CODEC IC的接口,支持I2S總線數(shù)據(jù)格式和MSB-justified數(shù)據(jù)格式,并且支持DMA傳輸模式。

音頻芯片采用UDA1341TS。UDA1341TS提供標(biāo)準(zhǔn)的I2S接口,可以直接和S3C2410的I2S引腳連接。另外,此芯片還提供標(biāo)準(zhǔn)的L3、麥克風(fēng)和揚聲器接口。L3接口的引腳分別連到S3C2410的3個GPIO輸出引腳上,通過GPIO控制L3接口。UDA1341TS音頻芯片集成數(shù)字化音頻和混頻器功能。數(shù)字化音頻功能可以播放數(shù)字化聲音或錄制聲音,因為包括這個功能,所以常把此類芯片稱為CODEC設(shè)備。混頻器用來控制各種輸入/輸出的音量大小等,在本芯片中通過L3接口進(jìn)行控制。



圖2 USB聲卡拓?fù)鋱D

軟件設(shè)計

軟件設(shè)計包括兩部分:USB聲卡固件程序設(shè)計和主機(jī)端Windows驅(qū)動設(shè)計。因為USB音頻類設(shè)備是一種標(biāo)準(zhǔn)設(shè)備,在Windows 操作系統(tǒng)上有標(biāo)準(zhǔn)的USB音頻驅(qū)動,所以只需要開發(fā)者根據(jù)USB音頻類的協(xié)議開發(fā)固件程序。

USB聲卡的固件程序主要包括兩部分,第一部分主要是USB通訊,第二部分實現(xiàn)I2S接口數(shù)據(jù)傳輸以及數(shù)據(jù)流的緩沖區(qū)控制等。

USB通訊

USB聲卡描述符

為了有效地定義出USB聲卡的描述符,可先根據(jù)USB音頻類協(xié)議,并結(jié)合需要實現(xiàn)的USB聲卡功能,確定出USB聲卡的拓?fù)鋱D(見圖2),然后再根據(jù)拓?fù)鋱D和USB音頻類描述符的協(xié)議,寫出USB聲卡的描述符。

USB聲卡的描述符包括5部分,分別為設(shè)備描述符、配置描述符、接口描述符、端點描述符和字符串描述符。接口描述符是其中的難點。USB聲卡的接口描述符包括兩部分:音頻控制(AudioControl)接口描述符和音頻數(shù)據(jù)流(AudioStreaming)接口描述符。

1. USB音頻控制接口描述符。根據(jù)USB聲卡的拓?fù)鋱D所示,當(dāng)聲卡用于回放功能時,其聲卡功能的控制流程,通過IT1(Input Teminal),OT3(Out Teminal)和Feature單元表示,IT1表示的是PC向USB聲卡發(fā)送的音頻數(shù)據(jù)流,OT3表示的是發(fā)向DAC的數(shù)據(jù)流,在IT1和OT3之間的Feature單元用于調(diào)節(jié)音量和音效功能等。當(dāng)聲卡執(zhí)行錄音功能時,USB的功能拓?fù)渫ㄟ^IT2,OT4表示,IT2表示A/D采樣的音頻數(shù)據(jù)流,OT4表示的是通過USB接口發(fā)向PC的數(shù)據(jù)流。USB音頻控制接口的數(shù)據(jù)傳輸一般使用默認(rèn)端點0。  

在USB聲卡的拓?fù)鋱D中,F(xiàn)表示的是USB音頻類的Feature單元,F(xiàn)eature單元的主要作用是控制音量、靜音、低音等。如果在描述符中聲明了Feature單元,在Windows操作系統(tǒng)下,控制面板中的聲音和音頻設(shè)備的一些功能才能使用。那么在Windows中進(jìn)行調(diào)節(jié)音量等控制時,就會觸發(fā)固件程序?qū)DA1341TS芯片L3接口的控制。

2. USB音頻數(shù)據(jù)流接口描述符。因為USB 音頻有回放和錄音兩種功能,所以需要兩個同步數(shù)據(jù)流接口,兩個接口使用雙向端點1進(jìn)行數(shù)據(jù)傳輸。

通過USB聲卡的拓?fù)鋱D,可以分析出音頻接口的流程和功能,從而得出USB聲卡的描述符。

USB通訊的程序?qū)崿F(xiàn)

S3C2410有5個雙向FIFO端點,其中0端點是控制傳輸端點,其他4個端點支持批量、中斷、同步傳輸?shù)确绞健T诒鞠到y(tǒng)中使用0、1兩個雙向傳輸端點。端點0執(zhí)行控制傳輸(CONTROL),一方面?zhèn)鬏擴(kuò)SB協(xié)議的控制信息,例如Setup事件、握手信號、枚舉信息等,另一方面?zhèn)鬏斠纛l控制信息,例如采樣率控制、音量控制等。端點1采用同步傳輸方式( ISOCHRONOUS),傳輸時間間隔為1ms,用于實時傳遞主機(jī)和I2S之間的錄音或放音數(shù)據(jù)。

根據(jù)USB協(xié)議,USB設(shè)備的任何數(shù)據(jù)傳輸,都由USB主機(jī)分配,然后USB設(shè)備響應(yīng)相應(yīng)的USB主機(jī)總線請求。S3C2410的USB控制器采用的是中斷方式響應(yīng),那么在S3C2410的USB中斷服務(wù)程序中要作以下工作:

Isr_USB()

{  

if(USB_INT_REG&RESET_INT) Reset_USB(); //重啟USB設(shè)備

if(USB_INT_REG&RESUME_INT) Resume_USB(); //喚醒USB設(shè)備  

if(USB_INT_REG&SUSPEND_INT) Suspend_USB(); //掛起USB設(shè)備

if(EP_INT_REG&EP0_INT) Handle_EP0(); //執(zhí)行控制傳輸端點0處理程序

if(EP_INT_REG&EP1_INT) Handle_EP1(); //執(zhí)行同步傳輸端點1處理程序

}

USB聲卡的控制傳輸

在主機(jī)端應(yīng)用程序中,執(zhí)行音量調(diào)節(jié)、靜音等事件時,USB音頻驅(qū)動通過默認(rèn)端點0執(zhí)行一個控制傳輸。一次控制傳輸主要包括兩個步驟,第一步,由主機(jī)向設(shè)備發(fā)送一個建立(Setup)信息,描述控制訪問的類型,設(shè)備將執(zhí)行此控制訪問。第二步,零個或多個控制數(shù)據(jù)信息的傳送,這是訪問的具體信息。根據(jù)USB音頻類協(xié)議分解控制信息包,然后再根據(jù)控制信息,執(zhí)行相應(yīng)的操作。例如,在主機(jī)端應(yīng)用程序中播放音樂前,USB聲卡就會從主機(jī)端收到如下的兩個包:  

Setup包 22 01 00 01 01 00 03 00

控制數(shù)據(jù)包 40 1F 00

根據(jù)USB音頻類協(xié)議分解Setup包,可以得知,本次控制傳輸?shù)淖饔檬窃O(shè)置USB聲卡的采樣頻率,并且收到的3字節(jié)控制數(shù)據(jù)信息是采樣頻率,即8KHz。那么在播放音樂前,必須把I2S和UDA1341TS芯片的采樣頻率設(shè)置為8kHz,才能和主機(jī)端保持同步。

I2S總線實現(xiàn)方法

在S3C2410芯片中,I2S接口提供三種數(shù)據(jù)傳輸模式:正常傳輸模式、DMA傳輸模式、傳輸/接收模式。本系統(tǒng)采用的是傳輸/接收模式,它具有雙通道DMA功能,一方面竊取總線控制權(quán),提高系統(tǒng)的吞吐能力,另一方面,可以實現(xiàn)同時接收和發(fā)送音頻數(shù)據(jù),即全雙工模式。

在S3C2410芯片中,有4個DMA通道控制器用于控制各種外部設(shè)備,其中I2S與其他串行外設(shè)共用兩個橋接DMA(BDMA)類型的DMA通道。通過設(shè)置I2SFCON寄存器可以使I2S接口工作在DMA模式下。此模式下FIFO寄存器組的控制權(quán)掌握在DMA控制器上。當(dāng)FIFO滿時,由DMA控制器對FIFO中的數(shù)據(jù)進(jìn)行處理。DMA模式的選擇由I2SCON寄存器的第四和第五位控制。

為了使USB聲卡的回放和錄音可以同時進(jìn)行,即實現(xiàn)全雙工,數(shù)據(jù)傳輸使用兩個BDMA通道,通道0用于回放,通道1用于錄音,因為S3C2410的BDMA中沒有內(nèi)置DMA存儲區(qū)域,所以需要在SDRAM中分配DMA緩沖區(qū)。音頻數(shù)據(jù)回放時,先由USB總線取得音頻數(shù)據(jù),寫入DMA緩沖區(qū),由BDMA控制器通道0竊取總線控制權(quán),通過I2S控制器寫入I2S總線并傳輸給音頻芯片。錄音采用BDMA控制器的通道1,其數(shù)據(jù)流過程和回放相反。

由于處理的音頻數(shù)據(jù)量比較大,并且PC端接收/發(fā)送數(shù)據(jù)的速度和I2S處理數(shù)據(jù)的速度不能完全匹配,這就導(dǎo)致了放音失真或者錄音丟幀的現(xiàn)象。為了解決這個問題,最簡單易行的方法是使用比較大的環(huán)形緩存。但實際上大的緩存區(qū)需要更長的填充時間,在使用時會出現(xiàn)延時。為了解決延時的問題,使用環(huán)形、多段緩存機(jī)制。在這種機(jī)制下,將緩存區(qū)分割成若干個相同大小的塊,并使用算法實現(xiàn)環(huán)形緩沖。下面以8kHz/16位/單通道音頻流的播放為例說明緩沖區(qū)的操作。

USB音頻類規(guī)定的USB同步傳輸周期為1ms,即對于8kHz/16位/單通道PCM編碼的音頻流,每隔1ms,USB設(shè)備就會收到一次主機(jī)傳來的數(shù)據(jù),數(shù)據(jù)包大小為16字節(jié),為了盡量保持I2S和USB傳輸同步,可以取16字節(jié)作為一個緩存區(qū)段的大小。當(dāng)USB聲卡接收到數(shù)據(jù)后,MCU先判斷緩沖區(qū)中是否有空閑區(qū)域,如果沒有足夠緩沖區(qū)就跳過一個樣本,然后再逐一把FIFO中的數(shù)據(jù)復(fù)制到SDRAM的緩沖區(qū)。

因為I2S的DMA控制器處理數(shù)據(jù)是按段進(jìn)行,每段長度為16字節(jié),在DMA取數(shù)據(jù)前,先判斷緩沖區(qū)中的數(shù)據(jù)量,如果沒有足夠數(shù)據(jù)(16字節(jié)),則加入靜音數(shù)據(jù),然后再執(zhí)行DMA傳輸。

結(jié)語

本文所闡述的基于I2S總線的USB聲卡,已經(jīng)在基于S3C2410處理器的開發(fā)板上成功實現(xiàn),不過只是實現(xiàn)了USB聲卡的最基本功能。可以嘗試把MP4、U盤等和USB聲卡集成在一體,會更有應(yīng)用價值。
本文地址:http://m.qingdxww.cn/thread-26902-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 我們是Microchip
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 深度體驗Microchip自動輔助駕駛應(yīng)用方案——2025巡展開啟報名!
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 好看的亚洲视频 | 91色在线| 四虎影视国产在线观看精品 | 日韩亚洲人成网站在线播放 | 国产毛片在线看 | 亚洲国产专区 | 99re这里只有 | 国产在线观看第一页 | 亚洲一区日韩二区欧美三区 | 亚洲欧美中文字幕在线网站 | 欧美视频一区在线观看 | 国产精品国语对白 | 青青国产视频 | 性欧美午夜高清在线观看 | 免费在线观看日韩 | 亚洲播放 | 一级做a爱片特黄在线观看免费看 | 日韩精品免费一区二区 | 日本爽爽爽爽爽爽在线观看免 | 91av一区| 四虎最新网址入口 | 中文字幕一区二区三区视频在线 | 国产片免费观看 | 2019偷偷狠狠的日日 | 九九免费在线视频 | 国产传媒一区二区三区呀 | 国产福利片在线 易阳 | 婷婷激情亚洲 | 酒色网址 | 大又大又粗又爽女人毛片 | 久久99这里只有精品国产 | 草逼片 | www.五月婷婷 | 两个人免费观看高清在线 | 最近新韩国日本免费看 | 日本在线观看一区 | 另类视频一区 | 久爱www成人网免费视频 | 99精品视频在线观看re | 久久久综合视频 | 免费人成黄页在线观看1024 |