跳转至

合宙4G模块双卡切换应用与实现

一、背景

在使用合宙4G模块支持双卡功能的场景下,切换卡槽是一个关键环节,它关乎到设备在不同网络环境下的适应性和持续在线的能力。以下是在不同场景中双卡应用:

1. 智能安防系统

场景描述:智能安防系统通常需要保持持续在线以监控现场情况,并及时向用户发送警报。在某些地区,不同运营商的网络覆盖情况可能存在差异,因此使用双卡切换功能可以确保系统的稳定性和可靠性。

应用方式:系统可以内置合宙4G模块,并设计两个SIM卡槽。通过软件程序定期检测两张SIM卡的信号强度,自动选择信号更强的卡进行数据传输。当一张卡信号较弱或无法联网时,系统能够自动切换到另一张卡,确保监控数据的连续传输。

2. 车载终端设备

场景描述:车载终端设备如GPS定位器、车载行车记录仪等,需要在车辆行驶过程中保持与远程服务器的通信。不同地区的运营商网络覆盖可能存在差异,双卡切换功能可以确保设备在不同地区的持续在线。

应用方式:车载设备内置合宙4G模块,并根据车辆行驶路线和目的地提前插入两张不同运营商的SIM卡。设备可以通过软件程序自动检测并切换至信号更强的SIM卡,以确保定位信息的准确性和实时性。同时,设备还可以设置流量使用策略,如优先使用某张卡的流量,以节省成本。

3. 工业自动化控制

场景描述:工业自动化控制系统需要实时采集生产数据并远程传输至监控中心。在某些工业环境中,由于建筑物遮挡、电磁干扰等因素,单一运营商的网络可能无法满足需求。

应用方式:工业自动化设备内置合宙4G模块,并设计双卡槽以支持双卡切换功能。系统可以根据实时网络状况自动选择最优的SIM卡进行数据传输,确保生产数据的及时性和准确性。同时,设备还可以设置异常报警功能,当检测到网络异常或数据传输中断时,及时通知维护人员进行处理。

二、SIM卡槽的切换

合宙部分主推模块780EP,780EQ,780E等有两路SIM卡引脚,是支持双卡单待的,即同一时间只能使用其中一个SIM通道,以780E模块为例:

alt text

SIM卡参考推荐电路

alt text

使用6pin的SIM卡座,具体电路图请参考相关文档。

切换方式

AT固件

主要围绕AT+SIMCROSS这条指令做SIM卡通道的调整切换,其中又分为手动切换和自动切换:

  • 手动切换:通过AT+SIMCROSS=0或者1选择,0是SIM0,1是SIM1。注意在切换时需要发送AT+CFUN=0进入飞行模式再切换,否则指令会返回ERROR错误码,指令不生效。切换完成后发送AT+SIMCROSS?查询当前SIM卡通道是否正确,然后退出飞行模式即可。
    AT+SIMCROSS?
    
    +SIMCROSS: 1
    
    OK
    AT+CFUN=0
    
    OK
    
    +CGEV: ME DETACH
    AT+SIMCROSS=0
    
    +SIMCROSS:0
    
    OK
    AT+CFUN=1
    
    OK
    
    ^MODE: 17,17
    
    +E_UTRAN Service
    
    +CGEV: ME PDN ACT 1,0
    
    +NITZ: 2024/09/06,01:14:36+0,0
    AT+SIMCROSS?
    
    +SIMCROSS: 0
    
    OK
    
  • 自动切换:当你想不管是哪个卡槽,要能识别到卡,自动选择卡槽,那么就使用AT*SIMAUTO=1,打开SIM卡自动切换功能,该指令需要在配置后重启才能生效。
    AT*SIMAUTO?
    
    *SIMAUTO: 0
    
    OK
    AT*SIMAUTO=1
    
    OK
    AT+RESET
    
    OK
    
    ^MODE: 17,17
    
    +E_UTRAN Service
    
    +CGEV: ME PDN ACT 1,0
    
    +NITZ: 2024/09/06,01:19:32+0,0
    AT*SIMAUTO?
    
    *SIMAUTO: 1
    
    OK
    AT+SIMCROSS?
    
    +SIMCROSS: 0
    
    OK
    

LUATOS固件

和AT固件同理也分为手动切换和自动切换,此时我就要用上mobile.simid接口。

  • 自动切换:使用mobile.simid(0)或者mobiile.simid(1),选择固定使用哪一路sim卡通道,在切换后可以通过mobile.simid()的返回值查询SIM通道id。
    mobile.simid(0)
    mobile.simid(1)
    
  • 手动切换:使用moile.simid(2),该接口则需要在开机时执行或者进入飞行模式下执行后再退出,同时会占用4个IO(gpio4/5/6/23)。
    mobile.simid(2)