对安全数码卡进行异常恢复的方法及设备的制造方法

文档序号:8380684阅读:221来源:国知局
对安全数码卡进行异常恢复的方法及设备的制造方法
【技术领域】
[0001]本发明涉及信息处理技术,尤其涉及对安全数码卡进行异常恢复的方法及设备。
【背景技术】
[0002]安全数码卡(SD, Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备,按照封装的不同分为SD、miniSD等,外形有差异,但并无本质区别。
[0003]将SD连接至主机后,主机可进行读写操作,从SD读取数据或写入数据。在读写操作中,可能出现操作异常的情况,具体地:主机(Host)向SD发出读写命令后,等待一段时间,SD还是不对主机进行响应,此时,对SD的DATAO引脚进行测量,其总是低电平;根据SD协议,低电平指示SD处于繁忙(busy)状态,SD协议中也提到,发出关于某一数据包的读写指令后,500毫秒内便可完成;由此可获知,如果超出500毫秒后的一段时间内DATAO引脚仍处于busy状态,则可确定SD处于异常状态。
[0004]下面对SD的异常恢复进行说明。
[0005]主机的处理器与SD之间通过多个1接口进行连接,其中包括控制SD重新启动的电源1接口。这类设备中,SD电源和处理器电源各自独立,且不相连通。当出现SD异常时,主机通过电源1接口控制SD进行重新上电,这样,通过对SD的重新启动实现SD的异常恢复。
[0006]实际应用中,由于1接口比较紧缺,很多设备的处理器不具备足够多的1接口用于异常恢复的重上电。对于这种情况,SD电源与处理器电源并不采用独立设置的方式,而采用直接连通的方式;对于这类情况,当SD处于异常状态时,处理器无法控制SD重启,不能恢复异常,若采用对主机和SD都进行重新启动的方式,其速度慢,并且也将影响主机的其他业务,其可实施性较差。
[0007]综上,很多设备受其自身结构的限制,并不支持在异常状态下对SD单独上电重启,导致无法完成异常恢复。

【发明内容】

[0008]本发明提供了一种对安全数码卡进行异常恢复的方法,该方法不受设备自身结构的限制,能够不对SD进行重新上电而实现异常恢复。
[0009]本发明提供了一种对安全数码卡进行异常恢复的设备,该设备不受自身结构的限制,能够不对SD进行重新上电而实现异常恢复。
[0010]一种对安全数码卡进行异常恢复的方法,该方法包括:
[0011]确定安全数码卡SD出现异常;
[0012]持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;
[0013]确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程;
[0014]向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
[0015]一种对安全数码卡进行异常恢复的设备,该设备包括异常确定模块、组合信息发送及初始化模块和测试确定模块;
[0016]所述异常确定模块,确定SD出现异常,向所述组合信息发送及初始化模块发送组合信息发送指令;
[0017]所述组合信息发送及初始化模块,接收组合信息发送指令,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程,向所述测试确定模块发送测试指令;
[0018]所述测试确定模块,接收来自所述组合信息发送及初始化模块的测试指令,向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
[0019]从上述方案可以看出,本发明中,确定SD出现异常后,持续向SD发送组合信息;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程;向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。本发明方案不对SD进行重新上电而实现异常恢复,这样,不再受设备自身结构的限制,可应用于任何主机。
【附图说明】
[0020]图1为本发明对安全数码卡进行异常恢复的方法示意性流程图;
[0021]图2为本发明对安全数码卡进行异常恢复的方法流程图实例;
[0022]图3为本发明对安全数码卡进行异常恢复的设备结构示意图。
【具体实施方式】
[0023]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
[0024]现有对SD进行异常恢复的方案,只适用于处理器提供了控制SD重新启动的电源1接口的主机设备,该方案受到结构限制。针对该缺陷,本发明结合SD协议的特点,采用持续向SD发送组合信息以激发SD初始化的方式,实现SD的异常恢复。参见图1,为本发明对安全数码卡进行异常恢复的方法示意性流程图,其包括以下步骤:
[0025]步骤101,确定SD出现异常。
[0026]确定SD出现异常,可采用现有方案实现,也就是,发出关于某一数据包的读写指令后,如果超出500毫秒后的一段时间内DATAO引脚仍处于busy状态,则确定SD处于异常状态。
[0027]SD异常的确定不仅限于现有的方案,例如,还可采用如下方式实现:
[0028]所述确定SD出现异常之前,该方法还包括:向SD进行数据包读写操作,对读写的数据包进行校验,若出现错误,向SD重复进行出错数据包的读写操作,确定读写的数据包仍然出错,判断重复次数是否大于重复阈值,如果大于,则确定SD出现异常,并对出错的数据包进行标记;如果不大于,则对重复次数进行累加,返回执行所述向SD重复进行出错数据包的读写操作的步骤。所述重复阈值可根据实际情况设置,为可能出现异常的经验值。
[0029]步骤102,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令。
[0030]时钟信号(CLK,Clock),为处理器或总线等数字电路工作时的时间间隔信号,是一种方波信号,使数字计算机的所有操作都按顺序进行。并且,SD协议有一空闲状态(CMDO)命令,即G0_IDLE_STATE命令;通过此条命令,SD卡会进入空闲(IDLE)状态,且该命令在任何状态下都可以发起。
[0031]但是,发明人在实际应用环境中发现,当SD出现异常时,单次对其发送CMDO命令,并不能使SD进入IDLE状态。而命令的同时需要向SD提供时钟。基于以上情况,本发明提供了一种向SD发送多组组合信息的方式来激活SD,使其进入空闲状态。如果能使SD从异常状态进入空闲状态,则可继续对其进行读写操作,而无需通过电源重启的方式进行恢复。
[0032]向SD发送组合信息的实现方式有多种,具体如:
[0033]拉高SD的CMD引脚,向SD发送至少74个时钟信号;
[0034]向SD发送空闲状态命令。
[0035]发送时钟信号需要拉高SD的CMD引脚;而发送空闲状态命令时,不对CMD引脚作特别处理,可自然进行命令的传送。
[0036]步骤103,确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程。
[0037]发明人在实际应用中发现,通常地,向SD单次发起组合命令,并不能使SD进入IDLE状态,因此,本发明中采用了多次发送的方式,所述设定时间可根据需要设置,例如为2秒中。
[0038]步骤104,向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
[0039]向SD进行读写操作时,会接收到SD的响应信息,通过响应信息的接收情况可确定是否恢复成功。进行读写测试的数据包可以是之前出错的数据包,也可以是专用于测试的数据包。
[0040]进一步地,向SD进行读写测试,若没有接收到来自SD的响应信息,可返回执行步骤 102。
[0041]采用本发明方案,确定安全数码卡SD出现异常后,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程;向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。本发明方案不对SD进行重新上电而实现异常恢复,这样,不再受设备自身结构的限制,可应用于任何主机。
[0042]下面通过图2的流程,对本发明进行异常恢复的方法进行说明,从SD的读写操作包括数据读取、数据写入、数据擦除等,这里具体以数据读取作为实例。
[0043]参见图2,为数据读取过程中进行SD异常恢复的方法流程图实例,其包括以下步骤:
[0044]步骤201,向SD进行数据包读取操作。
[0045]步骤202,在数据包读取过程中,对读取的数据包进行校验,若出现错误,则执行步骤 203。
[0046]步骤203,向SD重复进行出错数据包的读取操作,确定数据包读取仍然失败,执行步骤204,否则,继续从SD进行数据包的读取。步骤204,判断重复次数是否大于重复阈值,如果大于,则执行步骤205 ;如果不大于,则执行步骤206。
[0047]重复次数的初始值为0,每重新读取一次数据包,则为重复次数叠加I。本实例中,假设重复次数为3。
[0048]步骤205,确定SD出现异常,并对出错的数据包进行标记,执行步骤207。
[0049]对数据包进行标记,可便于后续恢复成功时,从标记的数据包开始继续进行读写操作。
[0050]步骤206,对重复次数进行累加,数据包返回执行步
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1