第二講,本節(jié)簡要介紹HIL的歷史,并介紹什么是實時系統(tǒng),閱讀本節(jié)之后,讀者應(yīng)學會自行分析自己的測試對象,看看需要不需要實時系統(tǒng),以及,需要什么樣的實時系統(tǒng),還可以對自己的測試對象的實時性,做一些簡單的評估。
上一節(jié)我們總體上聊了本系列文章的目的,從本講開始,我們進入正題。本節(jié),我們聊聊HIL系統(tǒng)的起源,以及什么是實時系統(tǒng)。
HIL系統(tǒng)很厲害,但是它是怎么誕生的呢?
我們假設(shè)該偏文章的讀者都具有單片機的概念(汽車上的控制器就是一個加強型的單片機),那么回想一下,大學時候,我們是怎么在硬件層次上測試單片機呢?
一般都是,從淘寶上買個開發(fā)板或者自己做一個開發(fā)板,把代碼燒進去之后,把單片機外設(shè)的IO輸入用導線印出來,把導線的另一端跟電源或者地點觸一下又一下,跟電焊似的,創(chuàng)造數(shù)字信號輸入,看單片機的反應(yīng)如何。對于單片機的輸出,我們一般是拿個示波器測試PWM波,或者拿個萬用表測數(shù)字量輸出。總之,單片機需要什么,我們就給它創(chuàng)造什么,單片機輸出什么,我們就想辦法檢測什么。
上個世紀80年代之前,全世界范圍內(nèi)還沒有新能源車,燃油車上的控制器也很少,沒有ABS、ESP、SPB、氣囊、ADAS、雨量傳感器……,汽車控制器的開發(fā)還是很簡單的,所以,還是勉強可以按大學單片機的做法來開發(fā)的。但也正是上個世紀80年代起,汽車技術(shù)蓬勃發(fā)展,大量的新技術(shù)和電子產(chǎn)品開始引入到汽車中,整車的復雜度大大提升,這在提高了汽車的安全性、舒適性的同時,也大大增加了汽車開發(fā)的工作量,開發(fā)周期變得更長了。
在這個時候,在汽車起源的地方,銳意進取的日耳曼人再一次走在了世界的前列,Herbert Hanselmann博士在University of Paderborn成立了dSPACE公司,并同時發(fā)布了兩款劃時代的產(chǎn)品:快速原型、HIL。附圖一張創(chuàng)始人的畫像:
這兩個產(chǎn)品相互合作,完美解決了當時乃至今天仍然存在的兩大難題:1、我做好了軟件,但是硬件還需時日,樣車快下線了,怎么能找一個控制器,把軟件燒進去,裝到車上代替我的硬件,先頂一下,別耽誤車輛進度;2、我的軟件、硬件都做好了,軟件也燒進去了,在裝車之前,我想先在測試環(huán)境中對它進行細致地檢查和測試(畢竟在車上很難創(chuàng)造各種邏輯條件,覆蓋率較低),最好能讓我覺得像是真的在操作一輛車。
dSPACE公司是HIL產(chǎn)品乃至HIL概念的發(fā)明者,時至今日仍是這個領(lǐng)域全球最優(yōu)秀的選手,追隨者、模仿者有一大批,比如ETAS、NI,以及其他一眾叫不上來名字的小公司。師子一號的此系列文章,只聊HIL,快速原型不談。
當年,dSPACE的HIL,主要是針對發(fā)動機控制器(Engine Control Unit)ECU的,所以,當下全世界大多數(shù)HIL設(shè)備,都帶有發(fā)動機的靈魂,冥想起來,似乎有一股淡淡的汽油味。整車模型、故障注入、實時系統(tǒng)……這些概念全部都是因為當年測試發(fā)動機而搞出來的,針對發(fā)動機控制器ECU盾測試,這些東西基本上都是是必須的。
先說第一個,什么是HIL領(lǐng)域的實時系統(tǒng)?師子一號對它的定義為:操作系統(tǒng)控制板卡輸出或者輸入信號,最大時延是可控的,這就是實時系統(tǒng)。它和“運行速度快”不是一個概念,強調(diào)的是可靠性可控性。我們打個比方,公司八點半上班,有兩位員工,都挺勤快,甲每天大概都是8點20到,乙在多數(shù)情況下,都是8點10分之前到。但是,甲從來沒有遲到過,最遲也是8點29,而且,我們分析甲的起床時間,通勤方式……也確實相信他以后也不大可能會遲到;而乙,就不是了,他在多數(shù)情況下都能早早到公司,但他偶爾會遲到,甚至,下大雪了時候,還可能會臨時請假甚至曠工。
在這個例子中,8點30,就是最大時延,也是判斷在該場景下是不是實時系統(tǒng)的標準,實時系統(tǒng)是相對某一標準而言的,一個系統(tǒng)在汽車行業(yè)是實時的,到了航天領(lǐng)域可能就不是實時的了。很明顯,甲員工就是實時系統(tǒng),而乙不是。
實時系統(tǒng)主要有linux-RT、Vxworks等類型。
那,為什么發(fā)動機ECU測試需要實時系統(tǒng)呢?答案在于ECU處理的信號很特殊,氧傳感器、爆震傳感器、曲軸凸輪軸位置傳感器;點火控制……這些都是以一定頻率變化的,假如,我們想通過板卡的pin,輸出給ECU的某一輸入pin下圖所示的信號(橫軸代表時間,數(shù)軸代表電壓),當然,這是理想信號。
如果我們采用實時系統(tǒng),那,我們雖然不能保證信號的實際時序曲線和圖中完全一樣,但能保證是在它可控的附近,從而滿足ECU對該信號的時間延遲的定義及要求,確保ECU不報故障(這些故障是ECU實現(xiàn)定義好的、ECU軟件已經(jīng)實現(xiàn)了);如果我們采用非實時的單核系統(tǒng),則有可能當我們在這個系統(tǒng)上同時進行別的操作時,比如用matlab進行仿真分析,導致進程擁塞,上圖某個點的信號出現(xiàn)較大時間后延,超出了ECU的時延,從而導致ECU報了故障。
而且,請讀者注意一點,上圖這個周期為6.28秒,一周期變化20次的信號,靠人工操作是不可能實現(xiàn)的,必須通過軟件,而且是運行在實時系統(tǒng)上的軟件。這個所謂的軟件,就是“整車模型”的一部分。下一講師子一號將會詳細說說什么是整車模型。
上面這個例子,清晰展示了所謂實時系統(tǒng)的作用。當年dSPACE公司大力推行實時系統(tǒng),是因為沒它不行,而且多核處理器還沒有出生。所以,HIL系統(tǒng)就成了那副樣子,兩個主機,一個主機裝上實時系統(tǒng),成了一個大號的單片機,然后用它作為標準,去給另一個增強型的迷你單片機提供輸入輸出信號;另一個主機是一個普通PC,做一些文檔編輯、測試用例設(shè)計操作的工作,兩個主機之間一般通過網(wǎng)線通訊。
可是,時代是會變化的,CPU、操作系統(tǒng)的技術(shù)也是不斷升級的,現(xiàn)在的多核CPU,已經(jīng)完全可以通過軟件對普通windows系統(tǒng)進行實時化,不再需要兩臺獨立主機了。而且,并不是所有的控制器都像ECU那樣,有這種高時間特性的信號,需要實時系統(tǒng)來測試。比如VCU、HCU、BMS、BCM、FCU、網(wǎng)關(guān)……普通的單機win7系統(tǒng)完全綽綽有余。
我們需要實時系統(tǒng),是因為,如果信號延遲了,被測對象要報錯,基本無法再正常工作。而這樣的“報錯”,對被測對象而言,是一個正常且必須的功能。所以,看看被測對象是否有這樣的“時延檢測”功能,是我們判斷是否需要實時系統(tǒng)的最重要的依據(jù)。
經(jīng)綜合考慮,本系列文章主要講單主機普通PC、WIN7系統(tǒng)的HIL,和雙主機的HIL。普通win7系統(tǒng)的實時化技術(shù),可以成本極低的實時系統(tǒng),但在汽車行業(yè)比較小眾,不做介紹,讀者可自行研究。
可是,為什么“兩臺主機”這種架構(gòu)的HIL系統(tǒng),仍然是HIL供應(yīng)商力推的呢?哪怕你測個BCM,也給你推銷這種架構(gòu)。因為,看起來很龐大,可以擴大消費,提高GDP…
審核編輯 黃昊宇
-
新能源汽車
+關(guān)注
關(guān)注
141文章
10519瀏覽量
99414 -
HIL
+關(guān)注
關(guān)注
2文章
53瀏覽量
17667 -
電控
+關(guān)注
關(guān)注
12文章
85瀏覽量
18113 -
實時系統(tǒng)
+關(guān)注
關(guān)注
0文章
38瀏覽量
14467
發(fā)布評論請先 登錄
相關(guān)推薦
評論