[发明专利]一种基于APB总线的SD/MMC卡控制方法有效
申请号: | 201410539737.0 | 申请日: | 2014-10-13 |
公开(公告)号: | CN105573947B | 公开(公告)日: | 2018-10-26 |
发明(设计)人: | 黄佳;王蒙;李婷婷;易建龙;王宁;魏东 | 申请(专利权)人: | 北京自动化控制设备研究所 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 核工业专利中心 11007 | 代理人: | 高尚梅;刘昕宇 |
地址: | 100074 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 apb 总线 sd mmc 控制 方法 | ||
1.一种基于APB总线的SD/MMC卡控制方法,其特征在于,包括下述步骤:
步骤一:指令响应收发控制
指令响应收发控制由指令响应收发控制状态机完成,它包括6种状态IDLE1、WRITE_WR1、WRITE_WO1、DLY_WR1、DLY_WO1、READ_WR1,
在IDLE1状态下,指令响应收发控制状态机根据外部指令判断该指令是否需要响应回复,
步骤二:数据传输控制
数据传输控制由数据传输控制模块完成,它分为6种状态IDLE2、WRITE_DAT2、WRITE_CRC2、WRITE_BUSY2、READ_WAIT2、READ_DAT2;
所述的步骤一中指令响应收发控制状态机的工作过程分为两条分支:
分支1:IDLE1-〉WRITE_WR1-〉DLY_WR1-〉READ_WR1-〉IDLE1;
分支2:IDLE1-〉WRITE_WO1-〉DLY_WO1-〉IDLE1,
各状态作用如下所示:
(1)IDLE1状态:IDLE1状态下除了完成指令的初始化工作以外,还需要根据处理器设置信息完成下一状态的跳转操作,若所发送的指令需要响应回复,状态机进入分支1的WRITE_WR1状态;若不需要响应回复,状态机进入分支2的WRITE_WO1状态;
(2)WRITE_WR1状态:WRITE_WR1状态完成指令的并串转换和CRC校验码的生成,并从CMD信号线发送至外挂设备,该状态还需要判断该指令是否要求从设备读取数据,若需要读取数据则产生一个SDMMC_CLK时钟周期高脉冲的DATA_READ1信号传递给数据传输控制模块;若不需要则直接跳转至DLY_WR1状态;
(3)WRITE_WO1状态:相对于WRITE_WR1状态,WRITE_WO1状态较为简单,它仅需要完成指令的并串转换和CRC校验码的生成,完成指令的发送操作后直接跳转至DLY_WO1状态;
(4)DLY_WR1状态:该状态的主要工作包括设置CMD信号线为高阻、复位并禁止CRC校验模块,并且等待接收CMD信号线上的响应起始位,待接收到后跳转到READ_WR1状态;
(5)DLY_WO1状态:该状态完成设置CMD信号线为高阻、复位并禁止CRC校验模块后,等待4个时钟周期,然后直接跳转至IDLE1状态;
(6)READ_WR1状态:READ_WR1状态负责设备返回响应的接收,它会根据处理器设置的响应字节长度完成接收响应的串并转换,进行CRC校验,并置相应的状态位供处理器读取。
2.如权利要求1所述的一种基于APB总线的SD/MMC卡控制方法,其特征在于:
所述的步骤二中数据传输控制模块的工作分成了两条分支,分支1为数据写操作,分支2为数据读操作:
分支1:IDLE2-〉WRITE_DAT2-〉WRITE_CRC2-〉WRITE_BUSY2-〉IDLE2;
分支2:IDLE2-〉READ_WAIT2-〉READ_DAT2-〉IDLE2,
各状态作用如下所示:
(1)IDLE2状态:IDLE2状态主要功能是完成一次数据读/写操作的初始化工作,如CRC校验码清零、写缓冲区清零、DAT[7:0]信号线置高阻态等;
(2)WRITE_DAT2状态:WRITE_DAT2状态下,状态机通过控制双口RAM的端口使能信号,从双口RAM中读取数据,并对读取的数据进行CRC校验,根据参数设置的SD/MMC数据线位宽,状态机将读取的8位数据通过一个或两个SDMMC_CLK时钟周期发送到设备的DAT数据总线上,在发送数据的同时,通过CRC校验模块计算CRC校验码,在数据发送完后,再从DAT信号线发送CRC校验码,从而完成一次单块数据的写操作;
(3)WRITE_CRC2状态:设备在接收到FPGA发送的数据和CRC校验和后,会利用CRC校验和对数据的有效性进行判断,并将判断结果通过CRC状态响应从数据信号线DAT0发送给FPGA,若数据有效,CRC状态响应为“010”,反之为“101”,WRITE_CRC2状态的作用既是用来接收3位CRC校验状态码,随后跳转到WRITE_BUSY2状态;
(4)WRITE_BUSY2状态:WRITE_BUSY2状态判断设备发送的CRC状态响应是否正确,并将判断结果供处理器读取,并判断前已写的数据块数是否等于处理器的设置块数,若已写数据块数等于处理器设置块数,状态机返回IDLE2状态,整个写操作完成;否则返回WRITE_DAT2状态,继续写下一个数据块,
(5)READ_WAIT2状态:该状态将DAT[7:0]信号线置高阻态,等待接收数据的起始位,检测到起始位后,状态跳转至READ_DAT2状态;
(6)READ_DAT2状态:READ_DAT2状态通过移位操作接收DAT数据总线上的数据并保存到双口RAM中,数据接收的同时进行CRC校验,接收完一块数据后,对接收到的CRC校验和与计算得出的CRC校验和进行比对,将比对结果保存在CRC读数据状态位CRCRD中,供处理器读取,与写操作类似,通过比较已读取的数据块数量和处理器的设置值来判断写操作是否完成,完成后返回IDLE2状态,否则返回READ_WAIT2状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京自动化控制设备研究所,未经北京自动化控制设备研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410539737.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多通道数据传输的系统
- 下一篇:处理器及存取存储器的方法