当前位置: 东星资源网 > 作文大全 > 四年级作文 > 正文

单片机读写SD卡电路设计与程序 51单片机读取sd卡

时间:2019-02-08 来源:东星资源网 本文已影响 手机版

  摘要:本文设计了单片机读写SD卡电路,从硬件设计到软件实现的过程。本文以ARM 7为例,描述了设计工作原理,并给出连接图和程序。    关键字:SD卡单片机   Abstract: the paper presents the design of the single chip computer literacy SD card circuit, from hardware to software implementation process of design. Based on the ARM and for example, describes the design principle, and gives connection diagram and procedures.
  Key word: SD card microcontroller
  
  
   中图分类号:TN108.7文献标识码:A文章编号:
   引言
   近年来,使用半导体存储器作存储媒体是影音器材一个新的发展热点和潮流。目前已出现了各种各样的存储卡,如多媒体存储卡(MMC)、安全数字(SD)存储卡、记忆棒(MS)等。
   SD卡就是Secure Digital Card--安全数码卡,是由日本松下公司,东芝公司和美国SANDISK公司1999年8月共同开发研制的,具有大容量,高性能,尤其是安全等多种特点的多功能存储卡。随后并成立一家名为SD-3C的公司负责将相关技术规格授权厂商制造。并于2000年1月正式成立SD Association,向全世界推广SD内存标准规格,并进行制定SD卡相关应用产品规格及检测规范。
   1 系统设计方案
   1.1系统硬件组成
  
   图1系统组成
   本设计硬件电路采用的整体结构如图1所示。RS232―HOST(单片机)―SD卡。其中单片机采用流行的ARM 7 PLC2132,串行接口RS232为标准3线制。
   由稳定电压器供给5V电压,单片机通过SPI总线:时钟、输入、输出、片选4个I/O接口控制SD卡的读写操作。由于SD卡的供电电压为3.3V,所以我采用了LM317对SD卡提供3.3V的电压。SD的输入输出电压电平是3.3V的,而单片机的4个I/O接是5V的TTL电平,所以我采用了74LVX4245电平转换驱动芯片,对SD卡的数据传输进行驱动。
   2 系统程序设计
   2.1 SD卡模态选择
   SD卡在工作时有两种总线模式:SD总线模式和SPI总线模式。两种模式下从管脚定义到数据传输协议都是不同的,比较如下:
   1)、SD总线模式的优点是可以采用4条数据线并行传输数据,数据传输速率高。缺点是传输协议较为复杂,只有少数高档的单片机才提供此接口,若用软件的方法来模拟SD总线,则是很繁琐的,而且这样将大大降低SD卡的数据传输速率。
   2)、SPI总线模式缺点是只有一条数据传输线,所以数据传输速率较低;优点是绝大多数中高档单片机都提供SPI总线,即使不提供,也很容易用软件的方法来模拟SPI总线,而且SD卡的SPI总线模式传输协议简单,易于实现。本设计采用SPI总线模式进行数据传输的。
   2.2 上电模式
   当加电之后,SD卡热插入,SD卡进入等待状态.在这时候SD卡不理睬所有的总线数据,直到收到ACMD41(ACMD指令类型将总是以CMD55之前)。ACMD41是一个用来操作电压范围和获得卡特别同步指令。除卡的操作电压范围之外, ACMD41回应包含忙碌的指令,指出卡仍然正在处理它的加电的程序而且还没准备好确认。这一位告知主机卡还没准备好。主机必须等候(继续等待)直到这一位被清除的。在SD卡的加电程序上,最大时间将不超过1秒。
   2.3 读数据
   在数据传输中,SPI模态中支持单区段和多区段操作(SD卡的CMD17或CMD18指令)。在接到有效的阅读命令时,SD卡回应以一个被SET_BLOCK_LENGTH(CMD16)指令定义一个数据.如图2 所示。
  
   图2区段读操作
   最大的区段长度是READ_BL_LEN(CSD参数)所定义的512个字节。区段长度可能是在 1到READ_BL_LEN之间任何数值。
   开始地址可能是卡有效范围的地址中任何的字节。但一定是包含在同一扇区里。假使数据接收错误,卡将停止传输任何的数据。这时一个特别的错误数据将会被送到主机。
   2.4 写数据
   在写数据时,首先进入SPI模态, SD卡支持单一区段或者多区段写操作。在接到有效的写命令(CMD24或CMD25)后,卡会回应而且将等候一个数据区段从主机送出。CRC后缀和开始地址限制和阅读操作相同见图 3 。512个字节是唯一的有效区段长度。设定较小的区段长度将会引起下一个写指令错误。
  
   图3单区段写操作
   每个数据区段前缀或开始区段(一个字节)作为起始.在一个数据区段被接收之后卡将会回应一个数据响应码,而且如果收到的数据区段没有错误,它将会按照程序规划。如果卡在执行操作,它将会发出连续“忙”代码给主机 (使data Out低电平).程序执行完成后,主机一定通过SEND_STATUS指令(CMD13)检查结果.一些错误(如,地址超出范围, 违反写保护,等等)在检查期间发现。确认检查输出数据上区段数据(CRC)和写错误指示回应给主机。SD卡写操作流程图4 所示。
  
   图4 SD卡写操作流程图
   SPI总线模式支持单块(CMD24)和多块(CMD25)写操作,多块读操作是指从指定位置开始写下去,直到SD卡收到一个停止命令(CMD12)才停止此次写操作。单块写操作的数据块长度只能是512字节,其操作流程如图 6,SD卡收到一个有效的写命令后,向主机发送回应信号,之后等待来自主机的数据块。主机发送数据前首先要发送一个起始标志,再发送512字节数据,后跟两个字节的CRC校验。然后接收SD卡对数据块的响应标志,如果没有错误,则SD卡进入忙状态(DataOut变为低电平),此时可以不断的检测SD卡的状态,直到DataOut为高电平,写操作结束。读操作与写操作类似。
   3 结束语
   随着电子技术的不断发展,数据存储技术越来越和人们的生活紧密结合,对于数据采集,存储设备的保存技术越来越重要。可靠,高性能,体积小的储存介质被人们重视。
  
   参考文献
   [1] 潘永雄,沙河,刘向阳. 存储卡在实际生活中的应用,2004, 17(3):315~324
   [2] J.Y.Li, X.L.Chen,H.Li. Fabrication of zinc oxide nanorods. Journal ofCrystal Growth, 2001,233:5~7
   [3] 李欲华,李舫,孙明?自装IC智能卡机?西安:西安交通大学出版社,2005?152
   [4] SanDisk Corporation .Secure Digital card Praduct Manual Revision 1.7. 2006.9
   [5] 赵新民,智能仪器设计基础?哈尔滨工业大学出版社,2003.1
   注:文章内所有公式及图表请以PDF形式查看。

标签:单片机 读写 电路设计 程序