本发明涉及传输控制规程,涉及装置、设备、电路和系统,尤指一种机车信号设备数据记录的存储方法。
背景技术:
机车信号设备是一种作为保障列车安全运行的重要设备,在国家铁路中大量装备使用,机车信号设备通过接收地面信号和列车运行信息,实现对列车的运行控制。列车运行中采集的各类数据都需要存储在机车信号设备内部的存储器,当前对机车信号设备数据记录的方法普遍采用sd卡文件方式存储,在机车入库或故障时由铁路工区维护人员上车将机车信号设备的数据转储到计算机进行分析。
由于机车信号设备数据是实时并连续记录在sd卡的文件内的,当机车信号设备掉电或在频繁的向文件系统写入数据易导致sd卡的fat表所在存储区域因大量重复读写被损坏,造成整个机车信号数据文件被破坏的可能。
技术实现要素:
针对现有技术的缺点,本发明的目的在于提供一种机车信号设备数据记录的存储方法。
本发明解决其技术问题所采用的技术方案是:提供一种机车信号设备数据记录的存储方法,其特征在于包括如下步骤:
步骤1.将sd卡存储容量划分数据分区,从起始数据扇区开始分配对应的功能分区,依次为版本数据区、机务故障数据区、保留数据区、位置指针数据区、状态数据区和传感器数据区,分别分别用于记录各自对应的机车信号设备数据;
步骤2.从sd卡的0扇区读取bpb(biosparameterblock)结构数据,通过bpb的数据结构计算起始数据区位置,然后以起始数据区为基点确定各功能分区的位置,每个扇区为512字节长度,各功能分区按顺序分布,其中:版本数据区由2个扇区组成、记录机车信号设备各个板卡的软件版本信息和板卡编号信息;机务故障数据区由256个扇区组成,每条机务故障记录占16个字节,记录机车信号设备掉电信息;位置指针数据区占1个扇区,记录机车信号设备的掉电数据、状态数据和传感器数据最后存储的位置,以及上一次转储的位置;机车信号设备通过位置指针定位与记录实现对数据区的循环存储;状态数据区占128m字节容量,其中每个状态记录长度为256字节;传感器数据区占剩余的所有容量,每个传感器记录占366个扇区大小;机车信号设备数据记录掉电数据、状态数据和传感器数据,数据记录采用扇区循环存储方式;
步骤3.机车信号设备在掉电时将掉电数据写入eeprom,待下次上电后,再将eeprom的掉电记录转存到sd卡的机务故障数据区;
步骤4.读取sd卡扇区数据并转换为计算机上的数据分析软件专用数据格式文件。
本发明的有益效果是:安全的存储机车信号设备数据,避免了以文件方式存储容易产生破损文件的问题。通过采用扇区数据分区存储的方法,使各功能分区的数据记录互不干扰,即使某一扇区被损坏也不会影响整个数据的存储过程,而且采用循环读写数据扇区的方式,还能有效延长的sd卡的使用寿命。
附图说明
下面结合附图对本发明作进一步的描述。
图1是sd卡功能分区表。
图2是机车信号设备数据记录存储过程方框图。
具体实施方式
参见附图,本发明一种机车信号设备数据记录的存储方法,其特征在于包括如下步骤:
步骤1.首先初始化sd卡功能分区表,如图1所示,创建一个数据结构存储各个功能数据区的起始扇区和结束扇区位置,按顺序依次为版本数据区、机务故障数据区、保留数据区、位置指针数据区、状态数据区、传感器数据区;版本数据区在机车信号设备出厂或更新硬件时,由设备写入各个板卡的编号和版本信息;机务故障数据区存储机车信号掉电记录数据;保留数据区为预留分区;位置指针数据区用于存储各个数据区的记录位置;状态数据区用于存储机车信号设备状态记录数据;传感器数据区用于存储机车信号设备传感器收到的地面信号波形数据;
步骤2.从sd卡的0扇区读取bpb信息,根据bpb内容获取数据区起始扇区位置,然后根据各功能分区要求计算并填充各功能分区的起始扇区和结束扇区位置;
步骤3.如图2所示,在初始化并计算完各功能分区位置后,当系统启动时,程序首先检查eeprom是否保存了上一次的掉电记录;如果存在掉电记录,则从位置指针数据区读取机务故障数据区的上一次记录偏移位置,将掉电数据写入机务故障区后,更新机务故障数据区的记录偏移位置到位置指针数据区,如果该位置指针已写到最末尾,则将其返回起始位置,以实现数据的循环写入,然后返回等待接收机车信号设备数据过程;如果不存在掉电记录,则直接返回等待接收机车信号设备数据过程;当程序收到机车信号设备数据时,检查数据类型,如果为状态数据,则从位置指针数据区读取状态数据区的上一次记录偏移位置,将状态数据写入状态数据区后,更新状态数据区的记录偏移位置到位置指针数据区,如果该位置指针已写到最末尾,则将其返回起始位置,以实现数据的循环写入,然后返回等待接收机车信号设备数据过程;
步骤4.最后读取sd卡扇区数据并转换为计算机上的数据分析软件专用数据格式文件。