5.5.27 · D5 · HinglishEmbedded Systems & Real-Time Software

Question bankSpaceWire — high-speed serial link standard for spacecraft

2,387 words11 min read↑ Read in English

5.5.27 · D5 · Coding › Embedded Systems & Real-Time Software › SpaceWire — high-speed serial link standard for spacecraft

Picture 1 — Data-Strobe encoding aur clock recovery

Figure — SpaceWire — high-speed serial link standard for spacecraft

Upar ke do rows dekho: Data aur Strobe. Har bit period mein unme se exactly ek step karta hai — yahi DS invariant draw out hua hai. Neecha wala row woh hai jo receiver build karta hai: dono ko XOR karo, aur tumhe har bit ke liye ek clean edge milti hai ( phir us edge par Data line se read ki jaati hai).

Picture 2 — Wormhole vs store-and-forward

Figure — SpaceWire — high-speed serial link standard for spacecraft

Left sketch har switch par poora packet buffer karta hai (store-and-forward) — body wait karti hai. Right sketch header ko immediately forward karta hai aur body ko reserved path ke through stream karne deta hai (wormhole). Horizontal bars dikhate hain ki wormhole kyun pehle khatam hota hai.

Picture 3 — Credit window ek round trip mein

Figure — SpaceWire — high-speed serial link standard for spacecraft

Credit jaate waqt kharch hoti hai aur sirf tabhi refill hoti hai jab ek round-trip time (RTT) ke baad FCT wapas aata hai. Shaded window woh "bytes in flight" hai jiske liye tumhare paas buffer hona chahiye — uski width rate RTT se set hoti hai.


True or false — justify karo

Data-Strobe pair Strobe wire par clock bhejta hai
False. Koi bhi wire clock nahi hai. Clock recover ki jaati hai Data aur Strobe ki transition activity ko XOR karke; kyunki dono lines mein se exactly ek har bit period mein toggle karti hai, woh XOR har bit ke liye ek edge produce karta hai. LVDS Signaling dekho ki un dono signals mein se har ek physically ek differential pair kaise hai.
Tum Strobe line drop kar sako aur phir bhi Data se timing recover kar sako
False. Identical bits ki run mein Data line flat rehti hai, to clock recover karne ke liye koi transition nahi hogi. Strobe isliye exist karta hai taaki jab Data na kare tab toggle kare, har bit ke liye ek edge guarantee karte hue.
SpaceWire ko data ke saath ek dedicated clock wire chahiye, jaise purane parallel buses mein hota tha
False. Data-Strobe ka yahi poora point hai: koi shared clock wire nahi hoti matlab un lambe space cables mein koi clock-versus-data skew nahi hoga jo thermally expand karti hain aur radiation damage suffer karti hain. Serial vs Parallel Communication se compare karo.
Wormhole routing ko packet forward karne se pehle switch par poora packet receive karna hoga
False. Yeh store-and-forward describe karta hai. Wormhole header byte ko waise hi forward karta hai jaise woh aata hai aur body ko reserved path se seedha stream karne deta hai — Wormhole Routing vs Store-and-Forward dekho.
Ek FCT (Flow Control Token) ek data character hai jisme 8 bytes ka payload hota hai
False. FCT ek chota sa control character hota hai (wire par kuch bit-times). Iska koi payload nahi hota; yeh sirf receiver buffer space ke 8 data characters ke liye credit grant karta hai.
Ek byte par odd parity kisi bhi number of bit errors detect kar sakti hai
False. Ek single parity bit odd number of flipped bits (1, 3, 5...) ko reliably pakadti hai. Do simultaneous flips parity unchanged chodh dete hain aur undetected nikal jaate hain. Yeh ek sasta single-error detector hai, corrector nahi.
Cable length badhane ka buffer ki zaroorat par koi asar nahi padta
False. Lamba cable matlab credit wapas aane ka lamba round-trip time (RTT), isliye FCT aane se pehle zyada bytes "in flight" hote hain. Pipe full rakhne ke liye tumhare paas zyada outstanding credit honi chahiye — buffer requirement RTT ke saath scale karti hai (upar wala rule).
SpaceWire ek broadcast bus hai jahan har node har message sunta hai, jaise MIL-STD-1553
False. SpaceWire links point-to-point aur switched hote hain; packets sirf us path pe route hote hain jo unka destination address select karta hai. 1553 aur CAN Bus shared-medium buses hain jahan sab nodes traffic dekhte hain.
Agar receiver par parity fail ho jaye, to woh single character silently discard ho jaata hai aur transmission continue hoti hai
False. Parity failure ek link error state trigger karta hai; receiver ise signal karta hai (EEP ke zariye) aur link re-establish hota hai. SpaceWire corrupted characters ko silently nahi swallow karta.
Wormhole routing lambe packets ke liye kam latency deta hai lekin head-of-line blocking ka risk bhi deta hai
True. Kyunki ek switch poore packet duration ke liye ek output port reserve karta hai, ek stalled packet woh port hold karta hai aur dooson ko block karta hai jo ise chahte hain — kam buffering aur kam latency ki yahi kimat hai.

Error dhundho

"SpaceWire Data aur Strobe ko XOR karta hai bit value paane ke liye."
Galat target. Data aur Strobe ka XOR clock edge reconstruct karta hai, data nahi. Bit value (-va bit stream mein) simply Data line hai, us recovered clock edge par sampled ki gayi.
"Har FCT 10 bytes ka credit grant karta hai kyunki ek character 10 bits wide hota hai."
Do galtiyan hain. Ek FCT 8 characters ka credit grant karta hai, aur character width (roughly 9–10 bits parity/control milake) ka credit count 8 se kuch lena-dena nahi.
"10 m cable par one-way delay lagbhag 500 ns hai, isliye RTT lagbhag 1 μs hai."
Ek typical cable mein propagation delay roughly 5 ns per metre hoti hai, isliye 10 m se ≈ 50 ns one-way aur RTT ≈ 100 ns milta hai — 500 ns / 1 μs nahi. Delay ko 10× overstate karna tumhe zaroorat se das guna zyada buffer karwata.
"3-hop path ke liye store-and-forward latency header-time plus ek packet-time hai, kyunki body stream hoti hai."
Yeh wormhole describe karta hai. Store-and-forward har hop par full packet-time pay karta hai ( packet-time), kyunki har switch ko forward karne se pehle fully receive karna hota hai.
"Byte 0xA7 ke liye parity us ke chhah bits ko XOR karke compute ki jaati hai."
Tumhe saaton aath data bits XOR karne honge. mein paanch ones hain, isliye XOR hai; bits skip karne par galat parity value milti hai.
"SpaceWire exactly 400 Mbps par run karta hai, ek fixed rate par."
Rate ek range hai, roughly 2 Mbps se ~400 Mbps tak, har link ke liye choose ki gayi. Yeh ek single fixed frequency nahi hai.
"EOP aur EEP same marker hain; EEP sirf EOP ka abbreviation hai."
Ye alag hain. EOP ek normal end of packet mark karta hai; EEP (Error End of Packet) signal karta hai ki packet transmission error ki wajah se terminate hua, isliye receiver ise upar flag kar sake — jaise ek RMAP Protocol transaction ko.

Why questions

SpaceWire Strobe sirf tabhi kyun toggle karta hai jab Data same rehta hai?
Exactly ek transition per bit period guarantee karne ke liye dono wires combined mein (DS invariant). Agar dono change ho sakte (ya koi nahi), to receiver unke XOR se ek clean single clock edge derive nahi kar sakta tha.
Lambe space cables par ek alag clock wire kyun buri idea hai?
Ek alag clock thermal expansion aur radiation-induced delay changes ki wajah se data ke khilaf drift karta hai, jisse skew create hota hai jo sampling corrupt kar deta hai. Self-clocked Data-Strobe us wire ko hata deta hai jiska skew tum control nahi kar sakte.
Address-first packet ordering wormhole routing ko enable kyun karta hai?
Kyunki switch pehle destination dekhta hai, woh output port lookup kar sakta hai aur immediately forwarding start kar sakta hai, body aane se pehle — poora packet buffer karne ki zaroorat nahi taaki pata chale kahan jaana hai.
Credit-based flow control ko buffers size karne ke liye one-way delay ki jagah round-trip time kyun chahiye?
Sender credit jaate waqt kharchta hai, lekin fresh credit (ek FCT) wapas travel karni padti hai sender ko zyada bhejne se pehle. Pipe sirf tabhi full rehti hai jab outstanding credit poore there-and-back gap ko cover kare — isliye buffer rule RTT use karta hai, one-way delay nahi.
High-rate instruments ke liye SpaceWire parallel buses se zyada kyun pasand kiya jaata hai?
Serial differential signaling (LVDS Signaling) matlab kam wires (kam mass), koi inter-lane skew nahi, kam power (~10 mW/link), aur koi single-point parallel failure nahi — spacecraft ke mass/power/reliability constraints se match karte hue.
Wormhole routing specifically real-time control loops ki help kyun karta hai?
Yeh per-hop latency kam aur deterministic rakhta hai, isliye imaging aur control data tight deadlines ke andar pahunchti hai. Predictable latency wahi hai jo Real-Time Determinism demand karta hai; store-and-forward ki per-hop packet delay kahin zyada badi hoti hai.
Single parity bit sirf odd-count errors pakadne ke bawajood apni jagah kyun earn karta hai?
Kam-error-rate radiation environment mein, Cosmic Ray Effects on Electronics se single-bit upsets dominant failure mode hain, aur parity unhe sirf ek bit aur near-zero latency se cheaply pakad leti hai.

Edge cases

Timing recovery ka kya hota hai identical bits ki lambi run mein, maan lo solah 1s?
Data poori run mein flat rehta hai, lekin Strobe har bit mein toggle karta hai, isliye abhi bhi har bit period mein exactly ek transition hoti hai — recovered clock ticking rehti hai. Yahi exactly woh case hai jiske liye Strobe invent kiya gaya tha.
Agar kisi switch ka target output port pehle se kisi aur wormhole packet ne reserve kar rakha ho to kya hoga?
Incoming packet stall ho jaata hai (block ho jaata hai) jab tak woh port free nahi ho jaata, input side hold karte hue aur potentially aur packets block karte hue — poora path reserve karne ki head-of-line blocking cost yahi hai.
Agar sender ki credit exactly zero ho jaye to kya hota hai?
Sender data transmit karna band kar deta hai aur agli FCT ka wait karta hai credit replenish hone ke liye. Yeh ek clean stall hai, error nahi; koi characters khoye nahi kyunki koi credit ke bina bheje nahi gaye.
Zero-length-cargo packet ke liye (address phir immediate EOP), kya wormhole routing abhi bhi kaam karta hai?
Haan. Header byte abhi bhi path set up karta hai aur EOP immediately ise release kar deta hai; "body" simply empty hai. Wormhole logic ne kabhi minimum cargo size assume nahi ki.
Agar Data aur Strobe dono same bit period mein toggle karein to kya hoga?
Yeh DS invariant violate karta hai (jo sirf ek line ko per bit change karne deta hai) aur ek glitch ya fault indicate karta hai; receiver ka clock recovery break ho jaata hai aur link ko garbage sample karne ki bajay error/reset state mein drop ho jaana chahiye.
Maximum link rate par, kya credit-based scheme abhi bhi buffer needs bound karta hai?
Haan, lekin buffer requirement rate × RTT ke saath badhti hai: higher rate matlab per unit time zyada bytes in flight, isliye tumhe proportionally zyada outstanding credit chahiye — exactly relationship.
Recall Jaane se pehle quick self-test

Recovered clock kin do signals par kis operation se aata hai? ::: Data aur Strobe lines ki transition activity ka XOR. Ek FCT kitne characters ke liye credit grant karta hai? ::: Eight characters of receiver buffer. Kaun sa marker ek faulty end of packet signal karta hai? ::: EEP (Error End of Packet), normal EOP ke opposite. Link full rakhne ke liye needed buffer kin do quantities ke proportional hai? ::: Link rate aur round-trip time (character width se divided): .