发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种移动终端多SIM卡热插拔检测的方法及系统,以解决现有技术中的不能同时对多个SIM卡的热插拔进行检测或者多个热插拔程序同时运行影响系统性能的缺陷。
本发明解决技术问题所采用的技术方案如下:
一种移动终端多SIM卡热插拔的检测方法,其中,包括:
A、预先设置各个SIM卡的热插拔配置参数;
B、检测各个SIM卡的热插拔检测引脚是否产生中断;若产生中断,则执行步骤C,否则重复本步骤;
C、获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态;并输出SIM插入状态的结果。
所述移动终端多SIM卡热插拔的检测方法,其中,所述步骤A中,预设的热插拔配置参数包括:卡槽的卡槽号、与所述卡槽对应的热插拔检测引脚号和所述热插拔检测引脚号的电平状态所对应的SIM插入状态。
所述移动终端多SIM卡热插拔的检测方法,其中,所述步骤C中还包括:
C1、按照产生中断的先后顺序对热插拔检测引脚所对应的引脚号以及该引脚号所对应的预先设置的热插拔配置参数进行保存,建立保存列表,并禁能保存列表中热插拔检测引脚的中断功能;
C2、按照保存列表中的顺序,依次使能产生中断的热插拔引脚的中断功能,根据所述热插拔检测引脚所对应先设置的热插拔配置参数,对热插拔检测引脚所对应的SIM卡插入状态进行匹配。
所述移动终端多SIM卡热插拔的检测方法,其中,所述步骤C1还包括:
C11、对保存列表中保存的信息进行检测,若保存列表中同时出现相同引脚号的不同记录信息,则删除保存时间在先的记录信息。
所述移动终端多SIM卡热插拔的检测方法,其中,所述步骤C1还包括:
C12、判断保存列表是否为空;若为空,则重复本步骤,否则执行步骤C13;
C13、获取实时时间值与保存列表中排列第一的信息保存时刻的时间值,并将实时时间值与排列第一的信息保存时刻的时间值进行比较,判断两者的差值是否大于预设阈值,若大于,则执行步骤C14,否则延时预设时间后,执行步骤C14;
C14、根据该记录所对应的引脚号,根据预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态。
一种移动终端多SIM卡热插拔的检测系统,其中,包括:预先设置模块、中断检测模块和状态匹配模块;
所述预先设置模块,用于预先设置各个SIM卡的热插拔配置参数;
所述中断检测模块,用于对各个SIM卡的热插拔检测引脚是否产生中断进行检测;
所述状态匹配模块,用于获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态,并输出匹配结果。
所述移动终端多SIM卡热插拔的检测系统,其中,预设的热插拔配置参数包括:卡槽的卡槽号、与所述卡槽对应的热插拔检测引脚号和所述热插拔检测引脚号的电平状态所对应的SIM插入状态。
所述移动终端多SIM卡热插拔的检测系统,其中,所述状态匹配模块还包括:中断信息保存单元和顺序匹配单元;
所述中断信息保存单元,用于按照产生中断的先后顺序对热插拔检测引脚所对应的引脚号以及该引脚号所对应的预先设置的热插拔配置参数进行保存,建立保存列表,并禁能所述检测引脚的中断功能;
所述顺序匹配单元,用于按照保存列表中的顺序,依次使能产生中断的热插拔引脚的中断功能,根据所述热插拔检测引脚所对应先设置的热插拔配置参数,对热插拔检测引脚所对应的SIM卡插入状态进行匹配。
所述移动终端多SIM卡热插拔的检测系统,其中,所述中断信息保存单元还包括:记录检测子单元;
所述记录检测子单元,用于对保存列表中保存的信息进行检测,若保存列表中同时出现相同引脚号的不同记录信息,则删除保存时间在先的记录信息。
所述移动终端多SIM卡热插拔的检测系统,其中,所述中断信息保存单元还包括:列表状态检测单元、记录时间比较单元和匹配子单元;
所述列表状态检测单元,用于判断保存列表是否为空;
所述记录时间比较单元,用于获取实时时间值与保存列表中排列第一的信息保存时刻的时间值,并将实时时间值与排列第一的信息保存时刻的时间值进行比较,判断两者的差值是否大于预设阈值;
所述匹配子单元,用于当实时时间与排列第一的记录时间的差值大于预设阈值,则根据该记录所对应的引脚号,根据预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态。
有益效果,本发明所提供的一种移动终端多SIM卡热插拔的检测方法及系统,通过预先设置各个SIM卡的热插拔配置参数,对各个SIM卡的热插拔检测引脚是否产生中断进行检测;若产生中断,则获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态;并输出SIM插入状态的结果,从而可以简便快捷的获取卡槽中SIM卡的插入状态,提高系统的稳定性和开发的效率。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
本发明提供了一种移动终端多SIM卡热插拔的检测方法,如图1所述,所述方法包括以下步骤:
S1、预先设置各个SIM卡的热插拔配置参数。
所述热插拔配置参数为:卡槽的卡槽号、与所述卡槽对应的热插拔检测引脚号和所述热插拔检测引脚号的电平状态所对应的SIM插入状态。
S2、对各个SIM卡的热插拔检测引脚是否产生中断进行检测;若产生中断,则执行步骤C,否则重复本步骤;
对热插拔检测引脚是否产生中断进行检测,若未产生中断,则说明该热 插拔检测引脚中的SIM卡热插拔事件,若产生中断,则需要对其进行SIM卡热插拔检测,则进行下一步。
S3、获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态;并输出SIM插入状态的结果。
由于预先设置了热插拔配置的参数,设定了热插拔检测引脚处于的电平状态所对应的SIM卡插入状态,比如:当热插拔检测引脚处于的高电平状态时,该卡槽中未插入SIM卡,因此从该热插拔检测引脚的电平状态以及预先设置的配置参数,便可以匹配出该电平状态所对应的SIM卡的插入状态。
具体的,由于热插检测程序由各个SIM卡的卡槽所复用,因此当同时产生多个SIM卡热插拔检测中断时可能无法马上处理,需要先保存起来,等到热插拔检测程序有空时再处理;因此需要在移动终端中设置一个SIM卡热插拔处理缓存,所述SIM卡热插拔处理缓存包括以下步骤:
S31、按照产生中断的先后顺序对热插拔检测引脚所对应的引脚号以及该引脚号所对应的预先设置的热插拔配置参数进行保存,建立保存列表,并禁能保存列表中热插拔检测引脚的中断功能;
S32、按照保存列表中的顺序,依次使能产生中断的热插拔引脚的中断功能,根据所述热插拔检测引脚所对应先设置的热插拔配置参数,对热插拔检测引脚所对应的SIM卡插入状态进行匹配。
所述步骤S31中还包括:
S311、对保存列表中保存的信息进行检测,若保存列表中同时出现相同引脚号的不同记录信息,则删除保存时间在先的记录信息。
所述步骤S31中还包括:
S312、判断保存列表是否为空;若为空,则重复本步骤,否则执行步骤S313;
S313、获取实时时间值与保存列表中排列第一的信息保存时刻的时间值,并将实时时间值与排列第一的信息保存时刻的时间值进行比较,判断两者的差值是否大于预设阈值,若大于,则执行步骤S314,否则延时预设时间后,执行步骤S314;
S314、根据该记录所对应的引脚号,根据预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态。
为了对所述方法进行更加详细的解释,下面对所述方法的用法进行举例说明。
为了便于预先设置各个SIM卡的热插拔配置参数,可以在移动终端中设置一个SIM卡热插拔配置文件,下称SIMCARD HOT SWAP CONFIG FILE,该文件中每一行表示一个SIM卡的卡槽热插拔检测的配置;每一行由三个参数组成:
参数1、SIM卡的卡槽编号,一个编号代表一个SIM卡卡槽。
参数2、热插拔检测引脚,该卡槽通过这个引脚来检测是否有SIM卡插入该卡槽或有SIM卡从该卡槽中拔出;例如,33表示检测引脚为GPIO33;
参数3、检测电平,表示当热插拔检测引脚为何种电平时表示有SIM卡插进该卡槽,将这种电平取反,则表示当热插拔检测引脚为何种电平时表示有SIM卡从该卡槽拔出;例如,检测电平为1,表示热插拔检测引脚为高电平时有SIM卡插入卡槽,热插拔检测引脚为低电平时有SIM卡从卡槽拔出;
以下为带有三个SIM卡的卡槽配置的SIM HOT SWAP CONFIG FILE的一个例子:
2,33,1
5,28,0
8,66,1
其每一行分别表示:
编号为2的SIM卡卡槽使用GPIO33来检测SIM卡热插拔,当热插拔检测引脚为高电平时有SIM卡插入卡槽,当热插拔检测引脚为低电平时有SIM卡从卡槽拔出;
编号为5的SIM卡卡槽使用GPIO28来检测SIM卡热插拔,当热插拔检测引脚为低电平时有SIM卡插入卡槽,当热插拔检测引脚为高电平时有SIM卡从卡槽拔出;
编号为8的SIM卡卡槽使用GPIO66来检测SIM卡热插拔,当热插拔检测引脚为高电平时有SIM卡插入卡槽,当热插拔检测引脚为低电平时有SIM卡从卡槽拔出。
当对各个SIM卡的热插拔配置参数设置完成后,则便可以使用本发明所述的方法对各个SIM卡的卡槽进行热插拔检测,具体的,如图2所述,为本发明提供所述方法具体实施例中的步骤流程图,如图所示,在具体实施时,实施步骤包括以下步骤:
H1、当移动终端开机时,由GPIO读取模块获取GPIO33、28、66的电平,如果电平与SIMCARD HOT SWAP CONFIG FILE中的第三个参数一致则说明SIM卡在卡槽中,否则说明SIM卡不在卡槽中;
H2、GPIO中断检测模块对GPIO33、28、66进行中断配置,如果当前热插拔检测引脚为高电平则使能该引脚的低电平中断功能,如果当前热插拔检测引脚为低电平则使能该引脚的高电平中断功能;
H3、当检测到有SIM卡卡槽中的检测引脚上产生中断时,获取产生中断的GPIO引脚号,并根据引脚号在SIMCARD HOT SWAP CONFIG FILE中得到该GPIO所在卡槽对应的一行配置;然后禁能该GPIO的中断功能;
H4、将步骤S3中得到一行配置保存到SIMCARD HOT SWAP CACHE,保存时采取按产生中断的时间先后进行保存,并且如果在SIMCARD HOT SWAP CACHE中已有同一SIM卡卡槽编号的保存记录则将其删除;另外,还需记录每一行记录添加的时间,即SIMCARD HOT SWAP CACHE中的每一行包含四个参数:前三个参数与SIMCARD HOT SWAP CONFIG FILE中提到的三个参数一致,此处不再赘述,第四个参数为本条记录添加的时间。
为了避免防止移动终端由于振动等原因导致SIM卡与卡槽之间瞬间接触不良导致的误检测,上述步骤H3还包括以下步骤:
T1、判断SIMCARD HOT SWAP CACHE是否为空,如果为空则执行步骤H3,如果不为空则执行步骤T2;
T2、获取SIMCARD HOT SWAP CACHE中产生中断时间最早的一行记录;
获取当前时间,获取步骤T1中得到的一行记录的添加时间,两个时间作差得到时间差tdd,如果tdd大于或等于预设阈值tddth则执行步骤T3,否则延迟时间tddth-tdd再执行步骤T3;所述tddth为一时间值,用于防止移动终端由于振动等原因导致SIM卡与卡槽之间瞬间接触不良导致的误检测,较佳的预设阈值tddth设置为80毫秒;
T3、获取步骤T1中得到的那一行记录中的热插拔检测引脚的电平是否与检测电平相同,如果相同则说明有SIM卡插入该卡槽,如果相反则说明有SIM卡从该卡槽中拔出; 至于是卡槽编号可以从该记录的第一个参数得到;
T4、使能该热插拔检测引脚的中断功能:如果当前热插拔检测引脚为高电平则使能该引脚的低电平中断功能,如果当前热插拔检测引脚为低电平则使能该引脚的高电平中断功能,之后执行步骤H4。
在上述方法的基础上,本发明还提供了一种移动终端多SIM卡热插拔的检测系统,如图4所示,所述系统包括:预先设置模块10、中断检测模块20和状态匹配模块30;
所述预先设置模块10,用于预先设置各个SIM卡的热插拔配置参数;
所述中断检测模块20,用于对各个SIM卡的热插拔检测引脚是否产生中断进行检测;
所述状态匹配模块30,用于获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态,并输出匹配结果。
所述状态匹配模块还包括:中断信息保存单元和顺序匹配单元;
所述中断信息保存单元,用于按照产生中断的先后顺序对热插拔检测引脚所对应的引脚号以及该引脚号所对应的预先设置的热插拔配置参数进行保存,建立保存列表,并禁能所述检测引脚的中断功能;
所述顺序匹配单元,用于按照保存列表中的顺序,依次使能产生中断的热插拔引脚的中断功能,根据所述热插拔检测引脚所对应先设置的热插拔配置参数,对热插拔检测引脚所对应的SIM卡插入状态进行匹配。
所述中断信息保存单元还包括:记录检测子单元;
所述记录检测子单元,用于对保存列表中保存的信息进行检测,若保存列表中同时出现相同引脚号的不同记录信息,则删除保存时间在先的记录信息。
所述中断信息保存单元还包括:列表状态检测单元、记录时间比较单元和匹配子单元;
所述列表状态检测单元,用于判断保存列表是否为空;
所述记录时间比较单元,用于获取实时时间值与保存列表中排列第一的信息保存时刻的时间值,并将实时时间值与排列第一的信息保存时刻的时间值进行比较,判断两者的差值是否大于预设阈值;
所述匹配子单元,用于当实时时间与排列第一的记录时间的差值大于预设阈值,则根据该记录所对应的引脚号,根据预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态。
预设的配置参数包括:卡槽的卡槽号、与所述卡槽对应的热插拔检测引脚号和所述热插拔检测引脚号的电平状态所对应的SIM插入状态。
本发明所提供的一种移动终端多SIM卡热插拔的检测方法及系统,通过预先设置各个SIM卡的热插拔配置参数,对各个SIM卡的热插拔检测引脚是否产生中断进行检测;若产生中断,则获取产生中断的热插拔检测引脚的电平状态及其引脚号,根据所述电平状态和预先设置的该引脚号所对应的热插拔配置参数,匹配出该电平状态所对应的SIM卡插入状态;并输出SIM插入状态的结果,从而可以简便快捷的获取卡槽中SIM卡的插入状态,提高系统的稳定性和开发的效率。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。