软件使用 像超级计算机、物联网(IoT)设备以及许多关键任务设备一样,Falcon 9也采用Linux。SpaceX的软件工程师几年前曾解释过Falcon 9编程的工作情况。 “飞行软件团队大约有35人,我们编写了有关Falcon 9、Grasshopper(Falcon 9测试火箭)和龙飞船应用程序的所有代码;并在这些飞行器完成了核心平台工作;编写了仿真软件、测试飞行代码,编写了部署在地面站中的通信和分析软件;还致力于任务控制以支持进行中的任务。”Falcon 9的板载操作系统是在三个普通双核x86处理器上运行的精简Linux。飞行软件用C/C++编写,并在每个处理器上单独运行。 在日常的日常工作中,宇航员使用运行Debian Linux、科学Linux和Windows 10的HPZBook15s。Linux系统充当C&C MDM的远程终端,而Windows系统则用于收发电子邮件、浏览网络和娱乐。 Dragon飞船也运行Linux,并使用C++编写飞行软件。该船的触摸屏使用Chromium和JavaScript呈现。如果界面出了问题,宇航员可以使用物理按钮来控制飞船。 CPU使用 落后于最先进产品。普通?是的,普通。您会发现,航天器CPU远非最新的。它们是为航天器开发的,从试验板到发射需要花费数年甚至数十年的时间。例如,国际空间站(ISS)可以在1988年的20 MHzIntel 80386SX CPU上运行。但是,我们不知道Falcon 9使用什么芯片。不过,它们的设计可能比您现在能够买到的最佳产品至少早十年。 主要用于实现控制功能。当然,尽管那些古老的芯片可用于空间站的命令和控制多路复用器多路分解器(C&C MDM),但它们对其他任何功能都没有太大的帮助。 通常进入太空的芯片不是普通芯片。留在太空中的CPU必须经过抗辐射加固。否则,由于电离辐射和宇宙射线的影响,它们往往会失效。这些定制的处理器经过多年的设计及更多年的测试才能获得太空飞行认证。例如,NASA期望其下一代通用处理器(ARM A53变体)可以在2021年投入运行。由于Falcon 9的第一级自行着陆,因此其芯片不需要进行抗辐射加固。 采用三冗余设计 这是因为SpaceX使用Actor-Judge系统通过冗余提供安全性。在该系统中,每次做出决策时,都会将其与其他计算核心的结果进行比较。如果有任何分歧,则放弃该决定,然后重新启动该过程。只有当每个处理器都给出相同的答案时,命令才会发送到PowerPC微控制器。 这些控制器负责火箭发动机和格栅鳍(grid fin)的工作,它们从每个x86处理器中获得三个命令。如果所有三个命令字符串都相同,则微控制器执行该命令,但是如果三个命令有一个不正确,则控制器将使用最后一条正确的指令。如果事情完全不对,猎鹰9会忽略不点火芯片的命令。 这种三重“告诉我三次”冗余的目的是提供所需的容错能力,而不必购买昂贵的专用于空间的芯片。像新型的空中客车飞机一样,现代飞机在其电传操纵系统中也使用了类似的方法。 在到真正飞行之前,SpaceX在桌子上测试其飞行软件和硬件。在这里,他们可以进行飞行模拟,并完成灾难性的故障,而不会丢失火箭。 埃隆·马斯克打了一个非常有趣的比喻,“这有点像现代计算机系统的设置方式。对于Google或Amazon,他们拥有数量庞大的小型计算机,因此,如果其中一台计算机出现故障,并不会真正影响用户对Google或Amazon的使用。这与大型机所采用的的旧模式不同,在过去一台计算机出故障,整个系统就会崩溃。” 近年来,谷歌和亚马逊已经证明,他们可以构建由数百万台x86机器组成的数据中心,以提供巨大的聚合计算能力。正如Musk所指出的那样,这些体系结构最有趣的功能是其令人难以置信的弹性:它们“分而治之”的方法使业务即使在服务器发生重大故障的情况下也能继续正常进行。实际上,每天丢失和替换这些环境的一小部分是正常的事,尤其是当运行在这些环境上的应用程序能够通过设计来处理硬件故障时,尤其如此。 https://www./article/from-earth-to-orbit-with-linux-and-spacex/ https://blog./elon-musk-architectures-leading-systems-falcon-heavy-rocket-fully-aligned
|
|