具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的实施例中,单片机进行数据的采集,将采集的数据传送至铁电存储器的中,当铁电存储器中缓存的数据达到采样点数时,将数据分扇区写入USB闪存盘对应的扇区中,写入完成后校验写入数据的完整性,当下一次所述铁电存储器中缓存的数据到达采样点数时,将所述数据写入至所述USB闪存盘之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。这样不仅能实现大容量数据存储功能,而且能有效的降低USB闪存盘在数据存储过程中的擦写频率,提高数据存储的可靠性。
图1示出了本发明的实施例提供的大容量数据存储设备的结构,为了便于说明,仅示出与本发明相关的部分。
在本发明实施例中,大容量数据存储设备包括单片机11、铁电存储器12以及USB闪存盘13。
本发明实施例中的单片机11分别与铁电存储器12及USB闪存盘13通讯连接。
单片机11对数据进行采集,同时将采集的数据传送至铁电存储器12中,并判断铁电存储器12中缓存的数据是否达到采样点数,当铁电存储器12中缓存的数据达到采样点数时,读取铁电存储器12中缓存的数据以及空余扇区地址范围,并将数据写入USB闪存盘13中空余扇区地址范围对应的扇区中,,数据写入完成后,获取USB闪存盘13中存储的数据的校验码进行校验,当校验码错误时,将数据重新写入USB闪存盘13相应的扇区中,当校验码正确时,单片机11对铁电存储器12中缓存的空余扇区地址范围及个数进行更新,以便当下一次铁电存储器12中缓存的数据到达采样点数时,以便单片机11将铁电存储器12中缓存的数据写入USB闪存盘13之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
本发明实施例中的采样点数是指数据的采集量,可以通过编写的程序预先设定,预先设定的采样点数小于铁电存储器12的最大存储容量值。
本发明实施例中单片机11采集数据,通过将采集的数据暂时存储在铁电存储器12中,确保采集数据的实时性,同时判断铁电存储器12中缓存的数据是否到达采样点数,当检测到铁电存储器12中缓存的数据到达采样点数时,将铁电存储器12中的数据分扇区写入USB闪存盘13中,以便当下一次铁电存储器12中缓存的数据到达采样点数时,单片机11将铁电存储器12中缓存的数据写入USB闪存盘13之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。分扇区是指将USB闪存盘13的存储区域划分为多个存储容量相同的存储单元,每个存储单元的存储容量与采样点数相同,每个存储单元包含多个空余扇区,每个存储单元的地址范围就是空余扇区的地址范围,即空余扇区的起始地址与终止地址。分扇区写入是指当铁电存储器12中缓存的数据达到采样点数时,将缓存的数据作为一个整体存放在USB闪存盘中的一个存储单元中,每一次缓存的数据根据分配的存储空间写入不同存储单元中,而不会写入USB闪存盘13中已经存放数据的扇区或者是被删除过数据的无效扇区中。这样不仅可以降低USB闪存盘13同一扇区重复擦除数据的频率,给硬件带来的干扰,而且能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
在本发明的实施例中,校验写入数据完整性的算法可以采用CRC16或者CRC32来实现,其中CRC为Cyclical Redundancy Check,即循环冗余校验。
本发明实施例中单片机11读取铁电存储器12中缓存的数据时,生成校验码,并将校验码传送至铁电存储器12中。
在本发明实施例中,单片机11校验所述缓存的数据写入USB闪存盘13中的完整性,采用的是将USB闪存盘13中存储的数据的校验码与铁电存储器12的存储的校验码进行核对。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码成功时,校验码标志置位,证明写入数据完整,不存在数据丢失,数据存储完成。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码失败时,证明写入的数据不完整,存在数据丢失,数据存储未完成,需要对USB闪存盘13中存放的不完整的数据进行擦除,擦除完成后,将读取的铁电存储器12中的缓存的数据重新写入至USB闪存盘13中原先存放所述数据的扇区。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备处于正在工作状态时,即未出现突然掉电的情形,缓存的数据写入完成后,单片机11获取USB闪存盘13中存储的写入数据的校验码进行校验。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备突然掉电,重新上电后,单片机11获取USB闪存盘13中存储的写入数据的校验码,校验所述缓存的数据是否全部写入至USB闪存盘13中。通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
本发明实施例中的铁电存储器12与单片机11通讯连接,铁电存储器12用于存储单片机11发送的采集数据以及空余扇区地址范围。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
本发明实施例中的空余扇区的地址范围是指USB闪存盘13中未存储数据的有效扇区的起始地址与终止地址。
本发明实施例中USB闪存盘中未存储数据的扇区包括空余扇区与无效扇区,空余扇区是指存放单片机11采集的数据的有效扇区;无效扇区是指USB闪存盘13中删除数据的扇区,在未被激活成空余扇区之前不能用来存放数据。
作为本发明的一个实施例,铁电存储器12还可以存储单片机11发送的USB闪存盘13中数据的分布情况。
本发明实施例中USB闪存盘13中数据的分布情况至少包括USB闪存盘13中存储数据的扇区的地址。
在USB闪存盘13中存储的历史数据不连续的情况下,为了满足用户能读出USB闪存盘中的存储的历史数据的需要,通过数据在USB闪存盘13中的存储的分布情况,就很容易将不连续的数据变成连续的数据进行读取。
本发明实施例中的数据在USB闪存盘13中的存储的分布情况是指在不同地址对应的扇区存储有不同的数据,单片机11通过读取存储在铁电存储器12中缓存的USB闪存盘13中存储的不连续数据的地址,根据不连续的数据存放在不同的地址中,如果需要读取完整的数据包,必须要读取第一个数据,再读取第二个地址,通过读到的地址再去读所述地址中存放的数据,再读取扇区地址对应的数据后面存放的下一个地址的数据,如此循环,直到读出了第一个字节的地址,才能够将整条数据进行读取。
本发明实施例中的铁电存储器12,即FRAM(Ferromagnetic Random AccessMemory,铁电存储器)的特点是读写速度快,能够像RAM一样操作,读写功耗极低,不存在如E2PROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器),即EEPROM的最大写入次数的问题,而且将单片机11采集的数据先传送至FRAM中比直接传输至USB闪存盘12中所需时间更少,能使采集的数据更快速的进行存储,实现数据传输速度快的效果。
本发明实施例中的铁电存储器12的存储容量的大小必须超过采样点数,这样可以保证铁电存储器12的可以缓存采集的数据同时可以存储USB闪存盘13中数据的分布情况以及地址范围等。
与传统的数据存储设备不同,采用铁电存储器12可以实现较高传输速度和可靠性,同时能够实现数据的高可靠性传输与存储,当缓存的数据到达采样点数时,单片机11通过存储算法,将缓存的数据按扇区写入USB闪存盘13中,这样能够满足记录大量的存储大容量数据需要的同时大大的节省存储的费用以及后期维护的费用,不仅效率大大提升,而且更可靠,更安全。
本发明实施例中USB闪存盘13与单片机11通讯连接,用于存储单片机11从铁电存储器12中读取的采集的数据。
本发明实施例中的的存储算法适用于的存储容量的大小不超过32GB的USB闪存盘13。
本发明实施例中的USB闪存盘简称U盘,其属于海量存储类中通用海量存储子类,通用海量存储设备实现上是基于块/扇区存储的设备。U盘存储的原理是:计算机把二进制数字信号转为复合二进制数字信号(加入分配、核对、堆栈等指令)读写到USB芯片适配接口,通过芯片处理信号分配给EPROM2存储芯片的相应地址存储二进制数据,实现数据的存储。
作为本发明的一个优选实施例,当客户对采集的数据不满意时,可以通过单片机11下达删除历史记录指令,将USB闪存盘13中存储的数据以及铁电存储器12中缓存的数据进行删除,同时单片机11通过获取USB闪存盘11中删除数据的扇区对应的地址,根据获取的地址将地址对应的扇区注册成无效扇区,并将无效扇区的地址发送至铁电存储器12中进行缓存。
本发明实施例中的无效扇区并不是坏道,无效扇区的产生是由客户造成的,客户通过单片机11下达删除历史记录指令,铁电存储器12中记录着与删除历史记录指令对应的删除数据的地址,在USB闪存盘13中删除数据的地址会被屏蔽,不会存放采集的数据,直到USB闪存盘13中的所有扇区均被写入过数据才会进行一次扩容操作,将无效扇区激活,变成有效的空余扇区。这样可以使USB闪存盘13的内存进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
作为本发明的一个实施例,单片机11在采集数据之前,先对铁电存储器12以及USB闪存盘13进行初始化,记录USB闪存盘13中空余扇区的地址范围,并将USB闪存盘13中空余扇区的地址范围传送至铁电存储器12,以使铁电存储器12对USB闪存盘13中空余扇区的地址范围进行缓存。
作为本发明的一个实施例,优选的,为了使USB闪存盘13的内存可以进行循环存储,在将铁电存储器12中的数据写入USB闪存盘之前,单片机11先检测USB闪存盘13中的所有扇区是否均被写入过数据,当检测到所述铁电存储器中所述空余扇区地址范围的个数为零时,单片机11会对USB闪存盘13进行一次扩容操作,将无效扇区激活,变成有效的空余扇区,单片机11将铁电存储器12中缓存的无效扇区地址激活成空余扇区地址,并更新铁电存储器12中缓存的空余扇区地址范围及其个数,以便单片机11将铁电存储器12中缓存的采集的数据写入激活后的空余扇区中。
本发明实施例中的空余扇区的地址范围是指USB闪存盘13中未存储数据的扇区的起始地址与终止地址,空余扇区的地址范围可能为不连续扇区的地址,例如,地址0x0000~0x1FFF和地址0x8000~0x9FFF是空余扇区地址,其在铁电存储器12中存储的形式为:[0x0002],[0x0000],[0x1FFF],[0x0000],[0x9FFF],其中[0x0002]表示地址范围的个数。单片机11通过读取铁电存储器12中USB闪存盘13中空余扇区的地址范围,就能知道USB闪存盘13中可以存储数据的区域。
本发明实施例中的单片机11的型号可以采用:MSP430G2553,MSP430F1611,MSP430AFE253等中的一种。
在本发明实施例中,单片机11的ADC把模拟电压信号转换成数字信号,进行数据的快速采集,单片机11的USB接口与USB闪存盘13进行扇区的读写,在读写的过程中,通过外部导入的存储算法将采集的数据暂时存储在单片机11所接外设铁电存储器12中,确保数据的实时性,当铁电存储器12中存储的数据达到采样点数时,将数据写入USB闪存盘13中空余扇区地址范围对应的扇区中,通过核对校验码,验证USB闪存盘13中数据的完整性,校验完成后,更新USB闪存盘13中空余扇区地址范围。
在本发明的实施例中,单片机11与铁电存储器12通讯方式为I2C。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。单片机11与USB闪存盘13通讯方式为USB通讯,USB闪存盘13中的系统用主控制器管理单片机与USB闪存盘13间的数据传输,它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB闪存盘13的系统也负责管理USB闪存盘13的资源,例如带宽和总线能量,这使客户访问USB闪存盘13成为可能。
图2示出了本发明第一实施例提供的大容量数据存储方法的实现流程,详述如下:
在步骤S201中,采集数据,将所述数据传送至所述铁电存储器,以使所述铁电存储器对所述数据进行缓存。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
在步骤S202中,当所述铁电存储器中缓存的数据达到采样点数时,读取所述铁电存储器中缓存的数据以及空余扇区地址范围。
本发明实施例中的采样点数是指数据的采集量,可以通过编写的程序预先设定,预先设定的采样点数小于铁电存储器12的最大存储容量值。
本发明实施例中单片机11读取铁电存储器12中缓存的USB闪存盘13中的空余扇区的地址范围,将铁电存储器12中缓存的数据写入USB闪存盘13中的空余扇区的地址范围对应的空余扇区中,当下一次铁电存储器12中数据到达采样点数时,再将采集的数据写入至之前存放数据的区域后,而不会写入USB闪存盘13中被删除过数据的无效扇区中。这样可以降低USB闪存盘13的同一扇区重复擦除数据的频率,给硬件带来的干扰,而且能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
在步骤S203中,根据所述空余扇区地址范围将所述数据写入USB闪存盘相应的扇区中,以使所述USB闪存盘将所述数据存储至未存储数据的扇区。
在本发明的实施例中,单片机11通过外部录入的存储算法对从铁电存储器12中读取的数据进行按扇区写入至USB闪存盘13中。
在步骤S204中,获取所述数据的校验码进行校验。
在本发明的实施例中,校验写入数据完整性的算法可以采用CRC16或者CRC32来实现。
本发明实施例中单片机11读取铁电存储器12中缓存的数据时,生成校验码,并将校验码传送至铁电存储器12中。
在步骤S205中,当校验码错误时,将所述数据重新写入所述USB闪存盘相应的扇区中。
在步骤206中,当校验码正确时,对所述铁电存储器中缓存的空余扇区地址范围及个数进行更新,以便当下一次铁电存储器中缓存的数据到达采样点数时,单片机将铁电存储器中缓存的数据写入USB闪存盘之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。
在本发明实施例中,单片机11校验所述缓存的数据写入USB闪存盘13中的完整性,采用的是将USB闪存盘13中存储的数据的校验码与铁电存储器12的存储的校验码进行核对。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码成功时,校验码标志置位,证明写入数据完整,不存在数据丢失,数据存储完成。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码失败时,证明写入的数据不完整,存在数据丢失,数据存储未完成,需要对USB闪存盘13中存放的不完整的数据进行擦除,擦除完成后,将读取的铁电存储器12中的缓存的数据重新写入至USB闪存盘13中原先存放所述数据的扇区。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备处于正在工作状态时,即未出现突然掉电的情形,缓存的数据写入完成后,单片机11获取USB闪存盘13中存储的写入数据的校验码进行校验。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备突然掉电,重新上电后,单片机11获取USB闪存盘13中存储的写入数据的校验码,校验所述缓存的数据是否全部写入至USB闪存盘13中。通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
本发明实施例中单片机11采集数据,通过将采集的数据暂时存储在铁电存储器12中,确保采集数据的实时性,同时判断铁电存储器12中缓存的数据是否到达采样点数,当检测到铁电存储器12中缓存的数据到达采样点数时,将铁电存储器12中的数据分扇区写入USB闪存盘13中,以便当下一次铁电存储器12中缓存的数据到达采样点数时,单片机11将铁电存储器12中缓存的数据写入USB闪存盘13之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。分扇区是指将USB闪存盘13的存储区域划分为多个存储容量相同的存储单元,每个存储单元的存储容量与采样点数相同,每个存储单元包含多个空余扇区,每个存储单元的地址范围就是空余扇区的地址范围,即空余扇区的起始地址与终止地址。分扇区写入是指当铁电存储器12中缓存的数据达到采样点数时,将缓存的数据作为一个整体存放在USB闪存盘中的一个存储单元中,每一次缓存的数据根据分配的存储空间写入不同存储单元中,而不会写入USB闪存盘13中已经存放数据的扇区或者是被删除过数据的无效扇区中。这样不仅可以降低USB闪存盘13同一扇区重复擦除数据的频率,给硬件带来的干扰,而且能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
图3示出了本发明第二实施例提供的大容量数据存储方法的实现流程,详述如下:
在步骤S301中,当接收到删除历史记录指令时,删除所述USB闪存盘中与所述删除指令对应的数据以及所述铁电存储器中缓存的数据。
本发明实施例中当客户对所采集的数据不满意时,可以通过单片机11下达删除历史记录指令,将USB闪存盘13中存储的数据以及铁电存储器12中缓存的采集的数据进行删除。
本发明实施例中客户下达删除历史记录的指令可以在步骤S201至步骤S206中的任意过程中进行。
在本发明实施例中,客户下达删除历史记录指令会中断单片机11正在执行的行为,而使单片机11进入无效扇区生成的程序,直到单片机11将无效扇区的地址发送至铁电存储器12中进行缓存后,单片机11会恢复至对数据进行重新采集的过程,而不会继续执行中断时行为。
在步骤S302中,获取所述USB闪存盘中删除数据的扇区对应的地址。
在步骤S303中,将所述地址对应的扇区注册成无效扇区,并将所述无效扇区的地址发送至所述铁电存储器中。
在本发明实施例中,当客户对采集的数据不满意时,可以通过单片机11下达删除历史记录指令,将USB闪存盘13中存储的数据以及铁电存储器12中缓存的数据进行删除,同时单片机11通过获取USB闪存盘11中删除数据的扇区对应的地址,根据获取的地址将地址对应的扇区注册成无效扇区,并将无效扇区的地址发送至铁电存储器12中进行缓存。
本发明实施例中的无效扇区并不是坏道,无效扇区的产生是由客户造成的,客户通过单片机11下达删除历史记录指令,铁电存储器12中记录着与删除历史记录指令对应的删除数据的地址,在USB闪存盘13中删除数据的地址会被屏蔽,不会存放采集的数据,直到USB闪存盘13中的所有扇区均被写入过数据才会进行一次扩容操作,将无效扇区激活,变成有效的空余扇区。采用这种方法使得USB闪存盘13的内存可以进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
作为本发明的一个实施例,在采集数据之前,所述大容量数据存储方法还包括下述步骤:
对所述铁电存储器以及所述USB闪存盘进行初始化,记录所述USB闪存盘中空余扇区的地址范围,并将所述USB闪存盘中空余扇区的地址范围传送至所述铁电存储器,以使所述铁电存储器对USB闪存盘中空余扇区的地址范围进行缓存。
在本发明的实施例中,单片机11在采集数据之前,先对铁电存储器12以及USB闪存盘13进行初始化,记录USB闪存盘13中空余扇区的地址范围,并将USB闪存盘13中空余扇区的地址范围传送至铁电存储器12,以使铁电存储器12对USB闪存盘13中空余扇区的地址范围进行缓存。
作为本发明的一个实施例,优选的,为了使USB闪存盘13的内存可以进行循环存储,在将铁电存储器12中的数据写入USB闪存盘之前,所述大容量数据存储方法还包括下述步骤:
当检测到所述铁电存储器中所述空余扇区地址范围的个数为零时,将所述铁电存储器中缓存的所述无效扇区地址激活成空余扇区地址,并更新所述铁电存储器中缓存的所述空余扇区地址范围及其个数。
在本发明实施例中,单片机11先检测USB闪存盘13中的所有扇区是否均被写入过数据,当检测到铁电存储器12中空余扇区地址范围的个数为零时,单片机11会对USB闪存盘13进行一次扩容操作,将无效扇区激活,变成有效的空余扇区,单片机11将铁电存储器12中缓存的无效扇区地址激活成空余扇区地址,并更新铁电存储器12中缓存的空余扇区地址范围及其个数,以便单片机11将铁电存储器12中缓存的采集的数据写入激活后的空余扇区中。
实现本发明方法的软件存储于单片机11上,该软件通过采用C语言或其他某种语言对存储算法进行编写,通过运行该软件可以实现大容量数据存储方法。
本发明实施例中的铁电存储器12与单片机11通讯连接,用于缓存单片机11采集的数据、USB闪存盘13中空余扇区地址、无效扇区的地址以及数据的分布情况。
本发明实施例中USB闪存盘13与单片机11通讯连接,用于存储单片机11从铁电存储器12中读取的数据。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
本发明实施例中USB闪存盘中未存储数据的扇区包括空余扇区与无效扇区,空余扇区是指存放单片机11采集的数据的有效扇区;无效扇区是指USB闪存盘13中删除数据的扇区,在未被激活成空余扇区之前不能用来存放数据
本发明实施例中的空余扇区的地址范围是指USB闪存盘13中未存储数据的扇区的起始地址与终止地址,空余扇区的地址范围可能为不连续扇区的地址,例如,地址0x0000~0x1FFF和地址0x8000~0x9FFF是空余扇区地址,其在铁电存储器12中存储的形式为:[0x0002],[0x0000],[0x1FFF],[0x0000],[0x9FFF],其中[0x0002]表示地址范围的个数。单片机11通过读取铁电存储器12中USB闪存盘13中空余扇区的地址范围,就能知道USB闪存盘13中可以存储数据的区域。
本发明实施例中USB闪存盘13中数据的分布情况至少包括USB闪存盘13中存储数据的扇区的地址。
在USB闪存盘13中存储的历史数据不连续的情况下,为了满足用户能读出USB闪存盘中的存储的历史数据的需要,通过数据在USB闪存盘13中的存储的分布情况,就很容易将不连续的数据变成连续的数据。
本发明实施例中的数据在USB闪存盘13中的存储的分布情况是指在不同地址对应的扇区存储有不同的数据,单片机11通过读取存储在铁电存储器12中缓存的USB闪存盘13中存储的不连续数据的地址,根据不连续的数据存放在不同的地址中,如果需要读取完整的数据包,必须要读取第一个数据,再读取第二个地址,通过读到的地址再去读所述地址中存放的数据,再读取扇区地址对应的数据后面存放的下一个地址的数据,如此循环,直到读出了第一个字节的地址,才能够将整条数据进行读取。
在本发明的实施例中,利用单片机11中导入的存储算法对数据进行采集,然后将采集的数据暂时存储在单片机11所接外设铁电存储器12的中,确保数据的实时性,当铁电存储器12存储的数据达到采样点数时,再将铁电存储器12中存储的所有数据分扇区写入至与单片机11通过USB接口连接的USB闪存盘13中,在数据写入完成后,核对USB闪存盘13中存储数据的校验码与铁电存储器12的存储的校验码,当核对成功时,对校验码标志置位,当核对失败时,需要对USB闪存盘13中存放的不完整的数据进行擦除,擦除完成后,将读取的铁电存储器12中的缓存的数据重新分扇区写入至USB闪存盘13中原先存放所述数据的扇区。通过采用分扇区写入使得USB闪存盘13的内存可以进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命,通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
图4示出了本发明第一实施例提供的大容量数据存储装置的结构,为了便于说明,仅示出与本发明相关的部分。
该装置4包括:采集模块41、读取模块42、分扇区写入模块43、校验模块44、重写模块45以及更新模块46。
在本发明实施例中采集模块41采集数据,并将采集的数据传送至铁电存储器13,以使铁电存储器13对采集的数据进行缓存。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
在本发明实施例中,当铁电存储器12中缓存的数据达到采样点数时,读取模块42通过读取铁电存储器12中缓存的数据以及空余扇区地址范围,将读取的数据以及空余扇区地址范围发送至分扇区写入模块43。
本发明实施例中的采样点数是指数据的采集量,可以通过编写的程序预先设定,预先设定的采样点数小于铁电存储器12的最大存储容量值。
在本发明实施例中,分扇区写入模块43可以接收读取模块42发送的数据以及空余扇区地址范围,根据空余扇区地址范围将数据写入USB闪存盘13相应的扇区中,以使USB闪存盘13将数据存储至未存储数据的扇区。
在本发明的实施例中,单片机11通过外部录入的存储算法对从铁电存储器12中读取的数据进行按扇区写入至USB闪存盘13中。
本发明实施例中分扇区写入模块43根据读取模块42发送的铁电存储器12中缓存的USB闪存盘13中的空余扇区的地址范围,将铁电存储器12中缓存的数据写入USB闪存盘13中的空余扇区的地址范围对应的空余扇区中,当下一次铁电存储器12中数据到达采样点数时,再将采集的数据写入至之前存放数据的区域后,而不会写入USB闪存盘13中已经存放数据的扇区或者是被删除过数据的无效扇区中。
分扇区是指将USB闪存盘13的存储区域划分为多个存储容量相同的存储单元,每个存储单元的存储容量与采样点数相同,每个存储单元包含多个空余扇区,每个存储单元的地址范围就是空余扇区的地址范围,即空余扇区的起始地址与终止地址。分扇区写入是指当铁电存储器12中缓存的数据达到采样点数时,将缓存的数据作为一个整体存放在USB闪存盘中的一个存储单元中,每一次缓存的数据根据分配的存储空间写入不同存储单元中,而不会写入USB闪存盘13中已经存放数据的扇区或者是被删除过数据的无效扇区中。这样可以降低USB闪存盘13的同一扇区重复擦除数据的频率,给硬件带来的干扰,而且能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
在本发明实施例中,校验模块44通过获取USB闪存盘13中存储的数据的校验码进行校验。
在本发明的实施例中,校验写入数据完整性的算法可以采用CRC16或者CRC32来实现。
本发明实施例中单片机11读取铁电存储器12中缓存的数据时,生成校验码,并将校验码传送至铁电存储器12中。
在本发明实施例中,当校验码错误时,重写模块45将数据重新写入USB闪存盘13相应的扇区中。
在本发明实施例中,当校验码正确时,更新模块46可以对铁电存储器12中缓存的空余扇区地址范围及个数进行更新。
在本发明实施例中,单片机11校验缓存的数据写入USB闪存盘13中的完整性,采用的是将USB闪存盘13中存储的数据的校验码与铁电存储器12的存储的校验码进行核对。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码成功时,校验码标志置位,证明写入数据完整,不存在数据丢失,数据存储完成。
在本发明实施例中,单片机11校验USB闪存盘13中存储的数据的校验码失败时,证明写入的数据不完整,存在数据丢失,数据存储未完成,需要对USB闪存盘13中存放的不完整的数据进行擦除,擦除完成后,将读取的铁电存储器12中的缓存的数据重新写入至USB闪存盘13中原先存放所述数据的扇区。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备处于正在工作状态时,即未出现突然掉电的情形,缓存的数据写入完成后,单片机11获取USB闪存盘13中存储的写入数据的校验码进行校验。
在本发明实施例中,单片机11将铁电存储器12中缓存的数据写入至USB闪存盘13的过程中,大容量数据存储设备突然掉电,重新上电后,单片机11获取USB闪存盘13中存储的写入数据的校验码,校验所述缓存的数据是否全部写入至USB闪存盘13中。通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
在本发明的实施例中,利用单片机11中导入的存储算法对数据进行采集,然后将采集的数据暂时存储在单片机11所接外设铁电存储器12的中,确保数据的实时性,当铁电存储器12存储的数据达到采样点数时,再将铁电存储器12中存储的所有数据分扇区写入至与单片机11通过USB接口连接的USB闪存盘13中,在数据写入完成后,核对USB闪存盘13中存储数据的校验码与铁电存储器12的存储的校验码,当核对成功时,对校验码标志置位,当核对失败时,需要对USB闪存盘13中存放的不完整的数据进行擦除,擦除完成后,将读取的铁电存储器12中的缓存的数据重新分扇区写入至USB闪存盘13中原先存放所述数据的扇区。通过采用分扇区写入使得USB闪存盘13的内存可以进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命,通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
图5示出了本发明第二实施例提供的大容量数据存储装置的结构,为了便于说明,仅示出与本发明相关的部分。
该装置5包括:删除模块51、获取模块52以及注册模块53。
在本发明实施例中,当单片机11接收删除历史记录指令时,删除模块51可以删除USB闪存盘13中与删除指令对应的数据以及铁电存储器12中缓存的数据。
本发明实施例中当客户对所采集的数据不满意时,可以通过单片机11下达删除历史记录指令,将USB闪存盘13中存储的数据以及铁电存储器12中缓存的所述采集的数据进行删除。
本发明实施例中,获取模块52可以获取USB闪存盘13中删除数据的扇区对应的地址。
在本发明实施例中,注册模块53将删除数据的扇区的地址对应的扇区注册成无效扇区,并将无效扇区的地址发送至铁电存储器12中。
在本发明实施例中,当客户对采集的数据不满意时,可以通过单片机11接收删除历史记录指令,将USB闪存盘13中存储的数据以及铁电存储器12中缓存的数据进行删除,同时单片机11通过获取USB闪存盘11中删除数据的扇区对应的地址,根据获取的地址将地址对应的扇区注册成无效扇区,并将无效扇区的地址发送至铁电存储器12中进行缓存。
在本发明实施例中,客户下达删除历史记录指令会中断单片机11正在执行的行为,而使单片机11进入无效扇区生成的程序,直到单片机11将无效扇区的地址发送至铁电存储器12中进行缓存后,单片机11会恢复至对数据进行重新采集的过程,而不会继续执行中断时行为。
本发明实施例中的无效扇区并不是坏道,无效扇区的产生是由客户造成的,客户通过单片机11下达删除历史记录指令,铁电存储器12中记录着与删除历史记录指令对应的删除数据的地址,在USB闪存盘13中删除数据的地址会被屏蔽,不会存放采集的数据,直到USB闪存盘13中的所有扇区均被写入过数据才会进行一次扩容操作,将无效扇区激活,变成有效的空余扇区。采用这种方法使得USB闪存盘13的内存可以进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命。
作为本发明的一个实施例,所述大容量数据存储装置还包括:
初始化模块,用于:对铁电存储器12以及USB闪存盘13进行初始化,记录USB闪存盘13中空余扇区的地址范围,并将USB闪存盘13中空余扇区的地址范围传送至铁电存储器12,以使铁电存储器12对USB闪存盘13中空余扇区的地址范围进行缓存。
在本发明的实施例中,单片机11在采集数据之前,先对铁电存储器12以及USB闪存盘13进行初始化,记录USB闪存盘13中空余扇区的地址范围,并将USB闪存盘13中空余扇区的地址范围传送至铁电存储器12,以使铁电存储器12对USB闪存盘13中空余扇区的地址范围进行缓存。
作为本发明的一个实施例,优选的,为了使USB闪存盘13的内存可以进行循环存储,所述大容量数据存储装置还包括:
无效扇区激活模块,用于:当检测到铁电存储器12中空余扇区地址范围的个数为零时,将铁电存储器12中缓存的无效扇区地址激活成空余扇区地址,并对铁电存储器12中缓存的空余扇区地址范围及个数进行更新。
在本发明实施例中,单片机11先检测USB闪存盘13中的所有扇区是否均被写入过数据,当检测到铁电存储器12中空余扇区地址范围的个数为零时,单片机11会对USB闪存盘13进行一次扩容操作,将无效扇区激活,变成有效的空余扇区,单片机11将铁电存储器12中缓存的无效扇区地址激活成空余扇区地址,并更新铁电存储器12中缓存的空余扇区地址范围及其个数,以便单片机11将铁电存储器12中缓存的采集的数据写入激活后的空余扇区中。
本发明实施例中的大容量数据存储装置4和5均安装于单片机11上,单片机11分别与铁电存储器12及USB闪存盘13通讯连接。
本发明实施例中的铁电存储器12与单片机11通讯连接,用于缓存单片机11采集的数据、USB闪存盘13中空余扇区地址、无效扇区的地址以及数据的分布情况。
本发明实施例中USB闪存盘13与单片机11通讯连接,用于存储单片机11从铁电存储器12中读取的数据。
本发明实施例中采集的数据可以是与单片机11通过总线连接的电路中产生并发送至单片机11的数据或者是单片机11中存储的数据中的一种。
本发明实施例中USB闪存盘中未存储数据的扇区包括空余扇区与无效扇区,空余扇区是指存放单片机11采集的数据的有效扇区;无效扇区是指USB闪存盘13中删除数据的扇区,在未被激活成空余扇区之前不能用来存放数据。
本发明实施例中的空余扇区的地址范围是指USB闪存盘13中未存储数据的扇区的起始地址与终止地址,空余扇区的地址范围可能为不连续扇区的地址,例如,地址0x0000~0x1FFF和地址0x8000~0x9FFF是空余扇区地址,其在铁电存储器12中存储的形式为:[0x0002],[0x0000],[0x1FFF],[0x0000],[0x9FFF],其中[0x0002]表示地址范围的个数。单片机11通过读取铁电存储器12中USB闪存盘13中空余扇区的地址范围,就能知道USB闪存盘13中可以存储数据的区域。
本发明实施例中USB闪存盘13中数据的分布情况至少包括USB闪存盘13中存储数据的扇区的地址。
在USB闪存盘13中存储的历史数据不连续的情况下,为了满足用户能读出USB闪存盘中的存储的历史数据的需要,通过数据在USB闪存盘13中的存储的分布情况,就很容易将不连续的数据变成连续的数据。
本发明实施例中的数据在USB闪存盘13中的存储的分布情况是指在不同地址对应的扇区存储有不同的数据,单片机11通过读取存储在铁电存储器12中缓存的USB闪存盘13中存储的不连续数据的地址,根据不连续的数据存放在不同的地址中,如果需要读取完整的数据包,必须要读取第一个数据,再读取第二个地址,通过读到的地址再去读所述地址中存放的数据,再读取扇区地址对应的数据后面存放的下一个地址的数据,如此循环,直到读出了第一个字节的地址,才能够将整条数据进行读取。
在本发明实施例中,大容量数据存储装置对数据进行采集,然后将采集的数据传送至铁电存储器12中,以使铁电存储器12对采集的数据进行存储,接着判断铁电存储器12中缓存的数据是否达到采样点数,当所述缓存的数据达到采样点数时,读取铁电存储器12中缓存的数据,将所述数据分扇区写入至USB闪存盘13中,以使USB闪存盘13将所述数据存储至未存储过数据的扇区,校验所述采样点数数据写入USB闪存盘13中的完整性。通过采用分扇区写入使得USB闪存盘13的内存可以进行循环存储,同时避免重复擦除数据,给硬件带来的干扰,能够有效的解决大容量数据存储以及长时间保存的问题,同时延长了USB闪存盘13的使用寿命,通过校验写入数据的完整性,可以保证数据传送的准确性与实时性,利用铁电存储器12掉电后不丢失信息的特点,校验写入数据的完整性,可以保证存储设备掉电后采集的信息不丢失,提高存储大容量数据设备的可靠性。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或者部分单元或者模块是可以通过程序来指令相关的硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,不失一般性,计算机可读取存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储介质,CD-ROM、DVD或其他光学存储介质、磁带盒、磁带、磁盘或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。
本领域普通技术人员可以理解实现上述实施例的全部或部分单元或者模块可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本发明的实施例中,单片机进行数据的采集,将采集的数据传送至铁电存储器的中,当铁电存储器中缓存的数据达到采样点数时,再将缓存的数据分扇区写入至USB闪存盘中,校验写入数据的完整性,当下一次铁电存储器中缓存的数据到达采样点数时,将数据写入至USB闪存盘之前存放数据的扇区的下一个空余扇区地址范围对应的扇区中。这样不仅能实现大容量数据存储功能,而且能有效的降低USB闪存盘在数据存储过程中的擦写频率,延长USB闪存盘的使用寿命,保证数据存放时间长且掉电后不丢失信息,提高大容量数据存储系统的可靠性,使得USB闪存盘的数据传输速度快以及存储时间长,同时能够大大的节省数据存储的费用以及后期维护的费用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。