针对国产数据记录系统的高可靠嵌入式软件设计

2023-01-24 12:51孙梧雨陈栩睿
电子设计工程 2023年2期
关键词:流程图指示灯调度

孙梧雨,龚 俊,袁 霞,陈栩睿

(中国兵器装备集团自动化研究所有限公司,四川绵阳 621000)

数据记录系统可以对嵌入式系统的运行状态信息和数据进行实时采集、存储、传输和处理,支持建立系统数据维护管理体系,可以有效降低维护成本[1-4]。在近两年自主国产化浪潮的背景下,对数据记录系统的国产化率、存储容量、处理速度、可靠性提出了更高的要求[5-6]。

eMMC 作为一种非易失性存储器件,在其内部集成存储控制器,可以完成存储块的自我管理,其由于较高的读写速率、处理效率,在航空航天、金融电子行业有着广泛应用[7-9]。

文中针对基于eMMC 的数据记录系统提出一种高可靠性的嵌入式软件设计与实现方案,并通过实验验证了该软件的可靠性,满足国产高可靠数据记录系统的设计需求。

1 系统介绍

基于国产eMMC 芯片的数据记录系统可以为其他系统提供运行过程的数据存储功能,并支持上位机通过网络读取数据。数据记录系统采用ARM+eMMC 架构,数据记录系统结构框图如图1 所示。微控制器负责主控模块的数据收发、存储控制、接口控制等功能,eMMC 存储芯片选用容量为128 GB 的国产芯片TEE12833TW0,实现数据存储功能,整个系统的国产化率超过95%。

图1 数据记录系统结构框图

2 软件体系架构

数据记录系统嵌入式软件采用模块化设计方法,主要功能模块包括系统初始化模块、系统功能调度任务、数据接收任务、数据存储任务、数据读取任务、系统自诊断任务和错误处理任务。软件体系架构如图2 所示。利用FreeRTOS 的多任务并行处理技术,通过消息队列和信号量的同步机制实现任务间的同步协作。

图2 软件体系架构

3 软件功能模块设计

3.1 系统初始化模块

系统初始化模块流程如图3 所示,首先开启并检查系统功能硬件,再开启FreeRTOS 运行周期进行任务调度。需要特别注意的是,eMMC 上电时需要先读取eMMC 存储卡,判断是否已经存在数据文件,如存在数据文件,则跳过eMMC 初始化流程,避免系统重新上电后误擦除已有数据。

图3 系统初始化流程图

3.2 系统功能调度任务

系统功能调度任务负责根据从其他任务中传来的事件消息开启相应的功能任务,系统功能调度任务流程图如图4 所示。由于系统运行过程中,数据接收的时间可能是随机的,为了保证系统运行的高效性和避免不必要的系统开支,在系统功能调度任务中建立一个消息指针队列,用于等待事件消息。只有当接收到数据接收成功消息时才开启数据存储任务,接收到错误数据时打开错误处理任务,接收到读取存储数据指令时打开相应的数据读取任务,这些任务都在各自的处理函数中进行关闭和资源回收。另外,系统功能调度任务对系统数据接收状态进行监控,存储系统的数据来源由外部设备周期性地输入,若超过一定时间没有接收到数据正确读取的事件消息,则开启错误处理任务提示操作员。最后,系统功能调度任务负责周期性地喂看门狗,防止 系统程序跑飞。

图4 系统功能调度任务流程图

3.3 数据存取任务

数据存取任务的关键在于对数据的可靠写入和读取,FreeRTOS 的内核不带文件系统,为提升开发效率,在设计中加入高效、资源占用率低、专为小型嵌入式系统设计的文件管理系统FATFS[10-13]。在数据存储过程中,对文件系统工作状态进行实时检测,对写入的文件进行重读校验检查,确保每帧数据的完整性,一旦发现错误,则打开相应的错误处理任务。

3.4 系统自诊断任务

为了保证系统的稳定运行,对系统状态进行周期性检查,若出现电压和芯片温度超限的情况,则打开错误处理任务,打开对应的错误指示灯并记录错误信息。图5 表示系统自诊断任务流程。

图5 系统自诊断任务流程图

3.5 错误处理任务

从系统安全的角度分析,最佳的错误处理策略是尽可能地避错,如果无法避错,应该有相应的报警措施[14-16]。为了提高系统运行的可靠性,根据不同错误对系统功能的影响程度对错误进行分级处理,错误处理任务流程图如图6 所示。当有错误发生时,首先在存储芯片中建立的特定错误日志文件中进行记录,记录下错误发生的时间戳信息。对于高风险错误,系统点亮有特定占空比和颜色的指示灯,此时必须由操作员重启系统才能关闭错误指示灯提示;对于中风险错误,规定报警运行时间不得低于1 小时;对于不影响系统运行和文件数据读写的低风险错误,则点亮对应指示灯10 s,当完成记录和点亮指示灯后,关闭这个错误处理任务进程,数据记录系统的错误分级标准如图7 所示。

图6 错误处理任务流程图

图7 错误分类标准

4 系统功能与性能测试

为了验证系统软件的有效性和可靠性,将数据记录系统放置于高低温试验箱,两路数据接收接口通过UART 分别与两个专用测试设备相连接,测试设备周期性地发送模拟数据至数据记录系统。数据记录系统另一侧通过以太网接口连接至上位机,用于接收数据读取指令,并根据读取指令返回特定的存储数据,实验过程中改变系统环境温度,检测系统对温度的适应性。系统测试时设备连接示意图如图8 所示。

图8 系统测试连接示意图

在测试设备的发送数据中按照0.001%的概率随机加入错误数据,最后通过查验比对测试设备的错误数据信息和数据记录系统错误信息日志,确定系统对错误数据的检测概率。

测得的系统性能参数如表1 所示。

表1 系统性能参数

5 结论

针对当前武器系统数据记录单元国产化和可靠性提出的更高需求,文中采用ARM+eMMC 架构,设计并实现了一种针对国产数据记录单元的高可靠嵌入式软件,文中对软件系统架构和各个功能模块的设计和实现进行了详实的说明。为保证系统的可靠性,在各个模块的设计中加入防错及报警措施,并利用事件消息队列和系统调度节省了软件资源。文中提供了一种可行的针对国产数据记录单元的高可靠软件方案,经过测试证明了该方案的有效性。同时该软件已经在某武器系统中得到应用,大量的测试也证明了该方案的有效性和鲁棒性。

猜你喜欢
流程图指示灯调度
《调度集中系统(CTC)/列车调度指挥系统(TDCS)维护手册》正式出版
基于强化学习的时间触发通信调度方法
一种基于负载均衡的Kubernetes调度改进算法
虚拟机实时迁移调度算法
宁海县村级权力清单36条
上海大众POLO充电指示灯点亮
美国邦纳 工业智能指示灯
2013年波罗车充电指示灯异常点亮
《天津医药》稿件处理流程图
《天津医药》稿件处理流程图