摘 要: 介紹了INTEL公司推出的符合USB1.0規(guī)范的USB控制器芯片8x930Ax/Hx,,給出了該芯片的特性和功能描述,,最后介紹了USB音頻的特點(diǎn)及8x930Ax/Hx在數(shù)字音頻中的應(yīng)用,。
關(guān)鍵詞: 8x930Ax/Hx 數(shù)字音頻 USB音頻 USB控制器
1 通用串行總線和數(shù)字音頻
1.1 通用串行總線
通用串行總線(USB)是一種工業(yè)標(biāo)準(zhǔn)連接總線,,用于支持寬范圍的PC外設(shè)的設(shè)計(jì),。USB拓?fù)溆腥齻€(gè)元素:主機(jī)(Host),,集線器(Hub)和功能塊(Function),。PC是主機(jī),,而外設(shè)是功能塊,。外設(shè)通過USB電纜和協(xié)議與主機(jī)PC接口。為使能外設(shè)的多樣性,,USB協(xié)議定義了4種傳輸類型:控制,、同步、中斷和塊,。
每種外設(shè)都應(yīng)支持控制傳送以便配置和命令/狀態(tài)信息流能在主機(jī)PC和外設(shè)之間流動(dòng),。同步傳送提供可靠的總線訪問和恒定的數(shù)據(jù)率以支持CTI(Computer Telephony Integration)和音頻系統(tǒng)。中斷傳送支持像游戲桿,、鼠標(biāo)和鍵盤之類的HID(Human Input Device),,這些設(shè)備不經(jīng)常地傳送少量的數(shù)據(jù),,但帶有確定的服務(wù)周期。塊傳送支持像打印機(jī)和數(shù)字相機(jī)之類的外設(shè),,這些設(shè)備當(dāng)總線帶寬有效時(shí)傳送大量數(shù)據(jù)給PC,。
USB實(shí)行一種分塊的帶寬分配方案,如果外設(shè)超過當(dāng)前帶寬分配或等待時(shí)間要求,,那么將拒絕訪問外設(shè),。在同步和中斷傳輸中可使用高達(dá)90%的總線帶寬,剩余的10%被保留用于控制傳輸,。塊傳輸只能在帶寬有效時(shí)進(jìn)行,。
1.2 Intel8x930Ax/Hx USB控制器
計(jì)算機(jī)外設(shè)的豐富及消費(fèi)電子設(shè)備與計(jì)算機(jī)連接的實(shí)現(xiàn),擴(kuò)展了PC機(jī)的應(yīng)用空間,,同時(shí)外設(shè)的日益豐富也給用戶造成了連接上的困難,。USB技術(shù)的提出是基于采用通用連接技術(shù)實(shí)現(xiàn)外設(shè)的簡單快速連接,達(dá)到方便用戶,、降低成本,、擴(kuò)展PC機(jī)連接外設(shè)的范圍之目的。USB外設(shè)需通過USB與PC接口,,8x930Ax/Hx便是一種將PC和外設(shè)溝通的器件,。8x930Ax/Hx芯片是INTEL公司開發(fā)的具有USB功能的微控制器,既符合USB規(guī)范,,又具有USB器件的某些結(jié)構(gòu)特征,。它基于INTEL MCS251微控制器內(nèi)核,其高性能和低價(jià)格的組合使它成為PC圖象外設(shè),、數(shù)字音頻,、PC電話及存儲設(shè)備的理想解決方案。
8x930Ax和8x930Hx這兩類芯片除了與USB的接口有點(diǎn)不同外,,其余的功能完全相同,。它們都為PC外設(shè)提供了一個(gè)USB接口。另外,,8x930Hx還提供了Hub功能,,允許連接另外的PC外設(shè)或HUB。下面以8x930Ax為例說明其功能和特性,。
Intel8x930Ax USB外設(shè)控制器除集成了USB的特征外還提供了高性能大存儲器合裝和尋址,、低功耗、低噪聲,、有效的高級語言支持和增強(qiáng)的指令集以及綜合的特性和功能,。Intel8x930Ax芯片為68引腳的PLCC封裝,其引腳排列如圖1所示,8x930Ax中的USB結(jié)構(gòu)如圖2所示,。
1.2.1 收發(fā)器
USB電纜只包含4根電線:Vbus,、D+、D-和GND,。數(shù)據(jù)以12Mbs的全速信號率或1.5Mbs的低速率在D+和D-線上被差分驅(qū)動(dòng),。收發(fā)器建在芯片上,不需要外部電路,,除了在D+或D-線上用來選擇全速或低速設(shè)備的上拉限定電阻之外,。
1.2.2 SIE
SIE(Serial Interface Engine)通過包排序、信號產(chǎn)生/檢測,、CRC產(chǎn)生/校驗(yàn),、NRZI數(shù)據(jù)編碼、位填充和包標(biāo)識(PID)產(chǎn)生/解碼來處理USB通信協(xié)議,,并保證傳送到USB電纜上的數(shù)據(jù)字節(jié)以LSb開頭,。
1.2.3 FIU
FIU(Function Interface Unit)管理基于傳送類型和FIFO狀態(tài)來接收和發(fā)送USB數(shù)據(jù)。它監(jiān)視事務(wù)狀態(tài),、管理FIFO和通過中斷請求轉(zhuǎn)播控制事件給8x930Ax的CPU,。
1.2.4 FIFO
8x930Ax CPU控制器總共有8個(gè)FIFO:4個(gè)發(fā)送FIFO和4個(gè)接收FIFO。發(fā)送/接收FIFO支持4個(gè)功能塊端點(diǎn)(0~3),。端點(diǎn)0為16字節(jié),,專門用于控制傳送。端點(diǎn)1可配置到1024個(gè)字節(jié),,端點(diǎn)2和3每個(gè)為16字節(jié),,它們可用于中斷、同步或塊傳送,。發(fā)送和接收FIFO是循環(huán)存放的堆棧,支持兩個(gè)大小可變的分立數(shù)據(jù)組和作為存放數(shù)據(jù)組中的字節(jié)數(shù)用的一字節(jié)計(jì)數(shù)寄存器,。FIFO還有檢測FIFO空或滿的標(biāo)記且具有重新發(fā)送和接收當(dāng)前數(shù)據(jù)組的能力,。
1.2.5 Firmware
Firmware是USB和用戶應(yīng)用代碼之間的接口。8x930Ax的代碼可使用Intel MCS51指令集以保護(hù)用戶以往的軟件投資,、也可用MCS251指令集以便使應(yīng)用得到最佳的性能,。
8x930Ax具有的其它特征為:
·256K字節(jié)外部代碼/數(shù)據(jù)存儲器;
·1K字節(jié)片上數(shù)據(jù)RAM,;
·CPU中40字節(jié)通用目的寄存器,;
·增強(qiáng)的串口(MCS51 UART);
·3個(gè)16位定時(shí)器/計(jì)數(shù)器,;
·硬件看門狗計(jì)時(shí)器(WDT),;
·4個(gè)8位I/O口;
·2種節(jié)電模式:空閑和掉電,;
·256K字節(jié)地址空間,;
·外部總線(復(fù)合)
地址:16,、17或18位
數(shù)據(jù):8位
·0、8或16K字節(jié)片上ROM,;
·1024字節(jié)片上RAM,;
·40字節(jié)寄存器文件;
·8個(gè)中斷矢量,,與USB相關(guān)的有4個(gè),;
·用戶可選配置:外部地址范圍、等待狀態(tài),、頁模式,;
·實(shí)時(shí)等待狀態(tài);
·MCS51和MCS251微控制器代碼級兼容,;
8x930Ax USB控制器的可編程計(jì)數(shù)陣列(PCA),,為要求實(shí)時(shí)比較/捕獲、高速I/O及脈寬調(diào)制(PWM)功能的應(yīng)用增加了靈活性,。集成在8x930Ax芯片上的外設(shè)有多樣的組合,,使之成為功能強(qiáng)大的微控制器。
1.3 USB音頻
目前用PC產(chǎn)生音頻有兩種方法,。第一種是CD音頻,,與家庭立體聲壓縮光盤播放機(jī)類似,CD-ROM驅(qū)動(dòng)讀壓縮光盤和產(chǎn)生模擬信號輸出,。此模擬信號輸入PC聲卡,,經(jīng)進(jìn)一步處理后,用標(biāo)準(zhǔn)RCA插頭從PC機(jī)輸出,。通過PC產(chǎn)生音頻的第二種方法是通過從內(nèi)存讀文件給聲卡來完成,,聲卡完成解碼或處理,將數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為模擬量,,并用標(biāo)準(zhǔn)RCA插頭從PC輸出此模擬信號,,這是當(dāng)一個(gè)用戶下載一個(gè)音頻文件或從硬件驅(qū)動(dòng)播放時(shí)的使用過程。
使用PC聲卡可能存在下列缺點(diǎn):在將聲卡裝入PC插槽時(shí),,聲卡將占用像中斷,、端口地址一樣的PC資源。另外,,聲卡必須被插入PC機(jī)箱內(nèi),,因此必須重新配置,這在許多用戶看來是困難的,。機(jī)箱內(nèi)還有電磁干擾(EMI)噪聲,,這會限制機(jī)箱內(nèi)音頻方案的聲音質(zhì)量。在從CD-ROM到聲卡的過程中存在模擬信號,因?yàn)樵O(shè)計(jì)的復(fù)雜性,,聲卡限制了通道數(shù)目,。這會妨礙它們的音階能力,而且在沒有給音箱增加功率時(shí)無法在多通道環(huán)繞聲系統(tǒng)中使用,。
USB位于機(jī)箱外,,因此很適合于音頻應(yīng)用。音頻數(shù)據(jù)在PC機(jī)內(nèi)是數(shù)字的,,它轉(zhuǎn)換為模擬量時(shí)恰好位于音箱放大電路前面,,這將改善聲音的質(zhì)量。數(shù)字音頻具有更高的逼真性,,這在音頻的高端更明顯,。基于USB的音頻方案很容易被改變以允許音箱廠商在主機(jī)PC和USB控制器之間不用增加任何硬件就可提高音頻的質(zhì)量,。例如,,具有多于兩個(gè)音頻數(shù)據(jù)通道是可能的,以豐富用戶的多媒體終端,。類似地,,易于即插即用的特性使USB結(jié)構(gòu)更吸引人。這樣,,數(shù)據(jù)處理可在主機(jī)上完成,,為音箱制造商提供了一個(gè)降低存儲成本的方法,用戶只需買一對有USB兼容能力的音箱即可,。
USB也具有處理音頻應(yīng)用要求的帶寬,,CD具有44.1kHz的采樣率,每個(gè)采樣為16位,。因?yàn)閁SB的幀速率是10ms內(nèi),,音頻外設(shè)將接收包含44個(gè)采樣的9幀數(shù)據(jù)及包含45個(gè)采樣的1幀數(shù)據(jù)。也就是說,,在10ms的時(shí)間周期內(nèi),,外設(shè)將接收9×44+45=441個(gè)采樣,平均每毫秒接收44.1個(gè)采樣,,等于44.1kHz的采樣率。
假設(shè)音頻數(shù)據(jù)為二個(gè)通道,,加上協(xié)議開銷10個(gè)字節(jié),,和最壞情況下16%的位填充,播放系統(tǒng)需控制(45×16×2+10)×1.16=1682位/ms,,或接近210字節(jié)/ms,。每個(gè)USB幀具有1024字節(jié)的數(shù)據(jù)負(fù)荷。因此,立體聲音頻信號的播放大約會消耗可用USB帶寬的20%,。每個(gè)210字節(jié)包中,,有(45×16×2)/8=180字節(jié)的原始音頻數(shù)據(jù)。
2 8x930Ax/Hx接口
2.1 8x930Ax/Hx與USB的接口
8x930Ax/Hx與USB除了上述接口外,,對于音頻應(yīng)用還具有以下特點(diǎn):①對于給定數(shù)據(jù)有效載荷大小,,音頻應(yīng)用將使用8x930Ax/Hx的端點(diǎn)1,且8x930Ax/Hx端點(diǎn)1的1024字節(jié)FIFO將被配置成2個(gè)512字節(jié),。②數(shù)據(jù)傳送類型采用同步傳送,。在音頻流發(fā)送期間,從幀X來的數(shù)據(jù)將被讀入A,。在幀(X+1)的開始點(diǎn),,A中的數(shù)據(jù)將變?yōu)闊o效,而從主機(jī)來的數(shù)據(jù)被讀入B,。在幀(X+2)的開始點(diǎn),,B中的數(shù)據(jù)無效,從主機(jī)來的數(shù)據(jù)將覆蓋A,。需注意的是,,在同步傳送中不使用重新發(fā)送的特性。③USB協(xié)議要求傳輸?shù)臄?shù)據(jù)必須以LSb和LSB開頭,。在一個(gè)給定字節(jié)內(nèi)由SIE負(fù)責(zé)從LSb到MSb進(jìn)行發(fā)送,因此用戶不必?fù)?dān)心LSb開頭,,但用戶需保證多字節(jié)數(shù)據(jù)包以LSB開頭進(jìn)行傳送,。
2.2 8x930Ax/Hx與音頻編解碼器的接口
一旦數(shù)據(jù)從USB電纜上俘獲進(jìn)入收發(fā)器FIFO,有二種方法將數(shù)據(jù)從8x930Ax/Hx傳送到音頻編解碼器,。第一種是通過串行I/O端口,。第二種是通過系統(tǒng)總線(8位I/O端口0和2)。對于同步傳送,,8x930Ax/Hx被配置成高速設(shè)備,,運(yùn)行在12MHz。
串行I/O端口支持與Modem和其它外部外設(shè)的通信,。它能工作在3個(gè)全雙工異步模式或1個(gè)半雙工同步模式,。在半雙工模式(模式0),時(shí)鐘由RXD引腳輸出,,同時(shí)數(shù)據(jù)也由RXD引腳發(fā)送和接收,。通過使用串行端口控制(SCON)和串行緩沖(SBUFF)寄存器來控制傳送。與發(fā)送/接收FIFO類似,,數(shù)據(jù)以LSb開頭傳送,。
另外的接口信號通過使用剩余的I/O端口(端口1和3)來控制,,SCON寄存器中的TI位能被登記以決定一個(gè)數(shù)據(jù)采樣傳送的完成,由此觸發(fā)LRCLK信號,。因?yàn)?x930Ax/Hx只有一個(gè)串行I/O口,,控制信息的傳送需被明確編程。系統(tǒng)總線(端口0和2)用來與外部存儲器進(jìn)行通信,。外部總線通過使用接口的8位端口支持16位尋址和8位數(shù)據(jù),。一個(gè)端口用于8位地址信息而另8位端口則是地址和數(shù)據(jù)復(fù)合使用的,從音頻編解碼的觀點(diǎn)來看,,不管8x930Ax/Hx是否被配置成頁模式或非頁模式,。
使用并行接口的音頻編解碼器可看作是第二個(gè)存儲設(shè)備。音頻編解碼器可使用控制接口請求數(shù)據(jù)樣品或控制信息,,在控制器檢測到請求后,,它把數(shù)據(jù)寫入到系統(tǒng)總線上。應(yīng)特別注意地址解碼和總線定時(shí),。
8x930Ax/Hx的第17和18位尋址模式是非常有用的,。外部PAL或邏輯門能解碼這二個(gè)信號以產(chǎn)生音頻編解碼器的使能信號??刂菩盘柕膫魉涂捎枚丝?和3來進(jìn)行。與串口I/O方法類似,,在這些引腳上的信號轉(zhuǎn)換都應(yīng)被明確編程,。
8x930Ax/Hx與Analog Device公司16位并行立體聲音頻編解碼器AD1845的接口框圖如圖3所示。
8x930Ax/Hx提供了1K的片上數(shù)據(jù)存儲器,。所有執(zhí)行碼都在外部存儲器(ROM或RAM)或片上ROM上。與WR#有關(guān)的數(shù)據(jù)字節(jié)的建立和保持時(shí)間對于AD1845是10ns和15ns,,對于8x930Ax/Hx是68ns和28ns,,即它們的建立和保持時(shí)間是兼容的。然而在寫脈沖寬度時(shí)有差異,,AD1845要求最少寬度為100ns,,而8x930Ax/Hx的缺省配置只提供71.8ns,。因此,,8x930Ax/Hx須用外部等待狀態(tài)來配置,這將增加WR#寬度到154ns,。因?yàn)槌绦蛟赗OM外執(zhí)行,所以8x930Ax/Hx的WR#信號只連接到音頻編解碼器,。
參考文獻(xiàn)
1 8x930Ax/Hx USB Microcontroller User's Manual.http://www.Intel.com
2 Parallel-Port 16-Bit SoundportStereo Codec AD1845. http://www.Analog.com