蔡紹偉,吳千秋,趙 豐,楊國平,姜廣順
(空軍二十三廠,北京 102200)
某引進(jìn)型號武器系統(tǒng)作戰(zhàn)指揮軟件存儲在數(shù)字計算機的指令存儲器組合中,工作狀態(tài)下,作戰(zhàn)指揮軟件由指令存儲器讀入操作存儲器,實現(xiàn)對整個武器系統(tǒng)的控制。為防止指令存儲器中程序損壞或丟失,作戰(zhàn)指揮軟件還保存在磁帶中作為備份。隨著武器裝備服役年限增長,存儲磁帶在軟件恢復(fù)操作過程中容易產(chǎn)生磨損,長期貯存還會發(fā)生磁粉脫落、磁帶粘黏等現(xiàn)象,直接導(dǎo)致存儲信息丟失。此外,磁帶機由于器件老化等原因,故障率高,維護(hù)保障困難,影響到裝備的戰(zhàn)備完好性,制約了武器系統(tǒng)作戰(zhàn)效能的發(fā)揮。國外生產(chǎn)廠家注意到這一缺陷,在后期生產(chǎn)的同型號裝備中,使用輸入輸出裝置替代原磁帶存儲系統(tǒng)。筆者在剖析輸入輸出裝置設(shè)計原理的基礎(chǔ)上,采用逆向工程方法和工控機技術(shù),實現(xiàn)原磁帶存儲系統(tǒng)的國產(chǎn)化替代。
磁帶存儲系統(tǒng)由通道連接組合、磁帶存儲器和電源組合構(gòu)成。該系統(tǒng)按數(shù)字計算機指令組織信息交換,將磁帶上的信息還原并送入數(shù)字計算機通道;接收來自數(shù)字計算機通道的信息并將其記錄在磁帶上,進(jìn)行信息的長期保存。
輸入輸出裝置采用以工控機為主體,依托于FPGA 組成的時序控制電路,以高速輸入輸出總線技術(shù)為橋梁的總體技術(shù)方案,完成與數(shù)字計算機的交互,實現(xiàn)信息的實時讀出、寫入操作。裝置的基本組成見圖1。
圖1 輸入輸出裝置的基本組成
輸入輸出裝置的主要部件是智能接口模塊,包括2 個8位單片機Atmel89S53(U21,U16),1 個XC2S50 型FPGA(U77)。單片機負(fù)責(zé)運行功能程序,F(xiàn)PGA 負(fù)責(zé)譯碼、解碼和編碼。U16 是核心處理器,管理打字機的串行接口和整個接口模塊的引導(dǎo)啟動,其自身執(zhí)行程序、U77 的配置文件和U21的執(zhí)行程序都位于U70、U67 和U64 鐵電存儲器(FRAM)中。如何提取這3 個FRAM 內(nèi)的程序,成為項目研制的關(guān)鍵。
試驗顯示,上述FRAM 不僅適合在板編程,而且焊下來也是安全的,具備了使用編程器讀取芯片內(nèi)部程序的可能性。考慮到FRAM 內(nèi)部數(shù)據(jù)的脆弱性,為慎重起見,先使用同型號FRAM 在編程器上反復(fù)進(jìn)行編程和芯片的插、拔操作,這時,出現(xiàn)個別數(shù)據(jù)丟失現(xiàn)象,原因是芯片和編程器接觸的一瞬間,各管腳的信號具有不確定性。通過反復(fù)摸索,發(fā)現(xiàn)將芯片的“寫”和“片選”信號上安置跳線,使其始終處于已知的確定狀態(tài),就可以在編程器上安全地插裝和卸下芯片,由此成功地從3 個FRAM 中讀取了程序和配置文件。U21 和U16 這2 片89S53 內(nèi)部有無程序呢?從電路上看,U21 使用外部程序區(qū),并不使用內(nèi)部程序區(qū),因此,判斷其內(nèi)部沒有固化程序。U16 的情況與此類似。同時,通過閱讀反匯編得到的匯編文件,排除了外部程序和內(nèi)部固化程序同時存在的可能性。由此可以斷定已經(jīng)獲取所有程序。程序和配置文件在存儲器里共有3 個相同的數(shù)據(jù)塊,可以通過判斷3 塊數(shù)據(jù)是否一致來確定數(shù)據(jù)的正確性。執(zhí)行程序和芯片配置文件提取流程圖如圖2 所示。
磁帶存儲系統(tǒng)的國產(chǎn)化,保持原電氣接口不變,采取測仿+功能替代的技術(shù)路線。國產(chǎn)化存儲系統(tǒng)主要包括工控機、數(shù)據(jù)交換接口板、輸入輸出設(shè)備和電源供電裝置。國產(chǎn)化存儲系統(tǒng)硬件組成如圖3 所示。
圖2 執(zhí)行程序和芯片配置文件提取流程
圖3 國產(chǎn)化存儲系統(tǒng)硬件組成
工控機為購買的現(xiàn)成PC -104 模塊6236。PC -104 是一種專門為嵌入式而定義的工業(yè)控制總線,具有低成本、高可靠性、系統(tǒng)組建方便等優(yōu)點,被廣泛應(yīng)用于工業(yè)控制、自動化測試等領(lǐng)域[1]。6236 模塊集成有主頻為800 MHz 的Vortex86DX 型CPU,4 個串口COM1 ~COM4,1 個PS2 鍵盤接口KBD,1 個LPT 打印接口PRINT,1 個VGA 顯卡接口VGA,1個CF 卡接口CF,以及板載虛擬軟驅(qū)D8000 等。
2 個Atmel89S53 型單片機和1 個144 腳的XILINX XC2S50 型FPGA 組成數(shù)據(jù)交換接口板的微控制器(MCU),對接口板上的固態(tài)存儲器進(jìn)行管理,實現(xiàn)數(shù)據(jù)的讀出、寫入和存儲,替代了原磁帶機和磁帶盒的功能;完成數(shù)據(jù)打印和顯示功能。固態(tài)存儲器由FM24C256 構(gòu)成。FM24C256 是一個256kbit 的FRAM,其總線頻率可高達(dá)1 MHz,具有10 億次以上的讀寫次數(shù)且功耗很低[2]。數(shù)據(jù)位被串行移出,使用兩線制(I2C)串行總線進(jìn)行讀寫,工作電壓+5 V,動態(tài)工作電流200 μA,靜態(tài)工作電流100 μA。
單片機執(zhí)行程序和FPGA 配置文件保存在由3 個并口FRAM 芯片F(xiàn)M18L08 組成的存儲器中。FM18L08 內(nèi)存組織結(jié)構(gòu)為32k×8bit,可通過工業(yè)標(biāo)準(zhǔn)并行接口進(jìn)行訪問,兼容SRAM 和EEPROM。數(shù)據(jù)交換接口板加電后,單片機執(zhí)行程序從FM18L08 調(diào)入單片機的RAM(IS62C256 -70UI),F(xiàn)PGA配置文件調(diào)入FPGA 芯片中運行,完成數(shù)據(jù)交換和轉(zhuǎn)換功能。
原磁帶存儲系統(tǒng)的2 路+27V 直流電源接電控制方式不變,其中1 路+27V 直流電源經(jīng)ACE -709CX 型DC/DC變換器后輸出+5V 和12V,用于為工控機和數(shù)據(jù)交換接口板供電;另1 路+27 V 直流電源經(jīng)SM150 -224 型DC/AC 變換器輸出~220V 50Hz 交流電源,為EPSONLx -300 +Ⅱ打字機供電。
數(shù)據(jù)交換接口板參考了輸入輸出裝置中數(shù)據(jù)交換接口部分的設(shè)計思路,包括微控制器、FRAM、固態(tài)存儲器、打印接口電流環(huán)電路和串/并轉(zhuǎn)換接口電路等。接口板的開發(fā)過程雖然是對輸入輸出裝置數(shù)據(jù)交換接口部分的測仿,但需要對原設(shè)計的高速信號接口、交互控制、串并轉(zhuǎn)換、時序產(chǎn)生等電路進(jìn)行全面剖析?;贔PGA 的設(shè)計開發(fā),同樣采用了144腳的XC2S50 芯片,并對芯片中電路的特性、參數(shù)和時序進(jìn)行了對比測試,保證與裝備原件一致。
數(shù)據(jù)交換接口板功能原理見圖4。
圖4 數(shù)據(jù)交換接口板功能原理
40 個FM24C256 芯片構(gòu)成1280k×8bit 的固態(tài)存儲器存儲空間,由微控制器進(jìn)行分區(qū)管理,形成虛擬磁盤0 和虛擬磁盤1,替代原磁帶存儲器。接口板上的2 個單片機分為主機和從機,主機負(fù)責(zé)管理固態(tài)存儲器和串/并聯(lián)接口,從機負(fù)責(zé)打字機的數(shù)據(jù)串行接口。2 個RS -232 串行接口,用于和工控機通訊。
國產(chǎn)化存儲系統(tǒng)運行的所有軟件及程序均來自輸入輸出裝置。工控機操作系統(tǒng)運行環(huán)境為DOS 6.22,系統(tǒng)軟件及打印程序裝在板載硬盤上;其他應(yīng)用程序及作戰(zhàn)指揮程序代碼存儲于CF 卡存儲器中。數(shù)字交換接口板上的FRAM 存儲從輸入輸出裝置破解的單片機執(zhí)行程序和FPGA 配置文件;固態(tài)存儲器保存作戰(zhàn)指揮程序代碼。
國產(chǎn)化存儲系統(tǒng)以“檢查狀態(tài)”方式啟動后,操作人員在C:WH 目錄下進(jìn)行維護(hù)操作。主要包括:
1)檢驗源代碼OZZUK 的校驗和
為確保從工控機下載到固態(tài)存儲器中的作戰(zhàn)指揮程序代碼的正確性,下載前,應(yīng)檢驗源代碼OZZUK 的校驗和。過程如下:國產(chǎn)化存儲系統(tǒng)以“檢查狀態(tài)”方式啟動成功后,運行C:WHKS_PO. BAT 程序;若運行結(jié)果КС1 ~КС5 與下述代碼相符,則表明源代碼OZZUK 正確。
КС1 =63C48819
КС2 =00000000
КС3 =FEE48EA5
КС4 =235A134F
КС5 =BE7A15F3
2)對固態(tài)存儲器進(jìn)行讀操作
讀操作的目的是為了檢驗寫入固態(tài)存儲器的作戰(zhàn)指揮程序代碼的正確性。讀取固態(tài)存儲器第2 區(qū)至第129 區(qū)的數(shù)據(jù),形成OLZUK 格式、OZZUK 格式的4 個文件以及WCOPY.EXE 和TFD. EXE 程序運行產(chǎn)生的2 個日志文件,存儲于CF 卡存儲器的C:WH 目錄下,同時還要進(jìn)行檢驗OLZUK 格式文件及OZZUK 格式文件代碼正確性的操作。
3)對固態(tài)存儲器進(jìn)行寫操作
讀固態(tài)存儲器操作出現(xiàn)存儲代碼的校驗和不正確時,才進(jìn)行固態(tài)存儲器的寫入操作:將CF 卡存儲器C:WH 目錄下的OZZUK 文件進(jìn)行代碼轉(zhuǎn)換,形成可下載文件OLZUK,將OLZUK 文件下載到固態(tài)存儲器。過程如下:國產(chǎn)化存儲系統(tǒng)以“檢查狀態(tài)”方式啟動成功后,進(jìn)行檢驗源代碼OZZUK的校驗和操作;校驗和符合要求后,運行C:WHR_ZUK.BAT 程序,將OLZUK 文件下載到固態(tài)存儲器;代碼下載結(jié)束后,為了驗證下載的正確性,進(jìn)行固態(tài)存儲器的讀操作;當(dāng)檢驗結(jié)果符合要求后,表明OLZUK 代碼已正確寫入固態(tài)存儲器中。
當(dāng)武器系統(tǒng)指令存儲器存儲的程序損壞或丟失時,數(shù)字計算機可通過第14 交換通道讀取固態(tài)存儲器中存儲的作戰(zhàn)指揮程序代碼,重新寫入指令存儲器。裝備陣地的遮蔽角信息通過鍵盤輸入,保存在固態(tài)存儲器中,需要時,數(shù)字計算機可通過第14 交換通道讀取到指令存儲器;同時,也可將指令存儲器中的陣地遮蔽角信息寫入固態(tài)存儲器保存。
目前,研制的國產(chǎn)化存儲系統(tǒng)已在工廠裝備修理及部隊裝備維護(hù)保障中得到應(yīng)用檢驗,結(jié)果表明:該系統(tǒng)能滿足引進(jìn)裝備的正常使用要求,使用維護(hù)簡便,可靠性高。
[1]王浩,許化龍.基于PC104 的測試系統(tǒng)抗干擾設(shè)計[J].彈箭與制導(dǎo)學(xué)報,2009,29(2):293-295,302.
[2]李建煒.FM24C256 在儀表中的應(yīng)用[J].國外電子元器件,2003(4):46-49.