当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]大容量辅助存储系统的设计

 摘要:串行SPI通信协议是一种标准的通信协议。本文首先简要介绍了SPI总线模式,然后阐述了单片机在SPI协议下与SD卡硬件接口电路,以及软件模拟的SPI总线数据传输,最后给出了具体实现SD卡的初始化、FAT32文件系统的管理和写操作的软件流程。

  0 引言

  SD卡英文全称为Secure DIGITAL Memory Card,其以FLASH Memory为存储体,具备体积 小、容量大、功耗低、可擦写以及非易失性等特点,在需要长时间地采集、记录海量数据时, 以SD卡作为存储媒质是一种很好的选择。

  1 系统硬件设计

  1.1 SPI总线

  SPI是一种串行总线接口,主要通过三根线进行数据传输:同步时钟线SCK,主/从机输 出线MISO、主/从机输入线MOSI,还有一条低电平有效的从机片选线CS。SPI系统的片选信号 以及同步时钟脉冲由主机提供。SPI模式通过四条线就可以完成所有的数据交换,传输协议 简单,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。 SPI消息由指令、回应和数据块组成,所有的操作均由主设备控制。

  SPI接口有0、1、2 和 3共四种操作模式。SPI操作模式决定了设备接收和发送数据时的时钟相位和极性,即决定了 时钟信号的上升和下降沿与数据流动方向之间的关系,如图1所示。本设计采用模式3。

 

  1.2 硬件电路设计

  MCU采用的是ATMEL公司生产的低电压、高性能CMOS8位单片机AT89S51,内含4K字节的可 反复擦写的ROM存储器和128字节的RAM存储器。由于SD卡的数据写入是以块为单位,每块为 512字节,所以在单片机最小系统上增加一片RAM。本系统中RAM选用存储器芯片AT24C64,容 量为64K位。

  对于不带SPI串行总线接口的单片机来说,可以使用软件来模拟SPI的操作,包括串行时 钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于 在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时 钟输出口P1.1的初始状态设置为1,而在允许接口后再置P1.1为0。这样,MCU在输出1位SCK 时钟的同时,将使接口芯片串行左移,从而输出1位数据至单片机的P1.3口(模拟MCU的MISO 线),此后再置P1.1为1,使单片机从P1.0(模拟MCU的MOSI线)输出1位数据(先为高位)至 串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置P1.1为0,模拟下1位数 据的输入输出……,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。对于在SCK 的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接 口芯片允许时,先置P1.1为1,以便外围接口芯片输出1位数据(MCU接收1位数据),之后再 置时钟为0,使外围接口芯片接收1位数据(MCU发送1位数据),从而完成1位数据的传送。[!--empirenews.page--]

  为解决电平匹配问题,在MCU和SD卡数据传输之间加了光电耦合器,其抗干扰性能和隔 离性能比较好,由它构成的逻辑电路更可靠。硬件电路连接如图2所示。

  2 系统软件设计

  2.1 SD卡初始化

  在SD卡上电复位后,SD卡控制器在向SD卡发送任何命令之前,应向SD卡发送至少74个时 钟周期,以等待SD卡完成上电复位过程,而且此时控制器应将片选信号线置高。在上电复位 完成后,将片选信号线CS置低,即选中SD卡,且发送软件复位指令(CMD0),SD卡即可进入SPI 模式,并且处于空闲状态。若要对SD卡实现读写操作,单片机应持续发送激活指令CMD1,直 到收到SD卡正确的响应数据0x00,表明SD卡已经退出空闲状态,可以对SD卡寄存器进行读/ 写以及实现数据的传输操作。

  2.2 FAT32文件系统

  FAT32文件系统突破了磁盘管理空间2G的界限,能够管理更大的磁盘空间。SD卡上的 FAT32文件系统的结构包含分区引导记录、文件分配表、文件目录表以及数据区4个部分。[!--empirenews.page--]

  分区引导记录保存着与文件分配表系统有关的基本输入、输出系统参数分配表(biosparameter block,BPB)。它主要记录文件分配表各个部分的起始扇区以及占用扇区的数目, 根目录大小和簇的大小等重要信息。 在分区引导记录之后是FAT(File Allocation Table,文件分配表)区。FAT32的文件 系统中有两份完全相同的文件分配表FATl和FAT2,每份FAT表占用空间的大小可从BIOS参数 记录块中查得。

  文件分配表的作用是记录磁盘上簇的分配情况。一个文件一般需要占用很多 簇。同一个文件不一定会完整地存放在一个连续存储空间内,而是分成若干段,像链子一样 的存放。在文件名记录中,首先指向文件存储的链头所在文件分配表簇,而该簇的文件分配 表存放下一个链子的文件分配表簇值,如果是文件结尾,使用一个文件结束标志,表示到达 链尾,这样就标识了文件的链式存储,FAT表就是记录文件存储中簇与簇之间连接信息的。

  紧接在FAT表之后的是文件目录表FDT,占32个扇区,每个扇区可以容纳16个登记项,每 个登记项的长度是32字节。文件目录表记录文件的名称,通过目录表查找已存在的文件名, 从而找到指定的文件进行操作。每个文件对应一个描述其属性的结构,定义如表1。

  文件目录项结构实现如下:

  Struc direntry

  {

  Unsigned char fName[8];

  Unsigned char fExtension[3];

  Unsigned char fAttributes;

  Unsigned char fLowerCase;[!--empirenews.page--]

  Unsigned char fCHundredth;

  Unsigned char fCTime[2];

  Unsigned char fCDate[2];

  Unsigned char fADate[2];

  Unsigned char fHighClust[2];

  Unsigned char fMTime[2];

  Unsigned char fMDate[2];

  Unsigned char fLowCluster[2];

  Unsigned char fFileSize[4];

  }

  文件目录表之后就是数据区DATA,用来存放文件数据,占用大部分的磁盘空间。数据的 读写以扇区为单位,一个簇所包含的扇区数由BPB参数来决定,通过根目录找到对应的文件 名,格式化完成或进行写操作时,就要新建对应文件名的文件分配表区和根目录区,通过文 件分配表区中的保存的簇号,完成对应的数据读写,完成一个簇的操作后,根据文件分配表 的链式结构,找到文件的待操作的下一个簇的簇号,进行相应的操作,直到文件结束。

  2.3 数据块的写操作

  完成SD卡的初始化之后即可进行它的读写操作。SD卡的读写操作都是通过发送SD卡命令 完成的。SPI总线模式支持单块(CMD24)和多块(CMD25)写操作。单块写操作的数据块长 度只能是512字节。单块写入时,命令为CMD24,当应答为0时说明可以写入数据。SD卡对每 个发送给自己的数据块都通过一个应答命令确认,它为1个字节长,当低5位为00101时,表 明数据块被正确写入SD卡。多块写是单块连续写的循环操作,只是写单块和写多块开始时的 令牌包有所不同,多块操作是从指定位置开始写下去,直到SD卡收到一个停止命令CMD12时 才停止。多块数据写时序如图3所示。

  3 结束语

  通过对SPI模式下SD卡写操作和文件系统的研究,实现了单片机对SD卡FAT32文件的操 作,包括文件的创建、写操作等。该课题研究在数据采集系统方面有着广泛的应用前景,项 目实施以来直接经济效益20万元。本文创新点:为数据采集系统提供了一种非易失性存储的 解决方案,采集到的大量数据会以标准数据文件的格式记录到SD卡上。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭