梅熹文,康雋睿,武小舟,劉峻池,楊 娜
(西安現代控制技術研究所, 西安 710065)
目前,以“事件觸發”機制為基礎的CAN總線的最大通訊速率為1 Mbit/s,隨著武器系統對通訊可靠性與實時性要求愈發嚴格,CAN總線已逐漸不能滿足要求。因此需要尋求一種新的總線技術來解決武器系統發射控制設備間實時響應的瓶頸問題,而基于時間觸發的FlexRay總線技術作為近年來的一種具有高實時、高容錯、通訊速率可達到10 Mbit/s的新型總線技術已經廣泛運用在高端汽車領域,但是尚未在武器系統中進行實際應用。文中提供了一種將FlexRay總線網絡應用在導彈發射控制系統中的設計,并進行了測試驗證,對于FlexRay總線在武器系統領域的研究與推廣具有實用價值。
FlexRay是近年發展出的一種時間觸發類型的新型車載網絡技術。作為一種高實時性總線,FlexRay總線將通訊時間劃分為等長的通訊周期,每個通訊周期中數據都擁有獨立的固定位置,其中靜態段采用時分多路的信息傳輸方式,動態段采用柔性時分多路復用方式[1]。靜態段被劃分為多個相同長度的靜態時隙,時隙被分配給網絡中各節點,當所分配的時隙到來時該節點才能對數據進行收發。動態段則更加靈活的支持事件觸發。文中主要針對靜態段進行相關研究。
FlexRay總線的特點主要有以下三個方面[2]:
a)通訊帶寬。擁有雙通訊通道,單通道帶寬可達到10 Mbit/s,相較于CAN總線有很大的提升。
b)確定性。以循環通訊為基礎,使用時分多路技術,每個通訊周期中數據都擁有獨立的固定位置,以此保證收發的時效性。
c)容錯性。擁有確定性的分布式故障容錯機制,以此保證多個級別的容錯。
基于以上特點,使FlexRay總線網絡擁有了很強的實時性以及可靠性,而這些正是衡量武器系統性能的重要指標。
實現FlexRay總線網絡,第一步應對每個節點的硬件結構、設備驅動以及上層應用進行設計,隨后根據網絡拓撲結構搭建網絡通訊平臺,最后進行多節點測試,驗證是否滿足設計性能指標。
導彈發射控制系統中一個FlexRay網絡節點采用微處理器、通訊控制器以及總線收發器組合搭建的結構模式[3],節點架構如圖1所示。

圖1 FlexRay節點架構圖
微處理器。主要實現數據分析處理,是整個節點的核心單元。本次設計采用PowerPC P2020處理器為處理核心。
通訊控制器。主要實現通訊控制功能。采用飛思卡爾公司支持FlexRay 2.1A協議的MFR4310芯片[4]。
總線收發器。用于實現FlexRay信號的轉換。采用恩智普公司的TJA1080A芯片。
本研究中,FlexRay波特率為10 Mbit/s,通訊周期10 ms,劃分為80個時隙,每個時隙有效長度為100 B。
基于VxWorks操作系統的FlexRay節點軟件包含底層驅動和上層應用兩個部分。上層應用程序主要實現系統流程控制,通過調用驅動接口函數實現FlexRay相關參數配置和數據讀寫。驅動程序作為上層應用與芯片的橋梁,通過對MFR4310芯片通訊控制寄存器的配置,使總線滿足工作要求,并提供數據讀寫緩存。
2.2.1 驅動層設計
VxWorks操作系統針對驅動設計擁有一套通用架構,主要由以下部分組成[5]:
a)系統設備表。用于保存設備的寄存器基地址、設備狀態等重要信息。
b)系統驅動表。用于保存該設備驅動對應的函數指針。
c)系統文件描述符表。用于當設備被打開后,維護其相關文件信息。
針對MFR4310的特點,遵照以上驅動設計的標準架構,設計VxWorks系統下MFR4310的驅動程序。
VxWorks設備驅動程序工作流程如圖2所示。

圖2 設備驅動程序工作流程
驅動程序主要包含硬件初始化和應用層接口兩個部分:
a)硬件初始化。實現MFR4310有效控制的前提是對該設備進行正確讀寫。首先通過修改系統文件sysLib.c的sysPhysMemDesc結構體實現對內存空間的配置,包括MFR4310的基地址、內存空間大小、讀寫以及高速緩存特性等。其次通過修改OR和BR寄存器,將讀寫周期控制在130 ns左右,延長寫周期的數據保持時間,實現對讀寫時序和基地址的配置。隨后完成MFR4310復位以及掛接相關中斷服務。最后,將MFR4310設備及其驅動分別增添到系統設備表以及系統驅動表之中。
b)應用層接口。經過硬件初始化,實現了對底層函數的掛接、中斷初始化以及每個時隙具體信息的定義,隨后將設備驅動函數安裝在驅動表中,調用過程如圖3所示。

圖3 FlexRay驅動接口函數掛接結構圖
當應用層調用write()函數執行寫數據操作時,會通過設備文件描述符調用系統驅動表中的tyWrite()函數,將數據寫入對應的輸出緩存。隨后FlexRayStartup()函數啟動中斷輸出,最后由輸出的中斷服務程序將字符發給指定的時隙。
當指定時隙接收到其他節點數據時,執行輸入中斷服務程序,讀入數據到對應的緩沖區,隨后回調函數tyIRd()會將數據讀入輸入緩沖區。應用層調用read()函數執行讀操作時,會通過設備文件描述符調用系統驅動表tyRead()函數,將數據讀入用戶緩沖區。
2.2.2 應用層設計
應用層軟件由總線初始化和參數配置、啟動通訊、數據發送與接收幾個部分組成,程序執行步驟如圖4所示。

圖4 FlexRay應用層架構圖
a)初始化和配置
開發板上電后,首先會對硬件環境初始化,滿足總線運行環境。在Fr_config_type結構體中定義FlexRay總線通訊速率、時隙數量以及一個周期內的時間分布等[6]。主要控制參數如表1所示。

表1 FlexRay主要控制參數表
使用Fr_mw_config()函數將定義好的結構體傳入底層驅動,并寫入相關控制寄存器,對緩沖區及FIFO進行初始化。
b)啟動通訊
初始化完畢后,總線控制器會向各節點發出控制命令,進入啟動程序。調用Fr_mw_start()函數,使節點加入到通訊簇中。
c)數據傳輸和接收
定義Fr_mw_receive()函數,傳入時隙號N以及接收緩沖區的大小,其中緩沖區大小應為靜態區時隙負載和動態區時隙負載長度中的較大值加上4 B后的整數倍[7]。將指定時隙接收的數據保存到應用緩沖區,創建時隙N數據接收任務,等待其他節點發送的數據信息。
定義Fr_mw_transmit()函數,傳入參數時隙號N以及更新數據的字節數,大小應該是靜態區時隙負載和動態區時隙負載長度中較大值的整數倍,創建時隙N數據發送任務,定時向其他節點的接收時隙發送數據。
目前一類基于CAN總線的導彈發射控制系統主要由操顯終端、任務管理單元、指揮終端、導航系統、衛星定位儀等5個設備組成,文中使用FlexRay替代CAN總線,構建了圖5所示的通訊網絡架構,其中每個設備各自作為一個FlexRay節點。

圖5 基于FlexRay總線網絡通訊架構圖
總線傳輸信號的最壞響應時間(worst case response time,WRCT)是一個重要的網絡性能參數,通過得到FlexRay總線的最壞響應時間,可以反映出武器系統在使用FlexRay總線后所造成的數據傳輸延時。
FlexRay總線一個通訊周期的時間分布結構如圖6所示。其中宏節拍MT為通訊周期的基本單位,由多個微節拍μT構成,各節點的晶振頻率決定了μT值的大小[8]。
通過配置參數,定義一個靜態時隙的持續時間為2 MT,其中一個MT的持續時間為1 μs,激活點偏移量為1 MT/幀[9]。
FlexRay總線的WRCT分別為靜態幀和動態幀的WRCT之和[10],假設靜態幀和動態幀的WCRT分別為WSTi和WDYNi,靜態幀和動態幀在FlexRay總線周期上最壞響應時間的成本函數可以表示為:
(1)
式中:ns為靜態幀總數目;nd為動態幀總數目。靜態幀最壞響應時間的成本函數可由式(2)得到:
(2)
式中:CST、CDYN、CNIT分別為靜態段、動態段和網絡空閑時間段NIT的傳輸時長;Ci為第i幀的通訊時長,其中:
CST=STslot·ns
(3)
CDYN=MS·ndyn
(4)
本次設計假定CNIT網絡空閑時間為:
CNIT=200·MT
(5)
由式(2)~式(5)可以得到靜態幀的最壞響應時間為:
WSTi=MS·ndyn+STslot·ns+200·MT+Ci
(6)
式中:STslot為靜態時隙長度;ns為所有靜態時隙數量;MS表示動態微時隙長度;ndyn為所有微時隙的總數目;MT為每個宏節拍中的字節數。

圖6 FlexRay總線時間分布結構圖
由于本次設計FlexRay通訊周期僅在靜態時隙中負載數據,因此由式(6)可知,隨著通訊周期不斷增加,靜態幀比特數線性變大,最壞響應時間增加,最終接近10 ms通訊周期傳輸時長,滿足某武器系統數據傳輸延時小于20 ms要求。
根據2.3節闡述的網絡架構,搭建FlexRay總線測試環境如圖7所示。其中5個節點均采用文中設計的軟硬件架構,分別模擬發射控制系統中操顯終端、任務管理單元、指揮終端、導航裝置、衛星定位儀,每個節點的AB通道通過雙絞線掛載在FlexRay總線上。使用Vector 公司的CANoe FlexRay軟件實時監測FlexRay總線上各時隙數據收發以及總線工作狀態。

圖7 系統測試環境
本次測試僅使用FlexRay靜態段進行通訊,波特率10 Mbit/s,通訊周期為10 ms,劃分為80個時隙,每個時隙長度為108 B,有效數據100 B,另包含5 B幀頭和3 B幀尾,每個時隙占108 μs,經計算理想條件下傳輸1 bit數據需0.1 μs,根據某發射控制系統信息交互關系,定義一個周期內各節點時隙分布如表2所示。

表2 節點時隙分布表
使用4.1節中的測試環境,通過FlexRay測試設備對數據收發過程中的丟幀、錯誤幀進行監測,測試結果如表3所示。

表3 誤碼率測試表
測試結果表明,FlexRay總線具有很低的誤碼率,因此有很高的可靠性。
在總線上掛接示波器,觀察總線波形如圖8、圖9所示。

圖8 發射控制系統FlexRay總線波形圖(整體)
由圖8分析可知,FlexRay總線周期間隔10 ms,符合設計要求。

圖9 發射控制系統FlexRay總線波形圖(局部)
由圖9分析可得,FlexRay總線系統每108 μs靜態時隙傳輸一幀數據,數據段大小為100 B,接近理想情況下10 Mbit/s通訊速率要求。
針對導彈發射控制系統對實時性和可靠性的需求,開展了對新型車載網絡FlexRay的研究,通過設計并搭建基于FlexRay網絡的發射控制系統,測試驗證了FlexRay總線能夠滿足武器系統的性能要求,為今后在導彈發射控制系統中用FlexRay替代CAN總線打下了理論基礎。當前研究仍存在一定的不足,在后續研究中通過采用靜態段和動態段混合傳輸方式,總線性能還會有一定提升。