柳 萌,安軍社,周昌義
(1.中國科學(xué)院大學(xué)北京100049;2.國家空間科學(xué)中心復(fù)雜航天系統(tǒng)綜合電子與信息技術(shù)重點實驗室,北京100190)
隨著空間探測領(lǐng)域的逐漸擴(kuò)大,探測設(shè)備和儀器性能不斷提高,星載電子設(shè)備產(chǎn)生和待處理的數(shù)據(jù)總量迅猛增長,對數(shù)據(jù)總線處理能力提出更高的要求。SpW高速數(shù)據(jù)總線標(biāo)準(zhǔn)是ESA(歐洲航天局)提出的一種高速、點對點、全雙工的串行總線協(xié)議,以IEEE1355-1995和LVDS兩個商業(yè)標(biāo)準(zhǔn)為基礎(chǔ),吸取了1394技術(shù)、ATM技術(shù)、以太網(wǎng)技術(shù)的優(yōu)點,同時根據(jù)空間應(yīng)用的特點,對故障檢測與時間確定性方面做了加強(qiáng)。它是目前在航天領(lǐng)域應(yīng)用較廣泛的高速數(shù)據(jù)總線,方便高性能板載數(shù)據(jù)處理系統(tǒng)的構(gòu)建、降低系統(tǒng)集成成本、提高數(shù)據(jù)處理系統(tǒng)和子系統(tǒng)之間的兼容性、方便不同航天任務(wù)中數(shù)據(jù)處理設(shè)備的復(fù)用。
2003年ESA正式通過的SpW標(biāo)準(zhǔn)規(guī)定協(xié)議鏈路初始化啟動速率為10 Mbps,這使得必須為SpW接口提供10 MHz的時鐘(DDR數(shù)據(jù)傳輸模式下為5 MHz)。在追求超低功耗、輸入接口時鐘改變等某些特殊的應(yīng)用場景下,不能為該接口提供該指定速率的時鐘,直接降低初始化速率會導(dǎo)致鏈路無法成功建立連接[3]。如圖1是SpW協(xié)議編解碼器(Codec)結(jié)構(gòu)框圖,文中基于實驗室開發(fā)的Codec IP核,通過對協(xié)議分析,提出一種改進(jìn)方法,通過該方法可以在低于標(biāo)準(zhǔn)初始化速率(10 Mbps)甚至兩端初始化速率不同的情況下成功建立鏈路,最低初始化速率達(dá)2 Mbps。
SpW進(jìn)行數(shù)據(jù)通信前要求先由鏈路節(jié)點(Codec)建立鏈路,節(jié)點主要由發(fā)送端,接收端和控制器三大子模塊組成,其原理框圖如圖1。數(shù)據(jù)通信時用戶將待發(fā)送數(shù)據(jù)暫存至發(fā)送緩存(TXFIFO),由發(fā)送端處理并轉(zhuǎn)化為符合鏈路要求的低電壓差分信號對(LVDS)經(jīng)鏈路發(fā)送。接收端從鏈路接收LVDS信號,進(jìn)行時鐘數(shù)據(jù)信號恢復(fù),并解析數(shù)據(jù)存入接收緩存(RXFIFO),同時將鏈路數(shù)據(jù)接收狀態(tài)反饋給控制器??刂破鞲鶕?jù)定時器、接收端、發(fā)送端以及用戶外部輸入控制鏈路接收端和發(fā)送端的運(yùn)行。
圖1 SpW編解碼器結(jié)構(gòu)框圖
SpW鏈路共有6種狀態(tài),其狀態(tài)轉(zhuǎn)換及相應(yīng)的轉(zhuǎn)換條件如圖2所示。
圖2 SpW協(xié)議鏈路狀態(tài)機(jī)圖
完成鏈路的建立,兩端的節(jié)點需要交換NULL字符和FCT字符,鏈路完成建立后,兩端節(jié)點都進(jìn)入Run狀態(tài)。根據(jù)協(xié)議狀態(tài)機(jī),鏈路初始化的時候,接收方獲得字符的類型和接收時間、接收方對接收字符的處理以及超時延遲不符合要求都會導(dǎo)致鏈路建立失敗。
通常節(jié)點在鏈路建立時,有兩種啟動模式:主動模式和被動(Auto)模式。在主動模式時,節(jié)點在進(jìn)入Ready狀態(tài)后會立即跳轉(zhuǎn)至Started狀態(tài),同時向?qū)Ψ桨l(fā)送NULL字符嘗試建立鏈路。在被動模式時,節(jié)點在進(jìn)入Ready狀態(tài)后要判斷Link_Enabled條件是否成立,若不滿足,則等待和接收對方字符,繼續(xù)判斷該條件是否滿足,直至發(fā)生超時或者鏈路接收錯誤。自動啟動功能使得系統(tǒng)可以實現(xiàn)鏈路一端等待另一端主動連接來建立鏈路,狀態(tài)機(jī)中的鏈路跳轉(zhuǎn)條件Link Enabled和RxErr分別表示鏈路的使能有效條件和接收錯誤條件,它們描述如下述兩式:
這里,Link Disabled、LinkStart和 AutoStart都是由用戶軟件或硬件設(shè)置的信號量,Link Disabled的置位將導(dǎo)致用戶鏈路禁止,LinkStart和AutoStart分別表示鏈路的主動啟動模式和被動啟動模式。
在應(yīng)用中,鏈路兩端節(jié)點都可以被配置主動或者被動模式,如果鏈路兩端節(jié)點都配置為被動模式,則由于兩端都無法進(jìn)入Started狀態(tài)完成第一次的NULL字符交換,故無法建立鏈路,這種情況比較簡單。鏈路在初始化及運(yùn)行過程中,會進(jìn)行鏈路斷開超時檢測,協(xié)議規(guī)定標(biāo)準(zhǔn)的超時計數(shù)值為850 ns,該值與鏈路最低信號速率的關(guān)系是:
鏈路最低信號速率的變化會影響該值,該機(jī)制在鏈路初始化的時候也會影響到鏈路是否能成功建立,在本例2 Mbps的情況下,可以保持該值不變。接收方在收到對方發(fā)來的第一個比特位后即開啟鏈路斷開檢測機(jī)制,由于實驗采用的Codec在接收1bit時間后判斷超時結(jié)果,考慮到一定的誤差,將超時值取為:
下面討論鏈路至少一端采用主動模式的情況,兩端節(jié)點在鏈路建立時等價,為方便說明假設(shè)SpW總線應(yīng)用于衛(wèi)星平臺和載荷之間數(shù)據(jù)傳輸?shù)牡湫颓闆r。平臺端固定采用主動模式,載荷端則分別采用主動模式或者被動模式。
載荷端為被動模式時,平臺端由Ready自動進(jìn)入Started狀態(tài)主動發(fā)送NULLs字符。重啟時鏈路兩端節(jié)點按時間發(fā)生如圖3事件:
圖3 載荷端被動模式下鏈路初始化事件圖
圖中:
Tdis為鏈路斷開檢測所花費時間。
TA1、TA2、TB1、TB2分別為兩端 Codec內(nèi)部數(shù)據(jù)NULL和FCT準(zhǔn)備時間。
Ta、Tb為啟動時雙向鏈路上各傳送1比特時間(NULL字符為8比特,F(xiàn)CT字符為4比特)。
Tpa、Tpb為奇偶校驗所花費時間。
Tsyna、Tsynb為信號同步所花費時間。
Ttransa、Ttransb為狀態(tài)轉(zhuǎn)換所花費時間。
據(jù)上圖可知以下必要條件:
為取得最大值,在2 Mbps互聯(lián)時,Tb=Ta=Tbit_max。
TA1、TA2、TB1、TB2準(zhǔn)備時間包括計算奇偶校驗值,對數(shù)據(jù)發(fā)送緩存存取操作等。
綜上所述代入:
在Started超時計數(shù)不變的情況下,2 Mbps互聯(lián)鏈路兩端的狀態(tài)轉(zhuǎn)換和數(shù)據(jù)準(zhǔn)備時間要求不超過2.8 μs,這幾乎是不能實現(xiàn)的。要實現(xiàn)低速鏈路啟動,必須增加Started超時計數(shù)值。
載荷端為主動模式時,鏈路兩端都可以由Ready自動進(jìn)入Started狀態(tài)主動發(fā)送NULLs字符,雙方交換NULL字符進(jìn)入Connecting狀態(tài)不存在困難。兩端只要再接收到FCT字符,完成FCT字符交換,就能完成鏈路初始化。啟動時鏈路兩端節(jié)點按時間發(fā)生如下圖4事件:
圖中:
圖4 載荷端主動模式下鏈路初始化事件圖
Tdis為鏈路斷開檢測所花費時間。
TA1、TA2、TB1、TB2分別為兩端Codec內(nèi)部數(shù)據(jù)NULL和FCT準(zhǔn)備時間。
Ta、Tb為啟動時雙向鏈路上各傳送1比特時間。
Tpa、Tpb為奇偶校驗所花費時間。
Tsyna、Tsynb為信號同步所花費時間。
Ttransa、Ttransb為狀態(tài)轉(zhuǎn)換所花費時間。
據(jù)上圖可知以下必要條件:
將Tdis、TA1、Ta等代入上述兩式:
設(shè)協(xié)議規(guī)定的 6.4 μs、12.8 μs 超時值分別為t6_4和t12_8,即這里Tstarted=Tconnecting=t12_8,對于上述兩個必要條件是易于滿足的。不難發(fā)現(xiàn)鏈路在主動模式下比被動模式下對Tstarted和Tstarted要求更低,即SpW鏈路在載荷端主動模式下比被動模式下更容易建立鏈路。
以實驗室開發(fā)的IP核進(jìn)行仿真驗證,固定一端(平臺端)為主動啟動模式,分別設(shè)置另一端(載荷端)為被動啟動模式和主動啟動模式。以低速率建立鏈路時,增加Started和Connecting超時值,并修改鏈路斷開檢測超時值,針對鏈路斷開檢測超時Tdis和協(xié)議原有的 6.4 μs、12.8 μs超時值t6_4和t12_8 進(jìn)行的更改如下表1:
表1 鏈路時間參數(shù)變更表
仿真結(jié)果如下圖5和圖6,圖中反映了被動模式下鏈路兩端節(jié)點從ErrorReset狀態(tài)到Run狀態(tài)的初始化過程。結(jié)果表明鏈路兩端實現(xiàn)了低速率(2 Mbps)互連啟動,也可以不同的速率啟動,這里只展示了2 Mbps與2 Mbps和2 Mbps與10 Mbps互連啟動仿真結(jié)果,主動模式以及兩端節(jié)點其它速率組合情況類似,在此不再贅述。
圖5 自動模式下鏈路兩端均以2 Mbps啟動
圖6 自動模式下鏈路兩端分別以2 Mbps和10 Mbps啟動
SpW鏈路在低于協(xié)議規(guī)定的初始化速率下存在無法建立的情況。本文在文獻(xiàn)[3]的基礎(chǔ)上,提出的通過增加對標(biāo)準(zhǔn)規(guī)定的鏈路斷開超時檢測值和延長鏈路狀態(tài)機(jī)中標(biāo)準(zhǔn)12.8 μs超時計數(shù)值,經(jīng)仿真驗證可以有效擴(kuò)展SpW鏈路初始化建立速率的范圍,對工程應(yīng)用有較強(qiáng)的指導(dǎo)意義。