NXP

FeliCa简介

2019-07-12 11:32发布

最近学习NFC,此文章仅作为自己知识的整理,学习。     Felica技术并不是一个完全公开的协议,尤其是该技术涉及安全认证和加密的部分,SONY的保密做的很好。本文介绍的也仅是其公开的部分信息。     Felica技术的通讯协议包括三层:物理层描述数据传输的物理和电气特性; 数据链路层描述数据传输和错误检测的格式;应用层描述命令的功能和规范.     Felica射频传输的物理特性如下表所示  Felica射频接口的物理特性 数据传输方法 半双工同步系统 载波频率 13.56MHz 调制方法 ASK 位编码方法 Manchester编码,MSB在前 数据传输速率 212/424 kbps       Felica卡片和读写器之间的数据传输使用数据包。数据包的格式如下: 数据包各部分定义 名称 字节长度 定义 前导码 6 00 00 00 00 00 00 同步码 2 B2 4D 数据长度 1 包数据长度+1 包数据 n 命令包或返回包中的数据 CRC 2 基于CRC-CCITT的校验, 初始值=0000H, 生成多项式:X16+X12+X5+1       Felica技术应用层的命令包由命令码和命令数据两部分组成,包括1字节的命令码和N字节的命令数据。命令码标识命令的类型,命令数据为本条命令执行所需的数据。读卡器命令发出后卡片回复一个响应包,响应包由1字节响应码和N字节响应数据两部分组成。响应码标识响应的类型,响应数据为本条命令执行后卡片返回的数据。     Felica命令列表如下: 命令 命令码 响应码 功能简述 轮询 00H 01H 探测识别卡片 请求服务 02H 03H 验证卡片上是否存在指定的域或服务 请求响应 04H 05H 验证射频场中是否有卡 不需认证读 06H 07H 从不需认证的服务中读取数据块 不需认证写 08H 09H 向不需认证的服务中写入数据块 请求系统码 0CH 0DH 读取卡片上已注册的系统码 认证1 10H 11H 读写器认证卡片 认证2 12H 13H 卡片认证读写器 读 14H 15H 从需认证的服务中读取数据块 写 16H 17H 向需认证的服务中写入数据块       Felica有两个重要的参数:出厂识别码(IDm)和出厂参数(PMm)。IDm和PMm可以使用轮询命令获得,IDm和PMm在出厂时固化在卡片中,卡片出厂后不能修改。     Felica使用出厂识别码(IDm)在通讯中识别一张卡片。Idm包含制造商代码和卡片识别码两部分。     出厂参数(PMm)包括2字节的芯片类型(用来识别产品)和6字节的最大响应时间参数(用来确定每一条命令的超时时间)。     Felica采用基于时隙的方法实现卡片的防冲突机制。为了识别一张卡片,读写器必须使用轮询命令轮询未知数量的卡片。卡片收到轮询命令后,以随机的方式选择一个时隙,并在读写器呼叫该时隙时予以应答,从而实现防冲突。     当读写器正确接收一个卡片对于轮询命令的应答,读写器可以获得卡片的Idm,在之后的通讯中,读写器通过在命令包中包含Idm,就可以从射频场的多张卡片中唯一的指定一张进行通讯。卡片收到命令后将把自己的Idm与命令包中的Idm比对,如果不同卡片不会对命令做出反应。这种机制实现了射频场中的卡片选择。