基于Avalon总线的SD卡读写控制器的设计
0 引言
当前,人们对大数据量的高速存取需求越来越高。SD卡作为新一代数据存储设备,具有大容量,高速度的特点,很好地满足了市场的具体需求,被广泛用于便携式消费类电子设备,例如手机,数码相机、PDA和各种多媒体播放器等。在工业控制领域,同样有大量数据需要采集,存储,分析。而传统用MCU的GPIO模拟SD卡的时序实现读/写调试复杂、读/写速度慢,已经不能符合大多数应用的需求。利用FPGA自身高速并行的特点,开发一种SD卡读写控制器的IP核,不但可以提高性能,而且可以简单实现IP复用,大大提高开发效率,降低成本,具有极大的应用前景。
可编程的片上系统(System on Programmable Chip,SoPC)最先由Altera公司提出,它将尽可能大而完整的电子系统,主要包括NiosⅡ嵌入式处理器、各种硬件接口、数字信号处理系统、普通数字电路逻辑在单一FPGA芯片中实现。SoPC系统中的各个外设通过Avalon总线相连,可简单实现IP复用,因此,系统在开发周期、体积、功耗、功能、产品升级维护等多方面实现最优化,逐渐成为电子产品设计的趋势。
1 Avalon总线简介
Avalon总线是Altera公司专门为SoPC系统指定的一套总线标准,它定义了主从端口对之间通信的信号类型和时序关系。在结构上不同于传统的共享式总线:它在需要连接的每一个主从端口对之间都有点到点的连接,不同的主从端口对之间可以同时进行通信,所以大大提高了系统的性能。Altera一直在致力于为Avalon总线添加一些极其有用高级特性,简化系统设计的同时提高系统的性能。Avalon总线标准也在不断的升级完善,现在已经包含Avalon-MM接口规范和Aval-on-ST接口规范。
在Avalon总线接口的设计中,SoPC Builder提供了直观的图形用户界面,设计人员可以很方便地添加自定义外设,SoPC Builder将自定义外设和其他组件组合起来,生成对这些组件进行例化的单个系统模块,并且自动生成内部总线逻辑,按照设计人员的要求将这些外设与NiosⅡ处理器连接起来,并自动完成外设和存储器的地址映射、中断控制和总线控制等工作。本文主要阐述了SD卡读/写控制器的AvaIon-MM总线接口和SD卡读/写控制逻辑的设计,以圾NiosⅡIDE中读/写控制程序的编写。
2 SD卡的一般读/写过程
SD卡有两种读/写访问模式:SD模式和SPI模式,其中SD模式又分为1 b和4 b两种。由于DE2开发平台硬件上的原因,该设计采用的是1 b的SD模式实现SD卡的读/写。SD卡在上电初期,卡主控通过检测引脚1(DAT3)的电平来决定使用SD模式还是SPI模式。
SD总线上命令和数据的传输从一个起始位开始,以停止位终止。每个时钟周期传输一个命令或数据位。控制器通过CMD信号线发送命令到SD卡,用于对SD卡进行相应的操作,SD卡接收到命令后,会发送相对应的响应给控制器,这些响应中包含了SD卡的一些基本信息和状态信息等。SD卡初始化完成后,进入数据传输阶段,则可以进行读/写操作。为了避免命令,数据和响应传输的错误,SD规范中采用了CRC技术,在传输命令和响应时,需要进行CRC7效验,而在传输数据时,则需要进行CRC16效验。该控制器主要采用SD的CLK,CMD,DAT0三根信号线完成SD卡的读/写。
相关文章
- 2024-07-29声学回声消除算法研究
- 2024-01-05动态微机轨道衡在发电厂的应用及改造
- 2024-07-16超声电源频率跟踪电路的改进
- 2024-05-10成像光谱仪的离轴反射式光学系统设计
- 2024-11-08锥度塞规大径测量方法的探讨
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。