SD存储

2024-05-01

SD存储(精选五篇)

SD存储 篇1

随着信息社会的发展, 越来越多的信息被数据化, 如何将大量数据快速高效的存储在设备上也就变得越来越来重要。在所有数据分类中图形图像数据所占空间尤其大, 因此对这类数据的存储研究也日益成为热点。而嵌入式操作系统和大规模现场可编程器件FPGA的普及为图像存储技术发展提供了新的方向[1]。

F P G A可实现绝大部分数字电路设计, 将所需的功能直接整合在FPGA的设计中, 因此可大大减小处理器外围扩展电路数目, 降低外围电路和布局走线复杂度, 减少影响高速信号完整性的因素, 提高系统的抗干扰能力[2,3,4]。S O P C是一个强大的系统开发工具。S O P C Builder可以帮助用户定义并产生一个完整的SOPC, 它比传统的手动集成方式要方便得多[5,6]。SD卡是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件, 具有容量高、价格便宜等优点, 所以我们使用SD卡来存储视频的数据信息。

本文利用FPGA速度快、存储量大、具有可编程性等特点, 将接收到的视频数据通过外围AD模块, 将PAL格式转换为YCbCr格式, 再通过程序设计将YCbCr格式转换成RGB格式, 利用SOPC定制一个CPU, 用FIFO控制器、DMA控制器等IP核, 来控制SD卡数据的读写, 实现SD卡数据的高速读写, 达到数据存储的目的。

2 视频数据信息处理

因为使用的是C C D摄像头, 输出的视频格式为PAL, 通过DE2上的ADV7181视频解码芯片将PAL的模拟视频数据进行解码, 芯片A D V 7 1 8 1的数字输出为16位或8位的、与CCIR656标准兼容的YCbCr4:2:2视频数据, 还包括垂直同步VS、水平同步HS及场同步等信号。然后将数据交由F P G A进行处理, 首先将YCbCr4:2:2转换成YCbCr4:4:4, 再将YCbCr4:4:4转换为R G B格式, 再存入到S D卡中。整个处理过程Verilog实现代码如下:

程序中将系数先乘以512, 所以得到上面596、0、8 1 7等系数, 按5 1 2计算应该将X_O U T、Y_O U T、Z_OUT都向右移9位, 实现除以512的功能, 但因为输入的YCbCr信号只有8位, 所以在缩小的时候只需要右移7位即可。乘累加通过调用QuartusII自带的乘累加IP核实现, 最终实现的框图如图1所示。

3 FPGA控制系统

SOPC Builder不止一个NIOSII builder而已, 它也可以生成一个不包含处理器或者包含NIOSII以外的软核处理器的系统[7]。SOPC系统中添加了基础的NIOSII处理器、SD卡控制器、SRAM控制器、EPCS控制器、J T A G U A R T组件。下面将重点介绍几个控制器。

3.1 SD卡控制器的添加与配置

本设计用的是SD_MMC_SPI_Core的IP核, 使用这个可以让设计者方便的将SOPC BUILDER系统和外部SD卡相连接, 进行数据读写操作。使用前首先得进行安装l i c e n s e文件, 安装完成后, 将altera_avalon_sd_mmc_spi文件夹放到工程目录下。打开目录下的Quartus II工程, 打开SOPC, 在Project中有EI Camino, 双击其中的SD/MMC-Card SPI Interface, 能够打开SD卡控制器的配置框图。在Quartus II中会生成整个SOPC的BLOCK图, 如图2所示, 其中有SD卡控制器的内容, 包括图中所示引脚, 需要自行设置。

3.2 SRAM控制器的添加与配置

外部S R A M存储器能够提供比片内存储器更大的存储容量, 但是速度略逊于片内存储器。通常是具有具有很低的反应时间和高吞吐量的器件, 由于是通过共享的双向总线连接到F P G A上, 外部SRAM的速度较片上存储器略低[8,9]。本文使用的S R A M芯片为IS61LV25616AL, 数据位数为16位, 地址位数为18位。实现S R A M控制器的部分代码如下:

通过控制W E、O E、C E、U B、L B信号, 实现对芯片的输入输出的控制。关于片选信号chipselect, 在Avalon接口规范9.1之后, 这个信号被拿掉, 现在要将S R A M的高位使能和低位使能拼接到一起, 接受avs_byteenable_n的赋值, 实现SRAM配置。

3.3 FIFO控制器的添加与配置

定制Avalon总线型FIFO接口元件, 从系统外部接口传送来的数据先在接收数据FIFO中缓存, 然后通过D M A方式将数据读入S R A M。我们已经配置了S R A M控制器核, 但并没有相应的FIFO接口控制器核, 因此需要自己定制FIFO接口元件。

FIFO作为单向数据传输器件, 不妨对其读/写分开定义, 即定义FIFO接口读元件和FIFO接口写元件。定制用户元件有两种方法, 一种是在Altera提供的元件上修改Class.ptf文件, 另一种是在SOPC Builder中采用创建元件配置向导来定制。本设计采用后一种方法。

在Quartus II工程中打开SOPC Builder, 单击Create New Component打开创建元件向导。由于创建的只是Avalon从接口, 并不是完整的元件, 因此对HDL Files和SW Files选项卡不进行设置, 无需创建新元件所需的描述文件Class.Ptf、HAL等, 这样可以快速地创建需要的器件接口。器件直接挂接在Avalon总线上。

3.4 DMA控制器的添加

因为视频数据传输的高速性, 而N I O S的速度并不快, 所以利用D M A直接传输, 能够显著提高速度。

在S O P C中需要添加D M A控制器。D M A控制器是SOPC Builder内部集成的部件, 很容易集成到SOPC系统中。对于Nios II处理器, HAL库提供了设备驱动程序。D M A控制器用于连接支持流模式传输的外设, 从源地址读数据并写入目的地址中, 进行批量数据传输。Avalon主设备, 如Nios II软CPU, 可以使用DMA控制器进行存储器数据传送;当DMA控制器进行数据传送时, 主外设可以同时进行其他操作。

在SOPC Builder中使用DMA控制器配置向导, 为SOPC系统添加DMA控制器核。DMA配置如图3所示。

硬件配置的参数如下:DMA长度寄存器大小。该参数值可选范围为1~32位, 表示单次DMA传输数据的最大值;主设备读/写端口间的FIFO缓冲器实现方式。考虑到如使用从寄存器构建FIFO, 当DMA控制器数据宽度较大 (如32位) 时, 将对逻辑资源的占用有很大影响。因此选择从存储块来构建FIFO, 由FPGA中的嵌入式存储块实现;D M A硬件支持的数据传送宽度。F I F O和S D R A M的数据宽度均为3 2位。

4 主程序分析

软件程序主要为SD卡存储程序, SD卡存储程序的主要程序如下:

首先打开接收通道, 设置每次传输为8位, 设置传输数据量为32, 目标地址为dest+ (i-1) , 总共传输数据量为32*24*8bit。

在S D卡中打开一个C A M E R 1.B I N文件, 写入6144bit到SD卡中, 写入完成后, 关闭fid0。写入到SD卡中存储。当需要显示时, 将SD卡内容读取到数组中, 然后通过转换后显示到L C D显示屏上。

5 SD卡视频存储的验证

对于SD卡实现数据的存储, 存储32*24*8的数据。用W i n H e x软件查看数据存储情况如图4, 存储数据到CAMER1.BIN, 大小为1.6KB和32*24*8的数据相吻合。

存储的数据为16位, 数据如图5。以下数据都是图像数据。所以系统可以实现数据存储。

6 结束语

通过FPGA将视频数据存储在SD卡中, 主要通过将摄像头P A L模拟格式转换成R G B格式, 利用S O P C系统进行数据和SD卡之间的传递, 为了加快传输速率, 其中使用了DMA和FIFO。最终本文使用了图像数据来验证设计, 每个像素为8bit, 并且利用WinHex软件查看, 和理论数据相符。该系统适用于视频图像快速存储于SD卡, 具有存储数据格式可变, 存储速度快, 硬件可重构等特点。

摘要:当前, 视频数据如何实现快速存储成为研究热点。针对这个问题, 本文提出一个SD卡数据存储解决方案。利用FPGA速度快、存储量大、具有可编程性等特点, 首先将接收到的视频数据通过外围AD模块, 将PAL格式转换为YCb Cr格式, 再通过程序设计将YCb Cr格式转换成RGB格式, 最后数据存储到SD卡中。设计中通过SOPC定制一个CPU, 来控制SD卡数据的读写, 使用FIFO控制器、DMA控制器等IP核, 有效提高了SD卡读写速度。实验证明所设计的系统能实现视频数据存储功能, 与现有SD卡视频数据存储系统相比, 该系统具有存储数据格式可变, 存储速度快, 硬件可重构等特点。

关键词:存储卡,可编程逻辑阵列,可编程片上系统

参考文献

[1]雷亮, 曾文碧.图像存储技术研究[J].重庆科技学院学报 (自然科学版) , 2009, (1) :112-115.

[2]KUN GAO, JUNBO CAI, LONG ZHANG, et al.A So PC-based mini VGA Video Capture and Storage System[C].Biomedical Engineering and Informatics (BMEI) , 20103rd International Conference on.2010, 7:2770-2774.

[3]高明.基于FPGA的高清图像无损存储技术[D].长春:长春理工大学, 2012.

[4]黄智伟, 王彦, 陈琼.FPGA系统设计与实践[M].北京:电子工业出版社, 2005.300-321.

[5]王彩云.嵌入式Nios微处理器在FPGA中的开发应用[J].电子设计应用, 2003, 12 (4) :64-67.

[6]胡云峰, 陈虹, 刘明星等.基于FPGA/SOPC的预测控制器设计与实现[J].仪器仪表学报, 2010, 31 (6) :1241-1248.

[7]杨秀增.基于Nios II的SOPC嵌入式高精度温度测量仪 设计[J].数字技术与应用, 2012, (11) :179-181.

[8]孙富明.基于多种EDA工具的FPGA设计[J].电子技术应用, 2002 10 (6) :70~73.

SD存储 篇2

极至的传输速度

东芝作为闪存卡的发明者和市场领导者,在SD卡深耕多年,拥有了不俗的业绩和研发经验,因此对市场做出了准确的判断。因为看到了今年高像素将又一次成为影响行业的趋势,所以最近推出了这款东芝极至超速TMEXCERIA PROTM UHS-Ⅱ SD存储卡,其读取速度在能完全发挥效能的富士X-T1以及奥林巴斯E-M5 Mark Ⅱ机身上甚至最高能达到260MB/s,而写入速度也能够达到240MB/s的极限。对于摄影师来说,无论是连拍还是使用RAW+JPG格式进行拍摄,都不用担心相机会因为存储卡的速度不够而导致的存储速度过慢,以至于需要相机缓存进行长时间操作而错过了下一个画面。UHS的速度等级达到了U3也说明了它在速度上的优势。

超大存储空间

东芝极至超速TMEXCERIA PROTM UHS-Ⅱ SD存储卡除了拥有超高的读写速度之外,这款存储卡还有16G、32G甚至是64G的不同空间大小可供不同消费者选择。无论是存储高超高精度的图片还是进行视频拍摄都得心应手。同时东芝极至超速TMEXCERIA PROTM UHS-Ⅱ SD存储卡对于UHS-Ⅱ总线的支持更是能针对专业相机和摄像机完成高速稳健传输,发挥设备的最大功能。

编辑点评

东芝存储卡一直以来都在不断的推出高速存储介质,之前使用的EXCERIATM存储卡系列读存取度分别为95MB/s和60MB/s,在日常使用的情况下也觉得相当不错了,而这次横空出世的东芝极至超速TMEXCERIA PROTM UHS-ⅡSD存储卡在使用支持UHS-Ⅱ技术的机房上则将写入速度提升了两倍之多,对于摄影师的诱惑力将是极大的。

基于SD卡的数据存储系统设计 篇3

为使采集数据可直接在PC上读取、处理,需要使用文件系统组织数据格式,文件系统即操作系统用于明确磁盘或分区上文件的方法和数据结构,是对文件的管理规则,也是操作系统的重要组成部分[2]。而操作系统对处理器要求较高,且占用一定的存储空间,对于许多无法使用嵌入操作系统的处理器,需要自己来实现文件系统———在处理器中内嵌文件系统。(1)

1 存储系统结构

SD卡存储系统结构如图1所示,MC9S12XS128是飞思卡尔公司MC9S12系列16位单片机,基于S12 CPU内核,总线频率达40 MHz(超频可到8 0 MHz),包含3个SPI口。主控芯片通过SPI口与SD卡相接,驱动程序实现两者之间数据通信,采集数据在Fat32文件系统管理下,以文件形式存储于SD卡,如:.txt、.dat等[3]。

2 SD卡数据存储

2.1 硬件连接

SD卡有9只引脚,工作电压为3.3V,支持两种串行通信模式,SD模式和SPI模式,SPI虽为低速传输模式,仍有fosc/4的理论传输速率(fosc晶振频率)[4]。MC9S12XS128内接16MHz晶振,则SPI理论传输速度为4Mb/s。SPI模式下,SD卡与主控芯片通信只需连接4只引脚。通信机制是通过主控芯片对SD卡发送命令控制数据传输方向。

2.2 软件实现

2.2.1 SPI初始化

查阅SD卡工作手册,SD卡上电过程需有大于74个时钟周期的等待时间,待电压平稳后,才可向SD卡发送启动命令。需要注意,SD卡从上电开始直至完全启动之前,必须运行于低速模式,低速模式工作频率在400k Hz以下[5]。初始化流程如图2所示。

2.2.2 多块写操作

读/写操作以扇区为单位,扇区容量为512个字节。存储系统实用环境下,SD卡只需具备数据存储功能,即向SD卡写入数据,因此笔者只分析SD卡的写操作。

系统调试过程中发现,普遍使用的单块写操作传输速度较慢,对于大存储量的数据,无法满足传输要求。因此,笔者提出使用传输速率更快的多块写操作,通过图3对比可知,多块写操作可以看成是对单块写操作的程序优化,通过节省主函数循环调用子函数及单块写操作每次初始应答的时间,提高了数据写入速度。

多块写操作实现的时序图和流程如图4所示。

3 Fat32文件系统实现

目前常用的文件系统有两类:基于微软windows操作系统的FAT16、FAT32、NTFS、ex FAT文件系统;Linux系统下的EXT3、EXT4等。Windows操作系统使用广泛,且SD卡容量较大,因此这里选用Fat32文件系统[6]。

Fat32文件系统的实现方法可分为:直接法,分析Fat32文件系统的组织结构,遵循文件生成机制,编写程序代码实现功能;移植法,移植Fat文件系统模块,调用其提供的应用接口函数,如:fopen、fwrite,同样可以实现功能。

3.1 直接法———Fat32文件系统工作原理

Fat32文件系统以簇为单位,簇的大小视具体SD卡而定。其管理容量232bit,相当于32GB。Fat32系统的组织结构包括:

a.MBR。位于SD卡物理结构的第0扇区(0柱面0磁头1扇区),该区域分为两大部分:预启动区,占用446字节;DPT,占用66个字节(64字节的硬盘分区表和2字节的分区结束标志)。MBR中最重要信息是指示出该SD卡中隐藏扇区数目,即可计算出DBR所在扇区号。

b.DBR。一般占用512字节空间,这512字节是由跳转指令(3个字节)、操作系统名称和版本号(8个字节)、BPB区(71个字节)、扩展BPB区、OS引导程序区和结束标志(0x55,0x AA)几部分组成。BPB记录本分区的每簇扇区数、每扇区字节数、FAT表数、FAT表扇区数及根目录簇号等重要参数。

c.FAT表1。是Fat32文件系统中用来实现数据文件索引和定位的链式结构表。Windows操作系统中,数据文件不是连续地存放在硬盘的某一区域,往往是分成若干簇,如同链子一般存放。FAT表就是记录数据文件簇与簇之间的连接关系,FAT表中的每个簇项对应于数据存储区中相应的簇区。

d.FAT表2。FAT表1的备份,防止FAT表1损坏。

e.数据区。记录着每个数据文件的目录项信息(文件大小、文件起始簇号、文件创建时间)和文件的内容。数据区从2号簇开始,而2号簇一般用来存储文件目录项信息。

3.1.1 Fat32文件系统的初始化

向SD卡写文件的前提是通过文件目录表FDT寻找文件存储位置的第一个簇地址,然后通过FAT表1按簇查找该文件所有存储地址从而找到文件所有簇地址。而SD卡并不以簇为单位存储数据,因此必须将簇地址转换为扇区地址。

簇地址与扇区地址转换公式为:当前簇所在扇区号=(当前簇号-根目录簇号)×每个簇所占扇区数+根目录所在扇区号。Fat32文件系统初始化流程如图5所示。

3.1.2 Fat32文件系统文件操作

在Fat32文件系统中创建文件(或目录)的过程就是在文件目录表FDT中申请登记项的过程。登记项包括文件名、文件长度及起始簇号等内容。

当读取Fat32文件时,首先根据文件名查找到该文件的目录登记项。依据目录登记项中起始簇号可找到文件在数据区中第1簇内容,以及在FAT表中第2簇号。依据第2簇号又能找到第2簇内容和FAT表中的第3簇号,以此类推。写文件过程正是于此相反,需要向FAT表提供空闲簇号。

3.2 移植法———Fat32文件系统模块移植

目前较流行使用的FAT文件系统模块主要有:周立功公司的zlg/FS、美国Micrium公司的u C/FS、Source Forge.net网站上发布的开源项目efsl(Embeded File System Library)以及日本电子爱好者设计并维护的FATFS文件系统模块。以上4个文件系统模块各有特点:zlg/FS因读写速率较慢,主要用于实验教学;Micrium公司的u C/FS一般在商业上使用;efsl及FATFS都是免费开源软件,FATFS相对成熟一些。

笔者以Fat FS Module为例,介绍其移植方法。Fat FS Module专门为小型嵌入式系统而设计,它用标准C语言编写,具备良好的硬件平台独立性,移植到51、AVR及ARM等单片机上,只需简单修改。它支持FAT12、FAT16和FAT32,支持多个存储媒介,可以对多个文件进行读/写。Fat FS整体架构如图6所示。

顶层是应用层,调用Fat FS Module提供的一系列应用接口函数,如:f_open、f_read、f_write及f_close等;中间层实现FAT文件读/写协议;底层是Fat FS Module的接口层,需要用户编写代码,它包括存储媒介的读/写接口Disk I/O和提供文件创建修改时间的时钟。

Fat FS Module包含8个文件:00readme、tff.c、tff.h、diskio.c、diskio.h、ff.c、ff.h和integer.h。移植需要后5个文件,其中需要修改的是diskio.c、ff.h和integer.h。ff.h需依据处理器类型设置配置;integer.h要将数据类型进行修改以匹配处理器;diskio.c则需要对6个接口函数编程:Disk_initialize、Disk_statue、Disk_read、Disk_write、Disk_ioctl和Get_fattime。

4 应用与测试

笔者采用直接方法实现Fat32文件系统,以SD卡SPI模式存储数据,将此系统应用于电磁式导航智能车数据采集系统中,每隔20ms记录电磁传感器采集值、测速编码器采集值和PID值。实践证明,此系统存储数据稳定、可靠,并且利用MC9S12XS128内部定时器PIT来估算写入速度,通过设置PIT参数,将一次中断定时设定为1ms,而变量a与b分别对应写操作前与写操作后的时间,其差值乘以1ms即写入数据耗时,数组filebuff[]大小为写入数据大小。从图7看出,写入速度随数据量增加呈现递增趋势,约200KB/s的写入速度能够满足传输速度的要求。

5 结束语

笔者通过使用传输速度更快的多块写操作,提高了文件写入速度,并且完整地给出了Fat32文件系统实现的两类方法。此系统移植性很强,适用于其它使用SD卡采集信息的环境。但对于要求高速传输的数据采集环境,可进一步研究SD卡SD模式,以提高传输速率,并且注意文件系统对传输速度的影响。

参考文献

[1]罗小刚,张炎,彭承琳.基于MSP430和SD卡的FAT16文件系统的设计[J].电子技术应用,2008,34(11):65~68.

[2]高永占,周洪利.基于SD卡的嵌入式文件系统的设计与实现[D].北京:北京交通大学,2010.

[3]马培娇,张宇光,姚永兴等.高速大容量存储系统的关键技术实现[J].化工自动化及仪表,2011,38(7):869~872.

[4]李飞,张井岗.基于LabVIEW环境下的可移植数据采集系统[J].化工自动化及仪表,2011,38(8):1014~1015.

[5]冯小江,伊松林,张璧光等.太阳能相变储热在木材干燥中应用的初步研究[J].化工机械,2009,36(3):205~210.

SD存储 篇4

三维激光扫描仪是一种快速、高效、高精度的三维空间结构信息获取工具,近年来发展迅速,在地形地貌测量[1]、复杂工业设备测量与建模、历史文物保护[2]、数字城市建模、农林资源调查[3]以及地质地震灾害监测[4,5]等领域得到了广泛应用。

三维激光扫描仪探测的原始数据是由大量目标表面激光反射点的三维坐标组成的点云数据。探测点越密集,得到的目标三维空间结构就越精细,需要存储和处理的点云数据量也就越大。为了实现大量三维激光探测数据的快速存储,本文提出了一种基于SD卡的三维激光扫描仪数据存储方案,并应用于工程实践。

1 系统原理

三维激光扫描仪通过半导体激光器发射激光脉冲,照射到被测目标表面产生回波,然后被回波接收系统接收。仪器的高精度时间测量系统通过比较发射与接收脉冲之间的时延差来估计仪器与被测目标之间的距离R。结合扫描仪水平方向和垂直方向上的伺服电机编码器角度值,计算被测目标点在三维空间中的实际坐标值。实际坐标重构如图1所示。

图1中,被测目标点是D,仪器与被测目标之间的实际距离是R,垂直方向上电机编码器对应的扫描角度是θV,水平方向上电机编码器对应的扫描角度是θH。

本文将探测数据存储于SD卡中。每次探测完成后,用户可通过计算器读取SD卡中的原始数据,并进行点云重构等后续操作。SD卡是基于Flash的存储器,具有体积小、重量轻、访问速度快、安全性高等特点,已经广泛应用于各种便携式电子产品。

SD卡通信协议包含SPI和SD两种模式。SD传输模式下,又包含1bit传输方式和4bit传输方式。4bit传输方式速度最快,最高可达25MBit/s。

本文设计的嵌入式系统需要将R、θV和θH这3个32位原始数据实时存储到SD卡中,而实时存储的数据量与仪器探测的脉冲重复频率成正比。三维激光扫描仪设计最高的探测脉冲重复频率是36kHz,当单脉冲只接收到一个回波信号时,实时数据存储量就达到3.456Mbit/s。为保证探测数据能实时完整存储,不出现数据遗漏现象,三维激光扫描仪必须采用4bit的SD存储模式。

2 SD卡访问

嵌入式控制系统是整个三维激光扫描仪的核心部件,它协调控制仪器各功能模块,主要任务包括:探测数据的SD卡存储、TDC-GPX的控制与时延信息获取、伺服电机的扫描角度信息获取等[6]。三维激光扫描仪采用三星公司的S3C2410芯片作为嵌入式系统的ARM处理器。ARM处理器与SD卡的硬件连接如图2所示。

S3C2410芯片内部集成了SD控制器,SD卡访问所需的底层协议和硬件接口可通过芯片的内部硬件模块实现。ARM处理器通过CMD命令线对SD卡发布命令,SD收到命令后产生R1、R1b、R2、R3、R6和R7六种响应,响应也是通过CMD线返回ARM处理器。数据读写通过DAT0~DAT3四根数据传输线完成。

ARM要访问SD,首先需要对SD进行初始化,SD卡的初始化流程如图3所示。

上电复位后,ARM芯片首先向SD卡发送CMD0命令,使其进入空闲状态;然后ARM再发送ACMD41命令查询SD卡的工作环境寄存器,如果系统符合SD卡的工作电压要求,SD卡就进入准备状态。接着ARM再发送CMD2命令来获取SD卡的CID标识号,SD卡进入识别状态。最后,ARM发送CMD3命令获取SD卡分配新的相对地址RCA,SD卡进入待机状态。

SD卡完成初始化后,ARM就可对SD进行读写操作了。SD卡读写的基本单元是512byte大小的块。三维激光扫描仪存储数据前要将数据按照512byte为单元打包成块,写操作流程如图4所示。

当SD卡处于待机状态时,ARM发送CMD7命令,使其进入传输状态。三维激光扫描仪采用4bit的SD模式进行数据传输,ARM先要发送ACMD6命令将SD卡的总线宽度设置为4。然后ARM进入三维激光扫描仪的探测主程序,将探测结果打包成512byte大小的数据块。完成打包后,ARM将发送CMD24命令,然后向FIFO中写数据块。数据发送完成后,ARM发送CMD7命令,让SD重新回到待机状态,等待下一个数据块到来。SD卡读操作也是以512byte数据块为单位,利用CMD17命令实现数据块读取,方式与写操作类似。

3 文件系统

利用ARM芯片中集成的SD卡控制器,可以实现SD卡的读写访问。要使计算机能识别并读取ARM所写数据,必须使用文件系统来组织管理ARM处理器对SD卡文件的访问[7]。

ARM嵌入式程序采用FAT文件系统,文件系统架构从上到下分别是:Main函数、FAT文件系统、SD卡协议、硬件接口。系统架构如图5所示。

其中Main函数就是三维激光扫描仪ARM芯片运行的嵌入式主程序,主程序主要完成对各模块的控制,还有对各探测相关数据的采集。采集后的数据存储于SD卡中。而SD卡协议和硬件接口都是通过ARM芯片中集成的SD卡控制器完成相应操作的。

在ARM程序中建立文件系统,只需将FAT文件系统的相关文件拷贝到开发工程中,并对其中的FatInternal.c文件进行相应编辑,完成SD卡的初始化,以及对pVol→ReadBlock512()和pVol→WriteBlock512()两个函数进行修改,利用FAT文件系统实现对SD卡的文件操作。其中,SD卡初始化使用的是SDLIB_Init()函数,读数据块和写数据块分别使用的是SD_ReadBlock512()和SD_WriteBlock512()函数。

FAT文件系统提供了丰富的函数,使ARM实现对SD卡的文件读写操作。Fat_Mount()为逻辑驱动器注册工作区,F_FileOpen()用于打开SD卡上的源文件,Fat_FileRead()用于读取文件中的数据,Fat_FileWrite()用于写入数据,Fat_FileExist()用于关闭源文件。利用这些文件相关函数,就能在SD卡上完成文件操作。

4 结语

基于SD卡的数据采集系统已经成功集成到三维激光扫描仪上,并进行了数据采集实验。三维激光扫描仪探测的脉冲重复频率达到36kHz,单次探测数据量达到65M字节。存储于SD卡的数据经过计算机处理后成功恢复了探测目标的三维点云图。探测结果如图6所示。

实验表明该设计方案完全适用于36kHz以下的三维激光扫描仪的探测数据存储要求。而且随着SD卡存储技术的发展,该方案将会满足更多高重复率的三维激光扫描仪数据存储需求。

参考文献

[1]徐进军,张民伟.地面3维激光扫描仪:现状与发展[J].测绘通报,2007(1):47-50.

[2]魏薇,潜伟.三维激光扫描在文物考古中应用述评[J].文物保护与考古科学,2013,25(1):96-107.

[3]范海英,李畅,赵军.三维激光扫描系统在精准林业测量中的应用[J].测绘通报,2010(2):29-31.

[4]陆益红,赵长胜,李明哲,等.三维激光扫描仪在地震中的应用[J].矿山测量,2011(6):37-38.

[5]郭祥,刘卉.三维激光扫描技术及其在地质中的应用展望[J].软件导刊,2009(3):183-185.

[6]李世鹏,郭唐永,杨厚丽.三维激光扫描仪嵌入式控制系统设计[J].大地测量与地球动力学,2016(36):124-127.

SD存储 篇5

本文给出了一种以OTP-SD加密卡作为电子出版物存储介质的实现方法, 我们在使用通用SD卡接口的基础上对传统SD卡和加密方式进行改良, 这不但增强了版权保护功能, 并达到了能够使广大用户和阅读终端能够识别的目的。从而使得以OTP-SD加密卡为电子出版物存储介质变成可能, 并且由于对OTP-SD卡中的信息内容进行了加密, 具备极强的版权保护功能。

2 OT P-SD卡的特点

OTP-SD卡为以色列IM公司开发的全球首款128MB大容量OTP芯片, 其存储容量为目前全球最高水平。芯片采用了NROM结构, 从而加倍了每个存储单元的容量, 使得每比特的存储成本降到最低。同时通过减少掩膜层数和减少加工步骤设计, 使得生产工艺流程更加简单, 降低了制作成本。

OTP芯片制作由上海中芯国际 (SMIC) 采用了12寸晶圆75nm制程完成, 75nm制程能获得比目前普遍的80~90nm制程的内存更高的运行频率, 和传统SD相比, 不支持追加烧录和删除等操作, 大大加强了产品的安全性和保密性, 减少了由于误操作而造成的损失, 特别适合于电子出版物。

3 OT P-SD加密卡的实现方法

3.1 实现方法

我们对OTP-SD主控芯片逻辑单元进行预编程处理, 将OTP-SD卡内存储单元划分为文件系统和非公开存储区域2部分, 并在主控芯片寄存器中烧录约定好的验证字符串, 对非公开存储区域访问实施控制和验证。其中, 文件系统为用户可见区, 使用通用接口协议, 用户能够访问;非公开存储区域为用户不可见区, 使用特殊约定接口协议, 用户无法访问, 电子出版物数据和专用阅读器存放于文件系统, 密钥存放于非公开存储区域。电子出版物源数据采用密钥进行加密后烧录至OTP-SD卡内, 其方法为使用密钥将电子出版物源数据进行散列变换, 形成无法正常阅读的特殊格式文件。

OTP-SD主控芯片读取命令的访问方式是采用通用接口协议还是特殊约定接口协议来判断读取命令为文件系统数据读取还是非公开存储区域数据读取。当OTP-SD主控芯片判断读取命令采用通用接口协议时, OTP-SD主控芯片通过存储单元内核接口访问存储单元中文件系统内数据;当OTP-SD主控芯片判断读取命令采用特殊约定接口协议时, OTP-SD主控芯片在验证过后, 向该读取命令发送端传输非公开存储区域数据。

3.2 实施步骤

如图1所示, 将电子出版物源数据进行散列变换, 加密后形成3部分待拷贝数据:含版权保护信息的加密文件、专用阅读器、密钥, 将它们分别烧录至OTP-SD卡中指定区域内。

电子出版物源数据必须经过加密保护才能烧录至OTP-SD卡内, 通过密钥信息 (散列算法) 将源数据进行散列变换, 形成无法正常阅读的特殊格式文件。

我们需要对OTP-SD主控芯片逻辑单元进行预编程处理, 将卡内存储单元划分为文件系统和非公开存储区域两2部分, 并在主控芯片寄存器中烧录约定好的验证字符串, 对非公开存储区域访问实施严格的控制和验证过程, 以实现对加密区数据的保护。

密钥的传输主要由OTP-SD主控芯片进行控制, 读取命令由电子出版物阅读程序进行发送。非公开存储区域使用的特殊约定协议是由通用接口协议变体而来, 由普通的读写命令进行组合, 如连续64次对指定逻辑地址进行读取, OTP-SD主控芯片进入判定模式, 进入该模式后, 阅读程序对指定逻辑地址发送约定好的验证字符串, OTP-SD主控芯片寄存器内在制卡时已将该字符串烧录, 判断一致后, 才会将密钥信息发送给阅读程序。所以通用的读卡器也能传输这些命令, 这就解决了非专用设备硬件加密应用问题。

专用阅读器是将加密后文件还原并阅读的软件程序, 该程序通过2种不同的访问方式对OTP-SD卡内电子出版物进行阅读和显示。

(1) 专用阅读器使用WINDOWS磁盘驱动程序与SD卡读卡器进行接口, 再由读卡器访问OTP-SD卡中加密后的电子出版物数据;

(2) 专用阅读器使用OTP-SD特殊约定协议, 与OTP-SD主控芯片进行通讯, 得到授权确认后访问非公开存储区域, 获取密钥信息;

(3) 专用阅读器包含具体解密算法, 结合非公开存储区域内的密钥信息将加密后数据在系统内存中进行还原供用户阅读;

(4) 专用阅读器具备所有普通阅读器的书签、检索、翻页等功能, 并通过人性化的设计为用户定制阅读、学习计划, 与电子出版物量身定做的软件GUI界面为用户营造纸质书籍不具备的阅读环境。

如图2所示, OTP-SD主控芯片将通过读取命令的访问方式是采用通用接口协议还是特殊约定接口协议来判断读取命令为文件系统数据读取, 还是非公开存储区域数据读取。

如果是通用接口协议, 主控芯片将通过存储单元内核接口访问存储单元中文件系统内数据;如果是特殊约定接口协议, OTP-SD主控芯片在验证过后, 向该读取命令发送端传输非公开存储区域数据。

4 OT P-SD加密卡应用于电子出版物的优势

(1) 一般OTP半导体芯片存储容量以KB为单位计算, OTP-SD加密卡采用国际领先技术的百兆级大容量OTP-SD, 便于电子出版物发行和数据长期保存。目前, 单张OTP-SD卡的存储容量已经达到128MB, 随着技术进步, 在未来3年内, 单张OTP-SD卡的存储容量有望达到GB级。

如图3所示, OTP-SD加密卡作为电子出版物的信息存储载体, 可存储电子出版物的种类繁多, 如:音乐、视频、照片、电子书、产品目录、产品说明书、应用软件等。

(2) OTP-SD加密卡使用不可私自读取与改写的非公开区域技术, 对出版物知识产权形成有力保护, 为出版物在电子领域发行提供可靠保障。

如图4所示, OTP-SD加密卡的成本仅在2美金以内, 结合电子出版物低廉的发行成本与大容量OTP加密技术, 该产品具备高度的市场前瞻性和极大的发展潜力。

(3) OTP-SD加密卡应用于电子出版物时可限制用户的复制、全盘拷贝、克隆等一系列盗版行为, 能有效保护电子出版物的版权。

5 结论

OTP-SD加密卡因其特殊的一次性写入特点, 不支持追加烧录和删除等操作, 因此大大加强了其作为电子出版物存储介质的安全性和保密性, 可减少由于误操作而造成的损失。同时, 我们导入了特殊的软硬件加密手段, 极大的保护了信息的安全性, 因此特别适合于电子出版物。随着技术的进步, OTP-SD卡的存储容量也在不断加大, 结合自身价格低廉的优势, 使其作为电子出版存储介质必将拥有广泛的市场应用空间。

参考文献

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【SD存储】相关文章:

存储保护05-10

存储设计05-17

安全存储05-18

理解存储结构04-13

云盘存储教案04-17

相册存储方案04-22

移动云存储05-12

数据存储备份方案04-08

综述网络存储技术04-24

云存储应用接口05-11

上一篇:种植面积下降下一篇:网络营销战略