邱凱強,王軒,包文帆
(航空工業西安航空計算技術研究所,陜西西安,710065)
隨著技術的發展和航空飛行器功能需求的日益增加,作為飛行器數據處理中樞的航電計算機其復雜度越來越高,計算機內部硬件設計的功能集成度和布板密集度大幅度提高,導致高故障率問題也隨之而來[1]。一方面,高密度的元器件排布使得硬件產品在惡劣的使用環境下更容易出現各種故障問題。這些故障往往在常溫中難以復現,需要花費大量人力物力模擬惡劣環境進行測試和故障定位。另一方面,航電計算機產量需求的大幅度增加對于硬件產品的批量化生產提出了更高的時間。但批量生產時難免產生個例差錯或者批量問題。因此,如何縮短排故周期,如何在保證快速批量生產的前提下提高產品的穩定性以及面對故障如何快速定位故障信息成為硬件設計時不得不考慮的因素[2]。
通常在硬件設計中多采用預留測試點的方式以支持后續的排故工作。在故障出現時,采用示波器和萬用表對測試點數值進行測量,并與標準設計參考值進行比對,或利用示波器進行時序捕捉分析,對比設計手冊進行設計合理性分析,進行硬件故障信息定位和匯總,排查出產生異常的元器件或者硬件控制邏輯。但這樣的測試手段存在以下問題:(1)此方法對于測試操作人員的要求較高,容易出現由于測試操作人員造成定位不準確的現象;(2)隨著硬件產品設計復雜度的提高,預留的測試點對于故障定位的準確性會大幅度降低;(3)此方法排故周期漫長,無法滿足快速批量化生產的要求。
因此,本文針對現階段航電計算機中硬件產品的復雜特性,以采用FT2000/4處理器的航電計算機數據處理單元為例,提出了一種針對 FT2000/4 處理器及其周邊資源的健康管理設計方法。該設計方法主要依靠獨立于數據處理單元的單片機(MCU)對產品進行狀態檢測,充分利用MCU的DC采集接口、GPIO(General Purpose I/O Ports)接口、串口以及SPI(Schedule Performance Index)接口對數據處理單元的基礎輸入資源進行檢測和分析,從而可以改善產品的故障定位手段和提供提前預警故障手段。故本文首先對該數據處理單元中各硬件資源接口的具體設計進行了闡述,之后對每個接口的監測手段進行介紹。本文提出的方法很好地應用于航電計算機硬件產品的設計中,大幅縮短了硬件產品的排故周期,為其高質量高效率批量化生產提供保證。
本文所述的航電計算機數據處理單元整體框架如圖1所示?;?F2000/4 處理器的最小數據處理單元主要硬件資源和接口組成部分包括了內存,FLASH,PCIE,以太網,控制邏輯,供電和時鐘。該數據處理單元的性能主要包括了:提供了主頻不低于 1GHZ,數據處理不低于 16 Gips 的算力;存儲空同包括:4GB的內存、1024MB的FLASH、512KB的 NVRAM 的存儲空間;對外接口包括:一路千兆以太網,一路最大波特率為115200bps的調試串口,兩路5.0Gbps的PCIEx4接口。最小的數據處理單元的正常工作需要11種基礎輸入,其中共需要七種電源,四種時鐘基礎輸入,電源其中包括了為內存供電的輸出緩沖供電電壓(VDDQ)和參考電源(VTT),為處理器供電的接口電和核電,為控制邏輯(FPGA)供電的核電以及共用的 3.3V 和 1.8V 電源,時鐘其中包括了為以太網 PHY芯片和 FPGA提供的25M時鐘,以及為處理器提供的工作48M 時鐘和 100M PCIE差分時鐘。

圖1 整體框架
FT2000/4處理器集成2個DDR3控制器,DDR3 控制理器具有72位數據寬度(64位數據寬度,8位的ECC校驗寬度):支持8個Bank,最高DDR3-1600MT/s。設計中FT2000/4處理器使用兩個DDR通道,每個通道掛接5片DDR3芯片。
每個FT2000/4處理處理器配置FLASH存儲器的總容量為1024MB,支持整片擦寫和扇區擦寫等操作。FT2000/4提供一個QSPI接口和兩個SPI接口,且接口電平1.8V。FLASH芯片選用SPI接口FLASH,工作電壓為1.8V±10%。FT2000/4的QSPI接口作為其啟動的唯一接口,首先必須通過QSPI接口連接4片FLASH,之后通過SPI接口連接4片FLASH。
FT2000/4處理器支持6個PCIe控制器,其中包括兩個x16和兩個x1,x16支持可以分為兩個x8或者兩個x4。PCIe速率可以支持PCIe 3.0。最小數據處理單元設計中通常使用兩路x4,分別連接FC(光纖通道協議)網絡通信設備和NvME電子盤設備。
FPGA(Field Programmable Gate Array)實現局部總線的地址譯碼、看門狗、內部寄存器和中斷控制、電平轉化等功能電路。局部總線的地址譯碼實現SPI片選的譯碼,從設備主要包括NvRAM、離散量、看門狗、測試接口、內部寄存器。中斷控制主要包括外部電源PFAIL中斷、看門口狗中斷。電平轉換主要包括NvRAM的3.3V接口和處理器的1.8V接口電平轉換,處理器串口和串口驅動器3.3V電平轉換等。其他功能包括了上電,復位等時序控制。
FT2000/4處理器集成以太網RGMII接口,采用PHY芯片將RGMII信號轉換為UTP信號之后通過變壓器再接入RJ-45,對外輸出一路以太網信號。
FT2000/4處理器采用SPI接口的NvRAM,由于其第二路SPI接口中的可用片選只有兩個和當前市面上NvRAM的IO電平為3.3V,故采用FPGA進行電平轉換和片選譯碼,從而連接4片NvRAM,每一片容量為128KB,總存儲容量為512KB。
NvRAM在系統掉電時,通過使用存儲在較小電容中的電能(該電容與器件的 VCAP 引腳相連),SRAM 中的數據被自動傳輸到非易失性單元內。在下次通電期間,非易失性單元中的數據被自動回讀到 SRAM 陣列內,以便提供給用戶,通常在航電系統中利用其進行故障信息的存儲。
MCU電路設計是獨立于數據處理單元的部分電路,其功能電路作為數據處理單元的健康監測數據處理和信息傳輸部分。采用了成都華微電子有限公司的HWD32F103MLQFP64,該單片機集成了定時器,CAN總線接口,16個DC(模數轉換器),SPI接口,I2C接口,USB,串口等多種對外接口,方便設計人員進行使用[3]。
健康管理的硬件設計框架如圖2所示,主要包含三個部分分別為:處理器,MCU和可編程控制邏輯。處理器與MCU之間通過串口進行連接,處理器與控制邏輯通過SPI接口進行連接,MCU與控制邏輯通過SPI接口進行連接。

圖2 健康管理設計架構
(1)MCU的GPIO管腳和DC采集管腳進行電平和時鐘信號獲?。?/p>
(2)處理器將故障信息通過SPI接口上報控制邏輯;
(3)MCU通過SPI接口從控制邏輯獲取故障信息;
(4)MCU通過CAN總線與外部進行上報數據處理單元故障信息。
健康管理的硬件設計主體手段主要是從監測環節進行設計,通過預留硬件檢測接口,后續采用檢測軟件讀取寄存器、檢測接口電平狀態以及DC采集等方式獲取實時硬件狀態與預期設計目標值進行比對,從而獲得當前產品的硬件狀態。
其次是對故障信息的上報,MCU功能電路上報方式有兩種,一種方式為將其讀出的寄存器信息通過串口上報給數據處理單元,另一種方式為將故障信息通過CAN總線上傳給系統。
最后是FT2000/4處理器對其周邊接口資源的初始化,這直接將反映在串口打印上提供給設計人員進行故障分析。
電源的不正常輸出經常會導致的故障十分繁雜,比如高低溫復位重啟、電源過壓燒毀后續設備,電源電壓不足無法啟動,電源輸出電流不足無法驅動等,故監測電源的正確輸出是整個數據處理單元的基礎。
基于FT2000/4的最小數據處理單元,從圖一中可以看出其中包含了七種不同電源,將電源連接至MCU的DC采集管腳,通過在軟件中提前設置的目標值進行比對,從而進行判斷電源是否在正常工作。由于MCU支持的最大IO電壓為3.3V,故在采集較大的電壓時,如下圖所示利用電阻分壓的方式進行分壓采集[4]。
參考時鐘的穩定運行是數據處理單元的前提。當參考時鐘發生故障,例如誤差變大甚至停止時,會影響到硬件系統的正確運行,導致預定的運行時間發生變化,甚至硬件停止運行等。由圖一中可以看出數據單元中共包含了四種時鐘輸入,其中三種為低速時鐘信號,一種為高速差分時鐘信號。由于時鐘信號的特殊性,通常在產品EDA(Electronic design automation)綜合布線時進行點對點走線,并不能直接引出分叉信號進行信號采集,因為這樣容易造成信號反射,影響信號完整性,造成更重大的問題。
對于低速時鐘信號,在EDA設計走線時,可以通過在時鐘信號分叉后的每路都設置匹配電阻,匹配電阻靠近時鐘芯片,這樣的方式可以避免或者減輕信號反射。
對于高速時鐘信號,該數據處理單元需要進行同源時鐘設計,最多共需要9路100M差分時鐘,分別提供給FT2000/4 三路參考時鐘,以及PCIe從設備六路(FT2000/4支持六個PCIe控制器),百兆差分晶振經過西安翔騰微電子時鐘驅動器HKA6110,提供十路百兆PCIe差分時鐘,剩余的一路接入信號采集接口。
在MCU對數據處理單元中的電源和時鐘的信息判斷為合格時,通過數據處理單元的啟動過程包括如下步驟,FT2000/4處理器第一步,進行SPI接口的初始化,將啟動FLASH中的BOOT(啟動軟件)讀取到處理器本身的緩存中進行后續的初始化準備;第二步,之后將初始化QSPI接口,根據BOOT中對QSPI接口的參數(讀寫時鐘頻率),將FLASH的讀寫速率提高;第三步,進行DDR3接口的初始化,根據BOOT中DDR3接口的參數(時鐘頻率,通道數以及是否具有ECC);第四步,進行PCIe接口的初始化,根據BOOT中PCIe接口的參數(主從節點,通道數);第五步,在板級支持軟件中初始化以太網接口,主要包含了對PHY芯片的初始化,配置PHY的工作模式以及傳輸速度。
上述描述可以通過兩種方式進行故障信息查看和展示,一方面啟動界面中可以顯示啟動BOOT程序的過程中就是FT2000/4處理器對于接口資源初始化的過程,當任何一個接口資源存在問題時,其串口打印就將會停在初始化的地方不再打印,故可以通過打印信息判斷。
另一方面,首先FT2000/4與控制邏輯通過SPI總線進行通信,針對每一步啟動步驟對應FPGA中啟動寄存器,初始化完成每一步,則將其對應的寄存器位置為高[5];其次,MCU根據預先設置的啟動時間間隔對啟動寄存器進行訪問,超出預期的啟動時間之后,若還是低電平信號,則為啟動停止位置;最后,MCU通過CAN總線向整體進行上報啟動狀態。
本文提出了基于FT2000/4處理器的健康管理硬件設計方法,通過充分利用MCU自身接口特性對數據處理單元的周邊基本支持資源接口進行了監控,從啟動準備,啟動時,以及工作時三種產品狀態進行分析和管理,得到大量的產品狀態信息。這些狀態信息一方面可以提供給調試人員在故障發生時進行故障定位,另一方面可以將故障信息在提前預警給整機,為其備選方案提供了準備時間。伴隨著嵌入式硬件的設計復雜度的一步步提高,對于未來后續其他的新研產品的設計,應該在設計之初充分地考慮到該產品在健康檢測方面的設計,為后續的檢測預留充分的檢測手段和接口,而該設計方法的可拓展性和實時性為產品的未來發展提供了更高的發展空間,也同時提高了產品的魯棒性和安全性。進一步為未來的大批量生產和調試提前做好了充足的設計鋪墊,是產品未來自動化或半自動化的發展必走之路。