功能描述
平时我们用的手机和4G模块,都需要插一张SIM卡,远程SIM(下面称作Remote SIM)是一种比较特殊的应用。
Remote SIM Card 指的是SIM 卡与无线通讯模块之间的数据交互通过网络进行交互,如无线通讯模块在深圳,SIM 卡在美国的旧金山,Remote SIM Card 功能提供了一套交互机制能够在无线通讯模块与SIM卡之间进行通讯,能够使深圳的无线模块能够识别到在美国的SIM 卡。
简单点说: 就是无线通讯模块和SIM卡不在一个地方,没有物理连接。
总体框架设计
Remote SIM Card 主要包括如下所示三个部分的功能,这里只对我们无线通讯模块与上位机直接的交互做介绍,下图为总体框架图。
其中无线模块与上位机在同一地点,无线模块的物理串口与上位机相连接。
上位机与客户的SIM 卡设备机器通过互联网相连接,具体交互中间还有个服务器对SIM 卡设备及上位机的数据交互进行衔接。
相关AT 命令定义及说明
+GTSET=”SIMPIPE”,mode
该命令用于设置对无线模块是否启用Remote SIM 卡的功能,当mode=0 时,模块不启用Remote Sim卡的功能,使用Local 卡的功能。当mode=1 或者2 时,启用Remote Sim 卡功能,禁用本地卡功能。特别的当mode=1 时,无线模块与远程SIM 卡之间的数据交互以短命令的模式进行,当mode=2 时,无线模块与远程SIM 卡之间的数据交互以长命令模式进行。短命令模式与长命令模式的区别请查看短命令模式与长命令模式章节。该命令仅用于上位机向无线模块发送。
+SIMRESET
该命令用于模块通知上位机需要初始化SIM 卡数据,模块与Remote SIM 之间的交互开始的标志。该命令一般在模块启动的时候通过模块物理串口发出通知上位机,需要进行SIM 卡的数据交互流程。注:该命令仅用于模块发出。
+SIMDATA
该命令用于模块与上位机之间的SIM 卡数据交互。上位机发送格式为AT+SIMDATA=”XX”,其中XX为交互数据的十六进制的字符串,如AT+SIMDATA="611c"。对于无线模块侧,模块收到上位机通过AT+SIMDATA=”XX”命令发送的数据时,通过发送+SIMDATA:”XX”,命令回复给上位机,其中XX 为交互数据的十六进制的字符串,如+SIMDATA:"00A40804022F05"。
无线通讯模块与上位机数据交互
无线通讯模块与上位机的数据交互通过AT 命令来交互,用到的主要AT 命令有+SIMRESET 及
+SIMDATA.交互流程如下:
无线模块开机时发送+SIMRESET 给上位机。
1) 上位机收到+SIMRESET 时,会启动SIM 卡的数据交互流程,会与远程Remote SIM 卡设备进行交互,得到数据后,上位机会通过串口向无线模块发送AT+SIMDATA="00" .
2) 无线模块收到上位机发送来的命令AT+SIMDATA="00"对数据”00”进行判断是否需要回复数据,如果没有直接回复OK。数据”00”不需要回复数据,直接回复OK。
3) 上位机收到模块回复的OK 后,会继续发送与远程SIM 卡设备获取到的SIM 卡的数据发送给无线模块,比如AT+SIMDATA="
3b9f95801fc78031e073fe2113574a330e1832300086"。
4) 模块收到后,需要对数据进行处理,回复数据及OK,比如+SIMDATA: "FF10947B"及OK。
5) 重复4,5 步骤。从模块开机到能够识别到SIM 卡,一般需要3-6 分钟的时间。