三网合一(分身卡)7816 开发方案


三网合一原理图7816

三网合一SIM卡(分身卡),是指一张SIM卡同时支持移动、电信、联通三大运营商网络,无需担忧网络信号差,即可实现三大运营商全网覆盖。

一、封装形式

三网合一SIM卡,通常有2种封装形式:
1.QFN8 5x6封装(MFF2)。主要应用于物联网设备,需要二次贴片生产。
2.Nano SIM封装。即可应用于物联网,也可用在手机上,作为普通SIM卡使用。不需要考虑二次贴片,但需要考虑成品厚度。
三网合一封装形式

二、硬件构成

三网合一硬件构成
三网合一卡内部器件由3个运营商的贴片卡和1个主控MCU芯片组成。
运营商的贴片卡,是移动、联通、电信三大运营商发行的贴片卡,也是SIM卡,外观为QFN 2x2封装,有资费,可以正常打电话和上网。
主控MCU芯片,起桥梁的作用。ME并不直接与卡片通信,而是与主控MCU芯片通信,由主控MCU将ME的指令,转发给所选择的卡片,并将返回数据返回给ME。

三、工作原理

每一个时间点,只会有1张SIM卡与MCU通信。三网合一卡的主控MCU内部有Flash,存储了当前使用的是哪一张,当ME读取ICCID、IMSI时,MCU会把这些指令,发送给对应的SIM卡,并将SIM卡的ICCID、IMSI转发给ME。ME会把这些数据,发送给网络,由网络发起对该SIM卡的入网鉴权。ICCID、IMSI、鉴权数据的响应等,都是来自运营商的卡片,只是通过了主控MCU的转发而已。
MCU另外还会建立自己的STK菜单,通过STK菜单,用户可以手动切换当前使用的SIM卡;MCU也可以对ME发起主动式命令(Proactive command),查询当前网络的信号强度,如果信号强度,低于某一数值,则切换成下一张SIM卡;也可由平台侧,发起AT指令,进行SIM卡的切换操作。切换SIM卡后,MCU会重新存储当前的SIM卡编号,并要求ME对卡片重新复位(Proactive command实现,不需要插拔卡),完成重新入网的操作。
MCU一方面充当桥接芯片的作用,把需要入网操作相关的APDU命令,转发给SIM卡;另一方面,充当管理SIM卡的作用,决定是否需要进行切换SIM卡操作。

四、主控MCU选择

首先,主控MCU芯片本身得是SIM卡芯片。SIM卡芯片都具有硬件的ISO7816接口,可以根据外部CLK的频率不同,采用不同的速率通信。与UART不同的是,ISO7816需要外部时钟,外部时钟频率范围1 ~ 5M。初始通信时(ATR阶段),372个CLK为一个ETU,然后可由ME发送PPS,改变速率,如TA1 = 0x96时,16个CLK为一个ETU。如果主控MCU没有硬件的ISO7816接口,就需要软件模拟7816通信,软件模拟的通信会不稳定,因为外部时钟是变化的(1 ~ 5M),不同的ME提供的时钟可能不同。
其次,主控MCU芯片,需要有多个GPIO,用于与运营商卡片通信。主控MCU除了自身作为SIM卡外,还需要操作3家运营的卡,并与之通信。
再则,主控芯片面积需要足够小,外围器件足够少。如果MCU面积太大,或者外围器件过多,要将主控MCU与3家运营商的贴片卡,合封成一个芯片,将很难实现。

中巨伟业的SK32G101智能卡芯片,具有220K的Flash、5K的RAM、硬件7816接口及4个GPIO等,中巨伟业提供了完整的三合一卡源代码和SDK开发包,已经把与ME、SIM卡通信的底层代码写好,开发者直接调用就可以。SK32G101与SIM卡通信,最高支持FIDI=0x95,与ME通信,最高支持FIDI=0x97。

五、切换SIM卡技术方案

切换SIM卡,按照切换方式分,可分为手动切换和自动切换:
1.手动切换 可以通过STK菜单,进行人工选择,手动切换。
2.自动切换 通过APDU指令、AT指令、Proactive Command等,实现SIM卡切换。

切换SIM卡,按照切换发的起者,分为平台侧触发切换和MCU侧触发切换。当SIM卡切换完成,需要由MCU发送REFRESH命令给ME,要求ME对SIM卡重新复位入网。
发送REFRESH过程:
SEND:80F2000C00 ;Status
ASSERT:910B
SEND:801200000B
ASSERT: D009 8103010104 82028182

1.平台侧触发切换
优点:平台侧获取网络信号非常容易,并且稳定可靠,不会有ME兼容性问题。
缺点:通信模组需要改动,定制。
(1)客户通过AT指令将APDU切换指令发给卡片。指令格式如下

CLAINSP1P2Length
0054XX0000

01:切换为联通
02:切换为移动
03:切换为电信
80:关闭卡片自身切换功能。只处理平台侧发出的切换指令。
81:开启卡片自身切换功能。

(2)客户通过AT+CLCK=“SC”,1,"XXXX"指令发送其他控制指令,进行相关操作。“XXXX”是控制指令。对于卡端来说,该AT指令就是卡片的Enable PIN指令。0028000108指令,后面4位相当于PIN值内容。所以需要针对如下特定PIN值做相关操作
0100:切换为联通
0200:切换为移动
0300:切换为电信
8000:关闭卡片自身切换功能。只处理平台侧发出的切换指令。
8100:开启卡片自身切换功能。

(3)客户通过AT+CSCA=“xxxx”,145"xxxx"指令发送其他控制指令,进行相关操作。“XXXX”是控制指令。对于卡端来说,该AT指令就是卡片的更新短信中心号指令。指令流程为:
SEND:00A4080404 7FFF6F42
ASSERT:61XX
SEND:00DC010428FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF0491XXXXFFFFFFFFFFFFFFFFFFFFFF
指令中XXXX字段需要两两反转写入,即用户采用0100设置,指令中的内容为1000。例子如下:
00DC010428FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF04911000FFFFFFFFFFFFFFFFFFFFFF。
0100:切换为联通
0200:切换为移动
0300:切换为电信
8000:关闭卡片自身切换功能。只处理平台侧发出的切换指令。
8100:开启卡片自身切换功能。

2.MCU侧触发切换
优点:通信模组无需改动
缺点:ME种类繁多,并非所有的ME都能很好的支持Proactive command
(1)卡片6F7E(LOCI)文件最后一个位置更新状态字节内容进行判断
SEND:00A4080404 7FFF6F7E
ASSERT:61XX
SEND:00D600000B FFFFFFFFFFFFFFFFFFFFXX
指令中“XX”为位置更新状态。“XX”的b3b2b1位,定义为:
000:Updated
001:not Updated
010:PLMN not allowed
011:Location Area not allowed
当“XX”的b3b2b1位,不为“000”和“001”时,就可以由MCU发起SIM卡切换

(2)MCU用 “RUN AT COMMAND”向ME发送AT命令:AT+CSQ,获取网络信号强度,如果网络信号强度低于预设值,就可以由MCU发起切换。
SEND:80F2000C00 ;Status
ASSERT:9118
SEND:8012000018
ASSERT: D016 8103013400 82028182 050353544B 280641542B435351

SEND:801400002381030134000202828103010029150D0A2B4353513A2032352C39390D0A0D0A4F4B0D0A
ASSERT:9000
ME回应:+CSQ:,。若信号rssi低于20,就由MCU发起SIM卡切换。
AT指令 查询信号质量
(3)MCU用 “SET UP EVENT LIST” 命令,要求ME监控“位置状态事件”,当位置状态发生变化,ME就会通知SIM卡。位置状态信息中含有网络信息,当无网络时,就可由MCU发起SIM卡切换。

(4)MCU用 “PROVIDE LOCAL INFORMATION” 命令,请求 ME 给 SIM 卡发当前本地信息,获取“网络测量结果”。若测量值低于预设值,则由MCU发起SIM卡切换。
平台侧

在实际开发过程中,一般会用工具(逻辑分析仪、7816协议监听设备等)监听ME和MCU之间的通信。另外,为了模拟无信号环境,通常会把ME放入屏蔽箱中。然而在监听的同时,却很难屏蔽手机信号(监听设备会起天线作用,导致信号无法屏蔽)。那么可以在MCU内部的Flash,存储APDU日志,替代工具监听。存储的APDU日志,可通过专用指令,由读卡器读出。

六、STK命令

STK(SIM卡应用工具箱),是在原SIM卡被动式的操作系统上,衍生出的SIM卡主动交互式的操作系统。它提供的机制,允许SIM卡中的应用与支持该应用的ME进行交互操作,即支持SIM卡与ME之间的主动式对话,从而使移动用户拥有个人化附加业务。
从 ME 到 SIM 卡的通信使用 T=0 的协议。该协议中,ME 总是向 SIM 卡发起命令,没有 SIM 卡发起与 ME 通信的机制。这就限制了 SIM 卡引入请求 ME 支持 SIM 卡新特性的可能,ME 可以事先知道 SIM 卡应该采取什么动作。主动式 SIM 卡命令采用 T=0 协议,但增加了一个新的状态响应字 SW1。这个状态响应和正常结束(’90 00’)的意思相同,而且可以和大多数允许正常结束的命令一起使用,同时也允许 SIM 卡向 ME 发出信息发送的提示,ME使用 FETCH 功能查出是什么信息。
主动式SIM卡通过在SIM卡业务表中激活主动式SIM卡业务进行标识。在SIM卡初始化期间, ME发出TERMINAL PROFILE命令用于标识支持主动式SIM卡。然后ME根据轮询间隔命令确定的时间间隔,向SIM卡发送STATUS命令。
STK相关的4条命令:
TERMINAL PROFILE,告知SIM卡手机对STK的支持能力。初始化SIM卡的过程中发给SIM卡。

COMMANDCLAINSP1P2Length
TERMINAL PROFILEA0100000lgth

2.ENVELOPE,手机发送数据或者事件给SIM卡。

COMMANDCLAINSP1P2Length
ENVELOPEA0C20000lgth

3.FETCH, 手机从SIM卡获取命令

COMMANDCLAINSP1P2Length
FETCHA0120000lgth

SIM 卡可以发送一系列主动式 SIM 卡命令,命令如下:
— CLOSE CHANNEL,请求ME关闭专用数据通道。
— DISPLAY TEXT,在显示屏上显示文本或图标。
— GET CHANNEL STATUS,请求ME返回所有可用数据通道的当前状态。
— GET INKEY,向屏幕发送文本或图标,要求返回单个字符响应。
— GET INPUT,向屏幕发送文本或图标,要求返回一个响应。
— GET READER STATUS,提供附加读卡器和已插入的附加卡信息。
— LANGUAGE NOTIFICATION,通知ME目前在SIM卡应用工具箱中文本所使用的语言。
— LAUNCH BROWSER,要求ME的浏览器能解释与URL相关的内容。
— MORE TIME,不要求ME有任何操作,命令的目的是申请更多的处理时间。
— OPEN CHANNEL, 请求ME启用命令参数所设定的数据通道。
— PERFORM CARD APDU,请求ME向附加卡发送一APDU命令。
— PLAY TONE,请求ME通过耳机、听筒或其他扬声器发出声音。
— POLL INTERVAL,协商在空闲模式期间ME向SIM卡发送STATUS命令的频率。
— POWER OFF CARD,用于结束与附加卡之间的会话过程。
— POWER ON CARD,用于启动与附加卡之间的会话过程,并且返回所有的ATR字节。
— PROVIDE LOCAL INFORMATION,请求ME将本地信息传递给SIM卡,例如(MCC+MNC)。
— RECEIVE DATA, 请求ME返回给SIM卡专用数据通道的接收数据。
— REFRESH,请求ME执行SIM卡的初始化过程,命令可使ME复位SIM。
— RUN AT COMMAND,向ME发送一AT命令,并且返回给SIM卡此AT命令的响应。
— SELECT ITEM,SIM卡提供一套菜单项目列表供用户选择。
— SEND DATA, 请求ME在专用数据通道上发送SIM卡提供的数据。
— SEND DTMF,在呼叫建立时请求ME发出DTMF(双音多频)声音。
— SEND SHORT MESSAGE,向网络发送短消息或SMS-COMMAND。
— SEND SS,向网络发送SS请求。
— SEND USSD,向网络发送USSD字符串。
— SET UP CALL,建立呼叫。
— SET UP EVENT LIST,SIM卡为ME提供一事件列表。
— SET UP IDLE MODE TEXT,为ME提供一字符串用作空闲模式文本。
— SET UP MENU,SIM卡提供一套菜单添加到ME原有的菜单结构中。
— TIMER MANAGEMENT,要求ME管理一定时器(启动,停止,取当前值)

4.TERMINAL RESPONSE: 手机返回SIM卡执行主动式命令的结果

COMMANDCLAINSP1P2Length
TERMINAL RESPONSEA0120000lgth

七、Proactive SIM 命令获取网络信号强度

SIM卡可以发起主动式命令,获取网络信号相关信息,详细资料,请参阅GSM11.14规范。
1.PROVIDE LOCAL INFORMATION,请求ME将本地信息传递给SIM卡
此命令请求 ME 给 SIM 卡发当前本地信息。目前这些信息限于:
— 位置信息(移动国家代码、移动网络代码、位置区代码、当前服务小区的 ID 号);
— ME 的 IMEI;
— 网络测量结果和 BCCH 信道列表;
— 当前日期、时间和时区;
— 当前 ME 语言设置;
— Timing Advance。

2.RUN AT COMMAND,向ME发送一AT命令,并且返回给SIM卡此AT命令的响应。
SIM使用此命令向ME发送AT命令,就像是由连接的TE发起的一样。然后ME应在终端响应中向SIM返回AT响应。
AT指令:AT+CSQ
响应:+CSQ: ,
查询网络信号强度,:信号强度

3.SET UP EVENT LIST,此命令提供一套事件集,此事件集是 ME 应当监视的当前事件列表。
事件列表:
00:MT呼叫;
01:已连接呼叫;
02:呼叫拆线;
03:位置状态;
04:用户动作;
05:空闲屏幕可用;
06:读卡器状态;
07:语言选择;
08:浏览器终止;
09:数据可用;
0A:数据通道状态

八、各种手机和通信模块的TERMINAL PROFILE

ME的种类繁多,各家ME所支持STK/CAT功能各不相同,有一些ME即使是在TERMINAL PROFILE中表明支持的功能,在实际测试时,也不一定有。以下简单罗列几种ME的TERMINAL PROFILE。
1.iPhone
FFFFFFFF7F9D00DF BF00001F E2000000C3F0000700016800510100000008028007700603
2.VIVO 5G
FFFFFFFF7F9F00FF FF03021F E2000000C3FB0007041178007101000000380280877C0603
3.华为畅享
FFFFFFFF7F9F00DF FF00001F E2081106C3C0000000004000510000000018
4.移远CAT1模组
3301E8C2110C0007 9C00001F 226000000300000000000000000000000000000000
5.大夏龙雀CAT1模组
3F01EDE2119C0007 8400001F 4060000043C00000000040

TERMINAL PROFILE中,可用于获取网络信号的相关字节及编码:

BIT8BIT7BIT6BIT5BIT4BIT3BIT2BIT1

第四字节(主动式 SIM 卡命令):
BIT8 —— 主动式 SIM 卡命令:提供本地信息(NMR)
BIT7 —— 主动式 SIM 卡命令:提供本地信息(MCC,MNC,LAC,Cell ID,IMEI)
BIT6 —— 主动式 SIM 卡命令:SET UP MENU
BIT5 —— 主动式 SIM 卡命令:SET UP CALL
BIT4 —— 主动式 SIM 卡命令:SEND USSD
BIT3 —— 主动式 SIM 卡命令:SEND SS
BIT2 —— 主动式 SIM 卡命令:SEND SHORT MESSAGE
BIT1 —— 主动式 SIM 卡命令:SELECT ITEM

第五字节(事件驱动信息):
BIT8 —— 事件:读卡器状态
BIT7 —— 事件:空闲屏幕可用
BIT6 —— 事件:用户活动
BIT5 —— 事件:位置状态
BIT4 —— 事件:呼叫拆线
BIT3 —— 事件:呼叫接线
BIT2 —— 事件:MT 呼叫
BIT1 —— 主动式 SIM 卡命令:SET UP EVENT LIST

第八字节(主动式 SIM 卡命令):
BIT8 —— 第 2 个性能配置参数
BIT7 —— SET UP CALL 命令中第 2 个α标识符
BIT6 —— 执行 AT 命令
BIT5 —— 建立空闲模式文本
BIT4 —— GET INKEY 命令的二进制选项
BIT3 —— 主动式SIM卡命令:PROVIDE LOCAL INFORMATION(日期,时间和时区)
BIT2 —— 主动式 SIM 卡命令:TIMER MANAGEMENT(取当前值)
BIT1 —— 主动式 SIM 卡命令:TIMER MANAGEMENT(启动,停止)

第九字节:
BIT8 —— RFU,bit=0
BIT7 —— 主动式 SIM 卡命令:LAUNCH BROWSER
BIT6 —— 主动式 SIM 卡命令:LANGUAGE NOTIFICATION
BIT5 —— 主动式 SIM卡命令:PROVIDE LOCAL INFORMATION (Timing Advance)
BIT4 —— 主动式 SIM 卡命令:PROVIDE LOCAL INFORMATION (语言)
BIT3 —— 主动式 SIM卡命令:PROVIDE LOCAL INFORMATION (BCCH 信道列表编码)
BIT2 —— 发送DTMF命令
BIT1 —— 持续执行 DISPLAY TEXT 命令

九、生产注意事项

QFN8 5x6封装(MFF2),因为需要二次贴片生产,所以在合封芯片时,可以选择高温锡膏。在二次贴片时,高温锡膏不容易被融化,就不容易导致合封芯片鼓包及内部虚焊。另外,QFN8三合一卡,可能会放入测试座中,写入数据,所以在切割时,5x6的尺寸,可以稍微的缩小一点,这样会更容易放入测试座中。
Nano SIM封装(MP2),不需要考虑二次贴片生产,但需要考虑成品厚度。Nano SIM厚度一般控制在0.7mm以内,否则很难塞进手机中。在PCB板设计时,尽量选用2层PCB板,PCB板厚度不超过0.2mm。在整体打磨时,不能磨到芯片内部的绑线。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值