• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      多電飛機BPCU自動測試平臺總線通訊技術(shù)研究

      2020-01-03 01:24:24
      計算機測量與控制 2019年12期
      關(guān)鍵詞:線程以太網(wǎng)通訊

      (南京航空航天大學(xué) 自動化學(xué)院,南京 210016)

      0 引言

      隨著航空綜合技術(shù)的快速發(fā)展,多電飛機供配電系統(tǒng)已由集中的供配電形式轉(zhuǎn)變?yōu)楦咝У姆植际阶詣庸┡潆娦问?。而BPCU(即匯流條功率控制器)作為供電系統(tǒng)的管理和狀態(tài)監(jiān)測環(huán)節(jié),其關(guān)鍵性和重要性也日益突出,因此有必要建立BPCU的自動測試平臺。

      國內(nèi)目前關(guān)于匯流條功率控制器自動測試平臺的設(shè)計和研究成果較少,文獻[1]設(shè)計了基于LabVIEW的測試試驗系統(tǒng),利用計算機模擬飛機電網(wǎng)運行狀態(tài),通過以太網(wǎng)TCP協(xié)議將故障指令發(fā)送給下位機,同時測試BPCU的性能指標(biāo),實現(xiàn)了自動化測試。但由于研究時間較早,模擬電網(wǎng)以及總線通訊技術(shù)的研究不能很好滿足實際BPCU性能測試的要求。

      本文搭建的BPCU自動測試平臺主要包括BPCU測試樣機、模擬電網(wǎng)、測試管理計算機、電網(wǎng)管理計算機以及通訊管理計算機等硬件設(shè)備,其通訊網(wǎng)絡(luò)包括AFDX通訊、以太網(wǎng)通訊、TTP/C通訊等不同的通訊方式。使用編程軟件建立統(tǒng)一的通訊網(wǎng)絡(luò),并且保證通訊系統(tǒng)的實時性、穩(wěn)定性以及高效性,是通訊系統(tǒng)設(shè)計的關(guān)鍵。

      1 BPCU測試平臺通訊架構(gòu)

      BPCU,即匯流條功率控制器,是多電飛機供電系統(tǒng)的重要組成部分。其功能是對飛機的供配電系統(tǒng)進行管理和控制,完成對飛機不同工作狀態(tài)下的供電模式轉(zhuǎn)換,在緊急情況下完成功率分配,保證應(yīng)急匯流條供電情況正常等,并把狀態(tài)信息通過數(shù)據(jù)總線發(fā)送給機電管理系統(tǒng)顯示,同時通過警報裝置顯示供電系統(tǒng)的故障信號[2]。

      針對BPCU的功能和性能,本文構(gòu)建了多電飛機BPCU測試平臺的電網(wǎng)控制邏輯架構(gòu)以及通訊系統(tǒng)架構(gòu),如圖1所示。

      圖1 BPCU 測試平臺架構(gòu)

      BPCU測試平臺的通訊系統(tǒng)主要由通訊管理計算機完成信息的管理和傳輸。測試系統(tǒng)的通訊程序由兩部分構(gòu)成:

      1)通訊管理計算機通過AFDX總線與AFDX交換機連接,通過AFDX交換機,通訊管理計算機可以與多個終端進行通訊。本文的測試系統(tǒng)中BPCU包括左BPCU(LBPCU)與右BPCU(RBPCU)。另外,兩臺BPCU也通過TTP/C總線與通訊管理計算機連接,將LBPCU和RBPCU作為TTP/C總線的兩個節(jié)點,實現(xiàn)兩臺BPCU之間的信息交互[3]。

      2)通訊管理計算機通過網(wǎng)絡(luò)線纜與以太網(wǎng)交換機連接,通過以太網(wǎng)交換機,與電網(wǎng)管理計算機以及測試管理計算機進行通訊。電網(wǎng)管理計算機執(zhí)行的任務(wù)主要包括:控制模擬電網(wǎng)及程控電源,通過LabVIEW軟件控制模擬電網(wǎng)運行于匯流條有電與沒電狀態(tài),并模擬二次電源運行、電流狀態(tài)、接觸器狀態(tài)等。測試管理計算機執(zhí)行的任務(wù)主要包括:自動測試項目的管理以及電網(wǎng)狀態(tài)的檢測,通過LabVIEW界面顯示模擬電網(wǎng)運行的情況。

      表1 通訊網(wǎng)絡(luò)節(jié)點

      2 ARINC664雙端口終端網(wǎng)卡

      測試平臺通訊管理計算機使用的AFDX通訊板卡為ARINC664高性能 AFDX 終端網(wǎng)卡,主要實現(xiàn)AFDX網(wǎng)絡(luò)的信息傳輸功能。

      PCI/PMC/PXI-3500板卡的系統(tǒng)如圖2所示,主要由前面板接口、網(wǎng)絡(luò)接口模塊、FPGA控制模塊和 PCI橋芯片模塊組成。其中,網(wǎng)絡(luò)接口模塊提供相互獨立的兩路發(fā)送通道和兩路接收通道,也可以作為一對冗余端口使用。通過 HDMI 接插件可以提供IRIG-B時鐘同步接口,TRIG觸發(fā)輸入和輸出,RS232接口。網(wǎng)絡(luò)接口模塊與PCI橋芯片間的通信由FPGA控制。ARINC664提供了DLL動態(tài)鏈接庫,通過調(diào)用CAPI函數(shù)可以方便地使用板卡的相應(yīng)功能。所有的C-API函數(shù)及其所需參數(shù)都在頭文件AFDX_Card.h中有定義。

      3 通訊程序軟件設(shè)計

      與通訊管理計算機相互連接的終端包括兩臺管理計算機和兩臺BPCU,其中兩臺管理計算機基于windows操作系統(tǒng),使用Labview編程;BPCU基于Vxworks實時操作系統(tǒng),使用VC++環(huán)境編程。針對通訊終端的不同操作環(huán)境,通訊管理計算機選擇windows操作系統(tǒng),采用VC++環(huán)境設(shè)計軟件程序,利用接口函數(shù)將多種通訊技術(shù)結(jié)合提高通訊效率。

      3.1 Windows系統(tǒng)下以太網(wǎng)通訊

      圖3顯示了通過以太網(wǎng)交換機進行信息傳輸?shù)娜_管理計算機的連接方式,包括主機和以太網(wǎng)交換機中的協(xié)議、通訊程序與Winsock API之間的關(guān)系。通訊程序通過Winsock API以虛擬的方式訪問UDP/TCP提供的服務(wù)。

      圖3 使用winsock以太網(wǎng)通訊框圖

      套接字是支持TCP/IP通信的基本操作單元,windows系統(tǒng)下使用的winsock是網(wǎng)絡(luò)編程的規(guī)范,同時也是一種標(biāo)準(zhǔn)API和網(wǎng)絡(luò)編程接口。套接字通訊可以分為兩種,即面向連接的套接字(TCP)和面向無連接的套接字(UDP),為不同需求的通訊程序提供了解決手段[4]。圖4是面向無連接的套接字通信工作的流程和基本原理。

      圖4 面向無連接的套接字通信工作的流程

      通常情況下,Ethernet通訊使用TCP協(xié)議,由于TCP通訊需先建立USER與SERVER之間的連接,因此能保證傳輸?shù)臏?zhǔn)確性和穩(wěn)定性。而UDP協(xié)議由于保證實時性和高效性而犧牲了傳輸?shù)目煽啃裕邮斩藷o法保證能夠準(zhǔn)確接收到對應(yīng)發(fā)送端的信息。但AFDX使用冗余管理的方式克服了UDP通訊的可靠性問題,因此本程序中以太網(wǎng)通訊也選用UDP保證傳輸?shù)膶崟r性,對于可能出現(xiàn)的丟包、誤碼情況進行實驗測試后判斷是否滿足要求[2]。

      3.2 AFDX冗余通訊管理

      AFDX(Avionics Full Duplex Switched Ethernet)即航空電子全雙工交換式以太網(wǎng),是在以太網(wǎng)(IEEE 802.3)標(biāo)準(zhǔn)基礎(chǔ)上發(fā)展出來的一種確定性網(wǎng)絡(luò),遵循ARINC664協(xié)議的定義,主要特點是數(shù)據(jù)傳輸?shù)膶崟r性和可靠性[5]。AFDX系統(tǒng)由終端機、AFDX交換機和VL鏈路組成,采用全雙工(Full Duplex)方式連接,如圖5所示。

      圖5 航空電子AFDX網(wǎng)絡(luò)端系統(tǒng)

      AFDX終端一般是指符合ARINC664標(biāo)準(zhǔn)的板卡,板卡為用戶提供了API函數(shù)接口,方便了各設(shè)備的通訊程序編寫。AFDX交換機是在以太網(wǎng)交換機的基礎(chǔ)上改進的,能實現(xiàn)全雙工互聯(lián)的設(shè)備,主要完成Ethernet數(shù)據(jù)幀轉(zhuǎn)發(fā)的功能。傳統(tǒng)以太網(wǎng)采用動態(tài)路由的尋址方式使得傳輸路徑不確定,而AFDX網(wǎng)絡(luò)是一種確定性網(wǎng)絡(luò),采用虛鏈路來實現(xiàn)路由的選擇,虛鏈路VL將一條物理鏈路分成多條邏輯上獨立的 VL,每條VL都有其獨立的參數(shù),通過這些參數(shù)的設(shè)置來控制數(shù)據(jù)在VL上的傳輸[6]。

      本測試系統(tǒng)的通訊軟件使用ARINC664終端網(wǎng)卡提供的API函數(shù)庫。函數(shù)庫中包含消息發(fā)送函數(shù)AfdxCardComSendMsg以及消息接受函數(shù)AfdxCardComRecvMsg,因此在編程過程中無需重復(fù)以太網(wǎng)通訊的調(diào)用winsock API設(shè)置UDP端口的工作。

      調(diào)用板卡API時,需要對AFDX通訊網(wǎng)絡(luò)的雙余度冗余管理模式進行設(shè)置。雙余度冗余通訊是指AFDX通訊網(wǎng)絡(luò)設(shè)置多條通訊鏈路,兩個終端在傳輸信息時一般由兩條鏈路同時傳輸相同信息,保證數(shù)據(jù)不會由于意外或傳輸?shù)牟环€(wěn)定性而導(dǎo)致數(shù)據(jù)傳輸失敗,這樣可以有效地避免UDP通訊的不可靠性對系統(tǒng)造成的影響,如圖6所示。

      圖6 冗余管理示意圖

      根據(jù)ARINC664終端網(wǎng)卡提供的數(shù)據(jù)結(jié)構(gòu)TAfdxVlCfg中定義的網(wǎng)絡(luò)完整性校驗使能參數(shù)、冗余使能參數(shù)以及最大Skew值,冗余管理需要經(jīng)過完整性檢查和冗余判斷兩個步驟。AFDX在打包數(shù)據(jù)幀過程中封裝了一個8位的幀序列號SN,完整性檢測模塊就是通過PSN(即同一VL中前一幀的SN)判斷該數(shù)據(jù)幀是否有效。通過完整性檢查的幀需再進行冗余管理[1]。

      最大skew值(nSkewMax)指互為冗余的幀最大允許的傳輸時間間隔,通過檢測兩個有效幀之間的時間間隔判斷其是否互為冗余。程序中設(shè)置nSkewMax=100,即間隔時間不超過100毫秒即為冗余幀。由數(shù)據(jù)幀的SN值判斷其有效性,再由兩個有效數(shù)據(jù)幀的接受時間間隔判斷是否互為冗余幀,即為程序的冗余管理策略,流程圖如圖7所示。

      圖7 冗余管理算法流程圖

      在數(shù)據(jù)結(jié)構(gòu)EAfdxRxMibType中包含各種不同情況下數(shù)據(jù)幀丟棄的類型,包括端口未使能丟棄幀、SN錯誤丟棄幀、冗余錯誤丟棄幀等,程序中添加查看信息代碼,以識別不同情況下丟棄數(shù)據(jù)幀的原因。

      另外,針對多電飛機中的重要供電部分,配電系統(tǒng)設(shè)置了雙BPCU的冗余管理,即LBPCU和RBPCU均傳輸對應(yīng)數(shù)據(jù)至測試系統(tǒng)中,構(gòu)成雙余度的管理系統(tǒng)。

      因此在AFDX雙網(wǎng)絡(luò)冗余的基礎(chǔ)上,還需要對雙BPCU冗余通訊進行管理。首先定義RBPCU傳輸?shù)臄?shù)據(jù)優(yōu)先級高于LBPCU。當(dāng)兩個BPCU同時傳輸數(shù)據(jù)至通訊管理計算機時,先判斷信息有效性,若兩個BPCU的信息均有效,且字符串內(nèi)容相同時,丟棄LBPCU的信息,并傳輸相應(yīng)的信息給測試管理計算機[7]。

      3.3 多線程通訊任務(wù)

      單while循環(huán)下的通訊任務(wù)能夠完成點對點的通訊,但由于recv函數(shù)與send函數(shù)相互阻塞,導(dǎo)致無法實現(xiàn)信息的單獨接收和發(fā)送。另外由于通訊管理計算機是BPCU測試平臺通訊網(wǎng)絡(luò)的管理節(jié)點,完成的任務(wù)為各終端信息的相互傳遞工作,為保證軟件的運行效率和通訊轉(zhuǎn)發(fā)的速率,需要使用多線程同步通訊技術(shù)。

      為了防止將主線程設(shè)為任意一條通訊線路可能造成的阻塞情況,在主線程中使用函數(shù)WaitForMultipleObjects確保子線程之間能同步執(zhí)行,主線程監(jiān)視每一個子線程的執(zhí)行情況,并且無限期等待子線程執(zhí)行,確保傳輸數(shù)據(jù)不會丟失。當(dāng)通訊線程數(shù)不確定的情況下,可在主線程中使用while函數(shù)循環(huán)創(chuàng)建線程,但是while循環(huán)可能造成線程擁堵以及重復(fù)創(chuàng)建線程浪費資源的情況。本程序中主要執(zhí)行的子線程通訊任務(wù)如圖8所示,包括兩臺BPCU之間的通訊、BPCU與測試管理計算機之間的通訊、測試管理計算機向電網(wǎng)管理計算機發(fā)送信息,通訊線程為6條,因此可以直接使用線程組進行管理,避免了擁堵和浪費資源的情況。兩個節(jié)點之間的相互通訊分為兩條互斥的子線程,使用CCriticalSection類來控制鏈表,構(gòu)建數(shù)據(jù)臨界區(qū),保護線程的共享數(shù)據(jù)在通訊過程中的安全性。

      圖8 線程通訊任務(wù)

      3.4 通訊程序優(yōu)化

      針對多電飛機BPCU通訊程序的需求,子線程中將BPCU發(fā)送函數(shù)AfdxCardComSendMsg與測試管理計算機接收函數(shù)Recv放在一個While循環(huán)中即一個子線程完成BPCU發(fā)送的信息接收、信息反饋處理、將處理過的信息返回給測試管理計算機的任務(wù),如圖9所示。該方案可將發(fā)送與接收兩個線程并為同一線程,同時可以保證接收信息經(jīng)過處理后發(fā)送,保證信息正確性,也節(jié)約了通訊計算機的線程資源。

      圖9 子線程通訊流程

      在數(shù)據(jù)傳輸過程中,通訊程序可能出現(xiàn)的問題包括:

      1)無法與BPCU進行信息交互。

      2)接收的數(shù)據(jù)被截斷,或發(fā)送數(shù)據(jù)被置零。

      實現(xiàn)AFDX通訊的關(guān)鍵參數(shù)包括終端機的IP地址、使用的UDP號以及VL鏈路號。對于不同的ARINC664板卡,IP地址的設(shè)置方式存在差異,本測試系統(tǒng)使用的板卡IP地址為10.ES高八位.ES低八位.分區(qū)號,ES以及分區(qū)ID均在程序中有對應(yīng)的定義。當(dāng)兩個終端機的通訊程序中,IP地址設(shè)置為對方的IP,且UDP號與VL鏈路號均相同時,才能實現(xiàn)通訊功能。因此針對不同的BPCU,需了解其程序中的具體設(shè)置[8]。

      根據(jù)BPCU信息傳輸協(xié)議,AFDX通訊系統(tǒng)傳輸?shù)臄?shù)據(jù)為char型字符串,每一位字符均為0x00格式。對于char型字符串,0x00字符即為’

      麻栗坡县| 新竹市| 威信县| 吉木萨尔县| 六盘水市| 江源县| 昔阳县| 历史| 象山县| 临沂市| 清原| 盐源县| 凤庆县| 酉阳| 奎屯市| 张家港市| 师宗县| 维西| 吴川市| 绥宁县| 陈巴尔虎旗| 西宁市| 松阳县| 永靖县| 呈贡县| 广平县| 宣恩县| 克拉玛依市| 略阳县| 扬州市| 鄱阳县| 山东省| 祁连县| 平顺县| 新沂市| 梨树县| 教育| 随州市| 宁晋县| 保山市| 海南省|