对于安全系统,或者控制系统来说,sil、hil、mil测试是三种基本测试。
1、sil
sil全称software in loop,也就是软件在环测试。这种测试本质上可以看成是一种软件仿真测试。比如说,一个qt软件,本来是要在嵌入式系统运行的,那么我可以在ubuntu上先用x86平台完成ui开发,然后port到arm平台,这都是可以的。再比如,一个英文单词查询的电子词典,界面部分完全可以在pc上面开发,不需要完全在开发板上实际调试,这样又快又好,这些都属于sil的范畴。测试可以从嵌入式硬件,转移到pc进行,这就是sil的意义。
2、hil
hil称之为hardware in loop,也就是硬件在换。有一些电路和软件,依赖于外部的信 输出,才能测试对应的结果。比如说汽车上面前置的adas摄像头,我拿到了研发团队的开发板和软件后,怎么才能测试它的基本功能呢时候,hil就派上用场的。一种常用的做法,就是去定制专门的测试硬件,比如用arm+fpga去将视频文件生成开发板需要的mipi信 ,这样可以通过已有的视频库文件达到真实测试的目的。本身方便,也可以模拟出各种情况。
3、mil
mil测试,称之为机械在环测试。主要是一部分测试,除了软硬件之外,还涉及到机械的部分,这部分有机械的输入和输出两部分。以机械输出为例,我们测试一个汽车发动机软件,当我们已经验证好sil和mil都没有什么问题之后,这个时候就需要看看软硬件正常运行的时候,进气控制、排气控制、点火控制、喷油控制,这些是不是真的没问题。这些部分都需要和真实的机械硬件搭配的。当然,有些同学说,这些用实际的发动机测试不就好了,干嘛需要mil测试主要是,mil测试本身并不是真正的汽油燃烧测试,本身只是验证系统的机械属性,看看软件、硬件、机械三个部分配合得如何,mil不需要一个完整的发动机,只需要将发动机控制输出的几个部分拆分开来,配合测试进行就可以了。喷油燃烧的部分,甚至都可以用水来代替,这都是可以的。这个时候,就可以用电动机模拟转速,用上位机算法模型模拟汽油燃烧过程,传感器来检测机械的做功流程就行,等到这一步没有问题之后,再上真实的环境测试,就比较稳妥了。
以上说的三种测试,对于tier1厂商的同学来说,都是基本测试。有相关经验的同学,可以多多了解,多多学习。sil、mil、hil本身代替不了系统测试和产品测试,但是在产品开发的早期快速发现问题,降低开发成本,提高开发收益,本身还是非常不错的选择。
ps:
a,有的地方把mil称之为model in loop测试,这也是可以的,但实际情况中,软件、硬件、机械联调的mil比较多一点
b,实际开发中,产品会模拟出一个最终形态的真实场景,比如如果是驾驶员监控软件,就会模拟出一个座舱来进行测试
c,实际场景的测试是比较重要的,但实际测试成本高很多,需要将实际场景的数据保留下来,留作sil、hil、mil使用
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!