• 
    

    
    

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

      USB2.0設(shè)備控制器中工作模式控制電路設(shè)計(jì)

      2014-07-25 07:43:36劉清明
      關(guān)鍵詞:枚舉控制電路數(shù)據(jù)包

      劉清明,方 毅,王 永

      (1.中國科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥230027;2.中國科學(xué)技術(shù)大學(xué) 信息科學(xué)實(shí)驗(yàn)中心,安徽 合肥230027)

      通用串行總線USB(Universe Serial Bus)的出現(xiàn)大大簡化了計(jì)算機(jī)與外設(shè)間的互聯(lián),USB具有使用方便、支持多種速率傳輸、高可靠性以及價格低廉等非常優(yōu)秀的特點(diǎn)[1]。USB發(fā)展非常迅速,目前已經(jīng)成為最常用的接口方式。USB的發(fā)展歷史從最初的只支持低速(1.5 Mb/s)和全速(12 Mb/s)的 USB1.0、USB1.1,發(fā)展到支持全速(12 Mb/s)和高速(480 Mb/s)的 USB2.0,最新標(biāo)準(zhǔn) USB3.1于2013年發(fā)布,USB3.1支持全速和高速傳輸,并在USB3.0超高速模式(5 Gb/s)基礎(chǔ)上把速度提升到10 Gb/s。鑒于USB3.0、USB3.1的主機(jī)和集線器向下兼容 USB2.0全速、高速設(shè)備,設(shè)計(jì)開發(fā)一款USB2.0設(shè)備控制器有重要的實(shí)際意義[2]。USB2.0的設(shè)備連接到主機(jī)或者集線器之后,默認(rèn)以全速方式連接,之后主機(jī)發(fā)出復(fù)位信號給所連接的設(shè)備,設(shè)備控制器需要檢測到復(fù)位信號并作出相應(yīng)的動作,同時進(jìn)行高速握手,高速握手成功后設(shè)備以高速傳輸模式與主機(jī)通信。同樣,USB總線一定時間沒有動作,為了省電設(shè)備需進(jìn)入掛起(suspend)狀態(tài),當(dāng)總線有動作會把掛起的設(shè)備喚醒。這些都在USB2.0設(shè)備控制器的工作模式控制電路中完成。

      1 USB設(shè)備控制器結(jié)構(gòu)

      圖1所示為USB2.0系統(tǒng)的功能框圖,由USB主機(jī)和USB PHY、USB SIE、應(yīng)用四部分組成。其中USB2.0設(shè)備控制器包含物理層(PHY)和串行接口引擎SIE(Serial Interface Engine)兩部分。

      圖1 USB2.0系統(tǒng)功能模塊圖

      文中設(shè)計(jì)的USB SIE包括:工作模式控制、數(shù)據(jù)包處理、USB 事務(wù)處理、枚舉控制、TX buffer、RX buffer、設(shè)備描述符存儲器。其中工作模式控制模塊完成復(fù)位檢測、高速握手、掛起和喚醒。設(shè)備與主機(jī)建立高速連接后,在通信之前,主機(jī)需要了解設(shè)備并為設(shè)備分配驅(qū)動程序,枚舉實(shí)現(xiàn)這個過程[3]。枚舉過程首先是主機(jī)向默認(rèn)地址發(fā)送Get Desriptor以獲取設(shè)備的描述信息,主機(jī)了解設(shè)備的基本信息后給設(shè)備分配新地址。完成地址分配后,主機(jī)向分配的新地址發(fā)送請求獲取設(shè)備能力,以給設(shè)備加載適合的驅(qū)動程序,驅(qū)動程序?qū)υO(shè)備進(jìn)行配置。枚舉過程由枚舉控制、USB事務(wù)處理、數(shù)據(jù)包處理、設(shè)備描述符存儲器等模塊共同完成。例如,枚舉開始階段主機(jī)發(fā)送Get Desriptor以獲取設(shè)備描述信息,這個控制傳輸事務(wù)包含 3個階段:令牌包、數(shù)據(jù)包、握手包[4]。USB2.0 SIE的數(shù)據(jù)包模塊檢測接收到的令牌包的包標(biāo)識(PID)并進(jìn)行校驗(yàn);校驗(yàn)無誤后接收數(shù)據(jù)包,并進(jìn)行PID校驗(yàn)和對數(shù)據(jù)的CRC校驗(yàn);校驗(yàn)無誤后向主機(jī)返回握手包ACK,以表明一個控制傳輸事務(wù)的完成,否則丟棄接收到的數(shù)據(jù)包并向主機(jī)發(fā)送NAK握手包。枚舉控制模塊根據(jù)這個事務(wù)判斷接收到的是Get Desriptor,讀取存儲在描述符存儲器的設(shè)備描述符,以IN事務(wù)發(fā)送給主機(jī)。這樣枚舉過程的Get Desriptor控制傳輸完成。工作模式控制電路的正常工作是設(shè)備控制器與主機(jī)通信并進(jìn)行數(shù)據(jù)交互的前提,本文重點(diǎn)介紹此電路的設(shè)計(jì)。

      2 工作模式控制電路設(shè)計(jì)

      為判斷設(shè)備應(yīng)該工作在何種狀態(tài),通過檢測USB總線上的狀態(tài)及其持續(xù)時間來確定。因此程序中設(shè)計(jì)使用了兩個計(jì)數(shù)器timer1和timer2,通過使用cleartimer1和cleartimer2兩個變量來靈活控制兩個計(jì)數(shù)器的計(jì)數(shù),進(jìn)而實(shí)現(xiàn)精確定時。

      圖2為工作模式控制電路的狀態(tài)轉(zhuǎn)換圖,主要實(shí)現(xiàn)4個主要功能:高速握手(highspeed handshake、設(shè)備掛起(suspend)、掛起恢復(fù)(resume)、復(fù)位檢測。

      圖2 工作模式控制電路狀態(tài)圖

      2.1 高速握手

      USB2.0設(shè)備連接到主機(jī)后,主機(jī)給設(shè)備供電并發(fā)送復(fù)位信號復(fù)位設(shè)備,之后設(shè)備進(jìn)入全速模式工作,由圖 2所示在 fullspeed狀態(tài)檢測到 SE0(linestate[1:0]=00)持續(xù)2.5 μs后,高速握手開始,設(shè)備控制器進(jìn)入 sendchirp狀態(tài),設(shè)備向主機(jī)發(fā)送一個持續(xù)時間大于1 ms的K(linestate[1:0]=01)信號以檢測主機(jī)是否支持高速模式。設(shè)備進(jìn)入recvchirp狀態(tài)并準(zhǔn)備接收來自主機(jī)的JK序列。主機(jī)支持高速并檢測到K之后,向設(shè)備發(fā)送JKJKJK序列以檢測設(shè)備是否支持高速模式。設(shè)備控制器在recvchirp狀態(tài)成功檢測到3對JK序列后高速握手成功,進(jìn)入到highspeed模式工作;否則,設(shè)備以全速模式工作。

      2.2 設(shè)備掛起

      根據(jù)USB2.0協(xié)議,為了減小功耗,當(dāng)總線3 ms沒有動作時,設(shè)備需進(jìn)入掛起(suspend)狀態(tài),設(shè)備在掛起狀態(tài)只能消耗小于500 μA的電流,并且進(jìn)入掛起后設(shè)備需要保留原來的狀態(tài)。

      (1)全速模式掛起:檢測到總線狀態(tài)為SE0達(dá)到 3 ms,設(shè)備從fullspeed狀態(tài)進(jìn)入suspend狀態(tài)。

      (2)高速模式掛起:設(shè)備工作在高速模式時,由于高速復(fù)位和高速掛起都是發(fā)送一個大于3 ms的總線空閑信號,因此設(shè)備需要區(qū)分這兩個事件。如圖2,處于highspeed狀態(tài)時,設(shè)備檢測到總線空閑(SE0)3 ms,進(jìn)入hsrevert狀態(tài)。之后檢測總線狀態(tài)不為SE0,此后設(shè)備掛起。假如在 hsrevert狀態(tài)后還檢測到 SE0持續(xù) 100 μs,則判斷為高速復(fù)位,clrtimer2=1。設(shè)備狀態(tài)轉(zhuǎn)換到sendchirp狀態(tài),開始設(shè)備的高速握手。

      2.3 掛起恢復(fù)

      設(shè)備處于掛起狀態(tài)時,在它的上行口接收到任何非空閑信號時可以使設(shè)備恢復(fù)工作[5]。

      (1)全速掛起恢復(fù):設(shè)備從掛起狀態(tài)起檢測到的不是持續(xù)的J,則恢復(fù)到fullspeed狀態(tài),以全速模式工作。

      (2)高速掛起恢復(fù):掛起時保留著高速連接狀態(tài),highspeed=1且hssupport=1,掛起恢復(fù)需要判斷是由總線動作引起還是系統(tǒng)復(fù)位引起。設(shè)備中測到總線狀態(tài)為SE0,說明是由復(fù)位引起的掛起恢復(fù),設(shè)備狀態(tài)進(jìn)入suspreset,然后檢測到 SE0持續(xù) 2.5 μs后,進(jìn)入高速握手過程sendchirp狀態(tài);反之,檢測到掛起恢復(fù)信號 K,則設(shè)備從掛起恢復(fù)到高速模式。

      2.4 復(fù)位檢測

      集線器通過在端口驅(qū)動一個SE0狀態(tài)向所連接的USB設(shè)備發(fā)出復(fù)位信號。復(fù)位操作可以通過USB系統(tǒng)軟件驅(qū)動集線器端口發(fā)出復(fù)位信號,也可以在設(shè)備端RESET信號置1,進(jìn)行硬件復(fù)位。

      (1)設(shè)備是從掛起狀態(tài)復(fù)位:在suspend狀態(tài)檢測到SE0時,設(shè)備跳轉(zhuǎn)到suspreset狀態(tài),檢測總線狀態(tài)為超過2.5 μs的SE0后設(shè)備啟動高速握手檢測,即進(jìn)入sendchirp狀態(tài)。

      (2)設(shè)備從非掛起的全速狀態(tài)復(fù)位:設(shè)備在檢測到2.5 μs<T<3.0 ms的 SE0狀態(tài)后啟動高速握手檢測。

      (3)設(shè)備從非掛起的高速狀態(tài)復(fù)位:設(shè)備在highspeed狀態(tài)檢測到總線上持續(xù)時間3.0 ms的SE0后,設(shè)備狀態(tài)轉(zhuǎn)換到hsrevert,以移除高速終端并重連D+的上拉電阻,此時為全速連接狀態(tài);之后設(shè)備需要在 100 μs<T<875 μs的時間內(nèi)采樣總線狀態(tài),檢測到SE0持續(xù)2.5 μs后,進(jìn)入sendchirp狀態(tài),開始高速握手過程。

      3 仿真及驗(yàn)證

      編寫Testbench,在ModelSim中對設(shè)計(jì)的SIE進(jìn)行仿真驗(yàn)證,結(jié)果符合USB2.0協(xié)議規(guī)范要求。在此簡述工作模式控制電路中關(guān)于高速握手的仿真過程和結(jié)果。當(dāng)設(shè)備連接到集線器后,進(jìn)入init狀態(tài),通過timer2計(jì)數(shù)到OxFFFF(即 17 ms),使設(shè)備跳轉(zhuǎn) fullspeed狀態(tài)。在 fullspeed狀態(tài),timer2計(jì)數(shù)到 OxA6(即 2.5 μs),設(shè)備進(jìn)入到高速握手的sendchirp階段。Sendchirp代碼如下,對應(yīng)仿真結(jié)果圖3所示。

      圖3 發(fā)送chirpK檢測主機(jī)是否支持高速

      支持高速傳輸?shù)闹鳈C(jī)接收到K后,發(fā)送3對KJ序列檢測設(shè)備是否支持高速傳輸。設(shè)備進(jìn)入recvchirp狀態(tài),判斷是否接收到符合要求的3對JK序列。Recvchirp狀態(tài)對應(yīng)代碼如下:

      檢測到linestate為持續(xù)時間達(dá)到2.5 μs(timer1計(jì)數(shù)到OxA6)10或 01時,判斷為檢測到 J或 K chirp。每檢測到一個 K或 J,賦 clrtimer1=1來清零 timer1,同時 chirpcnt加1。設(shè)備支持高速傳輸模式,且成功檢測到KJKJKJ,同時chirpcnt計(jì)數(shù)到6,則設(shè)備高速握手成功,進(jìn)入高速工作模式。假如在chirp檢測等待時間(1.1 ms)內(nèi)沒有等到檢測到3對KJ信號,則握手失敗,設(shè)備以全速模式工作。高速模式下的部分發(fā)送波形如圖4所示。

      圖4 接收來自主機(jī)的JKJKJK握手信號

      本文先介紹了USB2.0設(shè)備控制器總體架構(gòu)及各模塊功能,之后詳細(xì)分析了USB2.0設(shè)備控制器工作模式控制電路需要實(shí)現(xiàn)的功能及設(shè)計(jì)細(xì)節(jié),并在系統(tǒng)中進(jìn)行了仿真驗(yàn)證。結(jié)果表明,所設(shè)計(jì)的工作模式控制電路功能正確,能配合其他模塊一起進(jìn)行USB設(shè)備開發(fā)。

      [1]劉志華,郭付才,彭新偉,等.基于 CY7C68013A的FPGA配置和通信接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(2):18-19.

      [2]AXELSON J.USB開發(fā)大全(第四版)[M].李鴻鵬,鄭瑞霞,陳香凝,等譯.北京:人民郵電出版社,2011.

      [3]蕭世文,宋延清.USB 2.0硬件設(shè)計(jì)[M].北京.清華大學(xué)出版社,2002.

      [4]USB serial bus specification revision 2.0[EB/OL].(2002-04)[2014-03].http://www.usb.org.

      [5]沈小磊,張曉彤,李占才.USB設(shè)備控制器的硬件實(shí)現(xiàn)與研[J].計(jì)算機(jī)工程,2007,33(24):247-249.

      猜你喜歡
      枚舉控制電路數(shù)據(jù)包
      基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
      速讀·上旬(2022年2期)2022-04-10 16:42:14
      一種高效的概率圖上Top-K極大團(tuán)枚舉算法
      2017款本田雅閣車控制電路(二)
      SmartSniff
      2014款雷克薩斯CT200h車控制電路(一)
      2018款別克GL8車控制電路(二)
      2016款邁騰B8L車控制電路(一)
      基于太陽影子定位枚舉法模型的研究
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
      灌南县| 勐海县| 清流县| 腾冲县| 德江县| 保山市| 中山市| 延津县| 白朗县| 天门市| 常山县| 宕昌县| 崇阳县| 略阳县| 宜宾县| 蒙城县| 舟山市| 黑龙江省| 仁怀市| 屯门区| 额尔古纳市| 拉萨市| 什邡市| 边坝县| 合阳县| 鄂伦春自治旗| 女性| 逊克县| 台东县| 洮南市| 鞍山市| 瑞丽市| 介休市| 宜州市| 新密市| 呼和浩特市| 万全县| 焦作市| 兰考县| 定州市| 英山县|