季 霆
(南通大學 電氣工程學院,江蘇 南通226000)
基于CAN總線的單主時鐘同步方法研究*
季 霆
(南通大學 電氣工程學院,江蘇 南通226000)
高精度和高可靠的時鐘同步方法是CAN總線能夠安全運行的關鍵,在分析主從、協商同步特點的基礎上,提出了一種基于CAN總線的單主時鐘協商同步方法,該方法僅需要一個時鐘同步主節點即可實現總線的可靠運轉,當從節點失效時利用CAN總線的時鐘特性及時對即時偏差進行估計,使總線各節點依然能夠正常工作,并引入時鐘方差的概念更新主時鐘同步優先級列表選擇新的主節點。最后利用CANoe軟件對該方法進行仿真,并利用51單片機、SJA1000T以及TJA1050構建硬件實驗平臺,結果表明該時鐘同步機制能夠防止單節點失效,可靠性高,具有更高的同步精度。
時鐘同步;即時偏差;主時鐘選擇;時鐘方差
控制器局域網(Controller Area Network,CAN)是目前應用最廣泛的總線之一,其具有實時性好、抗干擾能力強、可靠性高的優點,因此受到越來越多用戶的青睞。目前國內外對CAN總線進行了大量的研究,希望提高總線系統運行的精度和安全,本文以時鐘同步算法為研究對象,對CAN總線進行研究。
國內外諸多文獻對該領域進行了研究,文獻[1]提出了基于主從配置的CAN總線時鐘同步算法,只需要發送一條同步消息即可保證網絡中所有節點的同步,節省了網絡資源,但是主節點一旦失效就無法實現時鐘同步。文獻[2]在協商時鐘同步方法[3-4]的基礎上提出了一種基于軟件的“前期協商”時鐘同步方法,該算法引入了同步主節點優先級表的概念,在主節點失效時根據同步主節點優先級表選擇新的主時鐘節點,既實現了節點容錯錯,也減少了網絡同步開銷,然而該方法中同步主節點優先級表一旦建立無法改變,降低了時鐘選擇的實時性,并且對網絡延時考慮較少,也降低了同步精度。文獻[5]在分析主從、協商等同步算法的基礎上,提出了基于最小“相對即時偏差”的主從協商選擇方法(以下簡稱為“相對偏差選擇方法”),該方法可以在主時鐘節點失效時協商選擇出新的主時鐘節點,并且給出了網絡延時的測算方法,獲得了更高的時鐘精度,但是該方法并沒有考慮各個節點之間由于距離、溫度等原因而造成的網絡延時誤差。
本文在上述時鐘同步方法的基礎上,對CAN總線時鐘同步過程進行研究,提出了一種基于CAN總線的單主時鐘協商同步選擇方法,該方法對即時偏差與網絡延時測算方法進行了改進,可以提高CAN系統同步精度,減少網絡負載率。
1.1 CAN時鐘同步
CAN總線時鐘同步可分為應用層時鐘同步和物理層時鐘同步,其中物理層同步又分為硬同步和重同步,只有物理層同步準確無誤,應用層時鐘同步才能被正確執行[5-8]。本文主要對應用層時鐘同步進行研究,通過對從節點相對于主節點的即時偏差進行測量計算,從而對本地時鐘進行調節,以獲得更加精確的時間信息。
1.2 時鐘同步基本問題描述
在CAN總線上,每個節點時鐘均由其內部時鐘振蕩器驅動,每個振蕩器都產生一定頻率的脈沖,同時每個節點內部都包含一個軟件計數器對脈沖進行計數。若節點k時鐘振蕩器的頻率為fk(t),那么該節點計數器的值稱為節點k的本地時鐘Tk(t)。本地時鐘Tk(t)可由式(1)計算[9],其中t0為節點k初始時刻的實際時刻,Tk(t0)為節點k在初始時刻的本地時鐘。
(1)

(2)

(3)



(4)

(5)

(6)
圖1給出主從節點本地時鐘之間的關系,實線為主節點本地時鐘與實際時間之間的關系,虛線為從節點本地時鐘與實際時間之間的關系。

圖1 主從節點本地時鐘關系
2.1 即時偏差計算


圖2 即時偏差測量

(7)

(8)
(9)

(10)
(11)

2.2 主時鐘失效選擇
為了保證總線安全可靠地運行,避免主時鐘節點失效而造成系統癱瘓,網絡中往往需要多個主節點。若總線網絡中僅有一個主節點,那么就需要引入一種選擇機制來確保系統能夠在主節點失效后快速確立新的主節點。文獻[2]中通過在主時鐘同步優先級列表中預先設置優先級的方法來達到選擇新主節點的目的,但是該優先級表一旦確立將無法改變,導致選擇新的主節點之后精度變低。本文在原主時鐘同步優先級列表的基礎上提出一種基于實時優先級的主時鐘同步優先級列表。
為了能夠實時評價各個節點的優先級,引入時鐘方差的概念[12-13]:
(12)
每個時鐘同步周期從節點都能通過式(12)計算出時鐘方差σ2,并在網絡中廣播,每個節點對σ2值進行排序,更新主時鐘同步優先級列表。σ2值越小說明該節點越穩定,則在主時鐘同步優先級列表中的優先級越高。

(13)
如果該節點故障次數達到設定值n,則從節點k認為該主節點i失效,向總線各節點發出更換主節點的請求。其他節點接收請求,檢查錯誤計數器并做出反饋,若錯誤計數器達到n/2,則同意,否則反對。當同意更換主節點數超過50%時,系統掃描主時鐘同步優先級列表,選擇優先級最高的節點成為主節點,并向總線上所有節點發送確認消息。
2.3 基于CAN總線的單主節點協商同步算法
本文建立了一種基于CAN總線的單主時鐘協商同步算法,如圖3所示。
具體步驟如下:
(1)初始化設置,設置CAN控制寄存器,錯誤計數器M置0,更新時鐘同步優先級列表,選擇初始優先級最高的節點i作為主時鐘節點。



圖3 基于CAN總線的單主時鐘同步算法


(6)若某節點錯誤計數M≥n,向總線發送更換主節點請求。
(7)各節點接收到更換請求,檢查各自錯誤計數器,若達到n/2,則同意更換,否則不同意。
(8)若同意更換主節點數超過50%,則系統掃描主時鐘同步優先級列表,選擇優先級最高的節點成為主節點,并向總線上所有節點發送確認消息,否則不同意。
(9)同步周期結束,各從節點計數器清零,返回步驟(2)。
為了驗證上述算法,在Vector CANoe仿真軟件上對其進行試驗驗證。首先建立7個ECU節點所組成的CAN網絡,如圖4所示。網絡初始化時將選擇出主節點(本次仿真選擇VCU為初始主節點)。建立節點消息數據庫,每個節點都包含_Sync_Message消息和_Resp_Message消息,其中_Sync_Message為主節點向各從節點發送同步消息,各從節點收到_Sync_Message消息后,向主節點發送_Resp_Message消息,_Message消息為各節點之間信息傳輸的普通消息。

圖4 CAN網絡配置圖
利用CAPL編寫程序,設置主節點發送同步消息的周期為200 ms,程序如下。
variables
{
message VCU_Sync_Message mVCU_Sync_Message;
mstimer timer_VCU;
}
on timer timer_VCU
{
setTimer(timer_VCU,200);
output(mVCU_Sync_Message)
}
配置完成后進行仿真,仿真結果如圖5所示。
由于在仿真過程中各節點都在理論情況下運行,為了使仿真能夠反映真實的系統情況,在仿真過程中加入適當的干擾。選擇優先級最高的節點VCU作為初始主時鐘節點,其余節點為從節點。當主時鐘節點VCU發生故障時,各節點掃描主時鐘同步優先級列表,選擇優先級最高的節點EMS作為新的主時鐘節點。仿真結果表明本文所提算法可以防止主從時鐘同步的單點失效,增強了系統的可靠性。

圖5 仿真過程Trace窗口

圖6 CAN通信模塊接線圖
為了能夠真實反映本文所提出的同步算法的可靠性以及精度,構建一個具有真實節點的實驗平臺,并利用CANoe軟件對整個系統進行功能分析和測試。其中每一個節點均由微控制器(51單片機)、CAN控制器(SJA1000T)以及CAN收發器(TJA1050)所構成,CAN通信模塊連接圖如圖6所示。

圖7 幾種同步方法的同步偏差
選取文獻[2]中的前期協商同步方法以及文獻[5]中的相對偏差選擇方法與本文所述方法在上述實驗平臺上進行比較,圖7為上述時鐘同步方法在波特率為500 kb/s時利用CANoe軟件測量的同步偏差的絕對值,橫坐標為同步周期(ms),縱坐標為同步偏差(μs)。從圖中可以看出,本文時鐘同步方法的同步偏差略小于相對偏差選擇方法,而前期協商同步方法的同步偏差都要大于其他兩種方法,但是相對偏差選擇方法在同步過程中同步消息并沒有考慮傳輸過程中的消息延時,因此本文時鐘同步方法的精度更好。
本文在分析主從同步、協商同步等方法存在問題及CAN網絡時鐘同步特點基礎上,對CAN總線時鐘同步基本問題進行了描述,并提出了一種基于CAN總線的單主時鐘協商同步算法。該算法可在主、從節點出現失效時利用CAN總線的時鐘特性及時地對即時偏差進行估計,使總線各節點依然能夠正常工作,并利用主時鐘同步優先級列表選擇新的主節點。實驗結果表明:新的時鐘同步機制能夠防止單點失效,可靠性高,具有更高的同步精度,并且適用更為廣泛,為CAN系統精確時鐘同步提供更好的解決方法。
[1] MACII D,FONTANELLI D,PETRI D.A master-slave synchronization model for enhanced servo clock design[J].Brescia:ISPCS 2009 International IEEE Symposium on Precision Clock Synchronization for Measurement,Control and Communication,2009:1-6.
[2] 張利,李縣軍,王躍飛.汽車CAN網絡時鐘同步方法研究[J].電子測量與儀器學報,2011,25(2):147-152.
[3] GADERER G,LOSCHMIDT P,SAUTER T,et al.Improving fault tolerance in high-precision clock synchronization[J].IEEE Transactions on Industrial Informatics,2010,6(2):206-215.
[4] TOVAR E,VASQUE F.Non pre-emptive scheduling of messages on SMTV token-passing network[R].Real-Time Systems,2000.
[5] 王躍飛,楊錦,張利,等.汽車CAN系統精確時鐘同步機制研究[J].電子測量與儀器學報,2014,28(1):22-28.
[6] 王瑞曉,賀占莊.CAN總線位定時和同步機制的設計與實現[J].計算機技術與發展,2010,20(4):235-238.
[7] 陳守兵,楊建武.基于CAN總線的電源智能檢測系統的開發[J].電子測量與技術,2011,34(5):94-97.
[8] 王剛,黃飛,喬純捷.分布式網絡時鐘同步研究[J].儀器儀表學報,2008,29(11):2399-2403.
[9] 劉順佳,曾益,胡波.傳感器網絡時鐘同步中基于多父節點的卡爾曼濾波算法[J].計量學報,2009,30(4):363-368.
[10] 任豐原,董思穎,何滔,等.基于鎖相環的時間同步機制與算法[J].軟件學報,2007,18(2):372-380.
[11] 魏豐,孫文杰.IEEE-1588協議時鐘同步報文的精確時間標記方法研究[J].儀器儀表學報,2009,30(1):162-169.
[12] 庾智蘭,李智.精確時鐘同步協議最佳時鐘算法[J].電力自動化設備,2009,29(11):74-77.
[13] IEEE Instrumentation and Measurement Society.IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].New York,USA:IEEE,2002.
Research of single master clock synchronization mechanism based on CAN bus
Ji Ting
(School of Electrical Engineering,Nantong University,Nantong 226000,China)
High precision and high reliability clock synchronization mechanism is the key to the safe operation of CAN bus. This paper aims at characteristic of master-slave clock synchronization and consultation selection clock synchronization, and proposes a single master clock synchronization mechanism based on CAN bus . This mechanism only needs one master synchronization node to achieve the reliable operation of the CAN bus. Estimating the value of instant deviation using clock characteristics of CAN bus can make each node of the bus work properly when slave clock node is invalid.And in order to select a new master synchronization node, the concept of clock variance is introduced to update master clock synchronization priority table. Finally it makes a simulation using CANoe and builds a hardware experimental platform using MCS-51, SJA1000T and TJA1050. The results show that the mechanism can prevent single node failure and be more reliable.
clock synchronization;instant deviation;master clock selection;clock variance
南通大學教學改革課題(2015C01)
U469
A
10.19358/j.issn.1674- 7720.2016.24.018
季霆. 基于CAN總線的單主時鐘同步方法研究[J].微型機與應用,2016,35(24):61-65,69.
2016-08-30)
季霆(1987-),男,碩士研究生,助理實驗師,主要研究方向:汽車電子和電氣控制。