基于ARM的某型火箭炮角限位器模拟系统设计

2017-08-30 00:01吴第旻刘千寿朱云博
计算机测量与控制 2017年7期
关键词:限位器铜箔管脚

吴第旻,刘千寿,李 俊,朱云博

(武汉军械士官学校, 武汉 430075)

基于ARM的某型火箭炮角限位器模拟系统设计

吴第旻,刘千寿,李 俊,朱云博

(武汉军械士官学校, 武汉 430075)

为减少装备损耗,展现某型火箭炮角限位器工作过程和常见故障,设计了基于ARM的角限位器模拟训练系统;以TX2440A开发板为基础,设计了高低角限位器模拟装置、方向角限位器模拟装置和输入输出控制显示电路;采用Linux C++多线程编程技术和QT技术,设计了硬件驱动程序,驱动调用程序和软件操作界面,实现了两种角限位器工作过程和常见故障的模拟;实验结果表明,该系统能准确、实时地反映角限位器的工作状态和故障现象,为教学训练提供了可靠的平台。

ARM;QT;多线程编程;模拟训练;故障设置

0 引言

某型火箭炮武器系统自动化程度高、快速反应能力强、射程远、精度高、火力猛,担负着远程精确打击的重任。该炮能够实现自动、半自动和手动等多种方式调炮瞄准。其中,在自动和半自动调炮过程中,火力系统采用角限位器在某些极限位置进行安全限位,并在一些特殊位置使操瞄传动系统完成一些特殊功能(如减速、定位等)。

角限位器分为高低角限位器和方向角限位器,分别用于对高低和方向进行限位、指示。理解角限位器的工作原理及其在整个火箭炮火力系统中的作用,了解常见的故障现象并进行故障分析与排除,是军械士官必须掌握的专业技能之一。

ARM处理器以其体积小、成本低、性能高、兼容性好等优点在工业控制[1-2]、无线通讯[3]、成像和安全产品[4]、网络应用[5]、消费类电子产品[6]等多个领域得到广泛应用。QT是一个标准的C++框架,被用于高性能的跨平台软件开发[7]。线程是进程内部的一个执行单元,是CPU调度和分配的基本单位。应用多线程可最大限度地利用计算机资源,提高工作效率[8]。

由于某型火箭炮造价高昂,因此部队和院校配备的装备数量都非常有限。在平时训练过程中,存在着装备少、训练不好开展的问题。为减少装备损耗,提高教学效果,直观地展现角限位器的工作过程,方便介绍其工作原理,并能设置常见故障,以供故障分析排除,本文拟设计一种基于ARM9控制器的模拟训练系统,并采用QT4和Linux C++多线程编程技术来进行程序设计。

1 硬件平台设计

1.1 高低角限位器模拟装置

高低角限位器模拟装置由机械部分与导电部分组成。机械部分由传动轴、锁紧螺钉、主动轮、从动轮、传动带等组成。导电部分由导电盘、滑动架等组成。主动轮装配在传动轴上,滑动架装配在从动轮上。主、从动轮通过传动带进行传动。松开锁紧螺钉后,可调整传动轴,动力通过主动轮、从动轮,带动滑动架在导电盘上运动,接触不同的铜箔,输出不同的位置信号。高低角限位器导电盘上共有四块铜箔(即图1(a)中导电盘上四段圆弧,其中1、2、3都是短圆弧,4是长圆弧),分别对应输出插座的1、2、4、5号端子,3号端子接地。

1.2 方向角限位器模拟装置

方向角限位器模拟装置也是由机械部分与导电部分组成。机械部分由传动齿轮、锁紧螺钉、主动轮、从动轮、传动带等组成。导电部分由导电盘、滑动架等组成。主动轮与传动齿轮共轴,滑动架装配在从动轮上。主、从动轮通过传动带进行传动。松开锁紧螺钉后,可调整传动齿轮,动力通过主动轮、从动轮,带动滑动架在导电盘上运动,接触不同的铜箔,输出不同的位置信号。方向角限位器导电盘上共有五块铜箔(即图1(b)中导电盘上五段圆弧,其中2、3、4为短圆弧,1、5为长圆弧),分别对应输出插座的1、2、3、5、6号端子,4号端子接地。

图1 高低角和方向角限位器模拟装置

1.3 输入输出控制与显示电路

以郭天祥团队的TX2440A开发板为基础,采用S3C2440A作为主控制器,7寸液晶显示屏作为控制平台,6个LED指示灯作为输出。指示灯排列顺序与角限位器输出接口一致。从高低角限位器模拟装置和方向角限位器模拟装置引出的信号线,分别与TX2440A开发板的GPIO端口GPF0-3和GPG0-3、6相连。输出指示灯与GPF4-7以及GPB0、1相连。开发板与模拟装置共地。

图2 控制界面和输出指示

角限位器模拟训练系统的工作过程如下:转动角限位器下方传动轴,滑动架在导电盘上运动,接触到不同铜箔时,将接通信号传递给ARM控制器,ARM控制器根据输入信号,控制输出指示灯点亮和熄灭。该过程与装备上角限位器的工作过程类似,指示灯点亮表示角限位器相应输出管脚接地。火控系统接收到电信号后,随即根据该信号控制火力系统动作。

2 软件平台设计

2.1 硬件驱动程序

硬件驱动程序采用C语言进行设计,它加载在Linux内核中,用于直接操作硬件,主要功能是根据两种角限位器的输出信号来控制输出指示灯的亮灭。此外,程序还能响应自检、故障设置等指令。

首先将所有管脚设置为输出模式,然后初始化各输入管脚。然后再编写不同指令的响应程序。主要的指令有:点亮任意一盏灯,熄灭任意一盏灯,点亮所有灯,熄灭所有灯,依次打开、熄灭所有灯,模拟高低角限位器,模拟方向角限位器,设置高低角限位器任意一根电线脱焊,设置高低角限位器任意一块铜箔损坏,设置高低角限位器滑架松动,设置方向角限位器任意一根电线脱焊,设置方向角限位器任意一块铜箔损坏,设置方向角限位器滑架松动。

电线脱焊与铜箔损坏的区别是,电线直接与指示灯一一对应,而铜箔比指示灯少,不是一一对应的。滑架松动则滑架与铜箔不能可靠接触,铜箔无法接地。

在模拟角限位器工作和设置角限位器故障时,需要读取各输入管脚的值,故先将需要读取的管脚设置为输入模式,再读取该管脚的值,然后判断其值,最后根据判断的结果写各输出管脚,点亮相应的指示灯。在设置故障时,忽略模拟故障信号的管脚的输入,直接将相应的输出管脚置零。

图3给出了模拟高低角限位器子程序的流程。由于高低角限位器只有5个输出管脚信号有效,故模拟它时只需要5个指示灯,所以首先要关闭6号灯。接下来打开表示地线的3号灯。其他各灯需根据读入的相应管脚值进行设置。

图3 模拟高低角限位器程序流程图

在图3中,为了简化代码,采用了循环控制,将1、2号灯和4、5号灯分开进行处理。过程如下:首先设置与该指示灯对应的管脚(也就是与导电盘对应铜箔相连的管脚)为输入模式;然后读取该管脚值到整数变量J;再判断J是否为0,若为0,则认为其接地,否则认为其没有接地,将J置1;接下来对J取反,并将该信号输出到该指示灯连接的管脚;然后重复该循环,直至所有指示灯设置完毕。

模拟方向角限位器子程序与图3类似。

图4给出了设置方向角限位器某根电线脱焊程序的流程。方向角限位器4号端子接地,不依赖对应管脚的输入值,因此单独处理。如果它就是故障灯(对应的电线脱焊),直接关闭该灯;如果不是,则打开该灯。对其他指示灯,如果它就是故障灯(对应的电线脱焊),那么直接关闭该灯;如果不是,则根据对应管脚的输入进行设置。

图4 设置方向角限位器电线脱焊故障程序流程图

在图4中,为了简化代码,采用了循环控制,将1、2、3号灯,4号灯和5、6号灯分开进行处理。过程如下:首先设置与该指示灯对应的管脚(也就是与导电盘对应铜箔相连的管脚)为输入模式;然后读取该管脚值到整数变量J;再判断J是否为0,若为0,则认为其接地,否则认为其没有接地,将J置1;接下来再判断该灯是否为故障灯,如果是,直接关闭该指示灯,否则对J取反,并将该信号输出到该指示灯连接的管脚;然后重复该循环,直至所有指示灯设置完毕。

其它故障设置的程序流程与图4类似。

2.2 驱动调用程序

驱动调用程序的功能是根据用户的操作,选择合适的参数调用硬件驱动程序。操作指令的编码,故障灯号的设置都在此程序中进行。考虑到故障具有随机性,为使故障模拟更真实,模拟训练系统的故障位置对用户来说是不可预知的。

程序的主要流程如下:首先打开驱动文件,然后根据指令调用硬件驱动程序。为了让程序实时响应传动轴(或滑动架)的转动,除全开、全关、模拟高低角限位器滑架松动和模拟方向角限位器滑架松动外,其他指令都设置while循环,循环控制标志可通过界面操作程序进行设置。设置角限位器故障时,需随机生成故障信号的编号,然后传递给驱动程序。为防止驱动调用程序独占系统资源,每次响应驱动程序后,驱动调用程序休眠0.5 ms,等待界面操作程序指令。指令执行完毕,关闭驱动文件,退出线程。

2.3 软件操作界面

软件界面采用QT技术,方便在计算机上编程,编译,然后在开发板上的嵌入式系统中运行。程序运行界面如图5所示。系统能实现自检、工作模拟和故障模拟3种功能。其中,(1)自检中的“跑马灯”是指指示灯依次点亮、熄灭,可用于确定指示灯序号;(2)工作模拟和故障模拟又分高低角限位器和方向角限位器两种情况。

程序采用信号槽机制,每个单选按钮都能响应鼠标左键。当某个按钮被选中时,先设置驱动调用程序循环控制停止标志,然后等待5 ms,等驱动调用程序运行完毕后,再设置循环控制启动标志以及指令标志,启动新线程,执行驱动调用程序。

图5 软件操作界面

3 系统运行效果

3.1 场景设置

1)高低角限位器模拟装置设置:如图6(a)所示,高低角限位器滑架与1、3号铜箔接触。1号铜箔与1号灯对应,3号铜箔与4号灯对应,3号灯接地。输出指示灯点亮表示高低角限位器输出插座相应管脚接通车体地。因此,正常情况下,应该是1、3、4号灯点亮。当某根电线脱焊时,对应的灯无法点亮。同理,当某个铜箔损坏时,对应的灯无法点亮。而当滑架松动时,除接地灯外,其他灯由于不接地,都无法点亮。

2)方向角限位器模拟装置设置:如图6(b)所示,方向角限位器滑架与2、5号铜箔接触。2号铜箔与2号灯对应,5号铜箔与6号灯对应,4号灯接地。输出指示灯点亮表示方向角限位器输出插座相应管脚接通车体地。因此,正常情况下,应该是2、4、6号灯点亮。当某根电线脱焊时,对应的灯无法点亮。同理,当某个铜箔损坏时,对应的灯无法点亮。而当滑架松动时,除接地灯外,其他灯由于不接地,都无法点亮。

图6 高低和方向角限位器模拟装置导电盘状态

3.2 模拟高低角限位器

1)正常情况:选中图5中第2个选项卡中的“模拟高低角限位器”,结果如图7(a)所示。此时1、3、4号灯亮,表示1号和4号端子接地,也就是滑动架搭在1号和3号铜箔上,与图6(a)吻合。

2)电线脱焊:选中图5中第3个选项卡中的“电线脱焊”,结果如图7(b)所示。此时1、4号灯亮,3号灯不亮,通过与3.2.1进行对比,可以推断地线脱焊。

3)铜箔损坏:选中图5中第3个选项卡中的“铜箔损坏”,结果如图7(c)所示。此时1、3号灯亮,4号灯不亮,通过与3.2.1进行对比,可以推断3号铜箔损坏。

4)滑架松动:选中图5中第3个选项卡中的“滑架松动”,结果如图7(d)所示。此时除3号灯点亮外,其他指示灯不亮,表明1号和3号铜箔都没有接地,这是滑架松动的故障现象。此时如果转动滑架,仍然只有3号灯亮。

图7 模拟高低角限位器时,不同情况下指示灯状态

3.3 模拟方向角限位器

1)正常情况:选中图5中第2个选项卡中的“模拟方向角限位器”,结果如图8(a)所示。此时2、4、6号灯亮,表示2号和6号端子接地,也就是滑动架搭在2号和5号铜箔上,与图6(b)吻合。

2)电线脱焊:选中图5中第4个选项卡中的“电线脱焊”,结果如图8(b)所示。此时4、6号灯亮,2号灯不亮,通过与3.3.1对比,可以推断连接2号端子的电线脱焊。

3)铜箔损坏:选中图5中第4个选项卡中的“铜箔损坏”,结果如图8(c)所示。此时2、4号灯亮,6号灯不亮,通过与3.3.1进行对比,可以推断5号铜箔损坏。

4)滑架松动:选中图5中第4个选项卡中的“滑架松动”,结果如图8(d)所示。此时除4号灯点亮外,其他指示灯不亮,表明2号和5号铜箔都没有接地。这是由于滑架松动,无法可靠接触铜箔造成的。此时如果转动滑架,仍然只有4号灯亮。

图8 模拟方向角限位器时,不同情况下指示灯状态

4 结束语

本文设计了一种基于ARM的某型火箭炮模拟训练系统,给出了硬件和软件的设计思路。该系统采用了QT和Linux多线程编程技术,实现了对高低和方向两种角限位器的模拟。结果表明,该系统不仅能模拟两种角限位器正常工作情况,还能模拟它们的常见故障状态。模拟角限位器工作过程有助于分析它的工作原理,提高教学效果。模拟故障现象,对分析故障原因和排除故障都有重要的指导意义。

[1] 张 姝,王 滨,鞠洪涛,等. 基于ARM9和CAN总线的TIG焊机器人示教盒设计 [J]. 电焊机,2012,42 (6):102-104.

[2] 闫广续,袁纵横,周小林,等. 基于ARM嵌入式Linux的数据采集系统设计 [J]. 计算机测量与控制,2015,23 (5):1724-1727.

[3] 曾明如,罗 浩,徐小勇,等. 基于ARM和nRF905组网的智能家居系统设计 [J]. 计算机测量与控制,2015,23 (4):1418-1420.

[4] 王文特. 基于FPGA和ARM的分布式光纤振动传感系统信号处理模块的研制 [D]. 南京:东南大学,2015.

[5] 苟志坚. 基于ARM的远程视频监控系统的研究与设计 [D]. 长沙:湖南大学,2014.

[6] 赵亚齐. 基于ARM的嵌入式网络收音机的设计 [D]. 郑州:郑州大学,2013.

[7] 王 浩,陈邦琼. 嵌入式Qt开发项目教程 [M]. 北京:中国水利水电出版社,2014.

[8] 陈冠军. 零点起飞学Linux C编程 [M]. 北京:清华大学出版社,2013.

Design of Some Rocket Launcher Angle Retainer Simulator Based on ARM

Wu Dimin, Liu Qianshou, Li Jun, Zhu Yunbo

(Wuhan Mechanical Technology College, Wuhan 430075, China)

An angle retainer training simulator of some rocket launcher is designed based on ARM to reduce equipment depreciation, and to display operating principle and common fault. The TX2440A development board is adopted to design simulators of altitude and direction angle retainer, as well as an I/O control and display circuit. Moreover, the Linux C++ multithread programming technology and the QT technology are utilized to develop hardware driver, driver caller, and operation interface. Consequently, operating principle and common fault simulation of both angle retainers are realized. Experiments show that both the work state and the fault phenomenon of those angle retainers can be revealed precisely in real time, providing a reliable platform for teaching and training.

ARM; QT; multithread programming; training simulation; failure setting

2017-01-13;

2017-02-21。

吴第旻(1982-),湖南华容人,博士,讲师,主要从事某型火箭炮武器系统教学方向的研究。

1671-4598(2017)07-0140-03

10.16526/j.cnki.11-4762/tp.2017.07.035

TP23

A

猜你喜欢
限位器铜箔管脚
基于UG NX的车门限位器拉杆设计研究
印制板用电解铜箔时效研究
某500 kV变电站隔离开关软连接失效的原因
面向DSP+FPGA通用处理架构检测的硬件系统设计
汽车车门过开性能及典型过开失效研究
基于公差的车门限位器包络面的参数化计算
重结晶对锂电池用电解铜箔力学性能的影响
一种异步FIFO的Read/Write Data Flow Through功能测试方法∗
略谈如何利用三极管管脚间电阻值判断其型号及管脚
铜箔行业的强者之争