侵权投诉
订阅
纠错
加入自媒体

HIL第2讲,零基础教程,HIL来源和实时系统

2019-04-13 09:26
车辆技术
关注

第二讲,本节简要介绍HIL的历史,并介绍什么是实时系统,阅读本节之后,读者应学会自行分析自己的测试对象,看看需要不需要实时系统,以及,需要什么样的实时系统,还可以对自己的测试对象的实时性,做一些简单的评估。

上一节我们总体上聊了本系列文章的目的,从本讲开始,我们进入正题。本节,我们聊聊HIL系统的起源,以及什么是实时系统。

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

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

一般都是,从淘宝上买个开发板或者自己做一个开发板,把代码烧进去之后,把单片机外设的IO输入用导线印出来,把导线的另一端跟电源或者地点触一下又一下,跟电焊似的,创造数字信号输入,看单片机的反应如何。对于单片机的输出,我们一般是拿个示波器测试PWM波,或者拿个万用表测数字量输出。总之,单片机需要什么,我们就给它创造什么,单片机输出什么,我们就想办法检测什么。

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

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

HIL第2讲,零基础教程,HIL来源和实时系统

这两个产品相互合作,完美解决了当时乃至今天仍然存在的两大难题:1、我做好了软件,但是硬件还需时日,样车快下线了,怎么能找一个控制器,把软件烧进去,装到车上代替我的硬件,先顶一下,别耽误车辆进度;2、我的软件、硬件都做好了,软件也烧进去了,在装车之前,我想先在测试环境中对它进行细致地检查和测试(毕竟在车上很难创造各种逻辑条件,覆盖率较低),最好能让我觉得像是真的在操作一辆车。

dSPACE公司是HIL产品乃至HIL概念的发明者,时至今日仍是这个领域全球最优秀的选手,追随者、模仿者有一大批,比如ETAS、NI,以及其他一众叫不上来名字的小公司。师子一号的此系列文章,只聊HIL,快速原型不谈。

当年,dSPACE的HIL,主要是针对发动机控制器(Engine Control Unit)ECU的,所以,当下全世界大多数HIL设备,都带有发动机的灵魂,冥想起来,似乎有一股淡淡的汽油味。整车模型、故障注入、实时系统……这些概念全部都是因为当年测试发动机而搞出来的,针对发动机控制器ECU盾测试,这些东西基本上都是是必须的。

先说第一个,什么是HIL领域的实时系统?师子一号对它的定义为:操作系统控制板卡输出或者输入信号,最大时延是可控的,这就是实时系统。它和“运行速度快”不是一个概念,强调的是可靠性可控性。我们打个比方,公司八点半上班,有两位员工,都挺勤快,甲每天大概都是8点20到,乙在多数情况下,都是8点10分之前到。但是,甲从来没有迟到过,最迟也是8点29,而且,我们分析甲的起床时间,通勤方式……也确实相信他以后也不大可能会迟到;而乙,就不是了,他在多数情况下都能早早到公司,但他偶尔会迟到,甚至,下大雪了时候,还可能会临时请假甚至旷工。

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

实时系统主要有linux-RT、Vxworks等类型。

那,为什么发动机ECU测试需要实时系统呢?答案在于ECU处理的信号很特殊,氧传感器、爆震传感器、曲轴凸轮轴位置传感器;点火控制……这些都是以一定频率变化的,假如,我们想通过板卡的pin,输出给ECU的某一输入pin下图所示的信号(横轴代表时间,数轴代表电压),当然,这是理想信号。

HIL第2讲,零基础教程,HIL来源和实时系统

如果我们采用实时系统,那,我们虽然不能保证信号的实际时序曲线和图中完全一样,但能保证是在它可控的附近,从而满足ECU对该信号的时间延迟的定义及要求,确保ECU不报故障(这些故障是ECU实现定义好的、ECU软件已经实现了);如果我们采用非实时的单核系统,则有可能当我们在这个系统上同时进行别的操作时,比如用matlab进行仿真分析,导致进程拥塞,上图某个点的信号出现较大时间后延,超出了ECU的时延,从而导致ECU报了故障。

而且,请读者注意一点,上图这个周期为6.28秒,一周期变化20次的信号,靠人工操作是不可能实现的,必须通过软件,而且是运行在实时系统上的软件。这个所谓的软件,就是“整车模型”的一部分。下一讲师子一号将会详细说说什么是整车模型。

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

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

我们需要实时系统,是因为,如果信号延迟了,被测对象要报错,基本无法再正常工作。而这样的“报错”,对被测对象而言,是一个正常且必须的功能。所以,看看被测对象是否有这样的“时延检测”功能,是我们判断是否需要实时系统的最重要的依据。

经综合考虑,本系列文章主要讲单主机普通PC、WIN7系统的HIL,和双主机的HIL。普通win7系统的实时化技术,可以成本极低的实时系统,但在汽车行业比较小众,不做介绍,读者可自行研究。

可是,为什么“两台主机”这种架构的HIL系统,仍然是HIL供应商力推的呢?哪怕你测个BCM,也给你推销这种架构。因为,看起来很庞大,可以扩大消费,提高GDP…

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号