APP下载

基于AADL的汽车车身控制模块可调度性分析

2016-10-24马铮周海鹰黄连丽陶冰冰

湖北汽车工业学院学报 2016年3期
关键词:任务调度线程车身

马铮,周海鹰,黄连丽,陶冰冰

(湖北汽车工业学院电气与信息工程学院,湖北十堰442002)

基于AADL的汽车车身控制模块可调度性分析

马铮,周海鹰,黄连丽,陶冰冰

(湖北汽车工业学院电气与信息工程学院,湖北十堰442002)

针对汽车车身控制模块可调度性难以预测分析的问题,利用AADL建立相应模型,通过OSATE工具对比分析不同的派遣协议、执行时间、线程周期对任务及系统可调度性的影响,借助Cheddar工具给出任务在仿真时间内的详细调度甘特图。结果表明:此方法能准确、快速、直观地进行可调度性判定,方便设计者在设计初期对系统进行优化分析。

车身控制模块;AADL;可调度性;Cheddar

车身控制模块BCM(Body Control Module)[1]是汽车重要组成部分,直接影响驾驶者的乘坐舒适性和安全性。对于车身控制模块,任务调度妥当与否,轻则影响产品性能,重则导致驾驶员和乘客生命财产的重大损失。传统设计方法周期长、成本高,已无法满足现代汽车电控软硬件嵌入式系统的需求。模型驱动结构方法(ModelDrivenArchitecture,MDA)[2]能够在系统开发更高级别即模型级,对系统的非功能属性进行验证与分析,有利于保证系统质量安全,极大地缩短系统开发周期,降低开发成本;而合适的体系结构描述语言是MDA的一个重要研究方面。由美国汽车工程师协会SAE(Society of Automotive Engineers)提出的嵌入式实时系统体系结构分析与设计语言AADL(Architecture Analysis&Design Language)[3],可以描述复杂嵌入式系统软硬件的功能属性及可靠性、安全性、可调度性等非功能属性,具备语法简单、功能强大和可扩展性强的优点,被广泛应用于航空航天、汽车电子、机器人等复杂领域。

本文中简要介绍了汽车车身控制模块并针对雨刮控制和倒车雷达模块进行了详细描述;然后,利用OSATE2[4]建模工具建立了BCM模型;随后,对比分析了不同的派遣协议、执行时间、线程周期对任务和系统的可调度性影响;最后,利用法国Brest大学开发的实时调度分析工具Cheddar[5],给出了任务在仿真时间内的详细调度过程甘特图。

1 背景知识

1.1汽车车身控制模块功能结构

BCM可实现内外灯光控制、洗涤刮水、倒车提醒、四驱控制等功能,为车载用户提供各种便利性和舒适性。目前,常用的车身控制方式有分散式、集中式和分布式[6]。随着汽车车身受控单元的增加,分布式控制成为主要发展趋势。本文中设计的汽车车身控制系统采用的是分布式控制系统,且以雨刮控制和倒车雷达控制模块为主要研究对象,BCM功能结构如图1所示。

图1 BCM功能结构图

智能雨刮控制系统在传统雨刮控制系统的基础上增加了雨量传感器、ECU和驱动装置,它根据雨量传感器(Rain_sensor)检测到的雨量信号,经ECU综合决策,实现雨刮器(Wip_device)自动调速。在雨天情况下只需启动自动模式既可,雨量传感器通过不间断地采集传感器光学区域的降雨量或玻璃湿度,根据雨量大小自动调节雨刮的间歇频率,使得刮水器处于不同挡位。

倒车雷达控制系统是汽车泊车或倒车时的安全辅助设备,为驾驶员提供周围障碍物情况并在危险情况下发出警报,解除了驾驶员泊车或倒车时因视野死角或视线模糊所引起的困扰[7],提高了驾驶者的安全系数。

系统由超声波传感器(Radar_sensor)、处理器和蜂鸣器(Buzzer)等部分组成。倒车时,利用超声波原理,由车尾保险杠上的探头发送超声波,当撞击障碍物后反射此声波,计算出障碍物与车辆间的实际距离[8],通过ECU综合决策提示给司机,使停车或倒车更安全便利。

1.2AADL概述

AADL定义了3种组件:软件组件、执行平台组件和系统组件[9]。软件组件包括线程、线程组、进程、子程序、子程序组、数据。执行平台组件包括处理器、虚拟处理器、存储器、总线、设备。各组件定义为类型和实现:组件类型描述外部接口,定义了与其他组件的全部交互点;组件实现可详细描述内部结构(子构件、连接、属性值等)。各个组件最终集成于系统实现中,可在系统实现中将软件绑定于硬件中使软件正确执行。属性可以用来描述系统的功能和非功能属性,包括AADL标准属性集和用户自定义属性集。

制约系统可调度性的主要组件有AADL的线程、进程以及处理器组件。其中,线程是并行执行的可调度单元,在线程中影响系统可调度性的主要因素包括派遣协议(Dispatch_Protocol)、周期(Period)、执行时间(Compute_Execution_Time)、截止时间(Deadline)、线程所绑定的处理器(Actual_Processor_Binding);处理器表示带有调度执行线程的软件和硬件的一种抽象,影响系统可调度性的因素主要有Scheduling_Protocol和处理性能(MIPS Capacity);进程表示一个受保护的地址空间,防止进程内部的线程引起其他进程的损坏,因此不考虑进程对系统调度的影响。

本文中使用OSATE对BCM系统进行建模、编译和分析。OSATE是由软件工程学会基于Eclipse集成开发环境为AADL开发的一款建模分析工具,支持可调度性、端到端的流延迟、安全性、系统资源与能耗等分析。

2 汽车BCM的AADL模型

通过对BCM的功能结构分析以及AADL相关组件分析,本文中设计的汽车车身控制系统AADL模型如图2所示。2个进程Wip_s和Park_s分别实现智能雨刮控制和倒车控制。当雨刮器(Wip_on)处于开启状态且雨量传感器(Rain_sensor)采集到雨量信号时,进程Wip_s对这些信号和数据进行加工处理,并将最终结果输送给刮水器(Wiper_but-ton)控制刮水器进行不同档位的刮水操作。当超声波传感器(Ultrasound_sensor)采集到信号时,进程Park_s对超声波传感器采集的距离信号进行分析决策,判断车与障碍物的危险性,若车距较小时蜂鸣器(Buzzer)发出警报。

图2 汽车车身控制系统的AADL模型

进程Wip_s中包含3个线程:wiper、r_j和shift_c。线程wiper负责采集刮水器开关信号,当刮水器开启时输出wip命令给线程r_j;当线程r_j接收到雨量传感器传送来信号rainfall以及线程wiper发送的wip命令时,线程r_j判断雨量大小并将数据传递给线程shift_c;线程shift_c根据雨量大小综合决策雨刮的间歇频率,最后将命令switch_gear传递给刮水器进行自适应刮水操作,这3个线程具有相同的地址空间。

进程Park_s中包含3个线程:check、proce和judge。线程check用于对倒车雷达系统进行自检测,当系统无故障时,将采集的数据传递给线程proce并输出障碍物与车的距离distance,然后将距离信号交给线程judge进行决策判断,最后输出tap_position信号并传递给蜂鸣器(Buzzer)使其发出报警信号,这3个线程具有相同的地址空间。

通过映射关系将软件组件正确绑定到硬件执行平台上,其中进程绑定于存储器Mem1中,所有线程绑定于ECU中,所有硬件通过总线Bus1相连接。组件的属性值是AADL分析与验证的依据,因此在构建好BCM的AADL模型后,需要对可调度性相关的组件进行详细描述,以线程和处理器为例,部分代码实现如下:

3 模型可调度性分析

3.1实时调度算法理论

对于一个实时系统,应尽可能地保证每个任务的时间约束得到满足以及时响应外部请求。目前已成为工业标准的实时调度算法有单调速率调度算法RMS、最早截止期优先调度算法EDF[10]。为方便问题描述,首先建立任务集τ,表征如下:

给出任务定义后,对于RMS和EDF调度策略,任务必须满足如下条件:1)所有任务是独立的,即没有共享资源;2)∀i:Pi=Di,即任何一个任务的相对截止时间都等于他们的周期;3)所有任务都有一个固定的执行时间;4)所有任务都是可抢占的。

最早截止时间优先算法(EDF)是一种动态优先级调度算法。截止时限越短优先级越高。定理1给出了EDF算法可调度判定条件。

定理1一组独立的任务τ可被EDF算法调度须满足公式(1):

使用EDF调度算法时,处理器利用率最大可达100%,可降低作业的平均等待时间,提高系统吞吐量。考虑到BCM任务集中存在非周期性任务,RMS算法反适用于周期性任务,而EDF调度策略不仅适用于实时周期任务还可用于非周期任务,因此选取EDF调度策略对系统进行分析。

3.2模型可调度性对比分析

对于安全关键的车身控制模块而言,各任务调度的准确性就等于功能的正确性。模型的可调度性分析有助于及时发现系统潜在问题,如任务时限、周期安排是否合理,调度策略选择是否正确,处理器选型是否妥当等,方便设计者及时作出调整。Scheduling是集成在OSATE工具集中的可调度性分析工具,可支持RMS和EDF调度策略,以AADL描述的BCM系统实例为输入进行可调度性分析。为此,在ECU处理性能不变的情况下进行了4组对比实验,分别对BCM各任务不同执行时间、任务周期、派遣协议这3个主要因素进行了对比分析,其中6个线程组件的属性参考值如表1所示。

表1 各线程组件属性值

实验1任务的属性如表1所示,调度策略采用EDF,处理器性能为20 MIPS。通过定理1理论分析得出BCM系统的利用率应小于76%,OSATE工具仿真结果如图3所示,对应的各任务调度性详细报告如表2所示。

图3 实验1仿真结果图

表2 任务调度性详细报告

通过分析得出:此情况下任务都是可调度的且系统的CPU利用率为75.5%,与理论值相比误差在0.6%左右,准确性较高。当任务数量多时,该方法能自动、准确、快速地进行可调度性判定,且能详细掌握每个任务的最大响应时间,方便设计人员及时作出调整。

实验2在任务派遣协议、调度策略、截止时间、执行时间不变下,改变其中一个任务的周期,以任务wiper为例。分析报告如图4所示,其中图4 a对应任务wiper周期为60 ms时的系统调度性结果,图4 b对应任务wiper周期为40 ms时的系统调度性结果,表3为相应的任务调度性详细报告。

图4 任务wiper调度性结果

由实验2可知:当某任务周期变大时,相应的CPU利用率降低,对其他任务的CPU利用率没有影响,系统的CPU利用率降低;反之,利用率提高。同时,任务周期的增加或减少使得相应的最大响应时间变长或缩短,也会改变部分任务的响应时间。因此,合理地安排任务的周期,对一些实时系统是十分关键的。

实验3在任务派遣协议、调度策略、截止时间、周期不变下,改变其中一个任务的执行时间,以任务r_j为例。图5为任务r_j的执行时间为3~4ms时系统调度结果。当r_j执行时间为14~16ms时,此系统是不可调度的,因此OSATE工具未给出调度结果,但部分任务是可调度的,各任务的调度性详细报告见表4。

表3 改变任务wiper周期各任务调度性报告

表4 改变任务r_j执行时间各任务调度性报告

图5 任务r_j执行时间为3~4 ms时调度结果

由实验3可知:当任务执行时间变大时,CPU利用率会提升,相反会降低。任务执行时间的改变会引发其他任务的响应时间改变,当某一任务执行时间过大,其他任务则会一直等待,例如线程r_j执行时间为14~16 ms时,导致线程check长时间等待,当等待时间超过截止时间时,任务不可调度。因此,合理地设计任务执行时间对于整个系统来讲也是非常关键的。

实验4在调度策略、任务截止时间、执行时间、周期不变下,改变某一任务的派遣类型,以任务shift_c为例,将派遣协议变为非周期性,分析报告如图6所示,对应的调度分析报告如表5所示。

图6 任务shift_c为非周期性时调度结果

表5 任务shift_c为非周期性时调度性报告

由实验4可知:任务的派遣协议同样会影响CPU利用率,同时某一任务派遣协议的改变会引起同一地址空间里其他任务响应时间的改变,要么同时增大,要么同时减小。因此,任务的派遣协议对系统调度性有着直接联系,合理的安排任务类型在实时系统中是非常关键的。

3.3BCM任务集调度过程

为了更加直观地进行分析,利用Cheddar工具进行建模仿真,给出详细的任务调度甘特图。以实验1为例,6个任务属性参考值如表1所示且系统架构不变,调度策略采用EDF,处理器性能为20 MIPS,仿真结果如图7所示。由图7可详细得知:BCM系统各任务在不同时刻的调度执行过程,给设计人员更为直观的参考价值,方便对系统架构或任务类型进行调整以满足性能要求。

图7 任务调度甘特图

4 结束语

针对汽车车身控制系统在设计阶段可调度性难以预测分析的问题,提出了基于AADL的车身控制系统可调度性建模分析。根据BCM的功能需求以及实时调度理论,利用OSATE工具对BCM进行建模分析。通过实验1仿真分析得出,系统各任务是可调度的且仿真结果与理论分析值误差在0.6%左右,准确度非常高;在模型架构、CPU处理性能不变的情况下,通过4组实验对比分析了不同任务周期、执行时间、派遣协议对其他任务和系统的可调度性影响,最后利用Cheddar工具给出系统在仿真时间内的详细调度过程甘特图。通过建模分析可以高效地对系统的性能进行早期预测,以便及时发现设计中潜在的问题。将该方法应用于车身控制系统中将会大大提高BCM的安全性和可预测性,降低开发测试的风险,具有很好的应用前景。

[1]舒华,姚国平.汽车新技术[M].北京:国防工业出版社,2005.

[2]Anneke G,Kleppe Jos Warmer,Wim Bast.MDA Explained:The Model Driven Architeture:Practice and Promise[M].Boston,USA:Addison-Wesley Longman Publishing Co.Inc,2003.

[3]Peter H.Feiler,David P.Gluch.Model-Based Engineering with AADL[M].Massachusetts,USA:Pearson Education Inc,2013.

[4]Software Engineering Institute.Open Source AADL Tool Environment(OSATE)Online Help[R].Carnegie Mellon University:Software Engineering Institute,2006.

[5]Singhoff F,Legrand J,Nana L,et al.Cheddar:A Flexible Real Time Scheduling Framework[J].ACM Ada Letters,2004,24(4):1-8.

[6]王亮.基于CAN/LIN总线的汽车车身控制模块设计[D].长沙:湖南大学,2011.

[7]诸葛晓宇,刘恒.倒车辅助系统研究分析[J].轻型汽车技术,2012(4):26-29.

[8]戴明.基于倒车轨迹预测算法的可视化倒车辅助系统研究[D].长春:吉林大学,2014.

[9]Yang ZB,Pi L,Hu K,Gu ZH,et al.AADL:An Architecture Design and Analysis Language for Complex Embedded Real-time Systems[J].Journal of Software,2010,21(5):899-915.

[10]任鹏.嵌入式多任务调度算法及CAN总线通信技术研究[D].西安:西安电子科技大学,2010.

Analysis on Schedulability of Control Module for Automotive Body Based on AADL

Ma Zheng,Zhou Haiying,Huang Lianli,Tao Bingbing
(School of Electrical&Information Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)

In view of the unpredictable schedulability analysis problem of the body control module,the model was established based AADL.The impact of the different dispatch protocol,execution time and thread cycle on the task scheduling was comparatively analyzed through OSATE tool.The task scheduling Gantt charts in simulation time were given through the Cheddar tool.The results show this method can accurately,quickly and intuitively make schedulability determination,and it provides a new way for schedulabilityanalysisandoptimizationinthesystemdesign.

bodycontrolmodule;AADL;schedulability;Cheddar

TP316.2

A

1008-5483(2016)03-0030-06

10.3969/j.issn.1008-5483.2016.03.008

2016-04-10

湖北省科技支撑计划项目(2014BHE024);湖北省高等学校优秀中青年科技创新团队计划(T201610)

马铮(1992-),女,湖北十堰人,硕士生,从事汽车电子嵌入式系统设计的研究。E-mail:marganet_mz@163.com

猜你喜欢

任务调度线程车身
姑苏城内话车身
基于C#线程实验探究
基于PEPA的云计算任务调度性能分析
基于国产化环境的线程池模型研究与实现
基于改进NSGA-Ⅱ算法的协同制造任务调度研究
浅谈linux多线程协作
基于小生境遗传算法的相控阵雷达任务调度
云计算环境中任务调度策略
事故车维修中的车身防腐(三)
卡板在车身修复过程中的作用