SIM卡接口¶
作者:金艺
概述¶
Air724UG 支持2路SIM卡通道,但是只能支持双卡单待,也就是两路SIM卡通路不能同时使用。
管脚定义¶
SIM0卡接口定义:
管脚名 |
管脚号 |
作用 |
---|---|---|
USIM_VDD |
12 |
USIM卡供电电源。自动侦测SIM卡工作电压。 精 度3.0V±10%和1.8V±10%。最大供电电流10mA。 |
USIM_RST_N |
11 |
USIM卡复位脚 |
USIM_DATA |
10 |
USIM卡数据线 |
USIM_CLK |
9 |
USIM卡时钟线 |
USIM_CD |
8 |
USIM卡插拔检测 |
SIM1卡接口定义:
管脚名 |
管脚号 |
作用 |
---|---|---|
VSIM1 |
72 |
SIM1卡供电电源。自动侦测SIM卡工作电压。 精 度3.0V±10%和1.8V±10%。最大供电电流10mA。 |
SIM1_RST_N |
71 |
SIM1卡复位脚 |
SIM1_DATA |
70 |
SIM1卡数据线 |
SIM1_CLK |
69 |
SIM1卡时钟线 |
SIM0 和 SIM1(或者内置贴片SIM卡)切换逻辑¶
Air724UG-NA 支持SIM0 和 SIM1双卡单待; Air724UG-MA 由于模块内部已经在SIM1接口上内置了贴片SIM卡,故SIM1 接口不可再外接SIM卡,也不可用作GPIO;
模块开机后首先会去查询SIM0 接口上是否有插入SIM卡,如果检测到SIM0接口上的SIM卡,就会读取SIM0接口的卡信息去连接网络;如果SIM0接口上没有检测到SIM卡,则会再去检测SIM1 接口上是否有SIM卡(或者是内置贴片SIM卡),如果检测到SIM1接口上的SIM卡(或者是内置贴片SIM卡),就会读取SIM1接口的卡信息去连接网络;如果SIM1接口上也没有检测到SIM卡,则会报错,未插入SIM卡;
SIM0 接口和SIM1 接口如果同时插入了SIM卡,默认会使用SIM0接口上的SIM卡,同时也可以通过AT+SIMCROSS 这个指令来切换;
SIM0 |
SIM1 |
默认使用 |
|
---|---|---|---|
Air724UG-NA |
插入SIM卡0 |
插入SIM卡1 |
SIM0 |
插入SIM卡0 |
未插入SIM卡 |
SIM0 |
|
未插入SIM卡 |
插入SIM卡1 |
SIM1 |
|
未插入SIM卡 |
未插入SIM卡 |
报 错,未插入SIM卡 |
|
Air724UG-MA |
插入SIM卡0 |
有内置贴片SIM卡 ,不可以再外接 ,否则会出错! |
SIM0 |
未插入SIM卡 |
同上 |
内部贴片SIM卡 |
注意: 如果SIM0和SIM1仅有一个卡槽插入了SIM卡 AT版本以AirM2M_720U_V3开头的固件,才支持自动识别SIM卡功能 Luat版本以Luat_V3开头的固件,才支持自动识别SIM卡功能 例如,如果SIM0没有插卡,SIM1有插卡; AirM2M_V301825_720U_LTE_AT可以自动识别到SIM1有卡; AirM2M_V1338_720U_LTE_AT不可以自动识别到SIM1有卡,必须使用AT+SIMCROSS=1命令设置主动去检测SIM1 Luat_V3024_RDA8910_TTS_NOVOLTE_FLOAT可以自动识别到SIM1有卡; Luat_V0022_RDA8910_TTS_FLOAT不可以自动识别到SIM1有卡,必须增加ril.request(“AT+SIMCROSS=1”)代码设置主动去检测SIM1
参考设计¶
下图是SIM接口的参考电路,使用6pin的SIM卡座。
如果需要用到sim卡在位检测,推荐电路如下。
在SIM卡接口的电路设计中,为了确保SIM卡的良好的功能性能和不被损坏,在电路设计中建议遵循以下设计原则: • SIM卡座与模块距离摆件不能太远,越近越好,尽量保证SIM卡信号线布线不超过20cm。 • SIM卡信号线布线远离RF线和VBAT电源线。。 • 为了防止可能存在的USIM_CLK信号对USIM_DATA信号的串扰,两者布线不要太靠近,在两条走线之间增加地屏蔽。且对USIM_RST_N信号也需要地保护。 • 为了保证良好的ESD保护,建议加TVS管,并靠近SIM卡座摆放。选择的ESD器件寄生电容不大于50pF。在模块和SIM卡之间也可以串联22欧姆的电阻用以抑制杂散EMI,增强ESD防护。SIM卡的外围电路必须尽量靠近SIM卡座。
SIM卡热插拔检测功能是指模块开机后SIM插上或拔去,模块能够检测判断SIM卡是否在位。
参考:https://luatdoc.papapoi.com/wiki/pages/521.html rtos.notify_sim_detect()接口说明
客户使用合宙LTE模块开发的产品如果需要具备热插拔功能,需要在硬件和软件上都具备相应的条件:
1)在硬件上,需要USIM_CD(USIM Card Detect)这个引脚与SIM卡座的SW(即SWITCH)连接来实现。下图是参考电路:
当SIM卡插上,则USIM_CD变为1.8V高电平;当SIM卡拔去,则USIM_CD变为低电平(接地)。
2)在软件上,需要开机输入AT+CSDT=1打开SIM卡热插拔功能。(注:此命令即时生效,如需关机自动保存请输入AT+CSDT=1;&W)
当SIM卡插上时,USIM_CD变高产生中断,触发模块的判断流程,USIM_CD为高会被判断为插卡,此时会重新初始化SIM卡并上报相应的URC;
当SIM卡拔去时,USIM_CD变低产生中断,触发模块的判断流程,USIM_CD为低会被判断为拔卡,并上报相应的URC。
那如何在合宙LTE模块开发板上验证SIM热插拔功能呢?
合宙LTE模块开发板上已经将USIM_CD引出,在CAT4模块开发板上,这个脚在开发板上的引出点叫做SIM_DET;在CAT1模块开发板上,这个脚在开发板上的引出点叫GPIO_23
系列开发板的SIM卡座没有SWITCH检测,SIM_CD不会自动跳变,所以我们需要在SIM卡热插拔的时候将SIM_CD手动拉高接地来模拟这个动作进行测试。
SIM_CD手动拉高接地的具体方法就是拿一根下图中的线,一端焊到SIM_CD,另外一端需要接地的时候插到开发板的GND,需要拉高的时候就从GND拔掉(SIM_CD已经有内部拉高)。
1)SIM_DET接GND,模块不插卡开机 2)AT+CSDT=1 (不需要重启模块,这个命令是即时生效的) 3)SIM卡热插上,然后SIM_DET从GND拔掉,此时应该上报”+CPIN: READY”这个URC 4)SIM热拔除,SIM_DET接到GND,此时应该上报”+CPIN: SIM REMOVED”这个URC
相关AT指令¶
语法规则:
命令类型 |
语法 |
返回和说明 |
---|---|---|
设置命令 |
AT+CPIN=[,] |
OK 说明:如果需要的PIN 是SIM PUK 或者SIM PUK2, 则需 要第二个pin。用来取代 SIM 卡中的原有的pin。 |
查询命令 |
AT+CPIN? |
+CPIN: OK |
测试命令 |
AT+CPIN=? |
OK |
URC |
+CPIN: |
参数定义:
参数 |
定义 |
取值 |
对取值的说明 |
---|---|---|---|
密码 |
字符串型 |
||
新密码 |
字符串型 |
||
READY |
ME不再需要提供密码 |
||
SIM PIN |
ME等待提供SIM卡的PIN码 |
||
SIM PUK |
ME等待提供SIM卡的PUK码 |
||
SIM PIN2 |
ME等待提供SIM卡的PIN2码 |
||
SIM PUK2 |
ME等待提供SIM卡的PUK2码 |
||
SIM REMOVED |
SIM卡未检出 |
举例:
命令(→)/ 返回(←) |
实例 |
解释和说明 |
---|---|---|
→ |
AT+CPIN? |
查询PIN码锁状态 |
← |
+CPIN: READY OK |
表示PIN码锁并未开启 |
→ |
A T+CLCK=”SC”,1,”1234” |
开启 开机PIN码锁,1234是 PIN码,SC表示是SIM卡 |
← |
OK |
返回OK后,重启模块 |
← |
+CPIN: SIM PIN |
重新开机后,模块会自 动上报PIN码状态,SIM PIN表示开机 PIN码为ON的状态(即 开机需要输入PIN码) |
→ |
AT+CPIN=”1234” |
此时需要输入PIN码 |
← |
+CPIN: READY OK |
表示密 码正确,PIN码锁解锁 |
→ |
AT+CLCK=”SC”,2 |
查询当前的开 机PIN码是否仍然开启 |
← |
+CLCK: 1 OK |
1表示 仍然有开机PIN码提示 |
→ |
A T+CLCK=”SC”,0,”1234” |
关闭开机PIN码提示 |
← |
OK |
返回OK后重新开机 |
← |
+CPIN: READY |
重新开机后,模块会自 动上报PIN码状态,REA DY表示开机PIN码:OFF |
#### SIM卡切换:AT+SIMCROSS
语法规则:
命令类型 |
语法 |
返回 |
---|---|---|
设置命令 |
AT+SIMCROSS= |
OK |
查询命令 |
AT+SIMCROSS? |
+SIMCROSS: OK |
测试命令 |
AT+SIMCROSS=? |
+SIMCROSS:(取值范围) OK |
注意事项 |
本命令关机保存,但是需重启生效 |
参数定义:
参数 |
定义 |
取值 |
对取值的说明 |
---|---|---|---|
SIM No. |
0 |
SIM卡0 |
|
1 |
SIM卡1或内置贴片卡 |
举例:
命令(→)/返回(←) |
实例 |
解释和说明 |
---|---|---|
→ |
AT+SIMCROSS? |
|
← |
+SIMCROSS:0 OK |
SIM卡位置为0 |
→ |
AT+SIMCROSS=1 |
切换成内置贴片卡或SIM卡1 |
← |
OK |
LUAT开发相关接口¶
详情见LUAT API SIM 相关章节(未完成)
相关资料以及购买链接¶
相关开发板购买链接 Air724UG开发板 Air724 开发板使用说明
常见问题¶
https://luatdoc.papapoi.com/638/ #### SIM卡不识别 1. 首先要确认模块SIM引脚是否有硬件损坏,判断标准https://luatdoc.papapoi.com/634/ 造成硬件损坏的原因大部分是有带电插拔SIM卡的操作导致。务必杜绝带电插拔SIM卡,同时要在线路上加入TVS管保护。 2. 软件方面:确认模块是否进入飞行模式,模块在进入飞行模式后会出现无法识别卡的情况,AT+CFUN=0命令或Luat版本执行net.switchFly(true)接口都会进入飞行模式,通过 AT+CFUN=1或net.switchFly(false) 来退出飞行模式.
模块开机了,但是SIM卡VDD没有电压,是不不到卡。 SIM卡的VDD在初始化SIM卡时会打开,并且进行初始化卡的动作,但是如果识别不到SIM卡,SIMVDD就会关闭,所以就会出现开机了但是SIMVDD没有电压的情况,而不是SIMVDD没有电压导致的不识别SIM卡 #### 新的流量卡需要激活吗? 一般是上电自动激活;合宙出售的物联网卡为纯流量卡,不支持语音和短信业务,必须去运营商办理实名认证的卡才能使用;合宙物联网卡相关问题可参考以下链接 https://luatdoc.papapoi.com/1477/