圖5 位填充的工作方式
位填充操作從同步數(shù)據(jù)段(如圖7 所示) 開始,始終貫穿于整個傳送過程并嚴格遵守位填充規(guī)則,后面還可以看到高速包的結(jié)束EOF也是利用位填充規(guī)則來提示數(shù)據(jù)包結(jié)束的。
3.6 串行/并行轉(zhuǎn)換
通過Rx Shift/Hold的寄存器或Tx Shift/Hold寄存器分別將接收的數(shù)據(jù)或要發(fā)送的數(shù)據(jù)進行相應的串行/并行轉(zhuǎn)換。
3.7 基本控制單元
基本控制單元是為了控制UTMI的工作狀態(tài)及檢測接收數(shù)據(jù)是否有效。這里主要介紹發(fā)射包絡探測器(Squelch)。
在低電壓信號環(huán)境下,為了避免探測電纜上引起的噪聲信號作為要傳輸?shù)男盘枺托枰\用發(fā)射包絡探測器(Squelch)來檢測總線上的信號是否有效?偩空閑時,高速差分接收器處于靜噪狀態(tài),當檢測到包開始信號后,高速差分接收器被激活,此時當差分信號電平小于100mV時,探測器指示總線上的信號無效;只有當信號電平大于150mV時,探測器才會指示接收的高速差分信有效。但這種方法也可能會帶來同步上的延時,即在檢測到包絡和啟動接收器之間最多可能會出現(xiàn)4位的延時,但這個延時并不帶來同步的問題[3]。
4. 其他功能分析
4.1高速設備的連接檢測(HS Detection Handshake)
前面原理提到,設備在連接、掛起恢復或復位后,都要進行高速設備的連接檢測(HS Detection Handshake)。高速設備的連接檢測剛開始是在全速信號環(huán)境下進行的。通過高速設備和高速集線器之間傳輸一個握手信號來指示設備是否為高速設備。
如果握手信號傳輸失敗,則默認為全速設備。
設備連接到集線器Hub或主機時,全速和高速設備在D+線上有一個1.5KΩ的上拉電阻,由于下拉電阻為15KΩ,D+會加到近似90%的直流電平,當集線器探測到D+的高電平,就認為連接到全速設備。此時,軟件就會通過復位命令發(fā)送一個RESET信號到集線器,讓集線器驅(qū)動一個SE0信號(D+和D-都為低電平)超過10ms。高速設備檢測到RESET信號后發(fā)送一個Chirp K信號給集線器(1~7ms的時間)。集線器的高速接收器若在設備發(fā)出Chirp K序列后2.5微秒內(nèi)檢測到,則響應傳送一個交替的Chirp K和Chirp J信號序列。設備檢測到這6個線性調(diào)頻脈沖Chirp序列(3個交替的KJ信號對),
集線器將連接端口置入高速啟用狀態(tài),并從D+斷開上拉電阻,啟用高速設備終端,設置高速設備默認狀態(tài)。
若設備在RESET之后沒有發(fā)出Chirp K信號或者設備沒有檢測到集線器響應的交替KJ信號序列,則高速設備就繼續(xù)以全速模式進行操作。圖6的事件時序圖說明高速設備連接的過程。
圖6 HS_Detection_Handshake事件時序圖
其中T0時刻表示HS Handshake開始。在T1時刻,設備發(fā)送Chirp K信號并在T2時刻結(jié)束;下行端口在T3時刻發(fā)送KJ交替脈沖序列,若設備在T6時刻接收到下行端口的Chirp信號后,則設備在T7時刻斷開D+的上拉電阻,并設置成HS終端及HS缺省狀態(tài),等待高速連接檢測結(jié)束。T8是指總線中止下行端口發(fā)送Chirp KJ信號的時刻;T9時刻則表示最早結(jié)束總線高速連接檢測時刻,或者表示斷開D+上拉電阻后,設置HS終端進入HS的缺省工作狀態(tài)最晚時間。
4.2 高速設備斷開檢測(HS_Disconnect)
由于高速設備的連接沒有上升電壓,所以集線器要用不同的方法來檢測設備的移除。高速設備在總線空閑時,D+和D-數(shù)據(jù)線保持低電平,當設備斷開時,線上不會檢測到明顯的變化,但是此時設備的差分終端電阻消失,而高速包還繼續(xù)從原來設備連接的端口進行傳輸。當這個包到達沒有負載的路徑端點時,一個很大的反射會回到集線器接口,使得集線器連接端口的差分電壓加倍,當集線器檢測到這個雙倍電壓就可指示設備已經(jīng)被移除。協(xié)議定義,HS_Disconnect一般是在擴展高速信息包結(jié)束符后(extended End of High-speed Packet, HSEOP)USB探測集線器的差分電平,若大于等于625mV則表示設備已經(jīng)解除連接。 4.3 高速包開始和同步序列(SYNC)
因為設備與主機不是分享同一時鐘,接收設備無法正確知道傳送設備何時會傳送一個新的信息包。為此,要讓傳送和接收同步,每一個信息包都需要一個SYNC作為包開始,達到讓接收設備的脈沖與傳送的數(shù)據(jù)同步的目的。在高速環(huán)境中,SYNC是32位:15個交替重復的KJ信號對,最后是兩個K信號。圖7表示高速同步序列和包開始符。
圖7 高速模式的SYNC信息包
4.4 高速包結(jié)束符(EOP)
高速包結(jié)束符檢測原理如圖8所示,每個包都以EOP序列結(jié)束。除了高速幀開始信息包中的高速信息包結(jié)束符(extended End of High-speed Packet, HSEOP)是40位外,其他高速信息包結(jié)束都是8位。這8位結(jié)束符是一個沒有位填充的01111111b NRZI的編碼。如果前一位是J,高速信息包結(jié)束符是KKKKKKKK。反之,如果前一位是K,則高速信息包結(jié)束符是JJJJJJJJ。不管那種情況,傳輸?shù)?個位序列都會引起位填充錯誤,也就是接收器檢測到一個有意的填充錯誤序列,就知道包結(jié)束,即使這不是一個EOP,而是出現(xiàn)了一個真正的位填充錯誤也不例外。
8 高速傳輸?shù)陌Y(jié)束符檢測
4.5 復位和掛起
設備的復位和掛起信號都是發(fā)送一個大于3ms的總線空閑信號,同時在兩種狀態(tài)下高速設備都轉(zhuǎn)換到全速信號環(huán)境,因此高速設備必須能夠區(qū)分這不同兩個的事件。當高速設備斷開高速電阻并重新連接1.5K 的上拉電阻進入全速模式后,在100ms至875ms之內(nèi),總線探測D+和D-數(shù)據(jù)線的狀態(tài)來判定總線進入復位還是掛起狀態(tài)。如果D+和D-都是低電平,即Single-ended 0,則總線在進行復位;如果是D+為高(上拉)、D-為低(下拉),則總線在發(fā)送全速空閑信號,指示設備進入掛起狀態(tài)。
5.結(jié)論
本文分析了USB2.0接口高速傳輸?shù)沫h(huán)境特點及在此模式下8位PHY的工作原理。為確保USB2.0在高速和全速環(huán)境下正常工作,對UTMI協(xié)議也進行了剖析。文章還對USB傳輸?shù)牟罘諲RZI編碼及如何增強抗噪聲能力和確保數(shù)據(jù)的正確性做了較詳盡的分析。本論文對UTMI及USB2.0接口設計有較好的參考價值。





