• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種傳輸實(shí)時(shí)USB音頻的串行接口引擎設(shè)計(jì)*

      2013-12-30 09:48:44喬麗萍王聰華
      電子器件 2013年4期
      關(guān)鍵詞:描述符狀態(tài)機(jī)解碼

      靳 釗,喬麗萍,王聰華,郭 晨,劉 策

      (1.長(zhǎng)安大學(xué)信息工程學(xué)院,西安710064;2.西藏民族學(xué)院信息工程學(xué)院,陜西咸陽(yáng)712082)

      隨著VoIP產(chǎn)業(yè)的迅猛發(fā)展,與其相關(guān)的高品質(zhì)音頻芯片發(fā)展空間巨大。USB是應(yīng)用面最廣的PC外設(shè)接口,其實(shí)時(shí)同步數(shù)據(jù)傳輸模式適合于傳送高速實(shí)時(shí)音視頻數(shù)據(jù)流[1-2],因此USB音頻類設(shè)備具備較大的應(yīng)用價(jià)值。MP3、MP4等設(shè)備的流行普及,使USB接口的應(yīng)用更為廣泛,若能為這些便攜設(shè)備增加USB音頻功能,它們會(huì)成為集成語(yǔ)音聊天、網(wǎng)絡(luò)電話等功能的通信終端設(shè)備,這將大大提高設(shè)備的兼容性,擴(kuò)展其應(yīng)用領(lǐng)域。

      串行接口引擎模塊[3]是USB音頻設(shè)備硬件結(jié)構(gòu)中的一個(gè)重要的組成部分,負(fù)責(zé)完成底層數(shù)據(jù)的處理工作。本文根據(jù)有限狀態(tài)機(jī)理論,首先得到實(shí)現(xiàn)數(shù)據(jù)流功能的有限狀態(tài)機(jī),進(jìn)一步通過(guò)狀態(tài)機(jī)控制串行接口引擎,完成對(duì)音頻數(shù)據(jù)的處理。設(shè)計(jì)通過(guò)FPGA硬件平臺(tái)驗(yàn)證,成本低、可靠性高及多點(diǎn)數(shù)據(jù)采集,既可作為獨(dú)立的產(chǎn)品,也可以方便地集成到其他多媒體采集卡上。

      1USB Audio的設(shè)備架構(gòu)與設(shè)備描述符

      USB設(shè)備架構(gòu)描述的是USB設(shè)備中間層的通用屬性與操作[4]。結(jié)合USB音頻類設(shè)備協(xié)議,圖1給出了本設(shè)計(jì)的一個(gè)包含錄音、放音功能的USB音頻設(shè)備架構(gòu)。設(shè)備包含4個(gè)功能節(jié)點(diǎn) IT1、OT3、IT4、OT5,3 個(gè)接口 IF0、IF1 和 IF2。

      根據(jù)USB音頻類協(xié)議以及本文設(shè)計(jì)的音頻設(shè)備架構(gòu),可以確定USB描述符表,功能是將設(shè)備接口參數(shù)、結(jié)構(gòu)及邏輯關(guān)系報(bào)告給主機(jī)驅(qū)動(dòng)程序。USB設(shè)備驅(qū)動(dòng)程序只有收到完整的描述符后,才能“理解”設(shè)備的各種接口、端點(diǎn)及功能節(jié)點(diǎn)的配置信息及其邏輯關(guān)系。從邏輯分析儀抓取的包數(shù)據(jù)可以分析該設(shè)備與主機(jī)之間是否正確建立通信[5]。

      圖1 USB Audio設(shè)備架構(gòu)

      圖2 串行接口引擎框圖

      2 串行接口引擎的結(jié)構(gòu)及實(shí)現(xiàn)

      2.1 串行接口引擎結(jié)構(gòu)

      傳統(tǒng)的USB音頻設(shè)備大多使用MCU+USB來(lái)構(gòu)成[6],本設(shè)計(jì)以串行接口引擎完成USB通信系統(tǒng)的底層數(shù)據(jù)處理和鏈路的控制,使用狀態(tài)機(jī)取代MCU工作以降低成本。根據(jù)USB協(xié)議以及USB音頻類協(xié)議,串行接口引擎主要分成PHY接口、編碼器、編碼狀態(tài)機(jī)、譯碼器、譯碼狀態(tài)機(jī)等部分。圖2給出串行接口引擎的結(jié)構(gòu)框圖,圖中的ROM存儲(chǔ)設(shè)備描述符表,RAM存儲(chǔ)耳機(jī)和麥克風(fēng)的音頻數(shù)據(jù)。

      2.2 PHY接口設(shè)計(jì)

      USB Audio的PHY接口模塊直接與主機(jī)的物理PHY接口相連,接收來(lái)自主機(jī)的差分放大信號(hào)并向其發(fā)送NRZI差分信號(hào),因此該模塊分成接收RX與傳送TX兩部分。Phy_dpi,phy_dmi是經(jīng)過(guò)PHY接口轉(zhuǎn)換的D+、D-,phy_di是實(shí)際傳輸?shù)臄?shù)據(jù)??偩€工作的空閑態(tài)與工作態(tài)在邏輯上分別與J態(tài)(邏輯電平1)和K態(tài)(邏輯電平0)等價(jià)[6]。通過(guò)控制D+和D-線從空閑態(tài)到相反的邏輯電平,就可以實(shí)現(xiàn)源端口的包發(fā)送。dpllvalid信號(hào)為1表示USB包發(fā)送結(jié)束(EOP),串行輸入的數(shù)據(jù)有效,開始對(duì)主機(jī)發(fā)送數(shù)據(jù)進(jìn)行處理。復(fù)位條件為EOP有效。NCVerilog仿真波形見圖3。PHY接口發(fā)送TX部分,以12MHz的速率將資料送給主機(jī)PHY??刂艱+和D-兩位同時(shí)為0到達(dá)SE0態(tài),標(biāo)志包發(fā)送結(jié)束;控制D+和D-線的一位,使D+為1后到達(dá)J態(tài),可實(shí)現(xiàn)EOP信號(hào)的發(fā)送。

      圖3 PHY RX仿真波形

      圖4 解碼模塊仿真波形

      2.3 解碼與編碼模塊設(shè)計(jì)

      解碼模塊分成NRZI解碼、解碼去‘0’、CRC校驗(yàn)、串并轉(zhuǎn)換。在包傳送時(shí),USB使用一種NRZI(None Return Zero Invert,無(wú)回零反向碼)編碼方案[7]。解碼過(guò)程中,若總線數(shù)據(jù)不變動(dòng)(0->0,1->1),則檢出“1”;有變動(dòng)(0->1,1->0),則檢出“0”。采樣信號(hào)dpllvalid有效時(shí),得到NRZI解碼后的數(shù)據(jù)rxnrzidata。為了確保信號(hào)發(fā)送的準(zhǔn)確性,傳送設(shè)備要進(jìn)行位插入操作,即在數(shù)據(jù)被編碼前,在數(shù)據(jù)流每6個(gè)連續(xù)‘1’后插入一個(gè)‘0’,強(qiáng)迫NRZI碼發(fā)生變化。接收端通過(guò)CRC檢測(cè)包在傳輸過(guò)程中是否發(fā)生損壞[8]。令牌包采用5 bit CRC校驗(yàn),數(shù)據(jù)包采用16 bit CRC校驗(yàn)。串并轉(zhuǎn)換模塊將串行數(shù)據(jù)轉(zhuǎn)換為8 bit的并行數(shù)據(jù),計(jì)數(shù)器rxbitcnt對(duì)接收到的NRZI解碼數(shù)據(jù)進(jìn)行計(jì)數(shù),計(jì)數(shù)器rxbytecnt對(duì)接收到的字節(jié)數(shù)計(jì)數(shù),產(chǎn)生有效命令解碼信息和數(shù)據(jù),以供解碼狀態(tài)機(jī)使用。圖4給出了解碼仿真波形。編碼過(guò)程完全是解碼過(guò)程的逆過(guò)程,并串轉(zhuǎn)換模塊將8 bit并行數(shù)據(jù)轉(zhuǎn)成1 bit串行數(shù)據(jù),之后產(chǎn)生CRC校驗(yàn)位,經(jīng)過(guò)插入0 bit,NRZI編碼后送出。

      2.4 編碼及譯碼狀態(tài)機(jī)

      編碼及譯碼狀態(tài)機(jī)[9]是數(shù)據(jù)流處理部分的核心模塊,控制和協(xié)調(diào)其他各個(gè)功能模塊的正常工作。根據(jù)USB音頻設(shè)備所要發(fā)送接收的數(shù)據(jù)分組的基本格式,以及USB協(xié)議規(guī)定的總線傳輸方式,可以將USB音頻設(shè)備的數(shù)據(jù)分組的各個(gè)部分作為一個(gè)狀態(tài),控制后面的模塊工作[10]。圖5給出了編碼及譯碼模塊的數(shù)據(jù)流狀態(tài)機(jī)。

      圖5 數(shù)據(jù)流狀態(tài)機(jī)

      解碼狀態(tài)機(jī)是由USB_IDLE,USB_RX,USB_TX 3個(gè)狀態(tài)組成;而編碼狀態(tài)機(jī)是由USB_TX、USBtx_start、USBtx_sync、USBtx_pid、USBtx_iso、USBtx_data、USBtx_crc、USB_EOP 8個(gè)狀態(tài)組成。USB任何操作都由主機(jī)發(fā)起,初始情況下狀態(tài)機(jī)處于IDLE狀態(tài)。當(dāng)探測(cè)到數(shù)據(jù)由空閑態(tài)到相反的邏輯電平時(shí),狀態(tài)機(jī)從USB_IDLE進(jìn)入U(xiǎn)SB_RX,解碼狀態(tài)機(jī)開始接收數(shù)據(jù)包。當(dāng)判斷為主機(jī)發(fā)起SETUP控制傳輸,收到DATA0包,此時(shí)USB Audio需回ACK給主機(jī),狀態(tài)機(jī)跳入U(xiǎn)SB_TX;當(dāng)判斷主機(jī)發(fā)起端點(diǎn)0的IN控制傳輸,收到IN包,此時(shí)USB Audio需回描述符給主機(jī),狀態(tài)機(jī)跳入U(xiǎn)SB_TX;當(dāng)判斷主機(jī)發(fā)起端點(diǎn)3的IN同步傳輸,收到IN包,此時(shí)USB Audio需輸出同步音頻數(shù)據(jù)給主機(jī),狀態(tài)機(jī)跳入U(xiǎn)SB_TX。解碼狀態(tài)機(jī)主要功能用以處理控制傳輸和同步傳輸。狀態(tài)跳入U(xiǎn)SB_TX態(tài)時(shí),解碼狀態(tài)機(jī)工作結(jié)束。在初始情況下,編碼狀態(tài)機(jī)處于USBtx_start態(tài),輸出字節(jié)位計(jì)數(shù)器清0后,狀態(tài)機(jī)跳入U(xiǎn)SBtx_sync,輸出同步字段8'b0000_0001,輸出字節(jié)位計(jì)數(shù)器再次清0后,狀態(tài)機(jī)跳入U(xiǎn)SBtx_pid,之后根據(jù)輸出數(shù)據(jù)分組的具體情況跳轉(zhuǎn)狀態(tài)。例如:當(dāng)接收到端點(diǎn)0的OUT包,USBtx_pid態(tài)輸出 PID為 ACK,狀態(tài)跳入U(xiǎn)SB_EOP;當(dāng)接收到端點(diǎn)3的IN包,USBtx_pid態(tài)輸出PID為DATA0,狀態(tài)跳入U(xiǎn)SBtx_iso,同步數(shù)據(jù)輸出結(jié)束后,狀態(tài)跳入U(xiǎn)SBtx_crc,之后跳入U(xiǎn)SB_EOP。狀態(tài)機(jī)仿真波形如圖6所示。

      圖6 狀態(tài)機(jī)仿真波形

      3 FPGA硬件驗(yàn)證結(jié)果

      提出的串行接口引擎電路由Verilog HDL編程實(shí)現(xiàn),通過(guò)NC-Verilog軟件仿真后,采用Altera公司的QuartusⅡ開發(fā)環(huán)境綜合并下載cyclone2 EP2C35芯片驗(yàn)證平臺(tái)上,DAC為PT8211,ADC使用HI5812。通過(guò)USB邏輯分析儀抓取數(shù)據(jù)分析,圖7列舉了USB Audio正確回復(fù)給主機(jī)設(shè)備的描述符。同時(shí)USB Audio可以正確回復(fù)配置描述符、音頻控制接口描述符、音頻數(shù)據(jù)流接口描述符等,此處不再逐一列舉。從分析儀抓取的數(shù)據(jù)中,我們看到USB Audio能夠正確回復(fù)設(shè)備描述符給主機(jī),可以被主機(jī)識(shí)別檢測(cè)到的,并且在FPGA驗(yàn)證平臺(tái)上,聲音經(jīng)過(guò)ADC芯片采集后通過(guò)USB Audio正常實(shí)現(xiàn)錄音以及放音功能。

      圖7 USB Audio設(shè)備描述符

      4 結(jié)論

      本文在對(duì)USB協(xié)議中的串行接口引擎部分研究的基礎(chǔ)上,提出了一種USB Audio串行接口引擎模塊的設(shè)計(jì)方法,并用硬件描述語(yǔ)言加以實(shí)現(xiàn)。經(jīng)FPGA硬件驗(yàn)證,分析數(shù)據(jù)無(wú)誤,且錄放音功能正常實(shí)現(xiàn)。測(cè)試表明設(shè)計(jì)功能穩(wěn)定,電路結(jié)構(gòu)簡(jiǎn)單,具備一定的通用性和可移植性。

      [1]Sostari D,Vinko D,Svedek T.USB RF Front-End of the DRM Receiver under LabView API Environment[C]//Proceedings of the 35th International Convention of MIPRO.2012,218-221.

      [2]曹玲芝,張恒.視頻處理系統(tǒng)高速USB接口設(shè)計(jì)[J].電子器件,2007,30(4):1337-1340.

      [3]基于nRF2401無(wú)線USB串口轉(zhuǎn)換模塊[J].電子器件,2009,32(4):778-780.

      [4]Universal Serial Bus Device Class Definition for Audio Device.Release 1.0[EB/OL].http://www.usb.org/developers/devclass_docs/audio10.pdf.March 18,1998.

      [5]雍尚剛,鄧龍江,朱向東.USB設(shè)備控制器IP核系統(tǒng)設(shè)計(jì)及FPGA 實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2005,27(12):86-89.

      [6]Xu Lijun,Gao Guohong,Li Xueyong et al.Video Collection System Based on Embedded System and USB Communication[C]//Second International Conference on Communication Systems Networks and Applications(ICCSNA).2010:112-114.

      [7]Universal Serial Bus Specification.Revision1.1[EB/OL].http://esd.cs.ucr.edu/webres/usb11.pdf.1998.

      [8]Universal Serial Bus Device Class Definition for Audio Data Formats.Release 1.0[EB/OL].http://www.usb.org/developers/devclass_docs/frmts10.pdf.March 18,1998.

      [9]Ciletti M D.Verilog HDL高級(jí)數(shù)字設(shè)計(jì)[M].2版.北京:電子工業(yè)出版,2010:200-623.

      [10]吳茶花.USB音頻系統(tǒng)設(shè)計(jì)[D].國(guó)防科學(xué)技術(shù)大學(xué).2010:4-32.

      猜你喜歡
      描述符狀態(tài)機(jī)解碼
      《解碼萬(wàn)噸站》
      基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
      解碼eUCP2.0
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      NAD C368解碼/放大器一體機(jī)
      Quad(國(guó)都)Vena解碼/放大器一體機(jī)
      Linux單線程并發(fā)服務(wù)器探索
      利用CNN的無(wú)人機(jī)遙感影像特征描述符學(xué)習(xí)
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
      江油市| 灯塔市| 遂宁市| 苍山县| 民乐县| 丰台区| 平乐县| 泸州市| 博野县| 营口市| 修武县| 闽侯县| 类乌齐县| 含山县| 滕州市| 伽师县| 永州市| 永德县| 拉萨市| 噶尔县| 白玉县| 建平县| 辰溪县| 安阳市| 太仓市| 阳泉市| 田阳县| 宝丰县| 淮滨县| 家居| 启东市| 略阳县| 登封市| 郁南县| 中江县| 阿鲁科尔沁旗| 瑞金市| 涞水县| 简阳市| 萝北县| 普定县|