專利名稱:一種用于汽車can網(wǎng)絡的時鐘同步方法
技術領域:
本發(fā)明涉及時鐘同步領域,具體為一種用于汽車CAN網(wǎng)絡的時鐘同步方法。
背景技術:
隨著汽車上電控系統(tǒng)(ECU)數(shù)目不斷增多,汽車網(wǎng)絡化成為了汽車電子發(fā)展的趨勢。由于汽車電子是典型的安全關鍵實時系統(tǒng),精確的時鐘基準是汽車網(wǎng)絡系統(tǒng)高可靠運行關鍵因素之一。因此,研究目前汽車中應用最廣泛CAN總線及其時鐘同問題,建立低成本、高精度與高可靠的時鐘同步方法具有重要的現(xiàn)實意義。目前,國內(nèi)外在時鐘同步方面取得了大量的成果,主要提出了基于主從配置的CAN 總線時鐘同步算法和協(xié)商時鐘同步方法等方法?;谥鲝呐渲玫腃AN總線時鐘同步算法的最大優(yōu)點在于可以節(jié)省帶寬資源,每個重同步周期中時鐘主節(jié)點只要發(fā)送一條同步消息即可保證網(wǎng)絡中所有節(jié)點的時鐘同步,而其缺點在于不能容納時鐘主節(jié)點的單點失效。協(xié)商時鐘同步方法可以有效避免單點失效,實現(xiàn)分布式容錯,但是網(wǎng)絡中所有工作正常的節(jié)點都必須周期性的參與協(xié)商,為下一次重同步選擇時鐘同步主節(jié)點,增加了網(wǎng)絡同步開銷,降低了帶寬利用率。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用于汽車CAN網(wǎng)絡的時鐘同步方法,以解決現(xiàn)有的CAN 總線時鐘同步方法的單點失效和網(wǎng)絡冗余負載過大的問題。為了達到上述目的,本發(fā)明所采用的技術方案為一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于是一種前期協(xié)商算法,所述前期協(xié)商算法包括以下步驟(1)初始化CAN控制器和寄存器,CAN網(wǎng)絡中原主節(jié)點在某個預置啟動時間點向各個從節(jié)點周期性發(fā)送同步消息,成功接收到所述同步消息的各個從節(jié)點重新啟動時鐘, 并各自記錄接收時刻;當原主節(jié)點自接收到所述同步信息后,原主節(jié)點向各個從節(jié)點發(fā)送 Follow_up報文,各個從節(jié)點根據(jù)原主節(jié)點發(fā)送的R)llow_Up報文分別計算各自的本地時鐘%與原主節(jié)點的主時鐘乜之間的即時偏差ts-tj ;(2)當網(wǎng)絡出現(xiàn)錯誤,導致部分同步消息不能被所有從節(jié)點成功接收,此時若某個從節(jié)點的即時偏差|ts-tm| > P (Δ rtight+Cf+Jg)+S,則該從節(jié)點啟動錯誤計數(shù)器,式中 Δ Γ tight是發(fā)送成功的同步消息被兩個不同從節(jié)點接收的最大時間差,P是從節(jié)點的時鐘漂移率,δ為不確定干擾造成的誤差,&是^)110 _11 報文最壞傳輸時間,Jg為原主節(jié)點自接收到同步信息到原主節(jié)點發(fā)出FolloW_Up報文的時間間隔;當該從節(jié)點錯誤計數(shù)器計數(shù)達到設定值時,該從節(jié)點判斷原主節(jié)點時效,并同步掃描主節(jié)點優(yōu)先級表,該從節(jié)點在所述主節(jié)點優(yōu)先級表中選擇原主節(jié)點下一順序優(yōu)先級的從節(jié)點作為候選主節(jié)點,并廣播選擇信息通知其他從節(jié)點,其他從節(jié)點收到所述選擇消息后,分別各自掃描主節(jié)點優(yōu)先級表,判斷所述候選主節(jié)點是否為原主節(jié)點下一順序優(yōu)先級的從節(jié)點,如是則分別承認所述候選主節(jié)點,隨后各個從節(jié)點分別向所述候選主節(jié)點發(fā)送確認信息;(3)所述候選主節(jié)點判定是否收到各個從節(jié)點的確認消息,若收到確認消息,則判斷確認信息中是否包含原主節(jié)點發(fā)送的消息,如果包含原主節(jié)點發(fā)送的消息,則證明原主節(jié)點正常,候選主節(jié)點被放棄,原主節(jié)點繼續(xù)運行,如果不包含原主節(jié)點發(fā)送的消息,則證明原主節(jié)點失效,啟動候選主節(jié)點。所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述步驟(3)中,如果規(guī)定時間內(nèi),候選主節(jié)點沒有收到確認消息,判定候選主節(jié)點故障,自行關閉,原主節(jié)點繼續(xù)運行。所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述前期協(xié)商算法必須滿足以下假設(1)幀到達各個節(jié)點的延時是定值,即CAN網(wǎng)絡必須是廣播型網(wǎng)絡,延遲時間可以接近于0,或是一個常值;(2)從發(fā)送或接收數(shù)據(jù)幀到接收方的中斷服務程序處理該幀的延遲時間是一個定值;(3)連續(xù)兩個有效同步消息的時間間隔必須小于兩個有效同步消息的最大時間間隔;所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述主節(jié)點優(yōu)先級表由CAN網(wǎng)絡中每個節(jié)點根據(jù)其他節(jié)點提供的信息建立或者自身更新的,其用來反映各個節(jié)點優(yōu)先級順序。所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述步驟(1)中同步消息為原主節(jié)點周期性發(fā)送,用于同步各從節(jié)點與原主節(jié)點時鐘的消息。本發(fā)明在分析從同步、協(xié)商同步等方法存在問題及CAN網(wǎng)絡時鐘同步特點基礎上,提出了基于狀態(tài)信息表的“前期協(xié)商”時鐘同步方法,給出了相應的同步算法?!扒捌趨f(xié)商”時鐘同步方法可靠性高,能夠防止單點失效,所需傳輸消息數(shù)目少,帶寬利用率高,能達到較高的同步精確度,為實現(xiàn)汽車CAN網(wǎng)絡高精度時鐘同步提供了很好的解決思路。
圖1為本發(fā)明方法原理示意圖。圖2為本發(fā)明方法流程圖。圖3為本發(fā)明方法原理流程圖。
具體實施例方式如圖1、圖2、圖3所示。本發(fā)明按如下步驟進行(1)初始化CAN控制器和寄存器,原主節(jié)點在某個預置啟動時間點周期性傳送同步消息。在這一階段CAN控制寄存器可能被設置或者消息自動重發(fā)被禁止(2)成功接收到同步消息的所有從節(jié)點,重新啟動時鐘,并記錄接收時刻。原主節(jié)點自接收同步信息后,發(fā)送你110 _叩報文至各個從節(jié)點,各個從節(jié)點根據(jù)原主節(jié)點發(fā)送的F0ll0W_up報文分別計算各自從節(jié)點的ts與主節(jié)點的tm之間的即時偏差I ts-tm|。
如果某一從節(jié)點I ts_tm I彡P ( Δ Γ tight+Cf+Jg) + δ,,則t=t+《,錯誤計數(shù)器不啟動,
否則啟動該從節(jié)點的錯誤計數(shù)器M = M+l,t = t+Δ j,Ai =1-±θ。
n k=l(3)由于網(wǎng)絡可能出現(xiàn)錯誤,造成部分同步消息不能被所有從節(jié)點成功接收,對于在規(guī)定時間內(nèi)沒有收到同步消息的從節(jié)點,啟動錯誤計數(shù)器M = M+1,同時本地時鐘t = t+Δ JO若某從節(jié)點錯誤計數(shù)器計數(shù)M > 3,則判定原主節(jié)點失效。該從節(jié)點掃描主節(jié)點優(yōu)先級表,選擇原主節(jié)點下一順序優(yōu)先級的從節(jié)點為候選主節(jié)點,廣播選擇消息 (vote消息)。各節(jié)點收到vote消息后,掃描主節(jié)點優(yōu)先級表,判斷候選主節(jié)點選擇是否正確,即候選主節(jié)點是否為原主節(jié)點下一順序優(yōu)先級的從節(jié)點,如正確則向候選主節(jié)點發(fā)送確認消息。(4)候選主節(jié)點判定是否收到確認消息。若收到確認消息,判定是否包含原主節(jié)點發(fā)送的消息,如果包含,則原主節(jié)點正常,原主節(jié)點繼續(xù)運行,否則原主節(jié)點失效,啟動候選主節(jié)點。(5)如果規(guī)定時間內(nèi),候選主節(jié)點沒有收到確認消息,判定從節(jié)點故障,自行關閉, 原主節(jié)點繼續(xù)正常運行。上述步驟中 < 是從節(jié)點i第k次接收到同步消息的時間乂是原主節(jié)點第k次自接收到同步信息的時間,從節(jié)點i與主節(jié)點間第k次即時偏差為《=<_<,Δ Γ tight是發(fā)送成功的同步消息被兩個不同從節(jié)點接收的最大時間差,P是從節(jié)點的時鐘漂移率,S為不確定干擾造成的誤差,報文最壞傳輸時間,Jg為主節(jié)點自接收到同步信息到發(fā)出R)lloW_up報文的時間間隔,t是各節(jié)點實時時刻,ts是從節(jié)點在t時刻的時間戳, tm是主節(jié)點在t時刻的時間戳,M是從節(jié)點錯誤計數(shù)。具體實施例以混合動力汽車中CAN網(wǎng)絡的7個E⑶網(wǎng)絡節(jié)點為例,其中V⑶(整車電控單元)作為初始時鐘同步主節(jié)點負責提供全局時鐘,EMS(發(fā)動機管理系統(tǒng)),TCU(自動變速箱控制單元),ABS (剎車防抱死單元),TCS (牽引力控制單元),BMS(電池管理單元) 和DB(儀表單元)等作為從節(jié)點。在2. 193112s時,主節(jié)點(V⑶)發(fā)送sync報文(即同步信息),同步各從節(jié)點與主節(jié)點時鐘的報文。各從節(jié)點EMS(發(fā)動機管理系統(tǒng)),TCU(自動變速箱控制單元),ABS(剎車防抱死單元),TCS (牽弓丨力控制單元),BMS (電池管理單元)和DB (儀表單元)分別在以下時間接收到消息:2. 193115s,2. 193113s,2. 193113s,2. 193113s,2. 193115s,2. 193114s。 主節(jié)點(VCU)接收到同步sync消息并發(fā)送R)lloW_up消息的時間為2. 193118s, Follow, up消息包含主節(jié)點(VCU)接收到sync消息的時間2. 193116s,各從節(jié)點接收到R)llow_up 消息的時間分別為:2. 193120s,2. 193121s,2. 193119s,2. 193120s,2. 193119s,2. 193120s。取主節(jié)點VCU和從節(jié)點EMS為例說明該同步算法。| ts_tm | = 3 X 10_6s, P (Δ Γ tight+Cf+Jg) + δ 中 ρ = 1X10—5,Δ Γ tight,= 2X KT6S,Cf = 2X lO—s,Jg = 2X lO—s, 取δ = lX10_5s,經(jīng)過比較可得|ts_tm|彡P (Δ rtight+cf+jg)+s,則原主節(jié)點工作正常。在2. 421226s時,主節(jié)點VCU發(fā)送sync消息,從節(jié)點EMS在2. 421238s時刻接收到消息,那么ts-tj = 1·2Χ10_5> ρ (Δ 1\_+(^+1)+3,就會啟動錯誤計數(shù)器11 = 11+1。 在2. 510331時M > 2時,則判定主節(jié)點失效,掃描同步主節(jié)點優(yōu)先級表選擇下一順序節(jié)點 EMS為候選主節(jié)點。在2. 511231s時,節(jié)點EMS作為候選主節(jié)點發(fā)送sync消息,各從節(jié)點TCU, ABS, TCS, BMS 禾口 DB 分別在以下時間接收到消息2. 510333s, 2. 510332s, 2. 510334s, 2. 510336s, 2. 510333s。候選主節(jié)點EMS接收到同步sync消息并發(fā)送R)lloW_up消息的時間為2. 510335s,Follow_up消息包含候選主節(jié)點EMS接收到sync消息的時間2. 510331s, 節(jié)點接收到 Follow_up 消息的時間分別為2. 510336s, 2. 510336s, 2. 510338s, 2. 510337s, 2.510336s。經(jīng)過比較可得|ts-tm|彡P (Δ Γ tight+Cf+Jg) + δ,則候選主節(jié)點EMS成為主節(jié)點ο 綜上分析可以看出“前期協(xié)商”同步方法在同步精度與現(xiàn)有的主從同步與“后期協(xié)商”同步方法相近,但是在相同條件下具有更小的網(wǎng)絡冗余負載,能夠有效防止單點失效,能夠較好滿足汽車CAN網(wǎng)絡實時的要求。
權利要求
1.一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于是一種前期協(xié)商算法,所述前期協(xié)商算法包括以下步驟(1)初始化CAN控制器和寄存器,CAN網(wǎng)絡中原主節(jié)點在某個預置啟動時間點向各個從節(jié)點周期性發(fā)送同步消息,成功接收到所述同步消息的各個從節(jié)點重新啟動時鐘,并各自記錄接收時刻;當原主節(jié)點自接收到所述同步信息后,原主節(jié)點向各個從節(jié)點發(fā)送 Follow_up報文,各個從節(jié)點根據(jù)原主節(jié)點發(fā)送的R)llow_Up報文分別計算各自從節(jié)點的Ji與主節(jié)點的&之間的即時偏差1 ;(2)當網(wǎng)絡出現(xiàn)錯誤,導致部分同步消息不能被所有從節(jié)點成功接收,此時若某個從節(jié)點的即時偏差‘|>p (江雄+Cf+Jg)+δ,則該從節(jié)點啟動錯誤計數(shù)器,式中Artight是發(fā)送成功的同步消息被兩個不同從節(jié)點接收的最大時間差,P是從節(jié)點的時鐘漂移率,δ為不確定干擾造成的誤差,(^是^)110 _叩報文最壞傳輸時間,Jg為原主節(jié)點自接收到同步信息到原主節(jié)點發(fā)出FolloW_Up報文的時間間隔;當該從節(jié)點錯誤計數(shù)器計數(shù)達到設定值時,該從節(jié)點判斷原主節(jié)點時效,并同步掃描主節(jié)點優(yōu)先級表,該從節(jié)點在所述主節(jié)點優(yōu)先級表中選擇原主節(jié)點下一順序優(yōu)先級的從節(jié)點作為候選主節(jié)點,并廣播選擇信息通知其他從節(jié)點,其他從節(jié)點收到所述選擇消息后,分別各自掃描主節(jié)點優(yōu)先級表,判斷所述候選主節(jié)點是否為原主節(jié)點下一順序優(yōu)先級的從節(jié)點,如是則分別承認所述候選主節(jié)點,隨后各個從節(jié)點分別向所述候選主節(jié)點發(fā)送確認信息;(3)所述候選主節(jié)點判定是否收到各個從節(jié)點的確認消息,若收到確認消息,則判斷確認信息中是否包含原主節(jié)點發(fā)送的消息,如果包含原主節(jié)點發(fā)送的消息,則證明原主節(jié)點正常,候選主節(jié)點被放棄,原主節(jié)點繼續(xù)運行,如果不包含原主節(jié)點發(fā)送的消息,則證明原主節(jié)點失效,啟動候選主節(jié)點。
2.根據(jù)權利要求1所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述步驟(3)中,如果規(guī)定時間內(nèi),候選主節(jié)點沒有收到確認消息,判定候選主節(jié)點故障,自行關閉,原主節(jié)點繼續(xù)運行。
3.根據(jù)權利要求1所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述前期協(xié)商算法必須滿足以下假設(1)幀到達各個節(jié)點的延時是定值,即CAN網(wǎng)絡必須是廣播型網(wǎng)絡,延遲時間可以接近于0,或是一個常值;(2)從發(fā)送或接收數(shù)據(jù)幀到接收方的中斷服務程序處理該幀的延遲時間是一個定值;(3)連續(xù)兩個有效同步消息的時間間隔必須小于兩個有效同步消息的最大時間間隔。
4.根據(jù)權利要求1所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述主節(jié)點優(yōu)先級表由CAN網(wǎng)絡中每個節(jié)點根據(jù)其他節(jié)點提供的信息建立或者自身更新的,其用來反映各個節(jié)點優(yōu)先級順序。
5.根據(jù)權利要求1所述的一種用于汽車CAN網(wǎng)絡的時鐘同步方法,其特征在于所述步驟(1)中同步消息為原主節(jié)點周期性發(fā)送,用于同步各從節(jié)點與原主節(jié)點時鐘的消息。
全文摘要
本發(fā)明提供一種用于汽車CAN網(wǎng)絡的時鐘同步方法,給出了相應的“前期協(xié)商”同步算法。本發(fā)明方法可以在當前同步主節(jié)點失效時,根據(jù)自身的主節(jié)點優(yōu)先級表的優(yōu)先級與其他節(jié)點協(xié)商決定同步主節(jié)點,從而有效避免周期協(xié)商帶來的冗余負載問題。本方法可靠性高,能夠防止單點失效,所需傳輸消息數(shù)目少,帶寬利用率高,能達到較高的同步精確度,為實現(xiàn)汽車CAN網(wǎng)絡高精度時鐘同步提供了很好的解決思路。
文檔編號H04L7/00GK102195769SQ20111014683
公開日2011年9月21日 申請日期2011年6月2日 優(yōu)先權日2011年6月2日
發(fā)明者劉小平, 劉征宇, 季霆, 張利, 張建軍, 張本宏, 李縣軍, 王躍飛, 石雷, 韓江洪 申請人:合肥工業(yè)大學