某型导弹单元测试模拟训练系统设计

时间:2022-09-12 10:46:45

某型导弹单元测试模拟训练系统设计

摘 要:为了给某型导弹单元测试设备配套的模拟训练设备,采用硬件结合软件的方法实现模拟训练系统的设计。硬件结合软件的方法是由单片机检测外部开关、按钮等元件状态,再由软件来判断结果,在数码管和指示灯上进行显示。详细介绍波段开关读取、语音控制等关键的硬件技术、软件流程、流程数据分离技术和菜单技术等关键的软件技术在系统中的应用。

关键词:导弹;模拟训练;单片机;单元测试

中图分类号:TP207 文献标识码:B

文章编号:1004-373X(2008)06-168-03

A Certain Missile Unit testing Simulated Training System Design

BAI Weibing LI Jimin2,YU Hao3

(1.Ordance N.C.O Academy of PLA,Wuhan,430075,China;

2.Department of Optical & Electronic Engineering,Ordnance Engineering College,Shijiazhuang,050003,China;3.Army 63856,Jilin,137000,China)

Abstract:For the supporting simulated training devices of a certain missile unit testing device,a set of simulated training devices are designed based on software and hardware.The status of switches and buttons is detected by CPU,and results are given in nixie tubes and LEDs by software.The key hardware techniques such as band-switch detecting and voice operation,and the key software techniques such as flow data stand-alone and menu control are discussed in this paper.The software flow charts are also given.

Keywords:missile;simulated training;singlechip;unit testing

由于某型导弹单元测试设备没有配套的模拟训练设备,部队装备保障人员的训练一直都是在实装上进行的。使用实装进行训练,增大了实装的设备磨损,缩短了其使用寿命,而且操作人员的误操作很有可能对装备造成损害,甚至造成重大装备事故。为了解决这个问题,这里研制了某型导弹单元测试模拟训练系统。一般的模拟训练系统分为3种:完全使用硬件,完全使用软件及硬件结合软件。完全使用硬件的方案不够灵活,而完全使用软件的方案又不能给人实际操作的感觉。因此,采用最后一种方案,由单片机检测外部开关、按钮等元件状态,然后再由软件来判断结果,在数码管和指示灯上进行显示。

1 总体方案

软硬结合模拟方案是在单片机硬件电路的基础上,使用软件模拟原测试仪的测试流程。操作面板各个波段开关、拨动开关和按钮等元件的状态都读入单片机,然后由单片机根据程序存储的流程信息控制数码管、指示灯等显示元件给出相应反馈信息。整个系统的组成框图如图1所示。

单片机采用具有20 k程序存储器和256 B RAM的89C55;由于面板上波段开关比较多,为了节约I/O资源,采用A/D读取波段开关档位的方法;语音电路用来在系统训练模式时播放操作提示信息,在系统考核模式时播放考核成绩;液晶显示用于显示操作提示信息和系统工作状态;键盘显示控制采用键盘显示控制芯片8279管理面板上的数码管、指示灯、测试按钮和用来控制系统工作模式的控制按钮。

2 硬件设计

某型导弹单元测试仪上使用了大量的波段开关和拨动开关。波段开关和拨动开关有很多个节点,要单片机去读取每一个节点,单片机的I/O资源就会严重短缺。为了解决这个矛盾,系统采用了电阻分压A/D检测的方法。波段开关电阻分压的原理图如图2所示。

在图2中,0脚连接GND;10脚连接VCC;11脚连接到A/D的输入通道。当波段开关打到档位n时,A/D测到的电压为(n/10)VCC。这样,一个波段开关只需一根线即可检测其所在档位。拨动开关的连接方式与波段开关类似。

系统的A/D芯片采用了美国MAXIM公司的串行A/D芯片MAX1038。MAX1038是一款8位的ADC芯片,采用5 V单电源供电,12个通道,I2C串行接口,最大采样速率188 ks/s,内部集成时钟和一个4.096 V的参考电压源[1]。MAX1038和输入的连接电路图如图3所示。

为了增强模拟训练的效果,增加训练模式下的操作提示功能,在系统中设计了语音发声电路。语音电路的核心部分采用的是ISD4004-08单片语音录放芯片。ISD4004-08是美国ISD公司开发的,片内集成了振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列等。内部的E2PROM存储器,可以反复擦写。采用所谓模拟存储技术,声音无需A/D转换和压缩就可以直接存储,没有A/D转换误差,在一个记录位(bit)可以存储多达250级声音信号,相当于通常A/D技术记录量的8倍,很好地实现了语音还原效果,而且能录能放,控制简单灵活,单片录放时间为8 min。其次,将快速闪存作为存储介质,无需电源即可保存数据长达100年,重复记录10 000次以上。同时,接口简单,开发时所需电路简单。ISD4004-08的连接电路图如图4所示。

3 软件设计

系统软件根据功能划分为软件“引擎”、系统初始化、液晶控制、键盘管理、显示控制、语音播放控制、开关读取和流程数据8个模块。软件结构图如图5所示。

软件“引擎”其实是系统软件的一个主循环结构,由他检测各种状态条件,然后根据状态条件调用执行相应模块。软件“引擎”的概念把流程数据和程序执行代码分离,流程的改变不需改动代码,从而提高了编程效率,方便了代码的修改和移植。

模拟训练系统的工作模式分为训练模式和考核模式。在训练模式情况下,系统要给出操作步骤名称和操作方法提示,帮助使用者正确操作。考核模式则在使用者经过一段时间训练以后检验其训练效果。因此,考核模式下就不再给出操作步骤名称和操作方法提示,并且当要对操作过程进行计时,最后给定操作者考核成绩。训练模式的流程图如图6所示。考核模式的流程图如图7所示。

为了提高编程的效率,提高程序的可靠性,降低代码量,在系统设计时使用将流程数据和控制代码分离的办法。将流程数据和控制代码分离的办法在工控机测试软件的编写中早已被广泛应用。由于工控机有操作系统和数据库的支持,所以技术上实现起来非常容易。而单片机没有操作系统和数据库的支持,并且单片机可利用的资源非常有限,因此从技术上实现将流程数据和控制代码分离比较困难。该技术的关键在于使用合适的数据结构来表达流程数据。

以配电器测试为例说明这种数据结构。很明显在这个数据结构里,必须包含步骤名称、开关按钮状态、提示声音、结果数据和流程顺序等信息。首先定义每个步骤的数据类型,代码如下:

typedef struct

{

uchar ProcName[26]; //步骤名称

uchar BodongState;//拨动开关和按钮状态

//0位为S2,1位为S5,2位为S6,3位为S11,1为上,0为下

//4位为S3,5位为S13,6位为S12,1为按,0为不按

uchar S7State;//波段开关S7状态

uchar S8State;//波段开关S8状态

uchar S9State;//波段开关S9状态

uchar S10State;//波段开关S10状态

uchar LedDisp;//指示灯字段码

uchar VoltDisp[5];//电压表字段码

uchar SecDisp[5]; //毫秒表字段码

uint VolFirstMaster;//提示声1主语位置

uint VolFirstAction;//提示声1动作位置

uint VolSecondMaster;//提示声2主语位置

uint VolSecondAction;//提示声2动作位置

uint VolThirdMaster;//提示声3主语位置

uint VolThirdAction;//提示声3动作位置

} ProcStruct;

然后,要使用数组来表达各个步骤地顺序结构。自检流程部分的数据声明如下所示:

//自检流程表

ProcStruct code SelfTestFlow[Info_SelfTestFlow]=

{

};

由于系统使用了一块128×64的点阵液晶来显示系统状态和提示信息,所以就具备了采用菜单技术控制系统工作模式的硬件条件。以配电器模拟训练系统为例,其工作模式分为考核模式和训练模式,测试种类包括自检、配电器测试和副配电器测试。其控制菜单结构如图8所示。

控制按键总共设向上、向下、确认和取消4个按键。同级之间的菜单选项转换通过向上、向下2个键来现。按下确认键,进入下级菜单。按下取消键,回到上级菜单。为了用数据结构来表征菜单,首先要建立一个表达菜单选项的数据类型。菜单选项数据类型声明如下:

typedef struct //菜单定义的数据结构

{

uchar KeyStateIndex;//当前状态索引号

uchar KeyDnState;//按下"向下"键时转向的状态索引号

uchar KeyUpState;//按下"向上"键时转向的状态索引号

uchar KeyCrState;//按下"回车"键时转向的状态索引号

uchar KeyEscState;//按下"返回"键时转向的状态索引号

void (*CurrentOperate)();//当前状态应该执行的功能操作

} KbdTabStruct;

然后要声明一个数组表示菜单的结构:

KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=

{

{0,7,14,1,0,(*TrainModeMenu)},//训练模式菜单

{1,3,5,2,0,(*TrainSelfTestMenu)},//训练模式自检菜单

{2,2,2,2,2,(*TrainSelfTestFun)}, //训练模式自检执行函数

{3,5,1,4,0,(*TrainPeiTestMenu)},//训练模式配电器测试菜单

{4,4,4,4,4,(*TrainPeiTestFun)},

//训练模式配电器测试执行函数

{5,1,3,6,0,(*TrainFuPeiTestMenu)}, //训练模式副配电器测试菜单

{6,6,6,6,6,(*TrainFuPeiTestFun)},//训练模式副配电器测试执行函数

{7,14,0,8,7,(*TestModeMenu)},//考核模式菜单

{8,10,12,9,7,(*TestSelfTestMenu)},//考核模式自检菜单

{9,9,9,9,9,(*TestSelfTestFun)},//考核模式自检执行函数

{10,12,8,11,7,(*TestPeiTestMenu)},//考核模式配电器测试菜单

{11,11,11,11,11,(*TestPeiTestFun)},//考核模式配电器测试执行函数

{12,8,10,13,7,(*TestFuPeiTestMenu)},//考核模式副配电器测试菜单

{13,13,13,13,13,(*TestFuPeiTestFun)},//考核模式副配电器测试执行函数

{14,0,7,15,14,(*AboutMenu)}, //关于菜单

{15,15,15,15,15,(*AboutFun)},//关于执行函数

};

4 结 语

用硬件模拟装备外部操作元件,用软件来模拟装备内部功能的模拟训练系统设计方案即可以完全实现装备操作的模拟,给操作者实际的操作感受,又可以方便地增加辅助功能,增强训练效果。本文设计的某型导弹单元测试模拟训练系统已经在院校教学和部队训练中进行试用,收到了良好的效果。

参考文献

[1]MAX1038 Datasheet.Maxim Integrated Products Inc.2003.

[2]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计\[M\].北京:北京航空航天大学出版社,2003.

[3]韩兆福,徐伟勤,王乃庆,等.某型飞机导弹模拟训练器的设计与实现\[J\].仪表技术,2005(6):38-39.

作者简介 摆卫兵 男,1979年出生,河南许昌人,助教,硕士。主要研究方向为兵器发射理论与技术。

上一篇:用Levenberg-Marquardt法进行二维介质重构 下一篇:二极管的变阻与变容特性在手机中的应用