首页 > 代码库 > 射频识别技术漫谈(25)——Felica简介

射频识别技术漫谈(25)——Felica简介

Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的称谓。

    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比对,如果不同卡片不会对命令做出反应。这种机制实现了射频场中的卡片选择。