如何提高控制器安全性和可靠性-凯发官方首页

如何提高控制器安全性和可靠性

        当前大部分的嵌入式系统的实现都没有关注软件本身的实时性能。一方面是因为时间特性很难测量,另一方面是发现问题后更难解决。但bmw公司在开发afs(active front  steering)控制器时不会遇到这样的问题。在开发和设计过程中,采用分析工具的对软件实时特性进行验证和分析。这些分析结果也可以在以后进行系统级的时间分析时使用。

 

 

        作为symtavision中国大陆优质代理商,恒润科技联合原厂,已为汽车、自动化等多个行业客户提供工具、时间理论培训及咨询等多项服务,赢得了客户的广泛认可。

简介

        在开发bmw5系的afs控制器时,bmw进入了一个新的领域。这是电子控制转向干预技术(electronically controlled steering intervention)首次在大的实际项目中得到应用,目的是提高系统的高灵活性和动态安全性。这就需要软件的执行要有一个稳定的和可预知的执行时间。就像软件的功能设计(需要什么功能?)和时间特性需要精确的定义(什么时候功能起作用?)之间的关系一样。这样可能时间分析看起来微不足道,开发人员可以通过操作系统的配置来计算这些时间参数。但问题复杂的原因在于:是否在系统运行过程中的所有情况都考虑到了?

 

技术和商业考虑
        bmw针对系统实时特性的问题咨询了外部专家,针对一代afs,gliwa gmbh公司提供了系统运行参数测量和记录的工具“traceguru”,这个工具也可以查看和分析ecu数据,这也是通用的查找软件问题和优化任务执行时间的方式。实时分析的过程一直持续进行,目的是要在设计早期找出可能存在的问题,把整个项目过程中软件的执行时间生成报告。“traceguru”的分析报告已经成为bmw内部进行系统集成时需要的文档。同时也可以预测未来的控制器运算能力需求的估算的依据。当开发第3代afs开始时,以前项目的实时数据表明可以采用更便宜的cpu(更少的flash),最后经过证明这是完全正确的选择,也是时间分析后得到的结论。
        bmw公司时间估算方面成功的原因是采用了正确的测量和分析工具。此后bmw为第三代afs设置了另外一个安全等级。通过数学的验证方法来验证实时系统的需求。bmw公司使用symtavision公司的symta/s产品来找到软件运行的极端情况,这种极端情况是无法通过测量得到的,但这种情况确实存在,而且非常关键。
        symta/s可以在没有测量数据的情况下发现这些问题。这听起来相互矛盾,但可以通过理论和数学计算得到。同时也可以生成分析结果和各种图表,开发人员不需要熟悉基本的调度分析相关的数据计算方式。
        symta/s具有丰富的软件接口。首先使用“traceguru”测量工具采集台架系统的运行数据,分析结果以xml格式输出;另一方面可以把这些结果导入到symta/s中。symta/s对所有的情况进行分析,如果发现任何问题,会以图表的方式解释发生这个问题的原因,这些功能是自动的集成到工具中。

 

 

        针对嵌入式系统的时间特性方面,除了各种技术和商业方面的考虑外,还有一个近来变得越来越重要的原因:嵌入式产品的安全性也非常重要。

控制器运行数据测量

        “trcaeguru”可以记录操作系统任务多种状态,如激活、任务开始执行、任务结束执行、中断和runnables等。这些数据可以通过图形的方式显示:

 

        如上图所示,任务和中断都显示在时间轴上。“ready”状态采用淡绿色显示,任务流程、处理器负载和任务分配等特性都可以显示出来。图中显示了跟spi中断相关任务的时间特性,除此之外还显示用户定义的事件(绿线)和时间线(蓝线)。用户可以分析任意代码段和记录数据之间的时间关系。
        分析结果可以生成报告,报告包含任务的“worst case execution times”(wcet),处理器、runnables、中断等多个时间参数,也可以分析执行时间。后者会将抢占所用的时间扣除。
        未来的项目中将采用gliwa的新开发的测量工具“t1”,这个可以实时分析ecu的数据。如果需要的话,分析结果(如测量的任务的wcet)可以通过硬件连接到ecu上得到。对于处理器的分析,重要的是要考虑所有的中断和任务以及跟控制器跟外界数据交换的所需要的带宽。这方面对速度要求不是很高,因为控制器往外输出的都是运算的结果。这些运算结果也可以存在非易失性存储器中。这些实时记录过程是在没有外部参与的情况下完成的,不需要跟测量工程师进行交互,同时也不会丢失关任何键数据。在线分析对处理器的运行时间影响很小,只是对测量的数据进行采集。
        原理上只要知道状态如“suspend”、“ready”、“running”或者状态变化的操作系统都是可以测量的。硬件接口如“debugger”、“nexus”和can可以用来实时传输ecu内部的数据。从2009年开始,这些数据也可以通过诊断或flexray完成。

调度分析

        调度分析比数据测量更加重要。通过系统级的分析,可以找出关键参数的瓶颈和错误状态,这些都是很难通过测量得到的。symta/s考虑了系统运行期间的所有可能发生的情况,而不是一段时间的静态的监测数据。更重要的是symta/s考虑动态中断、事件和可变的代码执行时间;symta/s还考虑任务之间数据的一致性。调度分析分为两个步骤,首先把测量的数据按照单个任务、中断等进行分解;第二步在考虑了动态因素后分析的wcet,这样symta/s可以分析负载和最大执行时间的情况。
        举一个例子,考虑有一个10ms周期的任务。下图的记录数据显示10ms的任务被4个can中断打断。其它地方发现有更多的can中断,但大部分都发生在两次10ms任务执行之间。

 

 

        symta/s可以自动的从记录数据中获取在什么情况下10ms任务被can中断打断的次数多的信息。如下图所示:10ms的任务被10个can中断打断,但这种情况在trace中没有观测到。
        总之,系统级的考虑和分析这些小概率发生的情况的延迟可以增强在euc和系统测试时的覆盖度。如上图所示,最终验证任务的最差延时满足对deadline的要求,说明在任何环境下,都满足对时间特性的要求。
        在系统设计阶段,symta/s的分析结果可以达到一定的精度。symta/s支持不同的osek标准操作系统和autosar操作系统;同时支持can和flexray总线。每个模块可以独立使用,也可以无缝集成在一起使用。
        越来越多的设计人员想要在代码实现之前(没有测量数据可用)通过建模或者开发过程中分析任务的时间性能。symta/s不需要已经实现的代码,所以symta/s可以在早期虚拟集成的时候通过估算的代码执行时间(对于新功能)或者可用的时间参数(以前代码实现过的功能)进行时间分析。也可以评估软件在不同的mcu上执行的效果。此外,symta/s可以进行对系统的时间性能进行验证。

结论

        bmw的afs设计开发的例子说明在ecu的软件设计阶段采用时间分析工具可以实现更加可靠和更加低成本的ecu。当前,汽车领域的时间特性分析还是一个新的概念,但随着电子系统的复杂变得越来越重要。这个在symtavision公司参与autosar的标准制定中已经体现出来,同时也有欧洲的项目“timmo”和“all-times”等。
        汽车领域的安全相关的系统需要对时间特性进行分析,在电子电器架构(eea)、软件架构和功能集成的时候分析延时影响。时间分析的结果可以帮助开发人员规避风险,汽车电子开发阶段引入时间分析是非常关键的一步。

凯发官方首页-凯发娱乐登录
用户登录
用户注册
*

请输入您常用的邮箱地址,错误的地址将影响功能使用

*
*
*
    性别    男   
*
网站地图