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