《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于UTMI協議的USB2.0收發器邏輯電路設計
基于UTMI協議的USB2.0收發器邏輯電路設計
2014年微型機與應用第10期
王 永1, 白雪飛1, 方 毅2
1. 中國科學技術大學 電子科學與技術系, 2. 中國科學技術大學 信息科學實驗中心,安徽
摘要: 通用串行總線USB(Universal Serial Bus)以其簡單易用、連接靈活、高帶寬等特點已經成為計算機連接外部設備最常用的一種方式[1]。如今,越來越多專用集成電路(ASIC)和嵌入式系統都內置了USB接口。很多公司采用其他公司生產的收發器(USB2.0 transceiver)IP核,再配合其他自行設計的電路模塊來進行相關產品的開發。本文在SMIC 0.13 ?滋m CMOS工藝下采用Verilog HDL描述電路,通過仿真、綜合、布局布線等流程完成收發器電路設計。
Abstract:
Key words :

 摘  要UTMI定義了USB2.0底層信號的物理約束,為實現USB2.0高速(480 Mb/s)通信提供了可靠的保障。實現了協議中串/并轉換、位填充/剔除、非歸零編解碼等內容,并在SMIC 0.13 ?滋m CMOS工藝庫下完成了收發器電路設計。仿真結果顯示,該收發器設計功能正確,滿足協議要求。 

關鍵詞: USB2.0; 收發器; UTMI

       通用串行總線USB(Universal Serial Bus)以其簡單易用、連接靈活、高帶寬等特點已經成為計算機連接外部設備最常用的一種方式[1]。如今,越來越多專用集成電路(ASIC)和嵌入式系統都內置了USB接口。很多公司采用其他公司生產的收發器(USB2.0 transceiver)IP核,再配合其他自行設計的電路模塊來進行相關產品的開發。本文在SMIC 0.13 ?滋m CMOS工藝下采用Verilog HDL描述電路,通過仿真、綜合、布局布線等流程完成收發器電路設計。

       1 UTMI整體結構

       USB收發器在USB總線中的位置處于各種USB設備與USB總線的接口處。它的作用是處理USB物理層的協議和信號,其中接收部分接收USB總線上的串行數據,經過NRZI(Not Return to Zero Inverse)編碼、“0”比特剔除,最后轉成并行數據后交給串行接口引擎SIE(Serial Interface Engine);發送部分完成相反的操作,接收SIE的并行數據,經過并/串轉換、“0”比特添加、NRZI編碼后發送給USB總線[2]。

`WQY2$9W$}USBGFFRA[M}W1.jpg

       圖1所示為USB2.0收發器的功能框圖,主要完成的功能為:

       (1) 支持480 Mb/s高速、12 Mb/s全速兩種不同的數據傳輸速率。

       (2) 同步字包頭SYNC(Synchronization)/包尾EOP(end of Packe)產生和檢測、比特填充/去填充、比特填充錯誤檢測、非歸零編碼等。

       (3) 能夠在高速和全速終端/信號之間切換,支持USB2.0測試模式。

       (4) 支持USB協議中喚醒、掛起檢測、恢復邏輯等檢測。

       從中可以看出,收發器是一塊具有一定復雜度的數/?;旌想娐?。設計時將數字電路和模擬電路分開,分成以下三部分:

       (1) 數字邏輯部分。該部分完成串/并、并/串轉換,比特填充/去填充以及相應的發送與接收狀態機等協議的邏輯功能,這也是本文所要闡述的電路設計內容。

       (2) 時鐘產生與數據恢復電路。其功能是產生本地高速時鐘,并從USB總線的串行數據流中恢復出時鐘和數據,以便于后級電路進行相應的操作。

       (3) 發送與接收接口部分電路。USB總線有比較嚴格的電氣特性要求,比如USB高速信號是±400 mV的差分信號,對地電阻為45 ?贅,還有電纜斷連檢測、squelch檢測等,這些電氣特性要求均由模擬接口電路實現[3]。

       2 模塊設計

       2.1發送電路模塊

      根據UTMI規范的功能要求,USB收發器的發送部分應該包括并/串轉換、比特“0”填充、非歸零編碼以及發送控制狀態機四部分。四部分的關系如圖1中發送部分(Tx)所示。

      比特“0”填充規則為:對發送的串行數據進行“111111”序列檢測,每檢測到6個連續的“1”序列后,在該序列后插入一個比特“0”。NRZI編碼規則為:邏輯“1”用電平的不變來表示,邏輯“0”用電平的翻轉來表示。比特“0” 插入與NRZI編碼配合使用,可以有效防止傳輸的數據中出現連續的沒有電平變化的序列,避免導致接收部分PLL(Phase Locking Loop)時鐘失鎖的情況出現。

      串行數據中插入填充比特,會使發送的數據多于要發送的數據。為了平衡比特插入前后的數據個數偏差,設計時在串行數據中每插入8個“0”后,使發送狀態機輸出TXready為低電平,讓SIE等待一個時鐘周期,即8 bit串行數據的時間(因為SIE的時鐘為60 MHz,串行數據速率為480 MHz。8 bit串行數據的傳輸時間正好等于一個并行數據的傳輸時間)。在本文的電路設計中,比特“0”插入操作使用了兩個計數器,其中一個對串行數據中連續“l”進行計數,用來檢測“111111”序列;另一個對已經插入到串行數據的“0”進行計數,這兩個計數器都采用移位計數器來實現。發送電路比特填充和數據平衡的實現如圖2所示[4]。

4{I~}98)~D2TXMCM8G(9L{U.jpg

XJ}~_CG[~F{D[DZ8]RH@D82.jpg

       發送部分的狀態轉移圖如圖3所示。復位進入Reset態,復位結束后進入TX Wait態等待TXValid信號的到來,當收發器接收到SIE發送數據的指令時(即TXValid信號為高電平),進入Send SYNC態,發送電路開始發送傳輸數據包的包頭,即同步字SYNC。全速數據包的SYNC字為8 bit的“KJKJKJKK”序列,高速數據包的SYNC字為32 bit的“KJKJKJK…JKJKJKK”序列,序列中的“K”對應于USB差分信號“DP邏輯低電平,DM邏輯高電平”的總線狀態,序列中的“J”對應于 “DP邏輯高電平,DM邏輯低電平”的總線狀態。同步字發送完成之后,進入Data Load態且置TXready為高電平,收發器開始從SIE讀取8 bit的并行數據到Hold Reg中,當Hold Reg中的數據沒有被shift reg讀取時,狀態機將會跳轉到Data Wait態;當shift reg中的數據做完并/串轉換, Hold Reg中的數據會被shift reg讀取,此時狀態跳轉到Data Load態。當收發器檢測到SIE停止發送數據的指令(TXValid信號為低電平),狀態機進入Send EOP態,開始發送EOP數據且置TXready為低電平, 全速數據包的EOP為總線上2 bit的“SE0” (“SE0”對應于USB差分信號“DP和DM均為邏輯低電平”的總線狀態)狀態以及其后1 bit的“J”狀態,高速數據包的EOP為8 bit的“01111111”數據序列,這個數據序列沒有像正常發送過程的數據一樣進行比特“0”插入操作,以便區別于一般的數據。當EOP發送完,狀態機進入TX Wait態,否則停留在Send EOP態繼續發送EOP數據。      

       2.2 接收電路模塊

      收發器的接收電路與發送電路相反,將數據從總線上的差分信號中提取出來,交給USB SIE進行后續的協議處理。這部分電路包括NRZI解碼、比特“0”去除、串/并轉換以及一個接收狀態機。這部分的相互關系如圖1中接收部分(Rx)所示。接收部分的狀態轉移圖如圖4所示。

WZI2VSSK`MGZBU(`[IWYXUV.jpg

       復位進入Reset態,復位結束后進入RX Wait態,開始同步字SYNC檢測,若未檢測到同步字,則在原狀態循環;當檢測到同步字后進入Strip SYNC態,同時使 RXactive 有效,由于高速SYNC有32 bit,所以在Strip SYNC態會維持數個時鐘周期。當SYNC檢測完畢并抓到第一個字節后,跳轉到RX Data態。由于去比特填充造成數據速率的下降,使得狀態在RX Data和RX Data Wait之間跳轉,每次去掉8個填充位后,狀態機跳到RX Data Wait態,同時拉低RXvalid信號。

      當檢測到錯誤時,進入Error態,如果此時數據線DP和DM上已經沒有數據傳輸了,則進入Abort1態,再直接跳轉到RX Wait態;如果此時數據總線DP和DM上還有數據在傳輸,則跳轉到Abort2態,直到數據總線上的數據傳輸完才跳到Terminate態,再直接跳轉到RX Wait態。

      去比特“0”填充的過程就是將發送過程中插入到數據包的“0”比特從數據包中去除,也就是將數據包中“1111110”序列中的“0”去除,以恢復出正確的數據。這里同樣需要進行數據平衡,通過RXValid信號來實現。接收電路去比特的實現如圖5所示。

O@U3SX~G[5R]M3T20IPKZCD.jpg

       3 仿真及驗證

       發送數據時,UTMI置drive_enable為低電平,以使驅動器處于發送狀態。當TXValid為高電平時,表明并行數據線上有數據等待發送。UTMI首先發送同步字SYNC,然后讀取并行數據線上的數據到Hold Reg中,完成串/并轉換后依次進行位填充和NRZI編碼,再把數據發送到數據總線上(即DP和DM)。完成1 B的發送后,UTMI應該置TXReady為高電平,表明 UTMI可以繼續發送下一個字節。數據發送完成后,UTMI應該繼續發送EOP信號, 表明1個數據包發送完畢。高速模式下的部分發送波形如圖6所示。

G}1B`E2A@}]D%MGNFD9%])A.jpg

       接收數據時,UTMI首先匹配SYNC字段。匹配完成后,系統進入接收數據狀態,此時RXActive為高。UTMI對接收到的串行數據進行NRZI解碼,剔除填充位(此時drop_bit為高),送到轉移寄存器和保持寄存器,滿8位后輸出到并行數據線(此時RXValid為高)。UTMI檢測到EOP以后,拉低RXActive,表明接收完一個數據包。高速模式下的部分接收波形如圖7所示。

EAZ@G1HH_AY_U`W6@9FP5TT.jpg

       將此設計在SMIC 130 nm CMOS工藝下進行綜合,布局布線,可滿足UTMI協議中480 Mb/s的數據率要求。經仿真驗證分析,該設計符合UTMI接口協議,正確實現了收發器邏輯電路的功能。     

       本文結合UTMI協議,對USB2.0收發器整個體系結構和工作原理進行了分析。完成了USB收發器邏輯電路的設計,滿足協議要求。仿真結果表明,所設計的收發器功能正確,適用于USB系統開發。  

參考文獻

[1] 黃菁,劉青春. 通過 USB 接口控制數/模轉換器的電路設計[J].微型機與應用, 201231(14):27-30.

[2] Intel Corporation.USB2.0 Transceiver MacrocellInterface(UTMI)specification[S].Version 1.05,March 29,2001.

[3] Compaq, Hewlett-Packard. Universal serial bus specifica-tion[S]. Revision 2.0, April 27, 2000.

[4] Huang Kai. A multiprocessor prototype and its SoC designmethodology[J]. DianziXuebao (Acta Electronica Sinica), 2009(2):305-311.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久色视频网 | 好男人午夜www视频在线观看 | 老司机午夜性大片免费 | 欧美日韩成人在线观看 | 亚洲欧美日韩另类 | 亚洲免费午夜视频 | 亚洲国产剧情在线精品视 | 人妖三人交69欧美 | 亚欧在线免费观看 | 国产精品www | 破外女出血一级毛片 | 日韩日韩精品无砖专区2020 | 国产精品2020 | 在线日本中文字幕 | 国产成人精品第一区二区 | 一本高清在线视频 | 久久这里有精品视频任我鲁 | 男人和女人日皮视频 | 国产亚洲精品日韩综合网 | 中文字幕亚洲一区二区三区 | 高清国产一区二区三区 | 激情小视频在线播放免费 | 午夜成人在线视频 | 亚欧中文字幕 | 手机看片国产免费久久网 | 国产一区二 | a4yy欧美一区二区三区 | 校园激情综合网 | 97影院理论在线观看 | 免费特黄一级欧美大片在线看 | 亚洲欧美精品一中文字幕 | 2018天天干天天操 | 一区在线观看 | 最近2019中文字幕免费看最新 | 18性夜影院午夜寂寞影院免费 | 天天干干干干 | 手机看片国产免费永久 | 日韩欧美动漫 | 亚洲美女高清aⅴ视频免费 亚洲美女福利 | 热re91久久精品国产91热 | 一级一片免费视频播放 |