当前位置:首页 > 单片机 > 单片机
[导读]摘要 针对电脑横机控制系统对花型文件数据存储的要求,在ATmegal28L单片机基础上采用Micro SD卡实现嵌入式文件系统。文章介绍了Micro SD卡的特点、FAT文件系统、SPI模式协议以及硬件接口的实现。通过ATmegal28L的SPI

摘要 针对电脑横机控制系统对花型文件数据存储的要求,在ATmegal28L单片机基础上采用Micro SD卡实现嵌入式文件系统。文章介绍了Micro SD卡的特点、FAT文件系统、SPI模式协议以及硬件接口的实现。通过ATmegal28L的SPI模式与Micro SD卡进行同步数据传输,实现Micro SD卡的读写,以FAT32文件格式建立相应的文件系统,把数据以文件方式写入Micro SD卡。通过单片机向Micro SD卡发送读写扇区命令,完成文件的创建、打开、读写、删除等操作。
关键词 ATmegal28L Micro SD卡 串行外设协议 文件分配表


引 言
    随着工业控制系统功能的增强,系统对于存储介质的安全、容量、性能的要求越来越高。Micro SD卡是在SD卡和Mini SD卡基础上发展起来的一种多功能存储卡,具备串行和随机存取能力,可以通过专用优化速度的串行接口访问,数据传输可靠,安全性好,传输速度快,存储容量大,体积小,被列为目前全球最小的迷你存储卡。Micro SD卡支持SD模式和SPI模式。随着高性能单片机的性能不断提高,利用高性能、低功耗的AVR 8位ATmegal28L单片机的串行外设接口SPI与Micro SD卡之间进行高速同步数据传输,设计开发了一种嵌入式文件系统。


1 硬件电路设计
    MicrO SD卡的接口可以支持两种操作模式:SD模式和SPI模式。主机系统可以选择其中任一模式。SD卡模式允许4线的高速数据传输,传输速率高,但是大部分单片机无此接口,使用软件模拟协议复杂。SPI模式使用简单通用的SPI通道接口就可实现数据传输,目前大多数单片机提供SPI接口。SPI模式的优势在于可以使用标准主机,从而把外设减少到最低。SPI模式相对于SD模式的缺点是损失了传输速度;但是目前的微处理器的处理速度越来越高,利用SPI模式大都能满足工程需要。
    Micro SD卡要求用全双工、8位的SPI操作。
ATmegal28L单片机和Micro SD卡之间只需要4根信号线就可以完成数据的读写,当CS信号线为低电平时,主机开始所有的总线传输。数据从单片机的MOSI引脚同步输入Micro SD卡的DI引脚,并由Micro SD卡的DO线同步输入单片机的MISO引脚,数据在CLK信号的上升沿同步输入和输出。在每个数据传输的结尾还必须提供8个额外的时钟,以允许Micro SD卡完成任何未完结的操作。由于Micro SD卡的电压为3.3 V,所以选择需要支持3.3 V的I/O端口输出的ATmegal28L单片机。另外,使用SPI模式时,为了防止在无卡接人或卡驱动器呈高阻态时总线悬空,根据SD卡规范,这些信号需要在主机端用10 kQ~100 kΩ的上拉电阻,其硬件连接电路如图1所示。

2 软件设计
2.1 Micro SD卡初始化为SPI总线模式
    ATmegal28L单片机包含一个串行外设接口SPI,可以方便地对Micro SD卡接口进行配置。为了配置时钟和数据长度,需要对SPI控制寄存器SPCR和SPI状态寄存器SPSR进行设置:使能SPI,选择单片机为主机模式,时钟上升沿锁存数据,并且对SPI时钟进行设置。Micro SD卡的SPI模式通信由主机控制。每一个指令或数据块由8位的字节和CS标志构成,SPI通信由指令、响应和数据组成。主机先将Micro SD卡的片选CS置低,激活MicroSD卡进人工作状态。
    刚上电时,Micro SD卡缺省使用专有的SD总线协议。将Micro SD卡切换到SPI模式,主机需要发出命令(2MD0(GO_IDLE_STATE)。Micro SD卡会检测到SPI模式选择信息,因为卡选择(CS)引脚在该命令和其他所有SPI命令传送过程中都保持为低电平。Micro SD卡以R1作为响应。空闲状态位被置为高电平,此时Micro SD卡进入空闲状态,此阶段的SPI时钟频率不能超过400kHz(将SPCR寄存器设置为0x53)。Micro SD卡进入SPI模式后,主机应该先发一条初始化指令CMD1。此时可将SPI频率设置为高速模式(将SPCR寄存器设置为0x50)。然后发送命令CM1359决定是否开启CRC校验,设置读、写块数据长度,最后延迟8个时钟后返回。MicroSD初始化流程如图2所示。

2.2 Micro SD卡读写单块数据
    从Micro SD卡中读取一个数据块只需要主机发送CMDl7(READl_SINGLE_BLOCK)命令,并将起始地址作为参数(此地址必须和介质上一个块的起始位置对齐),然后.Micro SD卡会验证这个字节地址,并以一个R1命令作为响应。完成了Micro SD卡读取操作后,先发送一个起始数据命令,接着发送固定数量的数据,最后是两个字节CRC校验。
    从Mimro SD卡中写入一个数据块和读取数据块相似,需要主机发送CMI)24(wRITE_BLOCK)命令启动写操作过程,Micro SD卡将以R1命令响应格式进行应答。如果命令响应,则进行写操作,主机发送起始令牌,然后发送固定数量的数据字节(512字节),返回一个数据响应令牌指示需要写入的数据是否完成,最后是两个字节的CRC校验,读写单块数据流程如图3所示。

2.3 Micro SD卡的文件存储
    为了方便ATmegal28L单片机对Micro SD卡中文件进行操作,以及要使Micro sD卡的数据能在PC机上得到正确的访问,需要在Micro SD卡上创建它们支持的文件系统,这就需要设计自己的文件管理系统FAT。FAT文件系统有FATl2、FATl6、FAT32,它们的主要不同是在磁盘分配表结构中每个记录所占的位数不同。FAT32文件分配表每一表项为32位。本文选择建立FAT32文件系统。
    文件分配表系统的分区应该有以下几部分:
    ①保留区,FAT32称这个区域为引导扇区(bootsec-tOr)。它是操作系统可以直接访问的第一个扇区,主要包括与引导操作系统有关的引导参数和引导程序,还有就是与FAT文件系统有关的BPB参数(Bios ParameterBlock)。
    ②文件分配表,记录磁盘上簇的分配情况,在条件允许的情况下,通常都会把文件分配表全部读到内存中去。
    ③根目录区,记录根目录的信息。文件和目录数据区,是各种文件数据的实际存放区域。
    一个文件管理系统的工作过程主要有三步:第一步是读取MBR区,主要是读DPT表,了解存储设备分区情况。第二步,读取BPB信息,确定FAT文件系统的各种基本参数。第三步,显示当前目录位置。文件系统的实现,就是把对应的文件目录操作拆成相应的扇区读写命令就可以了。因此,应该在FAT初始化的时候将读写扇区函数指针指向Micro SD卡的读写函数:
   

2.4 FAT32文件系统应用接口函数的实现
    FAT32文件系统向应用层提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT项;FAT_OpenDir(),打开目录;FAT_MkDir(),建目录;FAT_RmI)ir(),删除目录;FAT_Rename(),重命名;FAT_Create(),创建文件;FAT_Open(),打开文件;FAT_write(),写文件;FAT_Read(),读文件;FAT_Close(),关闭打开文件;FAT_Delete(),删除文件。下面对文件的打开、读/写和删除函数接口作详细介绍。
2.4.1 文件的打开
    在该文件系统中,要读/写一个文件必须先打开它,这里通过调用函数FAT_Open()实现,文件的打开可以用只读、只写、读写的方式打开。其中,以只读的方式打开文件时,如果文件不存在,则打开文件错误;以只写的方式打开文件,如果文件存在,则文件先被删除然后再建立这个文件;以读写的方式打开文件与只写方式不同,若文件存在,则不会被删除而是直接打开,否则就和只写方式一样。下面以只写方式打开文件为例:
    首先,函数要查找空闲的打开文件登记项,如果没有找到则不能打开文件,如果找到则记录。然后,获取文件的内部名称及所在目录的首簇号,判断目录是否存在。最后,获取:FDT登记项,判断是否为目录,删除文件,添加FDT表项,修改打开文件的信息登记项,返回句柄。文件以只写方式打开文件的流程如图4所示。

2.4.2 文件的读/写
    SD卡上文件都是以簇为单位存取的。读SD卡上的文件,首先要在FAT初始化之前对SD卡初始化,将FAT中读写一个扇区指向SD卡中读写扇区函数,然后获取文件所在逻辑盘的信息,计算数据所在扇区,读取扇区中的数据,最后调整文件指针。


2.4.3 文件的删除
    删除文件时,不涉及数据区的操作,只须在文件的目录登记项上作一个删除标记,并把文件在FAT表中所占用的簇标记为“空簇”。


结 语
    本设计将Micro SD卡的存储方式应用到电脑横机控制系统中,简化了花型文件数据存储设计,减小了系统的尺寸,提高了系统的可靠性,使得花型文件的读出和存取简单易行,裁剪了FAT32实现了嵌入式文件系统,提高了系统的存储能力。采用ATmegal28L高性能单片机的串行外设接口SPI,满足访问Micro SD卡的功能要求,加快了整个系统的设计进程。实践证明,该文件系统读取Mi—cro SD卡上花型文件的速度满足该控制系统的要求。该嵌入式文件系统只需对底层驱动进行简单修改就可移植到CF卡、闪存等其他的存储介质上。

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

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 信息技术
关闭
关闭