專利名稱::一種雙余度can總線的網(wǎng)絡控制方法
技術領域:
:本發(fā)明涉及一種雙余度CAN(控制器局域網(wǎng))總線的網(wǎng)絡控制方法,它用于提高機電控制領域CAN總線應用的可靠性,屬航空電子和空間
技術領域:
。二
背景技術:
:綜合考慮傳輸速率、可靠性、應用成本等因素,成熟的CAN總線技術已逐步在飛行器設計尤其是無人機應用中得到認可?;镜腃AN協(xié)議由于采用短幀格式、非破壞性位仲裁技術以及CRC(循環(huán)冗余校驗)校驗和幀內(nèi)應答等檢錯措施,極大地保證了消息傳輸?shù)恼_性與可靠性。但是,與普通的工業(yè)應用不同,航空航天領域?qū)φ麄€系統(tǒng)的可靠性有著更高的要求,而實際應用中總線驅(qū)動器或控制器的異常,傳輸介質(zhì)的損壞及環(huán)境的干擾等都會整個總線網(wǎng)絡產(chǎn)生影響。因此,要滿足長時間可靠運行的要求,采用余度設計是必要的。由于CAN的成熟應用,目前已有多款帶2個CAN通道的微控制器可以選用,硬件基礎比較完善。本發(fā)明從系統(tǒng)設計出發(fā),旨在解決CAN總線應用層的錯誤檢測及冗余機制實現(xiàn)問題。
發(fā)明內(nèi)容1、目的本發(fā)明的目的是提供一種雙余度CAN總線的網(wǎng)絡控制方法,它綜合考慮了設計對象的特點和現(xiàn)有的技術條件,避免因單個節(jié)點錯誤或部分介質(zhì)故障而導致整個網(wǎng)絡癱瘓的情況發(fā)生,提出了一套基于雙余度CAN總線的錯誤檢測和故障處理方法,用于提高全系統(tǒng)的可靠性。2、技術方案典型航電系統(tǒng)雙余度CAN總線網(wǎng)絡的基本組成如圖l所示。雖然CAN總線本身為多主工作方式,各節(jié)點不分主從,但實際應用中一般會有一部或多部機載計算機作為主控節(jié)點,通過測量裝置讀取信息,同時發(fā)送指令控制執(zhí)行裝置;而測量裝置和執(zhí)行裝置主要是被動的執(zhí)行指令,互相之間無直接聯(lián)系,這就為實現(xiàn)整個網(wǎng)絡的集中控制提供了可能。另外,為了保證系統(tǒng)通信一致,規(guī)4定如下原則(1)一般情況下,同一時刻只能利用一條通道,避免交叉使用,以保證各節(jié)點能共享總線上的數(shù)據(jù);(2)系統(tǒng)穩(wěn)定運行時只有一個主控節(jié)點,用于對網(wǎng)絡的檢測情況進行匯總,決定是否進行通道切換等。為了實現(xiàn)全系統(tǒng)的分布控制與集中管理,在不改變硬件的條件下,這里將全部網(wǎng)絡節(jié)點劃分為主控節(jié)點和一般節(jié)點。一般節(jié)點要完成通信錯誤檢測和上報的功能,主控節(jié)點除了自身錯誤檢測之外還要對全系統(tǒng)的錯誤進行匯總,以決定是否進行通道切換和隔離部分異常節(jié)點等。本發(fā)明一種雙余度CAN總線的網(wǎng)絡控制方法,具體步驟如下-步驟一系統(tǒng)上電及節(jié)點初始化各節(jié)點設備按照相應的操作程序分別上電,并啟動上電自檢。由于CAN總線系統(tǒng)是分布式結(jié)構(gòu),所以此過程由各節(jié)點按照自身要求分別獨立完成。對于節(jié)點內(nèi)部CAN控制器的初始化要求是兩路CAN總線以熱冗余方式工作,即各兩個CAN控制器都處于熱備份狀態(tài),經(jīng)初始化后都隨時準備接收信息。步驟二系統(tǒng)初始化檢測各節(jié)點上電自檢完成后,要求全系統(tǒng)進行檢測以確認狀態(tài),該過程由主控節(jié)點的上電檢測程序控制完成。主控節(jié)點發(fā)送檢測報文查詢各節(jié)點的狀態(tài),兩路CAN總線依次進行,以確定系統(tǒng)連接狀態(tài)。如果各節(jié)點連接均正常,通信無誤,則繼續(xù)執(zhí)行下一步;否則,主控節(jié)點將檢測到的異常情況上報,由操作人員進行決策,忽略錯誤繼續(xù)執(zhí)行或排除故障后再進行重啟等操作。步驟三正常工作及周期檢測初始化檢測通過后,系統(tǒng)正常工作開始。在完成相應功能的同時,各節(jié)點周期檢測CAN總線通信情況,并將檢測結(jié)果上報給主控節(jié)點。為了保證故障檢測的完整性,根據(jù)CAN總線的結(jié)構(gòu)特點,這里對錯誤進行了分類,以便于針對不同錯誤情況進行處理。在CAN總線系統(tǒng)中,從單個節(jié)點的角度,所有錯誤可以分為主動錯誤和被動錯誤。前者是由于節(jié)點自身故障引起的,而后者則是由于其他節(jié)點故障或通信介質(zhì)故障使本節(jié)點的功能受到影響。5主動錯誤和被動錯誤中他節(jié)點故障均可以通過節(jié)點行為來檢測,而對于通信介質(zhì)故障這里通過CAN控制器錯誤計數(shù)進行間接判斷。一般情況下,CAN控制器可以對發(fā)送和接收錯誤進行計數(shù),根據(jù)錯誤計數(shù)所處范圍,CAN2.0協(xié)議中規(guī)定節(jié)點處于下面三種狀態(tài)之一錯誤激活態(tài)、忽略錯誤態(tài)、脫離總線態(tài)。另外,當錯誤計數(shù)數(shù)值大于96時,說明總線被嚴重干擾,因此這里多規(guī)定一種警告態(tài)。通過CAN控制器狀態(tài)異常,可以界定一些經(jīng)驗性的通信介質(zhì)故障。步驟四系統(tǒng)運行中異常處理系統(tǒng)運行過程中如果檢測到工作異常,則根據(jù)節(jié)點的權限及錯誤類型不同進行分別處理。為了避免對總線系統(tǒng)其他部分的影響,各節(jié)點對于自身主動錯誤要及時進行隔離處理,而對于被動錯誤,一般節(jié)點不進行主動干涉。所有錯誤要求通過CAN報文匯總到主控節(jié)點,由其決定是否進行通道切換或系統(tǒng)降級處理等操作,并通過控制報文通知其他節(jié)點。步驟五主備通道切換后處理如果進行了主備CAN通道切換操作,則各節(jié)點對原通道復位。主控節(jié)點在一個系統(tǒng)周期內(nèi)可根據(jù)各節(jié)點通信情況判斷當前通道工作是否正常如果功能正常,則使用當前通道,原通道作為備用通道;如果通信仍有問題,則要求主控節(jié)點綜合判斷兩通道的連接情況,根據(jù)各節(jié)點優(yōu)先級情況進行系統(tǒng)降級處理。比較方式可以采用基于優(yōu)先級的比較算法,如圖3所示。具體做法是用二進制量分別表示兩路CAN通道的連接狀態(tài),而將CAN總線網(wǎng)絡的所有節(jié)點按照功能重要程度從高位到低位排列,每一位表示相應節(jié)點(或多個功能密切的節(jié)點單元組)的連接是否正常,正常則置零,非正常則置l。如此比較兩個二進制量的大小,則可以按照盡可能保證系統(tǒng)主要功能的要求選擇CAN通道。3、優(yōu)點及功效本發(fā)明一種雙余度CAN總線的網(wǎng)絡控制方法,與現(xiàn)有技術相比,其優(yōu)點是可以充分利用成熟的CAN器件構(gòu)建雙余度總線網(wǎng)絡,而通過應用軟件進行錯誤檢測及規(guī)定不同節(jié)點的控制權限,實現(xiàn)分布式監(jiān)測與集中管理的網(wǎng)絡控制策略。同時提供了詳細的CAN總線系統(tǒng)的故障檢測方法,對不同的錯誤進行分類處理,易于編程實現(xiàn),通用性強。該方法在不改變硬件設計的條件下提高6了CAN總線系統(tǒng)的容錯能力,可以充分利用冗余機制保證系統(tǒng)可靠性。四圖1是典型航電系統(tǒng)的雙余度CAN總線網(wǎng)絡拓撲結(jié)構(gòu)示意圖圖2是CAN控制器的冗余結(jié)構(gòu)示意圖圖3是基于優(yōu)先級的兩CAN通道連接狀態(tài)比較圖圖4是本發(fā)明控制過程流程圖圖中符號說明如下H高電位;.L低電位;TXD發(fā)送器;RXD接收器。五具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式做進一步說明。本發(fā)明的應用環(huán)境是基于CAN總線的分布式控制網(wǎng)絡,寞基本組成如圖1所示,包括主控節(jié)點及一系列測量裝置和執(zhí)行裝置。各節(jié)點均為可編程智能節(jié)點,具有自檢功能。各設備之間通過雙余度CAN總線連接,節(jié)點采用圖2所示的控制器冗余設計,單片機(或其他微處理器)通過不同的端口和中斷同時控制兩個CAN控制器。CAN控制器支持可讀/寫訪問錯誤計數(shù)、錯誤報警限額寄存器可編程、CAN總線錯誤中斷等擴展功能。本發(fā)明一種雙余度CAN總線的網(wǎng)絡控制方法,其節(jié)點的基本結(jié)構(gòu)如圖2所示,采用CAN控制器冗余設計。典型的CAN總線可分為4個環(huán)節(jié),即CPU、CAN總線控制器、CAN總線驅(qū)動器、傳輸介質(zhì),相應的冗余措施有CAN總線驅(qū)動器的冗余,CAN總線控制器的冗余,以及全系統(tǒng)冗余。其中前兩種僅是CAN總線通道的冗余,屬于部分冗余,而全系統(tǒng)冗余則包括節(jié)點設備的冗余。全系統(tǒng)冗余固然可靠,但是考慮無人機的成本與重量要求,不可能實現(xiàn)所有設備的冗余。因此,這里采用CAN總線控制器冗余設計,即同時使用兩條CAN總線,兩個CAN總線驅(qū)動器和兩個CAN總線控制器,單片機(或其他微處理器)通過不同的端口和中斷同時控制兩個CAN控制器。本發(fā)明的具體控制過程即具體操作步驟如下步驟一系統(tǒng)上電及節(jié)點初始化系統(tǒng)上電,各節(jié)點均進行自檢,等待主控節(jié)點指令。兩套CAN總線采用熱備份方式運行一個CAN控制器作為系統(tǒng)上電后默認的CAN(主CAN);另一個為備用CAN(從CAN),作為主CAN的冗余。各節(jié)點初始化完成后,兩個CAN控制器都處于熱備份狀態(tài),隨時準備接收信息,但對于占用信道的操作(發(fā)送消息)則只能由一個CAN控制器執(zhí)行。換言之,在一個時間點上,系統(tǒng)中僅有一路CAN通道在工作,另一路處于監(jiān)聽狀態(tài)(正常工作時),或故障狀態(tài)(發(fā)生故障時)。步驟二系統(tǒng)初始化檢測各節(jié)點啟動后,由主控節(jié)點檢測兩路CAN總線的連接情況即由主控節(jié)點發(fā)送檢測報文,其他節(jié)點分別回復自身狀態(tài),以此來確定全系統(tǒng)通信功能是否正常。檢測指令有兩種——廣播檢測(適用于所有節(jié)點)和定點檢測(針對指定節(jié)點),由標識符進行區(qū)分。主控節(jié)點先發(fā)送廣播檢測報文,要求一般節(jié)點在規(guī)定時間內(nèi)進行響應。對于超時未響應的節(jié)點,主控節(jié)點可再發(fā)送定點檢測報文進行確認。如果有必要,該檢測結(jié)果要上報給操作人員,進行故障排除或?qū)ο乱徊讲僮鬟M行決策。步驟三正常工作及周期檢測系統(tǒng)檢測通過后,開始正常工作,同時要求各節(jié)點周期檢測CAN總線通信情況,并將狀態(tài)字通過周期消息匯總到主控節(jié)點,由主控節(jié)點進行綜合判斷與決策。根據(jù)CAN總線的結(jié)構(gòu)特點,這里對錯誤進行了分類,以便于針對不同錯誤情況進行處理。在CAN總線系統(tǒng)中,從單個節(jié)點的角度,所有錯誤可以分為主動錯誤和被動錯誤。前者是由于節(jié)點自身故障引起的,而后者則是由于其他節(jié)點故障或通信介質(zhì)故障使本節(jié)點的功能受到影響。不同錯誤的檢測方法如表l所示。表1錯誤分類及檢測<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>主動錯誤檢測主要通過節(jié)點內(nèi)部自檢實現(xiàn),而其他節(jié)點故障也可以通過節(jié)點行為來判斷,但對于通信介質(zhì)故障則難以找到實用的衡量準則。這里以CAN控制器錯誤計數(shù)為判據(jù),可以界定一些經(jīng)驗性的通信介質(zhì)異常。一般情況下,CAN控制器可以對發(fā)送和接收錯誤進行計數(shù),根據(jù)錯誤計數(shù)所處范圍,CAN2.0協(xié)議中規(guī)定節(jié)點處于下面三種狀態(tài)之一錯誤激活態(tài)、忽略錯誤態(tài)、脫離總線態(tài)。其中錯誤激活態(tài)和忽略錯誤態(tài)仍可參與總線通信,脫離總線態(tài)則不允許單元對總線有任何影響。另外,當錯誤計數(shù)數(shù)值大于96時,說明總線被嚴重干擾,因此這里多規(guī)定一種警告態(tài)。每種錯誤狀態(tài)均會產(chǎn)生相應中斷通知CPU進行處理。錯誤狀態(tài)的具體劃分見表2。表2CAN控制器錯誤狀態(tài)<table>tableseeoriginaldocumentpage9</column></row><table>步驟四系統(tǒng)運行中異常處理如果通信異常,則根據(jù)節(jié)點的權限不同進行相應處理。本系統(tǒng)將所有節(jié)點分為主控節(jié)點和一般節(jié)點,不同類型的節(jié)點有不同的權限,因而錯誤檢測及處理的要求不同。1.對于一般節(jié)點,要將檢測到的錯誤及時上報給主控節(jié)點,對于主動錯誤要及時進行故障隔離和復位等操作,而對于被動錯誤則不主動干涉,根據(jù)主控節(jié)點的指令進行處理。具體錯誤分類及處理見表3。表3—般節(jié)點錯誤處理<table>tableseeoriginaldocumentpage10</column></row><table>2.對于主控節(jié)點,要求對所有有關CAN通信的錯誤情況進行處理,及時進行通道切換及系統(tǒng)降級處理等操作,詳見表4。10表5主控節(jié)點錯誤處理<table>tableseeoriginaldocumentpage11</column></row><table>步驟五主備通道切換后處理如果主通道出現(xiàn)異常導致系統(tǒng)切換到備用通道,則各節(jié)點要對原通道進行復位。此后主控節(jié)點在一個系統(tǒng)周期內(nèi)根據(jù)各節(jié)點通信情況判斷系統(tǒng)功能是否正常。如果可以完成正常通信則使用當前通道作為主通道,原通道作為備用通道;如果仍有問題,則需要同原通道的錯誤狀態(tài)進行比較,擇其優(yōu)者進行降級處理,比較方式可以采用基于優(yōu)先級的比較算法,如圖3所示。具體做法是用二進制量分別表示兩路CAN通道的連接狀態(tài),而將CAN總線網(wǎng)絡的所有節(jié)點按照功能重要程度從高位到低位排列,每一位表示相應節(jié)點(或多個功能密切的節(jié)點單元組)的連接是否正常,正常則置零,非正常則置l。如此比較兩個二進制量的大小,則可以按照盡可能保證系統(tǒng)主要功能的要求選擇CAN通道。圖4是本發(fā)明控制過程流程圖,表示各步驟工作程序。權利要求1、一種雙余度CAN總線的網(wǎng)絡控制方法,其特征在于該方法具體步驟如下步驟一系統(tǒng)上電及節(jié)點初始化各節(jié)點設備按照相應的操作程序分別上電,并啟動上電自檢;因CAN總線系統(tǒng)是分布式結(jié)構(gòu),所以此過程由各節(jié)點按照自身要求分別獨立完成;對于節(jié)點內(nèi)部CAN控制器的初始化要求是兩路CAN總線以熱冗余方式工作,即各兩個CAN控制器都處于熱備份狀態(tài),經(jīng)初始化后都隨時準備接收信息;步驟二系統(tǒng)初始化檢測各節(jié)點上電自檢完成后,要求全系統(tǒng)進行檢測以確認狀態(tài),該過程由主控節(jié)點的上電檢測程序控制完成;主控節(jié)點發(fā)送檢測報文查詢各節(jié)點的狀態(tài),兩路CAN總線依次進行,以確定系統(tǒng)連接狀態(tài);如果各節(jié)點連接均正常,通信無誤,則繼續(xù)執(zhí)行下一步;否則,主控節(jié)點將檢測到的異常情況上報,由操作人員進行決策,忽略錯誤繼續(xù)執(zhí)行及排除故障后再進行重啟操作;步驟三正常工作及周期檢測初始化檢測通過后,系統(tǒng)正常工作開始;在完成相應功能的同時,各節(jié)點周期檢測CAN總線通信情況,并將檢測結(jié)果上報給主控節(jié)點;為了保證故障檢測的完整性,這里對錯誤進行了分類,即分為主動錯誤和被動錯誤,前者是由于節(jié)點自身故障引起的,而后者則是由于其他節(jié)點故障、通信介質(zhì)故障使本節(jié)點的功能受到影響;主動錯誤和被動錯誤中他節(jié)點故障均可以通過節(jié)點行為來檢測,而對于通信介質(zhì)故障這里通過CAN控制器錯誤計數(shù)進行間接判斷,根據(jù)錯誤計數(shù)所處范圍,CAN2.0協(xié)議中規(guī)定節(jié)點處于下面三種狀態(tài)之一錯誤激活態(tài)、忽略錯誤態(tài)、脫離總線態(tài);當錯誤計數(shù)數(shù)值大于96時,說明總線被嚴重干擾,因此這里多規(guī)定一種警告態(tài);通過CAN控制器狀態(tài)異常,可以界定其通信介質(zhì)故障;步驟四系統(tǒng)運行中異常處理系統(tǒng)運行過程中如果檢測到工作異常,則根據(jù)節(jié)點的權限及錯誤類型不同進行分別處理;為了避免對總線系統(tǒng)其他部分的影響,各節(jié)點對于自身主動錯誤要及時進行隔離處理,而對于被動錯誤,一般節(jié)點不進行主動干涉;所有錯誤要求通過CAN報文匯總到主控節(jié)點,由其決定是否進行通道切換、系統(tǒng)降級處理操作,并通過控制報文通知其他節(jié)點;步驟五主備通道切換后處理如果進行了主備CAN通道切換操作,則各節(jié)點對原通道復位;主控節(jié)點在一個系統(tǒng)周期內(nèi)可根據(jù)各節(jié)點通信情況判斷當前通道工作是否正常如果功能正常,則使用當前通道,原通道作為備用通道;如果通信仍有問題,則要求主控節(jié)點綜合判斷兩通道的連接情況,根據(jù)各節(jié)點優(yōu)先級情況進行系統(tǒng)降級處理;比較方式可以采用基于優(yōu)先級的比較算法,具體做法是用二進制量分別表示兩路CAN通道的連接狀態(tài),而將CAN總線網(wǎng)絡的所有節(jié)點按照功能重要程度從高位到低位排列,每一位表示相應節(jié)點、多個功能密切的節(jié)點單元組的連接是否正常,正常則置零,非正常則置1;如此比較兩個二進制量的大小,按照盡可能保證系統(tǒng)主要功能的要求選擇CAN通道。全文摘要本發(fā)明提供一種雙余度CAN總線的網(wǎng)絡控制方法,它有五大步驟步驟一系統(tǒng)上電及節(jié)點初始化;步驟二系統(tǒng)初始化檢測;步驟三正常工作及周期檢測;步驟四系統(tǒng)運行中異常處理;步驟五主備通道切換后處理。該方法充分利用成熟的CAN器件構(gòu)建雙余度總線網(wǎng)絡,并通過應用軟件進行錯誤檢測及規(guī)定不同節(jié)點的控制權限,實現(xiàn)分布式監(jiān)測與集中管理的網(wǎng)絡控制策略,同時它提供了詳細的CAN總線系統(tǒng)的故障檢測方法,對不同的錯誤進行分類處理,易于編程實現(xiàn),通用性強。本發(fā)明在不改變硬件設計的條件下提高了CAN總線系統(tǒng)的容錯能力,充分利用冗余機制保證系統(tǒng)可靠性;它在機電控制領域具有廣泛的實用價值和應用前景。文檔編號H04L12/40GK101631057SQ20091009128公開日2010年1月20日申請日期2009年8月17日優(yōu)先權日2009年8月17日發(fā)明者呂明云,姜光泰,明祝,鄭澤偉申請人:北京航空航天大學