《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于I2S的USB 聲卡系統設計
基于I2S的USB 聲卡系統設計
摘要: 本文介紹了基于S3C2410處理器平臺,利用I2S總線的USB聲卡系統設計。詳細闡述了USB聲卡通訊的實現,并且根據I2S總線DMA傳輸的特點實現了環形緩沖區,以提高系統性能,滿足音頻實時性的要求。
關鍵詞: ARM USB 聲卡 音頻
Abstract:
Key words :

  引言

  近年來USB產品層出不窮,USB音頻類在USB開發者論壇的努力下,成為一種標準的規范,USB聲卡也開始在市場上悄然出現。因為USB聲卡內置了DAC和有源功放,音頻數據以數字方式進入USB聲卡,完全杜絕了PC的內部干擾,所以,USB聲卡將有可能成為現有內置聲卡的替代品。本文介紹了一種基于ARM處理器的USB聲卡設計。

  USB聲卡原理

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

USB聲卡數據流

  圖1 USB聲卡數據流

  硬件設計

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

 

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

  軟件設計

  軟件設計包括兩部分:USB聲卡固件程序設計和主機端Windows驅動設計。因為USB音頻類設備是一種標準設備,在Windows 操作系統上有標準的USB音頻驅動,所以只需要開發者根據USB音頻類的協議開發固件程序。

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

  USB通訊

  USB聲卡描述符

  為了有效地定義出USB聲卡的描述符,可先根據USB音頻類協議,并結合需要實現的USB聲卡功能,確定出USB聲卡的拓撲圖(見圖2),然后再根據拓撲圖和USB音頻類描述符的協議,寫出USB聲卡的描述符。

USB聲卡拓撲圖

  圖2 USB聲卡拓撲圖

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

  1. USB音頻控制接口描述符。根據USB聲卡的拓撲圖所示,當聲卡用于回放功能時,其聲卡功能的控制流程,通過IT1(Input Teminal),OT3(Out Teminal)和Feature單元表示,IT1表示的是PC向USB聲卡發送的音頻數據流,OT3表示的是發向DAC的數據流,在IT1和OT3之間的Feature單元用于調節音量和音效功能等。當聲卡執行錄音功能時,USB的功能拓撲通過IT2,OT4表示,IT2表示A/D采樣的音頻數據流,OT4表示的是通過USB接口發向PC的數據流。USB音頻控制接口的數據傳輸一般使用默認端點0。

  在USB聲卡的拓撲圖中,F表示的是USB音頻類的Feature單元,Feature單元的主要作用是控制音量、靜音、低音等。如果在描述符中聲明了Feature單元,在Windows操作系統下,控制面板中的聲音和音頻設備的一些功能才能使用。那么在Windows中進行調節音量等控制時,就會觸發固件程序對UDA1341TS芯片L3接口的控制。

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

  通過USB聲卡的拓撲圖,可以分析出音頻接口的流程和功能,從而得出USB聲卡的描述符。

  USB通訊的程序實現

  S3C2410有5個雙向FIFO端點,其中0端點是控制傳輸端點,其他4個端點支持批量、中斷、同步傳輸等方式。在本系統中使用0、1兩個雙向傳輸端點。端點0執行控制傳輸(CONTROL),一方面傳輸USB協議的控制信息,例如Setup事件、握手信號、枚舉信息等,另一方面傳輸音頻控制信息,例如采樣率控制、音量控制等。端點1采用同步傳輸方式( ISOCHRONOUS),傳輸時間間隔為1ms,用于實時傳遞主機和I2S之間的錄音或放音數據。

 

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

Isr_USB()
{
if(USB_INT_REG&RESET_INT)     Reset_USB();   //重啟USB設備
if(USB_INT_REG&RESUME_INT)   Resume_USB();  //喚醒USB設備
if(USB_INT_REG&SUSPEND_INT)  Suspend_USB(); //掛起USB設備
if(EP_INT_REG&EP0_INT)         Handle_EP0(); //執行控制傳輸端點0處理程序
if(EP_INT_REG&EP1_INT)         Handle_EP1(); //執行同步傳輸端點1處理程序
}

  USB聲卡的控制傳輸

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

  Setup包  22 01 00 01 01 00 03 00

  控制數據包 40 1F 00

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

  I2S總線實現方法

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

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

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

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

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

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

  結語

  本文所闡述的基于I2S總線的USB聲卡,已經在基于S3C2410處理器的開發板上成功實現,不過只是實現了USB聲卡的最基本功能??梢試L試把MP4、U盤等和USB聲卡集成在一體,會更有應用價值。

  參考文獻

  1. Samsung Inc. S3C44B0X Risc Microprocessor Datasheet. http://www.samsung.com.  2003

  2.Philips Semiconductors. UDA1341TS datasheet.http://www. semiconductor. philips.com. 2002

  3. Hyde, John, USB Design by Example. Intel. www.usb-by-example.com.2002.5

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美激情五月| 亚洲国产一区二区a毛片| 国产精品嫩草久久久久| 亚洲在线一区二区三区| 在线观看91精品国产麻豆| 亚洲欧美日韩国产一区二区| 久久久国产午夜精品| 亚洲一区二区高清| 欧美精品乱人伦久久久久久| 国产精品久久久久99| 香港成人在线视频| 欧美xxxx在线观看| 国语自产精品视频在线看| 欧美精品一区二区久久婷婷| 国产日韩精品电影| 欧美日韩免费精品| 韩国久久久久| 亚洲缚视频在线观看| 欧美一区二区三区精品| 亚洲在线免费视频| 午夜精品成人在线| 亚洲综合二区| 亚洲视频图片小说| 影音先锋一区| 在线精品亚洲| 亚洲国产一成人久久精品| 欧美伊人久久久久久久久影院| 中文亚洲字幕| 快she精品国产999| 男女精品网站| 国产亚洲视频在线观看| 美女国产精品| 欧美视频一区二区三区在线观看| 国产精品美女在线观看| 亚洲精品字幕| 伊人成人开心激情综合网| 欧美美女bb生活片| 欧美一级视频免费在线观看| 欧美日韩免费区域视频在线观看| 欧美无乱码久久久免费午夜一区| 欧美涩涩视频| 亚洲欧美综合国产精品一区| 国产一区二区三区四区三区四| 午夜亚洲性色福利视频| 亚洲高清一二三区| 欧美99久久| 亚洲综合成人婷婷小说| 伊人久久av导航| 欧美午夜精品理论片a级大开眼界| av成人免费在线观看| 久久精品99国产精品日本| 亚洲一区二区三区乱码aⅴ| 小黄鸭精品密入口导航| 国产精品av一区二区| 欧美国产日韩一区二区在线观看| 久久久噜噜噜久噜久久| 国产人成一区二区三区影院| 国产精品高清在线观看| 日韩一级视频免费观看在线| 亚洲人成绝费网站色www| 国产在线拍偷自揄拍精品| 亚洲一区二区毛片| 在线观看的日韩av| 久久久久久久综合色一本| 欧美久色视频| 国产精品日本欧美一区二区三区| 卡通动漫国产精品| 国产女精品视频网站免费| 亚洲国产一区在线观看| 影院欧美亚洲| 国产精品一区二区女厕厕| 亚洲精品一区二区三区99| 香蕉久久精品日日躁夜夜躁| 国产精品99久久久久久有的能看| 国产热re99久久6国产精品| 欧美成人免费全部| 亚洲性视频网址| 国产精品青草久久| 亚洲激情女人| 欧美伦理在线观看| 欧美视频不卡| 亚洲第一偷拍| 久久精品人人爽| 亚洲激情视频| 99精品视频一区二区三区| 国产精品呻吟| 国产欧美日韩综合一区在线观看| 一区二区亚洲精品国产| 欧美精彩视频一区二区三区| 久久久久久尹人网香蕉| 欧美巨乳波霸| 国产精品久久久91| 久久久91精品国产一区二区精品| 亚洲私人影院在线观看| 欧美高清在线一区二区| 艳女tv在线观看国产一区| 国产主播一区二区三区| 国产欧美日韩视频| 亚洲人成在线播放| 久久国产精品一区二区三区四区| 久久精品国产亚洲高清剧情介绍| 国产精品激情偷乱一区二区∴| 国产精品99久久久久久宅男| 国产日韩欧美一区二区三区四区| 鲁鲁狠狠狠7777一区二区| 亚洲国产精品久久久久| 日韩写真在线| 欧美视频一区二区三区四区| 一区二区激情| 欧美色视频一区| 欧美+亚洲+精品+三区| 亚洲无限乱码一二三四麻| 欧美精品在线免费| 久久久国产一区二区三区| 日韩午夜激情| 国产精品久久久亚洲一区| 国产综合精品| 欧美人成网站| 亚洲欧美中文在线视频| 欧美日本高清视频| 国产精品wwwwww| 怡红院精品视频| 99在线热播精品免费99热| 女同性一区二区三区人了人一| 国产精品亚洲第一区在线暖暖韩国| 亚洲麻豆av| 国产永久精品大片wwwapp| 国产精品v欧美精品∨日韩| 国产视频在线观看一区| 黑丝一区二区三区| 国产九色精品成人porny| 国产精品成人午夜| 久久av一区| 一区二区三区日韩欧美| 国产偷国产偷亚洲高清97cao| 亚洲少妇中出一区| 久久综合中文字幕| 亚洲午夜精品久久久久久app| 国产午夜精品久久久久久久| 国产一区二区三区久久久久久久久| 麻豆av一区二区三区久久| 快射av在线播放一区| 欧美在线高清视频| 国产精品入口日韩视频大尺度| 在线观看一区视频| 国产精品羞羞答答xxdd| 欧美激情 亚洲a∨综合| 在线视频国产日韩| 欧美一区二区精品久久911| 激情五月婷婷综合| 国产欧美日韩精品丝袜高跟鞋| 国产精品福利久久久| 亚洲欧洲另类| 国产精品久久久久久久久久ktv| 亚洲精品网址在线观看| 欧美绝品在线观看成人午夜影视| 韩日午夜在线资源一区二区| 国产精品jizz在线观看美国| 久久久美女艺术照精彩视频福利播放| 国产亚洲精品久| 一区二区三区久久网| 在线精品观看| 国产精品爱久久久久久久| 午夜精品国产| 国产精品人人做人人爽| 亚洲在线视频| 国产精品成人aaaaa网站| 国产综合色产在线精品| 亚洲永久免费观看| 在线日韩欧美视频| 欧美精品日韩www.p站| 99精品黄色片免费大全| 亚洲成色最大综合在线| 91久久综合亚洲鲁鲁五月天| 暖暖成人免费视频| 亚洲成人中文| 韩日欧美一区二区三区| 亚洲清纯自拍| 欧美一区二区在线播放| 欧美性生交xxxxx久久久| 尤物精品国产第一福利三区| 国产伦精品一区二区三区视频黑人| 久久精品人人做人人爽| 国产主播一区二区三区| 亚洲国产免费看| 久久精品视频免费观看| 另类亚洲自拍| 尹人成人综合网| 午夜在线a亚洲v天堂网2018| 欧美高清视频一二三区| 免费观看在线综合| 亚洲摸下面视频| 99精品欧美一区二区三区综合在线| 亚洲国产欧美久久| 国户精品久久久久久久久久久不卡| 久久精视频免费在线久久完整在线看| 国产精品欧美经典| 国产午夜精品理论片a级大结局| 亚洲欧洲一区二区三区| 国产精品综合不卡av| 性色av一区二区三区红粉影视| 亚洲三级电影全部在线观看高清| 欧美日韩国产在线播放| 亚洲精品影院| 国产一区在线播放| 亚洲国产精品尤物yw在线观看| 欧美精品一区二区在线播放| 久久激情一区| 在线观看欧美日韩国产| 亚洲一区中文字幕在线观看| 亚洲无限乱码一二三四麻| 欧美日韩精品一区二区| 久久夜色撩人精品| 亚洲视频一二区| 国产精品青草久久久久福利99| 亚洲美女av电影| 国产精品久久午夜夜伦鲁鲁| 99re亚洲国产精品| 日韩午夜精品视频| 国产精品va在线播放| 欧美精品在线极品| 国产精品视屏| 亚洲日本欧美天堂| 一区二区视频免费完整版观看| 国产精品大片| 亚洲黄页视频免费观看| 亚洲国产婷婷香蕉久久久久久99| 欧美韩日一区| 老司机久久99久久精品播放免费| 日韩亚洲综合在线| 99riav国产精品| 欧美色图五月天| 国产精品国产a| 欧美日韩另类在线| 欧美人妖另类| 欧美一区二区三区在线视频| 亚洲精品一区二区三区99| 亚洲精品免费一区二区三区| 亚洲第一在线综合网站| 嫩草成人www欧美| 国产精品一区二区久久精品| 99国产欧美久久久精品| 亚洲国产乱码最新视频| 午夜精品美女自拍福到在线| 亚洲国产精品成人一区二区| 久久亚洲午夜电影| 国产综合视频在线观看| 香蕉久久国产| 久久成年人视频| 久久色中文字幕| 欧美黑人在线播放| 久久一区激情| 亚洲欧美日韩国产综合| 国产精品二区三区四区| 欧美资源在线观看| 国产精品theporn| 日韩亚洲在线观看| 艳女tv在线观看国产一区| 国产精品久久二区二区| 亚洲欧美在线免费观看| 一区二区av在线| 亚洲欧美日韩国产综合在线| 麻豆成人小视频| 狠狠狠色丁香婷婷综合激情| 影音先锋国产精品| 翔田千里一区二区| 亚洲激情社区| 亚洲无人区一区| 红桃视频成人| 欧美xxx在线观看| 国产精品久久久久久久午夜片| 欧美成人综合一区| 亚洲二区在线观看| 欧美日韩国产电影| 国产精品成人一区二区| 亚洲中字黄色| 伊人久久噜噜噜躁狠狠躁| 亚洲精品一二区| 国产精品免费小视频| 久久中文在线| 欧美日韩中国免费专区在线看| 欧美+亚洲+精品+三区| 中文国产一区| 欧美精品v日韩精品v国产精品| 国产视频久久久久久久| 久久亚洲一区| 国产欧美一区二区三区在线看蜜臀| 欧美精品久久久久久久免费观看| 国产精品亚洲第一区在线暖暖韩国| 亚洲精品国产精品国产自| 久久激情一区| 欧美成人情趣视频| 国产伦精品一区二区三区免费迷| 欧美专区在线播放| 亚洲国产成人在线| 久久精品道一区二区三区| 国产精品资源| 久久黄色网页| 一区二区av| 欧美高清一区| 亚洲一二三四久久| 1000精品久久久久久久久| 亚洲激情成人网| 国产精品亚洲片夜色在线| 久久av一区二区三区亚洲| 中国成人黄色视屏| 亚洲大片在线| 国产伦精品一区二区三区在线观看| 国产精品视频免费观看| 亚洲免费大片| 亚洲国产精品久久久久| 久久久精品一区二区三区| 国产一区二区三区在线观看精品| 欧美肥婆在线| 99精品欧美一区二区蜜桃免费| 亚洲综合成人婷婷小说| 亚洲国产综合在线看不卡| 国内一区二区在线视频观看| 久久人91精品久久久久久不卡| 久久嫩草精品久久久久| 国产精品综合不卡av| 欧美视频在线观看一区二区| 亚洲第一福利在线观看| 亚洲国产成人午夜在线一区| 久久久久久亚洲综合影院红桃| 一区二区三区在线视频免费观看| 男女激情视频一区| 亚洲区一区二|