UIM上电

基于高通平台


Activation
RST置为L
VCC上电
I/O口设为接收模式
CLK提供时钟信号
然后,卡就准备接收冷复位信号了(RST设为H)

Deactivation
与Activation正好相反
RST设为L
CLK设置为L
I/O口设置为A状态
VCC掉电

ATR
UIM上电后会返回ATR(Answer To Reset),
ATR包含了卡的capabilities。若是3G卡,TA3或TA4表示卡支持的电压类型,而2G卡不包含,UE需要发送SELECT GSM命令来获取。
如果UE没收到ATR,则会用更高的电压去尝试
如果收到不正确的ATR,会用同一电压重试3次,之后才会认为无卡。(80-VH205-1 P8)

Clock Stop Mode
当没有数据传输并且I/O口保持空闲状态至少1860个时钟周期,会进入始终停止模式。
是否支持此模式由ATR中(T=15)决定(AMSS默认支持)
要传输数据时,UE可重启时钟

Protocol Parameter Selection
ATR后,UIM模块会发送PPS请求来协商时钟速率校正因子和波特率校正因子(F,D)
e421b6341ddac8b5283c449d659c4c110ad.jpg
传输协议类型分2种,卡会在ATR种提供
T=0:半双工异步字符传输
T=1:半双工异步块传输
如果卡2种都支持,则UE通过NV_UIM_PREF_PROTOCOL_I (914)来决定
FEATURE_UIM_T_1_SUPPORT Enables:T=1 protocol
FEATURE_UIM_BLOCK_MODE_SUPPORT :T=1时用于硬件奇偶检验

轮询
高通平台28s轮询一次UIM卡(其实想要的时30s,留了2s的余量),
我们可以通过定义FEATURE_USE_TIME_VU来增加1.5s,使其更接近30s。
轮询通过发送STATUS命令给卡
Start Clock -> Send STATUS cmd -> Receive response -> Stop clock
通过STATUS命令轮询是GCF强制要求的(TS31.121 Section 8.4),而且在通话过程中,检测卡失败后需在5s内断开通话。





log:

上电:
// 手机给卡上电
[00021/00] User Identity Module/Low 08:29:17.495 uimdrv.c 03627 uim_power_up
[00021/00] User Identity Module/Low 08:29:17.515 uimdrv.c 03899 uim_reset
[00021/00] User Identity Module/Low 08:29:17.516 uimgen.c 08768 UIM state in uim_command 1 // 1表示reset状态












 

转载于:https://my.oschina.net/igiantpanda/blog/2222645

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值