机车数据记录仪程序设计

    侯波 郭瑾玉 黄众 覃事东

    

    

    

    摘 要:本文介绍了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—),男,硕士,工程师,主要研究方向:软件测试。

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建