蔡紹偉,吳千秋,趙 豐,楊國平,姜廣順
(空軍二十三廠,北京 102200)
某引進型號武器系統作戰指揮軟件存儲在數字計算機的指令存儲器組合中,工作狀態下,作戰指揮軟件由指令存儲器讀入操作存儲器,實現對整個武器系統的控制。為防止指令存儲器中程序損壞或丟失,作戰指揮軟件還保存在磁帶中作為備份。隨著武器裝備服役年限增長,存儲磁帶在軟件恢復操作過程中容易產生磨損,長期貯存還會發生磁粉脫落、磁帶粘黏等現象,直接導致存儲信息丟失。此外,磁帶機由于器件老化等原因,故障率高,維護保障困難,影響到裝備的戰備完好性,制約了武器系統作戰效能的發揮。國外生產廠家注意到這一缺陷,在后期生產的同型號裝備中,使用輸入輸出裝置替代原磁帶存儲系統。筆者在剖析輸入輸出裝置設計原理的基礎上,采用逆向工程方法和工控機技術,實現原磁帶存儲系統的國產化替代。
磁帶存儲系統由通道連接組合、磁帶存儲器和電源組合構成。該系統按數字計算機指令組織信息交換,將磁帶上的信息還原并送入數字計算機通道;接收來自數字計算機通道的信息并將其記錄在磁帶上,進行信息的長期保存。
輸入輸出裝置采用以工控機為主體,依托于FPGA 組成的時序控制電路,以高速輸入輸出總線技術為橋梁的總體技術方案,完成與數字計算機的交互,實現信息的實時讀出、寫入操作。裝置的基本組成見圖1。

圖1 輸入輸出裝置的基本組成
輸入輸出裝置的主要部件是智能接口模塊,包括2 個8位單片機Atmel89S53(U21,U16),1 個XC2S50 型FPGA(U77)。單片機負責運行功能程序,FPGA 負責譯碼、解碼和編碼。U16 是核心處理器,管理打字機的串行接口和整個接口模塊的引導啟動,其自身執行程序、U77 的配置文件和U21的執行程序都位于U70、U67 和U64 鐵電存儲器(FRAM)中。如何提取這3 個FRAM 內的程序,成為項目研制的關鍵。
試驗顯示,上述FRAM 不僅適合在板編程,而且焊下來也是安全的,具備了使用編程器讀取芯片內部程序的可能性。考慮到FRAM 內部數據的脆弱性,為慎重起見,先使用同型號FRAM 在編程器上反復進行編程和芯片的插、拔操作,這時,出現個別數據丟失現象,原因是芯片和編程器接觸的一瞬間,各管腳的信號具有不確定性。通過反復摸索,發現將芯片的“寫”和“片選”信號上安置跳線,使其始終處于已知的確定狀態,就可以在編程器上安全地插裝和卸下芯片,由此成功地從3 個FRAM 中讀取了程序和配置文件。U21 和U16 這2 片89S53 內部有無程序呢?從電路上看,U21 使用外部程序區,并不使用內部程序區,因此,判斷其內部沒有固化程序。U16 的情況與此類似。同時,通過閱讀反匯編得到的匯編文件,排除了外部程序和內部固化程序同時存在的可能性。由此可以斷定已經獲取所有程序。程序和配置文件在存儲器里共有3 個相同的數據塊,可以通過判斷3 塊數據是否一致來確定數據的正確性。執行程序和芯片配置文件提取流程圖如圖2 所示。
磁帶存儲系統的國產化,保持原電氣接口不變,采取測仿+功能替代的技術路線。國產化存儲系統主要包括工控機、數據交換接口板、輸入輸出設備和電源供電裝置。國產化存儲系統硬件組成如圖3 所示。

圖2 執行程序和芯片配置文件提取流程

圖3 國產化存儲系統硬件組成
工控機為購買的現成PC -104 模塊6236。PC -104 是一種專門為嵌入式而定義的工業控制總線,具有低成本、高可靠性、系統組建方便等優點,被廣泛應用于工業控制、自動化測試等領域[1]。6236 模塊集成有主頻為800 MHz 的Vortex86DX 型CPU,4 個串口COM1 ~COM4,1 個PS2 鍵盤接口KBD,1 個LPT 打印接口PRINT,1 個VGA 顯卡接口VGA,1個CF 卡接口CF,以及板載虛擬軟驅D8000 等。
2 個Atmel89S53 型單片機和1 個144 腳的XILINX XC2S50 型FPGA 組成數據交換接口板的微控制器(MCU),對接口板上的固態存儲器進行管理,實現數據的讀出、寫入和存儲,替代了原磁帶機和磁帶盒的功能;完成數據打印和顯示功能。固態存儲器由FM24C256 構成。FM24C256 是一個256kbit 的FRAM,其總線頻率可高達1 MHz,具有10 億次以上的讀寫次數且功耗很低[2]。數據位被串行移出,使用兩線制(I2C)串行總線進行讀寫,工作電壓+5 V,動態工作電流200 μA,靜態工作電流100 μA。
單片機執行程序和FPGA 配置文件保存在由3 個并口FRAM 芯片FM18L08 組成的存儲器中。FM18L08 內存組織結構為32k×8bit,可通過工業標準并行接口進行訪問,兼容SRAM 和EEPROM。數據交換接口板加電后,單片機執行程序從FM18L08 調入單片機的RAM(IS62C256 -70UI),FPGA配置文件調入FPGA 芯片中運行,完成數據交換和轉換功能。
原磁帶存儲系統的2 路+27V 直流電源接電控制方式不變,其中1 路+27V 直流電源經ACE -709CX 型DC/DC變換器后輸出+5V 和12V,用于為工控機和數據交換接口板供電;另1 路+27 V 直流電源經SM150 -224 型DC/AC 變換器輸出~220V 50Hz 交流電源,為EPSONLx -300 +Ⅱ打字機供電。
數據交換接口板參考了輸入輸出裝置中數據交換接口部分的設計思路,包括微控制器、FRAM、固態存儲器、打印接口電流環電路和串/并轉換接口電路等。接口板的開發過程雖然是對輸入輸出裝置數據交換接口部分的測仿,但需要對原設計的高速信號接口、交互控制、串并轉換、時序產生等電路進行全面剖析?;贔PGA 的設計開發,同樣采用了144腳的XC2S50 芯片,并對芯片中電路的特性、參數和時序進行了對比測試,保證與裝備原件一致。
數據交換接口板功能原理見圖4。

圖4 數據交換接口板功能原理
40 個FM24C256 芯片構成1280k×8bit 的固態存儲器存儲空間,由微控制器進行分區管理,形成虛擬磁盤0 和虛擬磁盤1,替代原磁帶存儲器。接口板上的2 個單片機分為主機和從機,主機負責管理固態存儲器和串/并聯接口,從機負責打字機的數據串行接口。2 個RS -232 串行接口,用于和工控機通訊。
國產化存儲系統運行的所有軟件及程序均來自輸入輸出裝置。工控機操作系統運行環境為DOS 6.22,系統軟件及打印程序裝在板載硬盤上;其他應用程序及作戰指揮程序代碼存儲于CF 卡存儲器中。數字交換接口板上的FRAM 存儲從輸入輸出裝置破解的單片機執行程序和FPGA 配置文件;固態存儲器保存作戰指揮程序代碼。
國產化存儲系統以“檢查狀態”方式啟動后,操作人員在C:WH 目錄下進行維護操作。主要包括:
1)檢驗源代碼OZZUK 的校驗和
為確保從工控機下載到固態存儲器中的作戰指揮程序代碼的正確性,下載前,應檢驗源代碼OZZUK 的校驗和。過程如下:國產化存儲系統以“檢查狀態”方式啟動成功后,運行C:WHKS_PO. BAT 程序;若運行結果КС1 ~КС5 與下述代碼相符,則表明源代碼OZZUK 正確。
КС1 =63C48819
КС2 =00000000
КС3 =FEE48EA5
КС4 =235A134F
КС5 =BE7A15F3
2)對固態存儲器進行讀操作
讀操作的目的是為了檢驗寫入固態存儲器的作戰指揮程序代碼的正確性。讀取固態存儲器第2 區至第129 區的數據,形成OLZUK 格式、OZZUK 格式的4 個文件以及WCOPY.EXE 和TFD. EXE 程序運行產生的2 個日志文件,存儲于CF 卡存儲器的C:WH 目錄下,同時還要進行檢驗OLZUK 格式文件及OZZUK 格式文件代碼正確性的操作。
3)對固態存儲器進行寫操作
讀固態存儲器操作出現存儲代碼的校驗和不正確時,才進行固態存儲器的寫入操作:將CF 卡存儲器C:WH 目錄下的OZZUK 文件進行代碼轉換,形成可下載文件OLZUK,將OLZUK 文件下載到固態存儲器。過程如下:國產化存儲系統以“檢查狀態”方式啟動成功后,進行檢驗源代碼OZZUK的校驗和操作;校驗和符合要求后,運行C:WHR_ZUK.BAT 程序,將OLZUK 文件下載到固態存儲器;代碼下載結束后,為了驗證下載的正確性,進行固態存儲器的讀操作;當檢驗結果符合要求后,表明OLZUK 代碼已正確寫入固態存儲器中。
當武器系統指令存儲器存儲的程序損壞或丟失時,數字計算機可通過第14 交換通道讀取固態存儲器中存儲的作戰指揮程序代碼,重新寫入指令存儲器。裝備陣地的遮蔽角信息通過鍵盤輸入,保存在固態存儲器中,需要時,數字計算機可通過第14 交換通道讀取到指令存儲器;同時,也可將指令存儲器中的陣地遮蔽角信息寫入固態存儲器保存。
目前,研制的國產化存儲系統已在工廠裝備修理及部隊裝備維護保障中得到應用檢驗,結果表明:該系統能滿足引進裝備的正常使用要求,使用維護簡便,可靠性高。
[1]王浩,許化龍.基于PC104 的測試系統抗干擾設計[J].彈箭與制導學報,2009,29(2):293-295,302.
[2]李建煒.FM24C256 在儀表中的應用[J].國外電子元器件,2003(4):46-49.