專利名稱:Ttcan總線網(wǎng)絡時間主節(jié)點故障容錯方法
技術領域:
本發(fā)明涉及一種TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法。
背景技術:
隨著工業(yè)現(xiàn)場總線技術的發(fā)展,CAN總線技術作為一種網(wǎng)絡通訊控制方式,已經(jīng)被廣 泛應用于多個控制領域,如汽車工業(yè)、航空工業(yè)、工業(yè)控制、自動控制等自動化控制領域。 從總線的單一節(jié)點來說,CAN總線的多主機制增加了總線系統(tǒng)的靈活性,但從整個網(wǎng)絡來 說,當總線負載率達到一定的程度時,整個網(wǎng)絡系統(tǒng)消息處于一種無序的狀態(tài),網(wǎng)絡的整個 性能得不到保障。
TTCAN協(xié)議是在CAN協(xié)議之上的時間觸發(fā)總線協(xié)議,總線上各節(jié)點ECU在時間主節(jié) 點發(fā)送的時鐘同步消息作用下完成時鐘同步和時鐘計數(shù)功能,按照系統(tǒng)矩陣的調度安排收發(fā) CAN消息幀,任何節(jié)點消息的收發(fā)在一個特定的時間窗內傳送,節(jié)點消息具有對總線的可 預測性和獨占性的特點,避免了總線上的沖突,提高了總線網(wǎng)絡的有序性和實時性。
TTCAN總線網(wǎng)絡中,時間主節(jié)點能夠準時地發(fā)送時鐘同步消息從而實現(xiàn)各節(jié)點的時鐘 同步是整個TTCAN總線網(wǎng)絡正常通訊的前提和必備條件,然而,實際工業(yè)現(xiàn)場總線的工作 環(huán)境復雜,在外界干擾等因素的影響下,TTCAN總線網(wǎng)絡時間主節(jié)點出現(xiàn)故障導致時鐘同 步消息不能準確發(fā)送,那么,整個TTCAN總線網(wǎng)絡節(jié)點將失去時鐘同步的基準,整個TTCAN 總線網(wǎng)絡將癱瘓。
目前對于采用TTCAN協(xié)議通訊的總線網(wǎng)絡的研究中,多數(shù)都是針對TTCAN協(xié)議時間 觸發(fā)功能的仿真和測試,而沒有針對TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法的研究。
中國專利200710099957.6 "—種車用TTCAN通訊網(wǎng)絡的仿真方法",提出了一種車用 TTCAN網(wǎng)絡通訊協(xié)議的制定、仿真和測試的方法。該發(fā)明實現(xiàn)了車用TTCAN通訊網(wǎng)絡的 仿真程序,從功能的角度實現(xiàn)了網(wǎng)絡信號按照TTCAN協(xié)議時間觸發(fā)方式的發(fā)送,是TTCAN 協(xié)議基本通訊機制的實現(xiàn),沒有研究TTCAN總線網(wǎng)絡在時間主節(jié)點故障情況下的處理機制, 導致整個TTCAN總線網(wǎng)絡的抗干擾能力以及可靠性降低。
發(fā)明內容
本發(fā)明的目的是針對目前工業(yè)現(xiàn)場TTCAN總線網(wǎng)絡的設計和應用,提供一種干擾環(huán)境中TTCAN總線網(wǎng)絡時間主節(jié)點的故障容錯方法和流程,提高TTCAN總線網(wǎng)絡抗干擾的能 力和可靠性。
本發(fā)明結合TTCAN總線潛在時間主節(jié)點ECU的在當前時間主節(jié)點故障時,其時鐘同 步消息的時鐘計數(shù)器將超過一個BC的特點設計程序,設置總線系統(tǒng)上電后的默認時間主節(jié) 點,程序寫入節(jié)點ECU的中央處理器后,當前時間主節(jié)點故障時,網(wǎng)絡內自動生成多個潛 在時間主節(jié)點,從而完成對當前時間主節(jié)點故障容錯,避免了 TTCAN總線網(wǎng)絡在當前時間 主節(jié)點出現(xiàn)故障時整個網(wǎng)絡陷入癱瘓的局面,提高了網(wǎng)絡的抗干擾能力和可靠性。
本發(fā)明采用中央處理器、CAN總線通訊模塊、時鐘計數(shù)模塊構成TTCAN總線網(wǎng)絡的節(jié) 點ECU,中央處理器直接與CAN總線通訊模塊和時鐘計數(shù)模塊相連,時鐘計數(shù)模塊作為 TTCAN總線網(wǎng)絡各節(jié)點ECU的同步時鐘基準完成對各節(jié)點CAN總線通訊模塊的通訊時間 計數(shù),CAN總線通訊模塊主要完成TTCAN總線網(wǎng)絡各節(jié)點ECU的CAN消息幀的發(fā)送和 接收。設置系統(tǒng)上電后的默認時間主節(jié)點和多個潛在時間主節(jié)點,程序寫入中央處理器后, 潛在時間主節(jié)點ECU根據(jù)時鐘同步消息的時鐘計數(shù)范圍自動完成對時間主節(jié)點的故障容錯, 使得TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯更加簡單,不需要外接總線監(jiān)測設備。
本發(fā)明提出了一種TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在于-
1、 包括中央處理器、CAN總線通訊模塊和時鐘計數(shù)模塊,中央處理器、CAN總線通訊 模塊和時鐘計數(shù)模塊構成TTCAN網(wǎng)絡節(jié)點ECU,中央處理器直接與CAN總線通訊模塊和 時鐘計數(shù)模塊相連,時鐘計數(shù)模塊作為TTCAN總線網(wǎng)絡各節(jié)點ECU的同步時鐘基準完成 對各節(jié)點CAN總線通訊模塊的通訊時間計數(shù),CAN總線通訊模塊主要完成TTCAN總線網(wǎng) 絡各節(jié)點ECU的CAN消息幀的發(fā)送和接收。按照TTCAN協(xié)議中對潛在主節(jié)點數(shù)目不超過 8個的限制,設置系統(tǒng)上電后的默認時間主節(jié)點和多個潛在時間主節(jié)點,總線上任一節(jié)點均 可作為潛在時間主節(jié)點,各時間主節(jié)點分別配置一條優(yōu)先級不同的時鐘同步消息,當各潛在 時間主節(jié)點時鐘計數(shù)模塊檢測到時鐘同步消息的時鐘計數(shù)器值超出系統(tǒng)矩陣一個基本周期 BC的長度時,則判定當前時間主節(jié)點出現(xiàn)故障,時間主節(jié)點故障標志置位,同時啟動該節(jié) 點發(fā)送其時鐘同步消息,通過各潛在時間主節(jié)點內部對時鐘同步消息的優(yōu)先級仲裁決定是否 繼續(xù)發(fā)送該節(jié)點的時鐘同步消息,保證TTCAN總線網(wǎng)絡內最高優(yōu)先級的時鐘同步消息繼續(xù) 發(fā)送,發(fā)送該時鐘同步消息的潛在時間主節(jié)點自動成為當前時間主節(jié)點。
2、 本發(fā)明首先配置總線通訊波特率,結合應用層通訊協(xié)議和TTCAN協(xié)議,計算一個 每個基本周期BC的長度,確定系統(tǒng)矩陣;然后配置各時間主節(jié)點對應發(fā)送的時鐘同步消息 的發(fā)送周期為BC,作為時間主節(jié)點的ECU比其他節(jié)點ECU多發(fā)送一條時鐘同步消息;最 后根據(jù)系統(tǒng)矩陣對各節(jié)點中央處理器編制程序。該方法的程序設計中包括主程序和2個中斷,2個中斷為CAN接收中斷和時間計數(shù)中斷,CAN接收中斷優(yōu)先級高于時間計數(shù)中斷,并且 中斷允許嵌套。
各節(jié)點ECU上電后,主程序的控制流程包括
(1) 關閉系統(tǒng)中斷;
(2) 初始化CAN總線通訊模塊,包括通訊速率、各接收和發(fā)送緩沖區(qū)的消息;
(3) 初始化時鐘計數(shù)模塊,設置時鐘計數(shù)器的頻率,時鐘計數(shù)器清零;
(4) 標志初始化,包括系統(tǒng)矩陣中各時間窗使能標志、時間主節(jié)點故障標志、時鐘同 步消息發(fā)送使能標志初始化復位;
(5) 打開系統(tǒng)中斷,包括CAN模塊接收中斷和時鐘計數(shù)中斷;
(6) 判斷當前時間主節(jié)點故障標志,若故障標志置位,則執(zhí)行第(7)步,否則,直接 執(zhí)行第(9)步;
(7) 若該節(jié)點為潛在時間主節(jié)點,則執(zhí)行第(8)步,若該節(jié)點不為潛在時間主節(jié)點, 則直接執(zhí)行第(9)步;
(8) 若節(jié)點時鐘同步消息的發(fā)送使能標志置位,則以BC為周期發(fā)送時鐘同步消息, 將當前時間主節(jié)點故障標志復位;否則,直接執(zhí)行第(9)步;
(9) 若各時間窗使能標志置位,則按照系統(tǒng)矩陣的調度和在相應的時間窗發(fā)送消息幀, 處理接收到的消息幀,操作完成后對各時間窗使能標志復位,回到第(6)步;若各時間窗 使能標志復位,則直接回到第(6)步。該方法程序設計中包括兩個中斷
CAN接收中斷,該中斷完成的任務包括將各時鐘計數(shù)器清零;若接收到的消息不是 時鐘同步消息,則將該消息從緩沖區(qū)取出,在主程序中按照應用層協(xié)議要求進行處理;若接 收到的消息是時鐘同步消息,并且該節(jié)點為時間主節(jié)點,則與該節(jié)點發(fā)送的時鐘同步消息的 優(yōu)先級進行比較,如果接收到的消息優(yōu)先級高,則該節(jié)點時鐘同步消息的發(fā)送使能標志復位, 該節(jié)點停止發(fā)送時鐘同步消息,如果接收到的消息優(yōu)先級高等于或小于該節(jié)點時鐘同步消息 的優(yōu)先級,則將該節(jié)點時鐘同步消息的發(fā)送使能標志置位,該節(jié)點允許繼續(xù)發(fā)送時鐘同步消 息。
時鐘計數(shù)中斷,該中斷完成的任務包括若節(jié)點不被設置為潛在時間主節(jié)點,則對各消 息的發(fā)送周期計時;若節(jié)點被設置為潛在時間主節(jié)點,則對各消息的發(fā)送周期計時,并將時 鐘同步消息時鐘計數(shù)器的值與基本周期BC進行比較,若時鐘同步消息時鐘計數(shù)器的值超過 基本周期BC長度,則表示時鐘同步消息的傳輸出現(xiàn)故障,即時間主節(jié)點出現(xiàn)故障,將當前 時鐘同步消息的故障標志置位,若時鐘同步消息時鐘計數(shù)器的值小于或等于基本周期BC的 長度,則表示時鐘同步消息的傳輸正常,即時間主節(jié)點正常,將當前時鐘同步消息的故障標志復位。
圖1是本發(fā)明中央處理器的主程序流程圖; 圖2是本發(fā)明CAN接收中斷的程序流程圖; 圖3是本發(fā)明時鐘計數(shù)中斷的程序流程圖;
具體實施例方式
本發(fā)明首先配置總線通訊波特率,結合應用層通訊協(xié)議和TTCAN協(xié)議,計算一個每個 基本周期BC的長度,確定系統(tǒng)矩陣;然后配置各時間主節(jié)點對應發(fā)送的時鐘同步消息的發(fā) 送周期為BC,作為時間主節(jié)點的ECU比其他節(jié)點ECU多發(fā)送一條時鐘同步消息;最后根 據(jù)系統(tǒng)矩陣對各節(jié)點中央處理器編制程序。
圖1為中央處理器程序的主控制流程,系統(tǒng)上電后,中央處理器按照主程序的控制流程
完成任務,具體步驟順序如下
(1) 關閉系統(tǒng)中斷;
(2) 初始化CAN總線通訊模塊,包括通訊速率、各接收和發(fā)送緩沖區(qū)的消息;
(3) 初始化時鐘計數(shù)模塊,設置時鐘計數(shù)器的頻率,時鐘計數(shù)器清零;
(4) 標志初始化,包括系統(tǒng)矩陣中各時間窗使能標志、時間主節(jié)點故障標志、時鐘同 步消息發(fā)送使能標志初始化復位
(5) 打開系統(tǒng)中斷,包括CAN模塊接收中斷和時鐘計數(shù)中斷;
(6) 判斷當前時間主節(jié)點故障標志,若故障標志置位,則執(zhí)行第(7)步,否則,直接 執(zhí)行第(9)步;
(7) 若該節(jié)點為潛在時間主節(jié)點,則執(zhí)行第(8)步,若該節(jié)點不為潛在時間主節(jié)點, 則直接執(zhí)行第(9)步;
(8) 若節(jié)點時鐘同步消息的發(fā)送使能標志置位,則以BC為周期發(fā)送吋鐘同步消息, 將當前時間主節(jié)點故障標志復位;否則,直接執(zhí)行第(9)步;
(9) 若各時間窗使能標志置位,則按照系統(tǒng)矩陣的調度和在相應的時間窗發(fā)送消息幀, 處理接收到的消息幀,操作完成后對各時間窗使能標志復位,回到第(6)步;若各時間窗 使能標志復位,則直接回到第(6)步。
圖2為CAN接收中斷的程序流程,CAN接收中斷完成的任務包括將各時鐘計數(shù)器清 零;若接收到的消息不是時鐘同步消息,則將該消息從緩沖區(qū)取出,在主程序中按照應用層 協(xié)議要求進行處理;若接收到的消息是時鐘同步消息,并且該節(jié)點為時間主節(jié)點,則與該節(jié) 點發(fā)送的時鐘同步消息的優(yōu)先級進行比較,如果接收到的消息優(yōu)先級高,則該節(jié)點時鐘同步消息的發(fā)送使能標志復位,該節(jié)點停止發(fā)送時鐘同步消息,如果接收到的消息優(yōu)先級高等于 或小于該節(jié)點時鐘同步消息的優(yōu)先級,則將該節(jié)點時鐘同步消息的發(fā)送使能標志置位,該節(jié) 點允許繼續(xù)發(fā)送時鐘同步消息。
圖3為時鐘計數(shù)中斷的程序流程,該中斷中完成的任務包括若節(jié)點不被設置為潛在時 間主節(jié)點,則對各消息的發(fā)送周期計時;若節(jié)點被設置為潛在時間主節(jié)點,則對各消息的發(fā) 送周期計時,并將時鐘同步消息時鐘計數(shù)器的值與基本周期BC進行比較,若時鐘同步消息 時鐘計數(shù)器的值超過基本周期BC長度,則表示時鐘同步消息的傳輸出現(xiàn)故障,即時間主節(jié) 點出現(xiàn)故障,將當前時鐘同步消息的故障標志置位,若時鐘同步消息時鐘計數(shù)器的值小于或 等于基本周期BC的長度,則表示時鐘同步消息的傳輸正常,即時間主節(jié)點正常,將當前時
鐘同步消息的故障標志復位。
權利要求
1、一種TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在于,該方法采用中央處理器、CAN總線通訊模塊、時鐘計數(shù)模塊構成TTCAN總線網(wǎng)絡的節(jié)點ECU,中央處理器直接與CAN總線通訊模塊和時鐘計數(shù)模塊相連,時鐘計數(shù)模塊作為TTCAN總線網(wǎng)絡各節(jié)點ECU的同步時鐘基準,完成對各節(jié)點CAN總線通訊模塊的通訊時間計數(shù),CAN總線通訊模塊完成TTCAN總線網(wǎng)絡各節(jié)點ECU的CAN消息幀的發(fā)送和接收;設置系統(tǒng)上電后的默認時間主節(jié)點和多個潛在時間主節(jié)點,程序寫入中央處理器后,潛在時間主節(jié)點ECU根據(jù)時鐘同步消息的時鐘計數(shù)范圍自動完成對時間主節(jié)點的故障容錯。
2、 根據(jù)權利要求1所述的TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在于按 照TTCAN協(xié)議中對潛在主節(jié)點數(shù)目不超過8個的限制,設置系統(tǒng)上電后的默認時間主節(jié)點 和多個潛在時間主節(jié)點;總線上任一節(jié)點均作為潛在時間主節(jié)點,各時間主節(jié)點分別配置一 條優(yōu)先級不同的時鐘同步消息;當各潛在時間主節(jié)點時鐘計數(shù)模塊檢測到時鐘同步消息的時 鐘計數(shù)器值超出系統(tǒng)矩陣一個基本周期BC的長度時,則判定當前時間主節(jié)點出現(xiàn)故障,時 間主節(jié)點故障標志置位,同時啟動該節(jié)點發(fā)送其時鐘同步消息,通過各潛在時間主節(jié)點內部 對時鐘同步消息的優(yōu)先級,仲裁決定是否繼續(xù)發(fā)送該節(jié)點的時鐘同步消息,保證TTCAN總 線網(wǎng)絡內最高優(yōu)先級的時鐘同步消息繼續(xù)發(fā)送,發(fā)送該時鐘同步消息的潛在時間主節(jié)點自動 成為當前時間主節(jié)點,實現(xiàn)對故障時間主節(jié)點的容錯。
3、 按照權利要求1或2所述的TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在 于,所述方法首先配置總線通訊波特率,結合應用層通訊協(xié)議和TTCAN協(xié)議,計算一個每 個基本周期BC的長度,確定系統(tǒng)矩陣;然后配置各時間主節(jié)點對應發(fā)送的時鐘同步消息的 發(fā)送周期為BC,作為時間主節(jié)點的ECU比其他節(jié)點ECU多發(fā)送一條時鐘同步消息;最后 根據(jù)系統(tǒng)矩陣對各節(jié)點中央處理器編制程序。
4、 按照權利要求3所述的TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在于, 所述對各節(jié)點中央處理器的程序設計中包括主程序和2個中斷,2個中斷為CAN接收中斷 和時間計數(shù)中斷,CAN接收中斷優(yōu)先級高于時間計數(shù)中斷,并且中斷允許嵌套;各節(jié)點ECU上電后,主程序的控制流程包括-(1) 關閉系統(tǒng)中斷;(2) 初始化CAN總線通訊模塊,包括通訊速率、各接收和發(fā)送緩沖區(qū)的消息;(3) 初始化時鐘計數(shù)模塊,設置時鐘計數(shù)器的頻率,各時間窗時鐘計數(shù)器清零;(4) 標志初始化,包括系統(tǒng)矩陣中各時間窗使能標志、時間主節(jié)點故障標志、時鐘同 步消息發(fā)送使能標志初始化復位;(5) 打開系統(tǒng)中斷,包括CAN模塊接收中斷和時鐘計數(shù)中斷;(6) 判斷當前時間主節(jié)點故障標志,若故障標志置位,則執(zhí)行第(7)步,否則,直接 執(zhí)行第(9)步;(7) 若該節(jié)點為潛在時間主節(jié)點,則執(zhí)行第(8)步,若該節(jié)點不為潛在時間主節(jié)點, 則直接執(zhí)行第(9)步;(8) 若節(jié)點時鐘同步消息的發(fā)送使能標志置位,則以BC為周期發(fā)送時鐘同步消息, 將當前時間主節(jié)點故障標志復位;否則,直接執(zhí)行第(9)步;(9) 若各時間窗使能標志置位,則按照系統(tǒng)矩陣的調度和在相應的時間窗發(fā)送消息幀, 處理接收到的消息幀,操作完成后對各時間窗使能標志復位,回到第(6)步;若各時間窗 使能標志復位,則直接回到第(6)步。
5、按照權利要求4所述的TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,其特征在于, 所述方法的程序設計中包括的CAN接收中斷和時鐘計數(shù)中斷的任務如下CAN接收中斷完成的任務包括將各時鐘計數(shù)器清零;若接收到的消息不是時鐘同步 消息,則將該消息從緩沖區(qū)取出,在主程序中按照應用層協(xié)議要求進行處理;若接收到的消 息是時鐘同步消息,并且該節(jié)點為時間主節(jié)點,則與該節(jié)點發(fā)送的時鐘同步消息的優(yōu)先級進 行比較,如果接收到的消息優(yōu)先級高,則該節(jié)點時鐘同步消息的發(fā)送使能標志復位,該節(jié)點 停止發(fā)送時鐘同步消息,如果接收到的消息優(yōu)先級高等于或小于該節(jié)點時鐘同步消息的優(yōu)先 級,則將該節(jié)點時鐘同步消息的發(fā)送使能標志置位,該節(jié)點允許繼續(xù)發(fā)送時鐘同步消息;時鐘計數(shù)中斷完成的任務包括若節(jié)點不被設置為潛在時間主節(jié)點,則對各消息的發(fā)送 周期計時;若節(jié)點被設置為潛在時間主節(jié)點,則對各消息的發(fā)送周期計時,并將時鐘同步消 息時鐘計數(shù)器的值與基本周期BC進行比較,若時鐘同步消息時鐘計數(shù)器的值超過基本周期 BC長度,則表示時鐘同步消息的傳輸出現(xiàn)故障,即時間主節(jié)點出現(xiàn)故障,將當前時鐘同步 消息的故障標志置位,若時鐘同步消息時鐘計數(shù)器的值小于或等于基本周期BC的長度,則 表示時鐘同步消息的傳輸正常,即時間主節(jié)點正常,將當前時鐘同步消息的故障標志復位。
全文摘要
一種TTCAN總線網(wǎng)絡時間主節(jié)點故障容錯方法,由中央處理器、CAN總線通訊模塊和時鐘計數(shù)模塊構成TTCAN網(wǎng)絡節(jié)點ECU,設置系統(tǒng)上電后的默認時間主節(jié)點和多個潛在時間主節(jié)點,程序寫入中央處理器后,潛在時間主節(jié)點ECU根據(jù)時鐘同步消息的時鐘計數(shù)范圍自動完成對時間主節(jié)點的故障容錯。本發(fā)明在TTCAN網(wǎng)絡中設計的多個潛在時間主節(jié)點和對應的時鐘同步消息,分析潛在時間主節(jié)點ECU的時鐘計數(shù)模塊對時鐘同步消息的時鐘計數(shù)范圍,判定當前時間主節(jié)點的故障,并啟動各潛在時間主節(jié)點,實現(xiàn)對當前時間主節(jié)點的故障容錯,提高了TTCAN網(wǎng)絡時間主節(jié)點的抗故障能力,保證了網(wǎng)絡通訊的可靠性。
文檔編號H04L12/40GK101420350SQ20081022616
公開日2009年4月29日 申請日期2009年1月14日 優(yōu)先權日2009年1月14日
發(fā)明者張志剛, 歡 王, 王麗芳 申請人:中國科學院電工研究所