CN116301579A - 对于自容式测量设备的文件存取系统及其存取方法 - Google Patents
对于自容式测量设备的文件存取系统及其存取方法 Download PDFInfo
- Publication number
- CN116301579A CN116301579A CN202211557086.9A CN202211557086A CN116301579A CN 116301579 A CN116301579 A CN 116301579A CN 202211557086 A CN202211557086 A CN 202211557086A CN 116301579 A CN116301579 A CN 116301579A
- Authority
- CN
- China
- Prior art keywords
- file
- measurement
- block
- storage
- flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims abstract description 5
- 238000005259 measurement Methods 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 13
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 5
- 238000009530 blood pressure measurement Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及水文测量设备技术领域,特别涉及对于自容式测量设备的文件存取系统及其存取方法,包括:测量单元、主控单元和存储单元;所述测量单元依次与所述主控单元和所述存储单元控制相连,外部传感器的电信号输入至所述测量单元中,所述主控单元通过串口进行收发数据至上位机。所述测量单元采用AD7714型A/D转换芯片,能够接受来自传感器的低电平模拟信号并产生串行数字输出,能够实现最高24位无失码性能;同时AD7714有一个串行接口,使用SPI通信。本发明的设计能够实现在非连续存储空间上的文件写入、读出、查找、删除等功能的方案。
Description
技术领域
本发明涉及水文测量设备技术领域,特别涉及对于自容式测量设备的文件存取系统及其存取方法。
背景技术
在水文测绘行业中,目前市面上的水文测量设备诸如声速剖面仪、潮位仪、温盐深仪等,可分为直读式和自容式两种。直读式设备受限于信号质量和线缆质量,往往只适用于浅水测量。而测量设备在工作时通常需下放到水底或长期浸没在水中,在此场景下自容式设备由于其便于携带、安装、投放的优点,应用的更为广泛。
自容式设备在工作过程中需将测量数据按一定的格式形成文件并存储到内部的存储芯片中,待测量结束后再将存储的文件发送至上位机。因此,存储数据量的大小是自容式测量设备的一个重要指标。在一次测量中,我们希望得到尽可能多的测量数据来获得更准确的测量值。然而受限于存储空间的大小,我们需要尽可能地压缩每组测量数据所占的空间来提高每个存储块的使用率。
因此需要设计一种高空间利用率的,能够实现在非连续存储空间上的文件写入、读出、查找、删除等功能的方案。
发明内容
针对现有技术的不足,本发明公开对于自容式测量设备的文件存取系统及其存取方法,本发明的设计能够实现在非连续存储空间上的文件写入、读出、查找、删除等功能的方案。
本发明通过以下技术方案予以实现:
对于自容式测量设备的文件存取系统,包括:测量单元、主控单元和存储单元;所述测量单元依次与所述主控单元和所述存储单元控制相连,外部传感器的电信号输入至所述测量单元中,所述主控单元通过串口进行收发数据至上位机。
优选的,所述测量单元采用AD7714型A/D转换芯片,能够接受来自传感器的低电平模拟信号并产生串行数字输出,能够实现最高24位无失码性能;同时AD7714有一个串行接口,使用SPI通信。
优选的,所述主控单元采用STM32F103RCT6型32位ARM微控制器,最高工作频率72MHz;硬件资源包含256KB内部Flash、48KB的RAM、5个通用同步异步收发器、3个SPI接口。
优选的,所述存储单元采用W25Q64型SPI FLASH产品,其容量为8MB;支持SPI通信,传输速度达40MB/s,同时W25Q64将8M字节的存储空间分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节,每个扇区分为16个页,每页256字节。
本发明还提供了如下技术方案:对于自容式测量设备的文件存取方法,使用上述所述的对于自容式测量设备的文件存取系统进行存取,包括:
1)文件的构建;为便于测量数据的存储和查找,将测量数据以测量文件的形式存储到flash中;
2)文件的写入;其写入过程包括:
S1:芯片上电后遍历flash,对数组flashState[]和usedFileNo[]赋值;
S2:遍历数组flashState[]和usedFileNo[],计算出一个编号最小的空的存储块和未使用的文件编号,根据计算出的存储块编号计算块首地址并赋值给currentAddress;
S3:设备入水后开始一次测量,文件编号记为当前未被使用的最小编号,文件子编号记为0并更新flashState[]和usedFileNo[]的数值;每当时间或者压力的变化满足记录条件时向flash中写入测量数据,即AD7714的输出值;
S4:在一次测量中若是向一个空的块写入则首先写入文件头,每多使用一个存储块则文件编号不变,文件子编号加1;
S5:每次写完文件头或者测量数据都要将currentAddress向后偏移,为下次写入做准备;
S6:设备出水后,一次测量结束。
3)文件的读取;其读取过程包括:
S1:设备出水后,能够通过上位机来查看先前记录的数据;
S2:上位机通过软件向设备发送读取命令,设备将通过遍历flashState[]数组来确认每个存储块的使用情况并在读取已使用存储块中的文件头信息后将其回送至上位机;
S3:上位机在接收到全部的文件头信息后需要按照文件头中的记录时间、文件编号和文件子编号重新排序,方便用户查看。
S4:用户选择某一次测量的文件后,上位机查询其对应的文件编号并按照文件子编号从小到大的顺序,将对应的块编号依此发送给设备;
S5:设备接收到块编号后计算存储地址,读取该地址存储的数据并发送至上位机。
4)文件的删除。
优选的,在所述文件的构建中,包括:存储块的选取;以每秒记录10次,每次测量30分钟计算,一次测量记录的数据为54000Byte,选取32K空间作为文件存储的最小单元,即每次测量消耗的flash存储空间为32K的整数倍。
优选的,在所述文件的构建中,包括:文件的构成;每个文件由文件头和测量数据组成,文件头中还包含占用标志、文件编号、文件子编号、记录间隔和记录时间;每组测量数据为AD7714输出的3ByteAD值,每次测量前都选择一个未被使用的最小的文件编号,测量过程中每次向一个新的32KB存储块写入测量数据前都要写入文件头。
优选的,在所述文件的构建中,包括:关键变量的定义;
定义两个全局数组unsigned int flashState[8]和unsigned int usedFileNo[8]来分别存储flash的使用状态和文件编号的使用状态;
定义一个全局变量unsigned int currentAddress,用来指示当前操作的flash地址;
定义体变量fileHead,存放文件头中包含的信息;
优选的,在所述文件的删除中,其删除过程包括:
S1:接收到删除指令;
S2:检查flash存储块的使用情况,上传文件列表;
S3:接收要删除的块编号;
S4:擦除对应文件编号的所有存储块;
S5:修改文件编号和存储块的使用状态;
S6:结束。
本发明具有以下有益效果:
本方案基于STM32 CubeMX和HAL库开发。STM32 CubeMX是ST推出的一款图形化配置软件。用户通过图形化的方式配置MCU的各个外设并生成相应代码(基于HAL库),后续开发只需要在CubeMX生成的代码框架中添加业务代码即可。省去了对外设的配置步骤,并且生成的代码准确性高,结构性好,大大缩短了开发周期。以水压的测量为例,MCU检测到设备入水后开始压力测量。通过压力传感器将水下压力转化为电信号输入到AD7714中并转化为24bit数据输出到MCU,MCU每隔一段时间将测量数据存储到W25Q64中。测量完成后,当MCU接收到读取数据的指令后将指定的测量数据从W25Q64中读出并输出至上位机。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明文件存取系统结构框图。
图2为本发明文件存取系统电路原理图。
图3为本发明文件写入流程图。
图4为本发明文件读取流程图。
图5为本发明文件删除流程图。
图6为本发明输入指令查看文件列表图。
图7为本发明存储数据列表图。
图8为本发明11号存储块的第一页存储的数据图。
图9为本发明文件子编号加一,RTC时间更新图。
图10为本发明输入指令删除文件5,删除后文件列表图。
图11为本发明表示该存储块已被擦除图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,本发明实施例提供了对于自容式测量设备的文件存取系统,包括:测量单元、主控单元和存储单元;所述测量单元依次与所述主控单元和所述存储单元控制相连,外部传感器的电信号输入至所述测量单元中,所述主控单元通过串口进行收发数据至上位机。
如图2所示,图2所示原理图为例介绍一种在硬件资源有限的情况下的一种兼顾效率和存储量的数据存取方案。所述测量单元采用AD7714型A/D转换芯片,AD7714是亚德诺半导体(ADI)技术有限公司的一款A/D转换芯片,能够接受来自传感器的低电平模拟信号并产生串行数字输出,可实现最高24位无失码性能。AD7714有一个串行接口,可使用SPI通信。
所述主控单元采用STM32F103RCT6型32位ARM微控制器,STM32F103RCT6是由意法半导体(ST)公司出品的基础型32位ARM微控制器,最高工作频率72MHz。硬件资源包含256KB内部Flash、48KB的RAM、5个通用同步异步收发器、3个SPI接口。
所述存储单元采用W25Q64型SPI FLASH产品,其容量为8MB;支持SPI通信,传输速度达40MB/s,能够支持超过10万次的擦除和写入操作;数据可保存超过20年,同时W25Q64将8M字节的存储空间分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节,每个扇区分为16个页,每页256字节。W25Q64的最小擦除单位为一个扇区,支持一次性擦除一个扇区、一个32KB块、一个64KB块和全片擦除。写入单位为一个页,即1~256字节。
以水压的测量为例,MCU检测到设备入水后开始压力测量。通过压力传感器将水下压力转化为电信号输入到AD7714中并转化为24bit数据输出到MCU,MCU每隔一段时间将测量数据存储到W25Q64中。测量完成后,当MCU接收到读取数据的指令后将指定的测量数据从W25Q64中读出并输出至上位机。
实施例2:
如图3-5所示,本方案基于STM32 CubeMX和HAL库开发。STM32 CubeMX是ST推出的一款图形化配置软件。用户通过图形化的方式配置MCU的各个外设并生成相应代码(基于HAL库),后续开发只需要在CubeMX生成的代码框架中添加业务代码即可。省去了对外设的配置步骤,并且生成的代码准确性高,结构性好,大大缩短了开发周期。本发明实施例还提供了对于自容式测量设备的文件存取方法,使用上述所述的对于自容式测量设备的文件存取系统进行存取,包括:
1)文件的构建;为便于测量数据的存储和查找,将测量数据以测量文件的形式存储到flash中;
2)文件的写入;如图3,其写入过程包括:
S1:芯片上电后遍历flash,对数组flashState[]和usedFileNo[]赋值;
S2:遍历数组flashState[]和usedFileNo[],计算出一个编号最小的空的存储块和未使用的文件编号,根据计算出的存储块编号计算块首地址并赋值给currentAddress;
S3:设备入水后开始一次测量,文件编号记为当前未被使用的最小编号,文件子编号记为0并更新flashState[]和usedFileNo[]的数值;每当时间或者压力的变化满足记录条件时向flash中写入测量数据,即AD7714的输出值;
S4:在一次测量中若是向一个空的块写入则首先写入文件头,每多使用一个存储块则文件编号不变,文件子编号加1;
S5:每次写完文件头或者测量数据都要将currentAddress向后偏移,为下次写入做准备;
S6:设备出水后,一次测量结束。
3)文件的读取;如图4,其读取过程包括:
S1:设备出水后,能够通过上位机来查看先前记录的数据;
S2:上位机通过软件向设备发送读取命令,设备将通过遍历flashState[]数组来确认每个存储块的使用情况并在读取已使用存储块中的文件头信息后将其回送至上位机;
S3:由于用户在使用过程中会多次进行擦除和写入操作,因此flash的空白存储块并不一定是连续空间,文件编号也不一定为连续整数;上位机在接收到全部的文件头信息后需要按照文件头中的记录时间、文件编号和文件子编号重新排序,方便用户查看。
S4:用户选择某一次测量的文件后,上位机查询其对应的文件编号并按照文件子编号从小到大的顺序,将对应的块编号依此发送给设备;
S5:设备接收到块编号后计算存储地址,读取该地址存储的数据并发送至上位机。
4)文件的删除。
在所述文件的构建中,包括:存储块的选取;以每秒记录10次,每次测量30分钟计算,一次测量记录的数据为54000Byte,由于W25Q64仅支持单次64KB、32KB、4KB擦除,选取32K空间作为文件存储的最小单元,即每次测量消耗的flash存储空间为32K的整数倍,在不擦除flash的情况下最多能存储256组文件,能够满足大部分用户的测量需求并且不会因数据太分散导致在查找文件时耗时过多。
在所述文件的构建中,包括:文件的构成;每个文件由文件头和测量数据组成,文件头中还包含占用标志、文件编号、文件子编号、记录间隔和记录时间;每组测量数据为AD7714输出的3ByteAD值,每次测量前都选择一个未被使用的最小的文件编号,测量过程中每次向一个新的32KB存储块写入测量数据前都要写入文件头。
占用标志可以指示当前存储块是否被使用。通过文件编号可以对不同次测量所保存的文件进行区分。当一次测量的数据量过大时,一个文件会占用多个存储块。借助文件子编号可以对不连续地址的存储块进行排序,便于数据的查找。记录间隔和记录时间是测量过程中的重要参数,能够有效地辅助用户还原当时的测量场。
在所述文件的构建中,包括:关键变量的定义;
定义两个全局数组unsigned int flashState[8]和unsigned int usedFileNo[8]来分别存储flash的使用状态和文件编号的使用状态;由于存储的最大文件数和文件编号数为255,故定义长度为8的无符号整型数组,每一位即能够表示对应的块或编号的使用情况;
例如:flashState[0]==0x00000001时,第0位为1,表示第0个存储块被占用;usedFileNo[8]==0xC0000000时,第30、31位为1,表示文件编号254和255已被使用。
通过这种方式,只进行一次遍历flash即可获取各存储块和文件编号的使用情况,避免了再次写入数据时重复遍历flash,减小了时间开销。
定义一个全局变量unsigned int currentAddress,用来指示当前操作的flash地址;
定义如下结构体变量fileHead,存放文件头中包含的信息;
struct FILEHEAD
{
unsigned char flag;//写入标志
unsigned char fileNum;//文件编号
unsigned char blockNum;//文件子编号
unsigned char record; //记录间隔
unsigned int time; //RTC时间
}fileHead;
记录间隔的最高位为0表示以时间间隔记录,为1则表示以压力间隔记录。低7位表示间隔大小,单位为ms或kPa。
原始的RTC时间通过调用HAL库函数获取,年、月、日、时、分、秒均为unsigned char型。年份为设定的初始年份后经过的年份,例如初始值为2022年,经过1年时间后,年份的数值为1。考虑到设备使用寿命,用6bit位来表示年份即可,当6bit位全为1时表示设备已使用了63年。其他时间按照实际情况,各取4bit、5bit、5bit、6bit、6bit,总计32bit。将RTC时间通过位运算重新编码,存放到fileHead.time中,比直接存储原始的RTC值节省出1/3的空间。
在所述文件的删除中,如图5,其删除过程包括:
S1:接收到删除指令;
S2:检查flash存储块的使用情况,上传文件列表;
S3:接收要删除的块编号;
S4:擦除对应文件编号的所有存储块;
S5:修改文件编号和存储块的使用状态;
S6:结束。
实施例3:
文件读写演示如下:下面通过串口助手来演示文件的读取、写入和删除功能。
一、输入指令查看文件列表,如图6;
二、存储数据,文件列表如图7;
模拟一次测量后,可以看到比3.1中多出了文件编号为11的一个新的文件,并且存储在了8号存储块,同时使用块数也增加1。
三、上传指定文件;
以文件8为例,11号存储块的第一页存储的数据如下图8所示。
方框内为文件头,0x46为占用标志’F’;0x08为文件编号;0x00为文件子编号;0xf8004200为RTC时间,由于先写入的低字节,还原为unsigned int类型的数值为0x004200f8。解码后如下表所示。
年份为0b000000即0。由于RTC初始化为2000年1月1日0时0分0秒,则0代表2000年。月份为0b0001即1月份,日期为0b00001即1日;小时为0b00000即0时,分钟为0b000011即3分;秒钟为0b111000即56秒(RTC时间可由用户自行设置,此处仅做演示)。文件头之后为测量数据,每组3Byte。
存满一个存储块后再次记录测量数据前重新写入数据头,此时文件子编号加一,RTC时间更新,如下图9所示。
四、删除指定文件;
输入指令删除文件5,删除后文件列表如下图10所示;
删除完成后已经查询不到文件5,输出原文件5的存储块的数据得到全F,表示该存储块已被擦除,如图11所示。
本发明的技术方案可应用于自容式声速剖面仪、潮位仪、温盐深仪等一类水下实时测量仪器,实现数据的保存、查询及输出。整个硬件电路共有三部分组成:带有传感器的测量电路、控制程序及外围器件工作的主控电路、数据存储电路。软件方面,使用STM32CubeMX图形化界面配置MCU,Keil5对工程进行编译;使用C99标准的C语言、HAL库开发;使用ST-Link进行调试。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.对于自容式测量设备的文件存取系统,其特征在于,包括:测量单元、主控单元和存储单元;所述测量单元依次与所述主控单元和所述存储单元控制相连,外部传感器的电信号输入至所述测量单元中,所述主控单元通过串口进行收发数据至上位机。
2.如权利要求1所述的对于自容式测量设备的文件存取系统,其特征在于,所述测量单元采用AD7714型A/D转换芯片,能够接受来自传感器的低电平模拟信号并产生串行数字输出,能够实现最高24位无失码性能;同时AD7714有一个串行接口,使用SPI通信。
3.如权利要求1所述的对于自容式测量设备的文件存取系统,其特征在于,所述主控单元采用STM32F103RCT6型32位ARM微控制器,最高工作频率72MHz;硬件资源包含256KB内部Flash、48KB的RAM、5个通用同步异步收发器、3个SPI接口。
4.如权利要求1所述的对于自容式测量设备的文件存取系统,其特征在于,所述存储单元采用W25Q64型SPI FLASH产品,其容量为8MB;支持SPI通信,传输速度达40MB/s,同时W25Q64将8M字节的存储空间分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节,每个扇区分为16个页,每页256字节。
5.对于自容式测量设备的文件存取方法,使用权利要求1-4任一项所述的对于自容式测量设备的文件存取系统进行存取,其特征在于,包括:
1)文件的构建;为便于测量数据的存储和查找,将测量数据以测量文件的形式存储到flash中;
2)文件的写入;其写入过程包括:
S1:芯片上电后遍历flash,对数组flashState[]和usedFileNo[]赋值;
S2:遍历数组flashState[]和usedFileNo[],计算出一个编号最小的空的存储块和未使用的文件编号,根据计算出的存储块编号计算块首地址并赋值给currentAddress;
S3:设备入水后开始一次测量,文件编号记为当前未被使用的最小编号,文件子编号记为0并更新flashState[]和usedFileNo[]的数值;每当时间或者压力的变化满足记录条件时向flash中写入测量数据,即AD7714的输出值;
S4:在一次测量中若是向一个空的块写入则首先写入文件头,每多使用一个存储块则文件编号不变,文件子编号加1;
S5:每次写完文件头或者测量数据都要将currentAddress向后偏移,为下次写入做准备;
S6:设备出水后,一次测量结束;
3)文件的读取;其读取过程包括:
S1:设备出水后,能够通过上位机来查看先前记录的数据;
S2:上位机通过软件向设备发送读取命令,设备将通过遍历flashState[]数组来确认每个存储块的使用情况并在读取已使用存储块中的文件头信息后将其回送至上位机;
S3:上位机在接收到全部的文件头信息后需要按照文件头中的记录时间、文件编号和文件子编号重新排序,方便用户查看;
S4:用户选择某一次测量的文件后,上位机查询其对应的文件编号并按照文件子编号从小到大的顺序,将对应的块编号依此发送给设备;
S5:设备接收到块编号后计算存储地址,读取该地址存储的数据并发送至上位机;
4)文件的删除。
6.如权利要求5所述的对于自容式测量设备的文件存取方法,其特征在于,在所述文件的构建中,包括:存储块的选取;以每秒记录10次,每次测量30分钟计算,一次测量记录的数据为54000Byte,选取32K空间作为文件存储的最小单元,即每次测量消耗的flash存储空间为32K的整数倍。
7.如权利要求6所述的对于自容式测量设备的文件存取方法,其特征在于,在所述文件的构建中,包括:文件的构成;每个文件由文件头和测量数据组成,文件头中还包含占用标志、文件编号、文件子编号、记录间隔和记录时间;每组测量数据为AD7714输出的3ByteAD值,每次测量前都选择一个未被使用的最小的文件编号,测量过程中每次向一个新的32KB存储块写入测量数据前都要写入文件头。
8.如权利要求7所述的对于自容式测量设备的文件存取方法,其特征在于,在所述文件的构建中,包括:关键变量的定义;
定义两个全局数组unsigned int flashState[8]和unsigned int usedFileNo[8]来分别存储flash的使用状态和文件编号的使用状态;
定义一个全局变量unsigned int currentAddress,用来指示当前操作的flash地址;
定义体变量fileHead,存放文件头中包含的信息。
9.如权利要求8所述的对于自容式测量设备的文件存取方法,其特征在于,在所述文件的删除中,其删除过程包括:
S1:接收到删除指令;
S2:检查flash存储块的使用情况,上传文件列表;
S3:接收要删除的块编号;
S4:擦除对应文件编号的所有存储块;
S5:修改文件编号和存储块的使用状态;
S6:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211557086.9A CN116301579B (zh) | 2022-12-06 | 2022-12-06 | 对于自容式测量设备的文件存取系统及其存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211557086.9A CN116301579B (zh) | 2022-12-06 | 2022-12-06 | 对于自容式测量设备的文件存取系统及其存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116301579A true CN116301579A (zh) | 2023-06-23 |
CN116301579B CN116301579B (zh) | 2024-01-12 |
Family
ID=86822792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211557086.9A Active CN116301579B (zh) | 2022-12-06 | 2022-12-06 | 对于自容式测量设备的文件存取系统及其存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301579B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805049A (zh) * | 2005-11-22 | 2006-07-19 | 武汉国光通信有限公司 | 一种嵌入式系统中非易失性存储器的数据存取方法 |
US20070244374A1 (en) * | 2006-04-12 | 2007-10-18 | Vyssotski Alexei L | Integrated self-contained recorder of biological data for small animal research |
CN102323907A (zh) * | 2011-08-19 | 2012-01-18 | 长安大学 | 嵌入式arm处理器对nandflash数据存储和删除方法 |
KR20130090853A (ko) * | 2013-05-29 | 2013-08-14 | 소테리아 시큐리티 인코퍼레이티드 | 정보 보호 장치 및 방법 |
CN104090987A (zh) * | 2014-07-28 | 2014-10-08 | 华中科技大学 | 一种历史数据存储及索引方法 |
CN110096235A (zh) * | 2019-04-30 | 2019-08-06 | 自然资源部第一海洋研究所 | 一种面向自容式应用的数据存储方法及存储系统 |
CN110955447A (zh) * | 2019-11-14 | 2020-04-03 | 北京航天时代激光导航技术有限责任公司 | 一种基于烧写模块的激光惯组系数多扇区烧写及校验方法 |
CN113485180A (zh) * | 2021-06-29 | 2021-10-08 | 中国人民解放军91550部队 | 一种自容式多通道瞬态噪声测量系统 |
-
2022
- 2022-12-06 CN CN202211557086.9A patent/CN116301579B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805049A (zh) * | 2005-11-22 | 2006-07-19 | 武汉国光通信有限公司 | 一种嵌入式系统中非易失性存储器的数据存取方法 |
US20070244374A1 (en) * | 2006-04-12 | 2007-10-18 | Vyssotski Alexei L | Integrated self-contained recorder of biological data for small animal research |
CN102323907A (zh) * | 2011-08-19 | 2012-01-18 | 长安大学 | 嵌入式arm处理器对nandflash数据存储和删除方法 |
KR20130090853A (ko) * | 2013-05-29 | 2013-08-14 | 소테리아 시큐리티 인코퍼레이티드 | 정보 보호 장치 및 방법 |
CN104090987A (zh) * | 2014-07-28 | 2014-10-08 | 华中科技大学 | 一种历史数据存储及索引方法 |
CN110096235A (zh) * | 2019-04-30 | 2019-08-06 | 自然资源部第一海洋研究所 | 一种面向自容式应用的数据存储方法及存储系统 |
CN110955447A (zh) * | 2019-11-14 | 2020-04-03 | 北京航天时代激光导航技术有限责任公司 | 一种基于烧写模块的激光惯组系数多扇区烧写及校验方法 |
CN113485180A (zh) * | 2021-06-29 | 2021-10-08 | 中国人民解放军91550部队 | 一种自容式多通道瞬态噪声测量系统 |
Non-Patent Citations (3)
Title |
---|
刘会忠等: ""嵌入式系统中Flash文件系统算法"", 《嵌入式系统中FLASH文件系统算法》 * |
刘朋;夏伯锴;: "嵌入式设备数据文件管理系统设计", 电测与仪表, no. 08 * |
刘长虹;: "海流传感器信号采集系统的设计", 电子世界, no. 12, pages 122 - 123 * |
Also Published As
Publication number | Publication date |
---|---|
CN116301579B (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161225B2 (en) | Semiconductor memory card, access device and method | |
US8516219B2 (en) | Index cache tree | |
US9454319B2 (en) | Storage system data hardening | |
TWI306263B (zh) | ||
US5905993A (en) | Flash memory card with block memory address arrangement | |
US20110047347A1 (en) | Mapping alignment | |
EP2096546B1 (en) | Write once recording device | |
JP2734391B2 (ja) | 不揮発性メモリのファイル管理装置 | |
KR20180131475A (ko) | 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리 | |
WO2004084074A1 (ja) | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム | |
CN1320242A (zh) | 记录系统、数据记录设备、存储设备和数据记录方法 | |
JPH05204561A (ja) | フラッシュメモリを記憶媒体とした半導体ディスク | |
JP3421581B2 (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
CN109491588A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN1319205A (zh) | 记录系统、数据记录设备、存储设备和数据记录方法 | |
CN111538680A (zh) | 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流 | |
CN109976664A (zh) | 固态存储设备的日志数据组织 | |
CN116301579B (zh) | 对于自容式测量设备的文件存取系统及其存取方法 | |
CN114036079B (zh) | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 | |
CN109840218A (zh) | 有效数据管理方法以及存储控制器 | |
US20040019761A1 (en) | Flash storage medium having a NAND-type flash memory | |
US20040128330A1 (en) | Real time data compression method and apparatus for a data recorder | |
Lantsev et al. | Methods of increasing the reliability of external memory of digital substation bay controllers | |
CN114780461B (zh) | 单片机参数的存储方法、装置和电子设备 | |
CN113419674B (zh) | 数据编程管理方法、存储器及其控制器,以及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |