付強
摘 要:在機載網絡通信領域,常見的總線通信技術有AFDX通信、A429(ARINC 429)通信和CPCI板間通信。在設計和開發機載軟件的過程中,脫離機載環境,PC平臺對機載軟件進行前期驗證是一種高效的仿真驗證手段,為后期機載硬件平臺系統級交聯驗證提供了功能級的保證。實現基于PC平臺的機載軟件仿真驗證,其中一個核心技術就是模擬機載設備間數據交互的實現機制。本文通過研究以上三種機載網絡通信的協議特點和處理機制,結合PC平臺的網絡通信和實現機制,搭建虛擬總線組件架構,設計適用于不同總線的緩存管理策略,以及基于虛擬共享內存的數據分發服務和基于以太網的數據分發服務,在PC平臺下實現機載軟件運行節點間的數據通信。
關鍵詞:機載網絡;AFDX;ARINC 429;CPCI;緩存管理;總線仿真技術
DOIDOI:10.11907/rjdk.172394
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2018)002-0164-04
0 引言
機載軟件在飛機整體研制過程中占用比重不斷增加,在機載軟件開發和調試過程中,需要底層嵌入式操作系統及BSP運行環境,機載軟件的調試和驗證依賴于機載硬件設備,同時需要外部交聯系統設備或接口仿真器支持。這些原因會造成軟件開發過程依賴于設備供應商的軟硬件研制進度,在系統研制初期缺少軟件功能仿真與驗證手段。機載軟件對真實設備的依賴所帶來的問題主要體現在三個方面:
(1)資源爭用:一方面表現在試驗驗證、軟件測試、軟件開發都依賴于機載系統環境;另一方面團隊內部無法并行開展軟件調試工作,只支持單功能模塊的軟件調試。
(2)調試效率:調試過程修改代碼后需要重置硬件并加載軟件,需要多個人來協作完成。
(3)硬件依賴:機載軟件開發依賴設備成品廠軟硬件研制進度,無法定制數據激勵類型和方式,并且缺少虛擬化的仿真和驗證手段。
擺脫對機載環境的依賴,在PC平臺對機載軟件進行前期驗證是一種行之有效的開發手段。在對機載環境進行仿真的過程中,核心問題就是對機載網絡數據總線的仿真。本文在研究相關的AFDX、A429和CPCI三種常用機載網絡數據總線的基礎上,構建虛擬總線組件架構,并設計對應的緩存管理策略,在PC平臺上實現了機載網絡數據總線的通信機制。
1 虛擬總線架構
應用層軟件使用虛擬總線層提供的各類總線接口與其他交聯子系統或虛擬機載設備進行通信。使用數據分發服務支持網絡通信接口仿真和應用軟件之間的通信,在傳輸層使用基于虛擬共享內存的總線通信模擬和基于以太網的總線通信模擬,軟件架構如圖1所示。
在仿真環境下定義的總線接口與真實機載代碼所調用的接口完全一致,保證機載代碼在虛擬開發環境與真實硬件設備之間的無縫移植。虛擬總線層向應用程序層提供與真實總線設備相同的通信接口,數據發送與接收通過各種虛擬總線(虛擬AFDX總線、虛擬A429總線、虛擬CPCI)完成。數據分發服務層向虛擬總線層提供數據分發服務,通過建立發送方與接收方的閱關系來綁定發送端口與接收端口,并建立發送方與接收方的數據傳輸通道。傳輸層使用兩種方式來完成數據從源端到目的端發送:針對基于共享內存的數據分發服務,傳輸層采用內存管理服務來實現數據發送與接收;針對基于以太網的數據分發服務,傳輸層采用Winsock庫提供的服務來完成數據發送與接收。
2 A429通信仿真
ARINC 429是機載設備間常用的數據通信方式,通過點到點互連,采用單信息源、多接收器傳輸方法,以半雙工方式工作。對A429通信的虛擬化過程主要是模擬A429通道的初始化、對A429通道的讀操作和寫操作。
首先需要定義A429通道結構和緩沖區結構,A429通道結構包括通道對象ID、通道緩沖區最大尺寸以及通道對象的緩沖區偏移位置。A429緩沖區結構包括緩沖區中實際數據的尺寸、緩沖區中實際數據的首地址。在實現過程中可以為A429通道對象開辟一個共享數據區,該數據區中包括通道對象的定義和通道對應的緩沖區結構,A429的所有通道都在該共享內存區中,用于數據的共享和通信。下面具體介紹A429通道三類主要操作的仿真。
2.1 A429通道初始化
在通道初始化時,主要根據A429的XML配置文件在共享數據區中開辟通道并進行初始化,包括初始化通道的ID、通道緩沖區偏移地址、通道緩沖區最大尺寸等。在通道緩沖區相對于大緩沖區塊的偏移地址初始化過程為:緩沖區對象是由len(緩沖區中實際數據的尺寸)和buffer(緩沖區中實際數據的首地址)組成的,所以通道偏移地址是以上一個通道的偏移地址為首地址,以緩沖區對象中的len和XML文件中指定的通道的長度乘以傳輸數據類型之和為偏移地址得到的。對應關系如圖2所示,其中NUM為前一個通道的長度。
2.2 A429總線數據發送
在應用層調用發送接口時,首先判斷此應用層通道ID的有效性,然后判斷要發送的數據長度是否大于該通道緩沖區的最大長度。若超過則返回“輸入數據太長”的錯誤信息;若未超過,則將數據發送到指定的通道緩沖區中,同時返回“操作成功”的信息。數據存入的位置是由通道所在的大緩沖區的首地址和通道在大緩沖區中的偏移位置決定的。發送處理流程如圖3所示。
2.3 A429總線數據接收
在數據接收過程中,將申請的通道ID,待發送數據首地址指針以及數據的長度傳給該函數,函數接受到調用后,首先根據用戶申請的通道ID判斷ID號的有效性,然后判斷通道中是否有數據存在。若不存在則返回“無接收數據”的信息,若存在數據則要判斷該數據長度是否大于指定的緩沖區長度;若超過則返回“接收數據太長”的錯誤信息,若未超過,則將數據發送到指定的緩沖區中,同時返回“操作成功”的信息。要接收的數據位置是由通道所在的大緩沖區的首地址和通道在大緩沖區中的偏移位置決定的。該函數的實現流程如圖4所示。endprint
3 AFDX通信仿真
AFDX端系統端口通信機制提供兩種類型的航空電子通信服務:采樣服務和隊列服務。
采樣服務包括采樣發送數據服務和采樣接收數據服務。其中,采樣發送數據服務是指信息長度小于等于虛擬鏈路的有效負荷長度,不支持分包,支持組播或單播;采樣接收數據服務是指最后的信息存儲在特定采樣端口中,可以被多個應用讀取,每個采樣端口都有更新標志符,對于每個讀取信息的應用都是可見的。
隊列服務包括隊列發送數據服務和隊列接收數據服務。隊列發送數據服務支持數據分包,隊列采用FIFO(先進先出原則),隊列滿后,新的幀將被丟棄;隊列接收數據服務是指從隊列中讀取第一個消息,接收隊列滿后,新的幀將被丟棄,并向應用發送錯誤報告,如果涉及分包的情況,整個包組裝完成后才允許應用讀取數據。
3.1 分布式通信
如圖5所示,分布式虛擬化節點間的通信采用基于以太網的UDP通信方式,通過定制網絡傳輸協議,能夠支持不同節點間進行AFDX通信數據收發。數據包格式定義順次包含數據源ID、事件周期數據標識、數據長度、數據載荷。
3.2 AFDX總線數據發送
首次調用AFDX發送接口,需要根據配置的目標IP地址和端口號創建UDP套件字連接。當檢測已建立UDP套件字連接后,采用下列步驟組建并發送數據包。
(1)在配置表中查找傳入的ID號,在配置表中找到對應的配置條目后,檢測數據接收發送標識是否為發送。
(2)數據發送接口根據傳入參數組建數據包,包含數據源ID、事件周期數據標識、數據長度、數據載荷。
(3)調用UDP套件字發送函數,向接收端發送數據包,并向應用層返回狀態。
3.3 AFDX總線數據接收
數據接收接口實現較為復雜,需要區分隊列數據接收和采樣數據接收。根據配置表在初始化階段建立數據緩沖區,緩沖區結構如圖6所示。接收到數據包后,首先根據數據包中的ID在配置表中查找對應的配置條目,校驗有效性,并訪問ICD條目對應的數據緩沖區。
采樣數據的緩沖區和隊列數據的緩沖區存在差異。采樣端口中只存儲最新到來的消息,到達的消息覆蓋當前緩沖區中的消息,而不用判斷是否已經被應用程序讀取,同樣從采樣端口讀取消息時,無需將消息移除,而是反復讀取,在采樣端口中都存在一個標志位,用來標識數據是否更新,當該標志為1時,說明當前端口緩沖區中存在新的消息。每個隊列端口具有獨立的緩沖隊列,可以緩存一定數量的消息,消息被填充到隊列中,從隊列中按照先進先出的規則讀取消息,并將消息從隊列中移出。
4 CPCI通信仿真
硬件設備內部處理模塊板之間的數據交互稱為CPCI通信。CPCI通道的仿真策略是創建一個共享內存區,主要完成不同模塊板之間的數據通信。CPCI模塊要完成通信功能,需要定義CPCI端口、CPCI通道。緩沖區端口分為采樣和隊列端口,采樣端口一般用于傳輸周期性變化的數據,而隊列端口一般用于傳輸非周期性變化的數據。
采樣端口存儲的是最新消息,當接收到新消息后,消息才會被更新,否則保持原先緩沖區內容不變。隊列端口能夠存儲多條消息,后續發送的消息不會覆蓋前面的消息,而是以隊列的方式存儲至消息尾部。當接收應用數據發送消息時,消息被存儲到端口對應的消息隊列中,如果消息隊列滿,該程序會被阻塞或取消發送;當端口向應用程序發送數據時,從端口消息隊列中取第一個消息發送給應用程序;如果消息隊列為空,系統阻塞應用程序或取消接收。端口的屬性包含緩沖區的最大尺寸,在整體緩沖區中的偏移位置和目的端口的ID。CPCI的讀寫操作與A429類似。
5 結語
通過研究AFDX、A429和CPCI三種機載領域常用總線數據通信的協議特點和處理機制,在PC平臺構建虛擬總線組件架構,仿真總線數據發送和接收處理機制,設計適用于不同總線的緩存管理策略,屏蔽網絡環境的差異性,提供AFDX、A429、CPCI等網絡通訊接口以及在PC端的仿真實現。通過使用已構建的虛擬總線,在PC端進行軟件的前期聯試和驗證,能夠發現軟件設計和開發階段存在的問題,為后期基于機載硬件平臺的系統級交聯驗證提供了功能級的保證,降低系統交聯過程中功能性問題的驗證成本,提高系統驗證效率。
參考文獻:
[1] 楊峰,洪元佳,夏杰,等.AFDX網絡技術綜述[J].電子技術應用,2016,42(4):4-6.
[2] 劉瑞旸.AFDX端系統協議棧分析與設計[D].西安:西安電子科技大學,2015.
[3] 趙永庫,李貞,唐來勝.AFDX網絡協議研究[J].計算機測量與控制,2012,19(1):3137-3139.
[4] 解文濤.ARINC429總線采集器的設計和開發[J].測控技術,2010,29(7):24-27.
[5] 周前柏,馬偉勃.ARINC429通信方式的研究與實現[J].航空計算技術,2010,40(4):121-124.
[6] 支超有.機載數據總線技術及其應用[M].北京:國防工業出版社,2009.
[7] 許燕婷.AFDX端系統協議橈虛擬鏈路層分析及仿真研究[D].上海:上海交通大學,2011.
[8] 杜宏偉,馬捷中.航空電子全雙工交換式以太網及其關機技術研究[J].測控技術,2008,27(12):65-67.
[9] 王綺卉.AFDX核心交換技術的研究與實現[D].西安:西安石油大學,2010.
[10] 鐘杰,何民,王懷勝,等.AFDX架構及協議分析[J].電訊技術,2010,50(1):65-71.
[11] 徐科華.AFDX總線網絡數據傳輸分析[J].民用飛機設計與研究,2009(2):35-40.
[12] 熊華鋼,王中華.先進航空電子綜合技術[M].北京:國防工業出版社,2009.
[13] 高揚,徐景碩.實現ARINC429總線數據傳輸的方法[J].測控技術,2002,21(8):64-65.
[14] 苗劍峰,劉建業,孫永榮,等.高性能導航計算機的ARINC429總線通訊研究與實現[J].計算機測量與控制,2007,15(11):1614-1617.endprint