本發明屬于航空電子控制技術領域,具體涉及一種基于CAN線刷新冗余控制器的方法。
背景技術:
發動機控制器代碼或數據的刷新一般是外部數據刷寫工具通過ECU通信網絡(目前多為CAN總線),向ECU發送數據信息,實現ECU數據的管理和更新。
在控制器開發階段,調試工具可以通過特定接口例如JTAG口直接連接控制器電路板進行刷新,無需通過外部刷新工具刷新控制器,在控制器試驗階段,復雜的試驗環境有可能干擾信號和損壞控制器電路板,所以控制器電路板被固定在封閉外殼內,這種情況下無法通過特定接口直接刷新控制器電路板,只能通過外部數據刷新工具對控制器的程序或數據進行更新。在控制器售后階段,從成本上考慮控制器電路板不包含特定調試接口,與試驗階段情況類似,只能使用外部刷新工具刷新控制器程序。
航空發動機因為其行業特殊性,有很高的安全性能需求和標準要求,所以硬件上一般采用冗余控制器的方法提高控制系統安全性,但是控制器的刷新一般刷新時間過長,刷新效率較低,并且不同控制器的刷新模式不易重用,影響控制器的開發和試驗階段進度,也提高售后控制器數據更新的校驗和檢查難度。
技術實現要素:
根據以上現有技術的不足,本發明所要解決的技術問題是提出一種基于CAN線的刷新冗余控制器的辦法,這種刷新辦法通過CAN線對數據塊編碼的特點設計不同的刷新模式刷新冗余控制器內部某個或所有控制單元,采用ISO14229中標準的診斷服務設計刷新控制流程,從而縮短冗余控制器的刷新時間,提高刷新效率,保證刷新數據的完整性,并且適用于所有包含CAN接口的冗余控制器的刷新,有極高的適用性,提高控制器開發效率,加快控制器開發和試驗進度,并且在售后階段提供可靠的控制數據更新。
為了解決上述技術問題,本發明采用的技術方案為:一種基于CAN線刷新冗余控制器的方法,該方法基于CAN網絡,CAN網絡包括外部刷新設備和冗余控制器,所述外部刷新設備包括代碼數據處理單元和外部刷新設備控制單元;代碼數據處理單元用于加載并解析代碼數據,外部刷新設備控制單元用于建立刷新網絡和控制刷新流程,冗余控制器的引導程序接收代碼數據并寫入控制單元內部的FLASH中。所述外部刷新設備包括代碼數據單元和外部刷新設備控制單元;代碼數據單元加載解析代碼和數據,然后發送給外部刷新設備控制單元,外部刷新設備控制單元的引導程序接收代碼和數據寫入控制單元內部的FLASH中。所述外部刷新設備通過CANBUS設備連接到CAN網絡,冗余控制器內部的控制單元通過芯片上CAN電路接口連接到CAN網絡中,冗余控制器內設有控制器EAU_A和控制器EAU_B。控制器EAU_A和控制器EAU_B之間交互通過CAN接口連接。該方法首先進行刷新連接,在控制器刷新前,先建立整個刷新網絡,外部刷新設備通過CANBUS設備與冗余控制器CAN接口連接組成一個刷新CAN網絡。該方法通過切換診斷會話服務來建立外部刷新設備和冗余控制器的通訊連接,切換診斷會話服務中包含選擇刷新目標的CANID信息,當控制單元響應診斷服務,則建立通訊連接,根據選擇的刷新目標自動選擇同步或異步刷新模式。該方法如果選擇單個控制單元作為刷新目標即使用異步刷新模式,控制器內部每個控制單元都設定了不同的發送消息和接收消息的CANID,CANIDA_R是控制單元EAU_A的接收消息CANID,外部刷新設備通過CANIDA_R選擇控制單元EAU_A為刷新目標;CANIDA_T為控制單元EAU_A的發送消息CANID,控制單元EAU_A通過CANIDA_T向外部刷新工具反饋刷新狀態;CANIDB_R和CANIDB_T分別是控制單元EAU_B的接收和發送消息的CANID,控制單元EAU_B通過這兩個CANID與外部刷新工具進行交互。該方法如果選擇所有控制單元作為刷新目標即使用同步刷新模式,控制器內每個控制單元都包含不同的發送消息的CANID,CANIDA_T和CANIDAB_T為控制單元各自的發送消息CANID;而CANID_R為所有控制單元相同的接收消息CANID,外部刷新設備通過包含CANID_R的診斷服務同時向所有控制單元發送刷新請求和控制刷新流程,而各控制單元利用不同的發送消息CANID分別對外部刷新設備進行響應。所述外部刷新設備和控制單元的通信以客戶機-服務器的方式進行。
本發明有益效果是:本發明通過CAN線對數據塊編碼的特點設計不同的刷新模式刷新冗余控制器內部某個或所有控制單元,采用ISO14229中標準的診斷服務設計刷新控制流程,從而縮短冗余控制器的刷新時間,提高刷新效率,保證刷新數據的完整性,并且適用于所有包含CAN接口的冗余控制器的刷新,有極高的適用性,提高控制器開發效率,加快控制器開發和試驗進度,并且在售后階段提供可靠的控制數據更新。
附圖說明
下面對本說明書附圖所表達的內容及圖中的標記作簡要說明:
圖1是本發明的具體實施方式的刷新網絡結構圖。
圖2是本發明的具體實施方式的異步刷新原理圖。
圖3是本發明的具體實施方式的同步刷新原理圖。
圖4是本發明的具體實施方式的刷新控制流程圖。
具體實施方式
下面對照附圖,通過對實施例的描述,本發明的具體實施方式如所涉及的各構件的形狀、構造、各部分之間的相互位置及連接關系、各部分的作用及工作原理、制造工藝及操作使用方法等,作進一步詳細的說明,以幫助本領域技術人員對本發明的發明構思、技術方案有更完整、準確和深入的理解。
特征1:刷新的網絡組成
本發明中外部刷新設備和冗余控制器組成一個CAN網絡,網絡內包含外部刷新設備和冗余控制器內部控制單元的各個節點,外部刷新設備加載和解析代碼和數據然后發送給控制單元節點,控制單元的引導程序接收代碼和數據寫入控制單元內部的FLASH中。網絡組成如圖1所示。圖例中外部刷新設備通過CANBUS設備連接到CAN網絡,冗余控制器內部的控制單元通過芯片上CAN電路接口連接到CAN網絡中。圖中1表示組成刷新CAN網絡的三個節點,如果控制單元之間交互的2也是通過CAN接口連接,雖然可能也屬于刷新網絡中的節點,但是刷新過程中會屏蔽這些節點。
特征2:刷新的模式選擇
本發明的刷新模式包含異步刷新和同步刷新兩種模式,區別在于刷新目標的選擇以及刷新控制單元的次序和不同的刷新時間。
本發明中使用包含CANID的通訊數據來建立外部刷新工具和冗余控制器中的控制單元之間的通訊連接,即通過CANID來選擇刷新目標。
在異步刷新模式下,冗余控制器中的每個控制單元都有唯一的接收消息CANID,外部刷新工具通過這個CANID來選擇控制器中待刷新的控制單元,即選擇這個控制單元為刷新目標,如圖2所示。在這種模式下,刷新工具每次只能選擇某個控制單元作為刷新目標,所以它的刷新方案是依次刷新所有控制單元。異步刷新方案的刷新次數取決于冗余控制器內部包含的控制單元的數量,刷新時間是單個刷新控制單元的時間與控制單元數量的乘積。
在同步刷新模式下,冗余控制器中所有控制單元都有一個相同的接收消息CANID,外部刷新工具通過發送包含這個CANID信息的連接通訊與所有控制單元建立通訊連接,即選擇冗余控制器中所有控制單元為刷新目標,如圖3所示。在這種模式下,刷新工具可以同時選擇所有的控制單元作為刷新目標,控制單元只和外部刷新工具進行交互,控制單元之間不進行交互,所有的控制單元可以同時刷新完成,因此同步刷新方案只刷新一次,刷新時間和刷新一個控制單元的時間相同,而與控制單元的數量無關。
另外在同步刷新模式下,如此出現控制單元刷新失敗,則外部刷新工具繼續刷新其他控制單元,刷新完畢之后可以采用異步刷新來選擇刷新失敗的控制單元重新刷新,這種設計保證了刷新的效率以及刷新的可靠性。
特征3:刷新控制流程
刷新流程控制是外部刷新設備與控制單元進行交互的過程和步驟,刷新流程一旦確定下來就被固化在外部刷新設備和控制單元的引導程序中,一般由外部刷新設備來發起整個刷新流程,而引導程序根據刷新流程反饋刷新流程的狀態。為了通用性和標準化,以及可擴展性,本發明使用標準的IS014229協議中的定義的診斷服務來實現和規劃整個刷新流程,具體的刷新流程如圖4所示,這種控制流程能夠保證整個刷新流程的穩定性,以及提供校驗手段保證控制器刷新數據的完整性。本發明使用的ISO14229協議中的診斷服務如表1所示。刷新控制流程中控制流程流轉的診斷服務作用描述如下:
√通過切換診斷會話服務選擇刷新目標和模式。
√通過安全訪問服務提高刷新安全標準。
√通過故障碼設置服務防止故障誤報。
√通過通訊控制服務禁止控制單元的交互。
√通過例行程序服務擦寫控制單元FLASH空間。
√通過寫數據服務存儲指紋信息。
√通過數據下載,數據傳輸和退出下載服務完成整個控制單元的刷新。
√通過例行程序服務來校驗控制單元中刷新數據的完整性。
√通過復位服務來完成整個刷新過程。
表1刷新診斷服務列表
(1)√表示只在編程會話下支持該服務,N/A表示其他會話下也支持該服務。
(2)√表示該診斷服務在安全訪問解鎖下支持,N/A表示安全訪問是否解鎖都支持該服務。
一、刷新連接
控制器刷新前提是建立整個刷新網絡,外部刷新設備或者PC上位機通過CANBUS設備與控制單元的CAN接口連接組成一個刷新CAN網絡,連接方式見圖1。
二、刷新目標和刷新模式選擇
本發明使用ISO14229中的切換診斷會話服務來建立外部刷新設備和控制單元的通訊連接,切換診斷會話服務中包含選擇刷新目標的CANID信息,當控制單元響應診斷服務,則建立通訊連接,即刷新目標被選擇。并且根據選擇的刷新目標自動選擇同步或異步刷新模式。
如果選擇單個控制單元作為刷新目標即使用異步刷新模式,如圖2所示,控制器內部每個控制單元都設定了不同的發送消息和接收消息的CANID,圖中CANIDA_R是控制單元A的接收消息CANID,外部刷新設備通過CANIDA_R選擇控制單元A為刷新目標。圖中CANIDA_T為控制單元A的發送消息CANID,控制單元A通過CANIDA_T向外部刷新工具反饋刷新狀態。而CANIDB_R和CANIDB_T分別是控制單元B的接收和發送消息的CANID,控制單元B通過這兩個CANID與外部刷新工具進行交互。
異步刷新步驟如下:
1)首先選擇刷新控制單元A,刷新工具發送包含CANIDA_R的診斷服務。
控制單元ECU_A在接收到包含CANIDA_R的診斷服務后,ECU_A進入控制單元的引導
程序,進行對ECU_A應用程序的更新。
2)然后選擇另一個控制器,刷新工具發送包含CANIDB_R的診斷服務。
控制單元ECU_B在接收到包含CANIDB_R的診斷服務后,ECU_B進入控制單元引導程
序,進行對ECU_B應用程序的更新。
如果選擇所有控制單元作為刷新目標即使用同步刷新模式,如圖3所示,控制器內每個控制單元都包含不同的發送消息的CANID,CANIDA_T和CANIDAB_T為控制單元各自的發送消息CANID。,而CANID_R為所有控制單元相同的接收消息CANID,
外部刷新設備通過包含CANID_R的診斷服務同時向所有控制單元發送刷新請求和控制刷新流程,而各控制單元利用不同的發送消息CANID分別對外部刷新設備進行響應,便于外部刷新設備判斷每個控制單元的狀態。
同步刷新步驟如下:
1.首先,外部刷新工具包含CANID_R的診斷服務。
控制單元A在接收到包含CANID_R的診斷服務后,ECU_A進入引導程序,準備對ECU_A應用程序進行更新。
控制單元B在接收到包含CANID_R的診斷服務后,ECU_B進入引導程序,準備對ECU_B應用程序進行更新。
2.刷新工具收到CAN ID為CANIDA_T(ECU_A的響應)和CANIDAB_T(ECU_B的響應)的消息后,進行下一條刷新消息的發送。
3.如果在一定超時周期內未收到其中一個控制單元的響應,繼續完成對另一個控制單元后續的刷新操作。
4.刷新完控制器之后反饋外部刷新工具控制器狀態,如果所有控制單元刷新完畢則整個刷新流程結束,如果所有控制單元都刷新失敗則重新開始同步刷新,如果只有部分控制單元刷新失敗,則通過異步刷新選擇刷新失敗的控制單元重新刷新。
三、刷新流程控制
外部刷新設備和控制單元的通信以客戶機-服務器的方式進行,即控制單元收到何種外部刷新流程的請求,控制單元中的引導程序做出何種響應。但是控制單元會對刷新過程的命令先后順序有一定的約束,具體刷新控制流程如圖4所示,刷新控制流程步驟如下:
1、外部診斷設備發送命令ID為0x10的會話切換服務,這個服務被用來選擇刷新目標,決定刷新模式,如果處于異步模式則這個服務選擇特定的控制單元,如果是同步模式則這個服務使用統一的CANID同時發送給所有控制單元。控制單元接收到這個服務進入引導程序。
2、刷新冗余控制器內部的代碼和數據是有安全要求的,不適合的代碼和數據有可能破壞控制單元或其他系統或對航空設備的安全標準產生風險所有需要設定保密的算法來保證刷新是符合安全標準的。外部刷新設備與引導程序進行安全訪問服務的解鎖。
3、刷新過程中,控制器處于未知的工作狀態,可能會導致控制單元觸發錯誤的故障上報和存儲,所以無論采用異步或同步刷新模式,外部刷新設備都向所有控制單元發送0x85故障碼設置服務,關閉控制單元的故障碼存儲服務,忽視所有故障上報行為。
4、冗余控制器中所有的控制單元之間進行交互,所以刷新過程中防止控制單元之間的交互造成影響,所以在刷新之前外部刷新設備向所有控制單元發送0x28通訊控制服務,關閉控制單元之間的交互通訊。
5、在對控制單元物理內存做出改變操作之前,必須首先通過0x2E服務在控制單元中寫入指紋信息,指紋信息包含了編程日期、操作者、診斷儀序列號等信息,擦除控制單元FLASH之前指紋信息暫時存儲在RAM中。
6、外部刷新設備通過0x31服務請求擦數控制單元的FLASH空間,擦除FLASH完成之后將RAM中的指紋信息寫入指定的FLASH空間。
外部刷新設備發送0x34請求下載服務,控制單元接收到這個命令之后會檢查請求編程的7、FLASH空間是否已經擦除完成,如果沒有擦除完成,則發送負響應,會繼續等待外部刷新設備請求擦除FLASH命令。
8、Flash擦除完成后,外部刷新設備解析代碼和數據并通過0x36命令向控制單元傳輸代碼和數據。控制單元接收到代碼和數據后寫入FLASH空間。
9、當所有代碼和數據傳送完畢,外部刷新設備發送0x37服務脫離刷新狀態。
10、外部刷新設備發送0x31服務,控制單元接收命令后需要對FALSH區域進行校驗,校驗未通過,外部刷新設備重新發送擦除命令重新開始刷寫流程,校驗成功則將應用程序有效性標識寫入指定的FLASH空間,用于控制單元重啟后引導進入應用程序。
11、外部刷新設備發送0x11復位服務,使控制單元復位,則控制單元的刷新完成,整個刷新流程結束。
上面結合附圖對本發明進行了示例性描述,顯然本發明具體實現并不受上述方式的限制,只要采用了本發明的方法構思和技術方案進行的各種非實質性的改進,或未經改進將本發明的構思和技術方案直接應用于其它場合的,均在本發明的保護范圍之內。本發明的保護范圍應該以權利要求書所限定的保護范圍為準。