

FELICA卡
Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的称谓。
FELICA卡规格:
芯片:FELICA
尺寸:26*30mm
封装材料:铜版纸、PVC、PET、抗金属标签
可选工艺:四色印刷、背胶等。
Felica技术并不是一个完全公开的协议,尤其是该技术涉及安全认证和加密的部分,SONY的保密做的很好。本文介绍的也仅是其公开的部分信息。
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的校验,  | 
        
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比对,如果不同卡片不会对命令做出反应。这种机制实现了射频场中的卡片选择。


