一种基于冗余容错机制的数据存储方法与流程

文档序号:14609254发布日期:2018-06-05 20:28阅读:310来源:国知局
一种基于冗余容错机制的数据存储方法与流程

本发明涉及水下滑翔机数据存储方法,属于数据存储领域。



背景技术:

水下滑翔机是一种将浮标、潜标技术与水下机器人技术相结合而研制出的一种无外挂推进装置、依靠自身浮力驱动的新型水下移动观测平台,其具有低噪声、低能耗、投放回收方便、制造成本和作业费用低、作业周期长、作业范围广等特点,已逐渐成为一种通用的水下监测手段。水下滑翔机主要功能包括海洋环境参数测量功能、自主滑翔运动控制功能、测量路径规划功能、测量数据存储与远距离传输功能等。水下滑翔机的应用可有效提高海洋环境的空间和时间观测密度,增强海洋环境的综合监测能力。由于水下滑翔机长时间对海洋环境参数进行测量,因此水下滑翔机控制器要求具有大容量、高可靠的数据存储,研究高可靠的数据存储方法,对水下滑翔机技术发展具有重要意义。



技术实现要素:

针对现有技术中的上述问题,本发明提出一种基于冗余容错机制的数据存储方法,作为控制器数据存储重要组成部分,为水下滑翔机数据存储提供了重要保障。

本发明为实现上述目的所采用的技术方案是:一种基于冗余容错机制的数据存储方法,包括以下步骤:

1)微处理器将数据帧存储到第一SD卡存储电路;

2)微处理器回读第一SD卡存储电路的数据帧,并将回读的数据帧的数据进行校验得到该数据帧新的校验位;将新的校验位与该数据帧的原校验位进行比较;若不相等,则第一SD卡存储电路故障;否则,第一SD卡存储电路存储成功;

3)重复若干次步骤1)~2),若每次第一SD卡存储电路都故障,则微处理器将数据帧存储到第二SD卡存储电路;否则第一SD卡存储电路存储数据帧。

所述数据帧包括传感器数据位和校验位。

所述校验为CRC校验。

所述微处理器将数据帧存储到第一SD卡存储电路包括以下步骤:

微处理器发出低电平使能第一SD卡存储电路;

通过选定的地址将数据帧发送至第一SD卡存储电路进行储存。

所述微处理器回读第一SD卡存储电路通过原来的地址回读。

所述微处理器将数据帧存储到第二SD卡存储电路包括以下步骤:

微处理器发出高电平关闭第一SD卡存储电路,并发送低电平使能第二SD卡存储电路;然后微处理器对第二SD卡存储电路进行数据存储,具体步骤如下:

6-1)微处理器将数据帧存储到第二SD卡存储电路;

6-2)微处理器回读第二SD卡存储电路的数据帧,并将回读的数据帧的数据进行校验得到该数据帧新的校验位;将新的校验位与该数据帧的原校验位进行比较;若不相等,则第二SD卡存储电路故障;否则,第二SD卡存储电路存储成功;

6-3)重复若干次步骤6-1)~6-2);若每次第二SD卡存储电路都故障,则发送故障信息至微处理器;否则,存储第二SD卡存储电路数据帧。

所述校验为CRC校验。

微处理器通过相同的地址进行回读和发送。

本发明具有如下有益效果及优点:

1.实现电路简单、硬件成本低。基于冗余容错机制的水下滑翔机数据存储方法采用SD卡作为存储介质代替传统FLASH存储方式,降低硬件成本,该方法采用双SD卡存储结构,电路结构简单,易于实现。

2.可靠性高。数据存储选用冗余容错机制方法,首先将数据帧存储到主SD卡中,其中数据帧包括数据位和校验位;然后微处理器对主SD卡进行数据回读,将数据帧的数据位重新计算校验位,与数据帧的校验位进行比较,对数据存储进行诊断,若存储数据发生错误,同理再次向主SD卡相同的地址重新写入数据帧,若3次主SD卡存储数据都发生故障,则将数据帧采用相同的方法写入从SD卡中,提高数据存储的可靠性。

附图说明

图1是本发明的结构原理图;

图2(a)是本发明的具体实施例中数据存储电路示意图一;

图2(b)是本发明的具体实施例中数据存储电路示意图二;

图2(c)是本发明的具体实施例中数据存储电路示意图三;

图3是本发明的数据存储方法工作流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步的详细说明。

从功能上来说,利用基于冗余容错机制技术,采用双SD卡存储结构,首先将一帧数据存储到主SD卡中,其中数据帧包括数据位和校验位;然后对主SD卡进行数据回读,将数据帧的数据位重新计算校验位,与数据帧的校验位进行,若相等则说明数据存储正确,若比较结果不相等则说明数据存储不正确,同理再次向主SD卡相同的地址重新写入数据帧,若3次主SD卡存储数据都发生故障,则将数据帧采用相同的方法写入从SD卡中。为数据存储正常工作提供了重要保障,提高其安全性和可靠性。

从系统结构上来说,本发明包括SD卡1存储电路、SD卡2存储电路、微处理器,微处理器通过SPI总线接口与SD卡1存储电路和SD卡2存储电路相连,通过片选1信号与控制SD卡1存储电路相连、片选2信号与SD卡2存储电路相连,微处理器利用SPI总线实现对SD卡1和SD卡2的数据存储与读取,实现数据存储。

本发明涉及以下两项关键技术:

1)数据存储的冗余技术。本发明采用双SD卡结构,首先将采集数据存储到主SD卡中,若主SD卡发生故障时,将采集数据存储到从SD卡中,提高数据存储可靠性。

2)数据存储的容错技术。首先,本发明将数据帧存储到主SD卡中,其中数据帧包括数据位和校验位;然后对主SD卡进行数据回读,将数据帧的数据位重新计算校验位,与数据帧的校验位进行,若相等则说明数据存储正确,若比较结果不相等则说明数据存储不正确,同理重复3次向主SD卡相同的地址重新写入数据帧,允许主SD卡发生3次存储错误,高水下滑翔机的数据存储可靠性。

如图1所示,本发明基于冗余容错机制的水下滑翔机数据存储方法包括:SD卡1存储电路、SD卡2存储电路、微处理器。

如图2(a)~图2(c)所示,微处理器选用STM32F407V微处理器,SD卡1存储电路主要包括SD卡J1,SD卡2存储电路主要包括SD卡J2。STM32F407V处理器的SPI1总线控制器的PA5(SD_SPI_SCK)、PA6(SD_SPI_MISO)、PA7(SD_SPI_MOSI)与SD卡J1的SCLK(SD_SPI_SCK)、DO(SD_SPI_MISO)、DI(SD_SPI_MOSI)连接;STM32F407V处理器的SPI1总线控制器的PA5(SD_SPI_SCK)、PA6(SD_SPI_MISO)、PA7(SD_SPI_MOSI)与SD卡J2的SCLK(SD_SPI_SCK)、DO(SD_SPI_MISO)、DI(SD_SPI_MOSI)连接。STM32F407V处理器的SPI1总线控制器的PB0(SD1_CS)与SD卡J1的CS(SD1_CS)连接;STM32F407V处理器的SPI1总线控制器的PB1(SD2_CS)与SD卡J2的CS(SD2_CS)连接。微处理器通过SPI1控制器与SD卡1、SD卡2进行通信,利用SD1_CS、SD2_CS决定SD卡是否使能。

如图3所示,微处理器利用CRC将采集数据计算校验位,由采集数据和校验数据组成一帧数据。首先微处理器将PB0(SD1_CS)引脚由高电平变成低电平,使能SD卡1存储电路。微处理器利用SPI1控制器,将数据帧存储到SD卡1存储电路中;微处理器回读SD卡1存储电路的数据帧,并将回读数据重新计算CRC校验位,与数据帧中的CRC校验位进行比较;若比较结果相等,则说明微处理器的SD卡1存储电路的存储数据正确;若比较结果不相等,则说明微处理器的SD卡1存储电路的存储数据不正确。微处理器继续以上述方式对SD卡1存储电路进行操作。若SD卡1存储电路连续3次产生存储数据错误,则数据SD1存储电路发生故障,已经不能正常工作。微处理器将PB0(SD1_CS)由低电平变成高电平,关闭SD卡1存储电路,将PB1(SD2_CS)由高电平变成低电平,使能SD卡2存储电路,微处理器对SD2存储电路进行数据存储操作。微处理器同理对SD卡2进行数据存储。

基于冗余容错机制的数据存储方法,利用容错机制,通过数据回读与校验位进行比较,提高数据存储的正确性,利用双SD卡冗余结构,当其中一个SD卡存储发生故障时,微处理器可以将采集数据存储到另外一个SD卡中,提供数据储存的可靠性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1