航天器嵌入式軟件CAN總線測(cè)試方法研究
引言
隨著航天電子技術(shù)的發(fā)展,航天電子設(shè)備綜合化程度越來(lái)越高,總線技術(shù)已經(jīng)開(kāi)始在航天電子領(lǐng)域得到越來(lái)越廣泛的運(yùn)用。航天器工作環(huán)境惡劣,空間輻射、電磁干擾等都可能通過(guò)硬件影響軟件的正常工作,為實(shí)現(xiàn)"一重故障保業(yè)務(wù)連續(xù),二重故障保航天器安全"的目標(biāo),保證軟件的在軌重構(gòu)功能,總線可靠性和安全性成為在軌航天器的必要保障。CAN總線作為一種串行數(shù)據(jù)通信協(xié)議,因具有高位速率、高抗電磁干擾能力以及錯(cuò)位可查處等可靠性、實(shí)時(shí)性特點(diǎn)而被廣泛應(yīng)用于航天電子的地面、星、箭載子系統(tǒng)的通信功能。
航天器嵌入式軟件與硬件關(guān)系密切,硬件運(yùn)行環(huán)境的特點(diǎn)以及硬件的多樣性顯著影響和制約著軟件的開(kāi)發(fā),"硬件標(biāo)準(zhǔn)選用,軟件定義功能"的設(shè)計(jì)模式被廣泛應(yīng)用,模式的建立為總線通用化測(cè)試提供了充分保障。為保障CAN總線方案的實(shí)施,保證軟件質(zhì)量,越來(lái)越多的基于CAN總線的自動(dòng)化測(cè)試系統(tǒng)被提出,關(guān)于CAN總線的測(cè)試方法和用例卻鮮有提及。
1CAN總線通信硬件架構(gòu)
星載CAN總線一般采用相雙冗余的總線型網(wǎng)絡(luò)結(jié)構(gòu),包括A、B兩條CAN總線,由管理控制單元及其他下位機(jī)組成通信節(jié)點(diǎn)??偩€各節(jié)點(diǎn)CAN總線處理器在上電初始化完成后等待管理控制單元發(fā)送指令、廣播與輪詢,并依據(jù)通信協(xié)議約定的格式完成數(shù)據(jù)的接收與響應(yīng)。
根據(jù)主控芯片和芯片擴(kuò)展差異,CAN總線通信架構(gòu)主要包括:CUP+控制芯片+驅(qū)動(dòng)芯片、FPGA+控制芯片+驅(qū)動(dòng)芯片和FPGA+(CAN軟核)+驅(qū)動(dòng)芯片三種形式??偩€驅(qū)動(dòng)芯片通常采用PCA82C250,控制芯片選用SJA1000系列芯片。如圖1所示,CUP+控制芯片+驅(qū)動(dòng)芯片架構(gòu)(架構(gòu)1)通過(guò)芯片的片選使復(fù)用SJA1000芯片的數(shù)據(jù)讀寫(xiě)信號(hào),根據(jù)外部總線的中斷信號(hào)鑒別總線占用情況,預(yù)設(shè)總線優(yōu)先級(jí)制定總線同時(shí)占用的通信策略。如圖2所示,FPGA++控制芯片+驅(qū)動(dòng)芯片架構(gòu)(架構(gòu)2)基于FPGA+的并行運(yùn)行特性實(shí)現(xiàn)雙SJA1000芯片的獨(dú)立運(yùn)行,同時(shí)處理雙總線發(fā)送與接收,根據(jù)總線優(yōu)先級(jí)排序解析處理指令緩存寄存器。如圖3所示,FPGA+(CAN軟核)+驅(qū)動(dòng)芯片架構(gòu)(架構(gòu)3)中FPGA+集成CAN總線控制功能,縮減了集成電路間的異步交互,軟核方案架構(gòu)對(duì)寄存器的冗余備份、異常通信處理策略的可靠性和安全性提出了更嚴(yán)格的要求。
2嵌入式軟件CAN總線測(cè)試
2.1測(cè)試要點(diǎn)
CAN總線的測(cè)試需要基于需求,對(duì)產(chǎn)品的性能、功能、接口全面覆蓋,易發(fā)、多發(fā)問(wèn)題設(shè)置重點(diǎn)測(cè)試用例,涉及數(shù)據(jù)邊界的測(cè)試用例要涵蓋邊界,針對(duì)星載嵌入式軟件需要對(duì)軟件在高頻次、長(zhǎng)時(shí)間、惡劣環(huán)境下的可靠性和安全性重點(diǎn)關(guān)注,CAN總線測(cè)試實(shí)施重點(diǎn)關(guān)注以下5點(diǎn)內(nèi)容:
(1)測(cè)試總線接收數(shù)據(jù)長(zhǎng)度、格式、內(nèi)容異常情況下軟件自糾能力:
(2)測(cè)試總線過(guò)載情況下軟件接收數(shù)據(jù)緩沖區(qū)的防溢出能力:
(3)測(cè)試總線阻塞、關(guān)閉情況下總線接口自主復(fù)位初始化功能:
(4)測(cè)試滿足時(shí)間性能指標(biāo)的基礎(chǔ)上保留合理的時(shí)間裕度:
(5)測(cè)試瞬時(shí)密集數(shù)據(jù)傳輸?shù)膹?qiáng)度超出軟件處理能力后總線恢復(fù)正常時(shí)軟件恢復(fù)正常工作的能力。
2.2測(cè)試用例
基于CAN總線測(cè)試要點(diǎn)的實(shí)施,對(duì)CAN總線接口的性能、功能、可靠性和安全性等方面進(jìn)行測(cè)試用例設(shè)計(jì),通過(guò)示波器抓取的時(shí)序信號(hào)、遙測(cè)信息的指令計(jì)數(shù)情況確認(rèn)軟件設(shè)計(jì)的正確性。針對(duì)不方便黑盒測(cè)試的功能,利用VTEsT測(cè)試平臺(tái)對(duì)軟件內(nèi)相關(guān)寄存器監(jiān)視完成灰盒測(cè)試。對(duì)CAN總線的性能測(cè)試方面主要從總線波特率、總線應(yīng)答及幀間隔時(shí)間、總線控制芯片的芯片復(fù)位脈沖寬度、總線控制芯片讀寫(xiě)時(shí)序幾個(gè)方面進(jìn)行測(cè)試,關(guān)于CAN總線的性能測(cè)試可以詳細(xì)參考CAN2.0通用協(xié)議和外圍控制芯片的使用手冊(cè),在此不多做贅述。
對(duì)于CAN總線的功能測(cè)試主要從符合協(xié)議通信、錯(cuò)誤協(xié)議通信以及總線切換策略測(cè)試3個(gè)方面進(jìn)行,功能測(cè)試針對(duì)不同架構(gòu)平臺(tái)的測(cè)試項(xiàng)目一致,測(cè)試用例如表1所示。
對(duì)于CAN總線的可靠性和安全性測(cè)試設(shè)計(jì)總線控制芯片內(nèi)部寄存器的監(jiān)視,通過(guò)普通的黑盒測(cè)試是無(wú)法實(shí)現(xiàn)的,本文通過(guò)利用VTEsT構(gòu)建的虛擬平臺(tái)實(shí)現(xiàn)對(duì)所需寄存器的監(jiān)視功能,測(cè)試用例如表2所示。VTEsT測(cè)試工具模擬嵌入式虛擬測(cè)試平臺(tái)能夠模擬嵌入式軟件的接口芯片,通過(guò)導(dǎo)入被測(cè)源代碼,實(shí)現(xiàn)對(duì)程序目標(biāo)碼插樁、接口監(jiān)視,統(tǒng)計(jì)目標(biāo)碼程序語(yǔ)句和分支覆蓋信息,分析目標(biāo)碼的執(zhí)行情況。
3結(jié)語(yǔ)
軟件測(cè)試是軟件產(chǎn)品的重要保證,對(duì)共性多發(fā)測(cè)試項(xiàng)目的梳理和總結(jié)能夠有效遏制相關(guān)問(wèn)題的出現(xiàn),本文從CAN總線常用架構(gòu)入手梳理測(cè)試要點(diǎn),設(shè)計(jì)測(cè)試用例,希望能為相關(guān)工程師提供借鑒。