第一章:星载计算机概述

各位同学,欢迎来到《星载计算机软硬件协同设计实战》的第一课。

我是你们这门课的主讲。在航天嵌入式系统这个行当里摸爬滚打了十几年,踩过的坑不少,攒下的经验也还行。今天咱们开篇,不整那些虚的,直接聊聊星载计算机到底是什么,以及它为什么这么“难搞”。

1.1 航天电子系统发展史:从“铁疙瘩”到“智能体”

先说说历史。你想想看,最早的航天器,比如上世纪60年代的那些卫星,里面的电子系统其实挺“原始”的。

  • 分立元件时代: 那时候没有芯片,全是晶体管、电阻、电容焊在板子上。我记得看过一份阿波罗飞船的计算机资料,那体积跟个衣柜似的,算力还不如现在你手里的电子手表。可靠性?全靠手工焊接和冗余设计,一个功能恨不得用三套电路。
  • 中小规模集成电路时代: 到了70、80年代,开始用上了简单的逻辑芯片和微处理器,比如Intel的8086。航天器开始有了“大脑”,能处理更复杂的指令。但功耗和抗辐射问题开始冒头了。
  • 高性能SoC时代: 现在呢?我们用的都是宇航级的FPGA、多核CPU,甚至GPU。一颗芯片上集成了CPU、内存、各种接口。说白了,就是把一个电脑主机缩到了巴掌大,还得能扛住太空里的各种“毒打”。

这个发展过程,其实就是一部“如何在极端环境下,把算力压榨到极致”的血泪史。

1.2 星载计算机的独特挑战:太空不是“温床”

为什么说做星载计算机比做地面上的工业计算机难得多?我给大家拆解三个最要命的挑战。

1.2.1 辐射:看不见的“杀手”

这是太空里最大的敌人。地面上的芯片,到了太空里,被高能粒子一打,就可能“抽风”。

  • 单粒子翻转(SEU): 内存里的一个bit,本来存的是“0”,被粒子打中,瞬间翻成“1”。程序就跑飞了。我在项目中遇到过,卫星在轨运行半年后,突然遥测数据全是乱码。查了三个月,最后定位是SRAM被高能质子打中了。
  • 单粒子闩锁(SEL): 更严重。芯片内部会形成一个低阻抗通路,电流瞬间飙升,直接烧毁器件。这可不是闹着玩的。
  • 总剂量效应(TID): 长期累积的辐射,会让芯片性能慢慢退化,直到彻底失效。
⚠️ 避坑指南: 我曾经因为选型时贪图便宜,用了工业级的DDR内存,结果在总剂量测试中,不到2000rad就挂了。后来全部换成抗辐射加固的存储器,成本翻了三倍,但心里踏实。记住,在航天领域,“便宜没好货”是铁律

1.2.2 功耗:每一瓦都要“精打细算”

卫星上的电,全靠太阳能电池板。就那么几平米,还得给姿态控制、通信、热控分。分给计算机的,往往只有几十瓦甚至十几瓦。

你想想看,一个高性能CPU,满载功耗可能上百瓦。怎么在有限的功耗下,跑出足够的算力?

  • 动态电压频率调整(DVFS): 任务不重的时候,降频降压。任务来了,再提上去。
  • 门控时钟: 不用的模块,直接把时钟关掉,省电。
  • 硬件加速: 能用硬件逻辑做的,就别用软件跑。比如图像压缩,用FPGA做比用CPU省电十倍。
💡 个人习惯: 我设计系统时,会先画一张“功耗-性能”曲线图。找到那个“性价比”最高的点。说白了,就是让每一瓦电都干最值钱的活。

1.2.3 可靠性:没有“重启”按钮

地面上的服务器宕机了,运维人员过去按一下重启键就行。卫星在几万公里外,你够不着。一旦软件死锁或者硬件故障,这颗卫星基本就废了。

所以,星载计算机的可靠性设计,是刻在骨子里的。

  • 冗余设计: 关键部件,比如CPU、存储器,至少备份一套。一套坏了,另一套无缝切换。
  • 看门狗定时器: 软件必须定期“喂狗”。如果程序跑飞了,看门狗会自动复位系统。
  • 纠错码(ECC): 内存里的数据,每64位数据就带8位校验码。能自动纠正单比特错误,检测出双比特错误。

为什么会这样?因为太空里没有“Ctrl+Alt+Del”。

1.3 课程整体框架介绍:我们这30章要学什么?

好了,前面铺垫了这么多,就是为了让大家明白:我们做的不是普通的嵌入式开发,而是“戴着镣铐跳舞”。

这门课,我把它分成四个部分,环环相扣:

部分 章节 核心内容
第一部分:基础篇 第1-8章 航天电子系统概述、抗辐射器件选型、宇航级总线(1553B、SpaceWire)、硬件架构设计基础。
第二部分:软件篇 第9-16章 实时操作系统(RTEMS、VxWorks)、星上软件分区设计、内存管理、看门狗与容错编程。
第三部分:协同篇 第17-24章 FPGA与CPU协同设计、硬件加速器实现、软硬件接口定义、时序约束与验证。
第四部分:实战篇 第25-30章 综合项目:设计一个星载数管计算机。从需求分析、原理图设计、PCB布局、软件编码到系统联调。

嗯,这里要注意。第四部分的实战项目,我会带着大家从头到尾走一遍。用的是一块基于国产宇航级FPGA和ARM Cortex-R5处理器的开发板。这块板子我亲自调过,坑都踩平了,你们跟着做就行。

📌 课程目标: 学完这30章,你不仅能看懂星载计算机的原理图,还能自己动手写启动代码、调驱动、做软硬件协同验证。说白了,就是具备独立设计一套简易星载计算机的能力。

好了,第一章就到这里。下一章,我们直接上手,聊聊宇航级芯片的选型。我会拿几款我实际用过的芯片,给大家讲讲它们各自的“脾气秉性”。

咱们下节课见。