SIM卡接口
# SIM卡管脚定义

# SIM 接口参考电路
下图是 SIM 接口的参考电路,使用 6pin 的 SIM 卡座。

如果需要用到 sim 卡在位检测,推荐电路如下。

> 在SIM卡接口的电路设计中,为了确保SIM卡的良好的功能性能和不被损坏,在电路设计中建议遵循以下设计
原则:
1.SIM卡座与模块距离摆件不能太远,越近越好,尽量保证SIM卡信号线布线不超过20cm。
2.SIM卡信号线布线远离RF线和VBAT电源线。
3.为了防止可能存在的USIM_CLK信号对USIM_DATA信号的串扰,两者布线不要太靠近,在两条走线之间增
加地屏蔽。且对USIM_RST_N信号也需要地保护。
4.为了保证良好的ESD保护,建议加TVS管,并靠近SIM卡座摆放。选择的ESD器件寄生电容不大于50pF。在
模块和SIM卡之间也可以串联22欧姆的电阻用以抑制杂散EMI,增强ESD防护。SIM卡的外围电路必须尽量
靠近SIM卡座。
# 常见问题及故障排查
## sim卡不识别问题?
sim卡不识别按以下步骤进行:
1:看模块开机没?at指令能不能用?at+cpin?返回ready,代表读到卡,如果返回error,按以下几点排查:
2:sim卡是不是Ok?sim卡方向有没反,注意卡座缺口方向
3:每个脚对地用万用表,打到二级管档位量下,红接地,黑接每个管脚,值是400-500之间正常。
4:看模块与卡座之间连线有没有问题,引脚对地阻值是不是正常,引脚间有没短路,
原理图和Pcb网络名与sim卡座实物对不对,卡座是否接触良好,如果sim卡一插入,vdd和clk就对地短路,一般是卡座问题。
5:示波器测试下sim_vdd波形,有个1.8-3.3v的高电平跳变,如果波形正常,一般是卡座和模块引脚之间问题,要识别到卡,才会有电压输出。
6:如果以上都排除了,重新烧下at固件看下,1.2基线不支持自动切换sim卡,默认sim0,1.3基线可以支持自动切换
7:如果是贴片卡,可以先拆下贴片卡,飞线到一个可以识别到卡的卡座到模块管脚,看下是否贴片卡问题
## 模块AT固件584 sim卡不识别问题?
现象:同一客户板子和固件+同一批次2张电信卡 模块始终无法识别到卡,error 10
开发板和同一固件 + 同一批次2张电信卡 可以识别
同一客户板子和固件+某个移动卡 可以识别
结论:同一批次电信卡内部rst存在上拉,模块外部usim-rst管脚必须接上,才能识别到,实际客户板子上模块usim-rst管脚存在虚焊,所以电信卡不识别
这个移动卡内部不存在rst上拉,即使模块外部usim-rst管脚没接到卡座,也能识别,不影响
## - 新的流量卡需要激活吗?
- 一般是上电自动激活;合宙出售的物联网卡为纯流量卡,不支持语音和短信业务,必须去运营商办理实名认证的卡才能使用;合宙物联网卡相关问题可参考以下链接 [上海合宙物联网卡产品介绍](https://doc.openluat.com/article/1477/0)
## - 流量卡相关问题联系方式(微信手机同号)
采购&商务:
陆相成 17717258958
运营&客户支持:
姜彩燕 18366199964 jiangcaiyan@openluat.com
陈秀芝 18256050375 chenxiuzhi@airm2m.com
客户支持:
金玲 15656964968 jinling@airm2m.com
## - 专网卡访问白名单
用定向Ip的物联网卡,需要把域名或IP加入白名单才能使用,下面列出模块会访问的域名或IP服务器。
AT版本
DNS服务器,可以通过AT+CDNSCFG?查询默认的服务器,如果需要修改,可以通过AT+CDNSCFG=ip1,ip2进行修改。
| 功能| 地址| 端口 | 协议 |
| --- | --- | --- | --- |
| 远程升级| iot.openluat.com | 80 | http|
| 基站WIFI定位| bs.openluat.com | 80 | http |
| AGPS星历下载| download.openluat.com | 80 | http |
| NTP时间同步| ntp1.aliyun.com | 123 | udp |
Lua版本
DNS服务器,可以通过AT+CDNSCFG?查询默认的服务器,如果需要修改,可以通过AT+CDNSCFG=ip1,ip2进行修改。(最新V3103版本已支持)
NTP时间同步,会在下面列出的服务器中随机选一下,可以根据需要修改。
| 功能| 地址| 端口 | 协议 |
| --- | --- | --- | --- |
| 远程升级| iot.openluat.com | 80 | http |
| 日志服务| dev_msg1.openluat.com | 12425 | udp|
| 基站WIFI定位| bs.openluat.com | 12412和 12411| udp|
| AGPS星历下载| download.openluat.com | 80 | http |
| NTP时间同步| cn.pool.ntp.org | 123 | udp |
| NTP时间同步| edu.ntp.org.cn | 123 | udp |
| NTP时间同步| cn.ntp.org.cn| 123 | udp |
| NTP时间同步| s2c.time.edu.cn| 123 | udp |
| NTP时间同步| time1.aliyun.com | 123 | udp |
| NTP时间同步| tw.pool.ntp.org | 123 | udp |
| NTP时间同步| 0.cn.pool.ntp.org | 123 | udp |
| NTP时间同步| 0.tw.pool.ntp.org | 123 | udp |
| NTP时间同步| 1.cn.pool.ntp.org |123 | udp |
| NTP时间同步| 1.tw.pool.ntp.org | 123 | udp |
| NTP时间同步| 3.cn.pool.ntp.org | 123 | udp |
| NTP时间同步| 3.tw.pool.ntp.org| 123 | udp |
## SIM卡热插拔功能
SIM卡热插拔检测功能是指模块开机后SIM插上或拔去,模块能够检测判断SIM卡是否在位。
##### LuatOS-Air版本
参考:
[rtos.notify_sim_detect()接口说明](https://doc.openluat.com/wiki/21?wiki_page_id=2247#rtosnotify_sim_detectnsimconnect_606)
[(以gpio7为例)demo](https://cdn.openluat-luatcommunity.openluat.com/attachment/20210308200711388_main.lua)
注意事项:
1.sim卡座的cd检测管脚接到gpio口,可以指定任意没被复用的gpio做sim卡检测,
2.gpio配置为中断模式,可以在demo中改为上升沿检测拔出,或下降沿拔出都可以。
3.热插拔模拟测试同AT版本一样。
##### AT版本
客户使用合宙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
## 上电后在插卡,不能自动识别,一定要上电前插卡吗
是的,或者重启一下,或者增加热插拔功能
## sim.setId(1, cbFn)来切换卡没有生效
sim.getId返回的值变了,而卡的iccid等还是SIM0位置这张卡
设置完了要重启一下,才能正常生效
## 卡才用2天,也没有用流量,查询卡流量用完了
通过AT+RNDISCALL?确认RNDIS是否关闭,0关闭,1打开
如果不需要RNDIS可以通过下面链接说明关闭
[如何禁用RNDIS功能](https://doc.openluat.com/wiki/21?wiki_page_id=2010#RNDIS_17 "如何禁用RNDIS功能")
### 物联网卡APN设置
有些物联网,需要设置APN才能使用,可以通过调用link.setAuthApn(0,"APN") 设置[API说明](https://doc.openluat.com/wiki/21?wiki_page_id=2277 "API说明")
### 已经把那个上网卡的驱动关了,at固件下未进行任何操作,还是有流量消耗,想问一下这可能是那个环节在使用流量呢?
自动升级关掉试试
或者通过抓log分析:[AP日志的抓取与分析](https://doc.openluat.com/wiki/21?wiki_page_id=2451 "AP日志的抓取与分析")
### 把SIM卡的ESD拿掉,不要保护了,这样做问题大吗
要接esd , 不然容易被静电打坏
### 重启sim卡怎么操作
1. 重启模块
2. SIM卡热插拔
## 怎么判断sim卡是移动,联通还是电信?
可以通过查询卡的IMSI来判断
IMSI共有15位,其结构如下:
MCC+MNC+MSIN ,(MNC+MSIN=NMSI)
MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,共2位,中国移动00、02、04、07,中国联通01,中国电信03,11
MSIN:Mobile Subscriber Identification Number共有10位
AT命令获取IMSI方法
```lua
AT+CIMI
460043136520119 --MNC为04说明是中国移动卡
OK
```
LUA获取IMSI方法
```lua
sim.getImsi() --获取sim卡的imsi
sim.getMnc() --获取sim卡的getmnc
```
[lib API 查询sim卡状态](https://doc.openluat.com/wiki/21?wiki_page_id=2292 "查询sim卡状态")