《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 设计应用 > 用CPLD设计USB1.1 UTMI
用CPLD设计USB1.1 UTMI
张志远 华 漫 范俊波
摘要: 制和开发使USB的数据能够在普通网线上传播,以延长USB设备和主机之间距离的装置具有广泛的应用价值[1]。为此需要一个能够透明地转换USB数据的设备。该设备在功能上与集线器有些相似,但现有的集线器芯片不能满足这一要求。因此有必要自行设计一种UTMI(USB Transceiver Macrocell Interface)。利用这种UTMI还可以更方便地设计相应的串行接口引擎(SIE)及更进一步设计应用的外部设备。本文以Philip公司的ISP1105为例,详细介绍在USB transceiver的基础上设计UTMI的细节问题,并给出了最后的仿真波形。
關鍵詞: CPLD ISP1105 UTMI USB1.1
Abstract:
Key words :

  摘  要: 在USB收發器基礎上設計UTMI時應注意的細節問題,并給出了最后的仿真波形。

  關鍵詞: UTMI  USB1.1  CPLD

 

  研制和開發使USB的數據能夠在普通網線上傳播,以延長USB設備和主機之間距離的裝置具有廣泛的應用價值[1]。為此需要一個能夠透明地轉換USB數據的設備。該設備在功能上與集線器有些相似,但現有的集線器芯片不能滿足這一要求。因此有必要自行設計一種UTMI(USB Transceiver Macrocell Interface)。利用這種UTMI還可以更方便地設計相應的串行接口引擎(SIE)及更進一步設計應用的外部設備。本文以Philip公司的ISP1105為例,詳細介紹在USB transceiver的基礎上設計UTMI的細節問題,并給出了最后的仿真波形。

1 USB收發器

  UTMI是在USB收發器的基礎上工作的。ISP1105完全兼容USB1.1協議[2],支持12Mbps全速傳輸和1.5Mbps低速傳輸。既可以用作設備收發器,也可以用作主機收發器,同時支持單邊和差分2種檢測方式,其功能框圖如圖1所示。圖中:為低電平時驅動器處于發送狀態,高電平時為接收狀態。當MODE為高電平時,ISP1105驅動器處于差分驅動模式(模式1),其對應的引腳功能(輸出功能)如表1所示,接收引腳的功能(輸入功能)如表2所示。詳細資料請參考Philip公司網站[3]

 

 

 

2 UTMI設計

  UTMI位于USB收發器和SIE之間,負責USB收發器的串行差模數據和SIE的并行數據之間的相互轉換。圖2描述了UTMI在USB應用中的位置。

 

 

2.1 UTMI結構框圖

  UTMI結構框圖如圖3所示。UTMI主要由接收部分、發送部分和時鐘邏輯模塊組成。時鐘邏輯模塊根據USB總線上的數據產生同步時鐘,并利用這個基本的時鐘來接收和發送數據。接收數據時,依次進行NRZI解碼、剔除填充位、串并轉換,然后輸出到SIE;發送數據時,依次進行并串轉換、位填充、NRZI編碼,然后由發送模塊輸出到USB收發器。

 

 

2.2 DPLL

  USB是一種異步傳輸模式,發送端和接收端的時鐘來自不同的晶振,雖然額定速率都是12Mbps或1.5Mbps,但仍然可能造成0.25%的偏差。因此,為了保證時鐘和數據相互鎖定,需要產生一個可以調節的時鐘源,該時鐘源即由DPLL(Data Phase Lock Logic)來實現。以全速傳輸為例,USB主機或集線器以12Mbps的速率發送數據,而在接收端則采用48MHz的時鐘對數據進行過抽樣(over sample)。正常情況下,4個48MHz的時鐘寬度正好等于1個接收位的寬度。當主機的速率大于或小于12Mbps時,DPLL就減少或者增加1個時鐘的高低電平來進行調節。這一功能由圖4所示的DPLL狀態機來實現。

 

 

  在圖4中,A是在48MHz時鐘的上升沿對RCV采樣的數據,B是在48MHz時鐘的下降沿對RCV采樣的數據。由圖4可以看出,DPLL狀態機有0~7和B~F共13個狀態。系統復位以后進入狀態C,狀態C和D可以鎖定接收到的差模數據流,因為系統在經過D進入狀態5之前數據流至少存在2個邊沿的跳變(一般是在SYNC的前2個位)。對應于接收到的差模數據“1”和“0”,狀態機會在5-7-6-4和1-3-2-0之間循環。DPLL處于5、4、1、0以及C、D時輸出低電平,處于7、6、3、2和B、F時輸出高電平。當接收到的位寬度沒有變化時,系統就在5-7-6-4和1-3-2-0處循環;當位寬度變窄時,系統就繞過4和0,轉而在6和2處開始循環,以減少1個48MHz的低電平;當位寬度變寬時,系統就繞過B和F再分別轉到2和6,從而增加1個48MHz的高電平,這樣就保證了時鐘和數據的相互鎖定。用Verilog語言實現的DPLL狀態機的仿真波形如圖5所示。

 

 

  圖5中:CLK為原始時鐘,USB_IN為輸入的差模數據,CLK_OUT為輸出時鐘,STATE為DPLL所處的狀態,SD_OUT為USB_IN的采樣輸出數據。由圖5可以看出,當接收位較寬時,狀態機額外增加了1個狀態B的高電平;當接收位較窄時則越過狀態4,由狀態6直接轉到狀態1,狀態機減少了1個低電平,從而達到了數據同步的目的。

2.3 SYNC及EOP的檢測

  完整的SYNC是0x80,由KJKJKJKK 8個位組成。第1位由于集線器重放等原因可能產生畸變,因此檢測SYNC時可以只檢測最后幾位。第1個SYNC時DPLL從第2個狀態J開始才能有時鐘輸出,而以后的SYNC則從第1個狀態K就有時鐘輸出。觀察一下SYNC的組成,不難看出只要最后4個位KJKK就可以完全檢測到SYNC了。由此,可得出如圖6所示的SYNC檢測狀態機以及如圖7所示的相應的仿真波形圖。

 

 

  EOP的檢測也存在同樣的問題。USB規定全速率接收器必須將后跟1個J變化的、大于等于82ns寬的SE0作為一個有效的EOP來予以接收。對于低速收發器來說,這個寬度則是330ns。EOP檢測狀態機以及相應的仿真波形圖如圖8所示。

 

 

3  綜合與仿真

  接收數據時,UTMI首先匹配SYNC字段。匹配完成后,系統進入接收數據狀態,此時RxActive為高電平。UTMI對接收到的串行數據進行NRZI解碼,去掉填充位,送入接收移位寄存器,滿8位后輸出到并行數據線,并置RxValid為高電平。UTMI檢測到EOP以后,就拉低RxActive,表明接收1個分組的結束。接收1個SETUP分組的仿真波形如圖9所示,數據為SETUP(0xB4)+Addr(0x00)+EndPoint(0x00)+CRC5(0x08)。

 

 

  發送數據時,UTMI需要置OE為低電平,以使驅動器處于發送狀態。此時,TxValid應為高電平,表明并行數據線上有數據等待發送。UTMI首先發送SYNC,然后讀取并行數據線上的數據,完成串并轉換后,依次進行位填充和NRZI編碼,再根據表1的規定將數據發送到VPO和VMO上。完成1個字節的發送后,UTMI應該置TxReady為高電平,表明UTMI可以繼續發送下一個字節。數據發送完成后,UTMI應該繼續發送EOP信號,然后拉高OE,表明1個分組發送完畢。發送1個ACK分組(0x4B)的仿真波形如圖10所示。

 

 

4  結束語

  在Lattice公司的ISP expert7.0開發平臺上,利用Verilog HDL語言實現了USB1.1的UTMI,并完成了最后的綜合和仿真測試。

 

參考文獻

1 張念淮,江浩.USB總線接口開發指南.北京:國防工業出版社,2001

2 Universal Serial Bus Specification Revision1.1.http://www.usb.org,2003.10

3 ISP1105 datasheet.http://www.semiconductors.philips.com.2003.10

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久国产色av| 日韩中文视频免费在线观看| 国产精品美女久久久久av福利| 国产亚洲精品自在久久| 国产精品秘入口18禁麻豆免会员| 日韩久久久久久久| 亚洲国产精品女人| 国产精品尤物福利片在线观看 | 亚洲自拍av在线| 国产精品999999| y111111国产精品久久婷婷| 亚洲精品欧美日韩专区| 日本一区二区黄色| 国产免费色视频| 日韩一区二区三区资源| 国产综合欧美在线看| 国产成人精品午夜| 国产精品久久久| 中文字幕精品一区日韩| 欧美国产日韩在线播放| 日韩视频免费中文字幕| 久久99精品久久久久久水蜜桃| 99色精品视频| 激情视频综合网| 隔壁老王国产在线精品| 欧美精品在线免费| 97欧美精品一区二区三区| 久久久久久噜噜噜久久久精品| 国产欧美日韩精品专区| 日韩欧美亚洲精品| 亚洲日本无吗高清不卡| 国产亚洲精品久久久久久久| 日韩久久久久久久久久久久久| 91精品久久香蕉国产线看观看| 国产精品免费观看久久| 国产精品精品久久久久久| 99久久综合狠狠综合久久止| 国产欧美日韩高清| 中文字幕av久久| 99在线免费观看视频| 欧美亚洲另类在线|