关键词:加密;射频识别;e5561
引言
射频识别(RFID)是无线电频率识别的简称,即通过无限电波进行识别处理。射频识别系统通常由读卡器(阅读器)和应答器(卡)二部分组成。其识别数据被存储在应答器电路中。应答器是一种非接触卡,该卡自身不带电源,当卡进行阅读器的电磁场范围时,便可通过耦合无线电波的能量并经整流稳压后获得工作电源。这样,在激活状态下,卡上存储的数据便可通过编码、调制送往阅读器以实现识别。
Atmel公司生产的e5561型电路是一种加密的射频识别器(IDIC),它适用于高保密的场合,其内部有加密运算单元。其主要性能如下:
●低功率、低电压的CMOS IDIC;
●射频(RF)范围为100kHz~150kHz,典型值为125kHz;
●内含320bitEEPROM(分10块);
●位率为RF/32,RF/64;
●加密鉴别时间小于10ms;
●带有可编程读/写保护功能;
●采用曼彻斯特和两相两种编码方式。
1 内部结构和工作原理
正常使用时e5561只使用线圈1(coil1)和线圈2(coil2)及外接电感线圈和电容器,其余引脚均未使用。其内部结构框图如图1所示。芯片包括自适应部分、前置模块端、调制器、解码器、存储器、加密电路等部分。
当基站与e5561的谐振频率不匹配时,其自适应部分调整e5561的频率使其与基站频率匹配,调整范围为5%。前置模拟端(AFE)可用来产生电路所需的电源,同时可处理与基站的双向数据通信。
芯片中的存储器由320位EEPROM组成,分为10块,每块32位;第0位用于保存基本的配置数据,第1块-第9块为用户数据区,可自由编程,其中第1-4块为ID代码,第5-8块为密匙,在口令模式下,第9块的4-31位用于存放口令,0-3位用于存放用户配置数据,否则,第9块的相应位也可自由编程。
编程电压由高压电发生器提供(18V)。加密电路AUT64运算规则加密写入e5561的口令,运算结果可被基站读出,将此结果与基站数据相比较,便可建立高安全的认证过程。
调制器由2个数据编码器组成,基本的调制类型有曼彻斯特和两相编码方式。
e5561可工作在以下工作模式:
(1)ID模式:在RF场中,e5561向基站循环发送ID码。ID模式允许使用二种不同的位率和调制方式,并可使用二种长度的ID码代(64位或128位)。
(2)编程模式:使用前要对e5561进行编程。EEPROM会被分成10块,每块被分别编程,基站送出的数据序列应被写入e5561的EEPROM存储器。在编程期间,如果e5561监视器发现错误或保护被入侵,那么,系统将会回到ID模式。
(3)直接存储模式:当基站发送一特殊数据序列给e5561时,e5561就会进入直接存储模式。这种模式有二种功能:一是基站读取EEPROM每一块的内容,二是重新设备e5561。在此期间,如果e5561监视器发现错误或保护被入侵,那么,系统将会回到ID模式。
(4)加密模式:此模式中,e5561使用AUT64运算规则(一种非线性的高安全的运算规则)。在基站完成对e5561的识别后(通过读取ID代码),基站可对应答器进行鉴别(通过发送一口令),当收到此数据序列后,e5561进入加密模式。如果e5561监视器发现错误或保护被入侵,系统也会回到ID模式。
(5)停止模式:当二个或二个以上应答器同时使用时,为避免冲突,基站将发送一特殊数据序列以使处于主动状态的应答器进入停止模式,之后通过加电复位或发出重启命令,使e5561再进入ID模式。
各模式之间的转换可通过基站发送一序列命令来改变。
使用时,e5561可通过外接LC回路来接收读/写基站的RF信号,并经过电路内部的电源电路处理为电路提供电源。电路可通过内部的阻尼负载将片内EEPROM中的数据读入读/写基站,并以一个特殊的方式中断RF场,以使读/写基站可将数据写入片内EEPROM中。
基站在完成口令和ID码识别以及密码鉴别后,便可产生控制信号以控制系统的动作。其应答器电路如图2所示。
应答器与基站的通信有二个传输通道:一是能量传输通道,另一个是信号传输通道。能量传输通道是单向的,可由基站产生给应答器供电的电磁场。信号传输通道是双向的,通常由基站向应答器传输的信息为“写”,反方向则为“读”用户数据(包括用户口令、ID码、密码等)。使用时,用户可根据需要进行编程。表1和表2分别给出EEPROM第0块(共32位)和第9块的配置数据位。
表1 第0块位的含义及设置
位 | 代 号 | 含 义 |
设 置 值 |
0 | MOD | 调制类型 | 0:曼彻斯特;1:二相 |
1 | BR | 位率 | 0:RF/32;1:RF/64 |
2 | BC | 代码长度 | 0:128bit;1:64bit |
3-4 | T | 终端 | 00:测试;1 0,0 1:终端;1 1:无 |
5 | S | 停止模式 | 0:关;1:开 |
6 | A | 自适应部分 | 0:自动;1:人工设置 |
7 | AUT | 次数 | 0:8次;1:24次 |
8 | L_0 | 第0块锁定 | 0:解锁;1:锁定 |
9-11 | Adapt bit | 固定 | 1;1;1 |
12-31 | SID | 厂商芯片代码 | 出厂设定 |
表2 第9块位的含义及设置
位 | 代 号 | 含 义 | 设 置 值 |
0 | L_ID | 第1-4块锁定 | 0:解锁;1:锁定 |
1 | L_K | 第5-8块锁定 | 0:解锁;1:锁定 |
2 | L_9 | 第9块锁定 | 0:解销;1:锁定 |
3 | PWD | 口令允许 | 0:允许;1:不允许 |
4-31 | 存放口令 | 可编程设置 |
2 e5561的应用
一个基本的射频识别系统通常由三个标准部件组成:应答器、读/写基站和微控制器。由e5561组成的应答器电路如图2所示,图中给出电感线圈和电容器参数,该电路的RF工作频率为125kHz。
2.1 读/写基站
读写基站主要由U2270B型配套电路组成。U2270B是Atmel公司生产的IDIC读/写基站专用电路,其内部含有一个由片上电源、振荡器和线圈激励器组成的、可为应答器供电的能量转换电路和一个能将微小输入信号变为微控制器所需信号的信号处理电路。它属于非编程电路,采用5V单电源供电,外围电路比较简单,只需配置读写天线(L)、谐振电容器(C)、输入电容器(CIN)等元件即可工作。在天线载波频率为125kHz、比特率为RF/32的典型情况下,基站天线L的电感量为737μH。一般采用铜制漆包线绕制成直径为3cm、匝数为100的线圈即可。
射频载波允许/禁止端(CFE)和读数据输出端(OUTPUT)的对外接口,应分别与单片机的二条I/O口线P1.0和P1.1相连以用来对e5561卡进行数据读写。
2.2 单片机系统
本系统的单片机采用AT890C52机型,其内部有8KB的Flash EEPROM存储系统程序,主要用于完成键盘扫描、显示相关数据、通过U2270B对卡中数据进行读写处理,以及与上位管理主机进行数据通讯等功能。扩展的数据存储器AT29C256型Flash EEPROM主要用于掉电后的数据存储。单片机与上位管理主机的通信选用RS-485总线标准,该标准具有接口简单(只需2条数据线和1条地线),驱动能力大、通信距离长(最长112km)、抗干扰能力强等特点。由于一般微机串行口采用的都是RS-232接口,故需另配接RS-232/RS-485转换器。读/写基站电路如图3所示。
图4所示是本系统的单片机系统主程序框图。本系统中,由于U2270B只能完成射频调制信号和整流和发射,而对所选编码方式以及读数据流的解码、写数据流的编码等则需软件实现。一般为使数据容易解码,设计时都选用同步信号。由于读信号的波形随调制、编码方式的不同而不同,因此,读卡程序选用模拟信号时序,即在P1.1口先检测同步信号,然后根据所选的编码方式进行相应的解码。方法是对收到的信号计时和判别。写卡则是通过P1.0来对U2270B的载波允许/禁止端进行控制,以定时控制载波有无,其各位的顺序应注意与读卡时时间,以防止数据字节或比特的混乱。