一種基于rs422協議的可變數據傳輸方法
【技術領域】
[0001]本發明屬于嵌入式通信技術領域,涉及一種數字電子控制器與外部設備間傳輸大批量數據的方法,可應用于航空發動機電子控制器與其他系統的通信。
【背景技術】
[0002]目前航空發動機電子控制器采用的通訊協議主要包括RS232、RS422、RS485、ARINC429等,這些通訊協議均屬于低速串行通訊,在數據傳輸過程中一般均采用組包傳送的方式,同時每一包的數據參數一般不超過50個。航空發動機數字電子控制器實時性要求高,控制變量和監控參數繁多,這就導致了電子控制器的通信功能軟件運行時間和每一包通訊參數的數量受到限制。
【發明內容】
[0003]本發明提出一種基于RS422協議的可變數據傳輸方法,主要解決航空發動機數字電子控制器與外部設備間傳輸大批量數據問題。
[0004]本發明的技術方案如下:
[0005]—種基于RS422協議的可變數據傳輸方法,包括以下環節:
[0006](1)建立發送參數總集,所述發送參數總集包含參數ID和參數地址,參數ID是用于標志參數身份唯一性的編號,通過該編號能夠查詢到參數的存儲地址;
[0007](2)根據需求在非易失性存儲中建立當前發送參數集合,所述當前發送參數集合包含參數個數、各參數ID和各參數類型;
[0008](3)從當前發送參數集合中取出參數ID,并通過參數ID查詢所述發送參數總集獲得相應參數的存儲地址;
[0009](4)根據參數類型從參數的存儲地址中讀取參數值,并依次放入發送參數值數據包中;每包發送參數值數據包中包含一個或多個參數值以及該參數值在該發送參數值數據包中的存放位置和參數ID;
[0010](5)重復步驟(2)和步驟(3),直至將當前發送參數集合中所有參數ID對應的參數打包完成,同時按順序依次傳輸各個發送參數值數據包;
[0011](6)當需求改變時,建立新的當前發送參數集合,并依次執行環節(3)-(5),完成數據傳輸任務。
[0012]在以上方案的基礎上,本發明還進一步作了如下優化:
[0013]上述發送參數值數據包由包頭、參數個數、參數位置(posit1n)、參數ID、參數值和校驗和組成;每包發送參數值數據包中傳輸一個參數值,即在發送參數值數據包中填入多個參數值但僅填入其中一個參數對應的參數ID,參數個數為該發送參數值數據包中填入參數值的個數,參數位置(po s i t i on)指示數據包中參數ID所對應的參數值在數據包中的存放位置。
[0014]上述發送參數值數據包的存儲格式如下:
[0015]包頭+參數個數+參數位置+參數ID+參數值1+參數值2+...+參數值h+校驗和;
[0016]其中,參數位置的取值范圍為[l,h]。
[0017]上述當前發送參數集合的存儲格式如下:
[0018]記錄編號+參數個數+第1個參數ID+第2個參數Ι?+...+第m個參數ID+第1個參數類型+第2個參數類型+...+第m個參數類型;111即為其中參數個數的值。
[0019]以上環節(6)具體是獲取并解析參數維護信息,并在非易失性存儲中增加新記錄達到維護發送參數的目的;所述參數維護信息的存儲格式為:
[0020]0xlB+參數個數(n)+空格+第1個參數的ID及類型+第2個參數的ID及類型+...+第η個參數的ID及類型;
[0021]其中,n<h。
[0022]本發明的技術效果如下:
[0023]基于RS422通信協議,通過建立發送參數總集、在線維護當前發送參數集合,實現用戶需求傳輸數據的實時配置,有效解決了發動機控制變量和監控參數繁多與通訊參數受限的問題。
[0024]本發明具有存儲空間小、運算量小,軟件維護成本低的優點。可用于航空發動機數字電子控制器與其他系統的數據通信。同時該方法可擴展應用于其他串口傳輸協議、實現其他嵌入式系統間的傳輸數據的可配置,減小系統維護成本。
【附圖說明】
[0025]圖1為本發明可變數據傳輸處理框架。
[0026]圖2為發送參數值流程圖。
[0027]圖3為本實施例的發送參數總集數據結構;
[0028]圖4是本實施例的當前發送參數集合存儲格式;
[0029]圖5是本實施例的發送參數值數據包結構。
【具體實施方式】
[0030]如圖1、圖2所示,本發明建立的傳輸模型主要包括三種數據:發送參數總集、當前發送參數集合和傳輸數據。發送參數總集用于定義最廣泛的可能需要傳輸的參數集合;當前發送參數集合表明目前系統需傳輸的參數集合;傳輸數據通過RS422通信,在線接收新的當前發送參數集合,并將參數信息發送至其他系統,在線接收參數維護信息。
[0031]發送參數總集為最廣泛的可能需要傳輸的參數集合,根據控制監控要求建立發送參數總集,該集合應包含有參數ID和參數地址等信息。參數ID是用于標志參數身份的唯一性的編號,通過該編號可以查詢到參數地址。
[0032]當前發送參數集合包含參數個數、各參數ID和各參數類型。為實現傳輸數據的可配置,該數據應存儲至非易失性存儲設備中。該記錄在存儲設備中占據一定空間,可存儲多條記錄,記錄標號用于標識記錄號;每個參數的ID,取值范圍為發送參數總集的參數ID構成的集合。
[0033]下面以發送數據包大小為48個字為例,闡述如何利用有限的傳輸存儲實現1000個參數數據的傳輸。這里數據包大小、參數數據總數都可以根據系統應用情況進行調整。
[0034]發送參數總集選取了1000個參數。參數ID從0至999,以參數ID為索引保存該參數被定義后的存儲地址。其數據結構見圖3.
[0035]當前發送參數集合包含參數個數、各參數ID和各參數類型。為實現傳輸數據的可配置,該數據應存儲至非易失性存儲中。當前發送參數集合的存儲格式如圖4所示:
[0036]記錄編號+參數個數+第1個參數ID+第2個參數ID+"_+第m個參數ID+第1個參數類型+第2個參數類型+...+第m個參數類型;111即為其中參數個數的值。
[0037]在非易失性存儲中的每一條記錄代表一次數據發送,新發送數據時,需要獲取新一條記錄。每條記錄256個字節,首字節用于標識記錄號,每個參數的索引為2個字節(高字節+低字節),取值范圍為0?999;類型則取1/2/4(填入的數值為“1”、“2”、“4”)之一,分別