汽車CAN節(jié)點(diǎn)的低功耗設(shè)計(jì)及實(shí)現(xiàn)
作者 / 馬建輝1,2,3 張?jiān)?,2,3 胡代榮1,2,3 孫常青1,2,3 1、齊魯工業(yè)大學(xué)(山東省科學(xué)院)(山東 濟(jì)南 250353) 2、山東省科學(xué)院自動(dòng)化研究所(山東 濟(jì)南 250014) 3、山東省汽車電子技術(shù)重點(diǎn)實(shí)驗(yàn)室(山東 濟(jì)南 250014)
本文引用地址:http://cafeforensic.com/article/201802/376165.htm*基金項(xiàng)目:山東省重點(diǎn)研發(fā)計(jì)劃(重大關(guān)鍵技術(shù))(編號(hào):2016ZDJS03A04);山東省科學(xué)院創(chuàng)新工程專項(xiàng)《純電動(dòng)汽車關(guān)鍵技術(shù)研究及產(chǎn)業(yè)化應(yīng)用》;山東省重點(diǎn)研發(fā)計(jì)劃(編號(hào):2016GGC01023)
馬建輝(1983-),男,助理研究員,研究方向:嵌入式及汽車電子。
摘要:滿足OSEK NM規(guī)范的CAN節(jié)點(diǎn)進(jìn)入休眠后,一方面可以被本地喚醒信號(hào)喚醒,另一方面可以被總線上的有效顯性位喚醒,當(dāng)本地喚醒信號(hào)的濾波電路濾除不掉雜波時(shí),本地喚醒信號(hào)線上的雜波會(huì)喚醒本地CAN節(jié)點(diǎn)。當(dāng)CAN物理層收發(fā)器電路濾除不掉總線上的毛刺時(shí),總線毛刺也會(huì)喚醒CAN節(jié)點(diǎn)。為了防止CAN節(jié)點(diǎn)被錯(cuò)誤喚醒,通過設(shè)計(jì)臨時(shí)喚醒模式和喚醒確認(rèn)模式,判斷是否存在有效的本地喚醒條件或CAN報(bào)文,避免了CAN節(jié)點(diǎn)被誤喚醒進(jìn)而喚醒,整個(gè)網(wǎng)絡(luò),從而大大增加整車電流消耗的問題。
0 引言
隨著汽車功能和電子電氣系統(tǒng)越來越復(fù)雜,常電供電節(jié)點(diǎn)也越來越多?,F(xiàn)代汽車CAN網(wǎng)絡(luò)大多遵循OSEK直接網(wǎng)絡(luò)管理協(xié)議實(shí)現(xiàn)常電供電CAN節(jié)點(diǎn)的休眠和喚醒功能[1]。根據(jù)OSEK直接網(wǎng)絡(luò)管理協(xié)議,所有常電供電CAN節(jié)點(diǎn)都滿足休眠條件后,整個(gè)CAN網(wǎng)絡(luò)協(xié)同進(jìn)入睡眠狀態(tài),當(dāng)某個(gè)CAN節(jié)點(diǎn)被本地喚醒條件喚醒后,它將向CAN網(wǎng)絡(luò)上發(fā)送ALIVE報(bào)文喚醒整個(gè)CAN網(wǎng)絡(luò)[2],其它CAN節(jié)點(diǎn)檢測到CAN網(wǎng)絡(luò)上出現(xiàn)有效的顯性位時(shí),CAN物理層收發(fā)器向CAN控制器的接收腳輸出一個(gè)下拉脈沖,喚醒MCU和CAN節(jié)點(diǎn),然后,被喚醒的CAN節(jié)點(diǎn)向總線上發(fā)送ALIVE報(bào)文,這些節(jié)點(diǎn)通過ALIVE報(bào)文完成網(wǎng)絡(luò)建環(huán)。一般情況下,整車靜態(tài)電流一般為喚醒狀態(tài)下的幾十分之一,甚至幾百分之一。
在一個(gè)實(shí)現(xiàn)了OSEK直接網(wǎng)絡(luò)管理規(guī)范的CAN網(wǎng)絡(luò)中,當(dāng)CAN網(wǎng)絡(luò)進(jìn)入休眠狀態(tài)后,CAN節(jié)點(diǎn)一方面可以被本地喚醒[3](一般為開關(guān)信號(hào)),一方面可以被總線喚醒??偩€物理層收發(fā)器及其外圍電路具備濾波功能,當(dāng)總線上出現(xiàn)比較短的毛刺時(shí),總線物理層收發(fā)器會(huì)過濾掉該毛刺,但是,由于CAN物理層規(guī)范對(duì)CAN信號(hào)的上升沿和下降沿有一定要求,它能過濾掉的雜波一般都只是微秒級(jí),當(dāng)總線上出現(xiàn)時(shí)間長度比較寬的毛刺時(shí),物理層收發(fā)器便會(huì)在MCU的CAN控制器的接收引腳上產(chǎn)生一個(gè)低有效電平,這樣,該CAN節(jié)點(diǎn)便會(huì)被喚醒,根據(jù)直接網(wǎng)絡(luò)管理規(guī)范,除了自身被喚醒之外,它還會(huì)通過ALIVE報(bào)文喚醒其它CAN節(jié)點(diǎn),使得整個(gè)CAN網(wǎng)絡(luò)退出休眠狀態(tài),使得整車的電流消耗比休眠狀態(tài)下的整車靜態(tài)電流大幾十倍,甚至上百倍,不僅大大增加了整車的電流消耗,還可能會(huì)造成蓄電池虧電無法啟動(dòng)發(fā)動(dòng)機(jī)的情形[4]。本地喚醒條件也有類似的誤喚醒問題。
為了保證CAN節(jié)點(diǎn)不會(huì)被本地喚醒信號(hào)或者CAN信號(hào)誤喚醒,本文設(shè)計(jì)了一種方法,只有在確實(shí)滿足本地喚醒條件的情況下,或者總線上確實(shí)存在有效報(bào)文的條件下,節(jié)點(diǎn)才會(huì)被喚醒[5]。
1 方案設(shè)計(jì)
為CAN節(jié)點(diǎn)設(shè)計(jì)四種工作模式:喚醒模式、休眠模式、臨時(shí)喚醒模式[6]和喚醒確認(rèn)模式。其中,喚醒模式為正常工作模式,CAN節(jié)點(diǎn)電流消耗最大。休眠模式、臨時(shí)喚醒模式和喚醒確認(rèn)模式為低功耗模式,其中,休眠模式下的電流消耗最小。CAN節(jié)點(diǎn)的靜態(tài)電流是指CAN節(jié)點(diǎn)在低功耗模式下的電流消耗[7],即在休眠模式、臨時(shí)喚醒模式和喚醒確認(rèn)模式下的平均電流消耗。四種工作模式跳轉(zhuǎn)如圖1所示。
CAN節(jié)點(diǎn)上電后自動(dòng)進(jìn)入喚醒模式,并在休眠條件不滿足的情況下保持喚醒模式。CAN節(jié)點(diǎn)滿足本地休眠條件且整個(gè)CAN網(wǎng)絡(luò)協(xié)同休眠后,CAN節(jié)點(diǎn)禁能CAN收發(fā)器和控制器[8],設(shè)置喚醒源,然后進(jìn)入休眠模式。
為了保證本地喚醒信號(hào)線上的雜波不會(huì)誤喚醒CAN節(jié)點(diǎn),進(jìn)入休眠模式時(shí)只設(shè)置兩個(gè)喚醒源——CAN信號(hào)和內(nèi)部定時(shí)器。其中,CAN喚醒源能夠保證當(dāng)CAN總線上出現(xiàn)一個(gè)有效的顯性位時(shí),CAN節(jié)點(diǎn)會(huì)馬上喚醒,內(nèi)部定時(shí)器喚醒源定時(shí)值記為Tsleep,能夠保證CAN節(jié)點(diǎn)被周期喚醒。
臨時(shí)喚醒模式保持時(shí)間為Ttempwake,在臨時(shí)喚醒模式中輪詢本地喚醒條件,不僅可以避免本地喚醒信號(hào)線的雜波喚醒MCU,減少了MCU的喚醒次數(shù),降低了靜態(tài)電流,還降低了對(duì)MCU喚醒中斷引腳的需求。
Tsleep和Ttempwake時(shí)間根據(jù)CAN節(jié)點(diǎn)靜態(tài)電流約束條件和本地喚醒時(shí)間定義,為了保證功能的實(shí)時(shí)性,出現(xiàn)本地喚醒后,CAN節(jié)點(diǎn)要在一定的時(shí)間內(nèi)向CAN網(wǎng)絡(luò)上發(fā)送ALIVE報(bào)文喚醒其它節(jié)點(diǎn),Tsleep越大,本地喚醒時(shí)間越長,Tsleep和Ttempwake的比值越大,CAN節(jié)點(diǎn)靜態(tài)電流越小。
2 喚醒算法設(shè)計(jì)
為了保證CAN節(jié)點(diǎn)不被總線毛刺和本地喚醒信號(hào)毛刺誤喚醒,設(shè)計(jì)了臨時(shí)喚醒模式和喚醒確認(rèn)模式。在臨時(shí)喚醒模式下,CAN節(jié)點(diǎn)輪詢CAN控制器標(biāo)志位和本地喚醒信號(hào)電平,在喚醒確認(rèn)模式下,CAN節(jié)點(diǎn)查詢CAN報(bào)文接收和本地喚醒條件是否有效。喚醒算法流程如圖2所示。
當(dāng)節(jié)點(diǎn)進(jìn)入休眠后,CAN信號(hào)或者內(nèi)部定時(shí)器臨時(shí)喚醒節(jié)點(diǎn),進(jìn)入臨時(shí)喚醒模式,臨時(shí)喚醒模式保持時(shí)間為Ttempwake,在臨時(shí)喚醒模式期間輪詢CAN控制器的喚醒狀態(tài)位和本地喚醒信號(hào)的電平,如果CAN控制器喚醒狀態(tài)位和本地喚醒信號(hào)電平一直無效,Ttempwake后CAN節(jié)點(diǎn)再次進(jìn)入休眠模式。如果CAN控制器喚醒狀態(tài)位有效或者本地喚醒信號(hào)電平有效,進(jìn)入喚醒確認(rèn)模式。
在喚醒確認(rèn)模式中,如果CAN控制器喚醒標(biāo)志位有效,使能CAN物理層收發(fā)器和CAN控制器,根據(jù)該CAN網(wǎng)絡(luò)的波特率,設(shè)定一定的濾波時(shí)間(記為Tfilter),檢查該段時(shí)間以內(nèi)是否接收到CAN報(bào)文,如果接收到,說明這是有效的CAN報(bào)文喚醒,CAN節(jié)點(diǎn)進(jìn)入喚醒模式,如果沒有收到,說明CAN節(jié)點(diǎn)是被總線上的毛刺喚醒的,這時(shí),節(jié)點(diǎn)返回休眠模式。在喚醒確認(rèn)模式中,如果本地喚醒信號(hào)有效,以2 ms為周期,連續(xù)檢測三次本地喚醒信號(hào)電平,如果均有效,進(jìn)入喚醒模式。否則,節(jié)點(diǎn)返回休眠模式。
Tfilter根據(jù)總線網(wǎng)絡(luò)的波特率確定,根據(jù)CAN協(xié)議,CAN報(bào)文數(shù)據(jù)場的最大長度為8字節(jié),一條數(shù)據(jù)場長度為8字節(jié)的CAN報(bào)文包含108個(gè)總線位,根據(jù)波特率可以計(jì)算出報(bào)文數(shù)據(jù)場長度為8字節(jié)的CAN報(bào)文的時(shí)長,Tfilter設(shè)置為最大CAN報(bào)文時(shí)長的2倍左右。汽車CAN網(wǎng)絡(luò)的波特率有500 kbps、250 kbps、125 kbps三種,具體而言:
波特率為500 kbps時(shí),CAN報(bào)文最大時(shí)長為0.216 ms,Tfilter設(shè)置為0.5 ms;
波特率為250 kbps時(shí),CAN報(bào)文最大時(shí)長為0.432 ms,Tfilter設(shè)置為1 ms;
波特率為125 kbps時(shí),CAN報(bào)文最大時(shí)長為0.864 ms,Tfilter設(shè)置為2 ms。
3 結(jié)論
本文設(shè)計(jì)了一種汽車CAN節(jié)點(diǎn)的低功耗方案,通過設(shè)置喚醒確認(rèn)模式,區(qū)分有效的CAN報(bào)文和總線毛刺,區(qū)分有效的本地喚醒條件和信號(hào)毛刺,避免了誤喚醒。根據(jù)CAN網(wǎng)絡(luò)的波特率確定CAN報(bào)文濾波時(shí)間,避免了無效等待。本方法應(yīng)用在為某車型設(shè)計(jì)的PEPS中,具有較強(qiáng)的實(shí)用性。
參考文獻(xiàn):
[1]蔡營,王永峰,岳意娥,等.基于OSEK標(biāo)準(zhǔn)的整車CAN網(wǎng)絡(luò)管理設(shè)計(jì)及測試驗(yàn)證[J].汽車電器,2016,(8):38-41,49.
[2]苗斌,王衛(wèi)華,趙永勝,等.具有OSEK功能汽車儀表的睡眠及喚醒管理研究[J].汽車電器,2014,(2):15-18.
[3]劉文英,鄒洪波,王東,等.一種基于CAN總線的低功耗汽車組合開關(guān)[J].機(jī)電工程,2013,(11):1406-1409,1429.
[4]付國良.整車靜態(tài)電流設(shè)計(jì)及驗(yàn)證[J].汽車電器,2015,(11):17-19.
[5]山東省科學(xué)院自動(dòng)化研究所.一種汽車CAN節(jié)點(diǎn)的低功耗設(shè)計(jì)方法:中國, 201710458567.7 [P].2017-6-16.
[6]馬建輝,劉源楊,候冬冬,等.汽車BCM的低功耗設(shè)計(jì)及實(shí)現(xiàn)[J].電子產(chǎn)品世界,2016,(11):55-56,30.
[7]山東省科學(xué)院自動(dòng)化研究所.一種低功耗車身控制器及其控制方法:中國, 201510125944.6 [P].2015-03-20.
[8]初洪超.網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)的應(yīng)用[J].汽車實(shí)用技術(shù),2016,(5):114-118.
本文來源于《電子產(chǎn)品世界》2018年第3期第42頁,歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論