邱凱強(qiáng),王軒,包文帆
(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西西安,710065)
隨著技術(shù)的發(fā)展和航空飛行器功能需求的日益增加,作為飛行器數(shù)據(jù)處理中樞的航電計(jì)算機(jī)其復(fù)雜度越來(lái)越高,計(jì)算機(jī)內(nèi)部硬件設(shè)計(jì)的功能集成度和布板密集度大幅度提高,導(dǎo)致高故障率問題也隨之而來(lái)[1]。一方面,高密度的元器件排布使得硬件產(chǎn)品在惡劣的使用環(huán)境下更容易出現(xiàn)各種故障問題。這些故障往往在常溫中難以復(fù)現(xiàn),需要花費(fèi)大量人力物力模擬惡劣環(huán)境進(jìn)行測(cè)試和故障定位。另一方面,航電計(jì)算機(jī)產(chǎn)量需求的大幅度增加對(duì)于硬件產(chǎn)品的批量化生產(chǎn)提出了更高的時(shí)間。但批量生產(chǎn)時(shí)難免產(chǎn)生個(gè)例差錯(cuò)或者批量問題。因此,如何縮短排故周期,如何在保證快速批量生產(chǎn)的前提下提高產(chǎn)品的穩(wěn)定性以及面對(duì)故障如何快速定位故障信息成為硬件設(shè)計(jì)時(shí)不得不考慮的因素[2]。
通常在硬件設(shè)計(jì)中多采用預(yù)留測(cè)試點(diǎn)的方式以支持后續(xù)的排故工作。在故障出現(xiàn)時(shí),采用示波器和萬(wàn)用表對(duì)測(cè)試點(diǎn)數(shù)值進(jìn)行測(cè)量,并與標(biāo)準(zhǔn)設(shè)計(jì)參考值進(jìn)行比對(duì),或利用示波器進(jìn)行時(shí)序捕捉分析,對(duì)比設(shè)計(jì)手冊(cè)進(jìn)行設(shè)計(jì)合理性分析,進(jìn)行硬件故障信息定位和匯總,排查出產(chǎn)生異常的元器件或者硬件控制邏輯。但這樣的測(cè)試手段存在以下問題:(1)此方法對(duì)于測(cè)試操作人員的要求較高,容易出現(xiàn)由于測(cè)試操作人員造成定位不準(zhǔn)確的現(xiàn)象;(2)隨著硬件產(chǎn)品設(shè)計(jì)復(fù)雜度的提高,預(yù)留的測(cè)試點(diǎn)對(duì)于故障定位的準(zhǔn)確性會(huì)大幅度降低;(3)此方法排故周期漫長(zhǎng),無(wú)法滿足快速批量化生產(chǎn)的要求。
因此,本文針對(duì)現(xiàn)階段航電計(jì)算機(jī)中硬件產(chǎn)品的復(fù)雜特性,以采用FT2000/4處理器的航電計(jì)算機(jī)數(shù)據(jù)處理單元為例,提出了一種針對(duì) FT2000/4 處理器及其周邊資源的健康管理設(shè)計(jì)方法。該設(shè)計(jì)方法主要依靠獨(dú)立于數(shù)據(jù)處理單元的單片機(jī)(MCU)對(duì)產(chǎn)品進(jìn)行狀態(tài)檢測(cè),充分利用MCU的DC采集接口、GPIO(General Purpose I/O Ports)接口、串口以及SPI(Schedule Performance Index)接口對(duì)數(shù)據(jù)處理單元的基礎(chǔ)輸入資源進(jìn)行檢測(cè)和分析,從而可以改善產(chǎn)品的故障定位手段和提供提前預(yù)警故障手段。故本文首先對(duì)該數(shù)據(jù)處理單元中各硬件資源接口的具體設(shè)計(jì)進(jìn)行了闡述,之后對(duì)每個(gè)接口的監(jiān)測(cè)手段進(jìn)行介紹。本文提出的方法很好地應(yīng)用于航電計(jì)算機(jī)硬件產(chǎn)品的設(shè)計(jì)中,大幅縮短了硬件產(chǎn)品的排故周期,為其高質(zhì)量高效率批量化生產(chǎn)提供保證。
本文所述的航電計(jì)算機(jī)數(shù)據(jù)處理單元整體框架如圖1所示?;?F2000/4 處理器的最小數(shù)據(jù)處理單元主要硬件資源和接口組成部分包括了內(nèi)存,F(xiàn)LASH,PCIE,以太網(wǎng),控制邏輯,供電和時(shí)鐘。該數(shù)據(jù)處理單元的性能主要包括了:提供了主頻不低于 1GHZ,數(shù)據(jù)處理不低于 16 Gips 的算力;存儲(chǔ)空同包括:4GB的內(nèi)存、1024MB的FLASH、512KB的 NVRAM 的存儲(chǔ)空間;對(duì)外接口包括:一路千兆以太網(wǎng),一路最大波特率為115200bps的調(diào)試串口,兩路5.0Gbps的PCIEx4接口。最小的數(shù)據(jù)處理單元的正常工作需要11種基礎(chǔ)輸入,其中共需要七種電源,四種時(shí)鐘基礎(chǔ)輸入,電源其中包括了為內(nèi)存供電的輸出緩沖供電電壓(VDDQ)和參考電源(VTT),為處理器供電的接口電和核電,為控制邏輯(FPGA)供電的核電以及共用的 3.3V 和 1.8V 電源,時(shí)鐘其中包括了為以太網(wǎng) PHY芯片和 FPGA提供的25M時(shí)鐘,以及為處理器提供的工作48M 時(shí)鐘和 100M PCIE差分時(shí)鐘。
圖1 整體框架
FT2000/4處理器集成2個(gè)DDR3控制器,DDR3 控制理器具有72位數(shù)據(jù)寬度(64位數(shù)據(jù)寬度,8位的ECC校驗(yàn)寬度):支持8個(gè)Bank,最高DDR3-1600MT/s。設(shè)計(jì)中FT2000/4處理器使用兩個(gè)DDR通道,每個(gè)通道掛接5片DDR3芯片。
每個(gè)FT2000/4處理處理器配置FLASH存儲(chǔ)器的總?cè)萘繛?024MB,支持整片擦寫和扇區(qū)擦寫等操作。FT2000/4提供一個(gè)QSPI接口和兩個(gè)SPI接口,且接口電平1.8V。FLASH芯片選用SPI接口FLASH,工作電壓為1.8V±10%。FT2000/4的QSPI接口作為其啟動(dòng)的唯一接口,首先必須通過(guò)QSPI接口連接4片F(xiàn)LASH,之后通過(guò)SPI接口連接4片F(xiàn)LASH。
FT2000/4處理器支持6個(gè)PCIe控制器,其中包括兩個(gè)x16和兩個(gè)x1,x16支持可以分為兩個(gè)x8或者兩個(gè)x4。PCIe速率可以支持PCIe 3.0。最小數(shù)據(jù)處理單元設(shè)計(jì)中通常使用兩路x4,分別連接FC(光纖通道協(xié)議)網(wǎng)絡(luò)通信設(shè)備和NvME電子盤設(shè)備。
FPGA(Field Programmable Gate Array)實(shí)現(xiàn)局部總線的地址譯碼、看門狗、內(nèi)部寄存器和中斷控制、電平轉(zhuǎn)化等功能電路。局部總線的地址譯碼實(shí)現(xiàn)SPI片選的譯碼,從設(shè)備主要包括NvRAM、離散量、看門狗、測(cè)試接口、內(nèi)部寄存器。中斷控制主要包括外部電源PFAIL中斷、看門口狗中斷。電平轉(zhuǎn)換主要包括NvRAM的3.3V接口和處理器的1.8V接口電平轉(zhuǎn)換,處理器串口和串口驅(qū)動(dòng)器3.3V電平轉(zhuǎn)換等。其他功能包括了上電,復(fù)位等時(shí)序控制。
FT2000/4處理器集成以太網(wǎng)RGMII接口,采用PHY芯片將RGMII信號(hào)轉(zhuǎn)換為UTP信號(hào)之后通過(guò)變壓器再接入RJ-45,對(duì)外輸出一路以太網(wǎng)信號(hào)。
FT2000/4處理器采用SPI接口的NvRAM,由于其第二路SPI接口中的可用片選只有兩個(gè)和當(dāng)前市面上NvRAM的IO電平為3.3V,故采用FPGA進(jìn)行電平轉(zhuǎn)換和片選譯碼,從而連接4片NvRAM,每一片容量為128KB,總存儲(chǔ)容量為512KB。
NvRAM在系統(tǒng)掉電時(shí),通過(guò)使用存儲(chǔ)在較小電容中的電能(該電容與器件的 VCAP 引腳相連),SRAM 中的數(shù)據(jù)被自動(dòng)傳輸?shù)椒且资詥卧獌?nèi)。在下次通電期間,非易失性單元中的數(shù)據(jù)被自動(dòng)回讀到 SRAM 陣列內(nèi),以便提供給用戶,通常在航電系統(tǒng)中利用其進(jìn)行故障信息的存儲(chǔ)。
MCU電路設(shè)計(jì)是獨(dú)立于數(shù)據(jù)處理單元的部分電路,其功能電路作為數(shù)據(jù)處理單元的健康監(jiān)測(cè)數(shù)據(jù)處理和信息傳輸部分。采用了成都華微電子有限公司的HWD32F103MLQFP64,該單片機(jī)集成了定時(shí)器,CAN總線接口,16個(gè)DC(模數(shù)轉(zhuǎn)換器),SPI接口,I2C接口,USB,串口等多種對(duì)外接口,方便設(shè)計(jì)人員進(jìn)行使用[3]。
健康管理的硬件設(shè)計(jì)框架如圖2所示,主要包含三個(gè)部分分別為:處理器,MCU和可編程控制邏輯。處理器與MCU之間通過(guò)串口進(jìn)行連接,處理器與控制邏輯通過(guò)SPI接口進(jìn)行連接,MCU與控制邏輯通過(guò)SPI接口進(jìn)行連接。
圖2 健康管理設(shè)計(jì)架構(gòu)
(1)MCU的GPIO管腳和DC采集管腳進(jìn)行電平和時(shí)鐘信號(hào)獲?。?/p>
(2)處理器將故障信息通過(guò)SPI接口上報(bào)控制邏輯;
(3)MCU通過(guò)SPI接口從控制邏輯獲取故障信息;
(4)MCU通過(guò)CAN總線與外部進(jìn)行上報(bào)數(shù)據(jù)處理單元故障信息。
健康管理的硬件設(shè)計(jì)主體手段主要是從監(jiān)測(cè)環(huán)節(jié)進(jìn)行設(shè)計(jì),通過(guò)預(yù)留硬件檢測(cè)接口,后續(xù)采用檢測(cè)軟件讀取寄存器、檢測(cè)接口電平狀態(tài)以及DC采集等方式獲取實(shí)時(shí)硬件狀態(tài)與預(yù)期設(shè)計(jì)目標(biāo)值進(jìn)行比對(duì),從而獲得當(dāng)前產(chǎn)品的硬件狀態(tài)。
其次是對(duì)故障信息的上報(bào),MCU功能電路上報(bào)方式有兩種,一種方式為將其讀出的寄存器信息通過(guò)串口上報(bào)給數(shù)據(jù)處理單元,另一種方式為將故障信息通過(guò)CAN總線上傳給系統(tǒng)。
最后是FT2000/4處理器對(duì)其周邊接口資源的初始化,這直接將反映在串口打印上提供給設(shè)計(jì)人員進(jìn)行故障分析。
電源的不正常輸出經(jīng)常會(huì)導(dǎo)致的故障十分繁雜,比如高低溫復(fù)位重啟、電源過(guò)壓燒毀后續(xù)設(shè)備,電源電壓不足無(wú)法啟動(dòng),電源輸出電流不足無(wú)法驅(qū)動(dòng)等,故監(jiān)測(cè)電源的正確輸出是整個(gè)數(shù)據(jù)處理單元的基礎(chǔ)。
基于FT2000/4的最小數(shù)據(jù)處理單元,從圖一中可以看出其中包含了七種不同電源,將電源連接至MCU的DC采集管腳,通過(guò)在軟件中提前設(shè)置的目標(biāo)值進(jìn)行比對(duì),從而進(jìn)行判斷電源是否在正常工作。由于MCU支持的最大IO電壓為3.3V,故在采集較大的電壓時(shí),如下圖所示利用電阻分壓的方式進(jìn)行分壓采集[4]。
參考時(shí)鐘的穩(wěn)定運(yùn)行是數(shù)據(jù)處理單元的前提。當(dāng)參考時(shí)鐘發(fā)生故障,例如誤差變大甚至停止時(shí),會(huì)影響到硬件系統(tǒng)的正確運(yùn)行,導(dǎo)致預(yù)定的運(yùn)行時(shí)間發(fā)生變化,甚至硬件停止運(yùn)行等。由圖一中可以看出數(shù)據(jù)單元中共包含了四種時(shí)鐘輸入,其中三種為低速時(shí)鐘信號(hào),一種為高速差分時(shí)鐘信號(hào)。由于時(shí)鐘信號(hào)的特殊性,通常在產(chǎn)品EDA(Electronic design automation)綜合布線時(shí)進(jìn)行點(diǎn)對(duì)點(diǎn)走線,并不能直接引出分叉信號(hào)進(jìn)行信號(hào)采集,因?yàn)檫@樣容易造成信號(hào)反射,影響信號(hào)完整性,造成更重大的問題。
對(duì)于低速時(shí)鐘信號(hào),在EDA設(shè)計(jì)走線時(shí),可以通過(guò)在時(shí)鐘信號(hào)分叉后的每路都設(shè)置匹配電阻,匹配電阻靠近時(shí)鐘芯片,這樣的方式可以避免或者減輕信號(hào)反射。
對(duì)于高速時(shí)鐘信號(hào),該數(shù)據(jù)處理單元需要進(jìn)行同源時(shí)鐘設(shè)計(jì),最多共需要9路100M差分時(shí)鐘,分別提供給FT2000/4 三路參考時(shí)鐘,以及PCIe從設(shè)備六路(FT2000/4支持六個(gè)PCIe控制器),百兆差分晶振經(jīng)過(guò)西安翔騰微電子時(shí)鐘驅(qū)動(dòng)器HKA6110,提供十路百兆PCIe差分時(shí)鐘,剩余的一路接入信號(hào)采集接口。
在MCU對(duì)數(shù)據(jù)處理單元中的電源和時(shí)鐘的信息判斷為合格時(shí),通過(guò)數(shù)據(jù)處理單元的啟動(dòng)過(guò)程包括如下步驟,F(xiàn)T2000/4處理器第一步,進(jìn)行SPI接口的初始化,將啟動(dòng)FLASH中的BOOT(啟動(dòng)軟件)讀取到處理器本身的緩存中進(jìn)行后續(xù)的初始化準(zhǔn)備;第二步,之后將初始化QSPI接口,根據(jù)BOOT中對(duì)QSPI接口的參數(shù)(讀寫時(shí)鐘頻率),將FLASH的讀寫速率提高;第三步,進(jìn)行DDR3接口的初始化,根據(jù)BOOT中DDR3接口的參數(shù)(時(shí)鐘頻率,通道數(shù)以及是否具有ECC);第四步,進(jìn)行PCIe接口的初始化,根據(jù)BOOT中PCIe接口的參數(shù)(主從節(jié)點(diǎn),通道數(shù));第五步,在板級(jí)支持軟件中初始化以太網(wǎng)接口,主要包含了對(duì)PHY芯片的初始化,配置PHY的工作模式以及傳輸速度。
上述描述可以通過(guò)兩種方式進(jìn)行故障信息查看和展示,一方面啟動(dòng)界面中可以顯示啟動(dòng)BOOT程序的過(guò)程中就是FT2000/4處理器對(duì)于接口資源初始化的過(guò)程,當(dāng)任何一個(gè)接口資源存在問題時(shí),其串口打印就將會(huì)停在初始化的地方不再打印,故可以通過(guò)打印信息判斷。
另一方面,首先FT2000/4與控制邏輯通過(guò)SPI總線進(jìn)行通信,針對(duì)每一步啟動(dòng)步驟對(duì)應(yīng)FPGA中啟動(dòng)寄存器,初始化完成每一步,則將其對(duì)應(yīng)的寄存器位置為高[5];其次,MCU根據(jù)預(yù)先設(shè)置的啟動(dòng)時(shí)間間隔對(duì)啟動(dòng)寄存器進(jìn)行訪問,超出預(yù)期的啟動(dòng)時(shí)間之后,若還是低電平信號(hào),則為啟動(dòng)停止位置;最后,MCU通過(guò)CAN總線向整體進(jìn)行上報(bào)啟動(dòng)狀態(tài)。
本文提出了基于FT2000/4處理器的健康管理硬件設(shè)計(jì)方法,通過(guò)充分利用MCU自身接口特性對(duì)數(shù)據(jù)處理單元的周邊基本支持資源接口進(jìn)行了監(jiān)控,從啟動(dòng)準(zhǔn)備,啟動(dòng)時(shí),以及工作時(shí)三種產(chǎn)品狀態(tài)進(jìn)行分析和管理,得到大量的產(chǎn)品狀態(tài)信息。這些狀態(tài)信息一方面可以提供給調(diào)試人員在故障發(fā)生時(shí)進(jìn)行故障定位,另一方面可以將故障信息在提前預(yù)警給整機(jī),為其備選方案提供了準(zhǔn)備時(shí)間。伴隨著嵌入式硬件的設(shè)計(jì)復(fù)雜度的一步步提高,對(duì)于未來(lái)后續(xù)其他的新研產(chǎn)品的設(shè)計(jì),應(yīng)該在設(shè)計(jì)之初充分地考慮到該產(chǎn)品在健康檢測(cè)方面的設(shè)計(jì),為后續(xù)的檢測(cè)預(yù)留充分的檢測(cè)手段和接口,而該設(shè)計(jì)方法的可拓展性和實(shí)時(shí)性為產(chǎn)品的未來(lái)發(fā)展提供了更高的發(fā)展空間,也同時(shí)提高了產(chǎn)品的魯棒性和安全性。進(jìn)一步為未來(lái)的大批量生產(chǎn)和調(diào)試提前做好了充足的設(shè)計(jì)鋪墊,是產(chǎn)品未來(lái)自動(dòng)化或半自動(dòng)化的發(fā)展必走之路。