车载数据记录压缩算法的分析

时间:2011-06-19

  现在的智能仪器仪表大多需要进行数据的记录和转储分析,以提高仪器的离线分析能力,如故障诊断等。随着大容量存储技术的发展,数据记录和转储被广泛应用于机电测控系统、智能仪器仪表等单片机系统之中。在"机车随车质量状态故障诊断记录装置"的设计中,采用两片共计1024KBYTE的FLASHRAM28SF040,对机车运行中的司机号、车号、出退勤时间等缓变信息的记录,以及机车质量状态故障监测诊断的32路实时数据信息以16位每5s的实时记录。为了满足连续记录50小时以上的实际需求,提出了缓变系统信息和实时数据信息分区存储的方案,对系统信息采用了定长非压缩算法,对实时数据信息采用了非定长的行间压缩算法。并对数据记录信息进行了长度校核,同时对数据进行了CRC校验。

  智能仪器仪表和传统仪器仪表相比,的优势就是智能性,在监测被测系统的同时可对数据进行记录分析和处理,如飞机的"黑匣子",火车的"列车运行安全监控记录仪"、"机车录音装置"、"机车状态诊断记录装置"、"机车轴承温度监测报警记录装置"等等。记录与转储适用于安全监控、事故分析处理、状态故障诊断、统计分析与预测等等。

  车载数据记录内容及各参数记录频度分析

  数据通过车载设备的IC卡座写入IC卡后,需要专门的读卡器和地面PC机相连,PC机通过读卡器,将IC卡上转储的数据读入PC机中进行数据分析处理。机车随车质量状态诊断记录仪需要记录的运行信息内容包括:车号(0~9999)、司机代码号(0~99999)、车次号(0~99999)、起始站代码(0~999)、终止站代码(0~999)、牵引重量(0~9999),共计14BYTE.

  实时状态参数包括:年、月、日、时、分、秒,6BYTE,以及柴油机转速、主电流、六个分电流、电压、轴温、油水温度、总管温度、增压压力、进回油(油耗)、马达转速、火情报警等32路实时参数,各2BYTE.共计:6BYTE+2×32BYTE=70BYTE.

  机车运行信息,其记录的频度是非常低的,大约每10小时记录,记录的条件为:系统上电、司机参数输入,即输入新的车号、司机代码等。

  机车实时状态参数,其记录的频度为每5s全部记录。但32路实时参数中,每次多只有四分之一,即8个左右的量满足记录变化条件,且进回油参数必须每5S记录。车载数据记录和存储的介质有:一般RAM,,FLASHRAM,IC卡,大容量语音芯片

  几种常用数据记录算法分析

  非分区非压缩算法

  通过以上的分析,如果我们将全部参数不采用任何压缩记录算法,则每5s记录的数据长度将达:6BYTE+14BYTE+64BYTE=84BYTE.这样全部1024KBYTE的记录容量只能记录:

  1024KBYTE÷84BYTE=1024×1024÷84=12483次

  记录时间为:

  12483×5s=62415s=1040min=17h

  分区非压缩算法

  将系统1024KBYTE的存储空间分成:0~63页,每页16KBYTE的分区存储格式。将机车运行信息14BYTE和上电时间或司机输入参数时间以及其他系统参数,如报警门限、标定系数、DS1820/B20传感器代码等记录在系统的0~63页的0页,共计16KBYTE的空间,因为系统信息只有在上电、复位和参数输入时才需要记录,所以16KBYTE的系统记录区无需任何压缩算法将足以满足系统的使用。

  系统分区的0页区为系统信息存储区,1~63页区为数据信息存储区,如果数据记录不采用压缩的算法,则每5s需要70BYTE的存储空间,这样存储次数为:

  63×16KBYTE÷70BYTE=14745次

  记录时间为:

  14745×5s=73725s=20小时

  分区压缩算法

  数据块首标志,数据中保证者为0FFFEH

  4×8=32个数据变化标记,变化则为1

  依次从低至高记录变化数据,长度=2×变化标记位数,长度校核。分区压缩算法(系统信息) 中包含了数据信息的首地址指针和时间.

  通过分区非压缩算法的分析,系统存储区的16KBYTE足以满足需要,关键在于数据信息的存储算法,对图2和图3的分析,可以分析出如下信息:

  ①、系统信息的记录和数据信息的记录均需要记录时间信息;

  ②、数据信息记录的时间信息在系统信息不变的情况下,记录时间间隔固定为5s;

  ③、数据信息记录参数在数据不变的情况下重复记录相同的数值;

  通过一个32位的标记信息,标记每个数据信息的变化与否,如果某一数据没有发生变化,标记为0,变化则标记为1,同时记录下变化后的数值。

  如图5所示,如D0代表柴油机转速,当D0=0时,表示当前记录中的柴油机转速和上次的相同,此次无需记录柴油机转速值,D0=1时,表示柴油机转速发生了变化,则需要记录柴油机转速。

  例如:司机号为1234号的司机,2001年2月12日11时54分30秒上车,系统记录区中记录一条系统信息,其中记录下此时数据记录区中的起始页区号和起始地址。他出乘时的条记录从第30页的2E5FH开始必须记录全部32路参数的初始值,第1号参数和第5、7号参数发生了变化需要记录,则记录标记中只有的D1=1、D5=1、D7=1,其它各位为0,随后依次记录第1号参数和第5、7号参数各2BYTE的数值。记录格式如图6所示。

  分区压缩算法的解压缩算法

  装置通过数据转储进入PC机数据分析处理系统后,根据分区压缩算法,分析系统首先在第0页中,依次以23BYTE为一条系统记录,分别读取各司机出乘时的起始时间,系统信息,以及对应数据记录区的起始页区和起始地址,然后到对应位置读取条数据信息,首先读取2BYTE的FFFFH记录块首,然后第1条信息中4BYTE的数据变化标记信息判定当前记录中对应参数的变化记录情况,并在标记之后依次读取对应变化参数的各2BYTE,接着读取第1记录的CRC校验码1BYTE。

  数据记录长度校验

  在数据记录中增加了固定的2BYTE的FFFFH,同时在参数记录中限定记录的参数值不大于0FFFFH,这样当读取4BYTE参数变化标记,假定有n个参数变化记录,则在4BYTE的参数变化标记之后应该正好有n个非0FFFFH的参数值,多于n或小于n都认为此记录有误,此记录的全部参数和上一条记录相同,时间+5s.

  数据记录CRC校验

  数据压缩记录时,从0FFFFH块首开始到一个变化参数的记录数据采用8BIT的CRC校验算法。如图7所示。

  CRC=X8+X5+X4+1

  地面数据处理首先需要对车载记录数据进行读取和存储,建立数据库,数据库可采用:ACCESS,VISUAL FOX (DBASE系列),ORACLE,SYBASE等等

  数据的分析和处理的主要功能包括:

  1.______ 数据的数字化显示;

  2.______ 数据的图形化显示;

  3.______ 数据分析和统计,故障诊断等;

  4. 数据报表和打印。

  结语

  基于分区压缩算法,在机车随车质量状态诊断记录装置中,数据记录区无需记录时间,记录参数也采用了压缩记录的算法,在32个参数中每5s平均多只有8个参数发生变化需要记录则记录,则平均每条数据记录的长度为23BYTE,因此,1~63页的数据记录可以存储的记录条数为:

  63×16KBYTE÷23BYTE=44877次

  连续记录时间为:

  44877×5s=224385s=62小时

  连续记录62小时,满足了装置连续记录50小时的要求,且系统采用了记录长度校核算法以及较为严格的CRC校验算法,提高了装置记录数据的可靠性,该装置已通过郑州铁路局技术鉴定,该装置在一年半的装车实际运用中,记录可靠,由于机车每天实际运行时间小于15小时,且每条记录平均变化数小于假定的8个,因此,实际记录时间在6~7天左右。


  
上一篇:希捷进军移动存储市场 与本土伙伴正面交锋
下一篇:基于DSP的DAM控制技术的研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料