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

文档序号:8380684阅读:来源:国知局
骤203。步骤207,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令。
[0051]时钟信号(CLK,Clock),为处理器或总线等数字电路工作时的时间间隔信号,是一种方波信号,使数字计算机的所有操作都按顺序进行。而SD卡内的微控制器的运行是基于主机提供的CLK,只要有CLK在,SD卡内的微控制器就会不停工作,也就有可能处理空闲状态(CMDO)命令。
[0052]本发明中,当SD出现异常时,向SD发送空闲状态命令,即G0_IDLE_STATE命令;通过此条命令,SD卡会进入空闲(IDLE)状态。发送空闲状态命令时,还同时为其提供时钟信息号。这里,通过多次发送组合信息,以激发SD进入空闲状态;使SD从异常状态进入空闲状态,进而再进入转移(transfer)状态,之后便可继续对其进行读写操作。
[0053]步骤208,判断发送组合信息的时间是否大于设定时间,如果是,则执行步骤209,否则继续发送组合信息,直到达到设定时间。
[0054]步骤209,执行SD驱动初始化过程。
[0055]具体地,主机执行SD驱动中的SD卡异常处理函数(mmC_blk_reSet),执行该函数,可初始化主机内的SD模块,并可同时向SD发送初始化命令,以通知SD进行初始化。
[0056]本实例中,主机操作系统具体为Linux系统。
[0057]步骤210,向SD发送测试数据包,判断是否接收到来自SD的响应信息,如果是,则确定恢复成功,执行步骤211 ;否则,返回执行步骤207。
[0058]向SD发送测试数据包,如果接收到来自SD的响应信息,则表明SD已经正常,确定恢复成功。
[0059]步骤211,继续从SD读取标记后的数据包。
[0060]将CMD引脚置于高电平状态下发送的至少74个CLK和CMDO命令作为一个序列组合。单次发送该序列组合,异常状态SD通常无法进入IDLE状态。本发明采用进行多次循环发送该序列组合,且持续一段时间的方式,实现无需硬件电源操作,而使SD由未知状态进入IDLE状态。对于在系统运行过程中,无法通过程序进行硬件电源控制的系统,将此方法加入到SD驱动的异常处理最初阶段,稳定可靠。
[0061]参见图3,为本发明对SD进行异常恢复的设备结构示意图,该设备包括异常确定模块、组合信息发送及初始化模块和测试确定模块;所述异常确定模块、组合信息发送及初始化模块和测试确定模块,具体为主机设备中处理器包含的结构。
[0062]所述异常确定模块,确定SD出现异常,向所述组合信息发送及初始化模块发送组合信息发送指令;
[0063]所述组合信息发送及初始化模块,接收组合信息发送指令,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程,向所述测试确定模块发送测试指令;
[0064]所述测试确定模块,接收来自所述组合信息发送及初始化模块的测试指令,向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
[0065]较佳地,该设备还包括操作校验模块,向SD进行数据包读写操作,对读写的数据包进行校验,若出现错误,向SD重复进行出错数据包的读写操作,确定读写的数据包仍然出错,判断重复次数是否大于重复阈值,如果大于,则通知所述异常确定模块SD出现异常,并对出错的数据包进行标记;如果不大于,则对重复次数进行累加,返回执行所述向SD重复进行出错数据包的读写操作。
[0066]较佳地,所述测试确定模块在确定出恢复成功之后,向所述操作校验模块发送读与恢复指令;
[0067]所述操作校验模块,接收来自所述测试确定模块的读写恢复指令,如果数据包读写操作为读操作,则继续从SD读取标记的数据包;如果数据包读写操作为写操作,则从标记的数据开始继续向SD进行数据写入。
[0068]较佳地,所述组合信息发送及初始化模块包括组合信息发送子模块和初始化子模块,
[0069]所述组合信息发送子模块,接收组合信息发送指令,持续向SD发送组合信息,确定发送组合信息的时间大于设定时间,向所述初始化子模块发送重置指令;
[0070]所述初始化子模块,接收来自所述组合信息发送子模块的重置指令,初始化主机内的SD模块,并向SD发送初始化命令以通知SD进行初始化;向所述测试确定模块发送测试指令。
[0071]所述组合信息发送子模块在向SD发送组合信息时,拉高SD的CMD引脚,向SD发送至少74个时钟信号,并发送空闲状态命令。
[0072]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种对安全数码卡进行异常恢复的方法,其特征在于,该方法包括: 确定安全数码卡SD出现异常; 持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令; 确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程; 向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
2.如权利要求1所述的方法,其特征在于,所述确定SD出现异常之前,该方法还包括: 向SD进行数据包读写操作,对读写的数据包进行校验,若出现错误,向SD重复进行出错数据包的读写操作,确定读写的数据包仍然出错,判断重复次数是否大于重复阈值,如果大于,则确定SD出现异常,并对出错的数据包进行标记;如果不大于,则对重复次数进行累力口,返回执行所述向SD重复进行出错数据包的读写操作的步骤。
3.如权利要求2所述的方法,其特征在于,所述确定恢复成功之后,该方法还包括: 如果数据包读写操作为读操作,则继续从SD读取标记的数据包; 如果数据包读写操作为写操作,则从标记的数据开始继续向SD进行数据写入。
4.如权利要求1、2或3所述的方法,其特征在于,所述执行SD驱动初始化过程包括: 初始化主机内的SD模块; 向SD发送初始化命令,SD进行初始化。
5.如权利要求4所述的方法,其特征在于,所述向SD发送组合信息包括: 拉高SD的CMD引脚,向SD发送至少74个时钟信号; 向SD发送空闲状态命令。
6.一种对安全数码卡进行异常恢复的设备,其特征在于,该设备包括异常确定模块、组合信息发送及初始化模块和测试确定模块; 所述异常确定模块,确定SD出现异常,向所述组合信息发送及初始化模块发送组合信息发送指令; 所述组合信息发送及初始化模块,接收组合信息发送指令,持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程,向所述测试确定模块发送测试指令; 所述测试确定模块,接收来自所述组合信息发送及初始化模块的测试指令,向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。
7.如权利要求6所述的设备,其特征在于,该设备还包括操作校验模块,向SD进行数据包读写操作,对读写的数据包进行校验,若出现错误,向SD重复进行出错数据包的读写操作,确定读写的数据包仍然出错,判断重复次数是否大于重复阈值,如果大于,则通知所述异常确定模块SD出现异常,并对出错的数据包进行标记;如果不大于,则对重复次数进行累加,返回执行所述向SD重复进行出错数据包的读写操作。
8.如权利要求7所述的设备,其特征在于,所述测试确定模块在确定出恢复成功之后,向所述操作校验模块发送读写恢复指令; 所述操作校验模块,接收来自所述测试确定模块的读写恢复指令,如果数据包读写操作为读操作,则继续从SD读取标记的数据包;如果数据包读写操作为写操作,则从标记的数据开始继续向SD进行数据写入。
9.如权利要求6、7或8所述的设备,其特征在于,所述组合信息发送及初始化模块包括组合信息发送子模块和初始化子模块, 所述组合信息发送子模块,接收组合信息发送指令,持续向SD发送组合信息,确定发送组合信息的时间大于设定时间,向所述初始化子模块发送重置指令; 所述初始化子模块,接收来自所述组合信息发送子模块的重置指令,初始化主机内的SD模块,并向SD发送初始化命令以通知SD进行初始化;向所述测试确定模块发送测试指令。
10.如权利要求9所述的设备,其特征在于,所述组合信息发送子模块在向SD发送组合信息时,拉高SD的CMD引脚,向SD发送至少74个时钟信号,并发送空闲状态命令。
【专利摘要】本发明公开了对安全数码卡SD进行异常恢复的方法及设备,其中,该方法包括:确定安全数码卡SD出现异常;持续向SD发送组合信息,所述组合信息包括时钟信号和空闲状态命令;确定发送组合信息的时间大于设定时间,执行SD驱动初始化过程;向SD进行读写测试,若接收到来自SD的响应信息,则确定恢复成功。本发明方案不受设备自身结构的限制,能够不对SD进行重新上电而实现异常恢复。
【IPC分类】G06F3-06, G06F11-07
【公开号】CN104699418
【申请号】CN201410130217
【发明人】刘宁, 陈仙超
【申请人】杭州海康威视数字技术股份有限公司
【公开日】2015年6月10日
【申请日】2014年4月2日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1