热插拔工作原理
为了实现在开机后用户可以自由的进行插卡和拔卡的动作而不需要关机->插卡->再开机,SIM卡的热插拔功能应运而生。热插拔功能是靠中断来实现的,因此要支持SIM 卡热插卡,硬件上需要特殊的SIM 卡座,这种卡座会有个Detect pin (也就是中断pin),当用户插入或者拔出卡时,中断电平会发生高低变化,进而触发中断,软件会根据中断的状态来判定当前是插卡还是拔卡,从而执行检卡或者停卡动作。
一般来说插卡和拔卡的间隔要在2s 以上,由于拔卡与插卡两个动作后,基带都还在数据处理,SIM状态还没有完全稳定下来,低于2s 的快速热插拔动作会导致不识别卡的概率发生较大。
热插拔信号流程
SIM卡座CD脚检测到SIM卡插入后,SIM卡各个管脚与正常的先插卡后加电的时序一样。
热拔卡的信号流程——单卡
拔出卡的时序;单SIM卡座的拔卡时序
见下面左右2图,左图是SIM卡上的VCC、CLK、RESET、DATA的时序。右图为SIM_CD和SIM_VCC之间的时序关系。
拔卡后CD掉落100ms~140ms之后SIM_VCC掉落的目的是为了防抖动,是为了防止CD被误触发,导致VCC过快的反应,而导致SIM卡掉卡。