1 概述
MAC层: 负责组帧
LLC层: 负责错误管理和流控制
2 帧结构:
由SOF, payload, CRC16, EOF Flag四个部分组成;Payload 最大长度为30字节;
主机----》从机 (S1)
SOF FLAG: '7E',
EOF FLAG: '7F'
从机----》主机 (S2)
相较于主机发给从机的帧,从机发出的帧多一个Wakeup sequence, 1bit, 固定为1,位于帧起始的地方,当主机开始挂起接口在同一时间点,从端开始发送 Wakeup sequence ,逻辑值为1的位被从序列转换为resume,使SWP进入激活状态。
2.2 位填充(bit Stuffing):
为什么要进行未填充? 为了和EOF,SOF 区别开来
填充方式:
Payload 和CRC 数据中,出现连续5个bit 为1的时候,就在后面填充一个bit 数据0, 如果是CRC最后的5个bit 都为1, 则不用填充;
2.2 CRC校验方式:
采用多项式:
X16+X12+ X5+1. (初始值 FFFF)
注: CRC计算不包含SOF, EOF
3 LLC(Logical Link Control)层
定义了3中LLC
SHDLC: 大部分的非接触交易都使用,CLF和UICC 都要求强制支持
CLT: 主要用于私有协议处理,比如Mifare, 可选支持
ACT: 接口激活使用,CLF和UICC 都要求强制支持
LLC层流程:
3.1,ACT LLC
ACT LLC 有3种,分别是ACR_READY, ACT_POWER_MODE, ACT_SYNC;
ACT LLC 编码:
INF bit: 表示ACT PAYLOAD中是否包含ACT_INFORMATION字段;
FR bit: CLF接收,忽略FR bit
UICC接收, FR bit 由CLF 发出,比如,CLF 收到错误的ACT_SYNC帧, CLF 发送ACT_POWER_MODE帧(设置FRbit为1), 表示希望UICC重发ACT_SYNC帧;
INF bit: 表示ACT_INFORMATION 字段是否存在,再有ACT_SYNC 存在该字段
ACT_CTRL,ACT_DATA域含义:
在SWIO(C6 PIN)变成激活状态后(H),首先要进行接口激活(使用ACT LLC)激活过程如下:
1, UICC 发送ACT_SYNC帧
2, CLF 发送ACT_POWER_MODE 帧对ACT_SYNC响应, 指示power mode, UICC 回复ACT_READY,激活完成;
完成激活之后,CLF可以进行:
1, 启动一个CLT 回话
2, 建立SHDL连接
完成CLT 回话打开或者建立SHDL连接之后,UICC和CLF都将忽略掉收到的ACT LLC 帧;