基于环形缓存技术的无人机数据接口设备设计

2013-11-24 02:17周乃恩
网络安全与数据管理 2013年2期
关键词:机载设备线程串口

蔡 伟,周乃恩

(中国航天空气动力技术研究院,北京100074)

无人机在飞行时,地面控制站发送上行指令通过遥控信道到达机载设备,机载设备产生的下行数据通过遥测信道到达地面控制站。一般设计为上行指令与下行数据在某一机载设备上(如设备 1)汇集,经处理后发送到其他的设备中。但该设备同时还有其他任务需完成,当数据量过大时会对设备造成负担,甚至影响飞行安全。为此本文设计了一个专用数据接口设备,用于无人机的数据交换。全系统框图如图1所示。

1 系统硬件设计

数据接口设备硬件主要由PC104嵌入式计算机组成,主要组成部分有:(1)PC104总线型 CPU板,最高运行速度可达300 MHz;(2)PM504型串口扩展板;(3)32 MB DOC(闪存,Disk On Chip);(4)系统电源板。 其中,PM504串口扩展板实现PC104总线的串口扩展,共扩展4个RS422总线的UART(通用异步接收/发送装置);32 MB DOC用于存储操作系统以及开发程序;系统电源板采用Ericsson的PKF系列电源模块,用于提供系统电源,主要为5 V和12 V。

2 软件设计

如图1所示,数据接口设备与机载设备的数据交换分为全双工方式与半双工两种方式。数据交换分为上行指令分发和下行数据融合两部分。

2.1 上行指令分发

上行指令分发指数据接口设备接收到机载收发组合的数据后,发送到相应的设备中去。上行指令采用统一的帧格式,如表1所示。

表1 上行指令帧格式

其中,A为同步码 0xFF,B为帧识别符 (设备 1为0X11,设备 2为 0X22,设备 3为 0X33)。数据接口设备首先判断数据是否为同步码,如果是则存入接收数组中,接收剩余的28 B数据。然后,根据帧识别符B,发送该帧数据到相应的端口。

2.2 下行数据发送

下行数据发送指接口设备将机载设备产生的数据信息发送到收发组合中。每个机载设备的数据发送速率各不相同,为保证数据准确性和实时性,程序分别建立了相应的环形接收缓存。接口设备定时从环形缓存中取出数据组合后送到收发组合中。

以接口设备接收机载设备1数据建立的环形缓存为例,该缓存分为6个分区,如图2所示。程序开辟两个线程:接收线程和发送线程,同时生成两个跟踪变量,即接收数据当前分区索引号IndexIn和发送数据当前分区索引号IndexOut,并且初始化为零,指向第一个分区。

图3给出了环形缓冲接收数据流程图。接收流程完成创建并初始化缓存工作后,开始接收设备1发送的数据。当接收完一帧数据后,接收索引IndexIn指向下一接收分区。

图3 环形缓冲接收数据流程

图4给出了发送数据流程图。数据发送为定时模式,定时时间到后,建立发送数组并初始化,程序首先判断接收索引IndexIn与发送索引IndexOut是否相等,如果相等,则表明环形缓存中无数据,跳出发送流程,否则进入发送流程。取IndexOut指向的当前分区数据到发送数组,同时IndexOut指向下一分区。数据在接收和发送过程中,可能出现IndexIn与IndexOut相等的情况,因此在环形缓存中接收完一帧数据后判断两者是否相等,如果相等,则IndexOut自增 1,使得进入发送流程中后,两者不相等,保证了发送的进行。

图4 环形缓冲发送数据流程

当变量IndexIn和IndexOut指向缓存最后一个分区时,将两变量重新赋初始值,分别进行下一循环的数据接收和发送。程序为接收设备1数据开辟6×32 B大小的缓存区,为设备3开辟2×80 B的缓存区。每次从存有设备1数据的缓存中取两帧数据,从存有设备3数据的缓存中取一帧数据,组合后发送到机载收发组合。设备1的数据发送速率为38 400 b/s,而设备 3为19 200 b/s。因为数据接口设备主频最高为300 MHz,所以不会出现缓存区开辟过小导致数据溢出的现象。

环形缓冲技术采用的线程机制实现了数据接收和发送的并行工作,通过对接收线程当前数据分区索引号IndexIn和发送线程当前数据处理分区索引IndexOut的有效控制,可以跟踪并且及时处理缓存中的分区数据,避免缓存区数据覆盖和数据的漏移。

3 试验验证

根据上述流程框图编写好软件后,下载到PC104主板上的DOC中。启动路径指向当前程序所在位置,设备上电后自动运行程序。试验在两台PC机上进行,一台模拟收发组合,另一台模拟设备1、2和3。因为PC机上串口有限,采用MOXA卡进行了串口扩展。数据的发送和接收采用串口精灵软件。试验过程中没有出现数据丢失现象,表明设备性能良好,可以正常工作。

本文介绍了一种采用环形缓存技术的数据接口设备。经在无人机上验证,该设备可以很好地完成数据接收和发送任务,避免数据丢失现象。产品可扩展性强,可以用于其他无人机系统,具有广泛的应用前景。

[1]姚章俊,陈蜀宇,卢尧.一种高性能环形缓冲区的研究与实现[J].计算机工程,2012,38(8):228-231.

[2]王蕾,潘梁,吴国斌,等.基于数字广播的大数据量接收与存储策略[J].计算机工程,2008,34(24):233-237.

[3]余泓利,习勇,马东堂.一种基于ARM和FPGA的环形缓冲区接口设计[J].电子技术,2011(09):53-55.

[4]张稳稳,欧阳娴,白永林,等.PC104串口通信在工程中的应用[J].微计算机信息,2006,22(1-2):57-59.

猜你喜欢
机载设备线程串口
舰载机机载设备弹射和拦阻冲击试验条件研究
《机载设备》 混合式教学课程思政创新实践
基于C#线程实验探究
浅谈AB PLC串口跟RFID传感器的通讯应用
基于国产化环境的线程池模型研究与实现
浅谈linux多线程协作
飞行技术专业“机载设备”课程教学改革与研究
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式