版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、技术纵横 TECHNOLOGY REVIEW大容量SD卡在海洋数据存储中的应用范寒柏,王少仙,彭安(华北电力大学,保定071003)摘要:设计了一种新型海洋要素数据(温度、盐度)采集系统的SD卡存储方案,同时给出了SD1.x与SD2.0的识别方法。该方案选用基于Cortex-M3内核的高性能处理器STM32F103VB作为主控制器,采用SPI总线与SD卡通信,使用FAT32文件系统,解决了海洋数据采集过程中数据存储量大、存储设备不易与PC机接口的问题。关键词:STM32F103VB;SD卡;SPI;FAT32文件系统中图分类号:TP3 文献标识码:AApplicationofHighCapac
2、itySDCardinMassiveDataStorageFanHanbai,WangShaoxian,PengAn(NorthChinaElectricPowerUniversity,Baoding071003,China)Abstract:AnewschemeofSDmemorycardappliedtotheoceanelements(temperature、salinity)acquisitionsystemisdesigned,andthemethoddistinguishingSD1.xfromSD2.0isgiven.High-performanceprocessorSTM321
3、03VBbasedonCortex-M3isusedasmaincon-trollerandcommunicateswithSDcardthroughSPIbus.ItusesFAT32filesystemtosolvetheproblemsoflargedatastorageandinter-facewithPC.Keywords:STM32F103VB;SDcard;SPI;FAT32filesystem引 言海洋要素测量系统要求数据存储量大、安全性高,采用可插拔式存储卡是一种不错的选择。目前,可插拔式存储卡有CF卡、U盘及SD卡。CF卡不能与计算机直接通信;U盘需要外扩接口芯片才能与单片
4、机通信,增加了外形尺寸及功耗;而SD卡具有耐用、可靠、安全、容量大、体积小、便于携带和兼容性好等优点,非常适合于测量系统长期的数据存储1。本设计使用8GB的SDHC(HighCapacitySDMem-oryCard,大容量SD存储卡),为了方便卡上数据在操作系统上的读取,以及数据的进一步分析和处理,在SDHC卡上建立了FAT32文件系统。SD卡支持SD模式和SPI模式两种通信方式。采用SPI模式时,占用较少的I/O资源。STM32F103VB包含串行外设SPI接口,可方便地与SD卡进行连接。通过4条信号线即可完成数据的传输,分别是时钟SCLK、主机输入从机输出MISO、主机输出从机输入MOS
5、I和片选CS。STM32F103VB与SD卡卡座的接口电路如图1所示。1 SD卡接口的硬件设计STM32F103xx增强型系列是意法半导体公司生产的基于Cortex-M3的高性能的32位RISC内核,工作频率为72MHz,内置高速存储器(128KB的闪存和20KB的SRAM),以及丰富的增强I/O端口和连接到2条APB总线的外设。STM32F103xx系列工作于-40+105e的温度范围,供电电压为2.03.6V,与SD卡工作电压兼容,一系列的省电模式可满足低功耗应用的要求。2图1 STM32F103VB与SD卡卡座的接口电路SD卡的最高数据读写速度为10MB/s,接口电压为2.73.6V,具
6、有9个引脚。SD卡使用卡座代替传输电缆,减少了环境干扰,降低了出错率,而且1对1传输没有共享信道的问题。SD卡在SPI模式下各引脚的定义如表1所列。adv(广告专用) 302010年第4期TECHNOLOGY REVIEW 技术纵横表1 SD卡引脚定义(SPI模式)引脚号1345名 称CSDIVSS1VDDSCLK定 义片选数据输入地电源时钟引脚号6789名 称VSS2DORSVRSV定 义地数据输出未使用未使用多电子设备无法驱动大容量SD卡的情况,如何识别SD1.x与SD2.0就显得尤为重要。SD2.0的SPI模式初始化流程如图3所示。2 SD卡接口的软件设计本设计采用STM32F103VB
7、自带的串行外设SPI接口与SD卡进行通信,这里只介绍SPI模式的通信方式。2.1 SD卡的读写先对STM32F103VB的SPI_CR1(SPI控制寄存器)以及SPI_SR(SPI状态寄存器)进行初始化设置,使能SPI并使用主机模式;同时设置好时钟,在时钟上升沿锁存数据。SPI通道传输的基本单位是字节,由STM32F103VB控制其和SD卡之间的所有通信。要读写SD卡,首先要对其进行初始化。初始化成功后,即可通过发送相应的读写命令对SD卡进行读写3。SD卡的读写流程如图2所示。图3 SD2.0的SPI模式初始化流程判断是否为SD2.0卡,CMD8(SD2.0新增的命令)是关键。若卡是SD2.0
8、,则发送CMD8将会返回有效响应;若是SD1.x,则返回非法响应,这样就可以识别SD卡的类型。SD1.x与SD2.0的最大不同在于命令地址的表示。SD1.x的地址单位是字节,而SD2.0的地址单位是扇区,地址仍然采用32位4个字节来表示。因此在读写操作时应该根据不同的卡对地址进行相应的处理,若是SD1.x则写入字节地址,若为SD2.0则写入扇区地址。3 FAT32文件系统目前有3种FAT文件系统:FAT12、FAT16和FAT32。它们的区别在于文件分配表(FileAllocationTa-ble,FAT)中每一表项的大小(也就是所占的位数):FAT12为12位,FAT16为16位,FAT32
9、为32位。本设计选择FAT32文件系统。由于文件存储在硬盘上占用的存储器空间以簇为最小单位,FAT32文件系统不适合管理容量低于512MB的存储器。簇如果太大,存储小文件会浪费大量的存储空间;如果太小,FAT表会变大,不方便管理。综合考虑,FAT32每簇大小为4KB。3.1 FAT32文件系统结构FAT32文件系统可以分为以下几部分:保留区(re-servedregion),存放FAT文件系统的重要参数和引导程序;FAT区(FATregion),记录簇(cluster)的使用情况;根目录区(rootdirectoryregion),记录根目录信息,FAT32文件系统舍弃了这个区,根目录区可以指
10、定为任意一个簇;文件目录数据区(fileanddirectorydataregion),是各种文件数据实际存放的区域。保留区中的BPB表从扇区0偏移11个字节开始,共占25字节。表2是格式化为FAT32文件系统的8GBSD卡首扇区中读出的BPB参数内容。图2 SD卡的读写流程2.2 SD1.x与SD2.0标准的识别由于大容量SDHC的出现,SD1.x满足不了SDHC的容量要求,标准已经升级为SD2.0。但也因此出现了许paper(投稿专用) 2010年第4期Microcontrollers&EmbeddedSystems 31技术纵横 TECHNOLOGY REVIEW表2 BPB表名
11、称BPB_BytePerSecBPB_SecPerClusBPB_RsvdSecCntBPB_NumFATsBPB_RootEntCnt偏移大小112内容0x0200说明每个扇区的字节数,这里表示每个扇区大小为512字节。取值只能为512、1024、2048和4096每簇扇区数,这里表示每簇扇区数为8。其值必须是2的整数次方,最大值为128,同时保证每簇字节数小于32KB保留区中的保留的扇区数,这里值为34。对于FAT12、FAT16必须为1,而FAT32通常为32FAT表的份数,这里为2。一般取值为2根目录的项数。对于FAT12和FAT16,该值乘以32必须为BPB_BytsPerSec的偶
12、数倍,一般取值为512;对于FAT32,该值必须为0对于FAT12、FAT16,此域填写总扇区数,如果该数值小于0x10000,BPB_TotSec32必须为0;如果大于该值,此域设为零,并使用BPB_TotSec32记录。对于FAT32,此域必须为0存储介质的类型:固定介质一般为0xF8,移动介质一般使用0xF0。与FAT表的FAT0的低8位保存值一致对于FAT12、FAT16,该值为一个FAT表占用的扇区数;对于FAT32,该值为0每磁道扇区数磁头数在FAT分区表之前隐藏的扇区数。对于没有分区的介质,此域总是为0FAT分区总扇区数。对于FAT32,此域必须非0;对于FAT12、FAT16,
13、如果总扇区数大于或等于0x10000,此域就是总扇区数,同时BPB_TotSec16为0。这里值为15556608,每个扇区0.5K,可知SD存储卡容量约为8GB一个FAT表的扇区数,此域为FAT32特有,同时BPB_FATSz16必须为0扩展标志FAT32系统的版本号。高8位表示主版本号,低8位表示本版本下修改的升级号FAT32根目录所在第一个簇的簇号,通常为2保留区的文件信息区所占用的扇区号,通常为1保留区引导扇区备份所在的扇区号。通常为6保留为以后扩展FAT系统版本用,此域用0填充 在保留区之后是FAT区,存有文件分配表。一般文件系统中有2份文件分配表FATl和FAT2,每份FAT表占用
14、空间的大小可从BPB表中查得。由于采用的是SDHC卡和FAT32文件系统,紧接在FAT区之后的是文件目录数据区,真正意义上的数据从这个区开始,以簇编号,顺序上第1个簇编号为第2簇,此簇通常为FAT32根目录所用。FAT16从根目录所占的32个扇区之后的第一个扇区开始以簇为单位进行数据处理,这之前仍以扇区为单位。目录与数据是统一放到这个区域的,并且都不是在一个连续的区域内存放。没有任何特殊标记来区分哪个簇是目录项,哪个簇是数据项,而是由文件系统从根目录出发通过查找的方法来确定簇的类型。1310x081416210x00220x021720x00003.2 FAT32文件系统实现本文设计的文件系统
15、采用模块化层次结构,其总体框架如图4所示。其中,箭头表示调用关系。应用程序是面向用户的,为满足某种功能需求而编写的程序。可以通过调用文件系统提供的API函数对文件和目录进行相应的操作。文件管理和目录管理模块是直接与应用程序接口的模块,位于整个文件系统的最高层。文图4 文件系统总体框架BPB_TotSec161920x0000BPB_MediaBPB_FATSz16BPB_SecPerTrkBPB_NumHeadsBPB_HiddSec2110xF82224262822240x00000x003F0x00FF0x00002000件管理模块提供所有与文件操作相关的函数,目录管理模块提供所有与目录操
16、作相关的函数。在对文件操作的大多数情况下,文件管理模块需要调用目录管理模块的相关功能。文件分配表管理模块主要用来对文件系统的FAT表进行管理,根据系统的请求对FAT表的内容进行相应的修改。文件目录表管理模块主要提供对文件和目录的基本属性信息的管理。这两个模块管理着文件系统的两个重要数据结构,应用程序不能直接调用它们。缓存模块是为了降低系统访问SD卡的次数,提高整个系统的处理速度而加入的。它使用了部分RAM作为缓存来保存一些访问过的扇区的数据,一般用来加载FAT表和FDT表的数据;向SD卡写入数据时,也需要用它加载数据。以上几个模块的操作都建立在底层驱动程序上。底层驱动程序主要是向SD卡读写某个
17、扇区的程序。文件分配表管理模块包含几个处理簇链的函数,如获取指定簇下一簇簇号(fat_next_clus()、建立簇与指定簇的链接关系(fat_link_clus()、在簇后增加一个空(下转42页)BPB_TotSec323240x00ED6000BPB_FATSz32BPB_ExtFlagsBPB_FSVerBPB_RootClusBPB_FSInfoBPB_BkBootSecBPB_Reserved3640420x00003B3B0x000042444850522422120x00000x000000020x00010x0006-322010年第4期adv(广告专用)新器件新技术 NEW
18、PRODUCT & TECH高速串口驱动设计方案,发送数据完全由DMAC完成,无需触发任何中断,接收1帧不超过接收区阈值的数据最多产生1次RTI中断。和现有的各种利用DMA块传输进行串口数据通信的方案相比,中断次数大幅减少,大大提高了数据传输的效率。在应用了本方案的人机界面产品上,实现了波特率高达12Mbps的稳定数据传输。对于在其他平台上设计实现高速串口,本方案是一个很好的参考。参考文献1王晓剑,潘顺良,沈为群,等.TMS320DM642中利用McBSP与EDMA实现UARTJ.电子测量技术,2008,31(2):103-105.2杨福广,李贻斌,尹占芳,等.ARM中基于DMA的高效
19、UART通讯及其应用J.微计算机信息,2008,24(2):图4接收数据流程138-140.3吴广州,张平.TMS320VC5510同步串口实现异步通信J.电子测量技术,2006,29(6):115-117.4范娟,张伯珩,边川平,等.基于嵌入式系统的串口高速采集DMA方式的实现J.科学技术与工程,2005,5(20):1514-1517.5STMicroelectronicsInc.Spear300UserManualEB/OL.2009-11spearba0408.pdf.邢丽华(讲师)、高志鹏(工程师)、袁德殿(工程师),主要研究方向为嵌入式系统、无线数字通信。(收稿日期:2009-12
20、-11)3.3驱动测试本文的设计方案直接应用于工业级的HMI产品,必须经过严格的测试。利用3台西门子S7系列PLC和1台产品样机搭建令牌网,使用西门子MPI协议进行测试,并利用数据分析工具ProfiTrace监测通信过程。测试结果表明,2400bps12Mbps的各个波特率下都能进行稳定的数据通信。结 语本文详细介绍了DMA数据传输的特点和散列DMA的工作方式。在此基础上,提出了一套基于散列DMA的(上接32页)性能的STM32F103xx系列处理器提高了SD卡的数据读写速率,很好地解决了海洋数据采集中的大容量存储问题和SD1.x与SD2.0的识别问题,并给出了适用于SD卡的FAT32文件系统的参数设置及其实现方法。参考文献1刘素花,龚德俊,徐永平,等.SD卡在海洋数据存储中的应用J.海洋科学,2009,33(3):16-20.2王永虹,徐炜,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 下肢骨折合并下肢肌间静脉血栓诊疗规范
- 广东混凝土相关试题及完整答案
- 2023年医院医生的述职报告(16篇)
- 许慎文化考核试题及参考答案
- 2025-2026学年廊坊市四年级数学第二学期期末复习检测模拟试题含答案解析
- 深挖潜台词的题目和答案展示
- 2026禁烟自查报告(3篇)
- ISO 11855-52021 建筑环境设计.嵌入式辐射加热和冷却系统.第5部分安装标准立项发展报告
- 氯化工艺试卷题目特点和答案
- 装饰项目招投标试题与答案解析
- 装配整体式叠合剪力墙技术交底
- 2025年闵行区机关事业单位编外人员招聘笔试备考试题及答案
- 出国务工人员安全培训课件
- 2025年医疗器械经营质量管理规范培训试题及答案解析
- 西藏节庆管理办法
- 2025至2030年中国果冻布丁产业竞争现状及投资策略研究报告
- DB4403-T 194-2021 物业服务要求 医院
- 2022版《英语课程标准》解读
- 大型钢结构厂房工程项目组织机构设置方案
- 医疗设备仪器的清洁消毒
- 婚纱影楼超级门市培训
评论
0/150
提交评论