3. 星载DMA控制器架构
星载DMA控制器与地面通用DMA在功能上同源,但设计约束截然不同。地面DMA追求吞吐与低延迟,星载DMA必须在辐射环境中长期可靠工作,因此其架构是"功能通路"与"加固通路"的双层叠加。理解这一点的关键,是把控制器拆成四个可独立加固又相互耦合的部分:寄存器模型、通道管理、中断机制和描述符结构。
寄存器模型:控制面与状态面的分离
寄存器模型是软件与DMA硬件之间的唯一契约。典型星载DMA控制器采用三组寄存器:全局控制寄存器(GCTRL)、通道寄存器组(CHx_CTRL/CHx_STAT/CHx_ADDR/CHx_LEN)和中断寄存器组(INT_EN/INT_STAT/INT_CLR)。全局寄存器负责使能、软复位、仲裁模式选择;通道寄存器承载源地址、目的地址、传输长度、突发类型和通道使能;中断寄存器管理屏蔽、挂起与清除。
抗辐射加固对寄存器模型的首要影响是三模冗余(TMR)与回写刷新。每个关键寄存器在物理上实例化为三份,写入时三份同时更新,读取时通过多数表决输出。单粒子翻转(SEU)可能翻转其中一份,表决器仍输出正确值,同时错误位被记录到纠错状态寄存器,供遥测下传。对于配置类寄存器(如通道使能、中断屏蔽),还需周期性回写刷新,防止累积翻转导致表决器失效。这意味着软件看到的寄存器地址空间不变,但读写时序可能增加1~2个时钟周期,驱动代码必须按加固后的时序参数编写,不能沿用地面器件的零等待假设。
通道管理:仲裁、隔离与降级
星载DMA通常管理4~16个通道,对应载荷数据、星务遥测、大容量存储写入等不同数据流。通道管理的核心是仲裁器与通道隔离。仲裁器在多个通道同时请求时决定服务顺序,常见策略是固定优先级加轮询混合:高优先级通道(如姿态控制遥测)可抢占,同级通道轮询以避免饥饿。
加固设计在此处的关键决策是通道级隔离与可降级。若某通道因SEU进入异常状态(如地址寄存器翻转导致越界访问),隔离逻辑应能将该通道挂起而不影响其他通道。实现方式是为每个通道设置独立的使能锁存和错误计数器,当某通道连续出现校验错误时,硬件自动将其置为"安全挂起"状态,并在中断状态寄存器中置位,由软件决定复位或永久禁用。这种设计把单点故障限制在单通道内,避免整个DMA控制器被一个翻转拖垮。
中断机制:从"事件通知"到"可诊断事件"
地面DMA的中断通常只报告"传输完成"或"错误"。星载DMA的中断机制必须承担诊断职责。典型中断源包括:通道传输完成、描述符链耗尽、地址越界、ECC不可纠正错误、通道安全挂起、看门狗超时。中断状态寄存器采用"写1清除"或"读后自动清除"需明确约定,避免清除操作本身被SEU干扰。
加固影响体现在两点:一是中断状态位同样需要TMR或至少奇偶保护,防止误报或漏报;二是中断聚合逻辑要防止"中断风暴"——当多个通道同时出错时,若每个错误都触发独立中断,CPU可能陷入中断嵌套。合理做法是设置中断聚合寄存器,将同一类错误合并为一个中断,并在状态寄存器中保留各通道的详细标志位,软件在中断服务程序中一次性读取并分发处理。
描述符结构:链式传输的加固难点
描述符是DMA实现散射-聚集传输的核心数据结构,通常包含源地址、目的地址、传输长度、下一描述符指针和控制字段。星载DMA的描述符多存放在外部SRAM或MRAM中,而存储器是SEU高发区。因此描述符结构必须自带校验:常见做法是在每个描述符末尾附加CRC或ECC校验字,DMA在读取描述符时先校验再执行;若校验失败,则停止该通道并触发描述符错误中断,而不是继续使用被污染的数据。
另一个加固要点是描述符链的边界保护。下一描述符指针若被翻转,可能指向非法地址。控制器应维护描述符基址和链长度上限,任何超出范围的指针都被拒绝。对于关键传输,还可采用"双描述符冗余":同一传输链存两份,DMA交替读取并比对,不一致时报警。
加固对控制器设计的整体影响
把上述四部分放在一起看,抗辐射加固对星载DMA控制器的影响可以归纳为三条设计原则。
第一,冗余要分层,不能只做整体TMR。寄存器、中断状态位适合TMR;描述符适合CRC/ECC加双份比对;数据通路适合总线奇偶加超时。不同对象翻转概率和后果不同,统一TMR会带来面积和功耗的浪费,而完全不加固又无法满足在轨寿命要求。
第二,错误必须可观测、可定位。加固不只是"防错",还要"报错"。每个通道的错误计数器、纠错状态寄存器和描述符校验失败记录,都是软件进行在轨健康管理的数据来源。没有这些遥测,地面只能看到"传输失败",无法判断是SEU、总线故障还是软件配置错误。
第三,降级策略要预先定义。当某通道连续出错时,控制器应能自动挂起该通道并通知软件,而不是反复重试导致总线拥塞。软件在收到安全挂起中断后,可根据任务阶段决定复位通道、切换到备份通道或永久禁用。这一策略必须在寄存器模型中预留控制位,在中断机制中预留事件源,在描述符结构中预留备份链入口,三者缺一不可。
综上,星载DMA控制器的架构设计,本质是在通用DMA功能之上叠加一层"可诊断、可隔离、可降级"的加固框架。寄存器模型提供控制与观测入口,通道管理实现故障隔离,中断机制承担诊断通知,描述符结构保障链式传输的数据完整性。四者协同,才能让DMA在辐射环境中长期稳定地完成高速数据搬运任务。