总述
Swp 接口是 UICC 和 CLF(非接前端)之间的面向比特流,点到点通信的协议。
CLF 是主设备(master),UICC 是从设备(slave)。
图 SWP 数据传输
虽然是单线协议,但是是全双工数字传输。
信号 S1 是电压域的数字调制信号
信号 S2 是电流域的数字调制信号
当主设备以高状态发送 S1 信号,从设备借助上拉电流(高状态)或不借助上拉电流(低
状态)来传输 S2 信号。因 S1 以脉冲宽度编码,所以可以在它上面传送一个传输时钟,即数
据以全双工模式传输。S1 的编码方式参见本规范 8.1 节。只有在 S1 处于高状态时 S2 才有效。
物理传输层
S1 信号的位编码和采样时序
S1 信号的位编码如下图所示。
逻辑 1 的高状态持续时间是 0.75T,逻辑 0 的高状态持续时间是 0.25T。
所有的位都顺序传输。一个位被定义为有两个上升沿。上升沿构成了一个位的开始
和结束。每一个传输的位的位持续时间都可以是不同的。
S2 信号的切换管理
S2 信号只有当 S1 信号处于高状态时有效。UICC 卡应当在 S1 处于低状态时才切换
S2 信号。
下图表明了 S2 信号相对 S1 信号的切换时序。
以下的数据来自swio 的ip 定义,从下表中可以看出s2 信号的电流大小。
输出信号S2 与输入信号的逻辑关系
输入信号
SWIO 端口输入电压(S1) DOUT
逻辑“1”
逻辑“1”
逻辑“0”
输出信号
SWIO 端口电流(S2)
逻辑“1” 逻辑“1” (600uA≤S2≤1mA)
逻辑“0” 逻辑“0” (S2<1uA)
任意值 此时输出S2 应视为无效(-20uA
系统架构
总体概述
图表0-1 非接前端—UICC 卡物理链路
上图代表了非接前端和 UICC 卡之间的物理链路。 UICC 的 C6 引脚连接到非接前端上用
来传输 S1 和 S2 信号。
对 TS102 221 的支持
支持 SWP 协议的 UICC 卡片和终端应该符合 TS 102 221。为了维持在某些工作模式下的
低功耗状态,一个支持 SWP 的终端不支持 A 类工作模式。
在低功耗模式下,本规范扩展了 C1 引脚的电气特性。引脚 C2,C3 以及 C7 符合 TS 102
221。
本规范中的扩展如下:
1
2
TS 102 221 中定义uicc 需要的最大供电电流是10ma。在本协议中改为5ma。
TS 102 221 中定义终端应该可以接受的最大电荷变化是12nas,时间宽度不能超过400ns,
最大幅度不能超过60ma。在本协议中修改为终端应该可以接受的最大电荷变化是6nas,
时间宽度不能超过400ns,最大幅度不能超过30ma
TS 102 221:
It shall also be able to counteract spikes in the current consumption of the card up to a
maximum charge of 12 nAs with no more than 400 ns duration and an amplitude of at most
60 mA, ensuring that the supply voltage stays in the specified range.
本协议:
配置
终端遵照 TS 102 221,指明是否支持 SWP 接口。UICC 卡遵照 TS 102 221,在 ATR 的全局
接口字节中指明是否支持 SWP 接口。
如果终端和 UICC 卡片都支持 SWP 接口,一些原本(不支持 SWP 接口的终端和 UICC 卡
片)不支持的模式可以得到支持:
只有 SWP 接口被激活。这种情况在终端完全被激活而其它接口(例如: TS 102 221 接
口或 TS 102 600 接口)处于闲置或非激活状态,或者当终端被关闭的情况下发生。
当另一个 UICC 卡-终端接口上正在进行一个会话时,SWP 接口被激活(例如:TS 102 221
接口或 TS 102 600 接口)。这种情况下,不同接口上的激活过程应该可以同时进行且互
不影响。
与其它接口的交互
支持 SWP 接口的 UICC 卡和支持 SWP 接口的终端之间的通讯通过本规范定义的 C6 引脚
进行通讯,或通过 TS 102 221、TS 102 600 中定义的 C2,C3,C4,C7,C8 引脚进行通讯。
在一个引脚上的信号不应该影响另一个引脚上信号的状态。这同样适用于 UICC 卡的激活过
程。C1(VCC)和 C5(GND)上提供的电量应该满足卡片上所有已激活接口的用电需求。
激活后,SWP 接口上的操作应该独立于 UICC 卡其它接口(例如:TS 102 221 接口或 TS 102
600 接口)上的操作。
任何复位信号(TS 102 221 中定义的在 C2 引脚上的复位信号或者在 TS 102 600 中定义
的逻辑复位)应当只影响与这些接口相关的 UICC 协议栈。SWP 相关操作不应当受到其它接
口上复位信号的影响。
SWP 接口上数据链路层的逻辑复位信号(SHDLC 复位)以及激活与去激活操作都不应该
影响其它接口。
物理特性
卡片运行的温度范围
在本规范中,SWP 接口涉及的所有参数均参照 TS102 221 中定义的关于卡片数据存储和
工作的标准温度范围。
TS102 221 中定义:
标准的存储和工作是在-25 度到85 度。
扩展的温度范围如下表:
触点
触点规定
UICC 的 VCC(C1 触点)和 Gnd(C5 触点)由终端复用来提供电源。
UICC 的 SWIO(C6 触点)用于 UICC 与非接前端之间的数据交互。
触点激活与去激活
终端应当按照 TS102 221 中定义的过程来对 C2、C3、C7 进行连接、激活和去激活操作;
按照 TS 102 600 中定义的过程来对 C4,C8 进行连接,激活和去激活操作;按照 TS102 221
中定义的过程来激活 C1。
如果终端检测到卡片不支持 SWP,可以不执行 SWP 触点或者接口的激活操作。
SWIO 触点激活
只要 Vcc(触点 C1)没有被激活,终端应当保持 SWIO(触点 C6)处于去激活状态(S1
处于低状态)。
终端激活 Vcc 为了激活 SWP 接口或者 UICC 上另一个其它接口。
当终端将 SWIO 信号由低状态设置为高状态时,SWIO(触点 C6)被激活。通知 UICC 卡
片 SWP 接口已被激活。
SWIO 触点去激活
为了去激活 SWIO(触点 C6),终端应当把 SWP 设置为 8.3 节定义的 DEACTIVATED 状态。
8.3 节:
去激活:
如果SWP 处于挂起状态,主设备可以将SWP 切换到非激活状态,通过维持SWIO 处于
低状态超过P4 时间。
UICC 卡的去激活
除了 TS 102 221 和 TS 102 600 中定义的去激活过程外,终端应该在去激活 Vcc(触点 C1)
之前先去激活 SWIO(触点 C6)。
6.2.3 接口激活
接口激活初始化
在 SWIO 触点激活后,将执行下述流程。
本流程采用 8.3 节描述的 SWP 接口状态管理和 9.4 节描述的 ACT LLC 层协议。
流程如下:
1) 唤醒 SWP。表明 UICC 卡提示已经准备好交换 SWP 数据。
如果 CLF 没有探测到 SWP 被 UICC 唤醒,CLF 将会假设 UICC 不支持 SWP 接口。然
后 CLF 端 Deactivate SWIO。
CLF 配置 SWP 进入 activated 状态。
2)
如果 UICC 没有检测到 SWP ACTIVATED 状态,UICC 将会在把 S2 放到 H 态后的 TS2_INHIBIT
时间里把 S2 放到 L 态。UICC 不应再与非接前端进行 SWP 交互,并应等待 UICC 的去激活操
作或者从其它接口上获得终端对 SWP 的支持能力(参见 6.2.4 节)。
3) UICC 发送第一个 ACT_SYNC 帧并等待 CLF(非接前端)的第一个帧。
4)
CLF 从 UICC 收到第一个 ACT_SYNC 帧后,CLF(非接前端)执行下述操作:
如果 CLF(非接前端)收到了一个正确的 ACT_SYNC 帧并且终端提供全功耗模式,CLF(非
接前端)将返回一个表征全功耗模式的 ACT_POWER_MODE 帧。 FR=0,表明全功耗模式。
如果 CLF(非接前端)收到了一个正确的 ACT_SYNC 帧并且终端提供低功耗模式,非接
前端认为接口初始化工作已经成功完成,不会再发送 ACT 帧。
5) 如果 CLF(非接前端)收到了一个损坏的 ACT_SYNC 帧,它将向 UICC 发送一个 FR 字段
设置为 1 的 ACT_POWER_MODE 帧,用以表明终端当前的供电模式,同时要求 UICC
重发最近一个 ACT_SYNC 帧。
6) UICC 从 CLF(非接前端)收到 ACT_POWER_MODE 帧后,UICC 执行下述操作:
如果 UICC 收到了一个正确的 ACT_POWER_MODE 帧(其中 FR 字段设置为 1),UICC 将
重发 ACT 帧。如果 FR 字段设置为 0,UICC 将返回 ACT_READY 帧。
如果 UICC 收到了一个损坏的 ACT_POWER_MODE 帧,它不作任何响应。
7) 如果 CLF(非接前端)收到了一个 ACT_POWER_MODE 帧的响应帧,CLF(非接前端)执行
下述操作:
如果非接前端收到了以下的一个正确的 ACT 帧,它将认为已经成功完成接口初始化流
程,并且不再发送其它 ACT 帧。
一个 ACR_SYNC 帧,用来响应它将向 UICC 发送一个 FR 字段设置为 1 的
ACT_POWER_MODE 帧,用以表明终端当前的供电模式,同时要求 UICC 重发最近一个
ACT 帧。
一个 ACR_READY 帧,如果 CLF 已经正确的接收了 UICC 的第一个 ACR_SYNC 帧。
8) 当 CLF 接收到了一个错误的帧,CLF 将向 UICC 发送一个 FR 字段设置为 1 的
ACT_POWER_MODE 帧,用以表明终端当前的供电模式,同时要求 UICC 重发最近一
个 ACT 帧。
9) 当 CLF 没有收到一个响应 ACT_POWER_MODE 帧的 ACT 帧,CLF 将执行下述操作:
在这种情况下,CLF(非接前端)将向 UICC 发送一个 FR 字段设置为 1 的
ACT_POWER_MODE 帧,用以表明终端当前的供电模式,同时要求 UICC 重发最近一个 ACT
帧。
非接前端向 UICC 发送 ACT_POWER_MODE 帧(FR 字段设置为 1)的次数不应超过 3。
如果没有按照以上的顺序,CLF 将认为接收到的 ACT 帧是一个坏帧。
如果接口激活失败,非接前端假定 UICC 不支持 SWP 接口。在这种情况下,非接前端将去
激活 SWIO。
UICC 在初始化接口激活阶段发送的 ACT_SYNC 帧,应该包含 ACT_INFORMATION 域。