SD卡CMD引脚驱动电流的配置方法和终端
技术领域
本发明涉及电子设备技术领域,特别涉及SD卡CMD引脚驱动电流的配置方法和终端。
背景技术
手机、平板电脑等移动终端,在SD卡与中央处理器相连接后,中央处理器会通过CMD引脚向SD卡发送命令,而CMD引脚的驱动电流配置将直接影响到CMD引脚的驱动能力,从而影响到CMD引脚上的电平电压,而不同的SD卡的阻抗略有差异,如果CMD引脚的驱动电流配得过小则会使CMD引脚上的电平电压偏低容易使SD卡无法正确接收到命令,如果CMD引脚的驱动电流配得过大则会使CMD引脚上的功耗偏高浪费电量。
举例来说,当前的移动终端普遍支持SD卡插拔,用户可能会用不同的SD卡来扩展移动终端的存储空间,而不同的SD卡的阻抗略有差异,因此对CMD引脚的驱动能力的要求也略有不同,如果CMD引脚的驱动电流配得过小则有可能使CMD引脚上的高电平的电压偏低,而误认为是低电平,导致使SD卡无法正确接收到命令,如果CMD引脚的驱动电流配得过大则会使CMD引脚上的功耗偏高浪费电量。
而目前移动终端厂商对于CMD引脚的驱动电流配置是固定的,因此对于某些SD卡可能会出现异常,因此现有技术存在缺陷,有待提高与改进。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种SD卡CMD引脚驱动电流的配置方法和终端,旨在解决现有技术中由于CMD引脚驱动电流配置固定所造成的对于某些SD卡CMD引脚的驱动电流配得过小使CMD引脚上的高电平的电压偏低容易使SD卡无法正确接收到命令的问题,并且能使CMD引脚的驱动电流配置与实际使用的SD卡相适应。
为了达到上述目的,本发明采取了以下技术方案:
一种SD卡CMD引脚驱动电流的配置方法,其包括如下步骤:
A、当检测SD卡插入时,将SD卡的CMD引脚的驱动电流配置为最大值;
B、获取SD卡的CID寄存器的值,并判断CID寄存器值的CMD引脚的驱动电流配置是否已存在;如果是,则执行步骤C;否则,执行步骤D;
C、配置CMD引脚为正确的驱动电流;
D、设置CMD引脚的输出电平为高电平,从最小驱动电流至最大驱动电流配置CMD引脚,直到CMD引脚的电压为标准高电平电压时,保存所配置的驱动电流和SD卡的CID寄存器值。
所述的SD卡CMD引脚驱动电流的配置方法中,所述步骤B具体包括:
B1、向SD卡发送复位SD卡的命令;
B2、向SD卡发送要求SD卡反馈其CID寄存器的值的命令;
B3、读取SD卡反馈的CID寄存器的值;
B4、判断CID寄存器值的CMD引脚的驱动电流配置是否已存在。
所述的SD卡CMD引脚驱动电流的配置方法中,所述步骤D包括:
D1、将CMD引脚的输出电平设置为高电平;
D2、获取CMD引脚的驱动电流的所有配置,将其配置的驱动电流按小到大的顺序排列,并记为CFG[1]、CFG[2]、……、CFG[N],其中,CFG[1]为CMD引脚驱动电流的最小配置,CFG[N]为CMD引脚驱动电流的最大配置,N为CMD引脚驱动电流配置的个数;
D3、依次配置CMD引脚的驱动电流为CFG[1]至CFG[N],使能一个配置后读取CMD引脚的电压,并判断所读取CMD电压是否小于标准电压;如果是,则执行步骤D4;否则,执行步骤D5;
D4、继续配置使能下一个配置;
D5、设置当前所配置的驱动电流为最佳驱动电流配置,保存所配置的驱动电流与该SD卡的CID寄存器值。
所述的SD卡CMD引脚驱动电流的配置方法中,所述步骤C中,正确的驱动电流为能使CMD引脚的输出电压达到CMD引脚的上拉电压的驱动电流。
一种实现上述的SD卡CMD引脚驱动电流的配置方法的终端,其包括:
检测与配置模块,用于当检测SD卡插入时,将SD卡的CMD引脚的驱动电流配置为最大值;
CID获取与判断模块,用于获取SD卡的CID寄存器的值,并判断CID寄存器值的CMD引脚的驱动电流配置是否已存在;
驱动电流配置模块,用于如果存在驱动电流配置时,配置CMD引脚为正确的驱动电流;
测试与配置保存模块,用于如果不存在驱动电流配置时,设置CMD引脚的输出电平为高电平,从最小驱动电流至最大驱动电流配置CMD引脚,直到CMD引脚的电压为标准高电平电压时,保存所配置的驱动电流和SD卡的CID寄存器值。
所述的终端中,所述CID获取与判断模块包括:
命令发送单元,用于向SD卡发送复位SD卡的命令和要求SD卡反馈其CID寄存器的值的命令;
CID获取单元,用于读取SD卡反馈的CID寄存器的值;
CID判断单元,用于判断CID寄存器值的CMD引脚的驱动电流配置是否已存在。
所述的终端中,所述测试与配置保存模块包括:
电平设置单元,用于将CMD引脚的输出电平设置为高电平;
配置获取与排列单元,用于获取CMD引脚的驱动电流的所有配置,将其配置的驱动电流按小到大的顺序排列,并记为CFG[1]、CFG[2]、……、CFG[N],其中,CFG[1]为CMD引脚驱动电流的最小配置,CFG[N]为CMD引脚驱动电流的最大配置,N为CMD引脚驱动电流配置的个数;
配置与保存单元,用于当所读取CMD电压小于标准电压时,继续配置使能下一个配置;当所读取CMD电压大于标准电压时,设置当前所配置的驱动电流为最佳驱动电流配置,保存所配置的驱动电流与该SD卡的CID寄存器值。
所述的终端中,所述正确的驱动电流为能使CMD引脚的输出电压达到CMD引脚的上拉电压的驱动电流。
相较于现有技术,本发明提供的SD卡CMD引脚驱动电流的配置方法和终端,其方法包括:当检测SD卡插入时,将SD卡的CMD引脚的驱动电流配置为最大值;获取SD卡的CID寄存器的值,并判断CID寄存器值的CMD引脚的驱动电流配置是否已存在;若存在,则配置CMD引脚为正确的驱动电流;或不存在,则设置CMD引脚的输出电平为高电平,从最小驱动电流至最大驱动电流配置CMD引脚,直到CMD引脚的电压为标准高电平电压时,保存所配置的驱动电流和SD卡的CID寄存器值,从而使CMD引脚的驱动电流配置与实际使用的SD卡相适应,避免CMD引脚的驱动电流配得过小导致的CMD引脚上的高电平的电压偏低容易使SD卡无法正确接收到命令,同时防止CMD引脚的驱动电流配得过大导致的CMD引脚上的功耗偏高浪费电量。
附图说明
图1为本发明SD卡CMD引脚驱动电流的配置方法的流程图。
图2为本发明SD卡CMD引脚驱动电流的配置方法中步骤S200的流程图。
图3为本发明SD卡CMD引脚驱动电流的配置方法中步骤D00的流程图。
图4为本发明SD卡CMD引脚驱动电流的配置方法中步骤D00的一较佳实施例的流程图。
图5为本发明实现SD卡CMD引脚驱动电流的配置方法的终端的结构框图。
图6为本发明实现SD卡CMD引脚驱动电流的配置方法的终端的中CID获取与判断模块的结构框图。
图7本发明实现SD卡CMD引脚驱动电流的配置方法的终端的中测试与配置保存模块的结构框图。
具体实施方式
本发明提供SD卡CMD引脚驱动电流的配置方法和终端,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明提供的SD卡CMD引脚驱动电流的配置方法,其特征在于,包括如下步骤:
S100、当检测SD卡插入时,将SD卡的CMD引脚的驱动电流配置为最大值;
S200、获取SD卡的CID寄存器的值,并判断CID寄存器值的CMD引脚的驱动电流配置是否已存在;如果是,则执行步骤S300;否则,执行步骤S400;
S300、配置CMD引脚为正确的驱动电流;
S400、设置CMD引脚的输出电平为高电平,从最小驱动电流至最大驱动电流配置CMD引脚,直到CMD引脚的电压为标准高电平电压时,保存所配置的驱动电流和SD卡的CID寄存器值。
以手机或平板电脑为例,在步骤S100中,在实际移动终端中,常有一检测引脚用于检测SD卡是否插入移动终端的SD卡卡槽中,譬如,当SD卡未插入移动终端的SD卡卡槽时所述检测引脚为低电平,当SD卡插入移动终端的SD卡卡槽时所述检测引脚为高电平,则可以通过所述检测引脚的电平变化来达到对SD卡插入的检测。另外,本实施例设置CMD引脚驱动电流配置为最大值,是为了保证步骤S200中读取SD卡CID寄存器的值能必然成功。
如图2所示,所述步骤S200具体包括:S201、向SD卡发送复位SD卡的命令;S202、向SD卡发送要求SD卡反馈其CID寄存器的值的命令;S203、读取SD卡反馈的CID寄存器的值;S204、判断CID寄存器值的CMD引脚的驱动电流配置是否已存在。
具体地,中央处理器与SD卡之间是通过由中央处理器向SD卡发送向应的命令,进行操作的。例如,如果中央处理器需要向SD卡中写数据时,则需要先向SD卡发送对应的命令然后再发送要写的数据。而本发明中只关注读取SD卡CID存器值,因此只需用到两条命令CMD0和CMD10,其中,CMD0为复位SD卡的命令,当SD卡接收到CMD0时其将复位,CMD10为要求SD卡反馈其CID寄存器的值的命令,当SD卡接收到CMD10时其将反馈其CID寄存器的值。
其中,SD卡的CID寄存器的值是长度为128位的SD卡唯一标识号,该标识号在SD卡生产厂家生产完SD卡后就不会改变了,其可以用于标识同一类SD卡,也就是说,CID相同的SD卡的电气、物理特性可以认为是完全一样的。
在步骤S300中,正确的驱动电流为能使CMD引脚的输出电压达到CMD引脚的上拉电压的驱动电流。一般而言,CMD引脚有两种状态:高电平、低电平;当为低电平由于电压为0V,不存在驱动能力问题;当中央处理器控制SD卡的CMD引脚为高电平时(假如正确的逻辑高电平电压为1.8V),但由于中央处理器设置的CMD引脚驱动电流过小,则cmd引脚会被负载(sd卡)拉低,譬如拉低到了1.6V;如果驱动电流设置得实在太小,cmd引脚会被负载拉低,甚至会拉低到更小,直接影响到了逻辑电平的判断(容易将其判断为了零)。
当中央处理器的一个引脚YY与负载的一个引脚ZZ相连接时,中央处理器设置引脚YY的驱动电流为XX时、并设置引脚YY输出高电平,如果此时引脚YY的电压满足标准逻辑高电平的电压则认为驱动电流设置正确;所谓的标准逻辑高电平,为引脚YY所连上拉的电源的电压,本发明主要是设置这个最小的的正确的驱动电流,确保CMD引脚的驱动电流配置与实际使用的SD卡相适应,又避免CMD引脚的驱动电流配得过大导致的CMD引脚上的功耗偏高浪费电量。
通过步骤S400保存驱动电流配置和SD卡的CID寄存器值,之后再SD卡再次插入时,通过步骤S200获取SD卡的CID寄存器的值,如果找到CID对应的驱动电流设置,则可以直接设置驱动电流。
如图3所示,所述步骤D00具体包括:
S401、将CMD引脚的输出电平设置为高电平;
S402、获取CMD引脚的驱动电流的所有配置,将其配置的驱动电流按小到大的顺序排列,并记为CFG[1]、CFG[2]、……、CFG[N],其中,CFG[1]为CMD引脚驱动电流的最小配置,CFG[N]为CMD引脚驱动电流的最大配置,N为CMD引脚驱动电流配置的个数;
S403、依次配置CMD引脚的驱动电流为CFG[1]至CFG[N],使能一个配置后读取CMD引脚的电压,并判断所读取CMD电压是否小于标准电压;如果是,则执行步骤S404;否则,执行步骤S405;
S404、继续配置使能下一个配置;
S405、设置当前所配置的驱动电流为最佳驱动电流配置,保存所配置的驱动电流与该SD卡的CID寄存器值。
较佳的,如图4所示,在具体实现过程中,所述步骤S400包括:
S41、设置CMD引脚为高电平;
S42、获取CMD引脚驱动电流的所有配置,将其由小到大的顺序进行排列,记为CFG[1]、CFG[2]、……、CFG[N],其中,CFG[1]为CMD引脚驱动电流的最小配置,CFG[N]为CMD引脚驱动电流的最大配置,N为CMD引脚驱动电流配置的个数;
S43、设置变量x=0;
S44、令x=x+1,并判断x是否大于N,若为是则执行S46,否则执行步骤S45;
S45、配置CMD引脚的驱动电流为CFG[x],并读取CMD引脚的电压,判断所读取CMD引脚的电压是否小于标准电压;若小于标准电压则返回S44,否则执行S46;
S46、保存所配置的驱动电流CFG[x]与该SD卡的CID。
本实施例中,所述步骤S44中,当x大于N时,则说明对所有CMD引脚驱动电流的配置都无法使CMD引脚的高电平大于或等于标准电平,这种情况实际上是中央处理器或SD卡芯片已损坏或设计存在缺陷,实际使用过程中不会存在。
本发明还相应提供一种实现SD卡CMD引脚驱动电流的配置方法的终端包括:SD卡槽、中央处理器、所述SD卡槽与中央处理器连接,其内成插拔SD卡。其中,中央处理器包括:检测与配置模块10、CID获取与判断模块20、驱动电流配置模块30和测试与配置保存模块40,如图5所示。
所述检测与配置模块10,用于当检测SD卡插入时,将SD卡的CMD引脚的驱动电流配置为最大值;
所述CID获取与判断模块20用于获取SD卡的CID寄存器的值,并判断CID寄存器值的CMD引脚的驱动电流配置是否已存在。
所述驱动电流配置模块30用于如果存在驱动电流配置时,配置CMD引脚为正确的驱动电流。所述正确的驱动电流为能使CMD引脚的输出电压达到CMD引脚的上拉电压的驱动电流。
所述测试与配置保存模块40用于如果不存在驱动电流配置时,设置CMD引脚的输出电平为高电平,从最小驱动电流至最大驱动电流配置CMD引脚,直到CMD引脚的电压为标准高电平电压时,保存所配置的驱动电流和SD卡的CID寄存器值。
请一并参阅图6,所述CID获取与判断模块20包括:命令发送单元201、CID获取单元202和CID判断单元203;所述命令发送单元201用于向SD卡发送复位SD卡的命令和要求SD卡反馈其CID寄存器的值的命令;所述CID获取单元202用于读取SD卡反馈的CID寄存器的值;所述CID判断单元203用于判断CID寄存器值的CMD引脚的驱动电流配置是否已存在。
请一并参阅图7,所述测试与配置保存模块40包括:电平设置单元401、配置获取与排列单元402和配置与保存单元403。所述电平设置单元401用于将CMD引脚的输出电平设置为高电平;所述配置获取与排列单元402,用于获取CMD引脚的驱动电流的所有配置,将其配置的驱动电流按小到大的顺序排列,并记为CFG[1]、CFG[2]、……、CFG[N],其中,CFG[1]为CMD引脚驱动电流的最小配置,CFG[N]为CMD引脚驱动电流的最大配置,N为CMD引脚驱动电流配置的个数。所述配置与保存单元403用于当所读取CMD电压小于标准电压时,继续配置使能下一个配置;当所读取CMD电压大于标准电压时,设置当前所配置的驱动电流为最佳驱动电流配置,保存所配置的驱动电流与该SD卡的CID寄存器值。
综上所述,本发明实现了CMD引脚的驱动电流配置与实际使用的SD卡相适应,避免CMD引脚的驱动电流配得过小导致的CMD引脚上的高电平的电压偏低容易使SD卡无法正确接收到命令,同时防止CMD引脚的驱动电流配得过大导致的CMD引脚上的功耗偏高浪费电量。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。