APP下载

机车数据记录仪程序设计

2020-11-10侯波郭瑾玉黄众覃事东

科技风 2020年29期
关键词:嵌入式系统

侯波 郭瑾玉 黄众 覃事东

摘 要:本文介绍了Vxworks操作系统下的机车数据记录仪程序设计过程,详细论述主程序、功能模块的实現方式。

关键词:VxWorks;数据记录仪;嵌入式系统

中图分类号:TP393.1

Program design of locomotive data recorder

Hou Bo Guo Jinyu Huang Zhong Qin Shidong

CRRC Zhuzhou Locomotive CO.,LTD HunanZhuzhou 412000

Abstract:This article introduces the procedure design process of locomotive data recorder under Vxworks operating system.Discuss in detail the implementation of the main program and functional modules.

Key words:VxWorks;data recorder;embedded system

CLC number:TP393.1

机车车辆数据记录仪是具有数据采集、传输和存储功能的嵌入式设备。这里的采集是指从总线读取数据,例如列车的速度、位置、方向等信息是由其他系统采集后放到了MVB总线。本文讲的记录仪还将文件远程上传到地面系统,可以在第一时间将数据发回地面。记录仪的数据可通过地面软件打开,然后显示,可用于分析故障发生原因。

该系统的功能主要功能可以分为:(1)各系统的数据的采集;(2)根据数据记录为文件;(3)压缩文件;(4)上传文件。

1 设备主要特点

(1)数据记录仪采集了大量的数据,具有比较强的数据处理能力,足够大的硬盘资源。

(2)为了保证通数据记录仪的通用性和可拓展性,该设备具备用于扩展的存储器、串行数据接口、以太网接口、MVB接口和无线传输接口。

(3)设备采用的Vxwokrs操作系统具有微内核、实时性好,运用广泛的特点。

2 数据记录仪的程序设计

数据记录仪的程序开发一般有以下步骤:设计模块功能,设计主线程,根据需求裁剪内核,编写代码。

数据记录仪程序具体需要实现如下功能块,每个功能应该尽量相互独立,方便使用。

(1)配置文件读取模块:读取系统参数、MVB端口配置、以太网网卡配置、以太网UDP、TCP端口配置、数据协议配置。

(2)MVB总线数据接收模块:根据MVB接口程序,按MVB端口及周期将数据循环读取到共享的内存中。

(3)以太网实时数据接收模块:按以太网具体的协议,UDP、TCP或者其他上层协议如TRDP、HTTP等将数据读取到内存;同时根据数据协议对数据进行处理。

(4)以太网文件数据接收模块:将子系统文件存储到文件夹准备压缩和上传,具体的接收方法和文件校验方法根据协议进行。

(5)数据记录模块:将需要记录的数据按协议和记录方法记录到文件,记录到文件的方法和示波记录仪记录文件的方法是一致的。注意用信号量或者其他机制保证共享的数据内存不被同时读写,如果同时读写可能会导致记录的数据错误。

(6)文件压缩模块:压缩线程不断地检测压缩目录下有没有文件,若有则按照zlib压缩算法进行压缩,并另存到指定的文件上传目录。

(7)数据上传模块:压缩后的文件成功上传到地面后,然后另存到最终的文件存储目录。

(8)磁盘管理模块:采用单独的磁盘管理线程,定时检查磁盘空间,如果磁盘空间不足,删掉最终存储目录中的历史文件。

(9)地面数据解析工具:对数据按时间进行表格、图形展示,可用来分析故障发生原因。

内核裁剪是对Vxworks内核进行功能配置、增加或者删除。比如开启DNS域名解析解析支持;开启FTP及用户名密码支持;开启ping和路由配置支持;开启pthread库支持;配置最大文件描述符个数等。

3 主线程实现

Vxworks内核程序不区分线程和进程。主线程负责开启各个模块的线程。根据线程需要划分任务等级、存储空间、甚至运行的CPU内核。具体步骤如下。读配置文件和配置MVB网路、以太网网卡信息必须正常,否则会影响其他设备运行。主程序的实现如下图。

4 接收数据模块和记录数据模块的实现

这些模块中,最重要的就是数据接收模块和记录模块的实现。

接收程序的功能是通过总线完成实时数据接收,MVB和以太网的实时数据接收处理原理是类似的,下图是数据接收和存储流程。其中的数据接收循环过程采用Vxworks的timer定时函数循环,保证周期间隔。记录函数简单while循环,获取信号量后记录数据,不获取则无法记录,同时保证了共享内存Port结构体的数据是写完以后再读。程序过程如图2。

5 测试与结果

设备将记录的文件数据使用FTP断点续传方式发到地面。Vxworks的ftp函数不支持断点续传,需要编写续传函数,其原理是TCP应答和文件读写。续传需要地面FTP服务器支持SIZE和APPE指令,分别用来获取文件大小、续传指定的文件。完成续传函数,需要看FTP相关的资料。

地面软件对数据解析如下图3,经过长期运行检验,记录仪的程序可稳定运行、工作正常。

参考文献:

[1]李峰,朱涛,傅军,徐茂俊.基于VxWorks的综合导航系统数据记录仪软件设计[A].测控技术,2013(02).

[2]马祥.基于以太网的船载通信航行数据记录仪的数据优化[A].舰船科学技术,2019(08).

[3]陈蜀,李鹤鸣,余瑞锋.船舶数据记录仪的主程序设计[A].船海工程,2006(06).

[4]唐武兵,关永,吴立锋,王国辉,李晓娟,潘巍.超级电容UPS智能监测系统设计与实现[A].计算机工程与设计,2015(12).

作者简介:侯波(1988—),男,本科,工程师,主要研究方向:软件测试;郭瑾玉(1986—),女,硕士,工程师,主要研究方向:机械设计;黄众(1986—),男,硕士,工程师,主要研究方向:软件测试;覃事东(1990—),男,硕士,工程师,主要研究方向:软件测试。

猜你喜欢

嵌入式系统
Teaching Research on IoT and—Embedded System of Software Engineering
基于Xilinx口袋实验室的组合逻辑电路设计实验
面向应用的智能专业嵌入式系统教学
基于AVR单片机的SPI接口设计与实现
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究