近年來產(chǎn)品層出不窮,USB類在USB開發(fā)者論壇的努力下,成為一種標準的規(guī)范,USB也開始在市場上悄然出現(xiàn)。因為USB聲卡內(nèi)置了DAC和有源功放,音頻以數(shù)字方式進入USB聲卡,完全杜絕了PC的內(nèi)部干擾,所以,USB聲卡將有可能成為現(xiàn)有內(nèi)置聲卡的替代品。本文介紹了一種基于ARM處理器的USB聲卡設計。
USB聲卡原理
由USB聲卡數(shù)據(jù)流圖(見圖1)可以看出USB聲卡的工作原理。在主機端播放音樂時,應用軟件或驅(qū)動程序把各類音頻信號轉(zhuǎn)換為統(tǒng)一的格式,如PCM、MPEG等格式的數(shù)據(jù)流,通過主機的USB接口發(fā)送給USB聲卡。聲卡的USB接口接收到數(shù)據(jù)后,通過I2S接口把并行音頻數(shù)據(jù)轉(zhuǎn)為串行,再發(fā)送給音頻編解碼芯片進行D/A轉(zhuǎn)換,即可在音頻芯片連接的揚聲器中發(fā)音。錄音過程和播放過程正好相反。
圖1 USB 聲卡數(shù)據(jù)流
硬件設計
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提供標準的I2S接口,可以直接和S3C2410的I2S引腳連接。另外,此芯片還提供標準的L3、麥克風和揚聲器接口。L3接口的引腳分別連到S3C2410的3個GPIO輸出引腳上,通過GPIO控制L3接口。UDA1341TS音頻芯片集成數(shù)字化音頻和混頻器功能。數(shù)字化音頻功能可以播放數(shù)字化聲音或錄制聲音,因為包括這個功能,所以常把此類芯片稱為CODEC設備。混頻器用來控制各種輸入/輸出的音量大小等,在本芯片中通過L3接口進行控制。
圖2 USB聲卡拓撲圖
軟件設計
軟件設計包括兩部分:USB聲卡固件程序設計和主機端Windows驅(qū)動設計。因為USB音頻類設備是一種標準設備,在Windows 操作系統(tǒng)上有標準的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聲卡的拓撲圖(見圖2),然后再根據(jù)拓撲圖和USB音頻類描述符的協(xié)議,寫出USB聲卡的描述符。
USB聲卡的描述符包括5部分,分別為設備描述符、配置描述符、接口描述符、端點描述符和字符串描述符。接口描述符是其中的難點。USB聲卡的接口描述符包括兩部分:音頻控制(AudioControl)接口描述符和音頻數(shù)據(jù)流(AudioStreaming)接口描述符。
1. USB音頻控制接口描述符。根據(jù)USB聲卡的拓撲圖所示,當聲卡用于回放功能時,其聲卡功能的控制流程,通過IT1(Input Teminal),OT3(Out Teminal)和Feature單元表示,IT1表示的是PC向USB聲卡發(fā)送的音頻數(shù)據(jù)流,OT3表示的是發(fā)向DAC的數(shù)據(jù)流,在IT1和OT3之間的Feature單元用于調(diào)節(jié)音量和音效功能等。當聲卡執(zhí)行錄音功能時,USB的功能拓撲通過IT2,OT4表示,IT2表示A/D采樣的音頻數(shù)據(jù)流,OT4表示的是通過USB接口發(fā)向PC的數(shù)據(jù)流。USB音頻控制接口的數(shù)據(jù)傳輸一般使用默認端點0。
在USB聲卡的拓撲圖中,F(xiàn)表示的是USB音頻類的Feature單元,F(xiàn)eature單元的主要作用是控制音量、靜音、低音等。如果在描述符中聲明了Feature單元,在Windows操作系統(tǒng)下,控制面板中的聲音和音頻設備的一些功能才能使用。那么在Windows中進行調(diào)節(jié)音量等控制時,就會觸發(fā)固件程序?qū)DA1341TS芯片L3接口的控制。
2. USB音頻數(shù)據(jù)流接口描述符。因為USB 音頻有回放和錄音兩種功能,所以需要兩個同步數(shù)據(jù)流接口,兩個接口使用雙向端點1進行數(shù)據(jù)傳輸。
通過USB聲卡的拓撲圖,可以分析出音頻接口的流程和功能,從而得出USB聲卡的描述符。
(轉(zhuǎn)載《》電子技術CHINA網(wǎng))