基于嵌入式Linux的飞机重心调控系统设计

2016-10-31 08:43:34范蟠果陈凯峰邢保毫
计算机测量与控制 2016年4期
关键词:驾驶舱下位内核

范蟠果,陈凯峰,邢保毫

(西北工业大学 自动化学院,西安 710129)



基于嵌入式Linux的飞机重心调控系统设计

范蟠果,陈凯峰,邢保毫

(西北工业大学 自动化学院,西安710129)

在飞机定型试飞时,为了测试飞机重心处于使用包线范围内的飞行性能和操稳特性,需要对飞机的重心位置进行调控;因此,设计了一套基于嵌入式Linux的飞机重心调控系统,详细说明了系统的硬件设计、软件设计以及对嵌入式Linux实时性的改进增强;上位机采用Labwindows/CVI设计监控界面,可实时监控系统状况;下位机控制器采用TI的AM4379作为主控芯片,在嵌入式Linux操作系统软件平台上进行采集、控制、传输等任务;驾驶舱终端采用QT设计人机界面;经过试验表明,系统具有可靠性高、任务响应及时、调节速度快、调节精度高等优点。

重心调控;ARM;嵌入式linux;Labwindows/CVI

0 引言

目前,在芯片发展方面,高端ARM处理器具有许多优点:如集成度高、芯片上扩展多种功能接口(如USB、网口、UART接口)、运算处理速度快等;同时在操作系统方面,嵌入式Linux的内核可任意裁剪、源代码开放、对硬件支持好。因此,已经有许多基于ARM的嵌入式linux微控制器应用在如工业过程控制、电网设备监测、石油化工、航空航天等系统中。

在本文设计的飞机重心调控系统的方案由三部分组成:上位机、下位机控制器、驾驶舱终端。监控中心的上位机使用Labwindows/CVI设计,通过Labwindows/CVI简单易用的编程环境,可以高效灵活地设计出本系统的监控动画[1];下位机控制采用基于ARM AM4379芯片的嵌入式Linux微控制器;驾驶舱终端采用QT工具,设计了在嵌入式linux系统上的终端交互界面。

考虑到飞机重心调控系统对实时性的要求较高,而实时性是嵌入式Linux系统面临的挑战之一。所以,为了减小系统的响应延迟时间,在进行方案设计时,一方面将部分实时任务交由AM4379芯片上的PRU-ICSS(可编程实时单元子系统和工业通信子系统)处理,充分利用芯片的并发处理能力;另一方面在软件上对嵌入式Linux系统的实时性进行改进增强。

1 系统整体方案

系统的设计目标是:根据不同试飞科目要求,自动调节飞机重心并保持在目标值。要求系统的实时性好、调节精度高、运算速度快,具有良好的人机交互界面,并且能够对重心相关数据进行分析、存储、传输。

1.1系统组成结构

系统的组成结构如图1所示,主要包括上位机、下位机控制器、驾驶舱终端以及配重4个部分。

图1 系统组成结构框图

上位机以Labwindows/CVI软件开发监控界面,通过RS232方式与嵌入式控制器之间进行通信。监控界面以图形和动画的方式来呈现系统的实时运行状态并具有故障显示和报警功能。在系统启动后,可由操作人员进行系统参数设置、选择调节方式、启动当前调节等操作。

下位机控制器采用了基于ARM Cortex-A9的32位RISC处理器AM4379,运行嵌入式Linux系统作为软件平台。控制器上配置有以太网物理层芯片、MAX232以及MAX422电平转换芯片分别用来与机载数据、上位机、驾驶舱终端的通信。

驾驶舱触摸屏上显示飞机实时重心和系统当前调节模式,飞行员可以通过触摸屏设定飞机重心和切换调节方式。

配重部分由传感器、三相变频驱动器、配重物、电磁阀、电气设备、三相电机等组成。传感器采集的信号经过信号调理电路后接入核心板,用于计算配重物各部分的重量及坐标位置;核心板输出的控制信号,经过输出驱动电路后输出给变频器、电磁阀等设备。三相电机通过变频器实现软启动,电机运行时由三相变频器的变频调速来控制重心调节的速度及精度。

1.2系统的控制结构

系统的控制结构如图2所示。控制器通过以太网总线通信方式获取飞机当前的姿态、燃油消耗、飞机起落架状态等数据,同时采集配重部分的传感器信号获得系统配重物的分布情况,根据以上信息解算出飞机实时重量和重心并与预设重心比较;然后根据上位机或者驾驶舱终端的调控指令,选择相应的控制策略来调节配重物的分布,从而改变飞机重心位置。

图2 控制系统结构图

2 硬件设计

2.1下位机控制器硬件设计

图4 以太网接口电路原理图

控制器的处理芯片选用TI的AM4379,芯片的主频高达1 000 MHz,32KB L1指令缓存和数据缓存、256KB L2缓存以及256KB可访问所有主机的片上RAM。芯片上包含有一个可编程实时PRU-ICSS(单元子系统和工业通信子系统)。

PRU-ICSS子系统的特点:它与ARM内核分离,允许单独操作和计时,支持UART等多种外设接口,支持EtherCat、Ethernet Powerlink等多种高速实时通信协议。

该子系统的可编程特性及其对引脚事件和SoC资源的访问权限,使得它可以灵活地实现快速实时响应、专用数据处理操作以及自定义外设接口,并减轻片上处理器内核的任务负担[2]。

在设计控制器时,综合考虑了系统任务的实时性和主处理器的任务量两个方面,在硬件上即对系统任务进行划分:由PRU-ICSS子系统负责采集传感器输入的信号、读取以太网总线上的数据、通过RS422协议与驾驶舱终端进行通信;由处理器内核负责数据的运算处理、传输以及输出控制信号。从而使得任务可以在内核处理器和PRU-ICSS子系统上并发地被执行处理。

下位机控制器的结构如图3所示。

图3 下位机控制器结构框图

控制器采用2片16位宽的SDRAM DDR3芯片MT41K256M16HA并联为32位数据宽的1G内存;并配置了64M的NOR FLASH芯片MX66L51235F作为非易失性存储器。

飞机上的直流电源为28 V,经过TPS5402D电源芯片转换成3.3 V和1.8 V给处理器内核及外设供电。

1 Gb以太网收发器KSZ9031RN(以太网物理层芯片)为控制器提供以太网的收发功能,以太网芯片的接口电路原理如图4所示。

2.2驾驶舱终端硬件设计

驾驶舱终端由AM4379核心板、4.3寸的触摸屏以及MAX422电平转换芯片组成,通过RS422方式和嵌入式控制器之间进行通信。

触摸LCD与处理器的接口电路原理如图5所示。

图5 驾驶舱LCD接口电路原理图

2.3上位机硬件

上位机采用工业平板电脑,CPU为双核处理器,2G内存,256G固态硬盘,具有串口、网口等通信接口,满足系统需求。

3 系统软件设计

系统软件主要包括三部分:利用Labwindows/CVI设计的上位机监控软件、控制器端的软件(PRU-ICSS子系统程序、内核软件)、驾驶舱终端的交互界面。

3.1上位机监控软件设计

上位机监控端的程序流程如图6所示。启动监控软件后需要选择是否进行系统参数设置,如果选择设置参数则进入系统参数设置界面,由操作员进行参数设置,否则程序使用默认的系统参数;接着,进入监控界面来选择调节方式,启动重心调节。

在重心调节过程中,为了提高程序的执行效率,减少主进程的负担,由主进程来完成界面的动画显示以及数据的分析、存储任务;同时创建了一个20 ms周期的异步定时器来完成与控制器的通信任务:获取现场实时信息,并将操作员输入的指令发送给控制器。

监控界面上显示的内容包括:飞机实时重量重心、配重物各部分质量及坐标、飞机姿态、当前系统的工作模式以及动画演示系统的实时调节过程等。

图6 上位机软件流程图

3.2下位机控制器软件设计

下位机控制器端软件开发任务包括PRU-ICSS子系统程序和内核软件。

3.2.1PRU-ICSS子系统程序

在前面硬件设计时,从硬件上对系统的实时任务和并发处理进行了优化,即将一部分实时任务交由PRU-ICSS子系统独立处理,PRU-ICSS子系统能够消除由于Linux进程环境切换所造成的开销,同时也分担了主处理器的负担,提高了系统效率。主处理器上运行的进程和PRU-ICSS子系统上的进程之间通过共享的256K RAM实现通信和数据共享。

该子系统的主要任务是采集传感器信号、获取机载数据以及与驾驶舱终端进行通信,并将接收到的数据和指令存放在指定的内存位置处,提供给内核程序读取处理。子系统软件每隔10 ms对以上数据进行一次读取,脉冲信号则通过该子系统中的增强型输入捕获引脚进行计数。程序流程如图7所示。

图7 下位机PRU-ICSS子系统软件流程图

3.2.2内核程序

内核程序运行于嵌入式Linux软件平台上,主要完成数据处理、重心计算、输出控制指令以及与上位机通信的任务。

考虑到嵌入式Linux系统本身是一个分时操作系统,其系统目标为较友好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成,尽量减少进程运行的不可预测性。Linux 2.6版本之后的内核在支持嵌入式方面作了大量改进,对多核的支持、内存管理、进程调度、抢占性和响应时间等多方面性能都有显著提高[3],但嵌入式linux还不是硬实时,因此为了满足本系统实时性方面的要求,需要对其作一些相关的改进。

针对嵌入式Linux系统时钟中断的精度不高、核心态进程不可被抢占、虚拟内存的内存管理方式所带来的实时性不足,进行以下优化:

1)修改系统时钟粒度:系统时钟粒度是整个操作系统的节拍,决定了该系统调度的分辨率。linux系统中在每一个时钟tick的中断服务程序中,都会对所有进程的可运行标志和权值等进行检查,并对时间片进行处理,这将直接影响到能否及时地把CPU分配给需要及时运行的进程。在未经修改的嵌入式Linux操作系统中每间隔20 ms,硬件定时器会产生一次中断,引发新的进程调度时机,本系统中,我们将时钟粒度修改为1 ms,来提高实时性能。

2)系统时钟每隔1 ms会产生一个时钟中断,该中断进程是运行在内核态的,本文将计算飞机重心以及输出控制任务放入处于内核态的该中断处理程序中。

因此,内核程序每隔1 ms会根据传感器数据和以太网数据解算一次飞机当前重心并与设定值进行比较,然后选择对应的控制策略来调整配重系统从而调节飞机重心。由于该实时任务融合进了操作系统内核的时钟中断程序中,因而能够对其他非实时任务进行内核抢占,满足实时解算、输出控制信号的要求。

3.3驾驶舱终端软件设计

驾驶舱终端软件分为:终端交互界面开发、PRU-ICSS子系统程序两部分。

终端交互界面是以嵌入式LINUX作为软件平台,利用QT工具开发图形化用户界面:一方面显示当前飞机重心数据和可进行的操作选项,另一方面飞行员通过触摸LCD可以选择调节模式、设定飞机重心。

PRU-ICSS子系统程序通过RS422串口完成与下位机控制器的通信:将飞行员设定的调节模式、飞机重心数据发送给下位机控制器,并从下位机控制器中获取实时重心相关数据以及调节进度信息。

4 试验结果与分析

为了验证飞机重心调控系统功能的正确性以及各项指标是否达到要求,对整个系统做了多次地面试验进行测试。一方面记录下飞机实时重心、系统调节时间等数据,并计算出重心的调节误差、调节速度;另一方面通过上位机记录并绘制出重心的动态保持曲线,分析动态保持时的重心误差。

4.1调节速度及误差分析

通过驾驶舱终端或者监控中心设定目标重心值,此时实时重心偏离设定重心,系统自动启动调节,将飞机重心调节到预设值。多次试验的记录数据如表1所示,分析表中数据可知系统调节速度大于0.9%MAC/min,调节误差小于0.03%MAC,符合设计指标要求。

4.2重心动态保持误差分析

表1中第二次试验的重心动态保持曲线如图8所示:系统启动调节时,飞机初始重心值为21%MAC,预设重心设定为22%MAC,到1 min时,飞机重心被调节到22.02%MAC。但之后随着飞机燃油(或者飞机姿态、起落架状态等)的影响,重心值发生改变;此时,调控系统朝燃油影响的相反方向调节配重物,将重心稳定在22%MAC到22.2%MAC的范围内。

表1 重心自动调节数据记录表

图8 重心动态保持曲线

5 总结

本文以飞机重心调控系统为项目背景,设计了整个系统的监控方案,包括上位机、下位机控制器、驾驶舱终端3个方面的硬件及软件详细设计。在设计下位机控制器时,一方面利用AM4379芯片上自带的PRU-ICSS子系统来分担处理器任务,使得多个任务可以并发执行,提高了系统的实时性能;另一方面,通过对嵌入式Linux操作系统的实时性改进增强来满足响应时间的要求。通过实验室试验测试,系统的性能指标均能达到要求。

[1] 李晖华.基于DSP的飞机自动控制系统设计[D].西安:西北工业大学,2007.

[2] 赵喜洋.基于虚拟仪器的飞机重心控制系统的设计[D].西安:西北工业大学,2013.

[3] 袁辉建.嵌入式LINUX的实时性增强及其在测控系统中的应用[D].重庆:重庆大学,2007.

[4] 穆胜亮 秦贵和.基于3G网络和CAN总线的汽车远程控制系统设计[J].计算机测量与控制,2015,23(7):2396-2399.

[5] 张立辉,赵云忠,王建生.基于嵌入式Linux的实时性分析[J].微电子学与计算机,2007,24(6):100-103.

[6] 王建新,隋美丽.Labwindows/CVI虚拟仪器测试技术及工程应用[M].北京:化学工业出版社,2013.

[7] 张永忠.含缺陷高聚物材料热致磁效应测量控制系统设计[J].计算机测量与控制,2014,22(2):406-409.

Barycentre Control System of Trial Flight Based on Embedded Linux

Fan Panguo,Chen Kaifeng,Xing Baohao

(College of Automation, Northwestern Polytechnical University,Xi′an710129,China)

in order to test the control-stability and performances of the airplane,adjusting the barycentre of the trial flight is needed.So a set of barycentre control system is presented,which consists of the main computer,the controller and the cockpit terminal.the main computer is used to monitor the system,and the monitoring screen is designed by Labwindows/CVI;The controller runs Linux OS on the AM4379 processor chip,completing tasks such as datas acquisition,I/O control and transmission.The cockpit terminal uses QT tool to design the HMI.The hardware design,software design and the RT-performance improvements of the embedded Linux are mainly introduced.Tests show that this system has advantages of high reliability,short-time delay and fast control speed.

barycentre control;ARM;embedded Linux;Labwindows/CVI

1671-4598(2016)04-0091-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.027

V249.1

A

2015-10-28;

2015-11-24。

范蟠果(1960-),男,陕西西安人,硕士生导师,副教授,主要从事计算机测控方向的研究。

猜你喜欢
驾驶舱下位内核
万物皆可IP的时代,我们当夯实的IP内核是什么?
现代装饰(2022年4期)2022-08-31 01:41:24
强化『高新』内核 打造农业『硅谷』
今日农业(2021年9期)2021-07-28 07:08:36
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
发射机房监控系统之下位机
科技与创新(2018年1期)2018-12-23 06:46:14
跟踪导练(三)
走进客机驾驶舱
跟踪导练(四)3
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
北京纪事(2016年5期)2016-05-07 13:17:02