国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于COTS的航天器CAN總線測(cè)試方案

2024-03-12 01:51:14李宏亮譚征
航天器工程 2024年1期
關(guān)鍵詞:測(cè)試軟件輪詢航天器

李宏亮 譚征

(北京空間飛行器總體設(shè)計(jì)部,北京 100094)

控制器局域網(wǎng)(CAN)總線簡(jiǎn)稱CAN總線,是一種串行通信協(xié)議總線,因其高可靠性、較低成本、高靈活性等特點(diǎn)被廣泛應(yīng)用于包括工業(yè)控制、機(jī)械制造、航空航天等工業(yè)領(lǐng)域[1-3]。近年來,隨著微小航天器應(yīng)用需求的不斷攀升,為兼顧航天器數(shù)據(jù)通信需求和總體成本,越來越多的航天器選擇使用CAN總線作為星載總線通信方案。

航天器CAN總線測(cè)試實(shí)現(xiàn)方法種類繁多,在硬件架構(gòu)層面,基于現(xiàn)場(chǎng)可編程門陣列(FPGA)的總線通信方法被用于進(jìn)行衛(wèi)星CAN總線數(shù)據(jù)傳輸及星上運(yùn)動(dòng)機(jī)構(gòu)、電源控制器等單機(jī)或部件的調(diào)試測(cè)試[4-6];基于單片機(jī)芯片模擬CAN總線通信節(jié)點(diǎn)功能,并用于小衛(wèi)星CAN總線通信測(cè)試驗(yàn)證[7];利用嵌入式虛擬軟件測(cè)試平臺(tái)模擬CAN總線接口功能,也被用于航天器CAN總線性能測(cè)試[8]。某衛(wèi)星微振動(dòng)測(cè)量系統(tǒng)CAN總線測(cè)試中,通過數(shù)字信號(hào)處理(DSP)驅(qū)動(dòng)CAN總線控制器芯片進(jìn)行星地總線接口測(cè)試[9]。然而,上述測(cè)試方案的實(shí)現(xiàn)或依賴于高度定制化的工業(yè)機(jī)箱,或僅利用接口電路板進(jìn)行接口調(diào)試,均無法勝任航天器密集綜合電性能測(cè)試對(duì)測(cè)試設(shè)備集成度、可靠性、低成本的復(fù)合要求。由于國(guó)際標(biāo)準(zhǔn)化組織在ISO 11898-1標(biāo)準(zhǔn)[10]中僅規(guī)定了CAN總線物理層和數(shù)據(jù)鏈路層協(xié)議格式,對(duì)應(yīng)用層數(shù)據(jù)格式并未作詳細(xì)規(guī)定,各行業(yè)CAN總線測(cè)試軟件對(duì)總線應(yīng)用層數(shù)據(jù)格式的設(shè)計(jì)通常僅適用于自身特定工作任務(wù),復(fù)用性較差;此外,航天器星務(wù)管理系統(tǒng)對(duì)節(jié)點(diǎn)間總線數(shù)據(jù)的輪詢-應(yīng)答實(shí)時(shí)性也有明確限制,須軟硬件具備完善的適配性優(yōu)化設(shè)計(jì)。

為解決上述問題,本文提出一種基于商用貨架產(chǎn)品(COTS)CAN總線硬件模塊和配合支持應(yīng)用層數(shù)據(jù)格式動(dòng)態(tài)配置的CAN總線測(cè)試軟件,完成航天器CAN總線系統(tǒng)級(jí)測(cè)試的方案,該方案具有成本低、通用性好、設(shè)備規(guī)模小、測(cè)試接口易于與航天器綜合測(cè)試系統(tǒng)集成等特點(diǎn),可有效支持航天器CAN總線系統(tǒng)級(jí)測(cè)試實(shí)施。

1 航天器CAN總線架構(gòu)及測(cè)試需求

航天器CAN總線網(wǎng)絡(luò)通常采用雙冗余總線網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示,包括A、B兩條總線,二者互為備份。每條總線均為雙絞線,兩條導(dǎo)線分別標(biāo)識(shí)為CAN-H和CAN-L,數(shù)據(jù)信號(hào)在總線上傳輸時(shí)為差分信號(hào),使CAN總線具有較強(qiáng)的抗干擾能力。為消除信號(hào)在總線末端反射帶來的電壓變化,每條總線兩端均配置一個(gè)終端匹配電阻。各網(wǎng)絡(luò)通信節(jié)點(diǎn)同時(shí)連接在A、B兩條總線上,在任一時(shí)刻,主節(jié)點(diǎn)選擇使用兩條總線中的一條與從節(jié)點(diǎn)通信,從節(jié)點(diǎn)應(yīng)答主節(jié)點(diǎn)使用的總線與主節(jié)點(diǎn)發(fā)送數(shù)據(jù)使用的總線保持一致。

圖1 航天器CAN總線網(wǎng)絡(luò)結(jié)構(gòu)

航天器CAN總線是器上星務(wù)數(shù)據(jù)管理分系統(tǒng)進(jìn)行星內(nèi)、星間總線數(shù)據(jù)通信的物理基礎(chǔ),承擔(dān)著總線數(shù)據(jù)傳輸?shù)闹匾蝿?wù)。航天器CAN總線功能、性能測(cè)試是整器綜合電性能測(cè)試的重要內(nèi)容之一。綜合當(dāng)前主流航天器平臺(tái)任務(wù)類型,航天器CAN總線測(cè)試需求主要包括以下幾方面。

(1)通信節(jié)點(diǎn)模擬。為驗(yàn)證航天器CAN總線設(shè)計(jì),需要總線測(cè)試設(shè)備具備總線通信節(jié)點(diǎn)模擬能力。CAN總線通信節(jié)點(diǎn)的物理層和數(shù)據(jù)鏈路層功能由硬件模塊實(shí)現(xiàn),該部分功能雖有不同實(shí)現(xiàn)方式,但具有高度通用性,因此通常通過應(yīng)用層數(shù)據(jù)協(xié)議的差異性作為CAN總線通信節(jié)點(diǎn)的區(qū)分方式。CAN總線測(cè)試設(shè)備需要具備對(duì)不同CAN總線應(yīng)用層協(xié)議設(shè)計(jì)的適應(yīng)性,通過靈活可調(diào)節(jié)的協(xié)議字段自定義配置能力,滿足不同航天器的總線通信協(xié)議需求。

(2)總線數(shù)據(jù)處理。航天器總線測(cè)試設(shè)備是整器綜合測(cè)試設(shè)備的一部分,除了面向航天器CAN總線實(shí)現(xiàn)必要的節(jié)點(diǎn)模擬功能外,另一重要作用是作為數(shù)據(jù)處理前端,對(duì)測(cè)試中獲取的總線數(shù)據(jù)進(jìn)行分析、處理,使之滿足測(cè)試過程中的數(shù)據(jù)收發(fā)、數(shù)據(jù)查詢、遙測(cè)解析、源碼存儲(chǔ)等測(cè)試需求。以遙測(cè)解析需求為例,由于CAN總線數(shù)據(jù)幀的數(shù)據(jù)域長(zhǎng)度為8byte,當(dāng)航天器遙測(cè)數(shù)據(jù)通過器地CAN總線接口下傳時(shí),整幀遙測(cè)數(shù)據(jù)(幀長(zhǎng)通常遠(yuǎn)大于8byte)會(huì)分解到數(shù)個(gè)至數(shù)十個(gè)CAN總線數(shù)據(jù)幀中;為了滿足綜合測(cè)試總控?cái)?shù)據(jù)服務(wù)的相關(guān)要求,需要總線測(cè)試設(shè)備具備與綜合測(cè)試總控設(shè)備通信及總線數(shù)據(jù)解析、遙測(cè)拼幀、遙測(cè)數(shù)據(jù)轉(zhuǎn)發(fā)、源碼存儲(chǔ)等諸多功能。為了滿足在不具備整器加電的條件下可以實(shí)施相關(guān)測(cè)試設(shè)備調(diào)試的需求,CAN總線測(cè)試設(shè)備還需具備總線數(shù)據(jù)回放、數(shù)據(jù)格式自定義等功能。當(dāng)總線測(cè)試設(shè)備作為主節(jié)點(diǎn)時(shí),需按照規(guī)定的時(shí)間間隔向總線發(fā)出廣播數(shù)據(jù)、輪詢數(shù)據(jù)等,并可設(shè)置數(shù)據(jù)接收超時(shí)閾值,當(dāng)發(fā)出需要從節(jié)點(diǎn)應(yīng)答的數(shù)據(jù)后,在設(shè)定時(shí)間內(nèi)準(zhǔn)確接收從節(jié)點(diǎn)應(yīng)答數(shù)據(jù),如在設(shè)定的超時(shí)閾值內(nèi)未正常收到應(yīng)答數(shù)據(jù),可自主進(jìn)行通信過程處置;當(dāng)作為從節(jié)點(diǎn)時(shí),需按照規(guī)定的應(yīng)答時(shí)間以規(guī)定數(shù)據(jù)格式正確應(yīng)答主節(jié)點(diǎn)數(shù)據(jù)。

(3)總線數(shù)據(jù)監(jiān)視及過濾。在航天器測(cè)試中實(shí)時(shí)獲取當(dāng)前工作總線上各節(jié)點(diǎn)通信數(shù)據(jù),具備數(shù)據(jù)源碼查詢、存儲(chǔ)等基本能力。為了區(qū)分星務(wù)總線數(shù)據(jù)中不同應(yīng)用數(shù)據(jù)類型,通常將CAN總線數(shù)據(jù)幀中仲裁域部分進(jìn)行自定義,常見的定義類型包括數(shù)據(jù)優(yōu)先級(jí)、通信地址、幀類型、信息標(biāo)識(shí)、幀序列標(biāo)識(shí)等。為了在系統(tǒng)級(jí)測(cè)試中達(dá)到理想的數(shù)據(jù)監(jiān)視效果,需要測(cè)試方案具備根據(jù)總線數(shù)據(jù)仲裁域自定義類型、星務(wù)時(shí)間進(jìn)行實(shí)時(shí)和非實(shí)時(shí)數(shù)據(jù)過濾功能,以便于快速定位分析所需的特定數(shù)據(jù)類型。需要注意的是仲裁域數(shù)據(jù)的類型定義方式是根據(jù)不同航天器的特定工程任務(wù)專門制定的,不同航天器的仲裁域數(shù)據(jù)子域定義方式可能完全不同,要求測(cè)試方案具備適應(yīng)航天器總線數(shù)據(jù)應(yīng)用層協(xié)議格式、自定義數(shù)據(jù)子域的能力。

2 CAN總線測(cè)試方案設(shè)計(jì)

2.1 CAN總線測(cè)試設(shè)備系統(tǒng)架構(gòu)

CAN總線測(cè)試設(shè)備硬件采用COTS CAN總線模塊產(chǎn)品,已被封裝為集成化、小型化工業(yè)設(shè)備盒,便于通過耳片、支架等配件上架集成。采用標(biāo)準(zhǔn)220V供電接口,無需專用直流電源供電。對(duì)外信息接口包括RJ45標(biāo)準(zhǔn)以太網(wǎng)接口和DB9串口,其中以太網(wǎng)接口用于硬件與上位機(jī)軟件通信,串口用于硬件通過總線測(cè)試電纜與航天器上CAN總線節(jié)點(diǎn)通信。硬件模塊集成了終端匹配電阻,可根據(jù)航天器上總線節(jié)點(diǎn)匹配電阻配置情況選擇是否啟用。

CAN總線測(cè)試軟件采用功能模塊方式設(shè)計(jì),將軟件的核心功能分解為數(shù)個(gè)功能模塊,各模塊功能相對(duì)獨(dú)立。模塊間通過特定接口函數(shù)傳遞數(shù)據(jù),保證各模塊功能封裝的完整性和安全性。軟件采用C++語言開發(fā)。

基于COTS的CAN總線測(cè)試設(shè)備架構(gòu)如圖2所示。測(cè)試軟件共劃分為6個(gè)功能模塊,具體如下。

注:圖中TCP/IP為傳輸控制協(xié)議/網(wǎng)際協(xié)議。

(1)設(shè)備管理模塊,負(fù)責(zé)軟件與硬件模塊的通信,通過以太網(wǎng)接口控制硬件模塊中的總線接口開關(guān)、初始化、復(fù)位、數(shù)據(jù)接收、數(shù)據(jù)發(fā)送等,并向軟件傳遞硬件模塊的運(yùn)行狀態(tài)信息。

(2)配置管理模塊,通過配置文件方式管理軟件的全部配置項(xiàng),包括總控MTP通信相關(guān)配置、狀態(tài)參數(shù)匯報(bào)相關(guān)配置、總線應(yīng)用層協(xié)議字段相關(guān)配置、數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)相關(guān)配置等。配置項(xiàng)動(dòng)態(tài)管理是實(shí)現(xiàn)CAN總線測(cè)試設(shè)備適配不同航天器、不同應(yīng)用層總線協(xié)議格式的核心。

(3)網(wǎng)絡(luò)通信模塊,負(fù)責(zé)軟件的對(duì)外網(wǎng)絡(luò)接口實(shí)現(xiàn),建立與總控MTP、測(cè)試前端管理軟件的網(wǎng)絡(luò)連接,接收測(cè)試前端管理軟件發(fā)出的控制命令并向其匯報(bào)自身狀態(tài)參數(shù);接收總控MTP發(fā)出的控制命令并向其轉(zhuǎn)發(fā)處理后的總線數(shù)據(jù),用于數(shù)據(jù)實(shí)時(shí)解析、顯示、源碼入庫等測(cè)試服務(wù)。

(4)數(shù)據(jù)存儲(chǔ)模塊,負(fù)責(zé)對(duì)軟件接收、產(chǎn)生的全部數(shù)據(jù)源碼進(jìn)行分類實(shí)時(shí)存儲(chǔ),按照工作總線、接收/發(fā)送、轉(zhuǎn)發(fā)MTP等類別進(jìn)行分類。

(5)顯示/操作模塊,實(shí)現(xiàn)總線測(cè)試軟件的人機(jī)輸入/輸出交互界面,顯示軟件自身運(yùn)行狀態(tài)、數(shù)據(jù)收發(fā)情況、硬件模塊狀態(tài)等信息,對(duì)測(cè)試人員的操作進(jìn)行響應(yīng)。

(6)數(shù)據(jù)處理模塊,是總線測(cè)試軟件的核心功能模塊。根據(jù)配置管理模塊輸入的配置信息,接收總線數(shù)據(jù)幀,完成數(shù)據(jù)識(shí)別、解析、數(shù)據(jù)重組;發(fā)送總線數(shù)據(jù)幀,根據(jù)總線應(yīng)用層協(xié)議及配置信息,對(duì)接收到的特定總線數(shù)據(jù)按照協(xié)議規(guī)定格式進(jìn)行應(yīng)答。

CAN總線測(cè)試軟件的對(duì)外信息交互接口為兩個(gè)標(biāo)準(zhǔn)以太網(wǎng)接口,分別是與硬件模塊的通信接口(圖2中的網(wǎng)絡(luò)接口A)和與總控主測(cè)試處理機(jī)(MTP)通信接口(圖2中的網(wǎng)絡(luò)接口B)。兩個(gè)接口均采用TCP/IP協(xié)議,均為服務(wù)器/客戶端模式。其中,網(wǎng)絡(luò)接口A中,硬件模塊為服務(wù)器端,CAN總線測(cè)試軟件為客戶端;網(wǎng)絡(luò)接口B中,CAN總線測(cè)試軟件為服務(wù)器端,MTP為客戶端。

2.2 CAN總線COTS產(chǎn)品選用

航天器CAN總線測(cè)試的實(shí)現(xiàn)基于CAN總線硬件終端及適配硬件,遵循航天器CAN總線通信應(yīng)用層協(xié)議的測(cè)試軟件??偩€硬件終端的核心單元是CAN總線控制器、總線控制芯片、總線驅(qū)動(dòng)芯片,其性能直接決定了總線數(shù)據(jù)通信能力的高低。

CAN總線控制器的常見實(shí)現(xiàn)方式包括:CPU芯片控制器、基于FPGA的控制器、基于進(jìn)階精簡(jiǎn)指令集機(jī)器(ARM)架構(gòu)微處理器的控制器等。工業(yè)界已形成較為成熟和全面的商用CAN總線測(cè)試產(chǎn)品線,為便于工業(yè)環(huán)境接口轉(zhuǎn)換,商用CAN總線測(cè)試產(chǎn)品常見的總線轉(zhuǎn)換接口包括:USB接口總線模塊,外設(shè)部件互連標(biāo)準(zhǔn)(PCI)接口總線模塊、高速外設(shè)部件互連標(biāo)準(zhǔn)(PCIe)接口總線模塊、串口接口轉(zhuǎn)總線模塊、以太網(wǎng)接口轉(zhuǎn)總線模塊、Wi-Fi接口轉(zhuǎn)總線模塊等。

綜合當(dāng)前各類航天器產(chǎn)品的總體技術(shù)特點(diǎn)、整器研制周期和成本管控因素,航天器系統(tǒng)級(jí)測(cè)試對(duì)CAN總線測(cè)試設(shè)備的要求如下。

(1)支持各類型CAN總線協(xié)議,如標(biāo)準(zhǔn)CAN總線2.0A協(xié)議(標(biāo)準(zhǔn)幀格式)、CAN總線2.0B協(xié)議(支持?jǐn)U展幀協(xié)議)、可變速率控制器局域網(wǎng)(CAN FD)協(xié)議(支持可變傳輸速率、支持更高數(shù)據(jù)負(fù)載)。

(2)支持總線數(shù)據(jù)格式自定義配置,以適應(yīng)不同航天器總線應(yīng)用層協(xié)議設(shè)計(jì)。

(3)支持總線數(shù)據(jù)快速處理,如某航天器CAN總線標(biāo)準(zhǔn)規(guī)定總線數(shù)據(jù)應(yīng)答轉(zhuǎn)換時(shí)間(主節(jié)點(diǎn)發(fā)送數(shù)據(jù)結(jié)束到從節(jié)點(diǎn)開始發(fā)送數(shù)據(jù)的時(shí)間間隔)不大于3ms,這對(duì)于測(cè)試設(shè)備數(shù)據(jù)實(shí)時(shí)性響應(yīng)提出了很高的要求。

(4)設(shè)備魯棒性高,需要測(cè)試設(shè)備對(duì)總線過載、阻塞等非常規(guī)情況具有較強(qiáng)的適應(yīng)性和容錯(cuò)性,在總線通信異常后可通過復(fù)位、初始化等手段快速恢復(fù)正常工作狀態(tài)。

(5)設(shè)備成本低,硬件接口豐富,軟件可擴(kuò)展性好。

結(jié)合以上設(shè)備需求,本文所述方案選擇CAN總線COTS,主要有幾項(xiàng)關(guān)鍵因素:一是轉(zhuǎn)發(fā)延時(shí)盡可能小;二是具備便捷完備的二次開發(fā)接口;三是價(jià)格盡量低廉。第一方面主要從完成工程任務(wù)的技術(shù)角度考慮,第二、三方面主要從控制研制成本考慮(自研軟件+采購費(fèi)用低)。

從市面上可調(diào)研到的CAN總線模塊產(chǎn)品來看,大部分產(chǎn)品均為USB轉(zhuǎn)CAN產(chǎn)品,該類產(chǎn)品經(jīng)過前期測(cè)試,已證明受限于USB總線傳輸速率,產(chǎn)品自身時(shí)延約為16~20ms,無法滿足工程需求;從工程實(shí)踐出發(fā),選用以太網(wǎng)接口產(chǎn)品是接入綜合測(cè)試系統(tǒng)的最佳接口。

GCAN-202[11]是可調(diào)研到的一款以太網(wǎng)轉(zhuǎn)CAN總線產(chǎn)品,該產(chǎn)品可查詢到的轉(zhuǎn)發(fā)時(shí)延小于5ms,僅支持12V或24V直流供電,同時(shí)未提供明確的二次開發(fā)接口,難以滿足工程需求;GY8505、GY8506系列以太網(wǎng)轉(zhuǎn)CAN總線適配器[12]狀態(tài)與GCAN-202類似,同樣不支持工程需求。

在充分調(diào)研市場(chǎng)主流商用CAN總線模塊產(chǎn)品后,本文提出的總線測(cè)試方案選擇CANFDNET系列[13]以太網(wǎng)轉(zhuǎn)CAN總線硬件模塊(簡(jiǎn)稱硬件模塊)作為測(cè)試硬件設(shè)備,該產(chǎn)品具有較高性能的工業(yè)級(jí)數(shù)據(jù)轉(zhuǎn)換能力,總線控制器采用FPGA架構(gòu),數(shù)據(jù)轉(zhuǎn)發(fā)延時(shí)可低于2ms;同時(shí)將總線接口轉(zhuǎn)換為標(biāo)準(zhǔn)以太網(wǎng)接口,便于設(shè)備以網(wǎng)絡(luò)方式與航天器綜合測(cè)試系統(tǒng)集成;該產(chǎn)品還提供豐富的接口函數(shù)庫,便于使用人員進(jìn)行二次開發(fā)。因此,綜合技術(shù)、成本、接口等各方面因素,本文所選致遠(yuǎn)電子CAN轉(zhuǎn)以太網(wǎng)產(chǎn)品是最優(yōu)選擇。

2.3 CAN總線測(cè)試軟件設(shè)計(jì)

硬件模塊作為總線通信物理終端,主要負(fù)責(zé)CAN總線網(wǎng)絡(luò)中物理層和數(shù)據(jù)鏈路層通信。CAN總線測(cè)試軟件則承擔(dān)著CAN總線應(yīng)用層功能的實(shí)現(xiàn),是總線數(shù)據(jù)處理、協(xié)議格式轉(zhuǎn)換、數(shù)據(jù)輪詢應(yīng)答、工作模式切換等應(yīng)用任務(wù)的實(shí)現(xiàn)載體。

下文對(duì)總線測(cè)試軟件中涉及通信節(jié)點(diǎn)模擬、總線數(shù)據(jù)處理、總線數(shù)據(jù)監(jiān)視及過濾的3個(gè)關(guān)鍵功能實(shí)現(xiàn)方法進(jìn)行介紹。

2.3.1 協(xié)議字段配置

應(yīng)用層協(xié)議字段配置功能是實(shí)現(xiàn)CAN總線測(cè)試軟件型號(hào)復(fù)用、協(xié)議格式動(dòng)態(tài)配置的關(guān)鍵功能。協(xié)議字段配置本質(zhì)上是對(duì)鏈路層數(shù)據(jù)幀格式中的仲裁域(由11位或29位標(biāo)識(shí)符位和1位運(yùn)程位組成)和控制域(由1位標(biāo)識(shí)符擴(kuò)展位、1位保留位、4位數(shù)據(jù)長(zhǎng)度位組成)數(shù)據(jù)位按需進(jìn)行配置管理。

CAN總線數(shù)據(jù)幀根據(jù)CAN總線協(xié)議有2種幀格式,即標(biāo)準(zhǔn)幀和擴(kuò)展幀,分別具有11位仲裁域標(biāo)識(shí)符和29位仲裁域標(biāo)識(shí)符。本文所述測(cè)試軟件按照支持?jǐn)U展幀格式設(shè)計(jì),可兼容標(biāo)準(zhǔn)幀數(shù)據(jù)格式。

不同航天器由于總體設(shè)計(jì)方面的原因,對(duì)總線數(shù)據(jù)幀仲裁域標(biāo)識(shí)符位的用途劃分具有很大的差異性,且各個(gè)型號(hào)的總線業(yè)務(wù)數(shù)據(jù)的種類和數(shù)量各不相同,CAN總線測(cè)試軟件設(shè)計(jì)時(shí)無法預(yù)設(shè)固定格式滿足不同型號(hào)需求。為解決這一問題,本文所述軟件通過動(dòng)態(tài)二維數(shù)組進(jìn)行數(shù)據(jù)位管理。

假設(shè)某航天器須進(jìn)行標(biāo)識(shí)符配置的總線數(shù)據(jù)類型數(shù)量為M。在軟件初始化過程中,將動(dòng)態(tài)創(chuàng)建一個(gè)如圖3所示的大小為M×29的二維字符串指針數(shù)組,數(shù)組的第二維大小為仲裁域擴(kuò)展幀標(biāo)識(shí)符位數(shù)。數(shù)組的第一維實(shí)際上是一組數(shù)量為M的指針,分別指向一塊大小為29bit的內(nèi)存塊,用于存儲(chǔ)當(dāng)前編號(hào)對(duì)應(yīng)總線數(shù)據(jù)幀的仲裁域標(biāo)識(shí)符。軟件配置文件中的數(shù)據(jù)標(biāo)識(shí)符配置格式為IDX1_X2,其中X1、X2可分別取值自0~28的整數(shù),用于標(biāo)記標(biāo)識(shí)符位置。擴(kuò)展幀使用完整內(nèi)存塊,高位在前,低位在后存儲(chǔ);標(biāo)準(zhǔn)幀使用分配內(nèi)存塊的低11位,即18~28位存儲(chǔ)標(biāo)識(shí)符,第0~17字符置0。

圖3 CAN總線幀仲裁域標(biāo)識(shí)符位動(dòng)態(tài)內(nèi)存分配

2.3.2 快速輪詢應(yīng)答

輪詢和應(yīng)答是CAN總線通信中的兩個(gè)重要過程。當(dāng)總線上的主節(jié)點(diǎn)向指定從節(jié)點(diǎn)發(fā)出輪詢數(shù)據(jù)后,從節(jié)點(diǎn)需在規(guī)定時(shí)間內(nèi)向主節(jié)點(diǎn)發(fā)出符合衛(wèi)星總線通信協(xié)議要求的應(yīng)答數(shù)據(jù)。應(yīng)答過程主要由兩部分組成:應(yīng)用層涉及輪詢數(shù)據(jù)接收、輪詢數(shù)據(jù)判別、應(yīng)答數(shù)據(jù)組幀、應(yīng)答數(shù)據(jù)發(fā)送等環(huán)節(jié),主要由CAN總線測(cè)試軟件完成;數(shù)據(jù)鏈路層和物理層要將處理完成的總線數(shù)據(jù)幀組成符合CAN總線協(xié)議的數(shù)據(jù)鏈路幀,并通過物理信道進(jìn)行收發(fā),這部分工作主要由硬件模塊完成。二者共同配合實(shí)現(xiàn)一次數(shù)據(jù)輪詢-應(yīng)答過程。假設(shè)硬件模塊完成一次數(shù)據(jù)接收和發(fā)送的時(shí)間(簡(jiǎn)稱硬處理時(shí)間)為t1,CAN總線測(cè)試軟件完成一次輪詢-應(yīng)答過程對(duì)應(yīng)數(shù)據(jù)處理的時(shí)間(簡(jiǎn)稱軟處理時(shí)間)為t2,則完成一次輪詢-應(yīng)答過程的總時(shí)間為t1+t2。

由于航天器星務(wù)管理計(jì)算機(jī)需要處理大量數(shù)據(jù),為了保證數(shù)據(jù)處理實(shí)時(shí)性,航天器CAN總線通信協(xié)議通常約定在主節(jié)點(diǎn)發(fā)出輪詢數(shù)據(jù)后,從節(jié)點(diǎn)應(yīng)在2~3ms內(nèi)向主節(jié)點(diǎn)回復(fù)應(yīng)答數(shù)據(jù),否則將該次通信視為超時(shí)。這一實(shí)時(shí)性要求,對(duì)于運(yùn)行在以消息響應(yīng)為底層調(diào)度機(jī)制的非實(shí)時(shí)性操作系統(tǒng)上的應(yīng)用軟件來說,并不容易實(shí)現(xiàn)。

本文所述CAN總線測(cè)試方案選擇的硬件模塊,標(biāo)稱單次數(shù)據(jù)收發(fā)時(shí)延小于2ms;將硬件模塊兩路總線通道進(jìn)行自環(huán)回,并通過廠商配套上位機(jī)軟件數(shù)據(jù)時(shí)標(biāo)比對(duì),實(shí)測(cè)該時(shí)延約為1.928ms,即硬件時(shí)間t1為1.928ms。該時(shí)間已接近航天器CAN總線協(xié)議規(guī)定的輪詢-應(yīng)答時(shí)間窗口,需要測(cè)試軟件對(duì)軟處理時(shí)間t2進(jìn)行充分優(yōu)化,以保證單次輪詢-應(yīng)答過程的實(shí)時(shí)性滿足要求。

以某航天器對(duì)外總線接口測(cè)試任務(wù)為例,器上星務(wù)計(jì)算機(jī)作為總線主節(jié)點(diǎn),向作為從節(jié)點(diǎn)的CAN總線測(cè)試軟件發(fā)出遙控?cái)?shù)據(jù)輪詢幀,以檢查航天器對(duì)外總線接口工作狀態(tài)。當(dāng)從節(jié)點(diǎn)有待發(fā)送的遙控?cái)?shù)據(jù)時(shí),在從節(jié)點(diǎn)收到輪詢幀后,發(fā)出生成的遙控?cái)?shù)據(jù);當(dāng)從節(jié)點(diǎn)無待發(fā)送的遙控?cái)?shù)據(jù)時(shí),在從節(jié)點(diǎn)收到輪詢幀后,發(fā)出固定格式的無遙控應(yīng)答數(shù)據(jù)。CAN總線測(cè)試軟件對(duì)上述數(shù)據(jù)輪詢-應(yīng)答過程的處理流程如圖4所示。

圖4 CAN總線測(cè)試軟件輪詢-應(yīng)答處理流程

假設(shè)該航天器發(fā)出遙控輪詢數(shù)據(jù)幀的周期是500ms。在該周期內(nèi),主節(jié)點(diǎn)有且僅有一次發(fā)出輪詢數(shù)據(jù),測(cè)試軟件為保證不遺漏接收數(shù)據(jù),將輪詢-應(yīng)答過程的處理放置于一個(gè)獨(dú)立運(yùn)行的線程中,循環(huán)調(diào)用數(shù)據(jù)接收函數(shù)進(jìn)行數(shù)據(jù)接收操作。在單次循環(huán)中,如收到數(shù)據(jù),以盡可能快的速度完成數(shù)據(jù)處理,發(fā)出數(shù)據(jù),進(jìn)入下次循環(huán);如未收到數(shù)據(jù),直接退出當(dāng)前循環(huán),進(jìn)入下次循環(huán),再次調(diào)用數(shù)據(jù)接收函數(shù)。為避免出現(xiàn)線程反復(fù)進(jìn)出循環(huán),導(dǎo)致軟件大量占用計(jì)算機(jī)硬件資源的情況,在每次退出當(dāng)前循環(huán)后,調(diào)用Sleep函數(shù)強(qiáng)制計(jì)算機(jī)CPU對(duì)該進(jìn)程進(jìn)行短時(shí)休眠,休眠時(shí)間參數(shù)設(shè)置為1ms。

一次數(shù)據(jù)輪詢周期中的大量無效循環(huán)大大降低了測(cè)試軟件的應(yīng)答實(shí)時(shí)性,這是由于未對(duì)數(shù)據(jù)接收過程進(jìn)行針對(duì)性判別導(dǎo)致。另外,操作系統(tǒng)的消息響應(yīng)機(jī)制也難以保證將進(jìn)程的單次休眠時(shí)間控制在毫秒量級(jí)。為此,通過分析軟件-輪詢應(yīng)答過程的執(zhí)行機(jī)制,進(jìn)行以下3個(gè)方面優(yōu)化。

(1)退出當(dāng)前循環(huán)時(shí),對(duì)本次循環(huán)中的接收數(shù)據(jù)計(jì)數(shù)、接收數(shù)據(jù)類型進(jìn)行判別,當(dāng)且僅當(dāng)該次循環(huán)接收到有效數(shù)據(jù)且該數(shù)據(jù)是需要進(jìn)行應(yīng)答響應(yīng)的遙控輪詢數(shù)據(jù)幀時(shí),才進(jìn)行進(jìn)程休眠操作,以減少大量無效循環(huán)的休眠耗時(shí)。

(2)設(shè)置遙控輪詢應(yīng)答幀接收次數(shù)統(tǒng)計(jì),累計(jì)接收達(dá)到一定次數(shù)后,再進(jìn)行進(jìn)程休眠,進(jìn)一步減少進(jìn)程休眠耗時(shí)。

(3)啟動(dòng)數(shù)據(jù)接收線程時(shí),將數(shù)據(jù)接收線程的執(zhí)行優(yōu)先級(jí)設(shè)置為最高級(jí)別(THREAD_PRIORITY_TIME_CRITICAL)。

針對(duì)流程優(yōu)化前后的100次輪詢-應(yīng)答時(shí)間進(jìn)行統(tǒng)計(jì)對(duì)比,統(tǒng)計(jì)結(jié)果分別如圖5和圖6所示??梢园l(fā)現(xiàn),流程優(yōu)化前,由于頻繁進(jìn)程休眠且未對(duì)接收數(shù)據(jù)進(jìn)行針對(duì)性判別,單次輪詢-應(yīng)答時(shí)間表現(xiàn)出明顯的波動(dòng)性,單次應(yīng)答時(shí)間均值約為2.475ms,數(shù)據(jù)方差0.06161;流程優(yōu)化后,單次輪詢-應(yīng)答時(shí)間穩(wěn)定性明顯增加,單次應(yīng)答時(shí)間均值縮短為約2.006ms,數(shù)據(jù)方差0.01411,優(yōu)化幅度明顯。

圖5 流程優(yōu)化前輪詢-應(yīng)答時(shí)間統(tǒng)計(jì)(樣本數(shù)100)

圖6 流程優(yōu)化后輪詢-應(yīng)答時(shí)間統(tǒng)計(jì)(樣本數(shù)100)

2.3.3 總線數(shù)據(jù)過濾

CAN總線測(cè)試軟件的另一重要功能是總線數(shù)據(jù)過濾。數(shù)據(jù)過濾條件通常根據(jù)當(dāng)前衛(wèi)星制定的總線數(shù)據(jù)格式指定。過濾條件設(shè)置字段除仲裁域的標(biāo)識(shí)符位之外,還可以根據(jù)數(shù)據(jù)域內(nèi)特定數(shù)據(jù)進(jìn)行配置。過濾條件設(shè)置實(shí)現(xiàn)方法與軟件配置功能相同,采用動(dòng)態(tài)分配的二維數(shù)組保存。

相比于數(shù)據(jù)處理過程,數(shù)據(jù)過濾過程中需要考慮的因素除數(shù)據(jù)格式外,為便于精細(xì)化檢查總線工作狀態(tài)或進(jìn)行故障診斷,需要精確知曉某個(gè)具體時(shí)間范圍內(nèi)的數(shù)據(jù)情況。

硬件模塊收到總線數(shù)據(jù)后,會(huì)在每幀總線數(shù)據(jù)后添加8byte時(shí)標(biāo)信息,該時(shí)標(biāo)由硬件模塊FPGA程序產(chǎn)生,精度可達(dá)到微秒級(jí)。然而,硬件模塊產(chǎn)生的數(shù)據(jù)時(shí)間是相對(duì)時(shí),其時(shí)間零點(diǎn)是硬件模塊當(dāng)次加電時(shí)刻,難以滿足測(cè)試中通過UTC時(shí)間進(jìn)行數(shù)據(jù)過濾的要求,因此必須進(jìn)行時(shí)間轉(zhuǎn)換。進(jìn)行時(shí)間轉(zhuǎn)換的難點(diǎn)在于,硬件模塊總是先于測(cè)試軟件啟動(dòng)的,總線測(cè)試軟件無法獲得模塊啟動(dòng)的準(zhǔn)確時(shí)刻。

為此,設(shè)計(jì)了如下時(shí)間轉(zhuǎn)換方案。

(1)軟件接收總線數(shù)據(jù)后會(huì)進(jìn)行實(shí)時(shí)存儲(chǔ),記錄收到第一幀數(shù)據(jù)的系統(tǒng)時(shí)間,并將該時(shí)間作為數(shù)據(jù)存儲(chǔ)文件的名稱。

(2)進(jìn)行數(shù)據(jù)過濾時(shí),讀取需要進(jìn)行數(shù)據(jù)過濾的源碼文件,通過文件名稱獲取該文件生成時(shí)的系統(tǒng)時(shí)間Tfile_start,同時(shí)讀取該文件的第一幀數(shù)據(jù)對(duì)應(yīng)的時(shí)間標(biāo)識(shí)碼,獲取該幀數(shù)據(jù)的硬件模塊時(shí)標(biāo)Tdelta;

(3)將硬件模塊時(shí)標(biāo)Tdelta換算為協(xié)調(diào)世界時(shí)間(UTC)時(shí)刻;

(4)通過文件生成系統(tǒng)時(shí)刻Tfile_start與硬件模塊時(shí)標(biāo)Tdelta的差值,計(jì)算得到硬件模塊啟動(dòng)UTC時(shí)刻Tdevice_start;

(5)通過軟件過濾條件中的起始時(shí)刻Tstart、終止時(shí)刻Tstop,分別得到上述兩時(shí)刻相對(duì)硬件模塊啟動(dòng)UTC時(shí)刻Tdevice_start的時(shí)間差值,比較數(shù)據(jù)幀時(shí)標(biāo)與Tstart、Tstop、Tdevice_start的關(guān)系,得到期望時(shí)間段內(nèi)的總線數(shù)據(jù)過濾結(jié)果。

3 應(yīng)用效果

基于COTS的航天器CAN總線測(cè)試方案已成功應(yīng)用于某型號(hào)航天器綜合測(cè)試。圖7展示了CAN總線測(cè)試軟件的運(yùn)行界面。COTS硬件模塊通過總線電纜與被測(cè)航天器CAN總線測(cè)試接口連接,同時(shí)通過千兆以太網(wǎng)線與運(yùn)行CAN總線測(cè)試軟件的計(jì)算機(jī)連接。該計(jì)算機(jī)接入綜合測(cè)試系統(tǒng),總控主測(cè)試處理機(jī)(MTP)可通過設(shè)計(jì)的遠(yuǎn)程控制命令控制硬件模塊開關(guān)、初始化、接口復(fù)位,也可控制總線測(cè)試軟件進(jìn)行總線通道切換、數(shù)據(jù)類型選擇、測(cè)試接口選擇等。圖8展示的軟件中的總線監(jiān)視窗口可以根據(jù)選擇的數(shù)據(jù)過濾條件和起止時(shí)間,進(jìn)行實(shí)時(shí)數(shù)據(jù)過濾和歷史數(shù)據(jù)過濾。型號(hào)測(cè)試應(yīng)用表明:該方案軟硬件協(xié)同運(yùn)行實(shí)時(shí)性良好,數(shù)據(jù)通信無響應(yīng)超時(shí)現(xiàn)象。

圖7 CAN總線測(cè)試軟件界面

圖8 CAN總線測(cè)試軟件數(shù)據(jù)幀過濾功能

硬件模塊和CAN總線測(cè)試軟件整體還作為被管理測(cè)試前端,接入航天器前端測(cè)試設(shè)備自動(dòng)化管理系統(tǒng)[14],通過設(shè)計(jì)的程控命令和狀態(tài)參數(shù),可以實(shí)現(xiàn)設(shè)備遠(yuǎn)程自動(dòng)化監(jiān)控,支持航天器星地一體化自動(dòng)化測(cè)試。

4 結(jié)束語

本文面向航天器CAN總線系統(tǒng)級(jí)測(cè)試,提出了一種基于COTS的通用化、低成本航天器CAN總線測(cè)試解決方案。該方案以COTS產(chǎn)品為硬件基礎(chǔ),自主開發(fā)CAN總線測(cè)試軟件,并針對(duì)不同航天器CAN總線應(yīng)用層數(shù)據(jù)格式差異、總線數(shù)據(jù)通信實(shí)時(shí)性優(yōu)化、數(shù)據(jù)過濾時(shí)標(biāo)轉(zhuǎn)換等方面問題,實(shí)現(xiàn)了總線數(shù)據(jù)應(yīng)用層格式動(dòng)態(tài)配置、數(shù)據(jù)快速輪詢應(yīng)答、數(shù)據(jù)過濾時(shí)標(biāo)精確轉(zhuǎn)換等關(guān)鍵功能,具有硬件設(shè)備規(guī)模小、軟件功能集成度高、適配自動(dòng)化測(cè)試等特點(diǎn),可為后續(xù)航天器CAN總線系統(tǒng)級(jí)測(cè)試的設(shè)計(jì)、實(shí)施提供參考。后續(xù)將開發(fā)CAN總線測(cè)試軟件對(duì)CAN FD協(xié)議靈活數(shù)據(jù)長(zhǎng)度的兼容功能,以進(jìn)一步提升本測(cè)試方案對(duì)航天器CAN總線測(cè)試的支持能力。

猜你喜歡
測(cè)試軟件輪詢航天器
2022 年第二季度航天器發(fā)射統(tǒng)計(jì)
網(wǎng)絡(luò)自適應(yīng)測(cè)試軟件運(yùn)行方法設(shè)計(jì)
2019 年第二季度航天器發(fā)射統(tǒng)計(jì)
基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計(jì)?
2018 年第三季度航天器發(fā)射統(tǒng)計(jì)
2018年第二季度航天器發(fā)射統(tǒng)計(jì)
自動(dòng)化檢測(cè)EPU10A板卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
依托站點(diǎn)狀態(tài)的兩級(jí)輪詢控制系統(tǒng)時(shí)延特性分析
利用時(shí)間輪詢方式操作DDR3實(shí)現(xiàn)多模式下數(shù)據(jù)重排
遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評(píng)價(jià)的研究
龙口市| 南宁市| 青龙| 伽师县| 县级市| 武山县| 绍兴市| 靖远县| 平塘县| 满城县| 莆田市| 河北区| 卢湾区| 闽清县| 开封市| 甘洛县| 蕉岭县| 宜城市| 常宁市| 无锡市| 二连浩特市| 资溪县| 九江市| 西城区| 赤城县| 赤水市| 湖州市| 凯里市| 东丰县| 晴隆县| 讷河市| 德江县| 安泽县| 渝中区| 屏边| 九江市| 中方县| 临沧市| 北海市| 商河县| 南昌县|