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