0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA技术实现SD模式设备接口的设计方案

牵手一起梦 来源:网络整理 作者:佚名 2020-01-16 10:00 次阅读

SD存储卡接口定义了两种通信模式,SD模式和SPI模式。分析了SD传输协议后,给出了一种SD模式设备接口的设计方案。该设计能够自动解析主机发送的命令并响应,与Flash控制器相连后可以对Flash进行读写操作。为了解决数据存取的时序问题,使用了数据缓存技术。FPGA验证表明,该接口能够被电脑识别为SD卡,达到了设计目标。

1、引言

SD卡(Secure Digital Card)是“安全数码存储卡”的简称,于1999年8月由美国SanDisk公司、日本东芝松下公司共同开发研制成功。随着数码产品的广泛使用,目前SD卡已经成为消费数码产品设备中最广泛的一种存储卡。在手机中,大量的安全增值业务设计就是通过SD接口实现的。SD物理层规范定义了两种可选择的通信协议:SD模式和SPI模式。

本文在研究了SD物理层规范的基础上,实现SD设备接口SD模式的前端设计,并进行了FPGA原型验证。

2、SD存储卡接口SD模式介绍的书写规则

SD卡与控制器之间通过以下9线连接:时钟CLK、命令CMD、数据D0~D3、电源VDD和两根地线VSS。其总线拓扑结构如图1所示。命令和响应在CMD线上传输,数据在D0(标准总线模式)或D0~D3(宽总线模式)线上传输。

SD卡的所有命令都是6字节长度。一个命令总是以起始位(0)开始,后跟传输方向位(1),接下是6位命令索引,然后是32位命令参数,CRC7校验位,结束位(1)。SD的响应分为R1、R1b、R2、R3、R6、R7六种,其中R1、R1b、R3、R6、R7为6字节长度。R2为17字节长度,用于读取SD卡的CID/CSD寄存器内容。一个响应总是以起始位(0)开始,后跟一个传输方向位(0)。除了R3响应类型,所有的响应都有CRC保护。以一个结束位(1)结束。SD数据传输以块为单位,每个块总是由数据起始位(0)、数据位、CRC16校验位和数据结束位(1)组成。

基于FPGA技术实现SD模式设备接口的设计方案

图1 SD卡SD模式的总线拓扑结构

3、整体设计架构

本设计的一端为SD存储卡标准接口,与读卡器连接。为了使接口有通用性,另一端与Flash控制器连接,从而达到与不同型号Flash连接的目的。本设计是连接读卡器和Flash控制器的一个中间模块。能够对读卡器发送的命令进行解析并响应,通过Flash控制器对Flash进行读写操作。整体设计方案如图2所示。

基于FPGA技术实现SD模式设备接口的设计方案

图2 设计方案

4、 结构设计

根据SD接口功能,将其进行详细的划分,由以下几个部分组成:命令收发模块,数据收发模块,状态控制模块和校验模块。SD模块结构如图3所示。

4.1 命令收发模块

该模块的结构如图4所示。命令接收与响应发送都是在命令线CMD上传输的,所以该端口为一个三态门,由输出使能信号En控制是否输出。命令接收时,首先检测命令起始位,检测到起始位后计数器开始工作。当接收完一个完整命令,发出接收完成信号End,分别得到移位寄存器中对应的命令索引,命令参数,命令校验。命令接收过程中,同时将数据传给CRC7校验模块,用于生成校验数据。响应发送时,模块根据状态控制模块给出的响应类型产生对应的响应内容,当接收到发送使能信号Start后,给出发送使能信号En,并将响应的内容通过移位寄存器发送出去。响应内容发送完成后给出响应完成信号Rsp_over。

基于FPGA技术实现SD模式设备接口的设计方案

图3 模块结构

基于FPGA技术实现SD模式设备接口的设计方案

图4 命令接收与响应模块

4.2 数据收发模块

该模块的结构如图5所示。数据线也是双向的。Width信号指明当前数据传输模式为标准总线模式或宽总线模式。Size信号指示每个数据块包含的字节数。该模块包含两个数据缓冲,接收缓冲RxFIFO和发送缓冲TrFIFO,数据缓冲位宽16比特,深度为256,这是因为数据块最大为512字节。数据接收状态时,首先检测数据起始位,检测到起始位后计数器开始工作。接收Size个字节的数据后,接收CRC16校验位,最后完成数据块接收,发出接收完成信号End。数据接收过程中,每接收16位数据给出写入信号Wr,将数据写入RxFIFO。如果RxFIFO满,给出Busy信号,主机进入数据发送等待。数据发送状态时,接收控制器收到Start信号后,开始发出Rd信号读取TrFIFO数据,并将数据传给移位寄存器,使能数据输出控制信号Out_en,移位寄存器根据数据传输模式将数据输出。

基于FPGA技术实现SD模式设备接口的设计方案

图5 数据收发模块

4.3 状态控制模块

根据接收模块传送的命令编号产生与之对应的命令响应类型,进一步解析接收模块传送的命令参数。工作过程共有9个状态,状态间的转移关系如图6所示。接收到CMD0命令后都会从其它状态进入到空闲状态。

基于FPGA技术实现SD模式设备接口的设计方案

图6 状态转移

4.4 校验模块

CRC7负责校验命令收发模块中的命令和响应;CRC16负责校验数据收发模块中的数据。

5、 验证与测试

开发测试平台使用的是Altera的CycloneII系列FPGA开发板。开发板上有一个SD接口。测试平台的实物如图7所示。开发板可以通过一个PCB板SD接口与电脑SD接口连接,利用电脑对设计进行验证。

图7 测试平台

硬件调试过程中,采用内嵌式逻辑分析仪(SignalTapII)来采集相应的数据波形。图8是采集到的识别SD卡命令与响应波形图。从图中可以看出,该设计可以正确响应主机命令,完成识别过程。

图9中虚线所圈是将设计下载到FPGA开发板,与电脑相连接后被识别为SD存储卡标记,可以看出该设计可以被电脑正确识别。

6、结束语

本文实现了一种SD存储卡接口SD模式IP核的设计与实现。该设计能够对主机命令进行自动解析和回复,与Flash控制器连接后可以直接对Flash进行读写操作。对该设计进行FPGA功能验证,能够被电脑识别为SD接口,从而说明的设计的正确性和实用性。利用SYNOPSYS公司的EDA工具对该模块进行综合,并进行时序和面积的优化,在SMIC0。18μm工艺下最大工作频率为100MHz,整个设计综合后为0.6万门。

基于FPGA技术实现SD模式设备接口的设计方案

图8 通信过程

基于FPGA技术实现SD模式设备接口的设计方案

图9 电脑识别

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593173
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171172
  • 读卡器
    +关注

    关注

    1

    文章

    396

    浏览量

    38961
收藏 人收藏

    评论

    相关推荐

    基于FPGA的I2C SLAVE模式总线的设计方案

    本文以标准的I2C 总线协议为基础,提出了一种基于FPGA的I2C SLAVE 模式总线的设计方案方案主要介绍了SLAVE 模式的特点。给
    发表于 02-26 11:39 1.2w次阅读

    基于FPGA技术的IDE硬盘接口的设计

    本文介绍了一种基于 FPGA 技术的IDE 硬盘接口的设计。该卡提供两个符合ATA-6 规范的接口,采用FPGA
    发表于 01-12 14:38

    WIFI无线技术各种热门设计方案~

    基于WiFi的无线测控系统设计与实现一种基于WIFI的室内定位系统设计与实现简述基于WIFI停车场方案阐述蓝牙与WIFI网络互联设计方案详述银行营业点WIFI认证管理
    发表于 12-13 15:26

    基于ARM和FPGA的环形缓冲区接口设计方案

    摘要:目前,基于ARM和FPGA架构的嵌入式系统在通信设备中得到广泛的应用。文章提出了一种基于ARM和FPGA的环形缓冲区接口设计方案,从而
    发表于 05-30 05:00

    基于FPGA的数据采集控制器IP核的设计方案实现方法研究

    此提供了新的解决方案。IP核(IP Core)是具有特定电路功能的硬件描述语言程序,可较方便地进行修改和定制,以提高设计效率[3]。本文研究了基于FPGA的数据采集控制器IP 核的设计方案
    发表于 07-09 07:23

    求一款在PCI总线上利用FPGA技术设计PCI总线接口设计方案

    PCI总线特点及开发现状PCI接口配置空间的实现求一款在PCI总线上利用FPGA技术设计PCI总线接口
    发表于 04-15 06:17

    如何用FPGA实现DVB码流分析功能的嵌入式设计方案

    如何用FPGA实现DVB码流分析功能的嵌入式设计方案
    发表于 04-28 06:19

    基于FPGA 的IDE硬盘接口卡的实现

    本文介绍了一种基于FPGA 技术的IDE 硬盘接口的设计。该卡提供两个符合ATA- 6 规范的接口,采用FPGA
    发表于 07-22 15:58 0次下载

    SPI模式SD卡驱动的设计与实现

    SPI模式SD卡驱动的设计与实现 SD卡以其优越的性能在嵌入式设备上得到广泛的应用。介绍在 S1C33L05 处理器上利用 SPI总线进
    发表于 02-11 08:50 240次下载

    基于FPGA的IDE硬盘接口卡的实现

    本文介绍了一种基于FPGA技术的IDE硬盘接口的设计。该卡提供两个符合ATA-6规范的接口,采用FPGA
    发表于 08-09 15:11 22次下载

    基于FPGA技术的RS232接口时序电路设计方案

    基于FPGA技术的RS232接口时序电路设计方案
    发表于 01-26 11:36 29次下载

    AT89C52单片机与SD实现通讯的设计方案

    。然而,AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情
    发表于 05-17 15:37 2864次阅读
    AT89C52单片机与<b class='flag-5'>SD</b>卡<b class='flag-5'>实现</b>通讯的<b class='flag-5'>设计方案</b>

    如何使用FPGA实现SD卡控制器的设计

    FPGA为平台,设计了采用SPI接口SD卡控制器。整体设计用Verilog HDL硬件描述语言实现,同时采用数据缓存(First In First Out,FIFO)
    发表于 12-22 17:07 2次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>SD</b>卡控制器的设计

    求一种FPGA实现图像去雾的实现设计方案

    本文详细描述了FPGA实现图像去雾的实现设计方案,采用暗通道先验算法实现,并利用verilog并行执行的特点对算法进行了加速;
    发表于 06-05 17:01 897次阅读
    求一种<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>图像去雾的<b class='flag-5'>实现</b><b class='flag-5'>设计方案</b>

    怎么通过FPGA采取SD模式实现Micro SD卡的驱动

    在这篇文章,进入正题,说一说怎么通过FPGA采取SD模式实现Micro SD 卡的驱动,也就是怎么去读写 Micro
    的头像 发表于 09-19 11:48 1096次阅读
    怎么通过<b class='flag-5'>FPGA</b>采取<b class='flag-5'>SD</b><b class='flag-5'>模式</b><b class='flag-5'>实现</b>Micro <b class='flag-5'>SD</b>卡的驱动