|
本文旨在從業(yè)務(wù)功能上介紹汽車電子系統(tǒng)中網(wǎng)絡(luò)管理模塊的功能,已達(dá)到對(duì)于網(wǎng)絡(luò)管理模塊的一個(gè)初步管理。 1 網(wǎng)絡(luò)管理的含義汽車系統(tǒng)中存在著多種 ECU 控制單元,這些 ECU 控制單元并不是孤立的,而是協(xié)同工作。既然各個(gè) ECU 控制單元需要協(xié)同工作,那么它們之間就必須能夠相互通信。目前各 ECU 之間通信的方式主要有 CAN、 Flexray等車載網(wǎng)絡(luò),還包括目前新興的車載以太網(wǎng)。汽車電子系統(tǒng)通過(guò)車載網(wǎng)絡(luò)對(duì) 所有的 ECU 進(jìn)行配置管理和協(xié)調(diào)工作的過(guò)程稱之為網(wǎng)絡(luò)管理。 2 網(wǎng)絡(luò)管理的功能網(wǎng)絡(luò)管理除了實(shí)現(xiàn)普通的業(yè)務(wù)數(shù)據(jù)傳輸之外,網(wǎng)絡(luò)管理還承擔(dān)著一項(xiàng)重要工作。不論是傳統(tǒng)的機(jī)動(dòng)車,還是目前的混動(dòng)車以及新興的電動(dòng)車,其蓄電池的使用的耐用性都是汽車性能的一個(gè)重要瓶頸。網(wǎng)絡(luò)管理可以通過(guò)對(duì)于網(wǎng)絡(luò)上的各個(gè) ECU 的控制,發(fā)出一些命令規(guī)則,實(shí)現(xiàn)各個(gè) ECU 的協(xié)同睡眠和喚醒。 通常 ECU 都存在幾種工作模式,如喚醒(working)模式、睡眠(sleep)模式、啟動(dòng)(boot)模式。其中 working 模式為正常工作模式,耗能高;sleep模式為待機(jī)狀態(tài),大部分功能都停止,為低功耗模式;boot 模式為 ECU 刷機(jī)模式,通常用于對(duì) ECU 進(jìn)行升級(jí)。 3 網(wǎng)絡(luò)管理的過(guò)程汽車電子系統(tǒng)的網(wǎng)絡(luò)管理其實(shí)也就是一個(gè)狀態(tài)機(jī)的管理。網(wǎng)絡(luò)管理的狀態(tài)總體上可以分為 BusSleep、PreSleep、Network 三個(gè)狀態(tài);其中 Network 狀態(tài)又分為三個(gè)子狀態(tài),分別是 RepeatMsg、NormalOperate、ReadSleep。 網(wǎng)絡(luò)管理最終要實(shí)現(xiàn)車上的 ECU 能夠協(xié)同睡眠和喚醒,也就是說(shuō)網(wǎng)絡(luò)管理最重要的一點(diǎn)是保證車上的 ECU 能夠協(xié)同喚醒和休眠,那么假設(shè)車上的 ECU 都處于睡眠模式,網(wǎng)絡(luò)上都沒(méi)有報(bào)文,則沒(méi)辦法喚醒。所以,一般不會(huì)讓所有的 ECU 都處于睡眠模式,此時(shí)會(huì)有極少數(shù)的 ECU 處于工作狀態(tài),如 BCM,也就是說(shuō)有一些 ECU 是通過(guò) KL15 直接喚醒的,而有一些是通過(guò) CAN 報(bào)文喚醒的。由此可以看出 ECU 的喚醒源可以分為兩種: 主動(dòng)喚醒( Active Wake up):ECU 作為主喚醒節(jié)點(diǎn),當(dāng)檢測(cè)到主動(dòng)喚醒源輸入信號(hào)時(shí)(如KL15)主動(dòng)喚醒自己,并通過(guò)發(fā)送NMFRAME 嘗試喚醒其他ECU。 被動(dòng)喚醒( Passive Wake up):ECU 作為從喚醒節(jié)點(diǎn),自己不能主動(dòng)喚醒自己,只能通過(guò)接收到其他 ECU 發(fā)來(lái)的NM FRAME來(lái)喚醒自己。
3.1 狀態(tài)釋義BusSpleep狀態(tài):這就是休眠狀態(tài),此狀態(tài)下不發(fā)送網(wǎng)絡(luò)管理報(bào)文也不收發(fā)應(yīng)用報(bào)文,一般該狀態(tài)處于低功耗的狀態(tài),也就是上文提到的協(xié)同睡眠狀態(tài)。當(dāng)然上電初始化時(shí),也會(huì)默認(rèn)進(jìn)入該狀態(tài)。 PreSleep狀態(tài):此狀態(tài)是進(jìn)入休眠狀態(tài)前的準(zhǔn)備狀態(tài),此狀態(tài)一般不發(fā)送網(wǎng)絡(luò)管理報(bào)文幀了,也不發(fā)送應(yīng)用報(bào)文了,只是等待其他ECU一起睡眠,其實(shí)就是實(shí)現(xiàn)'’協(xié)同'’兩個(gè)字,也就是讓等一段時(shí)間讓車上所有ECU實(shí)現(xiàn)一起睡眠。之所以需要 ECU 協(xié)同睡眠,主要是因?yàn)楦鱾€(gè) ECU 處于協(xié)同工作狀態(tài),比如VCU(整車控制器)和INV(電機(jī)控制器),有可能VCU不發(fā)報(bào)文了,會(huì)導(dǎo)致INV報(bào)故障,如此就會(huì)出現(xiàn)誤報(bào)警狀態(tài)。 Network狀態(tài):此狀態(tài)下 ECU 可以進(jìn)行正常通信,既可以收發(fā)網(wǎng)絡(luò)管理報(bào)文幀也可以收發(fā)應(yīng)用報(bào)文(包括診斷報(bào)文),意思就是喚醒狀態(tài)。
下面解釋一下 Network 狀態(tài)的三個(gè)子狀態(tài)的含義: Repeat meassage:表示重復(fù)發(fā)網(wǎng)絡(luò)管理報(bào)文的狀態(tài)。由于進(jìn)入網(wǎng)絡(luò)狀態(tài)時(shí),首先需要快速發(fā)送一些網(wǎng)絡(luò)管理報(bào)文,以盡快告知車上其他 ECU,我處于正常狀態(tài)了,可以進(jìn)行通信了。 Normal Operation:在進(jìn)入RepeatMsg一段一時(shí)間后,如果需要通信,就會(huì)跳到正常工作狀態(tài),正常工作狀態(tài)會(huì)按照正常的周期發(fā)送網(wǎng)絡(luò)管理報(bào)文,以及所有應(yīng)用報(bào)文正常進(jìn)行通信,可以說(shuō)這個(gè)狀態(tài)就是真正的喚醒狀態(tài)。 ReadySleep:從喚醒狀態(tài)進(jìn)入休眠時(shí),需要進(jìn)行一些準(zhǔn)備工作,比如有一些數(shù)據(jù)要存儲(chǔ)、比如電機(jī)控制器檢測(cè)到電機(jī)還沒(méi)停下來(lái)等等情況,因此此狀態(tài)就是用來(lái)做一些休眠前的準(zhǔn)備工作,任何從喚醒到休眠的過(guò)程,都需要經(jīng)過(guò)此狀態(tài),也就是說(shuō)睡眠前有些準(zhǔn)備工作是必須要完成的。那么此狀態(tài)下,其實(shí)還是能夠進(jìn)行通信的,只有進(jìn)入PreSleep狀態(tài),才會(huì)把相應(yīng)的應(yīng)用報(bào)文收發(fā)關(guān)閉,以及發(fā)送NM報(bào)文關(guān)閉。還有一點(diǎn)要聲明的是,一般網(wǎng)絡(luò)管理報(bào)文幀的接收不會(huì)關(guān)閉。(因?yàn)檫M(jìn)入休眠后需要處于可喚醒狀態(tài)。)
4 實(shí)例4.1 以NM報(bào)文喚醒為例,大概說(shuō)一下喚醒的過(guò)程:在睡眠狀態(tài),車上網(wǎng)絡(luò)狀態(tài)是沒(méi)有報(bào)文的,一旦車上BCM檢測(cè)到要使用網(wǎng)絡(luò)時(shí),就會(huì)第一時(shí)間發(fā)出網(wǎng)絡(luò)管理報(bào)文出來(lái),這個(gè)時(shí)候其他ECU就會(huì)收到該網(wǎng)絡(luò)管理報(bào)文,從而喚醒其他ECU。 ECU收發(fā)器收到NM報(bào)文后,告訴芯片要喚醒了,這個(gè)時(shí)候就會(huì)給控制器供電,然后程序就會(huì)初始化,進(jìn)入BusSleep狀態(tài)(ECU上電默認(rèn)會(huì)進(jìn)入此狀態(tài))。 接著進(jìn)入RepeatMsg模式,這個(gè)時(shí)候會(huì)迅速發(fā)出第一幀NM報(bào)文,會(huì)快速發(fā)出5幀NM報(bào)文(如周期10ms),讓其他節(jié)點(diǎn)知道此 ECU 醒來(lái)了,然后會(huì)切換到正常周期的NM報(bào)文,如50ms,當(dāng)然這個(gè)時(shí)候,系統(tǒng)也在初始化,應(yīng)用報(bào)文也會(huì)到一定周期能夠正常收發(fā)。 處于RepeatMsg狀態(tài)一定時(shí)間后,會(huì)切換到NormalOpr模式,這個(gè)時(shí)候就會(huì)正常通信了。這個(gè)模式下NM報(bào)文是以一定周期發(fā)送的如500ms,告訴所有節(jié)點(diǎn)我在正常通信。其實(shí)NM報(bào)文里面是有一些信息的,比如喚醒原因,用戶數(shù)據(jù)等等,這些都可以去定義。
4.2 下面講一下NM休眠的過(guò)程:處于NormalOpr狀態(tài)下,如果ECU不需要網(wǎng)絡(luò)了,比如KL15斷開(kāi),ECU這個(gè)時(shí)候就會(huì)選擇釋放網(wǎng)絡(luò)。 釋放網(wǎng)絡(luò)就是從Normal狀態(tài)切換到ReadySleep狀態(tài),此時(shí)會(huì)進(jìn)行一些故障存儲(chǔ)、下電前的裝備工作,完成后。 等待一定時(shí)間就會(huì)進(jìn)入到PreSleep狀態(tài),這個(gè)狀態(tài)將會(huì)把應(yīng)用報(bào)文和TX網(wǎng)絡(luò)管理報(bào)文也關(guān)閉。 等待一定時(shí)間就會(huì)進(jìn)入BusSleep狀態(tài),進(jìn)入BusSleep后,會(huì)讓控制器進(jìn)入休眠。
|