NEWS
时间:2020-06-03 15:59:01 来源: 作者:
上周末,SpaceX公司成功发射了“龙飞船号”,这是一个里程碑时刻,标志着人类离商业太空飞行越来越近了。
那么,你有没有好奇过一个问题:SpaceX那些高大上的宇航飞船和火箭,使用的都是什么计算机和软件?
在2015/2016年的游戏开发者会议(GDC)上,有人与SpaceX的工程师讨论了火箭的硬件问题,工程师解释称,猎鹰9号火箭有3个双核ARM x86处理器,在每个核心上运行一个linux实例。
对于每一次计算或者决策,猎鹰9号(下图)都使用了角色-判断系统(Actor-Judge),该系统会比较来自3个双核处理器的命令。
如果3个命令全部一致,系统会将命令发送到火箭上的各种微控制器,后者控制诸如引擎之类的东西;但哪怕只有一个命令不一致,控制器只会接受上一次发送正确命令的处理器。
相比于硬件,关键任务的大多数重要软件都要经过各种认证。 举个例子,你不能在飞船上运行任何随机软件,即使是娱乐系统代码也必须满足各种证书。 其中一个认证叫做DO-178B。
SpaceX使用的一个软件验证工具是astre,这是一个静态代码分析器,用于检查c项目运行时出现的错误。事实上,自动运载飞船(ATV)的自动对接软件就是用c代码编写,并且经过了Astree验证。
这里简单介绍一下ATV,它由欧洲空间局建造,主要用途是向国际空间站(ISS)运输食物、空气和水,每隔17个月,ATV将运载7.7吨货物前往距离地球400公里的轨道,然后与ISS进行对接。
另外,SpaceX才发射的龙飞船2号,驾驶舱配置了供宇航员使用的触摸屏(下图),它是利用谷歌的开源项目Chromium和编程语言JavaScript开发的。触摸屏上每一个虚拟按钮都对应了一个物理按钮。 因此,如果屏幕出现故障,宇航员还可以使用物理按钮。
除了图形显示程序,系统的其余部分都是由c++编写的。显示代码具有100%的测试覆盖率,包括图形输出的验证等。
飞船使用了实时操作系统,它具有常规操作系统没有的特殊保证。比如,更快的中断响应和更好的内存保护。
Vxworks就是这样一个实时操作系统,它是风和公司(Wind River Systems)在上世纪80年代发布的,曾经用于火星探测器、F-16战斗机、爱国者导弹和龙飞船号,支持几乎市面上所有的嵌入式CPU,包括x86和ARM系列。
最后提一下SpaceX的软件工程团队,这家宇航公司拥有4个独立的软件团队,包括飞行软件团队、 企业信息系统小组、地面软件团队和航空电子测试团队。
其中,飞行软件团队大约有35人,为猎鹰9号和龙飞船号的应用程序编写代码,并且在这些飞行器上做核心平台工作。同时,该团队还要编写模拟软件,测试飞行代码,编写通信和分析软件等,可以说任务非常艰巨。
资料显示,SpaceX是美国一家民营航天制造商和太空运输公司,创始人是特斯拉CEO伊隆·马斯克,目标是降低太空运输的成本,并进行火星殖民。