Nios II 软核处理器的SD卡接口设计(二)_第1页
Nios II 软核处理器的SD卡接口设计(二)_第2页
Nios II 软核处理器的SD卡接口设计(二)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 Nios II 软核处理器的SD卡接口设计(二) 2.1 SD卡初始化 在对SD 卡开展读/写之前,必须知道卡的类型、卡的容量、卡的大小等信息。具体来说,初始化函数主要完成以下工作: (1) 微处理器(这里指Nios II)复位SD卡,激活SD卡内部控制电路开展初始化处理,使SD卡进入SPI 模式; (2) 发送命令查询SD卡是否支持3.3V供电; (3) 调整SPI时钟频率; (4) 根据编译选项使能或者禁止通信过程中的CRC校验; (5) 设置用于读/写操作的块数据长度; (6) 是初始化全局变量sds. SD卡初始化函数INTSU SD_Initializ

2、e(viod)就是用于完成以上任务的,它读取SD卡内部CSD存放器,然后对全局变量sds开展赋值。 2.2 SD卡读写操作 对SD卡的读写操作需要知道SD 卡的一些基本的属性:插入卡座中SD卡的型号;SD卡中全部块的数量;SD卡的数据块的长度;可擦除的块数量;卡的读取、写入、擦除操作的超时时间。 SD卡读/写软件包中定义了一个全局变量sds,软件包的很多地方使用了这个全局变量。SD卡的写操作包括写单块和写多块两种方式。SD卡的初始化函数SD_Initialixe()已经调用SD_SetBlockLen()函数设定了读/写数据的长度为SD_BLOCKSIZE 字节,所以卡初始化以后,读写都必须以

3、块为单位。 3 SD卡驱动设计 Nios II软件架构是建立在HAL(Hardware Abstraction Layer)根底之上的。HAL为Nios II的软件开发者提供了操作底层硬件的编程接口。设备驱动驱动程序的编制一般要使用HAL提供的API函数以及C标准库等。HAL提供的功能以及它与底层设备驱动程序之间的关系如图3所示,这种模块化的设计架构可以加速应用程序的开发。使用这种分层的体系架构,HAL层把应用程序和底层硬件驱动程序之间隔离开来,使得应用程序的开发不依赖于底层HAL和硬件的变化,增加了应用程序的可移植性。设计驱动程序重要的是理解具体SD卡的读写操作的过程,之后是如何和嵌入式操作

4、系统连接起来。在编制好SD卡的驱动程序后,在应用程序中操作SD卡就简单了。所以编制SD卡的驱动在本设计中是重要的一部分。 图3 基于HAL的系统层次构造 结束语 本文基于Nios II实现了对于SD卡的控制,不仅包括硬件设计还包括系统软件设计。传统的系统设计是基于硬核处理器的架构,系统的硬件设计受到了限制。SOPC的设计思想使得片上系统的设计更加灵活,硬件设计的限制因素基本不存在了。在一个FPGA的芯片上几乎可以实现一个整个系统,对于系统的小型化的作用是显着的。本文对基于Nios的嵌入式系统的设计开展了深入的研究,并在此根底上,设计完成了以Altera公司的Cyclone III系列中的EP3C16 FPGA为芯片的SOPC开发平台。另外本文在此平台之上,移植了嵌入式操作系统,并在此环境下实现了SD卡的接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论