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