在航天圈里,有一種器件如貴族般存在:宇航級器件。

一個二極管只要上天驗證成功,就可以從一個工業級十八線小明星躍升為宇航級一線大明星,身價可以倍增上百倍甚至上萬倍。
以現有載人飛船搭載的星載計算機和控制器舉例,單個控制器價格為500萬人民幣左右,一共14個系統,為了追求高可靠性,每個系統1+1備份,一共28個控制器,成本總計約1.4億人民幣!而SpaceX的龍飛船主控系統的芯片組,僅用了2.6萬人民幣,成本相差5384倍!
Elon Musk到底是如何做到的?我們看以下幾條重要的知識點。
知識點
1、SpaceX獵鷹九號和龍飛船用的都是Intel雙核的x86處理器;
2、操作系統用的是Linux,還有LabView和Matlab;
3、軟件工程用的是C++,有些時候也用Python;
4、整個主控程序只有幾十萬行代碼。
工業級器件小屌絲的困境:粒子翻轉
航天器所有的器件要經歷很苛刻很苛刻的環境。首先發射時要禁得住劇烈的抖動和很高的溫度,才能走出地球。而真正的煉獄在入軌后才剛剛開始,面對太陽面的時候,溫度迅速提升,最高到120℃;背離太陽面的時候,溫度驟減,最低到-150℃;就這樣90分鐘一圈又一圈,周而復始, 每圈都是270℃的溫差。
而對于電子器件來說,溫度不是最難熬的,最難熬的是太空中的輻射,這些輻射有來自地球的召喚:地球磁場也有來自太陽的問候:高能粒子! 還可能有來自三體文明的問候:其他太陽系以外的粒子。而這些粒子,將引發電子器件的神經紊亂,專業名詞是:粒子翻轉。它將很Surprise地告訴星載計算機和星載存儲器“下面將是見證奇跡發生的一刻!”“我要把1變成0,然后再把0變成1?!?/span>
有些人問了,多大點事啊,不就差個1嗎?!但是在比特界,差一位就可差之千里。

舉個栗子:如果指令20是向上爬升,指令24是停止推進,后果是難以想象的。所以如果發生了1和0不分的情況,整個飛行器的運算結果曾導致非常大的災難。在1996年,阿里安501火箭,雖然沒有粒子翻轉,但是系統試圖將一個64位的數字,放到一個16位的地址里面去,隨即發生了1/0錯亂的現象。結果在點火37秒后,火箭開始側翻,隨之爆炸,因為這個“小”問題,那次發射損失高達3.7億美金!
回到主題,既然粒子翻轉這么恐怖,那SpaceX如何做到發現問題和解決問題的呢?很簡單:民主決策!技術名詞叫:parity bits,同位位元。既然判斷不了一個是否翻轉,那就多放幾個一樣的設備,通過比較,把不一樣的結果給踢出去。
攢火箭硬件選擇
上文提到,SpaceX沒有選擇用貴族宇航級器件,而是選擇了經典廠牌Intel的X86雙核處理器,京東售價僅478元人民幣(參考價為奔騰系列,賽揚更便宜)。而SpaceX也沒有用雙核做一件事,而是把雙核拆成了兩個單核,分別計算同樣的數據。每個系統配置3塊芯片做冗余,也就是6個核做計算。如果其中1個核的數據和其他5個核不同,那么主控系統會告訴這個核重新啟動,再把其他5個核的數據拷貝給重啟的核,從而達到數據一直同步。周而復始,不讓一個核掉隊。
據SpaceX前火箭總師John Muratore透露,龍飛船一共有18個系統,每個系統配置了3塊X86芯片,龍飛船一共有54塊。所以龍飛船主控芯片的總價約:2.6萬人民幣,3600美元!而獵鷹九號一共有9個分立式發動機,每個發動機配置了3塊X86芯片,加上主控系統配置了3塊,獵鷹九號一共有30塊這樣的芯片。獵鷹九號主控芯片的總價約:1.4萬人民幣,2000美元!
我差點砸了手里的X1,是它阻攔了我攢火箭的大計!
更讓SpaceX開心的事情,是Intel X86的程序員一抓一大把啊,而專業宇航級器件的程序用的基本都是特定語言,程序員比元器件還難找。而且硬件工程師壓力也小,X86芯片隨便造,燒壞了?再來1個。不不,再買一打!可是宇航級器件僅僅是測試費,就都夠再買一車X86芯片的。
攢火箭軟件選擇
SpaceX就用的開源Linux寫的操作系統,而Linux用隨便一臺電腦就可以編寫。同樣的,SpaceX程序員最愛的還是C++,用開源的GCC或者GDB做火箭的主控程序。SpaceX還用LabView,一款圖形化編輯語言,對于火箭程序來講,它更容易實現可視化和流程化,更容易做復雜的算法設計和數據分析。SpaceX也用Matlab,在仿真和矩陣計算上,真的很好用。
而且,龍飛船,獵鷹九號,獵鷹重型,分享著同一款代碼,分享著同一類迭代,分享著同一種喜悅,多么的模塊化,多么的互聯網…

大數據監控和測試
2018年,SpaceX一共發射21次,一個公司占全球發射數量約20%,而SpaceX的工程師和分析師,手里有大量的測試數據和實際數據,而且他們也被鼓勵用不同的維度,去檢驗飛行器的安全性,形成最新的也最實用的測試程序,從而降低實測成本。同時,Continuous Integration持續集成也被應用在了程序測試上。
持續集成
為了配合敏捷開發(相對于瀑布開發)的速度和效率而產生的一個用于編譯、測試、發布、部署的工具。通過這種辦法,可以讓團隊每時每刻在持續的基礎上,收到反饋并進行改進,不必等到開發周期后期才尋找和修復缺陷。而且火箭程序不同于其他,會進行“斷弦式”測試,突然關閉一臺電腦,來看看發動機到底有什么反應。
總結
航天已經經歷了60年的歷史,每一次階躍其實都伴隨著各類器件技術革新,比如:
◆1950年代的晶體管技術
◆1970年代的微控制器技術
◆1980年代的數字信號處理技術
◆1990年代的高性能存儲技術
現在,芯片工藝從28nm,16nm,10nm到7nm,工藝的提升也增加了芯片在太空中的抗輻射性能,讓商業器件在太空中應用可行性大大提升!
伴隨航天成長的是經典的:摩爾定律。但是摩爾定律到現在在地面側都快失效了,而在航天側還沒有開始。
比如Greg Wyler在2019年1月6號,Twitter的Oneweb的新型相控陣天線,目標定價15美金。比如AWS與Lockheed Martin在2018年11月發布的超小型地面站,可降低地面站80%的成本
可見航天缺少的僅僅是大膽的商業器件驗證,缺少的僅僅是采用MVP快速迭代的環境,而逐年降低的發射成本正在迅速降低試驗成本,因此,屬于航天的摩爾定律才剛剛開始!屬于航天的互聯網思維才剛剛開始!屬于航天的大時代才剛剛開始!