Sd卡清除忙状态的方法及清除忙状态电路的制作方法

文档序号:6780264阅读:602来源:国知局
专利名称:Sd卡清除忙状态的方法及清除忙状态电路的制作方法
技术领域
本发明涉及半导体快闪记忆器领域,特别是涉及一种SD(SecureDigital Memory Card安全数码卡)卡清除busy (忙状态)的方法。本发明还涉及一种用于所述方法的清除 忙状态电路。
背景技术
SD卡是一种基于半导体非易失性闪速存储器(flash)的新一代记忆设备,它被广 泛应用于便携式装置上,例如手机、数码相机、数码摄像机、个人数码助理(PDA)和多媒体 播放器等。SD卡由日本的松下、东芝及美国的SanDisk公司于1999年8月共同开发研制, 具有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性等优点。SD卡的管 脚有 Vdd、Vss、CLK、DATO、DAT1、DAT2、DAT3。SD卡通讯系统的拓扑结构为主从式,SD卡作为从属设备,受控于SD主机。SD卡通 讯过程中的数据流有三种含义命令、应答和数据。SD主机通过命令告知SD卡行为,SD卡 通过应答及忙状态(将DATO拉低)将自身状态告知SD主机,SD主机通过数据线与SD卡 进行数据交互。SD卡在通讯过程中,命令有几十个之多,不同命令的处理内容和处理时间相差很 大。有的命令处理时间较长,在SD卡尚未处理完这些命令之前,有些操作SD主机是不能执 行的。SD卡是否处理完这些命令,是通过忙状态反馈给SD主机的,如果SD卡未处理完命 令,会将DATO拉低,表示忙状态;如果SD卡已处理完命令,将DATO拉高,表示空闲。另一方面,SD主机与SD卡的数据通讯是以block (块)为单位进行的,每个block 的最大数据长度为512字节。在SD主机向SD卡写操作的过程中,由于SD卡内flash(闪 存)写入数据的速度要慢于SD主机与SD卡之间的数据传输速度,而SD卡内用于数据暂存 的缓冲器(buffer)又容量有限,所以,协议上规定,SD卡每收到一个block的数据后,如果 内部缓冲器没有空间继续接收下一个block的数据,可以将DATO拉低,表示SD卡处于忙状 态。SD主机见到该状态后,不会继续发送下一个block的数据,而是等待SD卡的忙状态清 除(DAT0拉高)后,才会继续下一个block数据的发送。由上述可知,SD卡在处理命令和接收数据时,都有可能将DATO拉低,表示忙状态。 在时钟频率、flash访问速度等因素相当的情况下,忙状态时间的长短决定了 SD卡的通讯速度。目前,SD卡有两种设计实现架构,分别是硬件架构和软硬件配合架构。在软硬件配 合的架构中,已知的忙状态实现和清除方式是软件在中断服务程序中设置忙状态控制位, 硬件根据该控制位决定将DATO拉高还是拉低。由于硬件没有相关处理电路,软件的清除忙 状态操作只能在中断服务程序中执行,而不能在主程序中执行,这样无疑降低了程序的灵 活性以及执行效率。

发明内容
本发明要解决的技术问题是提供了一种SD卡清除忙状态的方法,使得软件可以 在中断服务程序和主程序中根据自身情况在任何时间点均可执行清除忙状态操作;为此本 发明还要提供一种用于所述方法的清除忙状态电路。为解决上述技术问题,本发明的SD卡清除忙状态的方法是采用如下技术方案实 现的设置一个忙状态控制寄存器(以下称之为buSy_Ctrl),该寄存器位宽为1位,独占一 个地址;软件根据自身状态对该忙状态控制寄存器进行清零操作,清零前所述忙状态控制 该寄存器的值可以为零;由硬件实现的清除忙状态电路通过清除忙状态操作检测电路识别 出软件的清除忙状态操作,并通过一个寄存器(以下称之为bUSy_clear)记录该操作。本发明的用于所述方法的清除忙状态电路,包括清除忙状态操作检测电路,与清除忙状态操作记录电路连接,判断是否有软件清 除忙状态的操作发生;清除忙状态操作有效性判断电路,与清除忙状态操作记录电路连接,判断软件是 否进入中断;第一同步电路,与清除忙状态操作记录电路、忙状态控制逻辑电路连接,负责将内 部时钟域的信号同步到外部SD时钟域;第二同步电路,与清除忙状态操作完成检测电路、忙状态控制逻辑电路连接,负责 将外部SD时钟域的信号同步到内部时钟域;跨时钟域信号通过第一和第二同步电路处理;清除忙状态操作完成检测电路,与清除忙状态操作记录电路连接,判断硬件是否 已将忙状态清除;清除忙状态操作记录电路,通过寄存器记录软件的清除忙状态操作;忙状态控制逻辑电路,与第一同步电路、第二同步电路连接,根据同步后的busy_ clear信号决定是否将忙状态告知SD主机,并将忙状态通过信号反馈给内部电路。采用本发明的方法,软件在中断服务程序和主程序中根据自身情况在任何时间点 均可执行清除忙状态操作,包括预清除操作;软件的清除忙状态操作由硬件记录、判断和实 现;有利于提高软件的灵活性、执行效率,便于软件灵活、快速地实现清除忙状态功能,缩短 总线上忙状态的时间,以及提高SD卡的通讯速度。


下面结合附图与具体实施方式
对本发明进一步详细的说明图1是本发明的一实施例硬件实现的清除忙状态电路原理框图。图2是图1中清除忙状态操作记录电路的一实施例电路原理框图。
具体实施例方式因为忙状态发生于两种情况返回类型为Rlb的应答,接收完一个block的数据 包,下面对其分别叙述对于Rlb类型应答产生的忙状态,软件可能在如下时间点执行清除忙状态操作 命令接收前、命令接收过程中、命令接收完成后响应命令中断前、响应命令中断后。这些情况中,只有软件在响应命令中断后执行的清除忙状态操作才是真实的,硬件应根据此次操 作将DATO拉高,而其它情况下的软件清除忙状态操作,硬件应将其忽略。对软件清除忙状 态操作的过滤是由清除忙状态操作有效性判断电路实现的。这样处理的结果是当应答类 型为Rlb时,硬件在应当将DATO拉低的时刻判断是否有软件清除忙状态操作记录,如果有, 则将DATO拉高;如果没有,则将DATO拉低;在DATO拉低后,如果检测到有软件清除忙状态 操作,则将DATO拉高,否则继续将DATO拉低。硬件完成清除忙状态操作后,将软件清除忙 状态操作记录清除。这样便实现了 Rlb类型应答相关忙状态的清除和预清。对于收到各block数据包后产生的忙状态,软件可能在如下时间点执行清除忙状 态操作数据开始接收前、数据接收过程中、数据接收完成后响应数据中断前、响应数据中 断后。这些情况中,只有软件在响应数据中断后执行的清除忙状态操作才是真实的,硬件应 根据此次操作将DATO拉高,而其它情况下的软件清除忙状态操作,硬件应将其忽略。对软 件清除忙状态操作的过滤是由清除忙状态操作有效性判断电路实现的。然而,与Rlb类型 应答产生的忙状态相比,二者的时序是不同的在Rl类型应答时,命令中断产生在先,DATO 拉低的时间在后,硬件在需要将DATO拉低的时刻开始判断是否有软件清除忙状态操作;而 收完一个block数据包的情况下,DATO拉低的时间在前,数据中断产生的时间在后,所以之 前的软件清除忙状态操作记录尚未清除,是虚假的,不能据此决定DATO的拉低与否。对此, 采用的处理方式为硬件每收完一个block的数据包并发完CRC STATUS后,自动将DATO拉 低;在DATO拉低后,等待软件进入中断后再检测是否有软件清除忙状态操作,如果有,则将 DATO拉高,否则继续将DATO拉低。这样便实现了接收到一个block数据包后忙状态的产生 和清除。该方式中,等待软件进入中断的时间需要考虑如下几个方面DAT0拉低到发出中 断请求的时间、中断请求的响应时间、信号同步的时间。在本设计中,等待软件进入中断的 时间设置为13个SD clock (时钟周期),原因为考虑最差的工作情况是SD clock与CPU clock的频率相同,DATO拉低到产生数据中断,需要4个clock,软件进中断需要6个clock, 软件清除忙状态操作记录信号从CPU时钟域同步到SD时钟域需要2个clock,设计余量留 1 个 clock。参见图1所示,在一实施例中,由硬件实现的清除忙状态电路包括清除忙状态操作检测电路,与清除忙状态操作记录电路连接,判断是否有软件清 除忙状态的操作发生。所述清除忙状态操作检测电路用于判断寄存器选择信号、寄存器读 写控制信号、寄存器写入的数据,如果检测到软件对buSy_Ctrl寄存器进行写0操作,则认 为有软件清除忙状态操作发生。清除忙状态操作有效性判断电路,与清除忙状态操作记录电路连接,判断软件是 否进入中断。所述清除忙状态操作有效性判断电路,根据由硬件提供的命令中断和数据中 断请求信号以及硬件响应中断请求的时间,来判断软件是否进入中断。第一同步电路,与清除忙状态操作记录电路、忙状态控制逻辑电路连接,负责将内 部时钟域的信号同步到外部SD时钟域。第二同步电路,与清除忙状态操作完成检测电路、忙状态控制逻辑电路连接,负责 将外部SD时钟域的信号同步到内部时钟域。跨时钟域信号通过第一和第二同步电路处理。清除忙状态操作完成检测电路,与清除忙状态操作记录电路连接,判断硬件是否已将忙状态清除。所述清除忙状态操作完成检测电路,根据忙状态控制逻辑电路输出的表 示当前是否处于忙状态的信号的跳变可判断出是否已将忙状态清除。清除忙状态操作记录电路,通过寄存器记录软件的清除忙状态操作。忙状态控制逻辑电路,与第一同步电路、第二同步电路连接,根据同步后的busy_ clear (为记录软件清除忙状态操作的寄存器输出信号)信号决定是否将忙状态告知SD主 机。所述忙状态控制逻辑电路在Rlb类型应答以及接收完一个block的数据包后,判断同 步后的busy_clear信号,如果有效,则将DATO拉高,如果无效,则将DATO拉低。参见图2所示,在一实施例中所述清除忙状态操作记录电路由组合逻辑电路、优 先级数据选择器、寄存器组成。bUSy_clear信号为寄存器的输出,寄存器的输入端与一个二 选一优先级数据选择器的输出端连接,该数据选择器的控制端与一个或门的输出端连接, 该数据选择器的一个输入端与另一个二选一优先级数据选择器的输出端连接。其工作原理 为如果清除忙状态操作检测电路检测到软件执行了清除忙状态操作,则bUSy_clear信号 有效;如果清除忙状态操作有效性判断电路告知软件已进入中断,则bUSy_clear信号变为 无效;如果清除忙状态操作完成检测电路告知硬件已将忙状态清除,则bUSy_clear信号也 会变为无效。图2中porb_i为上电异步复位信号。以上通过具体实施例对本发明进行了详细的说明,但这些并非构成对本发明的限 制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应 视为本发明的保护范围。
权利要求
1.一种SD卡清除忙状态的方法,其特征是设置一个忙状态控制寄存器,该寄存器位 宽为1位,独占一个地址;软件根据自身状态对该忙状态控制寄存器进行清零操作,清零前 所述忙状态控制该寄存器的值可以为零;由硬件实现的清除忙状态电路通过清除忙状态操 作检测电路识别出软件的清除忙状态操作,并通过一个寄存器记录该操作。
2.如权利要求1所述的方法,其特征是当应答类型为Rlb时,清除忙状态电路在应当 将DATO拉低的时刻判断是否有软件清除忙状态操作记录,如果有,则将DATO拉高;如果没 有,则将DATO拉低;在DATO拉低后,如果检测到有软件清除忙状态操作,则将DATO拉高,否 则继续将DATO拉低;硬件电路完成清除忙状态操作后,将软件清除忙状态操作记录清除。
3.如权利要求1所述的方法,其特征是硬件电路每收完一个块的数据包并发完CRC STATUS后自动将DATO拉低;在DATO拉低后,等待软件进入中断后再检测是否有软件清除 忙状态操作,如果有,则将DATO拉高,否则继续将DATO拉低。
4.如权利要求1所述的方法,其特征是硬件电路通过清除忙状态操作识别电路记录 软件的清除忙状态操作。
5.如权利要求1所述的方法,其特征是在软件进入中断服务程序之前,硬件电路将软 件清除忙状态操作记录清除。
6.一种用于权利要求1所述方法的清除忙状态电路,其特征是,包括清除忙状态操作检测电路,与清除忙状态操作记录电路连接,判断是否有软件清除忙 状态的操作发生;清除忙状态操作有效性判断电路,与清除忙状态操作记录电路连接,判断软件是否进 入中断;第一同步电路,与清除忙状态操作记录电路、忙状态控制逻辑电路连接,负责将内部时 钟域的信号同步到外部SD时钟域;第二同步电路,与清除忙状态操作完成检测电路、忙状态控制逻辑电路连接,负责将外 部SD时钟域的信号同步到内部时钟域;跨时钟域信号通过第一和第二同步电路处理;清除忙状态操作完成检测电路,与清除忙状态操作记录电路连接,判断硬件电路是否 已将忙状态清除;清除忙状态操作记录电路,通过寄存器记录软件的清除忙状态操作;忙状态控制逻辑电路,与第一同步电路、第二同步电路连接,根据同步后的bUSy_clear 信号决定是否将忙状态告知SD主机。
7.如权利要求6所述的清除忙状态电路,其特征是所述清除忙状态操作检测电路用 于判断寄存器选择信号、寄存器读写控制信号、寄存器写入的数据,如果检测到软件对忙状 态控制寄存器进行写0操作,则认为有软件清除忙状态操作发生。
8.如权利要求6所述的清除忙状态电路,其特征是所述清除忙状态操作有效性判断 电路,根据由硬件电路提供的命令中断和数据中断请求信号以及硬件电路响应中断请求的 时间,来判断软件是否进入中断。
9.如权利要求6所述的清除忙状态电路,其特征是所述清除忙状态操作完成检测电 路,根据忙状态控制逻辑电路输出的表示当前是否处于忙状态的信号的跳变可判断出是否 已将忙状态清除。
10.如权利要求6所述的清除忙状态电路,其特征是所述忙状态控制逻辑电路在Rlb 类型应答以及接收完一个块的数据包后,判断同步后的bUSy_clear信号,如果有效,则将 DATO拉高,如果无效,则将DATO拉低。
11.如权利要求6所述的清除忙状态电路,其特征是所述清除忙状态操作记录电路的 工作过程为如果清除忙状态操作检测电路检测到软件执行了清除忙状态操作,则busy_ clear信号有效;如果清除忙状态操作有效性判断电路告知软件已进入中断,则busy_ clear信号变为无效;如果清除忙状态操作完成检测电路告知硬件电路已将忙状态清除, 则buSy_clear信号变为无效。
全文摘要
本发明公开了一种SD卡清除忙状态的方法,设置一个忙状态控制寄存器,该寄存器位宽为1位,独占一个地址;软件根据自身状态对该忙状态控制寄存器进行清零操作,清零前所述忙状态控制该寄存器的值可以为零;由硬件实现的清除忙状态电路通过清除忙状态操作检测电路识别出软件的清除忙状态操作,并通过一个寄存器记录该操作。本发明还公开了一种用于所述方法的清除忙状态电路。本发明能使软件可以在中断服务程序和主程序中根据自身情况在任何时间点均可执行清除忙状态操作,包括预清除操作,软件的清除忙状态操作由硬件记录、判断和实现;便于软件灵活、快速地实现清除忙状态功能,缩短总线上忙状态的时间,提高SD卡的通讯速度。
文档编号G11C11/4072GK102103885SQ20091020200
公开日2011年6月22日 申请日期2009年12月21日 优先权日2009年12月21日
发明者张晓成 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1