欢迎来到天天文库
浏览记录
ID:21864429
大小:55.00 KB
页数:6页
时间:2018-10-25
《单片机读写sd卡电路设计与程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机读写SD卡电路设计与程序:本文设计了单片机读写SD卡电路,从硬件设计到软件实现的过程。本文以ARM7为例,描述了设计工作原理,并给出连接图和程序。 关键字:SD卡单片机 Abstract:thepaperpresentsthedesignofthesinglechipputerliteracySDcardcircuit,fromhardplementationprocessofdesign.BasedontheARMandforexample,describesthedesignprinciple,andgivesconnectiondiag
2、ramandprocedures. Keyicrocontroller :TN108.7:A: 引言 近年来,使用半导体存储器作存储媒体是影音器材一个新的发展热点和潮流。目前已出现了各种各样的存储卡,如多媒体存储卡(MMC)、安全数字(SD)存储卡、记忆棒(MS)等。 SD卡就是SecureDigitalCard--安全数码卡,是由日本松下公司,东芝公司和美国SANDISK公司1999年8月共同开发研制的,具有大容量,高性能,尤其是安全等多种特点的多功能存储卡。随后并成立一家名为SD-3C的公司负责将相关技术规格授权厂商制造。并于20
3、00年1月正式成立SDAssociation,向全世界推广SD内存标准规格,并进行制定SD卡相关应用产品规格及检测规范。 1系统设计方案 1.1系统硬件组成 图1系统组成 本设计硬件电路采用的整体结构如图1所示。RS232—HOST(单片机)—SD卡。其中单片机采用流行的ARM7PLC2132,串行接口RS232为标准3线制。 由稳定电压器供给5V电压,单片机通过SPI总线:时钟、输入、输出、片选4个I/O接口控制SD卡的读写操作。由于SD卡的供电电压为3.3V,所以我采用了LM317对SD卡提供3.3V的电压。SD的输入输出电压电平是3
4、.3V的,而单片机的4个I/O接是5V的TTL电平,所以我采用了74LVX4245电平转换驱动芯片,对SD卡的数据传输进行驱动。 2系统程序设计 2.1SD卡模态选择 SD卡在工作时有两种总线模式:SD总线模式和SPI总线模式。两种模式下从管脚定义到数据传输协议都是不同的,比较如下: 1)、SD总线模式的优点是可以采用4条数据线并行传输数据,数据传输速率高。缺点是传输协议较为复杂,只有少数高档的单片机才提供此接口,若用软件的方法来模拟SD总线,则是很繁琐的,而且这样将大大降低SD卡的数据传输速率。 2)、SPI总线模式缺点是只有一条数据传输线
5、,所以数据传输速率较低;优点是绝大多数中高档单片机都提供SPI总线,即使不提供,也很容易用软件的方法来模拟SPI总线,而且SD卡的SPI总线模式传输协议简单,易于实现。本设计采用SPI总线模式进行数据传输的。 2.2上电模式 当加电之后,SD卡热插入,SD卡进入等待状态.在这时候SD卡不理睬所有的总线数据,直到收到ACMD41(ACMD指令类型将总是以CMD55之前)。ACMD41是一个用来操作电压范围和获得卡特别同步指令。除卡的操作电压范围之外,ACMD41回应包含忙碌的指令,指出卡仍然正在处理它的加电的程序而且还没准备好确认。这一位告知主机卡还
6、没准备好。主机必须等候(继续等待)直到这一位被清除的。在SD卡的加电程序上,最大时间将不超过1秒。 2.3读数据 在数据传输中,SPI模态中支持单区段和多区段操作(SD卡的CMD17或CMD18指令)。在接到有效的阅读命令时,SD卡回应以一个被SET_BLOCK_LENGTH(CMD16)指令定义一个数据.如图2所示。 图2区段读操作 最大的区段长度是READ_BL_LEN(CSD参数)所定义的512个字节。区段长度可能是在1到READ_BL_LEN之间任何数值。 开始地址可能是卡有效范围的地址中任何的字节。但一定是包含在同一扇区里。假使
7、数据接收错误,卡将停止传输任何的数据。这时一个特别的错误数据将会被送到主机。 2.4写数据 在写数据时,首先进入SPI模态,SD卡支持单一区段或者多区段写操作。在接到有效的写命令(CMD24或CMD25)后,卡会回应而且将等候一个数据区段从主机送出。CRC后缀和开始地址限制和阅读操作相同见图3。512个字节是唯一的有效区段长度。设定较小的区段长度将会引起下一个写指令错误。 图3单区段写操作 每个数据区段前缀或开始区段(一个字节)作为起始.在一个数据区段被接收之后卡将会回应一个数据响应码,而且如果收到的数据区段没有错误,它将会按照程序规划。如
8、果卡在执行操作,它将会发出连续“忙”代码给主机(使dataOut低电平).程序执行完成后,主机
此文档下载收益归作者所有