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

放大字体缩小字体 发布日期:2019-04-13 10:01:55 来源:新能源汽车网编辑:全球新能源汽车网浏览次数:56

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

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

AG百家乐官网HIL系统很厉害,但是它是怎么诞生的呢?

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

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

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

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

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

AG百家乐官网这两个产品相互合作,完美解决了当时乃至今天仍然存在的两大难题: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,就是最大时延,也是判断在该场景下是不是实时系统的标准,实时系统是相对某一标准而言的,一个系统在汽车行业是实时的,到了航天领域可能就不是实时的了。很明显,甲员工就是实时系统,而乙不是。

AG百家乐官网实时系统主要有linux-RT、Vxworks等类型。

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

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

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

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

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

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

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

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

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

.adva-cont{margin: 20px 0;background: #f2f2f2;width: 604px;height: 200px;padding: 20px;position: relative;}.adva-cont .img-cont{float: left;position: relative;width: 160px;height: 160px;padding: 20px;background: #FFF;}.adva-cont .img-cont img{position: absolute; top: 50%; left: 50%; max-width: 90%; max-height: 90%; transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%);}.adva-cont h3 a{font-family: SimHe, '黑体';text-decoration: none;font-size: 20px;color: #000;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}.adva-cont .adva-text{position: absolute;top: 50%;transform: translateY(-50%);padding: 20px 20px 20px 230px;}.adva-text p{margin-top: 30px;}.adva-text p a{height: 79px;text-decoration: none;font-size: 14px;color: #666;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 4;overflow: hidden;}#keywordsHidden{display:none;}HIL硬件在环测试新能源汽车电控测试
关键词: 单片机 实时系统 ecu 软件
猜你喜欢

0条 [查看全部]  相关评论

推荐图文
铅酸蓄电池智能充电器原理与维修方法 新型电动汽车锂电池管理系统的设计方案
如何看汽车电池热管理系统 电动汽车电池充电的主要解决方案
推荐新能源汽车
点击排行
网站AG百家乐官网 | 关于我们 | 联系方式 | 使用协议 | 版权隐私 | 排名推广 | 广告服务 | 积分换礼 | 网站留言
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?886dae26af58a0036c13a216abfeb64c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();