随着航天电子技术的发展,航天电子设备综合化程度越来越高,总线技术已经开始在航天电子领域得到越来越广泛的运用。航天器工作环境恶劣,空间辐射、电磁干扰等都可能通过硬件影响软件的正常工作,为实现“一重故障保业务连续,二重故障保航天器安全”的目标,保证软件的在轨重构功能,总线可靠性和安全性成为在轨航天器的必要保障。CAN总线作为一种串行数据通信协议,因具有高位速率、高抗电磁干扰能力以及错位可查处等可靠性、实时性特点而被广泛应用于航天电子的地面、星、箭载子系统的通信功能[1-6]。
航天器嵌入式软件与硬件关系密切,硬件运行环境的特点以及硬件的多样性显著影响和制约着软件的开发[7],“硬件标准选用,软件定义功能”的设计模式被广泛应用,模式的建立为总线通用化测试提供了充分保障。为保障CAN总线方案的实施,保证软件质量,越来越多的基于CAN总线的自动化测试系统被提出[8-10],关于CAN总线的测试方法和用例却鲜有提及。
CAN总线通信硬件架构
星载CAN总线一般采用相双冗余的总线型网络结构,包括A、B两条CAN总线,由管理控制单元及其他下位机组成通信节点。总线各节点CAN总线处理器在上电初始化完成后等待管理控制单元发送指令、广播与轮询,并依据通信协议约定的格式完成数据的接收与响应。
根据主控芯片和芯片扩展差异,CAN总线通信架构主要包括:CUP+控制芯片+驱动芯片、FPGA+控制芯片+驱动芯片和FPGA(CAN软核)+驱动芯片三种形式。总线驱动芯片通常采用PCA82C250,控制芯片选用SJA1000系列芯片。如图1所示,CUP+控制芯片+驱动芯片架构(架构1)通过芯片的片选使复用SJA1000芯片的数据读写信号,根据外部总线的中断信号鉴别总线占用情况,预设总线优先级制定总线同时占用的通信策略。如图2所示,FPGA+控制芯片+驱动芯片架构(架构2)基于FPGA的并行运行特性实现双SJA1000芯片的独立运行,同时处理双总线发送与接收,根据总线优先级排序解析处理指令缓存寄存器。FPGA(CAN软核)+驱动芯片架构(架构3)中FPGA集成CAN总线控制功能,缩减了集成电路间的异步交互,软核方案架构对寄存器的冗余备份、异常通信处理策略的可靠性和安全性提出了更严格的要求。