曹 東,陳軍花,呂迅竑
(南京航空航天大學 自動化學院,南京 211100)
?
三余度飛行控制計算機FlexRay節(jié)點通信設計
曹 東,陳軍花,呂迅竑
(南京航空航天大學 自動化學院,南京 211100)
飛行控制計算機是飛行控制系統(tǒng)的核心組成部分,為進一步提高中小型無人機的安全可靠性,采用了軟、硬件結(jié)合的三余度管理技術;首先采用模塊化的設計思想,設計了系統(tǒng)三余度飛行控制計算機的硬件架構,包括串口、開關量、模擬量、CAN和FlexRay總線以及外擴SRAM等硬件資源;然后設計余度管理策略,該部分提出了軟件表決和硬件仲裁兩級余度管理思想;此外,為克服傳統(tǒng)CAN總線負載量和通信速率等方面的不足,引入了FlexRay總線通信技術,并詳細分析了總線通信數(shù)據(jù)流,設計了基于FlexRay的總線通信機制;最后進行半物理仿真實驗,驗證FlexRay總線通信功能,驗證結(jié)果表明設計方案合理可行;設計的三余度飛行控制計算機硬件集成性高且易擴展升級,F(xiàn)lexRay總線通信功能也滿足設計需求,具有很高的應用價值。
飛行控制計算機;余度管理;FlexRay總線;總線協(xié)議
飛行控制系統(tǒng)的安全性直接關系到飛機和飛行員的存亡,因此飛行控制計算機作為其核心部分,可靠性要求是所有航空電子設備中最高的。為提高飛行控制計算機的安全可靠性,現(xiàn)廣泛采用的方法是在保證元器件和裝配工藝質(zhì)量的基礎上,引入余度技術[1],從根本上提高系統(tǒng)的故障診斷和容錯能力,最終消除故障對系統(tǒng)正常工作的影響?,F(xiàn)在的飛行控制計算機系統(tǒng)主要采用二余度、三余度或四余度容錯結(jié)構,其中二余度系統(tǒng)主要采用熱備份的工作方式,系統(tǒng)工作在故障-安全狀態(tài)下,三余度系統(tǒng)可保證系統(tǒng)一次故障工作,二次故障安全,四余度系統(tǒng)在三余度的基礎上增加了表決對象,使系統(tǒng)可工作在雙故障-工作狀態(tài)下。綜合考慮設計成本、開發(fā)周期和系統(tǒng)質(zhì)量、體積等[2],中小型無人機采用三余度容錯結(jié)構。
此外,隨著飛行任務的不斷復雜化和多樣化,對飛行控制計算機的數(shù)據(jù)處理能力要求也越來越高。傳統(tǒng)CAN總線最大通信速率為1 Mbit/s,已難以滿足飛行控制計算機在通信實時性和數(shù)據(jù)大負載量方面的要求,由此引入了Flexray總線。Flexray總線[3]是一種時間觸發(fā)總線,具有高速率、時間確定性等特點,完全滿足飛行控制計算機內(nèi)部總線數(shù)據(jù)通信要求。
基于某工程項目的實際需求及以上考慮,研發(fā)了三余度飛行控制計算機。本文在介紹三余度飛行控制計算機硬件架構設計和余度管理配置的基礎上,設計了Flexray總線通信機制,并進行了可行性驗證。
針對某工程項目的實際需求,研發(fā)的三余度飛行控制計算機硬件部分主要由3個獨立的控制通道A、B、C及仲裁模塊和接口單元組成。其中單通道模塊以飛思卡爾公司的MPC5644A為核心,集成了SCI、PWMIN/OUT、DI/O、AD/DA、CAN和FlexRay驅(qū)動電路,以及外擴FLASH和外擴RAM等模塊。設計時,單通道模塊由一塊核心板和一塊核心板母板組成,核心板是數(shù)據(jù)處理和計算工作的核心,主要集成CPU最小系統(tǒng)、外擴Flash、外擴SRAM、FlexRay總線驅(qū)動、CAN總線驅(qū)動和串口驅(qū)動電路。核心板母板主要集成開關量模塊、PWM模塊和A/D轉(zhuǎn)換模塊。三余度系統(tǒng)由三通道模塊和一塊仲裁、接口單元板組成,其中仲裁、接口單元板集成了仲裁功能電路和三通道中各單元的接口模塊。
此外,還有電源模塊、CPU最小系統(tǒng)內(nèi)其他電路等作為基礎硬件支持。系統(tǒng)的整體結(jié)構如下圖1所示。
圖1 三余度飛行控制計算機結(jié)構示意圖
硬件上與傳統(tǒng)設計相比,系統(tǒng)集成性更高,也更易擴展;核心板和核心板母板的分板設計既節(jié)省了體積,又實現(xiàn)了對CPU的保護功能,也便于后續(xù)各功能模塊的升級。
2.1 交叉?zhèn)鬏旀溌吩O計
數(shù)據(jù)交叉?zhèn)鬏斒菍崿F(xiàn)三通道間信息比較監(jiān)控的前提,通過交叉?zhèn)鬏斶€可以提高系統(tǒng)故障檢測率。三余度飛行控制計算機交叉?zhèn)鬏數(shù)臄?shù)據(jù)有遙控指令、傳感器狀態(tài)信息、通道監(jiān)測信息、輸出控制量等。這些信息主要分為串口量、開關量、模擬量、PWM量和狀態(tài)檢測量。
目前信息交叉?zhèn)鬏數(shù)耐緩街饕心M量交換、串行口交換、共享存儲器[4]和總線訪問。其中模擬量交換方式嚴重耗費系統(tǒng)資源,且效率不高;串行口交換速度有限,實時性較差;共享存儲器的方式雖然避免了模擬量交換和串行口交換方式的缺點,但存在訪問沖突問題,且當余度數(shù)量n改變時共享存儲器的數(shù)量會隨n(n-1)/2進行改變;總線訪問方式中CAN總線具有實時性好、可靠性高、成本低等優(yōu)點,但其一幀數(shù)據(jù)僅8字節(jié),最高通信速率也只有1 Mbit/s,難以滿足越來越大的數(shù)據(jù)負載量;而新型的Flexray總線單通道最大傳輸速率可達到10 Mbit/s,能進行雙通道冗余傳輸,具有消息到達時間確定、消息延遲固定、通信循環(huán)誤差小、成本低、實時性好和可靠性高等特點。
綜合考慮交叉?zhèn)鬏敂?shù)據(jù)類型、通信速率、數(shù)據(jù)負載量和實時性等方面的要求,本文的三余度飛行控制計算機采用 Flexray 總線訪問方式形成交叉通信數(shù)據(jù)鏈路(CCDL),實現(xiàn)完整的資源共享和狀態(tài)信息交互。
2.2 余度管理設計
三余度飛行控制計算機余度管理內(nèi)容主要包括輸入信息的余度管理、三通道間的同步管理、輸出信息的余度管理、故障檢測和處理等,這些都是在CCDL基礎上完成的。
前面分析可知,CCDL通信數(shù)據(jù)主要為串口量、開關量、模擬量、PWM量和狀態(tài)檢測量。余度管理時,串口量、模擬量和PWM量采用如圖2(a)比較方式進行表決,首先對三余度信號進行排序,假設由大到小依次為a、b、c,門限值為ε,最大值與最小值相減,其差值a-c與給定的門限值ε進行比較,若差值在門限值范圍以內(nèi),則取三信號中值(a+b+c)/3作為表決值輸出;若差值超出門限值范圍,則繼續(xù)判斷,方法類似,若a-b<ε,則輸出a、b均值(a+b)/2;若a-b>ε,則繼續(xù)判斷,若b-c<ε,則輸出b、c均值(b+c)/2,反之輸出故障安全值。
開關量采用如圖2(b)相加比較的方法,對各通道的開關量進行全同表決,以多數(shù)相同的信號為有效信號,少數(shù)信號判斷為故障信號,并以多數(shù)信號的值作為表決值輸出。當計算機A、B、C通道的離散量a、b和c加在一起等于3或0時,表決值取采樣值;當a+b+c等于1時,輸出值取0,輸出為1的通道記一次瞬態(tài)故障;當a+b+c等于2時,輸出值取1,輸出為0的通道記一次瞬態(tài)故障。
圖2 余度表決流程圖
系統(tǒng)余度管理[5]整體流程為,首先,三通道分別采集輸入信號,輸入數(shù)據(jù)通過CCDL進行數(shù)據(jù)交互,通過表決得到各通道的表決輸入;然后,三控制通道分別對各自的表決值進行控制律解算等,得到各自的輸出;最后輸出數(shù)據(jù)時,各通道向其他兩個通道發(fā)送控制輸出信號,通過CCDL進行數(shù)據(jù)交互,同時進行故障檢測、故障隔離等操作,表決出各自的輸出,最后,三通道的輸出同時傳給仲裁模塊,仲裁模塊經(jīng)過仲裁,得到唯一輸出,該輸出作為最后的結(jié)果下行給外圍設備。具體流程如圖3所示。
圖3 余度管理表決過程示意圖
①②③分別為中央處理單元A、B、C之間數(shù)據(jù)交叉?zhèn)鬏斶^程;
④為3個中央處理單元的軟件表決操作;
⑤為中央處理單元A、B、C采集各個通信接口單元的上行數(shù)據(jù),或者將最終表決的數(shù)據(jù)下行給各個通信接口單元;
⑥為硬件仲裁模塊接收各接口單元數(shù)據(jù),仲裁后完成控制信號的輸出。
CCDL通信和仲裁模塊仲裁過程中,系統(tǒng)同時進行故障檢測、故障隔離等操作。若檢測到Flexray總線故障,則軟件復位或切換到備用Flexray總線通道;若檢測到飛行控制計算機通道故障,則進行重啟嘗試或者進行通道隔離操作。
3.1 總線數(shù)據(jù)流分析
三余度飛行控制計算機CCDL上的數(shù)據(jù)流總體由兩部分組成:其他通道發(fā)送過來的上行數(shù)據(jù)以及該通道向其他通道發(fā)送的下行數(shù)據(jù)。則上、下行數(shù)據(jù)可分為串口量、模擬量、開關量、PWM信號和狀態(tài)檢測量。
本文以數(shù)據(jù)更新率的最小公倍數(shù)200 ms為周期對飛行控制計算機FlexRay總線數(shù)據(jù)流進行分析。根據(jù)樣例飛行控制計算機統(tǒng)計,單通道串口量數(shù)據(jù)更新率統(tǒng)計如表1,串口10未使用,留作備用串口。
表1 串口量傳輸更新率
單通道飛行控制計算機的模擬量采集模塊,包含8路16位精度的AD輸入,8路12位精度的DA輸出,則上行數(shù)據(jù)量為16字節(jié),下行數(shù)據(jù)量為16字節(jié)。根據(jù)需要,每3 ms采集一次AD輸入信號,同時10 ms上傳一次數(shù)據(jù),經(jīng)過控制律解算,每20 ms向外下傳一次DA輸出信號,即上行、下行數(shù)據(jù)更新率分別為100 Hz和50 Hz。那么200 ms內(nèi)單通道模擬量單元的上行數(shù)據(jù)量為16*20=320字節(jié),下行數(shù)據(jù)量為16*10=160字節(jié)。
單通道飛行控制計算機的開關量采集模塊,包含8路輸入和8路輸出。對于開關量輸入信號上傳和輸出信號下傳,數(shù)據(jù)傳輸?shù)念l率均為100 Hz。那么200 ms內(nèi)單通道開關量單元的上行數(shù)據(jù)量為8*20=160字節(jié),下行數(shù)據(jù)量為8*20=160字節(jié)。
單通道飛行控制計算機的PWM信號采集模塊,包含8路PWM輸入和16路PWM輸出。其數(shù)據(jù)傳輸頻率定為50 Hz。那么200 ms內(nèi)單通道PWM信號的上行數(shù)據(jù)量為16*10=160字節(jié),下行數(shù)據(jù)量為32*10=160字節(jié)。
三余度飛行控制計算機每20 ms通過Flexray總線對各通道模塊進行狀態(tài)檢測,狀態(tài)檢測幀以中斷方式定時發(fā)送。通道A狀態(tài)檢測幀分布在0 ms、20 ms、40 ms…的時間片,通道B狀態(tài)檢測幀分布在1 ms、21 ms、41 ms…的時間片,通道C狀態(tài)檢測幀分布在2 ms、22 ms、42 ms…的時間片。各個功能單元在接收到狀態(tài)檢測信息后將返回一個檢測應答幀。
綜上分析,考慮到數(shù)據(jù)傳輸速率、總線資源利用率和資源易擴展性,選取數(shù)據(jù)幀長度為32字節(jié)。由表2可知,在200 ms內(nèi),三余度飛行控制計算機上行數(shù)據(jù)量為:193*3=579幀,下行數(shù)據(jù)量為:88*3=264總計943幀,即平均1 ms Flexray總線上數(shù)據(jù)流量為5幀。
表2 三余度飛行控制計算機總線數(shù)據(jù)流
實際通信時,數(shù)據(jù)總流量還包括每幀的幀頭5字節(jié)、幀尾3字節(jié)和138位位流信號,因此200 ms內(nèi)的數(shù)據(jù)總流量為943*(40*8+138)=431894bit,約為53987字節(jié)。FlexRay的通信速率為10 Mbit/s,200 ms內(nèi)可以提供250 000字節(jié)的傳輸能力,遠大于飛行控制計算機的數(shù)據(jù)流量需求,F(xiàn)lexRay總線的帶寬完全滿足設計要求。
3.2 時間調(diào)度方式
FlexRay 總線是一種典型的現(xiàn)場總線,數(shù)據(jù)是在總線通信周期中進行傳輸?shù)?。每個通信周期包含靜態(tài)段、動態(tài)段、符號窗口和網(wǎng)絡閑置時間四段,其中用來收發(fā)消息數(shù)據(jù)的是靜態(tài)段和動態(tài)段。FlexRay 總線靜態(tài)段包含若干等長度的靜態(tài)時隙(slot),當通信周期到達后,節(jié)點會根據(jù)當前的時隙號過濾待傳輸?shù)南ⅲ趲琁D號相等時,對應時隙的消息才能在總線上傳輸,這種方式稱為基于時間觸發(fā)的時分多址(TDMA)[6]媒體訪問方式。相比于FlexRay總線通信周期的靜態(tài)段,動態(tài)段傳輸消息數(shù)據(jù)時同樣需要滿足消息ID號與當前時隙計數(shù)器一致的條件,但此外還需根據(jù)待發(fā)送的消息長度與當前動態(tài)段剩余時間片的長度長短,來決定動態(tài)段消息發(fā)送機制,這種方式稱為基于事件觸發(fā)的柔性時分多址(FTDMA)[6]媒體訪問方式。此外,符號窗口要求傳輸30bit 的沖突避免符號和 15bit 符號窗口的傳輸起動序列。網(wǎng)絡空閑時間 NIT規(guī)定為,使通信控制器在最壞的情況下,能有足夠的時間計算時鐘頻率和相位校正值,并能進行相位的校正。
比較時分多址和柔性時分多址兩種媒體訪問方式,前者實時性和確定性較強,更適合也適用于傳輸交互頻繁的周期性數(shù)據(jù)信息。三余度飛行控制計算機中總線上行、下行數(shù)據(jù)都已分配設計好,因此采用基于時間觸發(fā)的時分多址方式。本次設計中的總線通信部分主要用到靜態(tài)段,下面就靜態(tài)段負載長度為32字節(jié)設計FlexRay總線通信協(xié)議。
靜態(tài)段負載長度為 32 字節(jié),加上 5 個字節(jié)的頭部段和 3 個字節(jié)的尾部段,其它還需考慮138 位的位流信號(TSS、FSS、BSS、FES)及閑置時間,因此當傳輸速率為10 Mbit/s時,傳輸一幀數(shù)據(jù)理論上至少需要 46 μs,為保證信號能完整傳輸取靜態(tài)時隙大小為 60 μs。綜合考慮總線上的數(shù)據(jù)流量和數(shù)據(jù)更新率,設置三余度飛行控制計算機的總線通信周期為10 ms。
在一個通信周期里,當選取負載幀長度為32字節(jié)時,由3.1分析可知,三余度飛行控制計算機串口上行數(shù)據(jù)量為39幀,下行數(shù)據(jù)量為18幀;模擬量上行、下行數(shù)據(jù)量均為3幀;開關量上行、下行數(shù)據(jù)量均為3幀;PWM量上行、下行數(shù)據(jù)量均為3幀;此外,各通道發(fā)送狀態(tài)檢測信號產(chǎn)生3幀下行數(shù)據(jù)量,其他通道傳輸狀態(tài)檢測返回信號產(chǎn)生6幀數(shù)據(jù)量,因此一個通信周期里最多共產(chǎn)生84幀數(shù)據(jù)流量。
為了保證數(shù)據(jù)傳輸?shù)挠行约叭蘸箫w行控制計算機總線數(shù)據(jù)流擴展的需要,靜態(tài)時隙個數(shù)設置為 100,每個通信周期只用到前84 個靜態(tài)時隙,其余 16 個時隙作備用。由于沒有使用動態(tài)段傳遞數(shù)據(jù),所以動態(tài)段采用標準配置[7],符號窗口需傳輸30bit 的沖突避免符號和 15 bit 符號窗口的傳輸起動序列,考慮到擴展性符號窗口設為 14 μs,三倍于理論符號窗口長度;網(wǎng)絡空閑時間長度設置為整個周期(10 ms)減去靜態(tài)段、動態(tài)段和符號窗口后剩下的長度。
在負載段長度為 32 字節(jié)、通信周期為10 ms情況下,F(xiàn)lexRay總線一周期時間調(diào)度如圖4所示。
圖4 Flexray總線周期時間調(diào)度
對基于FlexRay的三節(jié)點通信可行性進行驗證,將三通道模塊的FlexRay節(jié)點相連,每個節(jié)點都對接收到的數(shù)據(jù)幀數(shù)、丟幀數(shù)和錯幀數(shù)進行記錄,并將收到的數(shù)據(jù)通過串口調(diào)試助手顯示出來,同時也可用示波器對三節(jié)點的總線通信進行監(jiān)控,實時觀察總線通信情況。測試方案如圖5所示。
圖5 Flexray三節(jié)點通信測試示意圖
初始化時,設置FlexRay通信速率為10 MHz,靜態(tài)段消息負載長度設置為32字,長于實際通信負載長度,通信周期設置為10 ms。節(jié)點A在時隙1發(fā)送數(shù)據(jù),在時隙7和時隙15接收數(shù)據(jù);節(jié)點B在時隙7發(fā)送數(shù)據(jù),在時隙1和時隙15接收數(shù)據(jù);節(jié)點C在時隙15發(fā)送數(shù)據(jù),在時隙1和時隙7接收數(shù)據(jù)。示波器監(jiān)控總線上通信狀態(tài)如圖6所示。
圖6(a)表明通信周期為10 ms,每周期3個時隙進行數(shù)據(jù)收發(fā),圖6(b)是圖6(a)的局部放大圖,每個時隙長度為200 μs,32字的數(shù)據(jù)通信大約占用120 μs。
將各節(jié)點的通信數(shù)據(jù)通過串口轉(zhuǎn)發(fā)進行觀察,經(jīng)過6小時的連續(xù)通信測試,統(tǒng)計測試結(jié)果如表3所示。
圖6 Flexray三節(jié)點實時通信測試圖
測試時間/h通信幀計數(shù)丟幀計數(shù)錯幀計數(shù)誤碼率/%11080000000221600000004432000000068640000000
由表3可看出,通信的丟幀數(shù)和錯幀數(shù)都為0,說明節(jié)點設計合理可行。誤碼率為0也滿足系統(tǒng)內(nèi)部總線通信對低誤碼率的要求。
本文首先從提高中小型無人機的安全可靠性和核心控制部分的集成性考慮,設計了三余度飛行控制計算機的硬件架構;然后在此基礎上提出了軟件表決和硬件仲裁兩級余度管理的設計思想,進一步提高了系統(tǒng)故障檢測能力;最后分析總線數(shù)據(jù)流,在充分考慮通信負載量、通信速率和實時性的前提下,設計了基于Flexray的總線通信機制,驗證表明設計方案合理可行。設計的三余度飛行控制計算機可靠性高且易擴展,具有很高的實際應用價值。
[1] 王迪爽.基于MPC5554的某型無人機雙余度飛控計算機的設計[D].南京:南京航空航天大學,2013.
[2] 柳孔明,黃 俊.無人機多余度航空電子系統(tǒng)研究與應用[J].計算機測量與控制,2012,20(5):1340-1343.
[3] 石 磊.基于CAN總線的車門控制系統(tǒng)研究[D].吉林:吉林大學,2008.
[4] 黃 雯,等. Flexray總線技術及其多節(jié)點通信測試研究[J].華東電力,2009, 37(1).
[5] 徐志俊,鐘再敏, 孫澤昌. FlexRay 總線在工業(yè)自動化領域的應用展望[J].工業(yè)控制計算機,2008,21(5):1-3.
[6] 張 利,等.基于總線占用率的Flexray消息時隙分配方法研究[J].中國機械工程,2012, 23(6).
[7] 章 勇. 基于FlexRay飛行控制計算機總線技術設計與研究 [D].南京:南京航空航天大學,2012.
Communication Design of Triplex Flight Control Computer Based on Flexray Bus
Cao Dong, Chen Junhua, Lü Xunhong
(College of Automation Engineering, Nanjing University of Aeronautics & Astronautics, Nanjing 211100, China)
In order to improve the safety and reliability of the small unmanned aerial vehicle (UAV), triplex redundancy management technique was adopted by combining software and hardware technology. The hardware architecture of a triplex redundancy flight control computer, which includes serial ports, switch quantity, analog CAN bus, FlexRay bus and expended SRAM as well as some other hardware resources, was designed firstly. When designing the redundancy management part, software voting and hardware arbitration were proposed. To overcome the heavy load and slow communication rate of traditional CAN bus, the FlexRay bus was introduced, and the communication mechanism based on the FlexRay bus was designed. Finally feasibility of the design was verified. In short, the design of triplex redundant flight control computer owns high integration and is easy to upgrade. The FlexRay bus communication functions meet the designed requirements, thus the total design has very high application value.
flight control computer; redundancy management; FlexRay bus; bus protocol
2015-09-23;
2015-11-06。
曹 東(1972-),男,安徽池州人,副研究員,主要從事先進飛行器設計方向的研究。
1671-4598(2016)03-0234-04
10.16526/j.cnki.11-4762/tp.2016.03.064
TP3
A