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