基于嵌入式系统通用SD卡读写器研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式系统通用SD卡读写器研究

基于嵌入式系统通用SD卡读写器研究   【摘 要】随着电子技术的不断发展,嵌入式系统越来越多的在控制类、消费类、通讯类等电子产品广泛应用,嵌入式技术越来越和人们的生活紧密结合。作为嵌入式系统的核心部分,MCU的更新迭代速度也在摩尔定律下逐渐加快。同时SD卡作为嵌入式系统中重要的存储器件,使用范围也越发广泛。但是针对不同型号的单片机编写与SD卡的底层驱动是一件必须但却繁琐的工作。因此,本文提出通过一种外围设备,使得嵌入式系统连接SD卡工作时,能实现即插即用,从而省去重复开发底层驱动的工作。   【关键词】SD卡 嵌入式 数据读取   嵌入式系统技术具有非常广阔的应用前景,与此同时对于嵌入式环境的信息处理需要存储大量的数据,配合适当的存储设备显得十分的迫切,而利用SD卡进行嵌入式的数据储存已经成为一种趋势。   但是随着嵌入式领域的快速发展,每天都会有很多新型的芯片研制出来,但是如果要对每一种芯片都让它能利用SD卡进行存储,势必要对每款芯片单独开发其SD读写驱动,这实际上是一种资源的浪费和重复工作。   为了解决这个问题,本文提出了一种能集合多种芯片的软硬件平台,使得新型芯片不用再去单独开发驱动,只要连接该平台将其作为一个中转器,就能实现一些主流的功能,比如SD卡的读写,USB串口的利用等等。本文的主要工作是在研究SD卡协议的基础上,基于该平台利用SPI接口实现对SD卡的支持。   一、 硬件设计   (一)SD卡电气特性。SD卡主要包括,9针的电气接口,8个寄存器,一个SD卡控制芯片和储存介质。一般标准SD卡容量最高为2G,高速卡的容量一般为2G到32G。 SD工作电压一般为2.6V-3.3V。 普通模式下时钟频率的范围为0-25MHz,最高的传输速率为12.5MB/sec(四数据线传输模式),高速模式下时钟频率范围为0-50MHz,最高的传输速率为25MB/sec。   SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,很多常用单片机没有集成SD卡控制器接口,同时在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前常用的单片机都集成有现成的SPI接口电路,虽然采用SPI模式速度没有优势,但对SD卡进行读写操作可大大简化硬件电路的设计。   (二)SD卡通信模式。本文基于SD卡的SPI通信模式,因此所有的电路设计都是围绕该协议进行设计。物理层的SPI是指高速同步串行口。是一种标准的四线同步双向串行总线。它具有高速的,全双工,同步的通信的特点,并且在芯片的管脚上只占用四根线,节约了芯片的管   脚,同时为PCB的布局上节省空间,提供方便。这种模式通常需要至少4根线,事实上3根也可以,它们是SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。   (三)嵌入式系统MCU。在嵌入式硬件设计中,一旦确定了系统功能,首先要做的就是主控芯片的选型。在考虑到满足性能,价格和功耗的基础上,同时结合本文的研究对象,所以所选芯片应具备SPI模块的MCU,二是所选MCU要具有较快的运算速度。因此这里初步选用核心芯片为STM32。   二、系统设计   本文研究初衷是使各种芯片通过该平台直接对SD卡进行操作,具体方式是通过在上位机编写程序,通过下载直接将SD驱动下载到该应用平台中,此后不同的单片机只需通过连接该平台就可以实现SD卡的读写操作。设计原理以及目的如图3所示。   图3 系统原理   对于SD卡的操作主要是应用到平台的底层接口库――interface库,该库定义了底层的大部分操作,该库调定义了很多结构,比如GPIO,SPI,IIC等,用户在编写应用或是驱动时,可以直接调用。   如:   struct interface_spi_t   {   RESULT (*init)(uint8_t index);   RESULT (*fini)(uint8_t index);   RESULT (*config)(uint8_t index, uint16_t kHz, uint8_t cpol, uint8_t cpha,   uint8_t first_bit);   RESULT (*io)(uint8_t index, uint8_t *out, uint8_t *in, uint16_t bytelen);   };   以上为SPI的结构示例,第一行是初始化;第二行是完成;第三行是设置参数分别是端口号,SPI速率,CPOL,CPHA,从高位开始还是低位开始;第四行是输入输出设置,参数分别为端口号,输出引脚,输入引脚,数据长度)   在调用接口库时要先调用DAL层和MAL层,DAL层是驱动

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档