欢迎来到亿配芯城! | 免费注册
你的位置:GigaDevice兆易创新半导体全系列-亿配芯城 > 芯片资讯 > 关于航天器嵌入式软件CAN总线测试方法的研究
关于航天器嵌入式软件CAN总线测试方法的研究
发布日期:2024-01-16 07:59     点击次数:176

引言

随着航天电子技术的发展,航天电子设备综合化程度越来越高,总线技术已经开始在航天电子领域得到越来越广泛的运用。航天器工作环境恶劣,空间辐射、电磁干扰等都可能通过硬件影响软件的正常工作,为实现“一重故障保业务连续,二重故障保航天器安全”的目标,保证软件的在轨重构功能,总线可靠性和安全性成为在轨航天器的必要保障。CAN总线作为一种串行数据通信协议,因具有高位速率、高抗电磁干扰能力以及错位可查处等可靠性、实时性特点而被广泛应用于航天电子的地面、星、箭载子系统的通信功能[1-6]。

航天器嵌入式软件与硬件关系密切,硬件运行环境的特点以及硬件的多样性显著影响和制约着软件的开发[7],“硬件标准选用,软件定义功能”的设计模式被广泛应用,模式的建立为总线通用化测试提供了充分保障。为保障CAN总线方案的实施,保证软件质量,越来越多的基于CAN总线的自动化测试系统被提出[8-10],关于CAN总线的测试方法和用例却鲜有提及。

1

CAN总线通信硬件架构

星载CAN总线一般采用相双冗余的总线型网络结构,包括A、B两条CAN总线,由管理控制单元及其他下位机组成通信节点。总线各节点CAN总线处理器在上电初始化完成后等待管理控制单元发送指令、广播与轮询,并依据通信协议约定的格式完成数据的接收与响应。

根据主控芯片芯片扩展差异,CAN总线通信架构主要包括:CUP+控制芯片+驱动芯片、FPGA+控制芯片+驱动芯片和FPGA(CAN软核)+驱动芯片三种形式。总线驱动芯片通常采用PCA82C250,控制芯片选用SJA1000系列芯片。如图1所示,CUP+控制芯片+驱动芯片架构(架构1)通过芯片的片选使复用SJA1000芯片的数据读写信号,根据外部总线的中断信号鉴别总线占用情况,预设总线优先级制定总线同时占用的通信策略。如图2所示,FPGA+控制芯片+驱动芯片架构(架构2)基于FPGA的并行运行特性实现双SJA1000芯片的独立运行,同时处理双总线发送与接收,根据总线优先级排序解析处理指令缓存寄存器。如图3所示, 电子元器件采购网 FPGA(CAN软核)+驱动芯片架构(架构3)中FPGA集成CAN总线控制功能,缩减了集成电路间的异步交互,软核方案架构对寄存器的冗余备份、异常通信处理策略的可靠性和安全性提出了更严格的要求。

a00f090e-b110-11ee-8b88-92fbcf53809c.png

a030f3c0-b110-11ee-8b88-92fbcf53809c.png

a04617a0-b110-11ee-8b88-92fbcf53809c.png

2

嵌入式软件CAN总线测试

2.1

测试要点

CAN总线的测试需要基于需求,对产品的性能、功能、接口全面覆盖,易发、多发问题设置重点测试用例,涉及数据边界的测试用例要涵盖边界,针对星载嵌入式软件需要对软件在高频次、长时间、恶劣环境下的可靠性和安全性重点关注,CAN总线测试实施重点关注以下5点内容:

(1)测试总线接收数据长度、格式、内容异常情况下软件自纠能力;

(2)测试总线过载情况下软件接收数据缓冲区的防溢出能力;

(3)测试总线阻塞、关闭情况下总线接口自主复位初始化功能;

(4)测试满足时间性能指标的基础上保留合理的时间裕度;

(5)测试瞬时密集数据传输的强度超出软件处理能力后总线恢复正常时软件恢复正常工作的能力。

2.2

测试用例

基于CAN总线测试要点的实施,对CAN总线接口的性能、功能、可靠性和安全性等方面进行测试用例设计,通过示波器抓取的时序信号、遥测信息的指令计数情况确认软件设计的正确性。针对不方便黑盒测试的功能,利用VTEST测试平台对软件内相关寄存器监视完成灰盒测试。对CAN总线的性能测试方面主要从总线波特率、总线应答及帧间隔时间、总线控制芯片的芯片复位脉冲宽度、总线控制芯片读写时序几个方面进行测试,关于CAN总线的性能测试可以详细参考CAN2.0通用协议和外围控制芯片的使用手册,在此不多做赘述。

对于CAN总线的功能测试主要从符合协议通信、错误协议通信以及总线切换策略测试3个方面进行,功能测试针对不同架构平台的测试项目一致,测试用例如表1所示。

a05c755e-b110-11ee-8b88-92fbcf53809c.png

对于CAN总线的可靠性和安全性测试设计总线控制芯片内部寄存器的监视,通过普通的黑盒测试是无法实现的,本文通过利用VTEST构建的虚拟平台实现对所需寄存器的监视功能,测试用例如表2所示。VTEST测试工具模拟嵌入式虚拟测试平台能够模拟嵌入式软件的接口芯片,通过导入被测源代码,实现对程序目标码插桩、接口监视,统计目标码程序语句和分支覆盖信息,分析目标码的执行情况[11]。

a08727e0-b110-11ee-8b88-92fbcf53809c.png

3

结语

软件测试是软件产品的重要保证,对共性多发测试项目的梳理和总结能够有效遏制相关问题的出现,本文从CAN总线常用架构入手梳理测试要点,设计测试用例,希望能为相关工程师提供借鉴。

审核编辑:刘清