公开/公告号CN102103887A
专利类型发明专利
公开/公告日2011-06-22
原文格式PDF
申请/专利权人 上海华虹集成电路有限责任公司;
申请/专利号CN200910202006.6
发明设计人 张晓成;
申请日2009-12-21
分类号G11C16/06;
代理机构上海浦一知识产权代理有限公司;
代理人戴广志
地址 201203 上海市浦东新区碧波路572弄39号
入库时间 2023-12-18 02:30:29
法律状态公告日
法律状态信息
法律状态
2014-01-01
授权
授权
2011-10-05
实质审查的生效 IPC(主分类):G11C16/06 申请日:20091221
实质审查的生效
2011-06-22
公开
公开
技术领域
本发明涉及半导体快闪记忆器领域,特别是涉及一种SD(SecureDigital Memory Card安全数码)卡初始化认证过程中发布卡片上电状态位的方法。本发明还涉及一种用于实现所述方法的硬件电路。
背景技术
SD卡是一种基于半导体非易失性闪速存储器(flash)的新一代记忆设备,它被广泛应用于便携式装置上,例如手机、数码相机、数码摄像机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本的松下、东芝及美国的SanDisk公司于1999年8月共同开发研制,具有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性等优点。
SD卡通讯系统的拓扑结构为主从式,SD卡作为从设备,受控于SD主机。SD卡通讯过程中的数据流有三种含义:命令、应答和数据。SD主机通过命令告知SD卡行为,SD卡通过应答将自身状态告知SD主机,SD主机通过数据线与SD卡进行数据交互。
SD卡工作在SD模式时,内部状态机有10种状态,它们分别是:Inactive State(不活动状态)、Idle State(空闲状态)、Ready State(准备好状态)、Identification State(识别状态)、Stand-by State(待命状态)、Transfer State(传输状态)、Sending-data State(发送数据状态)、Receive-data State(接收数据状态)、Programming State(编程状态)、Disconnect State(断开状态)。在软硬件配合的SD卡架构中,状态机由软件切换。按照SD协议,这些状态与几十个命令相对应,某一个状态下,只有约定的命令才是有效的;对于某一个命令,也只有SD卡处于一个或者几个约定状态时才是有效的。对于无效的命令,SD卡不作应答。
SD卡在工作时,上电后SD主机首先对SD卡进行初始化认证。在初始化认证过程中,SD主机会向SD卡发送ACMD41命令,然后SD卡将内部OCR寄存器的内容通过应答反馈给SD主机。OCR(Operation ConditionRegister操作条件寄存器)寄存器的位宽为32位;其中,最高位OCR[31]为卡片上电状态位(Card power up status bit),该位为0,表示SD卡还没有完成上电工作,该位为1,表示SD卡已完成上电工作,该位上电默认值为0。SD主机发送完ACMD41命令后,如果返回应答中的卡片上电状态位为0,SD主机会重复发送ACMD41,直到返回应答中的卡片上电状态位为1,SD主机才会发送其它命令。在初始化认证过程中,ACMD41命令对应的SD卡状态是Idle State(空闲状态),该命令通过后,SD主机与SD卡的状态机均切换到Ready State(准备好状态)。
目前,SD卡有两种设计实现架构,分别是硬件架构和软硬件配合架构。在软硬件配合的架构中,已知的SD卡发布卡片上电状态位的方式是:软件在处理ACMD41时,与硬件没有信息交互,仅根据程序的执行情况设置卡片上电状态位OCR[31],当上电程序执行完毕后,软件将OCR[31]设置为1,并将SD卡的状态机切换至Ready State;否则,OCR[31]仍为0,SD卡的状态机仍为Idle State。这样的做法存在如下风险:由于应答的发送是串行的(OCR[31]最先发送,OCR[0]最后发送),很可能是硬件将OCR[31](值为0)送出后,软件才将OCR[31]置1,随后便将SD卡的状态机切换至Ready State;而SD主机见到的OCR[31]值为0,接下来还要再发送ACMD41,此时SD卡的状态机已切换至Ready State,SD卡会将ACMD41判断为非法命令,SD卡不作应答,从而导致初始化认证过程失败。
目前的方案只是存在风险,不一定都会出问题,这是因为:按照SD协议,从收到ACMD41命令到SD卡返回OCR[31],间隔13个SD clock(时钟周期)。SD协议中规定,SD卡初始化认证过程中,SD主机提供的SD clock最快频率为400k;而SD卡的CPU工作频率往往较高(例如100M),软件执行速度较快,在处理ACMD41时,SD卡将OCR[31]发送出去之前,软件一般能够完成对OCR[31]的设置,所以没有出现上述问题。但是,目前市场上的SD主机并不都是严格按照SD协议来设计的,有的SD主机在初始化认证过程中的频率要远高于400k,如果CPU的工作频率又不太高,软件执行速度不够快,那么上述风险发生的概率将大大增加。
发明内容
本发明要解决的技术问题是提供一种SD卡发布卡片上电状态位的方法,能够使卡片上电状态位正确发布,SD卡状态机正确切换,初始化认证过程正常完成;为此,本发明还要提供一种用于实现所述方法的硬件电路。
为解决上述技术问题,本发明的SD卡发布卡片上电状态位的方法是采用如下技术方案实现的:设置一位寄存器,硬件电路收到SD主机发布的ACMD41命令后,将SD卡的卡片上电状态位OCR[31]锁存到该寄存器,硬件电路通过应答发布的卡片上电状态位是该寄存器的值;软件在处理ACMD41时,根据程序的执行情况设置卡片上电状态位OCR[31],当上电程序执行完毕后,软件将OCR[31]设置为1,然后查询该寄存器的值,如果为1,则将SD卡的状态机切换至Ready State,如果为0,SD卡的状态机仍为Idle State。
所述用于实现所述方法的硬件电路的技术方案参见具体实施方式部分的描述。
本发明在SD卡初始化认证过程中采用软硬件配合的方法,硬件接收到命令后,对卡片上电状态位通过寄存器进行锁存后再发布,软件在切换SD卡状态机之前查询被锁存的寄存器;这样就消除了因卡片上电状态位发布延迟而导致的初始化认证过程失败的风险。不管SD主机在初始化认证过程中是否严格按照SD协议设置频率,也不必关心软件执行速度是否足够快,均能够使卡片上电状态位正确发布,SD卡状态机正确切换,初始化认证过程正常完成。有利于增强SD卡产品的兼容性、工作的稳定性,减少对软件执行速度的依赖性。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图是在本发明的方法中采用的硬件电路一实施例结构框图。
具体实施方式
在本发明的方法中采用的硬件电路一实施例结构框图如图所示,包括:
命令接收电路,负责接收来自SD主机发布的命令。
第二同步电路,与所述命令接收电路连接,负责将外部SD时钟域的信号同步到内部时钟域。
锁存控制电路,与第二同步电路及锁存寄存器连接,接收OCR寄存器的卡片上电状态位OCR[31]信号,并将卡片上电状态位OCR[31]信号传送到锁存寄存器。
锁存寄存器,与锁存控制电路、第一同步电路连接,用于锁存卡片上电状态位OCR[31]。
第一同步电路,与锁存寄存器、应答发送控制电路连接,负责将内部时钟域的信号同步到外部SD时钟域。
应答发送控制电路,将命令的应答返回给SD主机。
寄存器访问电路,用于软件对所述锁存寄存器的读写操作。
跨时钟域信号由第一同步电路和第二同步电路处理。
结合附图所示,命令接收电路收到来自SD主机的ACMD41命令后,锁存控制电路将卡片上电状态位OCR[31]锁存到锁存寄存器。应答发送控制电路发布的卡片上电状态位OCR[31]是锁存寄存器的值。软件在处理ACMD41命令时,根据程序的执行情况设置卡片上电状态位OCR[31];当上电程序执行完毕后,软件将卡片上电状态位OCR[31]设置为1,然后查询锁存寄存器的值,如果为1,说明硬件电路发布给SD主机的卡片上电状态位OCR[31]为1,软件将SD卡的状态机切换至Ready State;如果为0,说明硬件电路发布给SD主机韵卡片上电状态位OCR[31]为0,SD卡的状态机仍为Idle State。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
机译: 半导体芯片存储芯片,测试方法,包括提供测试逻辑,设置测试模式时测试芯片,发布测试结果和/或测试模式的状态以及通过串行位链选择测试结果和模式的状态
机译: 发布情况通知系统,发布状态通知服务器,发布状态通知方法,程序和记录介质
机译: 用于基于上电复位之前的事件信号的状态在上电复位序列期间保留事件状态的方法/装置