“实时系统”到底是个什么?

2019-09-03 21:30:00·  来源:车辆技术  
 
简要介绍HIL的历史,并介绍什么是实时系统,阅读本节之后,读者应学会自行分析自己的测试对象,看看需要不需要实时系统,以及,需要什么样的实时系统,还可以对
简要介绍HIL的历史,并介绍什么是实时系统,阅读本节之后,读者应学会自行分析自己的测试对象,看看需要不需要实时系统,以及,需要什么样的实时系统,还可以对自己的测试对象的实时性,做一些简单的评估。

01、HIL怎么诞生的

HIL系统很厉害,但是它是怎么诞生的呢?

我们假设该偏文章的读者都具有单片机的概念(汽车上的控制器就是一个加强型的单片机),那么回想一下,大学时候,我们是怎么在硬件层次上测试单片机呢?

一般都是,从淘宝上买个开发板或者自己做一个开发板,把代码烧进去之后,把单片机外设的IO输入用导线印出来,把导线的另一端跟电源或者地点触一下又一下,跟电焊似的,创造数字信号输入,看单片机的反应如何。

对于单片机的输出,我们一般是拿个示波器测试PWM波,或者拿个万用表测数字量输出。总之,单片机需要什么,我们就给它创造什么,单片机输出什么,我们就想办法检测什么。

1.1 汽车技术的进步,催生了测试技术的提升

上个世纪80年代之前,全世界范围内还没有新能源车,燃油车上的控制器也很少,没有ABS、ESP、SPB、气囊、ADAS、雨量传感器……,汽车控制器的开发还是很简单的,所以,还是勉强可以按大学单片机的做法来开发的。但也正是上个世纪80年代起,汽车技术蓬勃发展,大量的新技术和电子产品开始引入到汽车中,整车的复杂度大大提升,这在提高了汽车的安全性、舒适性的同时,也大大增加了汽车开发的工作量,开发周期变得更长了。

在这个时候,在汽车起源的地方,锐意进取的日耳曼人再一次走在了世界的前列,Herbert Hanselmann博士在University of Paderborn成立了dSPACE公司,并同时发布了两款划时代的产品:快速原型、HIL。附图一张创始人的画像:

这两个产品相互合作,完美解决了当时乃至今天仍然存在的两大难题:
我做好了软件,但是硬件还需时日,样车快下线了,怎么能找一个控制器,把软件烧进去,装到车上代替我的硬件,先顶一下,别耽误车辆进度;

我的软件、硬件都做好了,软件也烧进去了,在装车之前,我想先在测试环境中对它进行细致地检查和测试(毕竟在车上很难创造各种逻辑条件,覆盖率较低),最好能让我觉得像是真的在操作一辆车。

dSPACE公司是HIL产品乃至HIL概念的发明者,时至今日仍是这个领域全球最优秀的选手,追随者、模仿者有一大批,比如ETAS、NI,以及其他一众叫不上来名字的小公司。

无论您以后在任何地方,看到如何牛逼的车或者车的用品广告,看到多么先进的驾乘理念,甚至无论旁边有没有美女站着,有没有香车珠宝、宝马豪宅,您都不要忘记德国人为汽车工业所作的卓越贡献。无论是汽车本身还是围绕汽车的一系列产业,德国人都走在了世界的前列,引领整个时代,值得我们学习!

当年,dSPACE的HIL,主要是针对发动机控制器(Engine Control Unit)ECU的,所以,当下全世界大多数HIL设备,都带有发动机的灵魂,隐隐约约,似乎有一股淡淡的汽油味。

整车模型、故障注入、实时系统……这些概念全部都是因为当年测试发动机而搞出来的,针对发动机控制器ECU盾测试,这些东西基本上都是是必须的。

02、什么叫实时系统?

师子小分队对它的定义为:操作系统控制板卡输出或者输入信号,最大时延是可控的,这就是实时系统。

它和“运行速度快”不是一个概念,强调的是可靠性可控性。

我们打个比方,公司八点半上班,有两位员工,都挺勤快,甲每天大概都是8点20到,乙在多数情况下,都是8点10分之前到。但是,甲从来没有迟到过,最迟也是8点29,而且,我们分析甲的起床时间,通勤方式……也确实相信他以后也不大可能会迟到;而乙,就不是了,他在多数情况下都能早早到公司,但他偶尔会迟到,甚至,下大雪了时候,还可能会临时请假甚至旷工。

在这个例子中,8点30,就是最大时延,也是判断在该场景下是不是实时系统的标准,实时系统是相对某一标准而言的,一个系统在汽车行业是实时的,到了航天领域可能就不是实时的了。很明显,甲员工就是实时系统,而乙不是。
实时系统主要有linux-RT、Vxworks等类型。

那,为什么发动机ECU测试需要实时系统呢?答案在于ECU处理的信号很特殊,氧传感器、爆震传感器、曲轴凸轮轴位置传感器;点火控制……这些都是以一定频率变化的,对时间精度要求很高。

假如,我们想通过板卡的pin,输出给ECU的某一输入pin下图所示的信号(横轴代表时间,数轴代表电压),当然,这是理想信号。

如果我们采用实时系统,那,我们虽然不能保证信号的实际时序曲线和图中完全一样,但能保证是在它可控的附近,从而满足ECU对该信号的时间延迟的定义及要求,确保ECU不报故障(这些故障是ECU实现定义好的、ECU软件已经实现了)。

如果我们采用非实时的单核系统,则有可能当我们在这个系统上同时进行别的操作时,比如用matlab进行仿真分析,导致进程拥塞,上图某个点的信号出现较大时间后延,超出了ECU的时延,从而导致ECU报了故障。

上面这个例子,清晰展示了所谓实时系统的作用。当年dSPACE公司大力推行实时系统,是因为没它不行,因为当时的电脑性能太差了。所以,HIL系统就成了那副样子,两个主机,一个主机装上实时系统,成了一个大号的单片机,然后用它作为标准,去给另一个增强型的迷你单片机(被测对象)提供输入输出信号;另一个主机是一个普通PC,做一些文档编辑、测试用例设计操作的工作,两个主机之间一般通过网线通讯。

03、今天的PC机早就今非昔比了
可是,时代是会变化的,CPU、操作系统的技术也是不断升级的,现在的多核CPU,已经完全可以通过软件对普通windows系统进行实时化,不再需要两台独立主机了。而且,并不是所有的控制器都像ECU那样,有这种高时间特性的信号,需要实时系统来测试。比如VCU、HCU、BMS、BCM、FCU、网关……普通的单机win7系统完全绰绰有余。

04、结论
我们需要实时系统,是因为,如果信号延迟了,被测对象要报错,基本无法再正常工作。而这样的“报错”,对被测对象而言,是一个正常且必须的功能。所以,看看被测对象是否有这样的“时延检测”功能,是我们判断是否需要实时系统的最重要的依据。 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25