本發(fā)明涉及CAN(Controller Area Network)總線的可靠性設(shè)計。更具體地,涉及一種雙CAN總線的熱冗余控制系統(tǒng)及方法。
背景技術(shù):
目前,隨著總線技術(shù)的應(yīng)用與發(fā)展,CAN總線已經(jīng)成為國內(nèi)導(dǎo)彈測試與控制系統(tǒng)等工業(yè)、軍事控制系統(tǒng)普遍采用的一種控制總線。對于基于CAN總線的工業(yè)、軍事控制系統(tǒng),CAN總線的可靠性直接影響到整個系統(tǒng)的可靠性指標。
對于標準的CAN總線控制總線,其可靠性主要受制于傳輸線路、接口電路、控制電路和控制程序等軟硬件設(shè)計水平。在成熟的軟硬件設(shè)計的前提下,其可靠性難以有更大程度的提高。
因此,需要提供一種雙CAN總線的熱冗余控制系統(tǒng)及方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種雙CAN總線的熱冗余控制系統(tǒng)及方法,解決基于雙CAN總線數(shù)據(jù)交互異常的判定,主、備總線實時切換控制問題,實現(xiàn)基于雙CAN總線控制系統(tǒng)的總線熱冗余,大幅度提高系統(tǒng)控制總線的可靠性,解決工業(yè)、軍事控制系統(tǒng)數(shù)據(jù)交互的可靠性問題。
為達到上述目的,本發(fā)明采用下述技術(shù)方案:
一種雙CAN總線的熱冗余控制系統(tǒng),該系統(tǒng)包括:主控制單元、至少一個從控制單元、第一CAN總線和第二CAN總線;
主控制單元,用于根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),及接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷在約定的最大響應(yīng)時間內(nèi)是否收到該響應(yīng)數(shù)據(jù),若是則繼續(xù)根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),若否則通過第一CAN總線或第二CAN總線中另一總線向該指定的從控制單元發(fā)送控制數(shù)據(jù);
從控制單元,用于接收主控制單元發(fā)送的控制數(shù)據(jù)及通過與主控制單元發(fā)送控制數(shù)據(jù)相同的總線向主控制單元發(fā)送響應(yīng)數(shù)據(jù)。
優(yōu)選地,主控制單元包括:
控制數(shù)據(jù)發(fā)送模塊和響應(yīng)數(shù)據(jù)接收與判斷模塊;
控制數(shù)據(jù)發(fā)送模塊,用于根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),或根據(jù)響應(yīng)數(shù)據(jù)接收與判斷模塊的重新發(fā)送指令通過第一CAN總線或第二CAN總線中另一總線向該指定的從控制單元發(fā)送控制數(shù)據(jù);
響應(yīng)數(shù)據(jù)接收與判斷模塊,用于接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷在約定的最大響應(yīng)時間內(nèi)是否收到響應(yīng)數(shù)據(jù),
若是,則不向控制數(shù)據(jù)發(fā)送模塊發(fā)送指令,控制數(shù)據(jù)發(fā)送模塊繼續(xù)根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),
若否,則向控制數(shù)據(jù)發(fā)送模塊發(fā)送重新發(fā)送指令。
優(yōu)選地,從控制單元包括:
控制數(shù)據(jù)接收模塊和響應(yīng)數(shù)據(jù)發(fā)送模塊;
控制數(shù)據(jù)接收模塊,用于接收主控制單元發(fā)送的控制數(shù)據(jù);
響應(yīng)數(shù)據(jù)發(fā)送模塊,用于在控制數(shù)據(jù)接收模塊接收到控制數(shù)據(jù)時通過與主控制單元發(fā)送控制數(shù)據(jù)相同的總線向主控制單元發(fā)送響應(yīng)數(shù)據(jù)。
優(yōu)選地,約定的最大響應(yīng)時間為1至50ms。
一種上文所述系統(tǒng)的雙CAN總線的熱冗余控制方法,該方法包括如下步驟:
S1、利用主控制單元根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù);
S2、利用從控制單元接收主控制單元發(fā)送的控制數(shù)據(jù)并利用從控制單元在接收到控制數(shù)據(jù)時通過與主控制單元發(fā)送控制數(shù)據(jù)相同的總線向主控制單元發(fā)送響應(yīng)數(shù)據(jù);
S3、利用主控制單元接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷在約定的最大響應(yīng)時間內(nèi)是否收到響應(yīng)數(shù)據(jù),
若是,則轉(zhuǎn)入步驟S1,
若否,則利用主控制單元通過與步驟S1中第一CAN總線或第二CAN總線中任一總線不同的另一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),轉(zhuǎn)入步驟 S2。
優(yōu)選地,步驟S3中約定的最大響應(yīng)時間為1至50ms。
本發(fā)明的有益效果如下:
本發(fā)明所述技術(shù)方案,解決可基于雙CAN總線數(shù)據(jù)交互異常的判定,主、備總線實時切換控制問題,實現(xiàn)了基于雙CAN總線控制系統(tǒng)的總線熱冗余,大幅度提高系統(tǒng)控制總線的可靠性,解決了工業(yè)、軍事控制系統(tǒng)數(shù)據(jù)交互的可靠性問題。
附圖說明
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步詳細的說明。
圖1示出雙CAN總線的熱冗余控制系統(tǒng)示意圖。
圖2示出雙CAN總線的熱冗余控制方法流程圖。
具體實施方式
為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實施例和附圖對本發(fā)明做進一步的說明。附圖中相似的部件以相同的附圖標記進行表示。本領(lǐng)域技術(shù)人員應(yīng)當理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護范圍。
如圖1所示,本實施例提供的雙CAN總線的熱冗余控制系統(tǒng)的數(shù)據(jù)交互采用主從模式,該系統(tǒng)包括:主控制單元、至少一個從控制單元、第一CAN總線和第二CAN總線;
雙CAN控制接口的主控制單元和雙CAN控制接口的從控制單元分別連接入第一CAN總線和第二CAN總線,第一CAN總線和第二CAN總線相互獨立的,互為備份;
主控制單元,用于根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),及接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷在約定的最大響應(yīng)時間內(nèi)是否收到該響應(yīng)數(shù)據(jù),若是則繼續(xù)根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),若否則通過第一CAN總線或第二CAN總線中另一總線向該指定的從控制單元發(fā)送控制數(shù)據(jù),第一CAN總線或第二CAN總線的選擇由主控制單元控制,雙CAN總線的熱冗余控制系統(tǒng)中主控制單元是唯一的;
主控制單元包括:
控制數(shù)據(jù)發(fā)送模塊和響應(yīng)數(shù)據(jù)接收與判斷模塊;
控制數(shù)據(jù)發(fā)送模塊,用于根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),或根據(jù)響應(yīng)數(shù)據(jù)接收與判斷模塊的重新發(fā)送指令通過第一CAN總線或第二CAN總線中另一總線向該指定的從控制單元發(fā)送控制數(shù)據(jù);
響應(yīng)數(shù)據(jù)接收與判斷模塊,用于接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷由控制數(shù)據(jù)發(fā)送模塊向指定的從控制單元發(fā)送控制數(shù)據(jù)起在約定的最大響應(yīng)時間內(nèi)是否收到該響應(yīng)數(shù)據(jù),
若在最大響應(yīng)時間內(nèi)接收到由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),則不向控制數(shù)據(jù)發(fā)送模塊發(fā)送指令,控制數(shù)據(jù)發(fā)送模塊繼續(xù)根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù),
若在最大響應(yīng)時間內(nèi)未能接收到由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),則向控制數(shù)據(jù)發(fā)送模塊發(fā)送重新發(fā)送指令,其中約定的最大響應(yīng)時間是從控制數(shù)據(jù)發(fā)送模塊向指定的從控制單元發(fā)送控制數(shù)據(jù)開始計時,約定的最大響應(yīng)時間的限定范圍依據(jù)雙CAN總線的熱冗余控制系統(tǒng)對控制總線的實時性需求進行設(shè)定,本實施例中設(shè)定為1~50ms;
從控制單元,用于被動接收和響應(yīng)主控制單元發(fā)出的數(shù)據(jù)交互要求,從控制單元響應(yīng)主控制單元所使用的總線必須與主控制單元發(fā)送數(shù)據(jù)信息所使用的總線一致,雙CAN總線的熱冗余控制系統(tǒng)中至少有一個從控制單元,從控制單元只能接收主控制單元發(fā)出的控制數(shù)據(jù)及作出響應(yīng);
從控制單元包括:
控制數(shù)據(jù)接收模塊和響應(yīng)數(shù)據(jù)發(fā)送模塊;
控制數(shù)據(jù)接收模塊,用于接收主控制單元發(fā)送的控制數(shù)據(jù);
響應(yīng)數(shù)據(jù)發(fā)送模塊,用于在控制數(shù)據(jù)接收模塊接收到控制數(shù)據(jù)時通過與主控制單元發(fā)送控制數(shù)據(jù)相同的總線向主控制單元發(fā)送響應(yīng)數(shù)據(jù)。
如圖2所示,本實施例提供的雙CAN總線的熱冗余控制方法包括如下步驟:
Step1、利用主控制單元分別通過第一CAN總線和第二CAN總線發(fā)起對所有從控制單元的數(shù)據(jù)交換通道檢查,檢查正常后采用第一CAN總線或第二CAN總線中任一總線進行數(shù)據(jù)交互;
Step2、利用主控制單元的控制數(shù)據(jù)發(fā)送模塊根據(jù)雙CAN總線的熱冗余控制系統(tǒng)的指令通過第一CAN總線或第二CAN總線中任一總線向指定的從控制單元發(fā)送控制數(shù)據(jù);
Step3、利用從控制單元的控制數(shù)據(jù)接收模塊接收主控制單元發(fā)送的控制數(shù)據(jù)并利用從控制單元的響應(yīng)數(shù)據(jù)發(fā)送模塊在控制數(shù)據(jù)接收模塊接收到控制數(shù)據(jù)時通過與控制數(shù)據(jù)發(fā)送模塊發(fā)送控制數(shù)據(jù)相同的總線向主控制單元發(fā)送響應(yīng)數(shù)據(jù);
Step4、利用主控制單元的響應(yīng)數(shù)據(jù)接收與判斷模塊接收由指定的從控制單元發(fā)送的響應(yīng)數(shù)據(jù),并判斷由主控制單元的控制數(shù)據(jù)發(fā)送模塊向指定的從控制單元發(fā)送控制數(shù)據(jù)起在約定的最大響應(yīng)時間內(nèi)是否收到該響應(yīng)數(shù)據(jù),
若是,則轉(zhuǎn)入步驟Step2,
若否,則利用主控制單元的響應(yīng)數(shù)據(jù)接收與判斷模塊向控制數(shù)據(jù)發(fā)送模塊發(fā)送重新發(fā)送指令;
Step5、利用主控制單元的控制數(shù)據(jù)發(fā)送模塊根據(jù)響應(yīng)數(shù)據(jù)接收與判斷模塊的重新發(fā)送指令通過與步驟Step2中第一CAN總線或第二CAN總線中任一總線不同的另一總線向該指定的從控制單元發(fā)送控制數(shù)據(jù),轉(zhuǎn)入步驟Step3。
其中
步驟Step4中約定的最大響應(yīng)時間是從控制數(shù)據(jù)發(fā)送模塊向指定的從控制單元發(fā)送控制數(shù)據(jù)開始計時,約定的最大響應(yīng)時間的限定范圍依據(jù)雙CAN總線的熱冗余控制系統(tǒng)對控制總線的實時性需求進行設(shè)定,本實施例中設(shè)定為1~50ms。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定,對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動,這里無法對所有的實施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動仍處于本發(fā)明的保護范圍之列。