



摘 要: 通過對1553B通信系統的組成及數據傳輸指令的分析,設計了一種1553B總線數據監測與分析的方法,在此基礎上研制了數據監測與分析軟件。以某型船舶控制系統為實例,對其1553B總線數據進行了監測、顯示及保存。通過分離出有效數據并加以分析研究,得到了通信數據的報文格式、編碼規律和具體含義。研究結果表明,該方法合理可行,為其他類似控制系統的1553B網絡數據分析提供了有益借鑒。
關鍵詞: 控制系統; 1553B總線; 數據監測; 解碼
中圖分類號: TN915.05?34 文獻標識碼: A 文章編號: 1004?373X(2015)03?0040?05
Study on data monitoring and analysis of 1553B bus in a ship control system
HU Jin?hui, HU Da?bin, XIAO Jian?bo
(Naval University of Engineering, Wuhan 430033, China)
Abstract: By analyzing of composition and data transfer commands of communication system with 1553B bus, a data monitoring and analysis method of 1553B bus was designed. Based on this, the data monitoring and analysis software was developed. Taking a ship control system for example, its 1553B bus data was monitored, displayed and saved. The message format, encoding law and specific meaning were acquired by isolation and research of the valid data. The research results prove that the method is reasonable and feasible. It provided a reference for 1553B bus network data analysis of other similar control systems.
Keywords: control system; 1553B bus; data monitoring; decoding
0 引 言
隨著科技的發展,現代武器裝備上的電子設備越來越復雜。將電子設備按一定的協議聯網并加以有效地綜合,使之達到資源和功能共享已成為必然的要求。武器平臺上的聯網技術不同于一般的局域網絡技術,由于其嚴苛的工作環境及其特殊的戰術技術指標,網絡的可靠性和實時性的要求特別高。
1553B總線是由美國提出的飛機內部電子系統聯網的標準,由于其可靠性高、傳輸率較高、技術成熟、易于擴展等優點,在航空航天、軍事裝備等方面得到了廣泛應用。
在某引進型艦船控制系統中,數據總線及網絡通信系統就采用了1553B總線技術,其中央控制系統與眾多分系統相互聯接,聯接關系十分復雜。由于其具體通信協議未知,系統一旦出現故障,很難對其進行定位與排除,嚴重影響到裝備作戰效能的發揮,不利于艦船遂行海上任務。為了使系統在備件測試、維修檢測等過程中,對發生的故障或技術問題能夠準確定位、及時排除,從而保證系統的正常運行,迫切需要對其1553B通信協議進行分析解碼。
本文通過對該型艦船控制系統結構和1553B總線技術的研究,在對遠程終端、總線控制器、總線監視器進行分別設計的基礎上,構建了1553B數據監測與分析硬件平臺,開發了數據監測軟件,以導航系統為例對其通信信號進行了監測與分析,得到了通信數據格式、編碼規律和具體含義,為協議的解碼奠定了基礎。
1 1553B通信系統的組成及數據傳輸指令
1553B總線系統通常由若干子系統通過嵌入式總線接口,經過總線介質互聯而成,各個子系統操作獨立,資源和功能則可通過網絡共享。1553B總線有三種終端:一個總線控制器(BC)來管理和控制總線上的信息傳輸;一個總線監視器(MT)來接收總線上的信息用于總線的測試;其余的都是遠程終端(RT)。每個終端被分配了惟一的總線地址。典型的雙冗余1553B數據總線系統如圖1所示。
BC發起總線上的數據傳輸,只有當BC向某RT發出總線指令后,該RT才能參與數據傳輸。總線指令分為發送指令、接收指令和方式指令,這些指令分別用來命令某RT發送、接收、或執行由方式指令指定的某個動作。BC通過RT回答的狀態字來檢驗傳輸是否成功。總線上的信息是以消息的形式調制成曼徹斯特碼進行傳送的。總共有10種消息定義,如BC至RT傳輸定義、RT至BC傳輸定義、不帶數據字的方式指令定義等。消息由指令字、數據字和狀態字組成,其中指令字結構如圖2所示。
由如上結構可以看出,一個BC最多帶30個RT,每個RT又可以分為30個子地址,并且通過此字結構就可區分是發送指令、接收指令還是方式指令。
2 控制系統數據監測總體設計
2.1 數據監測系統設計原則
要實現對該控制系統數據傳輸網絡有效地監測,必須開發出智能化的、易用的、易維護、高可靠性且能夠滿足實際需求的監測系統。在系統設計中,需要滿足以下要求:
(1) 數據采集方式的便利性。由于艦船空間的限制,不能安裝大量的傳感器和測試設備,而且對系統主干網絡不能改動。
(2) 數據接收的實時性。數據監測的一個重要特征就是在對總線數據監測期間,能實時接收到總線數據并保存。
(3) 可靠性和容錯技術。監測系統的一個重要特性就是長時間可靠工作,還要避免系統癱瘓、數據丟失、漏采誤報等情況,而且系統本身的故障不能對被測設備產生影響。
(4) 良好的人機交互性。要求操作界面簡潔明了,易于操作,減少現場的軟、硬件的維護,提高系統的智能化和使用的靈活性。
2.2 數據監測系統硬件結構
該控制系統通過1553B 總線進行聯系的設備有中央控制臺、數據交換儀和導航系統中的部分設備,結構簡圖如圖3所示。各設備通過數據交換儀連接組成系統的1553B網絡結構,采用便攜式工控機作為監控計算機,利用1553B總線三端耦合器接入網絡。
便攜式工控機和EP?H6273 PCI板卡如圖4所示。EP?H6273是一款高性能的MIL?STD?1553B接口模塊,可以應用于1553B總線系統的測試、仿真。該板卡提供了雙通道的多功能模塊,允許在同一時刻運行BC、BM和RTs的任意組合,可用于系統的測試或仿真等多種功能。
3 系統軟件設計
3.1 軟件流程及部分軟件模塊設計
1553B總線數據監測軟件主要完成兩個方面的工作,一是實現1553B總線數據的模擬通信,二是對總線數據進行監測并保存。軟件采用Borland C++ Builder編制。
根據1553B總線的特點,軟件設計首要實現的是最基本的通信功能,既能在工控機上實現BC、BM、RT功能,又能實現各功能模塊的通信。軟件設計總體框圖如圖5所示。
圖5 軟件設計總體框圖
軟件的主程序部分,通過中斷判斷諸如BC、BM或RT等需要響應的事件,對板卡的功能進行選擇。
3.1.1 1553B總線遠程終端RT
(1) 在設置RT模式時要求先對全局參數進行設置,全局設置包含:Eph6273_SetBroadcast()和Eph6273_SetSa31()。
(2) 調用API函數Eph6273_RT_Init()初始化RT操作模式,初始化操作設置RT的初始值和分配存儲器。
(3) RT設置
① 設置RT地址Buffer,在Eph6273_RT_AbufWrite()函數中設置BUSA、BUSB允許位,同時設置RT狀態字和BIT字;
② 設置RT控制Buffer,調用函數Eph6273_RT_ CbufWrite();
③ 初始化RT數據Buffer,Eph6273_RT_MessageWrite()函數設置中斷允許位和寫入發送數據。
(4) 調用函數Eph6273_RT_StartStop()開始RT仿真。
(5)應用程序在RT開始仿真后,調用函數Eph6273_GetMessageid()將memory地址轉換成RT Buffer地址。利用函數Eph6273_RT_MessageRead()從Memory Buffer讀RT消息。
(6) 利用函數Eph6273_RT_StartStop()停止所有RT的仿真。
3.1.2 1553B總線控制器BC
總線上所有消息的傳輸都由BC激勵和控制,是總線通信的開關。因此,其軟件設計的好壞關系到整個系統的性能。其設計思路為:
(1) Eph6273板卡初始化
調用API函數Eph6273_Init()。
(2) 初始化BC
調用API函數Eph6273 _BC_Init()初始化BC設置,并進行Minor Frame頻率設置、不響應時間設置、最遲響應時間和重試條件設置。
(3) 初始化BC消息
調用API函數Eph6273_ BC_MessageWrite()初始化消息隊列。
(4) 定義幀
(5) 啟動BC
通過調用函數Eph6273_BC_StartStop()開始BC操作,flag為1時開始BC操作。
BC也可以執行簡單的OneShot模式,在OneShot模式中只發送一次指定的消息隊列。在執行OneShot模式時要求設置OneShot參數Eph6273_BC_OneShotInit()和執行OneShot消息Eph6273_BC_OneShotExecute()。
(6) 組織RT發送及接收信息
通過調用函數Eph6273_BC_MessageRead()和Eph6273_BC_MessageWrite()讀寫信息。
(7) 停止BC操作
調用Eph6273_BC_StartStop()函數結束BC操作。
(8) 停止線程運行
通過調用函數Eph6273_Close()停止所有正在運行的線程。
3.1.3 1553B總線監視器BM
BM模式提供了監視和記錄所有消息的功能,也可以過濾掉某些消息。同時BM提供了消息的時間標記和命令、數據、狀態的錯誤信息。
BM記錄所有出現在總線上的消息。BM存儲所有收到的命令、數據和狀態到BM數據存儲區,每個BM Buffer可以存儲10 240個BM消息,BM Buffer是一個首尾相連的存儲空間,當存儲到Buffer尾時自動從頭開始,此時將覆蓋原來的消息。Microcode根據消息狀態和BM中斷允許WORD,判斷是否將消息指針加入中斷隊列。BM可以在中斷控制下工作,Windows在響應中斷時可以獲得中斷類型和存儲器地址,用Eph6273_BM_GetMessageid()函數將存儲器地址轉換為BM Buffer消息地址,應用程序用Eph6273_BM_MessageRead()從存儲器讀BM消息。
Microcode在存儲BM消息到BM Buffer時,不判斷存儲器是否有數據和是否已被讀出,在應用程序中要考慮消息接收速度和BM消息訪問速度,如果消息訪問速度遠小于消息接收速度,將會出現丟失消息的可能。
在BM初始化時,默認是記錄所有消息,也可以過濾掉不關心的數據。過濾是基于命令字處理的(在RT to RT是基于第一個命令字的)。Microcode可以禁止/允許各類消息存儲到BM Buffer中,另外過濾選項可以設置記錄指定消息的第幾條。
應用程序也可以指定一個或多個觸發條件。在BM觸發之前,Microcode不記錄1553B總線上的消息,當觸發條件滿足時,Microcode開始記錄BM消息。
對于每個BM消息,Microcode存儲以下幾項到BM Buffer中:消息中的每一個WORD(命令字、數據字、狀態字);消息時間標記(命令字的Parity Bit出現時的時間點);消息傳輸中的錯誤信息,另外,BM測量RT的響應時間,同時存入到BM Buffer。
BM接收的消息是以命令字開始的,不同的消息類型在命令字后的內容不同,可能是數據字、狀態字,甚至命令字。在此設備中,所有這些都在Microcode中處理,對于應用程序來說處理都是統一長度和固定格式的數據塊API_BM_MBUF。
BM軟件的設置如下:
(1) 用Eph6273_Init或Eph6273_AutoConnectFirst函數初始化模塊,在調用所有的函數之前,都需要先初始化模塊。
(2) 調用Eph6273_BM_Init()函數,此函數設置BM操作。
在默認操作下Microcode記錄所有消息,可以根據需要過濾掉不關心的問題。利用函數Eph6273_BM_FilterWrite()可編輯過濾消息,此函數可以過濾掉RT address/Sub address/ receive?transmit flag相匹配的消息。默認情況下BM記錄所有信息,而不必調用Eph6273_BM_FilterWrite()函數。可以通過API函數Eph6273_BM_TriggerWrite()改變觸發條件,當觸發后Microcode開始記錄消息。默認的觸發條件是從第一條消息開始記錄。
(3) 所有設置完成以后調用Eph6273_BM_StartStop()開始記錄BM消息(根據觸發條件),當收到消息時根據中斷條件產生中斷。消息記錄從觸發后開始,一直到調用[Eph6273_BM_StartStop()]停止記錄或Eph6273_API_ Close()。
總線監視器(BM)軟件設計流程圖如圖6所示。
圖6 總線監視器(BM)軟件工作流程圖
3.2 用戶界面設計
用戶界面包含界面管理。界面管理是將系統中各個子系統功能模塊之間有機結合起來的“紐帶”,負責系統中各個子系統之間的協調控制和調度。用戶可以通過友好的人機界面,自然語言環境下利用鍵盤、鼠標向系統、計算機發出各種指令完成對總線上的信號的監測,并在硬盤上進行存儲。所設計的軟件主界面如圖7所示。
圖7 1553B總線監測軟件主界面
軟件啟動后,進入圖7所示界面。在當前界面單擊“連接設備”,若彈出對話框顯示“Connect Successfully”,則代表設備連接成功,接下來即可進行數據監測。用鼠標單擊“BM初始化”,開始監測總線數據。在BM顯示窗口里顯示監測到的總線數據,而在右側BM小窗口顯示的是消息類型、命令字、中斷狀態、RT狀態、時間等信息。
4 數據監測與分析實例
實船數據的獲取是檢驗所研究的1553B數據監測與分析軟件工作正常與否的重要方面之一。利用1553B總線三端耦合器,將安裝有EP?H6273 PCI板卡的便攜式工控機置于實船被監測系統網絡中,通過上述數據分析軟件對采集到的1553B數據進行采集、顯示及保存。試驗流程圖如圖8所示。
由于選用的EP?H6273板卡是多功能的,通過軟件還可以在便攜式工控機上實現1553B總線數據的仿真傳輸功能,即同時實現BC、BM、RT間的數據通信。
以某采集過程為例:通過在中央控制臺手動輸入參數,獲得導航系統經由數據交換儀與中央控制臺之間進行通信的數據包A1,A20。由相關資料可知,數據包A1是以1 Hz的頻率發送的,其內容為:日期、定位時間、本船緯度、本船經度、流速、流向、位置誤差、航向誤差、絕對速度誤差、相對速度誤差、龍骨水下深度等;數據包A20是以20 Hz的頻率發送的,其內容為:本船航向、航跡、橫傾、縱傾、指北速度分量、指東速度分量、絕對速度、相對速度、定位時間、校驗碼。試驗通過改變某一參數來確定與之對應的代碼,之后多次改變輸入參數,進行多次采樣。所采集到的數據以文本格式導出并保存,便于利用相關軟件進行數據處理。
由監測到的數據得知:以0200為標志符的數據包出現20次后,緊接著出現一個以0100為標識符的數據包,由此知以0200為標志符的數據包就是A20數據包,以0100為標志符的數據包就是A1數據包。
總線數據代碼與實際參數的對應關系包括許多數據常數,可分為經緯度常數、角度常數、距離常數、速度常數、時間常數等。從數據格式的表示可知,數據的范圍為0~ffff。對不同類別的數據可通過一定的比例因子進行轉換表示。如下式所示:
[y=a?i=14xi?116i]
式中:[a]為比例因子;[xi]為十六進制數據的從左邊起第[i]位數;[y]為十進制數。
通過對鍵盤輸入參數與相應存儲器的數據比較進行分析。比如,求取緯度與其總線數據代碼關系的方法時,根據采集到的數據,利用Matlab工具編程可得到比例因子[a=180°×2-31。]依次類推,可計算出大部分常數的比例因子,如緯度、經度、流速、流向、位置誤差、航向誤差、絕對速度誤差、航向、航跡、橫傾、縱傾等。
5 結 語
本文通過對1553B通信系統的組成及數據傳輸指令的分析,設計了一種1553B總線數據監測與分析的方法,在此基礎上研制了數據監測與分析軟件。以某型船舶控制系統為實例,對其1553B總線數據進行了監測、顯示及保存。通過分離出有效數據并加以分析研究,得到了通信數據的報文格式、編碼規律和具體含義,有助于實現系統各分設備之間的信號調試與檢測等工作,并為處理其他類似問題提供了有益借鑒。
參考文獻
[1] 熊鷹.MIL?STD?1553B總線控制器在SST中的應用[D].北京:中國科學院研究生院,2002.
[2] 楊春英.1553B數據總線的設計[J].艦船科學技術,1998(5):61?65.
[3] 石紅梅.用FPGA實現1553B總線接口中的曼徹斯特編碼器[J].單片機與嵌入式系統應用,2004(4):42?46.
[4] 侯青劍,繆棟.1553B總線及其在測控網絡中的實現[J].計算與測量技術,2005,32(3):24?26.
[5] 劉云峰,繆棟,劉凡軍.1553B總線及其在電液伺服系統中的應用[J].機床與液壓,2004(9):106?108.
[6] 王錦超,李飛,沈明玉.網絡數據包的協議分析算法設計與實現[J].計算機技術與發展,2006,16(4):30?32.