跳轉到

SpaceWire

SpaceWire(ECSS-E-ST-50-12C)是太空載具上的星載資料處理鏈路。每個方向使用 Data 與 Strobe 兩條線,每個位元只有其中一條會轉態,因此時脈由 Data XOR Strobe 還原,不需要另一條時脈線。全雙工鏈路因此是四條訊號。

規格訂了 2 Mb/s 下限與強制的 10 Mb/s 起始速率,但沒有訂上限——上限來自設備本身,以及 Data 與 Strobe 兩線之間的 skew。解碼會分別量測兩個方向的速率並顯示,所以兩個方向可以跑在不同速率。

量測全雙工要接四條訊號,單一方向接兩條即可。若某一組的 Data 與 Strobe 接反,Auto-detect Data / Strobe 會自動判定並在報表中說明判定結果。

Decode Settings

Decode Settings

SpaceWire Decode Settings
  • Full duplex (4 channels):解碼兩個方向。取消勾選時只讀 Tx 這一組,凡是需要橫跨兩個方向才成立的資訊——流量控制額度、初始化握手、以及是哪一端造成斷線——都無法呈現。預設:勾選。
  • Auto-detect Data / Strobe:自動判定每一組裡哪一條是 Data、哪一條是 Strobe。兩者對調後仍然會產生合法的時脈,所以接反不會讓解碼停下來,只會安靜地把資料解錯。沒有特別理由請保持開啟。預設:勾選。
  • Tx swapped / Rx swapped:手動指定接法。只有在 Auto-detect 取消勾選時才可操作,因為自動判定會覆蓋這兩個設定。預設:未勾選。
  • Tolerance:一個位元偏離量測到的位元週期多少以內仍視為正常,可選 5 % 到 50 %。線材較長或 skew 明顯時調高。預設:30 %。
  • Disconnect:線上多久沒有任何轉態就判定為斷線,可選 727 ns 到 4000 ns。規格給的是一個區間而不是單一數值。預設:850 ns。
  • View:波形與報表要呈現哪一層。
    Field——單一字元內部的組成:資料位元、同位位元與 data-control 旗標。字元完全解不出來時看這一層。
    Character——一列一個字元或控制碼。
    Packet——一列一個封包,含酬載位元組。
    Credit——流量控制額度隨時間的變化;唯一必須兩個方向都在才成立的檢視,也因此是 Live mode 唯一不提供的。
    預設:Character。
  • Waveform:波形區要畫哪一個方向。非 Live mode 時報表兩個方向都有。同速率時兩個方向的字元幾乎完全重疊,一列同時畫兩條會讓多數區塊只剩一個取樣點寬,所以這裡只選一個。只有全雙工時可操作。預設:Tx。
  • Packet row:封包報表一列放幾個酬載位元組,超過就換到續列。SpaceWire 封包沒有長度上限,長封包一定會折行;續列以位元組位移標示(008h、010h…),最後一列帶出總長度。Packet 檢視時可操作。預設:8 bytes。
  • Reduce repeated NULL / FCT:把連續的 NULL 或 FCT 收合成一列。閒置中的鏈路會持續送 NULL,實機擷取因此絕大部分是 NULL,封包會被淹沒在裡面。在會彙整列的檢視中可操作。預設:勾選。

Result

SpaceWire Result

Character 檢視:兩個方向,含一個封包與一個 Time-code

兩個方向各自擁有 Event、Error、Delta 三欄,所以兩條資料流並排時仍然分得清楚。Delta 指的是與同方向前一個事件之間的間隔。

Packet 檢視中一個封包成為一列,酬載超過一列長度時續接到下一列:

SpaceWire Packet view

Packet 檢視:續列與位元組總數

Live mode

SpaceWire 解碼支援 Live mode(即時擷取中同步解碼),但有以下限制。 解碼器會跟著串流前進:字元一批一批解出來,而只在連線建立時發生一次的字元同步, 會跨批保留下來。

有三件事 Live mode 顯示不了。擷取存檔後再解碼,三項都與平常一樣。

  • 報表只顯示一個方向 —— 波形區設定的那一個(Waveform 設定)。波形區本來就只畫一個方向,Live mode 的報表也是用同一份資料流建立 的。報表會註明目前顯示的是哪個方向。
  • 不提供 Credit 檢視。 FCT 與它所授權的資料走相反方向,所以要兩個方向都在手上 才算得出 credit。在 Live mode 選了它會改以 Character 檢視呈現,並在 Information 欄說明 —— 而不是顯示一個會在正常連線上愈算愈低、最後變成假的 credit 錯誤的數字。
  • 不顯示量測位元率那一列,原因相同:它走的是報表自己的資料流,不是波形資料流。