关键词:
Trampoline
嵌入式实时操作系统
AUTOSAR
运行监控
摘要:
随着人们对汽车舒适性、安全性等方面需求的增加,汽车应用软件功能日益增多,导致汽车电子控制系统越来越复杂,系统软件的复杂度和开发成本越来越高。AUTOSAR标准定义的软件架构具有模块化、可移植性、可复用性等特性,保证汽车电子产品质量的同时,降低了开发成本。因此,AUTOSAR标准受到越来越多的整车厂和供应商青睐。目前,国外对AUTOSAR标准的研究较为成熟,国内在这一方向起步较晚,研发基础较弱。本文以开源的AUTOSAR操作系统——Trampoline为研究对象。Trampoline操作系统采用基于优先级的调度策略,具备运行时的保护功能,只允许静态配置,这些特征使得Trampoline满足车控操作系统对高实时性、高安全性(Safety,功能失效导致的人员安全风险)的需求。本文将Trampoline移植到MC9S12XEQ512单片机,优化其实时性和安全性,设计满足AUTOSAR标准的运行监控模块,监控操作系统与应用层软件运行时的状态,提高安全性。研究内容如下:首先,在电动汽车整车控制器上移植Trampoline操作系统,修改与处理器相关的任务管理、系统服务、中断管理、堆栈监测和时间保护模块。系统服务模块设计用户和内核双重工作模式,限制用户访问权限,保护内核安全。中断管理模块引入中断线程化机制,提高中断响应实时性。堆栈监测模块无需硬件支持即可检测栈溢出。时间保护模块借助高精度的硬件定时器控制任务运行时间在预期范围内。其次,考虑到汽车电控单元往往处理能力弱、存储资源少,难以实现完备的运行监控模块,本文针对嵌入式程序中常见的超时和“跑飞”问题,设计包含频率检测、截止时间检测和控制流检测三个功能的运行监控模块,可同时监控操作系统内核和应用层软件,提高整个软件系统的安全性。频率检测负责周期程序执行频率监控;截止时间检测负责程序运行时间监控;控制流检测负责程序执行顺序监控。模块在被监控程序中设置检查点,获取实时运行信息;在专门周期中断中对运行信息进行判断,实现故障识别;利用看门狗电路进行故障处理;引入位图存储控制流图的二维数组,降低存储开销。最后,在MC9S12XEQ512单片机上进行模块测试和系统测试,表明双重工作模式、中断线程化、堆栈监测和时间保护机制有效;对运行监控模块进行功能测试,表明频率检测、截止时间检测和控制流检测三个检测功能有效;在单片机内部时钟频率为64MHz、总线频率为32MHz的情况下,测试得到检查点处的平均运行时长为12.98μs,检查点数和被监控程序的运行时长满足线性关系,合理选择检查点数,由运行监控模块带来的开销可以接受。