复旦M1卡简称复旦F08卡、FM08卡(全称FM11RF08卡),是国产M1卡的典型代表,也是国内应用最广泛、口碑最好的S50芯片。FM11RF08是复旦微电子股份有限公司设计生产的非接触式射频卡芯片,采用0.6微米CMOS EEPROM工艺,容量为1K×8BitEEPROM,符合ISO14443-A国际标准,工作频率13.56MHz,工作距离不小于 10CM。
复旦M1卡非接触卡由FM11RF08芯片、天线和卡基组成;本身不携带电源;通过天线获得读写器发出的能量进行工作,与读写器之间的通讯采用无线射频技术来实现。
复旦M1卡带三重防伪认证,内含加密控制和通讯逻辑电路,是具有极高的保密性能和逻辑处理功能的多用途非接触射频卡芯片,可广泛应用于低成本的城市轨道交通、各类计费支付卡和数据采集系统等领域。
FM11RF08芯片完全兼容原装进口的Mifare S50 1K,两种芯片的性能、用途、使用方法完全一样。但是由于FM11RF08芯片在国内生产,在价格方面具有较强的竞争力,因此在越来越多的系统中,均用FM11RF08芯片来代替Mifare S50 1K。
复位应答:FM11RF08 射频卡的通讯协议和通讯波特率是定义好的,通过这两项内容,读写器和FM11RF08 卡相互验证。当某张卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为 FM11RF08 射频卡,即验证卡片的卡型。
防冲突闭合机制:当有多张 FM11RF08 卡在读写器的操作范围内时,防冲突闭合电路首先从众多卡片中选择其中的一张作为下一步处理的对象,而未选中的卡片则处于空闲模式以等待下一步被选择,该过程返回一个被选中的卡的序列号。
选择卡片:选择被选中的卡的序列号,卡片返回选择确认编码(SAK)。
三次互相确认:选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次互相认证之后就可以通过加密流进行任何通讯。(在选择下一个扇区时,则必须进行新扇区的密码校验)
读/ 写块:确认之后就可以执行下列操作:
读:读一个块
写:写一个块
减:块中的内容作减法之后,结果存在数据寄存器中。
加:块中的内容作加法之后,结果存在数据寄存器中。
传输:将数据寄存器中的内容写入块中
存储:将块中的内容读到数据寄存器中
暂停:将卡置于暂停工作状态
FM11RF08 射频卡的 8Kbits EEPROM 分为 16 个扇区,每个扇区由 4 个数据块组成,每块有 16 个字节。每个扇区的块 3 包含了该扇区的密码 A(6 个字节)、存取控制(4 个字节)和密码 B(6 个字节),是一个特殊的块,用于存放厂商的代码比如 32 位的序列号,已经固化,只可读不可更改。数据块有两种应用:用作一般的数据保存使用,直接读写;以特殊数据格式表示时,可以进行初始化赋值、加值、减值和读值。
复位应答指令:在操作区域内寻找卡片。request std 是寻找未被置成暂停状态的卡,request all 是寻找所有在操作区域内的卡。
防冲突指令:如果操作区域内有一张或多张卡片,本指令将用来从这些卡片中选出一张卡。
选择卡片指令:本指令用来在防冲突指令后建立起与选中卡的通讯。
验证指令:在访问卡片存储区之前,用户必须证明他们操作的合法性。可以通过验证读写器内的密码与卡内的密码是否一致来获得。
读块指令:读出卡中某一块的 16 个字节。
写块指令:将数据写入卡中的某一块。
加法指令:将卡中的数值块加上某一数值,并把结果存于卡内的寄存器。
减法指令:将卡中的数值块减去某一数值并把结果存于卡内的寄存器。
存储指令:将卡内数值块的内容读到卡内的寄存器。
传输指令:将卡内寄存器中的内容写入块中。
暂停指令:将卡片置于暂停状态。
FM11RF08 射频卡的良好保密性能是在于:读写前的三次相互认证过程、每张卡不同的卡片序列号、传递数据加密、传递密码和访问密码保护。
卡片中的密码是受保护的、不可读的、只有知道密码的用户才能修改它。卡中的 EEPROM 存储区的不同应用设定不同的密码(一卡多用)。扇区的访问密码分为 KEYA 和 KEYB 两组不同密码、根据访问条件,在校验 KEYA 或 KEYB 之后才可以对存储器进行访问。
在非接触通讯中,以下措施保证了读写器和卡片之间数据传递的完整、可靠:
防冲突
每块有 16 位 CRC 纠错
每个字节有奇偶校验位
检查位数
用编码方式来区分“1”,“0”或无信息
信道监测(通过协议顺序和位流分析)