張斌
摘要:根據(jù)USB3.0協(xié)議,鏈路層控制器主要是對(duì)鏈路的初始化和配置,對(duì)主機(jī)和設(shè)備之間的數(shù)據(jù)交流建立鏈接和控制。該文詳細(xì)介紹鏈路層狀態(tài)控制器的基本原理以及利用 Verilog HDL 語(yǔ)言實(shí)現(xiàn)了狀態(tài)控制器的描述, 并通過了Modelsim 仿真。
關(guān)鍵詞:USB 3.0;狀態(tài)控制器;仿真驗(yàn)證
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)02-0411-03
當(dāng)下,在我們的日常工作中需要傳遞的信息量在加大,人們對(duì)數(shù)字媒體的依賴也隨之加劇?,F(xiàn)在很多裝備連接器的信息傳遞速度已經(jīng)無法滿足人們的工作和生活學(xué)習(xí)所需。所以我們需要改進(jìn)和發(fā)展互聯(lián)接口以此來滿足人們對(duì)龐大信息量的傳遞所需,減少人們?cè)诘却泻馁M(fèi)掉的時(shí)間,加快信息傳遞的速度。因此因特爾、惠普、NEC、NXP半導(dǎo)體以及德州儀器等經(jīng)濟(jì)組織在7年前就一起達(dá)成了USB3.0協(xié)定,并著手研發(fā)出USB3.0等商品,其使用范圍主要有個(gè)人PC、移動(dòng)設(shè)備、大眾消費(fèi)電子商品的快速,同步一體的信息傳遞。這項(xiàng)協(xié)定不但向下兼容USB2.0、USB1.0標(biāo)準(zhǔn)[3],同時(shí)它又具備早就存在的USB技術(shù)職能。因?yàn)檫@項(xiàng)技術(shù)使得電源管理工作得到了優(yōu)化,所以它能將能耗最大限度的降低,同時(shí)還可以提高傳遞速度。更令人振奮的是 USB 3.0 推廣團(tuán)隊(duì)(USB 3.0 Promoter Group)在2013年8月2號(hào)正式以 USB 3.1 之名確定了新的規(guī)格標(biāo)準(zhǔn)。據(jù)悉新標(biāo)準(zhǔn)在接口方面沒有什麼改變,但它可以提供兩倍于 USB 3.0 的傳輸速度(即10Gbps),同時(shí)還能向下兼容 USB 2.0,與此同時(shí)令我們深感現(xiàn)代信息技術(shù)更新?lián)Q代之快, 本文以USB3.0數(shù)據(jù)鏈層狀態(tài)控制器為例在,在深入理解協(xié)議的基礎(chǔ)上利用Verilog語(yǔ)言實(shí)現(xiàn)狀態(tài)控制器的描述,并且進(jìn)行Modelsim仿真。
1 鏈路層狀態(tài)控制器
數(shù)據(jù)鏈路層:鏈路鏈接從本質(zhì)上來看是信息發(fā)出口與接收口的邏輯連接與物理連接。目的是確保信息包的正常傳遞以及對(duì)鏈路進(jìn)行有效的管理。全過程還包括對(duì)信息包的CRC添加與CRC冗余的核查,同時(shí)也有利用包含有信用信息的數(shù)據(jù)調(diào)控體系來對(duì)發(fā)送端以及接收端的信息儲(chǔ)備緩存進(jìn)行調(diào)控。一旦發(fā)現(xiàn)有任何失誤或者是信息的損失,鏈路就可以自發(fā)地進(jìn)行第二次發(fā)送以便及時(shí)糾錯(cuò)。
鏈路層調(diào)節(jié)器處理的問題是鏈路初始化和裝配,以及對(duì)主機(jī)與裝備之間的信息交換進(jìn)行連接和調(diào)控, 整個(gè)控制器對(duì)數(shù)據(jù)包的發(fā)出與傳遞以及其它后續(xù)工作都起著重要的管理與影響作用??刂破髦饕譃闋顟B(tài)控制模塊和錯(cuò)誤處理模塊,本次主要研究狀態(tài)控制模塊。
USB3.0協(xié)議中應(yīng)用LTSSM狀態(tài)機(jī)可以用來對(duì)鏈路進(jìn)行初始化設(shè)置和確定方向。鏈路系統(tǒng)由供電到開始正常運(yùn)轉(zhuǎn)都是通過狀態(tài)機(jī)來進(jìn)行的,狀態(tài)機(jī)保證了數(shù)據(jù)包的成功運(yùn)輸。
LTSSM狀態(tài)機(jī)是由12種互相有別的形態(tài)構(gòu)成:Recovery、U0、U1、U2、U3、loop back、Rx.Detect 、Polling、Hot Reset、Compliance Mode、SS.Inactive以及SS.Disabled,每一個(gè)形式都有與之相對(duì)應(yīng)的子狀態(tài)[6]。
在USB3.0協(xié)議中規(guī)定了一種非常節(jié)省功耗的電源管理機(jī)制,電源管理是通過發(fā)送消息事務(wù)包和內(nèi)部控制信號(hào)來實(shí)現(xiàn)的,主機(jī)利用裝置要求將裝置調(diào)整到某一種形式下,不過對(duì)數(shù)據(jù)鏈層進(jìn)行電源管理則是講協(xié)定層與物理層調(diào)整鏈路形式,以確保主機(jī)與其他裝置的流暢聯(lián)系。通過信息事務(wù)數(shù)據(jù)以及內(nèi)部調(diào)控信息的發(fā)出,電源的管理工作才能完成。協(xié)議明確提出了四個(gè)電源形式:U0、U1、U2、U3他們的形式變換如圖中所示
U0:正常的工作狀態(tài)、完全活動(dòng)的狀態(tài)、鏈路上有數(shù)據(jù)包的發(fā)送和接收。
U1:處于能量消耗較少的情況下,鏈路上不存在數(shù)據(jù)包的傳送,不過鏈路始終保持著活躍,同時(shí)鏈路上全部的物理端口都會(huì)處在最小能耗的環(huán)境中。
U2:和U1進(jìn)行對(duì)比你會(huì)發(fā)現(xiàn),這種狀態(tài)更能降低能耗,不過,U1的推出延遲時(shí)間相對(duì)比較久一些。
U3:是三個(gè)中電源最低的狀態(tài),鏈路上的裝置保持懸掛,同時(shí)保持著斷開的形式,鏈路不能正常運(yùn)轉(zhuǎn),不過在進(jìn)行熱復(fù)位以及供給電源后就可以正常投入工作。
在鏈路的實(shí)際運(yùn)轉(zhuǎn)中,數(shù)據(jù)包接納口的工作比較繁重,而數(shù)據(jù)包傳出口的工作則相對(duì)清閑些,不過要返回對(duì)應(yīng)的回復(fù)信號(hào),在這個(gè)時(shí)候數(shù)據(jù)包發(fā)出口就能夠進(jìn)入低耗能狀態(tài)中。Polling、Rx.Detect 、Recovery、Hot Reset 為四個(gè)鏈路形式,
Rx.Detect (檢測(cè))狀態(tài)表示當(dāng)鏈路上電后,主機(jī)和設(shè)備能夠互相識(shí)別到雙方的存在,當(dāng)識(shí)別成功后,雙方將開始進(jìn)入初始化的訓(xùn)練程序:
Polling(輪詢)狀態(tài)表示主機(jī)和設(shè)備在初始化發(fā)送端和接收端以及進(jìn)行同步,準(zhǔn)備進(jìn)行數(shù)據(jù)包的發(fā)送。
Recovery(恢復(fù))主要是當(dāng)鏈路發(fā)現(xiàn)當(dāng)前系統(tǒng)要從低功耗狀態(tài)切換出來或者當(dāng)前沒有工作在U0狀態(tài)而需要重新進(jìn)行訓(xùn)練和配置的時(shí)候進(jìn)行鏈路恢復(fù)。
Hot Reset表示鏈路允許下行端口重新設(shè)置上行端口。
SS.Inactive為鏈路出現(xiàn)錯(cuò)誤的狀態(tài)它包括兩個(gè)子狀態(tài)1、SS_Inactive_Disconnect 2、 SS_Inactive_Quiet 但為了簡(jiǎn)單起見他們不考慮在設(shè)計(jì)。
SS.Disabled為鏈路工作在非超高速狀態(tài)或者鏈路工作在USB2.0狀態(tài)。
Loop 誤碼率測(cè)試。
Complace 一致性測(cè)試。
在USB3.0協(xié)定中,為了保證LTSSM可以正常參加工作,所以才對(duì)這些狀態(tài)進(jìn)行了多種時(shí)間段的限制。已經(jīng)得到的時(shí)間數(shù)據(jù)也是不同形態(tài)直接跳轉(zhuǎn)的依據(jù)。全部的時(shí)間計(jì)數(shù)裝置都會(huì)在電源恢復(fù)正常后變成零。
從鏈路上電開始到正常工作(類似將USB3.0的U盤插到筆記本的USB3.0接口上到能夠正常開始讀取數(shù)據(jù))需要經(jīng)歷三個(gè)階段:Rx.Detect、Polling、U0,如圖2所示,其中Polling過程會(huì)對(duì)鏈路上的終端設(shè)備進(jìn)行相關(guān)的初始化設(shè)置,從Rx.Detect到U0的過程需要經(jīng)歷的子過程步驟如下,在Rx.Detect狀態(tài),鏈路上的主機(jī)或者設(shè)備開始識(shí)別遠(yuǎn)端是否有端接,如果有端接,則鏈路上的終端均開始發(fā)送特定規(guī)格的Polling.LFPS碼(低頻周期突發(fā)信號(hào),周期在20ns到100ns之間),LFPS信號(hào)是一個(gè)非常關(guān)鍵的信號(hào),通過不同特征的LFPS信號(hào)可以實(shí)現(xiàn)host或者device在多種狀態(tài)之間進(jìn)行切換,不同特征的LFPS信號(hào)主要表現(xiàn)為時(shí)序上的不同,如tBurst和tRepeat參數(shù)。
經(jīng)過特定時(shí)間的Polling.LFPS握手后,開始發(fā)送定制好的TS.EQ碼進(jìn)行接收端的均衡器設(shè)置,然后再通過TS1/TS2(Training Sequence,訓(xùn)練碼)碼進(jìn)行其它相關(guān)參數(shù)的設(shè)置,最后通過發(fā)送Idle碼進(jìn)行握手,完成整個(gè)鏈路的初始化,進(jìn)入U(xiǎn)0正常工作狀態(tài)。
2 功能仿真過程及效果
在這里我們通過modelsim仿真軟件還有編碼測(cè)試代碼將所設(shè)計(jì)的項(xiàng)目進(jìn)行功能性仿真,如圖3所示。
VBUS信號(hào)高電平有效,SS_disable情況出現(xiàn)時(shí),即鏈路工作在非超高速狀態(tài)或者鏈路工作在USB2.0狀態(tài)時(shí),即使VBUS信號(hào)請(qǐng)求數(shù)據(jù)時(shí),端口也不能進(jìn)行接受和發(fā)送LFPS信號(hào)和Superspeed信號(hào)。下行端口是通過VBUS信號(hào)進(jìn)行Rx-Detect,在SS-Inactive狀態(tài)時(shí)下行端口和上行端口只能退出當(dāng)前狀態(tài),此時(shí)Warm-RST信號(hào)出現(xiàn)。loopback這種狀態(tài)用于測(cè)試和故障隔離。Hot_Rest信號(hào)有效時(shí)只有下行端口可以啟動(dòng)熱復(fù)位,這將重置整個(gè)操作,此時(shí)端口可以轉(zhuǎn)換到其他狀態(tài)當(dāng)它得到適當(dāng)?shù)男盘?hào)。在接收超時(shí)時(shí),端口將從U2進(jìn)入U(xiǎn)3狀態(tài)在這種狀態(tài)下最大程度的節(jié)能進(jìn)行了測(cè)量。U0是正常操作狀態(tài)發(fā)送和接收數(shù)據(jù)包。當(dāng)它接收到命令LG0_U1,LG0_U2和LG0_U3端口將會(huì)減少電力。LGO_U1,在申請(qǐng)進(jìn)入U(xiǎn)1的時(shí)候發(fā)出.LGO_U2,在申請(qǐng)進(jìn)入U(xiǎn)2的時(shí)候發(fā)出.LGO_U3,在申請(qǐng)從下行端口進(jìn)入的時(shí)候,會(huì)批準(zhǔn)上一個(gè)請(qǐng)求。
參考文獻(xiàn):
[1] Universal serial bus 3.0 specification[S].Revision 1.0, November,2008.
[2] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.
[3] 孟會(huì),劉雪峰.PCI Express 總線技術(shù)分析[J].計(jì)算機(jī)工程,2006,32(32).
[4] 劉瑞梅.PCI Express 總線PHY接口技術(shù)分析[J].河北建筑工程學(xué)院報(bào),2010(1).
[5] 胡為東.USB3.0物理層測(cè)試中的一致性模式和環(huán)回模式介紹[J].力科電子測(cè)量應(yīng)用案例連載,2011,8(8).