基于单片机的飞机模拟训练仪表控制系统设计研究

2022-04-22 08:08金城周露岩
电子测试 2022年6期
关键词:子程序模拟训练串口

金城,周露岩

(中国飞行试验研究院,陕西西安,710089)

0 引言

飞机模拟训练系统是一种利用飞机模拟器开展飞行员培训的先进智能化虚拟场景系统。在飞行员开展正式的飞行训练之前,均需要在飞机模拟器环境下开展长时间的模拟训练。因此,飞机模拟训练系统的工作稳定性、真实性等,成为影响飞行员飞行基础的重要条件[1]。传统的飞机模拟训练系统主要包括仪表控制系统、运动系统、音响系统等。其中飞机模拟训练系统中的仪表控制系统,是整个飞行员初期教学与训练场景中最为重要,同时也是学习时间最长的项目。因此,本文所开展的论述主要围绕仪表控制系统进行,旨在为我国飞行事业发展以及飞行员教学培训效率的提升等提供帮助。

1 技术方案

1.1 结构分析

总体而言飞机模拟训练仪表控制系统主要包括图1所示的四个主要机构。指示机构主要包括仪表、显示器、灯光等模块,为飞行员提供飞行数据、指令等;传动机构则主要为减速器等设备,负责为飞行员的各项操作指令进行机械部的传递等;驱动机构则一般采用电机驱动,控制模拟训练仪表控制系统中的仪表;控制机构则由单片机等微型控制器为核心,对系统进行整体控制。

图1 飞机模拟训练仪表控制系统

传统机构和指示机构均具有固定的项目要求,与飞机的实际操作场景一模一样,并不具备可操作的结构优化可能性[2]。因此,本文针对飞机模拟训练仪表控制系统的设计将会主要集中在驱动机构和控制机构方面,利用单片机实现基础功能完善、结构简单、累计误差小、定位精度高的飞机模拟训练仪表控制系统。

1.2 工作原理

本文设计的基于单片机的飞机模拟训练仪表控制系统,主要的技术优化在于将步进电机代替了传统的直流电机驱动;将绝对式编码器代替了传统的8098控制器;以STM32F405/41532位M7内核216MB单片机为核心,构建了基于单片机的飞机模拟训练仪表控制系统。图2所示的为该系统工作原理示意图。

图2 飞机模拟训练仪表控制系统工作原理示意图

STM32F405/41532是本次构建的飞机模拟训练仪表控制系统核心,主要负责接受飞机模拟训练仪表系统来自塔台、教练员等通过计算机发来的指令,指令的类型主要包括与飞行和系统本身有关的开关量控制指令、飞行高度、飞行坐标等。单片机对仪表控制计算机数据进行处理后,会将数据进行识别和处理,判断飞机模拟训练仪表控制中的指示机构是否处于设计位置,与当前数据显示是否存在冲突等。绝对式编码器将根据计算结果进行校正使仪表指示机构的显示结果与仪表控制计算机数据处理结果一致。

2 硬软件设计及系统测试

2.1 硬件设计

飞机模拟训练仪表控制系统硬件核心设计方法以功能模块法为主,通过STM32F405/41532单片机构建核心控制模块,整体硬件设计架构见图3。

图3 硬件架构及工作原理

其中,单片机核心控制模块主要由串口通信模块等构成,各模块功能及构成如下。

2.1.1 串口通信通信模块

串口通信通信模块的主要功能,适用于系统作业时的串行数据传输[3]。串口通信通信模块在获取仪表控制计算机数据以后,会将信号数据传输至STM32F405/41532单片机,由单片机进行后续的数据操作。

2.1.2 步进电机驱动模块

由于本次构建系统主要侧重于简洁化、可重复使用、高精度等需求,因此采用更加适合中小型系统的HCPL-316J驱动电路,采用四相混合式步进电机,最高响应频率为100KHz。STM32F405/41532单片机将处理后的数据传输至步进电机驱动模块,该模块根据数据信号操控步进电机、减速机构以及指示机构进行工作,最终由指示机构将数据传送至编码器。

2.1.3 解码模块

编码器在接受到指示机构传输的数据信号之后,将会在进行编码以后将数据经过解码模块进行转换,得到32为并行数据。之后解码模块将并行数据经过缓冲通过P0将数据传输至STM32F405/41532单片机。

2.1.4 开关量控制模块

该模块主要用于对模拟训练仪表控制系统中的各开关进行隔离和控制等。在接受STM32F405/41532单片机传递的数据信号后,开关量控制模块的P3模块将会与控制系统中的光耦芯片进行连接,光耦芯片的输出可以通过直接驱动控制系统开关的继电器进行工作。

2.2 软件设计

基于单片机的飞机模拟训练仪表控制系统软件设计,主要包括:①仪表控制端软件设计,主要负责对飞机模拟训练仪表控制端的界面、交互功能等进行编译;②单片机端软件设计,主要负责对单片机运行主程序、串口通信子程序等进行编译。

2.2.1 仪表控制端

仪表控制端软件功能实现要求编写简单、生成界面友好、语言可读性强等。因此,本文采用VC语言用于设计飞机模拟训练仪表控制端系统软件。由于飞机模拟训练仪表控制端的工作环境需要满足大量初级飞行员的模拟飞行。因此,系统工作中需要经常进行初始化,已满足不同飞行学员需求。因此,系统的初始设置至关重要。如下所示为本次编写仪表控制端软件初始设置的部分关键代码。

2.2.2 单片机端

单片机端的代码编写通常采用汇编语言进行编译,但采用该方法编译出的单片机端代码整体复杂程度较高,不利于后续维护和系统优化人员进行阅读,优点是资源利用率高,能够为飞机模拟训练仪表控制系统提供较好的可控制性,比较适合进行结构简单、模块化的产品控制程序编写。本文所编写的单片机端控制软件共包含主程序、串口通信子程序等。

2.2.2.1 主程序

单片机端主程序设计,是在仪表控制端完成系统初始化以后的一个查询程序。该程序能够对系统中是否存在数据的传输进行筛查。在发现系统中存在数据传输以后主程序将会对该数据传输进行相应,根据传入的数据类型、具体指令等进行发出相应的控制指令。使系统数据传输和指令传递不需等待。

2.2.2.2 串口通信子程序

串口通信子程序主要通过握手信号对系统接收数据信号的字节、长度等进行检测。系统工作时,串口通信子程序首先撤销数据传输中断标志,检测所接收信号是否为字节E,若所得结果为否则检测信号接收长度是否为0;若信号长度不为0则对数据进行寄存,再对信号长度减1之后是否为0进行检测;若减1之后的系统信号长度是0则恢复现场,退出中断服务子程序;若不为0则进入第一步进行重新检测。

2.2.2.3 校正子程序

由于本文所设计的飞机模拟训练仪表控制系统采用了单片机、步进电机等硬件设备,因此系统的精度高、保持力矩大,具有较为理想的起停性能。因此,本文所设计的系统校正子程序主要用于判断步进电机驱动下的指示机构位置并对机构位置进行校正。系统工作时,首先调用编码器数码读取子程序,通过对指示机构当前位置的判断与预定的位置进行对比,若相等则退出子程序,若不等则调用计算子程序计算二者差距,再将差值传输至调用步进电机运动自动程序进行校正,校正后重新进行数据读取直至指示机构显示结果与预定位置相同。

2.3 系统测试

对本次开发的基于单片机的飞机模拟训练仪表控制系统进行功能测试,主要针对系统的排气温度表等的指示速度、精度、误差以及跟随性能等进行检测,具体检测结果见表1。

表1 排气温度指示机构检测结果

可见,系统的实测值与输入值之间的误差在-1至1℃之间,连续性较强,且系统不存在抖动现象,噪音的表现为微小,几乎被会被人耳获取。因此,综合而言系统的工作状态较为理想,已经达到了系统的设计需求。

3 结语

文章基于单片机构建了一种结构简单、可重复利用性强、指令精度高的飞机模拟训练仪表控制系统。经过检测分析表明,该系统的温度指令等工作稳定性强、噪音小,形成指令的误差小,能够满足一般飞行员的模拟飞行教学场景,是一种值得推广的飞机模拟训练仪表控制系统。

猜你喜欢
子程序模拟训练串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于EM9000工控板高性能双串口通信模型设计与实现
模拟训练(二)
船舶电子设备串口数据的软件共享方法
模拟训练(十一)
模拟训练(十)
浅谈子程序在数控车编程中的应用
CSerialPort 类分析及漏洞的修正
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序