WO2018166179A1 - 一种基于sd卡的高速数据存储方法 - Google Patents

一种基于sd卡的高速数据存储方法 Download PDF

Info

Publication number
WO2018166179A1
WO2018166179A1 PCT/CN2017/104199 CN2017104199W WO2018166179A1 WO 2018166179 A1 WO2018166179 A1 WO 2018166179A1 CN 2017104199 W CN2017104199 W CN 2017104199W WO 2018166179 A1 WO2018166179 A1 WO 2018166179A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
card
speed
read
buffer
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.)
Ceased
Application number
PCT/CN2017/104199
Other languages
English (en)
French (fr)
Inventor
王永
王哲
历洪宇
周峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to US15/772,496 priority Critical patent/US11126382B2/en
Publication of WO2018166179A1 publication Critical patent/WO2018166179A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C21/00Digital stores in which the information circulates continuously
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Definitions

  • the specific process is: sequentially reading the data of the first BLOCK in the first SD card, the data of the first BLOCK in the second SD card, ..., The data of the first BLOCK in the Nth SD card; then the next read cycle, sequentially reading the data of the second BLOCK in the first SD card, and the second BLOCK in the second SD card Data, ..., the second BLOCK data in the Nth SD card, and so on; through the above operations, the data is read out in the order of its arrangement in the high-speed serial signal, and stored in the total SD card , complete the integrated storage of data.
  • the data is stored in N SD cards in the storage process of the data. In order to facilitate the processing and application of the later data, the data is integrated in the original arrangement order.
  • A6 pull up the chip select signal CS, and exit the initialization operation
  • the corresponding file system data needs to be written on the SD, and the amount of data to be stored, the starting position of the data storage, the file name, and the like are passed through the FAT table.
  • the form is written to the SD card with a write command.
  • the commands used by the file system are the same as those used to write file data.
  • write the root directory contents using a single block write command and then use the continuous block write command to write the file FAT content.
  • the SD card-based high-speed data storage method as described in Embodiment 1 is different in that the data in the N buffer segments are respectively written into the corresponding N SD cards, and the data storage is implemented by using 4-bit-SD. process.

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一种基于SD卡的高速数据存储方法,该方法将高速数据码流分割成多个依次排列的数据块,将数据块依次写入一个环形缓存中。环形缓存由N个缓存段构成,N个缓存段共用一个写指针,每个缓存段拥有独立的读指针。将数据块依次写入N个缓存段中,当第N个缓存段写完数据时,再继续往第1个缓存段中写数据,依次循环。每一个缓存段写完后,再以较低的速率从该缓存段中读数据并写入对应的SD卡,从而完成数据的降速。当数据采集工作完成后,控制器将打乱的数据遵从原来的排列顺序整合到同一个SD卡中,完成数据的全部存储工作。

Description

一种基于SD卡的高速数据存储方法 技术领域
本发明涉及一种基于SD卡的高速数据存储方法,属于数据存储的技术领域。
背景技术
随着现代社会信息化程度的快速提高,各种移动设备对存储单元的速度与容量的要求越来越高。例如在导航系统中,民用北斗二代的中频信号数据码流达到64Mb/S,北斗一代的中频信号数据码流达到200Mb/S。其他如高清监控、高清数码摄像、高速通信等设备也都需要一个高速的数据存储系统来存放采集到的信息。现在比较通用的固态硬盘等存储介质虽然存储速度相对较高,但是硬盘的数据处理都需要基于计算机系统,计算机系统一般通过主机及硬盘完成信号的转换、处理和存储工作,显然增加了主机的操作,并且不方便携带。广泛应用于手机、数码相机的SD卡作为一种基于半导体快闪记忆器的新一代低成本记忆设备,具有便携性好,控制系统完全依赖于计算机的特点,但是其存储速度一般在50Mb/S以下,存储速度不能满足高速数据码流系统的要求。
中国专利CN202720628U公开了一种基于固态硬盘的高速存储系统。包括硬盘阵列、SATARAID控制器和上位机。该存储系统利用固态硬盘独有的物理特性和环境特性扩大存储系统的应用范围,采用SATARAID控制技术扩展存储容量和速度。该高速存储系统可能较好的实现对高速码流数据的存储,但是该装置光是硬件设施就需要硬盘、控制器、上位机等,成本较高,便携性较差,可能无法很好的适应现有技术新的发展需求。
发明内容
针对现有技术的不足,本发明提供一种基于SD卡的高速数据存储方法。
发明概述:
本发明的存储方法旨在存储高速的数据码流,采用环形缓存以串并转换的方式完成利用低速设备存储高速数据,即将一路高速串行的数据码流转换成多路并行的数据码流,完成数据的降速。
本发明的技术方案将高速数据码流分割成多个依次排列的数据块,将数据块依次写入一个环形缓存中。环形缓存由N个缓存段构成,N个缓存段共用一个写指针,每个缓存段拥有独立的读指针。将数据块依次写入N个缓存段中,当第N个缓存段写完数据时,再继续往第 1个缓存段中写数据,依次循环。每一个缓存段写完后,再以较低的速率从该缓存段中读数据并写入对应的SD卡,从而完成数据的降速。当数据采集工作完成后,控制器将打乱的数据遵从原来的排列顺序整合到同一个SD卡中,完成数据的全部存储工作。
术语说明:
FIFO:First Input First Output的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
本发明的技术方案为:
一种基于SD卡的高速数据存储方法,包括步骤如下:
1)将高速串行信号分割成N个规格为8bit×512的数据块,把N个数据块对应写入N个缓存段中,所述的N个缓存段呈环形首尾相接排列;每个缓存段的位宽为8bit,深度为512;
2)读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡,完成数据降速;
3)分别读取N个SD卡中的数据;具体过程为,依次读取第1个SD卡中的第一个BLOCK的数据、第2个SD卡中的第一个BLOCK的数据、…、第N个SD卡中的第一个BLOCK的数据;然后进行下一个读取循环,依次读取第1个SD卡中的第二个BLOCK的数据、第2个SD卡中的第二个BLOCK的数据、…、第N个SD卡中的第二个BLOCK的数据,以此类推;通过上述操作把数据按照其在高速串行信号中的排列顺序读取出来,并存入总SD卡中,完成数据的整合存储。在数据的存储过程中将数据分别存储到N个SD卡中,为了便于后期数据的处理和应用,将这些数据按照原来的排列顺序整合到一起。
根据本发明优选的,所述步骤1)中,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,对SD卡的操作过程包括:初始化和写操作:
A、初始化:
A1、设置SD卡的上电延时至少为74clock;上电时要延时足够长的时间给SD卡一个准备过程,根据不同的卡设置不同的延时时间;
A2、拉低片选信号CS,选中SD卡;所谓片选信号,指的是传统南北桥架构的主板中,地址线和数据线分开的BIOS芯片里的22脚的信号。它是由CPU发出,经北桥,南桥到达。该信号的有无可以初步判断南北桥的及CPU是否开始工作,BIOS资料是否被破坏。
A3、发送CMD0命令,SD卡返回0x01后进入Idle状态;
A4、首先向SD卡发送CMD8命令,如果CMD8返回无错误,则初步判断SD卡为SD2.0卡,循环发送CMD55+ACMD41,直到返回0x00,确定SD2.0卡初始化成功,进入Ready状态;进而 发送CMD58命令判断是HCSD还是SCSD;
为了区别SD卡的版本是SD2.0还是SD1.0,或是MMC卡,考虑到协议是向上兼容的,首先发送只有SD2.0支持的命令CMD8,如果CMD8返回无错误,则为SD2.0卡。
A5、向SD卡发送CMD8命令,如果返回错误,则循环发送CMD55+ACMD41;如果循环发送CMD55+ACMD41a次后,无返回错误,则判定SD卡为SD1.0卡,至此SD1.0卡初始化成功;
如果循环发送CMD55+ACMD41a次后,返回错误,则进一步发送CMD1进行初始化;如果CMD1返回无错误,则判定SD卡为MMC卡;如果CMD1返回错误,则不能识别该SD卡;
A6、拉高片选信号CS,退出初始化操作;
B、写操作:
B1、发送CMD24或CMD25命令,返回0x00;
B2、发送数据开始令牌0xfe+正式数据512Bytes+CRC校验2Bytes;默认开始传输的数据长度为512Bytes,通过CMD16设置数据块的长度;
所述步骤3)中,分别读取N个SD卡中的数据的步骤中,对SD卡的操作过程包括读操作:
C、读操作:
C1、发送CMD17或CMD18读命令,返回0x00;
C2、接收数据开始令牌0xfe或0xfc+正式数据512Bytes+CRC校验2Bytes。读操作即将存储数据的N个SD卡绕总SD卡一圈,依次按顺时针方向从N个SD卡中读取数据,读操作相当于写操作的逆过程,读操作不再有速度的限制。最终,在总SD卡中得到按照数据最初排列顺序排列的数据,完成了数据的整个采集过程。
进一步优选的,所述步骤A5中循环发送CMD55+ACMD41的次数a=3~90。
根据本发明优选的,所述步骤1)中,把N个数据块对应写入N个缓存段使用的指针为写指针,写指针唯一;所述步骤2)中,读取缓存段中的数据使用的指针为读指针,读指针的个数为N个;N个缓存段交替进行数据块写入操作,在同一时刻,只有一个缓存段进行数据块写入操作,写指针循环地向N个缓存段中写入数据块;每个缓存段内写入512×8bit的数据后,读指针开始读取缓存段中的数据,读取缓存段中数据的过程在N个缓存段内同时进行。写指针在系统工作期间不间断地将数据写入环形缓存;读指针的个数由系统的存储速度和存储容量决定,N个读指针可以实现N倍降速。只要缓存段写够512×8bit的数据,就可以开始读取数据并向SD卡存储,不需要等后面的缓存段写够512×8bit的数据。例如,当第一个缓存段写够512×8bit的数据时,开始往第二个缓存段写数据,与此同时,开始读取第 一个缓存段的数据,并向SD卡存储。
进一步优选的,把N个数据块对应写入N个缓存段的时钟与读取缓存段中数据的时钟速度比为N:1。为了将读写数据的速度相匹配,将读写数据的时钟设置为N比1。
根据本发明优选的,所述步骤1)之前还包括将输入信号整合成8bit高速串行信号的步骤。通过此步骤将普通的输入信号整合成一组8bit的高速串行的数字信号。在SD卡中的数据是以BLOCK(512x8bit)的形式存储的,如果输入信号是4bit的高速信号,为了便于存储,首先要将4bit的输入信号整合成8bit的串行信号,得到一组8bit的高速串行的数字信号。
根据本发明优选的,所述SD卡和总SD卡均为SDHC卡。假设导航中频信号的频率为200Mb/s,采集数据的时长是5min,则200Mb/s×5min,大概需要6G的存储空间;SDHC卡能满足该方案的存储要求。
根据本发明优选的,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,选用4bit-SD实现数据的存储过程。SD卡读写包括两种模式:SD模式和SPI模式。其中SD模式又可以分为1bit和4bit两种传输模式。SD卡缺省使用专有的SD模式。
根据本发明优选的,本发明所述基于SD卡的高速数据存储方法基于FPGA实现。FPGA即现场可编程门阵列,通过硬件描述语言(Verilog或VHDL)所完成电路设计,进行控制信号的处理,其功能类似于单片机、ARM等器件,它的特点是以并行运算为主。
进一步优选的,所述步骤2)中,读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡的具体方法为,将N个缓存段的数据读取端口分别接到N个SD卡控制器的数据输入端口,将N个缓存段中的数据分别写入对应的N个SD卡;所述的SD卡控制器通过FPGA实现。所述的SD卡控制器相当于用电脑读取SD卡时的读卡器。
根据本发明优选的,所述步骤1)中的高速串行信号是指数据码流速度大于300Mb/s的串行信号。
根据本发明优选的,N≥3。N的数目由存储速度决定,SD卡的写入速率约为50Mb/s左右,如果要存一个码流速度为300Mb/s的信号,则N至少为6,如果要存一个码流速度为500Mb/s的信号,N至少为10。
根据本发明优选的,所述缓存段为FIFO。
为了便于数据在PC机上进行后期的操作和处理,除了数据之外需要在SD上写入对应的文件系统数据,即将存入数据的量、数据存储的起始位置、文件名等信息通过FAT表的形式用写命令写入SD卡中。文件系统用到的命令和写文件数据用到的命令相同,先使用单块写命令写文件根目录内容,再使用连续块写命令写文件FAT内容。在写根目录内容之前,需要计 算出文件的大小,并将文件大小以及文件的起始簇号写入根目录属性中。
本发明的有益效果为:
1.本发明所述基于SD卡的高速数据存储方法,将多个SD卡扩展成一个虚拟超级存储卡,实现多个SD卡存储速度与存储容量的叠加,实现了低速存储设备对高速码流的存储;既降低了存储系统成本,又提升了存储系统的便携性和灵活性;
2.本发明所述基于SD卡的高速数据存储方法,对数据的存储速度随着SD卡数目的增加而提高;而且具有良好的抗震性和便携性,可以实现户外的应用。
附图说明
图1为本发明所述SD卡和总SD卡的整体框架示意图;
图2为本发明所述SD卡的初始化流程;
图3为本发明所述SD卡的写操作流程图;
图4为本发明所述SD卡的读操作流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
如图1-4所示。
一种基于SD卡的高速数据存储方法,对一路300Mb/s的数据码流进行存储,包括步骤如下:
1)将高速串行信号分割成N个规格为8bit×512的数据块,把N个数据块对应写入N个缓存段中,所述的N个缓存段呈环形首尾相接排列;每个缓存段的位宽为8bit,深度为512;N=6;
2)读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡,完成数据降速;
3)分别读取N个SD卡中的数据;具体过程为,依次读取第1个SD卡中的第一个BLOCK的数据、第2个SD卡中的第一个BLOCK的数据、…、第N个SD卡中的第一个BLOCK的数据;然后进行下一个读取循环,依次读取第1个SD卡中的第二个BLOCK的数据、第2个SD卡中的第二个BLOCK的数据、…、第N个SD卡中的第二个BLOCK的数据,以此类推;通过上述操作把数据按照其在高速串行信号中的排列顺序读取出来,并存入总SD卡中,完成数据的整合存储。在数据的存储过程中将数据分别存储到N个SD卡中,为了便于后期数据的处理和应用,将这些数据按照原来的排列顺序整合到一起。
将300Mb/s的数据码流转换变成6路并行的50Ms/s的码流(当前SD卡的写入速度能达到50Mb/s),从而实现通过低速设备存储高速数据的工作。
实施例2
如实施例1所述的基于SD卡的高速数据存储方法,对一路200Mb/s的数据码流进行存储,所不同的是,N=4。
实施例3
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤1)中,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,对SD卡的操作过程包括:初始化和写操作:
A、初始化:
A1、设置SD卡的上电延时为80clock;
A2、拉低片选信号CS,选中SD卡;
A3、发送CMD0命令,SD卡返回0x01后进入Idle状态;
A4、首先向SD卡发送CMD8命令,如果CMD8返回无错误,则初步判断SD卡为SD2.0卡,循环发送CMD55+ACMD41,直到返回0x00,确定SD2.0卡初始化成功,进入Ready状态;进而发送CMD58命令判断是HCSD还是SCSD;
为了区别SD卡的版本是SD2.0还是SD1.0,或是MMC卡,考虑到协议是向上兼容的,首先发送只有SD2.0支持的命令CMD8,如果CMD8返回无错误,则为SD2.0卡。
A5、向SD卡发送CMD8命令,如果返回错误,则循环发送CMD55+ACMD41;如果循环发送CMD55+ACMD41a次后,无返回错误,则判定SD卡为SD1.0卡,至此SD1.0卡初始化成功;a=20;
如果循环发送CMD55+ACMD41a次后,返回错误,则进一步发送CMD1进行初始化;如果CMD1返回无错误,则判定SD卡为MMC卡;如果CMD1返回错误,则不能识别该SD卡;
A6、拉高片选信号CS,退出初始化操作;
B、写操作:
B1、发送CMD24命令,返回0x00;
B2、发送数据开始令牌0xfe+正式数据512Bytes+CRC校验2Bytes;默认开始传输的数据长度为512Bytes,通过CMD16设置数据块的长度;
所述步骤3)中,分别读取N个SD卡中的数据的步骤中,对SD卡的操作过程包括读操作:
C、读操作:
C1、发送CMD17读命令,返回0x00;
C2、接收数据开始令牌0xfe或0xfc+正式数据512Bytes+CRC校验2Bytes。读操作即将存储数据的N个SD卡绕总SD卡一圈,依次按顺时针方向从N个SD卡中读取数据,读操作相当于写操作的逆过程,读操作不再有速度的限制。最终,在总SD卡中得到按照数据最初排列顺序排列的数据,完成了数据的整个采集过程。
实施例4
如实施例3所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤B1发送的为CMD25命令;所述C1发送的为CMD18读命令。
实施例5
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤1)中,把N个数据块对应写入N个缓存段使用的指针为写指针,写指针唯一;所述步骤2)中,读取缓存段中的数据使用的指针为读指针,读指针的个数为N个;N个缓存段交替进行数据块写入操作,在同一时刻,只有一个缓存段进行数据块写入操作,写指针循环地向N个缓存段中写入数据块;每个缓存段内写入512×8bit的数据后,读指针开始读取缓存段中的数据,读取缓存段中数据的过程在N个缓存段内同时进行。即,当第一个缓存段写够512×8bit的数据时,开始往第二个缓存段写数据,与此同时,开始读取第一个缓存段的数据,并向SD卡存储。
写指针在系统工作期间不间断地将数据写入环形缓存;读指针的个数由系统的存储速度和存储容量决定,N个读指针可以实现N倍降速。只要缓存段写够512×8bit的数据,就可以开始读取数据并向SD卡存储,不需要等后面的缓存段写够512×8bit的数据。
实施例6
如实施例5所述的基于SD卡的高速数据存储方法,所不同的是,把N个数据块对应写入N个缓存段的时钟与读取缓存段中数据的时钟速度比为N:1。为了将读写数据的速度相匹配,将读写数据的时钟设置为N比1。
实施例7
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤1)之前还包括将输入信号整合成8bit高速串行信号的步骤。通过此步骤将普通的输入信号整合成一组8bit的高速串行的数字信号。在SD卡中的数据是以BLOCK(512×8bit)的形式存储的,如果输入信号是4bit的高速信号,为了便于存储,首先要将4bit的输入信号整合成8bit的串行信号,得到一组8bit的高速串行的数字信号。
实施例8
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述SD卡和总SD卡均为SDHC卡。假设导航中频信号的频率为200Mb/s,采集数据的时长是5min,则200Mb/s×5min,大概需要6G的存储空间;SDHC卡能满足该方案的存储要求。
实施例9
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,选用4bit-SD实现数据的存储过程。
实施例10
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,本发明所述基于SD卡的高速数据存储方法基于FPGA实现。
实施例11
如实施例10所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤2)中,读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡的具体方法为,将N个缓存段的数据读取端口分别接到N个SD卡控制器的数据输入端口,将N个缓存段中的数据分别写入对应的N个SD卡;所述的SD卡控制器通过FPGA实现。所述的SD卡控制器相当于用电脑读取SD卡时的读卡器。
实施例12
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述步骤1)中的高速串行信号的数据码流速度大于300Mb/s。
实施例13
如实施例1所述的基于SD卡的高速数据存储方法,所不同的是,所述缓存段为FIFO。
经实施例1-13验证,当采用4个SD卡时,数据采集系统的数据采集速率能达到200Mb/s;当采用6个SD卡时,数据采集系统的数据采集速率能达到300Mb/s。而传统的使用SD卡的方案进行数据时,最大的数据采集速率仅为50Mb/s,由此可见,基于SD卡的高速数据存储方法大大的提高了数据存储速率,能很好的满足高速数据码流的存储要求。

Claims (10)

  1. 一种基于SD卡的高速数据存储方法,其特征在于,包括步骤如下:
    1)将高速串行信号分割成N个规格为8bit×512的数据块,把N个数据块对应写入N个缓存段中,所述的N个缓存段呈环形首尾相接排列;每个缓存段的位宽为8bit,深度为512;
    2)读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡,完成数据降速;
    3)分别读取N个SD卡中的数据;具体过程为,依次读取第1个SD卡中的第一个BLOCK的数据、第2个SD卡中的第一个BLOCK的数据、…、第N个SD卡中的第一个BLOCK的数据;然后进行下一个读取循环,依次读取第1个SD卡中的第二个BLOCK的数据、第2个SD卡中的第二个BLOCK的数据、…、第N个SD卡中的第二个BLOCK的数据,以此类推;通过上述操作把数据按照其在高速串行信号中的排列顺序读取出来,并存入总SD卡中,完成数据的整合存储。
  2. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,所述步骤1)中,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,对SD卡的操作过程包括:初始化和写操作:
    A、初始化:
    A1、设置SD卡的上电延时至少为74clock;
    A2、拉低片选信号CS,选中SD卡;
    A3、发送CMD0命令,SD卡返回0x01后进入Idle状态;
    A4、首先向SD卡发送CMD8命令,如果CMD8返回无错误,则初步判断SD卡为SD2.0卡,循环发送CMD55+ACMD41,直到返回0x00,确定SD2.0卡初始化成功,进入Ready状态;进而发送CMD58命令判断是HCSD还是SCSD;
    A5、向SD卡发送CMD8命令,如果返回错误,则循环发送CMD55+ACMD41;如果循环发送CMD55+ACMD41a次后,无返回错误,则判定SD卡为SD1.0卡,至此SD1.0卡初始化成功;
    如果循环发送CMD55+ACMD41a次后,返回错误,则进一步发送CMD1进行初始化;如果CMD1返回无错误,则判定SD卡为MMC卡;如果CMD1返回错误,则不能识别该SD卡;
    A6、拉高片选信号CS,退出初始化操作;
    B、写操作:
    B1、发送CMD24或CMD25命令,返回0x00;
    B2、发送数据开始令牌0xfe+正式数据512Bytes+CRC校验2Bytes;默认开始传输的数 据长度为512Bytes,通过CMD16设置数据块的长度;
    所述步骤3)中,分别读取N个SD卡中的数据的步骤中,对SD卡的操作过程包括读操作:
    C、读操作:
    C1、发送CMD17或CMD18读命令,返回0x00;
    C2、接收数据开始令牌0xfe或0xfc+正式数据512Bytes+CRC校验2Bytes。
  3. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,所述步骤1)中,把N个数据块对应写入N个缓存段使用的指针为写指针,写指针唯一;所述步骤2)中,读取缓存段中的数据使用的指针为读指针,读指针的个数为N个;N个缓存段交替进行数据块写入操作,在同一时刻,只有一个缓存段进行数据块写入操作,写指针循环地向N个缓存段中写入数据块;每个缓存段内写入512×8bit的数据后,读指针开始读取缓存段中的数据,读取缓存段中数据的过程在N个缓存段内同时进行。
  4. 根据权利要求3所述的基于SD卡的高速数据存储方法,其特征在于,把N个数据块对应写入N个缓存段的时钟与读取缓存段中数据的时钟速度比为N:1。
  5. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,所述步骤1)之前还包括将输入信号整合成8bit高速串行信号的步骤。
  6. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,所述SD卡和总SD卡均为SDHC卡。
  7. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,将N个缓存段中的数据分别写入对应的N个SD卡的步骤中,选用4bit-SD实现数据的存储过程。
  8. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,本发明所述基于SD卡的高速数据存储方法基于FPGA实现。
  9. 根据权利要求8所述的基于SD卡的高速数据存储方法,其特征在于,所述步骤2)中,读取环形缓存段中的数据,将N个缓存段中的数据分别写入对应的N个SD卡的具体方法为,将N个缓存段的数据读取端口分别接到N个SD卡控制器的数据输入端口,将N个缓存段中的数据分别写入对应的N个SD卡;所述的SD卡控制器通过FPGA实现。
  10. 根据权利要求1所述的基于SD卡的高速数据存储方法,其特征在于,所述缓存段为FIFO。
PCT/CN2017/104199 2017-03-16 2017-09-29 一种基于sd卡的高速数据存储方法 Ceased WO2018166179A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/772,496 US11126382B2 (en) 2017-03-16 2017-09-29 SD card-based high-speed data storage method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710157667.6A CN107102818A (zh) 2017-03-16 2017-03-16 一种基于sd卡的高速数据存储方法
CN201710157667.6 2017-03-16

Publications (1)

Publication Number Publication Date
WO2018166179A1 true WO2018166179A1 (zh) 2018-09-20

Family

ID=59675859

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/104199 Ceased WO2018166179A1 (zh) 2017-03-16 2017-09-29 一种基于sd卡的高速数据存储方法

Country Status (3)

Country Link
US (1) US11126382B2 (zh)
CN (1) CN107102818A (zh)
WO (1) WO2018166179A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102818A (zh) * 2017-03-16 2017-08-29 山东大学 一种基于sd卡的高速数据存储方法
CN108153490A (zh) * 2017-12-21 2018-06-12 上海禾赛光电科技有限公司 用于socfpga的数据循环缓冲方法及装置、存储介质、终端
CN111782132B (zh) * 2019-04-03 2025-02-21 北京沃东天骏信息技术有限公司 一种数据读写方法、装置及其存储介质
CN110096235B (zh) * 2019-04-30 2020-06-30 自然资源部第一海洋研究所 一种面向自容式应用的数据存储方法及存储系统
CN112305961B (zh) * 2020-10-19 2022-04-12 武汉大学 新型信号探测采集设备
CN121722335A (zh) * 2026-02-26 2026-03-24 凯云联创(北京)科技有限公司 高速仿真数据自适应数据处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101069167A (zh) * 2004-10-01 2007-11-07 松下电器产业株式会社 存储卡控制器、存储卡驱动设备、以及计算机程序
CN101561888A (zh) * 2009-05-12 2009-10-21 苏州国芯科技有限公司 一种实时加密sd卡及高速加解密方法
CN104811643A (zh) * 2015-04-27 2015-07-29 哈尔滨工程大学 基于sd卡阵列的图像数据高速存储系统
CN107102818A (zh) * 2017-03-16 2017-08-29 山东大学 一种基于sd卡的高速数据存储方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI237261B (en) * 2004-06-16 2005-08-01 Himax Tech Inc Method for accessing a single port memory
US8225006B1 (en) * 2007-08-30 2012-07-17 Virident Systems, Inc. Methods for data redundancy across three or more storage devices
US8689042B1 (en) * 2007-08-30 2014-04-01 Virident Systems, Inc. Methods for data redundancy across replaceable non-volatile memory storage devices
KR101297563B1 (ko) * 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
CN103593315A (zh) * 2013-11-20 2014-02-19 中国船舶重工集团公司第七二四研究所 一种基于fpga的直接多块硬盘高速并行读写方法
KR20150067583A (ko) * 2013-12-10 2015-06-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
CN105355223A (zh) * 2015-10-27 2016-02-24 肖瑞 新型无线音频播放系统及其初始化方法
CN105718219B (zh) * 2016-01-19 2018-12-04 浙江大学 基于usb3.0的高速数据传输存储的方法与模块

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101069167A (zh) * 2004-10-01 2007-11-07 松下电器产业株式会社 存储卡控制器、存储卡驱动设备、以及计算机程序
CN101561888A (zh) * 2009-05-12 2009-10-21 苏州国芯科技有限公司 一种实时加密sd卡及高速加解密方法
CN104811643A (zh) * 2015-04-27 2015-07-29 哈尔滨工程大学 基于sd卡阵列的图像数据高速存储系统
CN107102818A (zh) * 2017-03-16 2017-08-29 山东大学 一种基于sd卡的高速数据存储方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HOU, GUANGQI ET AL.: "Study of Multi-Channel High-Speed Embedded Image Capture and Storage System", CHINESE JOURNAL OF SCIENTIFIC INSTRUMENT, vol. 32, no. 11, 30 November 2011 (2011-11-30), pages 2543 - 2548 *

Also Published As

Publication number Publication date
US20200264811A1 (en) 2020-08-20
US11126382B2 (en) 2021-09-21
CN107102818A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
WO2018166179A1 (zh) 一种基于sd卡的高速数据存储方法
EP3493066B1 (en) Apparatus and method to provide cache move with non-volatile mass memory system
US8200862B2 (en) Low-power USB flash card reader using bulk-pipe streaming with UAS command re-ordering and channel separation
US9734118B2 (en) Serial bus interface to enable high-performance and energy-efficient data logging
JP2015201234A (ja) ホストシステム及びホストコントローラ
CN101013351A (zh) 硬盘驱动器高速缓存存储器及重放装置
US7707321B2 (en) Chained DMA for low-power extended USB flash device without polling
CN119271429B (zh) 实现内存共享控制的方法、设备、计算机设备和系统
CN111475436A (zh) 一种基于pcie交换网络的嵌入式高速sata存储阵列系统
JPS617967A (ja) I/oコントロ−ラ
JP2011517789A (ja) 直接実行制御機能とストレージ機能が複合された大容量保存装置
CN102652313A (zh) 闪速存储器控制器
CN108536623A (zh) 多通道NAND Flash控制器及移动存储设备
CN114860158A (zh) 一种高速数据采集记录方法
CN104394371B (zh) 一种适合大量连续图像采集和快速存储的系统
TW202011204A (zh) 快閃記憶體控制器及方法
CN109840233A (zh) 基于fpga的60x总线桥接系统、方法及介质
CN201218944Y (zh) 双口ram实现闪存控制器缓存的结构
CN107729269A (zh) 一种NANDFlash到FPGA内部块RAM的缓存方法
CN112416815A (zh) 一种基于srio的高速存储回放方法
CN203192416U (zh) 一种基于FPGA实现多片Nandflash存储及读取的装置
TWI742565B (zh) 記憶體裝置、電子裝置以及與其相關的讀取方法
CN120469938B (zh) 一种基于FPGA和PCIe Switch的多盘存储控制方法、系统
Li et al. The research and implementation of airborne flight data recorder based on STM32
CN202404571U (zh) 基于nand的高速fmc存储模块

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17901063

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17901063

Country of ref document: EP

Kind code of ref document: A1