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卡座。 |image1| 如果需要用到sim卡在位检测,推荐电路如下。 |image2| 在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插上或拔去,模块能够检测判断SIM卡是否在位。 Luat版本 '''''''' 参考:https://luatdoc.papapoi.com/wiki/pages/521.html rtos.notify_sim_detect()接口说明 AT版本 '''''' 客户使用合宙LTE模块开发的产品如果需要具备热插拔功能,需要在硬件和软件上都具备相应的条件: 1)在硬件上,需要USIM_CD(USIM Card Detect)这个引脚与SIM卡座的SW(即SWITCH)连接来实现。下图是参考电路: .. image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200817215040735_simdet.png 当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已经有内部拉高)。 |image3| 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指令 ---------- 输入PIN码:AT+CPIN '''''''''''''''''' 语法规则: +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回和说明 | +=======================+=======================+=======================+ | 设置命令 | 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 | 关闭开机PIN码提示 | | | T+CLCK=”SC”,0,”1234” | | +----------------------+----------------------+----------------------+ | ← | 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/ .. |image1| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200521162008118_5.png .. |image2| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200521162307522_6.png .. |image3| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200817221815159_xian.png