基于VxWorks的船载多传感器采集系统设计*
2014-07-18李亚文张锁平
李亚文, 李 杰, 张锁平
(国家海洋技术中心,天津 300112)
基于VxWorks的船载多传感器采集系统设计*
李亚文, 李 杰, 张锁平
(国家海洋技术中心,天津 300112)
船载多传感器采集系统的设计需要满足数据采集的并发性、数据分析的正确性、数据传输的可靠性与数据处理的实时性等条件。基于实时操作系统(RTOS)设计一种新型的具有广泛适应性的船载多传感器采集系统,采用VxWorks作为传感器数据处理系统,利用其多任务并发的特性进行数据采集与数据处理,并与Windows系统协同工作,共同完成数据应用。设计中采用多任务并发、Socket通信等关键技术,对XBT和AirMar气象站两种传感器所采集的数据进行采集、处理及应用。
实时操作系统; VxWorks; 船载多传感器采集系统; 多任务并发
0 引 言
随着我国海洋科技的快速发展,大量的数据采集需求引发传感器的使用越来越普遍,对传感器采集数据的接收、分析、使用等技术变得日益重要。鉴于船载多传感器采集的特殊情况,数据处理的可靠性和实时性要求比较严格,同时,大多数情况下的数据采集需要多只传感器并发工作,对数据处理的并发性变得尤为重要。
目前存在的操作系统中,能够提供多任务环境并且具有进程间通信和同步功能,同时满足并发性、实时性、可靠性及正确性等高性能要求的当属实时操作系统(RTOS)。
VxWorks系统是实时操作系统的一个典型代表,基于VxWorks的研究与设计在海洋观测中得到了应用[1~5]。针对船载多传感器采集系统的实际需求,本文设计中包括XBT和AirMar气象站两种传感器,XBT主要采集水下温度、深度等数据,而AirMar气象站主要采集风速、风向、空气湿度、空气温度、相对湿度及气压等数据。利用VxWorks的多任务技术同时收集多只传感器的数据并进行处理,处理的结果通过Socket接口进行网络传输,使得该原型设计成为一套完整的、典型的多任务实时性数据采集系统。
1 总体设计
1.1 数据流程
基于VxWorks的船载多传感器采集数据处理系统分为三部分:数据采集、数据分析与处理、数据应用。数据流程示意图如图1所示。
数据采集部分由传感器组成,本系统设计中共包括XBT和AirMar气象站两种类型,可根据实际需要同时连接多种传感器,每种传感器也可同时连接多台。每只传感器采集到的数据通过串口发送到VxWorks系统上进行数据分析、数据计算和数据组装后,通过网络发送到客户端以供用户使用。
图1 船载多传感器采集系统数据流程示意图Fig 1 Flow chart of data of ship-borne multi-sensor acquisition system
另外,鉴于XBT传感器的特殊性,在其进行数据采集工作之前,需要用户通过网络接口发送检测命令到VxWorks系统,并由VxWorks系统通过串口发送检测指令对其进行检测。
1.2 体系结构
基于VxWorks的船载多传感器采集数据处理系统的硬件拓扑结构如图2所示,分为传感器组、数据处理中心以及客户端三部分。
传感器组由各种传感器组成,该部分可同时连接多种类型的传感器,每种类型的传感器也可同时连接多台,具体连接传感器总数的上限由数据处理中心计算机的串口数决定。数据处理中心主要是VxWorks系统的计算机,该部分负责接收传感器组通过串口发送的数据,并完成对数据的解析、计算、组装以及发送等工作。数据处理中心是船载多传感器采集数据处理系统的核心组成部分,是整个原型设计的重点。硬件拓扑图中的客户端部分主要是对数据处理中心发送的数据进行应用,客户端与数据处理中心通过网络进行通信。
图2 船载多传感器采集数据处理系统的硬件拓扑Fig 2 Hardware topological graph of ship-borne multi-sensor acquisition data processing system
2 具体实现
系统设计的具体实现中分别介绍了数据采集、数据处理以及数据应用的详细流程,其中涉及2项关键技术:多任务实时性设计、与Windows配合技术。
2.1 数据采集
数据采集部分用到的关键技术是多任务实时性设计。如果船载多传感器采集系统中同时存在一只以上的传感器,多任务实时性接收数据变得尤为重要。每只传感器发送的数据分别由不同的任务进行接收和处理,系统根据多任务调度原理将时间片分配给每个任务,从而保证了数据处理的实时性。
该系统采用了以任务管理任务的技术,各个任务之间分工合作,并根据实际要求灵活地建立和删除任务,使得整个数据处理流程更加清晰。以任务管理任务的原理如图3所示。
图3中包括三种类型的任务:端口巡视任务、数据处理任务以及异常处理任务。其中,端口巡视任务和数据处理任务的优先级相同,均为低优先级,而异常处理任务为高优先级。当系统一切运行正常时,系统资源按照时间片原理在端口巡视任务和数据处理任务之间切换,一旦出现异常状况,系统资源立刻被高优先级的异常处理任务占据,即中断产生。
通过以任务管理任务的设计,端口巡视任务负责轮询每个端口,及时发现每个端口的数据接收请求,如果发现某端口有数据,则新创建一个数据处理任务进行数据接收、数据处理以及数据发送,一系列动作结束后,数据处理任务自行删除。而端口巡视任务继续巡视下一端口,不需要在任何端口做停留。两种任务分工合作,完成整个数据流程。
图3 以任务管理任务的原理图Fig 3 Principle diagram of task managing by task
2.2 数据处理与应用
数据处理部分包括数据分析、数据计算和数据组装三部分。系统对采集到的数据进行分析后得到各个参数的具体数值,并根据公式进行计算,最后把计算结果按照预先设计的格式进行组装后,通过网络通信接口Socket发送到Windows客户端。
由于VxWorks系统的特殊性,开源免费的数据库无法在其上运行[6~8]。另外,VxWorks包含的图形界面库WindML只能提供画点、线、面、颜色和字符串等最基本的功能[9,10]。相比之下,Windows系统丰富的数据库接口和灵活的界面设计技术体现出巨大的优势。
VxWorks的网络机制遵循标准的Internet协议,如果利用其发达的通信技术将这些阻塞性工作转移到Windows系统上进行处理,充分发挥Windows系统的优势完成该项工作。VxWorks系统与Windows系统配合工作的具体详情如图4所示。
图4 VxWorks与Windows配合工作示意图Fig 4 Diagram of VxWorks cooperate with Windows
3 系统应用
3.1 硬件环境
本设计中用到的计算机是x86架构的双主板计算机,该计算机中两块主板通过网络联通。其中,数据采集与数据处理系统采用的VxWorks,数据应用系统采用Windows。
3.2 软件环境
设计中的数据处理部分,VxWorks系统版本为5.5,tornado版本为2.2.1,数据应用部分的数据库类型为SQLser-ver,界面开发语言为C#。
3.3 网络环境
本设计中,VxWorks系统开启FTP服务完成版本下载工作,同时,VxWorks系统与Windows系统通过Socket网络通信进行数据传输。
3.4 实 验
针对本文论述的系统特性,设计的每种实验场景中包括传感器类型、个数、每个端口数据采集对应的任务优先级设置、实验结果等几方面。
1)XBT传感器
在该实验中,目标机的4个端口均连接XBT传感器,任务优先级从端口1到端口4依次降低。实验结果如表1,结果显示:客户端接收数据的优先级与预先设置的端口任务优先级一致,数据采集正确率为100 %。
表1 实验1结果Tab 1 Results of experiment 1
2)AirMar气象站
在该实验中,目标机的四个端口均连接AirMar气象站,任务优先级从端口1到端口4依次升高。实验结果如表2,结果表明:客户端接收数据的优先级与预先设置的端口任务优先级一致,数据采集正确率为100%。
表2 实验2结果Tab 2 Results of experiment 2
3)XBT传感器和AirMar气象站
在该实验中,目标机的4个端口分别连接两个XBT传感器和两个AirMar气象站,任务优先级从端口1到端口4没有规律。实验结果如表3,结果显示:客户端接收数据的优先级与预先设置的端口任务优先级一致,数据采集正确率为100 %。
表3 实验3结果Tab 3 Results of experiment 3
4 结束语
嵌入式实时操作系统VxWorks以其多任务并发的内核设计、灵活的I/O系统、强大的网络支持和多种文件系统并存的特性,在现有的实时操作系统领域占有不可忽视的地位,如果将其作为船载多传感器采集数据的处理系统非常合适[11~13]。在多传感器并发工作、对数据的实时性及正确性要求比较严格的船载多传感器处理系统中,VxWorks可发挥出非常明显的优势。实验表明:该系统较好地满足任务要求,具有很好的应用价值和广阔的发展前景。
[1] 高守勇,周江涛,马 力.基于VxWorks的数据采集存储装置设计[J].电子质量,2011(4):28-29.
[2] 赵美珍,徐 峰,于大海,等.基于VxWorks的海洋环境通信中相关技术的研究与实现[J].舰船电子工程,2011,31(3):94-97.
[3] 白伟岐.船载海洋环境信息采集与处理系统的研究与设计[D].哈尔滨:哈尔滨工程大学,2010.
[4] 袁赣南,董景均,卢志忠.雷达信号采集系统的设计与实现[J].应用科技,2010,37(4):52-55.
[5] 刘旭东.基于VxWorks的水声定位浮标通信平台软件设计[D].哈尔滨:哈尔滨工程大学,2012.
[6] 张 杨,于银涛. VxWorks内核、设备驱动与BSP开发详解[M].北京:人民邮电出版社,2011.
[7] 陈军科.VxWorks的多任务通信机制[Ed/OL].[2014—08—15].http:∥www.hikvision.com/Cn/Support more.ast?ID=27.
[8] 曹桂平.基于ARM9的VxWorks BSP的设计与实现[D].长沙:湖南大学,2009.
[9] 焦永和,冯欣欣.基于VxWorks的中文图形界面开发[D].北京:北京理工大学,2006.
[10] 罗国庆.VxWorks与嵌入式软件开发[M].北京:机械工业出版社,2003.
[11] 王学龙.嵌入式VxWorks系统开发与应用[M].北京:北京邮电出版社,2003.
[12] 李方敏.VxWorks高级程序设计[M].北京:清华大学出版社,2004.
[13] 李 勇.基于ARM9的VxWorks BSP的设计与实现[D].长沙:湖南大学,2009.
Design of ship-borne multi-sensor acquisition system based on VxWorks*
LI Ya-wen, LI Jie, ZHANG Suo-ping
(National Ocean Technology Center,Tianjin 300112,China)
Concurrency of data acquisition,correctness of data analysis,reliability of data transmission and real time of data processing are the prerequisites of designing in ship-borne multi-sensor acquisition system.Design a new type of and universal ship-borne multi-sensor acquisition system based on realtime operation system(RTOS),and due to multi-task concurrency characteristic of VxWorks,it is used to implement data acquisition and processing.Cooperate with Window system together complete data applications.Key technologies of multi-task concurrency and Socket communication are used in design,to handle acquisition,processing and application of data acquired by two types of sensors of XBT and AirMar.
realtime operation system(RTOS); VxWorks; ship-borne multi-sensor acquisition system; multi-task concurrency
10.13873/J.1000—9787(2014)12—0057—03
2014—09—02
海洋公益性行业科研专项经费资助项目(201305033)
TP 316.2
A
1000—9787(2014)12—0057—03
李亚文(1983-),女,山东烟台人,助理工程师,主要研究方向为实时操作系统软件研发。