文号
950270
阅读
1527
回复
15
收藏
6
本文在AI协助下创作,作者声明AI的作用仅限于局部修饰性、辅助性工作,文章内容的严肃性由作者负责。
业余卫星设计鉴赏——KS-1Q
马 志伟1
1. 风信子卫星团队, 海南省海口市美兰区人民街道海甸岛碧海大道2-1号
2026/05/28
原创
IP:山西
摘要:本文基于KCSA公开的KS-1Q卫星软硬件资料、接口文件和安全性报告,对该卫星的总体构型、电源分系统、测控与通信分系统、星务分系统及在轨失效过程进行案例分析。文章重点梳理双路太阳能输入、串联储能、配电与保护机制,分析基于CSP、KISS及CCSDS同步与信道编码方案构建的遥测遥控链路,并结合公开原理图、固件代码和遥测资料,讨论设计文档与实际实现之间存在的版本差异。最后对该卫星在轨运营和故障进行了分析。本文旨在为业余卫星和开源小卫星的总体设计、接口协调及可靠性评估提供可复核的工程案例。

一、前言


作为一个合格的总体,应当广泛调研同类卫星的资料和设计经验。之前调研的卫星很多,但都没有详细的记述。


我想,为什么不写点小文章呢,以飨读者,又也作为一个记录。


今年是 KS-1Q 发射十周年。

在国内商业航天和业余卫星刚起步的节点上,作为第一颗由非高校的、非政府组织的爱好者创客卫星,KS-1Q 显然具有特殊的意义。


风信子的任务内容和团队组成与 KS-1Q 较为相似,而且其设计相对简单,又有完整的开源信息,故作为本系列的第一颗卫星。

二、KS-1Q 卫星概述

KS-1Q 是国内的第一颗“创客卫星”,是由国内科技爱好者论坛科创论坛孵化的科创航天公司所研制的一颗 2U(非标准)小卫星。


image.jpg

图:KS-1Q 卫星实物

KS-1Q搭载了业余无线电载荷、光通信模块、辐射剂量计与广角相机等载荷;卫星平台,包括电源、UHF应答机、星务单机、微型太敏和惯导装置由该团队自主设计。


仓库链接:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[1]

三、KS-1Q 总体设计

KS-1Q 纳卫星基于 KS-1 型卫星平台研制 。主要由电源分系统(EPS)、U/V测控收发机(测控与通信分系统,TT&C)、星载计算机及控制导航(OBC/ADCS、代号KCNAV2C,科创Navigation?)、载荷四部分组成。[2]


星内各分系统及核心组件之间主要是通过双冗余 CAN 总线和(笔者根据开源信息并不认为有双冗余)数据通信与控制,系统拓扑如下图所示:


image.jpg

图:KS-1Q 系统架构图


上述各分系统及组件在整星内部的机械安装与空间布局形式如下图所示:


image.jpg

图:KS-1Q 结构及分系统定位图


该星的架构设计较为简单,也具有其特殊性,主要在于将高功耗设备例如LED光通信阵列、磁力矩器等看似应当归属于其他分系统的驱动交由 EPS 进行处理。

除开卫星本体外,还有调试系统与地面站系统。

在星上的配线仓室中,将开展各系统调试的必要接口通过一个 J30J-31 的航天矩形连接器引出,使用一个拓展板与其对接。

image.jpg

图:星上调试接口


地面站方面,则由 U/V 地面天线系统、测控机构成。

image.jpg

图:测控站天线系统

四、KS-1Q 电源分系统设计

KS-1Q 的 EPS 位于电池之前,配线舱室、相机、LED阵列、太阳敏感器等组件之后。因此该系统不仅负责了太阳能的最大功率点跟踪、电池管理、部署监测、状态监测等常规的电源系统职责,还负责了太阳敏感器与相机等器件的处理与驱动。


image.jpg

图:EPS分系统电子学基板(PCB)


仓库中提供的电子学基板与原理图、代码存在一定矛盾,可能是版本不同导致的,本节将按原理图设计为准进行解析。


根据文档,该系统提供了以下功能:


image.jpg

图:EPS分系统功能与外设


属于标准的电源分系统设计。其架构如下:[3]


image.jpg

图:EPS 分系统架构图

我们按照能源输入、能源存储和配电输出的顺序进行分析,对应架构图中从右向左的顺序。

4.1 能源输入及存储

在能源输入方面,KS-1Q 一共使用了六片硅太阳能板。这些太阳能板被分为两组,每组由三片串联构成。

image.jpg

图:KS-1Q 太阳能电池板


image.jpg


图:KS-1Q 太阳能板连接方式


能源输入采用双路分立的设计方案,使用两片SPV1040 MPPT(最大功率点跟踪)芯片,并使用两片BQ29702进行单节电池的充放电安全保护,连接了 CSD17577Q3A back-to-back MOS 构成标准锂电池保护拓扑。


image.jpg

图:SPV1040 MPPT 部分原理图


image.jpg

图:BQ29702 锂电池充放电管理部分原理图


简而言之,该架构通过两组完全独立的充电和保护装置,分别向两节蓄电池充电,细心的读者也许会发现这样的设计貌似存在很大的隐患,第七章再叙。


每节电池都安装了一个 10A FUSE 作为过流保护,充放电均受到其保护。


笔者就这一流程画了一幅架构图:


image.jpg

图:KS-1Q 能源输入与存储部分架构图


能源输入与存储部分提供了部分监测。

MPPT 输入之前挂载了两片 LT6105 高边电流检测放大器,跨接在 0.02Ω 的精密采样电阻两端对充电电流进行监测,输出 P1_CS 与 P2_CS 两个模拟量。


image.jpg

图:P2+ 的电流检测电路


低侧电池高侧(中间抽头)在MPPT2使用了47k/47k分压电阻网络,引出VL_DET进行测量。


image.jpg

图:低侧电池高侧分压电阻网络


高侧电池高侧电压在 PMOS RBF SW(飞行前移除开关)后变为

PSB(Power Supply Bus,未稳压母线)两者可以视为等压,因此VL_DET连接在 PSB,既作为电池电压监测又作为母线电压监测。


这一部分使用了200k/100k分压电阻网络。

image.jpg

图:RBF开关——从B+到PSB


同时可以注意到在 PSB 上串联有一颗 0.01R 的精密采样电阻,同样使用了

LT6105 高边电流检测放大器,输出 PSB_CS 模拟量。


能源输入和能源存储之后则是配电输出。

4.2 配电输出

首先是 EED(点火起爆装置,Electro-Explosive Device)的驱动电路。

image.jpg

图:EED 配电路径


该配电路径由 DEPLOY 控制,使用了一颗 PDTD133Z NPN型电阻晶体管 驱动 DMG7401 PMOS,随后使用 LM1085ISX-ADJ 构成恒流源电路,用来驱动后续的负载,其电流被设定为1.838A。

$$I_{\text{out}} = \frac{V_{\text{ref}}}{R_{\text{等效}}} = \frac{1.25\text{ V}}{0.68\ \Omega} \approx 1.838\text{ A}$$

值得注意的是,原理图与实际代码不符。在代码中,DEPLOY 用于控制的是星载计算机 OBC 的配电,这可能是变更没有同步更新,我们暂且以原理图设计为准。

接下来是 MTQ (磁力矩器,Magnetorquer)。


image.jpg

图:磁力矩器驱动电路


出于供电上的考虑,磁力矩器由电源分系统进行驱动。

磁力矩器同样使用 PDTD133Z + DMG7401 的控制组合,分为三组供电MT_X/Y/Z_PS 对应 XYZ 三轴,每组串接了一个 LT6105 进行电流监测,输出 MT_X/Y/Z_CS 三路模拟量。


每轴使用 DRV8337 H桥电机驱动器,由 EPS 主控计算机产生两路 PWM控制信号(X/Y/Z_F/R_PWM,Forward正向Reverse反向)进行控制。


值得注意的是开源的代码中只完成了引脚的初始化,但未包含控制算法。

另外则是HT(电池加热)、LED(光通信载荷)、CAM(摄像机)与 TT&C 的配电开关,结构基本相同,均是 PDTD133Z + DMG7401 进行控制,LT6105 进行监测。


image.jpg

图:常规配电阵列


以上是对其他分系统及组件的配电逻辑。接下来是 EPS 板载所需的配电。


MCU 及 ADC 供电均采用 LDO TPS76933。

image.jpg

图:MCU 供电


image.jpg

图:ADC_3.3V 供电


因为各处电压电流均使用 EPS 板载控制器的内部 ADC 进行采集,对 EMC 与 PI 提出了较高考验。因此在供电侧实现了多级的 LC/RC 阻容滤波及去耦网络。


为抑制 MCU 内部数字内核的高频开关噪声,数字供电轨(MCU_VDD 与 D3.3V)均串联了铁氧体磁珠 BLM15AX102SN1 以实现高频噪声隔离; 模拟供电轨(MCU_VDDA)则通过一颗 10Ω 电阻与数字电源去耦隔离,并配合本地滤波电容维持了低噪声的模拟电压基准。


同时,在布线设计中,多个 100nF 的高频旁路电容紧邻 MCU 的各对 VDD/VSS 引脚放置,与 10 uF 的低频储能电容协同工作,降低全频段的电源总线阻抗 。


另外,出于板载模拟量较多的缘故,一部分模拟量交由板载的 TLV2548 ADC 处理,还有太阳敏感器等传感器也有相关的需求,单独设立了一路ADC 供电,使用 FDTD113Z 控制 TPS76933 的使能。

4.3 EPS 控制器设计

EPS 采用的板载控制器为意法半导体的 STM32F103RCT6。

板载控制器负责了电池加热器、火工品、相机以及其他卫星平台分系统的配电控制,同时承担了太阳能电流、电池电压温度、太阳敏感器等器件的部分模拟量的采集。


image.jpg

图:板载的 STM32F103RCT6


该控制器配备了 MAX6369 作为硬件看门狗定时器,以确保能够在单粒子事件或程序故障中可靠恢复;

image.jpg

图:MAX6369 看门狗定时器


该控制器通过 CAN 总线与其他分系统进行通信。该片自带 CAN 控制器,收发器选型为 SN65HVD233D,使用 PESD1CAN 来保护 CAN 总线不受ESD与浪涌的威胁。

image.jpg

图:CAN收发器及周边电路

EPS 还搭载了一片 ADXL345 低功耗微型加速度传感器,以判断是否进入轨道,该传感器参数同样在遥测中进行传输。但阅读代码,注意到并未对传感器进行初始化。


image.jpg

图:板载三轴加速度计

4.4 安全保险

KS-1Q 具有基本的保险机制,主要为 RBF 物理开关(PSB_OFF)。

PSB_OFF 控制 MPPT 及母线供电使能,拉低后关闭 MPPT 和母线供电。


image.jpg

图:KS-1Q 安全性分析报告

KS-1Q在与火箭对接后无线设备不工作,开机工作时间由KS-1Q计时器确 定,开始计时时间为发射前40min拔除保险导线时刻,计时100min(含发射窗口 30min)。如果因故推迟发射,可以通过接通保险导线终止计时。

在标准的小卫星设计中,现在普遍使用部署开关(KS / DS),即卫星分离的瞬间,微动开关弹起从而开启供电。KS-1Q 因为是不分离载荷,所以只能采用拔除 RBF 导线后依靠纯软件/硬件定时器延时的方案。

image.jpg

图:KS-1Q/长征-11 运载火箭 接口控制文件[4]


另外,根据设计拥有加速度传感器作为入轨保险。


image.jpg

图:KS-1Q 安全性分析报告

在设计上,EPS 拥有大量保护措施。


image.jpg

image.jpg

图:KS-1Q 安全性分析报告[3]

4.5 部分器件控制逻辑

在本节中,笔者只节选电池加热和 LED 光通信载荷进行阐述。

4.5.1 电池加热器

阅读代码,当电池温度低于 -10℃ 、heat_valid 为真时,EPS 每 8 s 评估一次,若两侧电池电压大于 3500mv 则启动电池加热器,并记录起始温度;首次启动时将监测计数器置为 30。


image.jpg

图:电池加热器逻辑


若某侧电压降低至 3400mV 以下,则关闭加热器并将首次加热标志与监测计数器重新置位。


image.jpg

图:加热器欠压保护逻辑


在加热器处于开启状态期间,每8s计数器减1;计数减至0后(约240s),若相对加热起点温升小于 3℃,则判定加热器可能失效,关闭加热并清除加热允许配置;若温升达标,则重置 240 s 监测窗口并更新起点温度。


image.jpg

图:加热器失效处理

4.5.2 光通信载荷

KS-1Q 携带了一个8*6,共计 48 颗的绿光 LED 阵列。

在地面站控制软件的 LED 标签页中可以输入十六进制消息:


image.jpg

图:地面站程序


地面站向卫星发送原始字节数据,EPS 接收后将其写入缓冲区 ledtlm_d.data[],随后调用 ledtlm_start() 启动 TIM1 定时器中断。在中断服务程序中,数据按 MSB 逐字节展开:每个比特固定占用 50 次中断周期,通过控制 LED 的亮灭交替,并利用不同的脉冲宽度调制 0 和 1,最终以幅移键控(ASK/OOK)方式实现信息的无线光传输。

image.jpg

图:LED 驱动相关代码

五、KS-1Q 测控分系统设计

KS-1Q 的测控分系统在设计上,在同类卫星里是较为优秀的,尤其是该星设计采用的的信道编码等措施基本遵循了 CCSDS 的建议。


image.jpg

图:TT&C 分系统电子学基板(PCB)


根据该系统的原理图可知,该系统提供了多路串口输入和模拟量输入,但在实际代码中发现所有外部串口均未使用,ADC 采样变为板上温度、功放电流以及发射机电流。

仓库中提供的电子学基板与原理图、代码存在一定矛盾,可能是版本不同导致的,本节将同样按原理图设计为准进行解析。


image.jpg

图:TT&C 板的外部接口


本节将着重讲射频架构和其他一些重要的措施。

5.1 射频设计

射频路径,KS-1Q 使用的射频收发器是 Silicon Labs 生产的的 SI4463,收发分离,使用了 SKY13381 进行收发切换。


SI4463 均被配置为连续模式,绕过自带的数据包处理器,通过 DIO 引脚直接进行每个位的收发。SI4463 提供了 DCLK 时钟,接收者在该时钟的上升沿对 DATA 进行采样,发送者在下降沿对 DATA 进行更新。


image.jpg

图:TT&C 射频部分原理图


接收部分使用了 Qorvo 公司生产的 SGL0622Z 低噪声放大器:


image.jpg

图:接收路径


发射部分使用了 Semtech 公司生产的 SX1780 功放,使用一个截止频率为 490MHz 的 LFCN-490 陶瓷低通滤波器进行高次谐波抑制(笔者注:这么好的功放咋就停产了……)。


image.jpg

图:发射路径


使用来自微芯电子生产的 M2S010-TQG144 型 FPGA 进行数字基带处理与系统控制。


image.jpg

图:TT&C 使用的 FPGA

5.2 遥测与遥控的协议和实现

KS-1Q 采用了 CSP 作为天地一体化的中间协议,星上三大分系统及地面站均分配了对应的节点地址。测控分系统则作为一个网关的形式对 CSP 包进行天地间的透明收发。


image.jpg

图:KS-1Q 的地址分配


M2S010-TQG144 的 ARM Cortex-M3 进行 CSP 包的路由工作和 SI4463 的驱动。

5.2.1 遥测

遥测遵循了CCSDS TM Synchronization and Channel Coding (CCSDS 131.0) 的下行数据链路标准。[5]


当目的地址为地面站(TNC_ADDR,0x09) 时,libcsp 路由把包从 CAN 转到 KISS 接口,对 CSP 载荷计算 CRC32,再将 CSP 包头、载荷与 CRC 一并封装为 KISS 帧,写入 tmp 队列。

image.jpg

图:KISS 帧格式


ARM 核运行 RTOS 实时操作系统,并设置 rf_tx_task() 数据发送任务。该任务从 tmp 队列获取 220 字节数据,然后加上 3 字节的 CCSDS 风味标志(航天器标识、业务类型、版本号),组成 223 字节(以便送入RS编码器)。


image.jpg

图:ARM 核向 FPGA 传输原始帧

之所以说是 CCSDS 风味,其实可以看出来是参考了 CCSDS TM 的帧设计:[6]


image.jpg

图:CCSDS 132.0-B-3 《TM Transfer Frame》


但其实也不尽相似:


image.jpg

图:KS-1Q TC Transfer Frame Header 实现


数据此后以乒乓缓存的方式写入 FPGA 的 TX_FIFO A/B ,供 FPGA 进行数字基带处理。


FPGA 内的数字基带处理首先将 FIFO 缓冲区内 223 字节数据送入 RS(255,223) 编码器,得到 255 字节的码字,然后将码字送入标准 CCSDS TM 加扰器进行加扰,使用多项式:

$$G(x)=x^8+x^7+x^5+x^3+1$$

加扰结束后在数据最前附着标准 ASM (Attached Sync Marker) 0x1ACFFC1D 以供同步;


随后将 ASM 与数据共同送入约束长度 K=7、码率 r=1/2,生成多项式 171/133,G2反转的卷积编码器进行卷积,并得到长为 518 字节的串行比特流。

该比特流由 TX_GPIO0 输出,在 Si4463 提供的 DCLK (TX_GPIO1) 同步下,送入 TX 侧 Si4463 进行 2-FSK 射频调制。


image.jpg

图:SI4463 TX_GPIO

5.2.2 遥控

地面站上行至卫星的链路则参考了 CCSDS TC Synchronization and Channel Coding (CCSDS 231.0) 的上行数据链路标准。[7]

当地面节点指定目的地址并确认指令后,构建 CSP 数据包,并通过 KISS 接口送入 GNU Radio 完成后续的 TC 组帧与信道编码流程。

在进入 TC 信道编码流程前,数据包前将附着一段自定义的 TC Transfer Frame Header,其结构与前文所述的 3 字节 CCSDS 风味标志一致,包含航天器标识、业务类型与协议版本号等信息。

image.jpg

图:KS-1Q TC Transfer Frame Header 实现


随后,系统将对 Transfer Frame 进行填充,根据 cltus 数量,补齐至cltus * 7 Byte,以满足后续 BCH(63,56) 分组编码对于固定长度 Codeword 的要求。(在半双工链路中,默认 cltus=4,在全双工链路中,默认 cltus = 32 )


根据 CCSDS 231.0 的标准,在 BCH 编码前需要先对 Transfer Frame 进行随机化处理,以保证链路具有足够的数据跳变密度,维持星上接收机的位同步与时钟恢复能力。

KS-1Q 使用了 CCSDS TC 标准规定的伪随机序列生成多项式:

$$h(x)=x^8+x^6+x^5+x^4+x^3+x^2+x+1$$

对数据进行随机化处理。


加扰后将数据切成 cltus 个 7byte (56bit) 段,分别使用BCH(63,56) 编码器生成对应码块。编码完成后,每个 BCH Codeword 均由 56bit 信息位与 7bit 奇偶校验位构成,并附加 1bit Filler Bit,最终形成 64bit BCH Codeword。


到此,数据已经准备就绪,然后开始构建 CLTU (Communications Link Transmission Unit)。


在数据段之前是 128 Byte 的 0x55 极性前导码,以辅助星上接收机进行时钟同步;然后在同步头和数据区之间附加 CCSDS TC 标准规定的 CLTU Start Sequence 0xEB90 用于标识 CLTU 数据的起始位置,实现帧同步。


image.jpg

图:起始序列及数据处理


在数据段的末尾,添加 Tail Sequence:

C5 C5 C5 C5 C5 C5 C5 79

用于指示 CLTU 结束,并辅助 BCH 解码器退出译码状态。

如果是半双工模式,随后会附加 16 字节的 0x55 Idle Sequence,以维持链路空闲期间的符号同步状态。

最终,完整 CLTU 被送入 GMSK 调制器,经基带成形与射频调制后向卫星发射。


卫星上电后,ARM核运行 vRadio_StartRX() 让 SI4463 进入持续接收模式,由芯片完成 解调、判决和位同步,从 RX_GPIO1 输出位时钟,从 RX_GPIO0 输出数据,FPGA 将在时钟的上升沿进行采样读取数据。

SI4463 同样提供了一个 CCA_NIRQ 中断,以指示载波/信号有效。当 SI4463 识别到信号后会发出该中断,FPGA 开始接收,并使用移位寄存器匹配 0xEB90 的同步头。


image.jpg

图:SI4463 提供的 NIRQ 硬件中断


随后 FPGA 会验证结构,进行 BCH 纠错。在校验通过后,会串行输出净荷。出错时置 Block_ErrO,若连续出错超过 4 块则丢弃并计数 TC_Error_Counter。


随后 FPGA 对净荷进行解扰。

解扰后校验 TC 标识头,确认版本统一并应由自己接收后,FPGA 同样是以乒乓缓冲的形式写入 RX_FIFOA/B,送入 ARM 核的队列。

ARM 核在队列中提取出完整的 KISS 帧,之后进行 CRC 校验,校验通过后注入 CSP 栈,并由 CSP 路由至相应节点。

5.3 链路性能

根据 KS-1Q 开源仓库的说明,星上测控收发机支持UHF上行,VHF下行的跨段半双工以及全双工模式。星上遥测发射机输出功率约为 2W,测控链路支持约 2kbps 至 500kbps 的可配置数据速率。


星上遥控接收机灵敏度在 10kbps 时解码门限约为 -113dBm;

地面在使用 USRP B210 遥测接收机,速率为 10kbps 时解码门限约为 -126dBm。

综合来看,遥测采用了 CCSDS 标准级联码,并且因为地面算力较高,可以应用性能更好的软维比特译码器,充分的榨取了编码增益。

整体而言,KS-1Q 的测控链路在业余卫星中已经属于先进梯队,但具体细节有待打磨。

六、KS-1Q 星务分系统设计

KS-1Q 的星务分系统设计相对简单,主要是迈入 21 世纪,微电子技术的发展使得各个分系统都具备了独立的微控制器,能够完成过去星务统一的控制、数据采集等任务。


在《星务小卫星技术》一书中,编者则认为各个分系统的独立的微控制器属于星务系统的管理执行单元(MEU),亦称之为“星务下位机”。[8]


笔者看来,星务分系统,或者说星务中央单机的工作势必会不断的减少,甚至不再具有特殊实体,转而变成由各个分系统的微控制器所自相组织的一种形式,或者说星务系统仍然存在,但演变为了由多个管理执行单元所组成分布式的星务系统。


这一趋势在近五年的小卫星中愈发明显,特别是将测控与星务中枢结合的C&DH 系统概念正在被越来越多的卫星采用。


当然,似乎此处有些偏题。回到正轨,我们继续讨论KS-1Q 的星务分系统设计。


image.jpg

图:KS-1Q 星务分系统电子学基板(PCB)


image.jpg

图:KS-1Q 星务分系统原理图(SCH)


光看该板的尺寸、器件密度、原理图,相信读者自然也察觉到了其设计的简单。


KS-1Q 的星务分系统主要任务分为三个。

一是采集磁强计与IMU两个传感器读数,可能用于卫星姿态的控制(代码中未见相关姿态确定与控制的算法);二是对高清相机的控制、图像采集与回传;三是遥测数据的汇聚。


星务分系统同样板载了一张 SD 卡。根据目前开源的代码可知,计划实现图像和历史遥测的存储,也有相关代码实现,但均为参与编译,部分代码还存在语法问题,可以肯定的是开源的代码应当不是最新的,且仓库中提供的电子学基板与原理图、代码存在一定矛盾,可能是版本不同导致的,本节将同样按原理图设计为准进行解析。


星务分系统电源由电源分系统所控制。在电源分系统一节中,我们提到了电源分系统的控制代码实际上将原理图中标注的火工品驱动变为了星务分系统供电,因此原有的 LM1085ISX-ADJ 可能从恒流源用法改为了 LDO 用法。


在公开的原理图中,星务分系统供电是来自 USB 的 USBPWR 和来自 CAN 连接器(电源分系统)的VINMEAS:


image.jpg

image.jpg

图:来自 USB 与 CAN 连接器的供电


对于来自 CAN 连接器(电源分系统)的 VINMEAS,设计了一个47k/10k的电阻分压网络,引出 VINDET 供 MCU 测量。(话说不应该量VIN吗)


upload_downloader_1779904535187_60155190.webp

图:47k/10k 电阻分压网络


电源输入经过 LTC1877IMS8 降压至 3.3V,供给 MCU 和其他芯片。

upload_downloader_1779904531953_69828206.webp

图:LTC1877IMS8 降压型 DC-DC


星务分系统的主控制器是 STM32F405RCT6。

image.jpg

图:STM32F405RGT6 部分原理图


该芯片具有最高 168MHz 的主频,带有专用 FPU,属于比较经典的飞控芯片。在原理图中可以看到,该板使用了 8 MHz的无源晶振,负载电容 20pF。


该芯片外挂了一片 W25Q256 NOR  串行闪存。

upload_downloader_1779904535173_94799087.webp

图:W25Q256 256Mbit 串行闪存


查阅代码可知其设计意图是用作SD卡的备份存储,当SD卡不可用时存入该闪存。因此在该芯片挂载了 SPIFFS 文件系统。当然在星务的 main.c 中,负责存储的 mem_init() 被注释,实际无法使用。

image.jpg

图:数据存储相关代码

星务分系统同样使用 CAN 总线与其他分系统进行交互,同样使用经典的SN65HVD232 收发器,控制器为 STM32F4 自带。


image.jpg

图:SN65HVD232 CAN 收发器


星务分系统携带了多个传感器,包括气压传感器 MS5611-01BA:

upload_downloader_1779904525043_13771713.webp

图:MS5611-01BA 气压计


可以用于姿态确定的磁强计 LIS3MDL 与六轴IMU ADIS16375:

upload_downloader_1779904532728_92994859.webp

图:LIS3MDL 磁强计


image.jpg

图:ADIS16375 六轴 IMU


image.jpg

图:同款 ADIS16355 六轴 IMU


值得一提的是这颗 ADIS16375。虽然在今天已经几乎搜不到也买不到这个 IMU 了,不过作为当年顶尖的工业 IMU,13000的报价应当是可信的:


image.jpg

图:立创商城


在软件方面,值得一提的是它建立了全星统一的 DM(Data Manager)模型。各分系统均维护本系统的 dm_var(及可选的 dm_cfg)数据结构,并通过相同的 CSP 服务端口(7:读写服务,8:遥测广播)与操作语义(dm_read / dm_write、DM_W_VAR/DM_R_VAR/DM_REQUEST 等)对外暴露。


地面可以通过发送 DM_W_VAR 指令,加上参数在结构体中的偏移、大小以及要改的数据,星上接收后使用 dm_write() 将数据拷贝进 dm_var 的对应偏移。


OBC 代码中提供了 dm_var_write_callback() 回调,但实现为空,仍然靠各个任务在循环内检查标志位来执行任务。


这样一来,遥控不必单独定义命令表,卫星控制的可拓展性更强。先前笔者和 USTC 的同仁讨论了 nanopb,私以为结合到这套 DM 模型中可能会发挥更好的效果。


2026-09-09附注:[9]

DM采用分布式结构,并不依赖OBC统一生成自动遥测。各分系统分别维护自己的DM结构体,其中需要发送的状态信息集中存放在专门的遥测区段中。TT&C模块广播DM_REQUEST后,各在线分系统从本地DM结构体复制相应区段并返回DM_REPLY;TT&C在规定的等待窗口内收集各模块回复,组合形成遥测帧并发送。由此,遥测帧能够随在线模块数量变化,即使OBC关闭,其他分系统的遥测遥控仍可继续工作。

因此,这套架构更准确地说是一种由统一数据模型和服务语义支持的分布式状态管理机制,而不是由OBC集中汇聚全部遥测的传统星务结构。

这种设计减少了为各分系统重复建立专用遥测遥控命令的需要,也降低了系统对单一星务计算机的依赖,提高了模块扩展能力和部分降级状态下的可操作性。


七、KS-1Q 的意外与失效

7.1 意外

KS-1Q 于2016年11月10日07时42分搭载长征11号运载火箭于酒泉卫星发射中心升空。


image.jpg

图:2016年11月10日,长征十一号遥二运载火箭

卫星作为不分离载荷,原计划与火箭末级一同在一个月内完成钝化再入大气。


各个地面站根据运载火箭方与其他来源提供的轨道数据进行了跟踪,但毫无收获。

直到发射次日,NORAD 发布了 2016-066A ~ 2016-066F 六个目标的轨道数据。根据部署的顺序及后续观测结果,卫星团队推测 KS-1Q 的对应编号为 2016-066E 或 2016-066F。(后注:2016-066E实际对应未与运载火箭末级分离的KS-1Q/CAS-2T组合体)


随后,成都地面站成功捕获到卫星信标。

后续消息表明,火箭末级钝化过程出现异常,使组合体以相反方向进入了 503km×996km 的高椭圆轨道。

在随后的测控工作中,卫星团队了解了上面级情况:


image.jpg

图:卫星状况

这一结果虽然使卫星接近内辐射带区域,但也意味着其轨道寿命被大幅延长。考虑到星上器件具备一定的抗辐射能力,团队曾乐观估计卫星或许能够在轨运行两年左右——相比原计划随末级一个月内再入大气,似乎反而成为了一件“好事”。


但是,卫星的遥测数据却出现了异常。

7.2 失效

在阅读 KS-1Q 电源分系统架构时,或许有读者已经注意到一个潜在的致命问题:

KS-1Q 的电源系统并不存在任何的主动均衡机制。

这意味着两组充电回路必须长期维持近乎完全对称的工作状态。系统不仅要求太阳能电池阵列具备相近的受光条件,同时也要求两组电池在容量、内阻、化学特性以及初始荷电状态等方面具有较高一致性,以维持串联母线的能量平衡。

然而在空间环境中的自旋、姿态章动、太阳能电池的局部遮挡甚至是元器件本征的微小差异都会导致某一侧电芯放电过深,触发低端保护关断,让整个串联母线回路被强行切断,引发系统级的电力瘫痪。

事实上,这一设计问题也最终导致了KS-1Q的完全失效。

2026-09-09附注:[10]

原文分析存在问题,如果太阳能输入长期显著大于整星运行、充电和地影期消耗,使两节电池大部分时间处于浮充状态,系统本身存在一定的弱负反馈,两节电池仍可能分别达到充满状态。因此,主动均衡的缺失更准确地说是一项降低故障容限、放大单支路异常后果的设计风险。本文发布后,卫星团队提供了部分信息,表明卫星入轨后状态良好,原文分析不成立。根据测试信息,卫星团队认为电源分系统故障可能是因为光通信载荷启动后,星上电池组因超出额定放电能力而发生故障。

团队在后续复现中观察到:如果始终不启动光通信,仅使用其他功能,样机电池组仍可正常工作;但使用光通信模组进行发送后,电池就可能受到不可逆损伤,并在数日后表现出快速自放电。在该复现中,通常只有一侧电池受损,与在轨遥测中观察到的情况具有较好的一致性。


2016年11月12日,在科创成都卫星测控站接收到的数据包中,电池组的高侧电压为6.802V,低侧电压(中间抽头)为3.645V。也就是说高侧电池组电压仅有3.157V,两组电池产生了显著的不均衡。

image.jpg

图:2016年11月12日成都站解码结果

团队做出了初步的分析:


upload_downloader_1779904533963_82961215.webp

“可能是有一组太阳能电池出现故障,没有给对应的蓄电池充电,有可能是有东西遮挡了阳光,也可能是蓄电池及其充电电路有问题。”


但谁知道呢。


卫星团队上发指令试图进行补救,先后更改了多个系统的工作模式,但在后续的监测中发现没有任何恢复的迹象。


最终,团队重新刷写了电源分系统的程序,使卫星进入停机充电模式,希望在长时间光照后,电池电压能够重新恢复至可启动范围。


upload_downloader_1779904525391_92530309.webp


此后,KS-1Q 再无音讯。


截至 2026 年 5 月 25 日,我们依然能够收到来自其邻居 CAS-2T 的信标,而属于 KS-1Q 的那部分频谱,则早已沉寂。


Space is hard.

八、致谢

KCSA 对 KS-1Q 卫星的部分软硬件设计、通信协议与地面站系统进行了开源,为业余卫星测控链路的研究与学习提供了极具价值的参考资料,也直接促进了本文的写作。


在 KS-1Q 发射十周年之际,谨以此文向勇攀航天高峰的科技爱好者们致以敬意。

参考文献
  1. [1]
    KCSA. KS-1Q: Opensat first generation cubesat bus[EB/OL]. [2026-09-09] https://github.com/opensatellite/KS-1Q.
  2. [2]
    KCSA. KS-1Q 产品简介[R/OL]. KS-1Q_intro_zhcn_v3. 2016. https://github.com/opensatellite/KS-1Q/blob/master/documents/KS-1Q_intro_zhcn_v3.pdf.
  3. [3]
    KCSA. KS-1Q安全性分析报告[R/OL]. KS-1Q_safety_report_zhcn_V3. 2016. https://github.com/opensatellite/KS-1Q/blob/master/documents/KS-1Q_safety_report_zhcn_V3.pdf.
  4. [4]
    KCSA. KS-1Q/长征-11 运载火箭接口控制文件[R/OL]. KS-1Q_icd_zhcn_20160929_public. 2016. https://github.com/opensatellite/KS-1Q/blob/master/documents/KS-1Q_icd_zhcn_20160929_public.pdf.
  5. [5]
    CCSDS 131.0-B-4 TM Synchronization and Channel Coding[S/OL]. https://ccsds.org/Pubs/131x0b4s.pdf.
  6. [6]
    CCSDS 132.0-B-3 TM Space Data Link Protocol[S/OL]. https://ccsds.org/Pubs/132x0b3.pdf.
  7. [7]
    CCSDS 231.0-B-4 TC Synchronization and Channel Coding[S/OL]. https://ccsds.org/Pubs/231x0b4e1.pdf.
  8. [8]
    李孝同,施思寒,李捷. 星务小卫星技术[M]. 北京:北京理工大学出版社,2019.
  9. [9]
    warmonkey.. 关于KS-1Q系统设计、在轨故障及后续复现情况的补充说明[EB/OL]. [2026-09-09] https://www.kechuang.org/s/o1fbt3yo.
  10. [10]
    warmonkey. 关于KS-1Q系统设计、在轨故障及后续复现情况的补充说明[EB/OL]. [2026-09-09] https://www.kechuang.org/s/cj4p47l0.
原始数据
[ 修改于1个月21天前 - 2026/09/09 19:26:39 ]
+5
科创币
Sion
2026/05/29
好文
5个月3天前IP:北京
950303
1楼

从这个角度看,存在的隐患主要是两组太阳能电池阵,充电电路与电池本身构成了可靠性上的串联,使得其中任何一部分损坏都将导致整星掉电。但是从正常运行的角度来看,如果电池阵功率>>运行+充电+地影期消耗,问题实际上也不是特别大,两节电池的能量差异最终会在浮充中趋于平衡,只能说直接原因还是有一组电池板/充电电路不正常。

引用
评论
3
5个月3天前IP:中国
950306
2楼
引用Sion发表于1楼的内容
从这个角度看,存在的隐患主要是两组太阳能电池阵,充电电路与电池本身构成了可靠性上的串联,使得其中任何一部分损坏都将导致整星掉电。但是从正常运行的角度来看,如果电池阵功率>>运行+充电+地影期消耗,问题...

原文的分析确实有点问题,系统本身存在一定的弱负反馈,如果卫星绝大多数时间处于浮充状态,问题是不大的。可惜卫星刚上去就碰到了这套架构的致命缺陷。


引用
评论
2
5个月2天前修改于 5个月2天前IP:广东
950308
3楼
那时候真是初生牛犊不怕虎,是开拓者的冒险时代

楼主的帖子写得很全面,分析很彻底,非常棒。可以考虑分析一下FPGA源代码。

可以再分析一下FPGA基带和地面站SDR实现,FPGA部分有目前唯一的CLTU BCH(63,56)硬件解码器实现


空间物体2016-066E实际上是KS-1Q / CAS-2T。

拍照被相机的HI3516 SDK坑惨了,串口驱动有bug,64KB以上的文件会溢出。最终导致不能拍照。


充电电路必须全部正常工作,卫星才能存活,这个结论是正确的。但如果改为串联2个太阳能电池,1颗充电IC+1颗均衡IC,可靠性并不一定高于 2块太阳能电池+2个充电IC。这部份当时是做过分析的,我们认为使用MPPT专用芯片节约的时间是值得的。我们有验证过的纯软件MPPT实现,但是当时时间极为紧张(工期3个月),真的来不及了。均衡不是必须的,如果能源平衡没问题,两个电池肯定都能充满。反之如果太阳能输入不足,不管是否均衡都得关机。


那个地面站软件真的是一个通宵干出来的。


真正的死因有可能是光通信模组的大电流放电(15~20A)导致锂电池损坏。这个电池组是外购的、经过第三方检测的18650锂电池,因为型号比较老,容量只有不到2600mAh,并且只能1C放电。购买和检测本身没问题,但是我们超范围使用了。这个后果不是短时间内能测出来的,这就是问题所在。


在后续的故障复现中我们发现:一直不启动光通信,仅使用其他功能,测试几个小时之后短接RBF关机,可以在仓库储存6个月不需要充电。但是只要光通信发一个100ms数据帧,电池就会受到不可逆的损害,在几天之后快速自放电。即使短接RBF关机,也不能阻止自放电。并且是一边的电池坏掉,不是两个全坏,导致电池极端不均衡。


总之就是不能开光通信,开了电池必坏,哪怕一个脉冲都不行。故障显现的时间不是立刻,而是要经过一段时间才能发现。发射前的测试时间实在是不够了,地面测试经常用充电。并且大部分测试用的是另一种新款的普通消费级松下18650,导致没能发现问题。


当时就是发了启动光通信的遥控之后,有一个电池电压就掉到3.3V以下了。之前电池充电一直是正常的,舱内温度也是正常的,自动加热也是关闭状态。正常来说这个电路待机功耗极低,放电到截止了应该也能充回来的。所以很可能是锂电池受到了不可逆的损害,其次是太阳能电池因为没有盖面玻璃/封装工艺不当损坏了,再次可能是电路损坏。


哦对了这个LTC1877虽然辐射测试数据非常好,但是它自己本身容易坏。我感觉还是要多用普通工业级/汽车级常用的电路方案,小众的器件很可能有难以预见的问题。

引用
评论
5
5个月2天前修改于 5个月2天前IP:广东
950310
4楼

DM是分布式的,不依赖OBC的自动遥测数据生成。DM结构体是分段的,需要发送遥测的状态信息在专门的区段中。

TTC模块广播DM_REQUEST,各模块从自己的DM结构体中复制这个遥测区段到DM_REPLY

TTC在一段等待期内,收集各模块的DM_REPLY,组合成遥测帧。随后TTC发出遥测帧。

这样不管有多少个模块上线,遥测都能正常发送,并且遥测帧长度可以根据上线模块数量自动变化。哪怕OBC关机了,遥测遥控都可以正常操作。


ADIS16375不是一个好选择,功耗高达0.6W是一个电老虎,这么小的星体支撑不了供电。只能是偶尔开启做实验。目前该传感器价格2000-3000元。

EPS的电源开关都是有倒计时的,需要一直发指令维持通电,避免意外长时间开启导致快速耗尽电量。


引用
评论
5个月2天前IP:山西
950315
5楼
引用warmonkey发表于3楼的内容
楼主的帖子写得很全面,分析很彻底,非常棒。可以考虑分析一下FPGA源代码。可以再分析一下FPGA基带和地面站SDR实现,FPGA部分有目前唯一的CLTU BCH(63,56)硬件解码器实现空间物体20...

FPGA这一块不是特别熟,分析的时候没敢太深入,基本就看了一下 TM/TC 的数据结构实现,打算以后再深入了解;


相机的拍照功能没做测试吗?另外在仓库的硬件设计里注意到相机的串口也连接到了EPS上,记得注释掉的部分好像是转发到调试接口?没能拍到照片是比较遗憾的事情。


如果原设计的两个电池组转为并联,牺牲一下母线电压和拓扑效率,可靠性应该能高很多。


我们目前的设计是两组 2S 锂电池并联平级备份,参考了现在比较主流的架构,做了一些冗余;IMG_20260531_134638.jpg

硬件 MPPT 实现我觉得完全没有问题,SPV1040这个片子在小卫星上有广泛的使用记录,我们也在使用;之前分析过 OreSat-1 的 MPPT 设计,他们使用 INA226 进行监测,使用 STM32F091 实现MPPT算法,调节 LT1618 完成控制,似乎最后效果并不好,并且徒增静态功耗。我们原计划使用表贴砷化镓电池片,不过之前哈工大和上光所孵化的两个企业找我推销他们的柔性太阳翼和晶硅异质结电池,似乎性价比更高更省心,目前还在对接,不知道原有的MPPT能不能兼容新的电池;


不做均衡或多或少会影响电池寿命,不过确实不是必须的;看参数的话八院的那个电池可能还不如镍氢?最后被光通信拉垮着实也没想到,这个确实是时间太紧测试不完善。刚上天就启动光通信是进行功能测试?太阳能电池看起来像是硅板?


我们目前器件选型的原则是防闩锁不防剂量积累,毕竟设计工作时间是三个月;不过对转发器等组件设计了较大的冗余,希望在卫星平台损坏后能够继续使用。就此看来车规级的器件是比较合适的。

引用
评论(1)
5个月2天前IP:山西
950317
6楼
引用warmonkey发表于4楼的内容
DM是分布式的,不依赖OBC的自动遥测数据生成。DM结构体是分段的,需要发送遥测的状态信息在专门的区段中。TTC模块广播DM_REQUEST,各模块从自己的DM结构体中复制这个遥测区段到DM_REPL...

DM架构基本和我分析的一样,不过在文章中似乎写的不是很恰当;这么看来其实应用nanopb这类 Protocol buffers 似乎是很合适的,我们打算借鉴这套架构。


看得出来 ADIS16375 确实不合适,代码里发现基本是不怎么开机的;目前我们使用 SCH1633-D01 + ICM42688 两个 MEMS IMU 做分段式的测量,一个高精度一个高量程,还不知效果如何。


EPS 的开关计时很有意思,我们之前并没有考虑到这些,感觉是很有必要加一个的;似乎没有看到闩锁防护?

引用
评论
5个月2天前IP:广东
950325
7楼
引用山雨欲来风满楼发表于5楼的内容
FPGA这一块不是特别熟,分析的时候没敢太深入,基本就看了一下 TM/TC 的数据结构实现,打算以后再深入了解;相机的拍照功能没做测试吗?另外在仓库的硬件设计里注意到相机的串口也连接到了EPS上,记得...

SPV1040电压受限,功率受限。我也比较担心那些复杂的BMS IC出现内部错误,所以选了比较简单的模拟保护IC,而且是无状态的,降低抽风的概率。

当时考虑过EPS直接控制相机,后来是相机串口接到OBC的,转存到OBC的SD卡。

陀螺仪不需要高量程,基本上没机会用到。


TID对现在的器件一般来说不是问题,建议跳过测试。如果一定要测,可以按10或20krad测试,然后替换损坏的器件。

我那个纯软件MPPT是PWM直接驱动boost MOS,省到极限了。这样6个面只要3个MOS就搞定了,非常省体积,而且电压电流不受限制。


KS-1Q使用的是Sunpower C60太阳能电池片,激光切割1/6尺寸,串联增加电压。这个非常难买到切割好的,而且一致性非常糟糕。碎裂的很多,效率也相差很远。只能自己用太阳模拟器筛选出性能一致的,最后能用的只有1/10。说不定就是真空又高温,太阳能电池废了。

那个电池可能还不如镍氢?——只要不开光通信,长时间用没问题。地面测的非常稳定。


晶硅HJT是好东西,小东西也不用省这点重量,成本能极大降低。这个难点在封装,我后面改用PCB支撑,钻大孔排气,GD414胶水固定,TFT液晶玻璃保护。也有推荐用ETFE的似乎更好。

引用
评论
1
5个月2天前IP:中国
950327
8楼
引用warmonkey发表于7楼的内容
SPV1040电压受限,功率受限。我也比较担心那些复杂的BMS IC出现内部错误,所以选了比较简单的模拟保护IC,而且是无状态的,降低抽风的概率。当时考虑过EPS直接控制相机,后来是相机串口接到OBC...

电压和功率是MPPT的重要制约……

SPV1040启动电压0.4V,最高电压5.5V,对于低功率的系统而言比较宽松了,应该无所谓。


据我们选型调查,用模拟保护IC可能有点保守。复杂的BMS似乎问题不大,现在很多商业微纳卫星都在用,因此我们暂时不太担心这一部分。


高量程陀螺仪是因为我们带了一个MEMS的推力器,比较害怕姿态失控把陀螺干饱和;


测试我们不打算做太多,TID没必要测,SEL测不起……把发射所需的力学测试做完,做一下高低温这类基本测试就行了,也可以去找BHC他们蹭一蹭;


我们最开始也做了软件MPPT,但是后来觉得没必要就没继续做下去了;Sunpower C60是柔性的,做好封装应该和淘宝上那些柔性板一样可以随便弯折🤔现在很多做这种定制的,以前可能相关产业不太发达?


之前给气球焊接太阳能板,用的1mm的铜丝焊到汇流带上,焊了一晚上碎了几十片,最后好不容易都搞好了,结果第二天一来就发现因为应力汇流带全掉下来了,非常崩溃,这个东西太难整了,焊的时候温度高会裂,有点应力也会裂。

引用
评论
5个月1天前修改于 5个月1天前IP:广东
950328
9楼

SPV1040启动电压低,1片硅太阳能电池即可启动。但是电压电流都太低了,>=2S锂电池还得再升压一次。


sunpower倒闭了

sunpower c60并不是真的柔性,这东西是很薄的晶硅硅片,比玻璃还脆。夹在塑料里面可以实现一定的弯曲,折叠是绝对不行的。

如果基板的热膨胀系数无法匹配,那就只能用有弹性的胶水在中间粘结。连线也不能太硬,多条细铜丝留出伸缩余量就好。


很多商业微纳卫星的器件选型根本没做任何验证的,也没有数据支持。如果没有可用数据,我倾向于用功能较简单的器件。

如果只要工作几个月试一下功能,树莓派挂个充电宝肯定也可以的。这东西现在还是比以前容易多了

引用
评论
1
5个月1天前修改于 5个月1天前IP:山西
950329
10楼
引用warmonkey发表于9楼的内容
SPV1040启动电压低,1片硅太阳能电池即可启动。但是电压电流都太低了,>=2S锂电池还得再升压一次。sunpower倒闭了sunpower c60并不是真的柔性,这东西是很薄的晶硅硅片,比玻璃还脆...

这倒确实……

2S升压确实麻烦一些,但可靠性上应当是有所提升的?不过也说不好,母线升压可能会产生单点,还要具体分析。


看起来sunpower的坑挺大的,当时没考虑换其他产品吗?


我们对COTS是比较宽松的,我们认为满足车规级,最低工业级,有飞行记录,应用广泛无不良记录都可以进筛选清单,在600km以下的中短期飞行中应当是问题不大;


至于树莓派之类的普通高制程器件、廉价民品、小众单品,一般400km以下飞一飞应该也没啥大不了的,毕竟日本同行到现在为止从kibo实验舱丢出去的树莓派没有一百也有五十了。

引用
评论
5个月1天前IP:山西
950338
11楼
引用warmonkey发表于4楼的内容
DM是分布式的,不依赖OBC的自动遥测数据生成。DM结构体是分段的,需要发送遥测的状态信息在专门的区段中。TTC模块广播DM_REQUEST,各模块从自己的DM结构体中复制这个遥测区段到DM_REPL...

在开源的仓库里似乎没有姿控的程序。我对于这方面比较感兴趣,想了解一下KS-1Q是如何进行控制算法的调参测试的。

引用
评论
4个月26天前IP:广东
950452
12楼
引用山雨欲来风满楼发表于11楼的内容
在开源的仓库里似乎没有姿控的程序。我对于这方面比较感兴趣,想了解一下KS-1Q是如何进行控制算法的调参测试的。

来不及也用不上,这部分没做

引用
评论
1
4个月25天前IP:中国
950460
13楼
引用warmonkey发表于12楼的内容
来不及也用不上,这部分没做

2333我看老虎的发言,还以为做了

引用
评论
3个月2天前IP:北京
951384
14楼

还做后续吗?我也许有免费搭载资源

引用
评论
3个月0天前IP:山西
951441
15楼
引用可重复使用硫离子发表于14楼的内容
还做后续吗?我也许有免费搭载资源

我们这边刚拿了七公斤

引用
评论(1)
1
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的