TEMIC系列射频卡开发指南Word下载.doc
《TEMIC系列射频卡开发指南Word下载.doc》由会员分享,可在线阅读,更多相关《TEMIC系列射频卡开发指南Word下载.doc(28页珍藏版)》请在冰点文库上搜索。
![TEMIC系列射频卡开发指南Word下载.doc](https://file1.bingdoc.com/fileroot1/2023-5/11/87f1c661-4b42-41fc-a45b-f5691c96e155/87f1c661-4b42-41fc-a45b-f5691c96e1551.gif)
当射频卡系统应用于汽车、门禁等领域如果对电路的耗电量加以控制(射频信号发射的功耗是远远大于接触式IC卡的),可以有效的节省能耗延长内置电池的寿命。
在需要降低功耗的领域可以在无卡检测的过程中间断的打开和关闭射频输出(E2270B的CFE脚)。
也可以使卡处于STANDBY模式(控制U2270B的STANDBY脚)这样可以极大的降低基站的耗电量。
此外用户也可以使用外加检测电路的方法如:
光电管、红外检测等低耗电手段来控制基站的工作这样可以得到很好的省电要求。
B.串行通讯:
假设射频卡读写器为PC机的外围设备,读写器与微机的通讯需要通过串行口进行。
根据需要用户可以选择使用各种串行接口电路。
这里假设使用RS232串行接口电路。
C.电路原理图:
2.软件实现:
软件设计要求设计汇编程序完成对射频卡的完备操作(包括读操作、写操作以及命令发送等)。
读卡程序要求用软件模拟信号时序,自动检测同步信号同步后要根据选择的编码方式进行软件解码,最后将解码得到的数据流按合理顺序存人指定存储区。
写卡程序使用开关天线负载的方法对数据进行编码,要求能向IC卡发射各种组合的数据流,完成对IC卡的各种控制功能(注:
写程序只完成向IC卡发送数据的功能,对命令或写操作的执行情况不做检测,而是由读卡程序获取IC卡的反馈信息后再进行比较判断)。
由于E5550卡与E5560卡的特性区别所以对两种卡的读写程序不尽相同,但两种卡读写程序的设计思想是基本相同的。
A.E5550卡读写程序:
在介绍E5550卡的读写卡程序之前,先要了解该类型卡的读写特性。
这些特性包括:
EEPROM的存储分配、卡的同步信号、发射频率、BITRATE、卡控制块的结构、写卡以及其他卡操作的命令格式等。
E5550卡内置264位的EEPROM这些存储区分为8个BLOCK每块33位,其中第0位为块锁定位,一旦该位被置‘1’则该块儿数据将不能再做任何修改,而且LOCK位是无法恢复的。
LOCK位不随其他位一起发射到基站(即:
LOCK位是不可读的用户实际使用的数据区位每块的后32位共256位)。
8个BLOCK中的BLOCK0是作为卡片的控制块存储卡的控制信息,BLOCK7是PASSWORD区在口令加密功能启动时这里存放卡的读写控制密码,当加密功能没有使用时该区也可以存放用户数据。
其他六个存储块用户可以用来存放各种数据。
EEPROM结构如图:
0132
LUserDataOrPasswordBlock7
LUserDataBlock6
LUserDataBlock5
LUserDataBlock4
LUserDataBlock3
LUserDataBlock2
LUserDataBlock1
LModeDataBlock0
32BIT
Nottransmitted
E5550卡控制块用于控制卡的各种操作的特性,如:
同步信号、数据流格式、数据流长度、加密、口令唤醒和停止发射等功能的启用关闭等。
控制块位于EEPROM的第0块数据区可由用户进行编程控制(用户向卡发送写命令给该区写入一定格式的数据即可)。
一般一个应用系统的卡的模式块的值是统一的,在发卡时建议写入数据后将该块的LOCK位置‘1’这样可以防止对控制块的误修改引起卡的操作不正常。
E5550卡的控制块的结构和功能说明如图:
(模式设置将影响读写程序的设计)
0111121314151617181920212223242526272829303132
LRESERVEDBR0MS1MS2PSK0MaxblkSTBt0
AORuseSTOP
PWD
下面结合对控制块的说明,简单介绍E5550卡的各种工作模式和操作特性:
在E5550卡中控制块的第1位至第11位之间的11位和第32位为保留位,现在没有使用,用户可以写入任何值,建议写入‘0’用来和其他功能位区别。
控制块中的第15位和第24位必须写入‘0’否则卡将不能正常工作。
从第12位至第14位为Bitrate设置位。
用户通过设置这三位的值可以决定卡发射数据时的Bitrate。
用户可按下表中的值进行设置。
(一般使用RF/32的BITRATE)
第12位第13位第14位BitRate
000RF/8
001RF/16
010RF/32
011RF/40
100RF/50
101RF/64
110RF/100
111RF/128
第16~17位、18~20位以及21~22位结合在一起设定卡发射数据的调制方法,具体配合方式如下表所示。
用户设置16、17位为‘00’时18~20位的设置有效,如果18~19
位设置为‘001’、‘010’、‘011’时可继续使用第21~22位设置在PSK调制方法下的
1617ModuMode
00direct181920ModuModeMoreData1Data0
01Mancheester000direct
10Biphase001PSK1
11Reserved010PSK2
011PSK3
2122PSKCF100FSK1RF/8RF/5
00RF/2101FSK2RF/8RF/10
01RF/4110FSK1aRF/5RF/8
10RF/8111FSK2aRF/10RF/8
11reserved
频率变化。
第23位用来控制是否启动AOR(Answer-On-Request)功能。
该位设置为‘1’时启动AOR功能,这时IC卡进入射频区域后不主动发射数据,而要由基站给IC卡发射唤醒命令后再发射数据。
该功能要求首先启动口令加密功能,也就是说基站要唤醒一个IC卡时必须在唤醒命令序列中向IC卡发射口令密码,IC卡检测到包含合法口令的唤醒命令时才恢复发送数据。
要启动口令加密功能就要求将控制块的第28位设置为‘1’。
启动口令加密功能后第7块数据区将保存IC卡的口令密码,所以启动加密功能之前应该事先写入密码。
如果允许修改密码则不用锁定BLOCK7如果密码永久有效则要在写入密码的同时锁定BLOCK7这样用户将不能修改密码。
在加密模式下用户对卡中数据进行任何修改均要求提供密码验证。
密码正确时修改操作有效,密码不正确则修改无效。
后面将讲到加密模式和非加密模式下的写命令格式是不同的。
为了保护密码不被未知用户截获,用户在启动加密功能后还应该对控制块的第25~27位进行设置。
这三位设置的为IC卡发射数据时发射的最大数据块数(MaxBlock)这三位的设置和发射数据流的关系如下表:
第25位第26位第27位SendBlocks
000Onlyblock0
001block1
010block1~2
011block1~3
100block1~4
101block1~5
110block1~6
111block1~7
当MAXBLK设置为‘0’时IC卡只发射BLOCK0的数据给基站;
当设置为‘1’时IC卡只发射BLOCK1的数据给基站;
当设置为‘2’时IC卡发射BLOCK1和BLOCK2的数据给基站;
设置为‘3’时IC卡发射BLOCK1至BLOCK3的数据该基站其他的依次类推当设置为‘7’时IC卡发射BLOCK1至BLOCK7的数据给基站。
在启动口令模式后MAXBLK的值应小于‘7’这样IC卡将不发射存放在第7块中的数据。
用户除了设置以上各项设置项以外,还可以设置IC卡发射数据时的同步信号类型。
IC卡可以使用两种不同的同步信号,它们是SequenceTerminator和BlockTerminator。
SequenceTerminator在每个数据循环开始时出现。
BlockTerminator在每个BLOCK的数据的开始时出现。
两种同步信号可以独立使用也可以结合使用。
同步信号的波形和其与数据流的结合情况如下图所示:
(假设MAXBLK=7,使用Manchester编码。
)
Clock
Block
Sequece0
UseSTUseBT1
OffOff0block1block2block3。
。
block7block1blk2。
OnOff0block1。
block7block1。
block7block
OffOn0block1block2。
block7block1block2。
OnOn0block1block2。
block7block1block2。
MAXBLK值与数据流的关系图如下:
(假设UseBT=offANDUseST=off)
MAXBLK=50Block1。
Block5Block1。
Block5Block1。
MAXBLK=20Block1Block2Block1Block2Block1Block2。
MAXBLK=00Block0Block0Block0Block0Block0Block0。
IC卡发射数据由基站天线接收后,由基站处理后经基站的Output脚把得到的数据流发给微处理器的输入口。
这里基站只完成信号的接收和整流的工作,而信号的解调解码的工作要由微处理器来完成。
微处理器要根据输入信号在高电平、低电平的持续时间来模拟时序进行解码操作。
下面以Manchester编码、125kHz频和RF/32的Bitrate的条件下时序为例给出基站读取数据流的时序图。
Clock
Data00110100
Manchester
其中:
T1T1=128µ
s
T2=256µ
T2
数据流图如下:
BitClock
DataOutValidValid
A128µ
sB256µ
Ts1
Ts2
TL1
TL2
上图所示
Clock:
的是程序检测跳变的时间基准。
图中阴影部分为跳变的不稳定区间,Valid区域是稳定区。
程序检测电平跳变是在一个时间区间以内,如:
半个周期的跳变理想状态应为128µ
s如图中A点所示但实际检测区域为Ts1~Ts2(即:
凡是时间在Ts1和Ts2之间的跳变信号均视为半个周期的跳变信号)。
同样,在TL1~TL2之间的跳变都可以视为一个周期的跳变。
E5550在上图假设条件下时这四个时间检测标准点的值为:
TS1=70µ
s,TS2=190µ
s,TL1=210µ
s,TL2=300µ
现在介绍E5550卡在使用Manchester编码时的解码方法。
下图表示Manchester编码的电平状态变化情况。
Data0000
Data01:
01
Data1010
Data1111
由上图所示可以看出:
当数据位为‘1’时跳变总是由低向高,而数据位为‘0’时跳变总是由高向低。
结合Manchester编码的特点我们可以这样进行解码:
在位时钟周期的半周期处检测电平的变化情况,如果检测到电平变化发生则继续判断变化后的电平情况,是高电平则该位解码为‘1’,低电平则解码为‘0’,没有跳变发生则可视为信号异常进行出错处理。
IC卡与基站的数据交换是双向的,基站要向IC卡发送命令和数据,完成对IC卡各种控制操作。
对E5550卡而言,基站可以向卡片发送的命令有四种格式分别完成四种控制功能。
OP
10L1DataBits322ADR0StandardWrite
101Password32L1DataBits322ADR0PasswordMode
101Password32AORWakeUp
11StopModulation
四种命令分别完成以下功能:
lStandardWrite:
对卡数据的普通读写,其中‘10’为操作码,‘L’位为指定数据块的锁定位,紧接着‘L’位是32位数据。
数据后面是命令要写入的数据块的块地址,这里块地址用3位二进制码表示。
lPasswordMode:
该操作和StandardWrite操作完成类似功能,只是在PasswordMode启动后对卡中数据的修改就要求提供口令。
使用该命令就是要完成PasswordMode下卡中数据的修改。
命令数据流中其他部分和StandardWrite的含义一样,只是在操作码和‘L’位之间加入了长度为32位的口令数据。
卡接收到命令后在对数据区进行修改之前要检验命令提供的口令与卡中密码区保存的数据是否一致,只有两者一致时IC卡才真正的修改数据区的数据。
这样可以防止不知道密码的非法用户对卡中数据的修改。
lAORWakeUp:
该命令是卡的AOR功能启动后,基站发给卡片的唤醒命令。
命令由操作字‘10’和32位的口令字组成。
使用该命令可以唤醒密码和命令字中提供的密码一致的卡片。
卡片唤醒后即可向基站发送数据。
lStopModulation:
该命令用来关闭IC卡使接收到命令的IC卡进入睡眠状态。
进入睡眠状态的IC卡不再向外发送数据,而在接收到AOR命令后再开始发射数据。
利用这种机制可以完成一定的防冲撞功能(通常情况下当多个卡片同时进入射频区域时,基站是无法读取数据的。
这时可以由基站发射Stop命令,使所有卡片进入睡眠状态,然后再由基站使用不同的密码发射唤醒命令来唤醒密码相同的卡片。
读写操作完成后再关闭该卡片,依次可以处理各个卡片。
基站给卡片发送数据时也要对数据进行编码,使数据信号加载到天线的发射信号中。
TEMIC公司的系列产品使用一种改变发射天线负载的方式对信号进行编码。
这种方法使用短暂的RF信号间隔(GAP)来把RF信号分割成不同长短的区间的方法对数据进行编码。
起始GAP一般比其他GAPS略长,用来与卡片同步。
在发送数据时一个长度为16~32fieldclocks时间长度的RF区间表示数据为‘0’,一个长度为48~64fieldclocks时间长度的RF区间表示数据为‘1’。
在编制程序时可以使用延时中断RF区域的方法进行发送数据。
发送数据时的RF区域状态如图:
1001
RFField:
。
GapS
StartGap
BitZero
BitOne
对E5550卡各段区间的时间长度为:
Tgaps=300µ
s,T1=350µ
s,T0=100µ
最后介绍以下在编制程序时应该注意的一些细节问题:
lIC卡发射数据高低位顺序:
IC卡向基站发射数据时是根据BLOCK1的设置从第一区到第MAXBLK区循环发射的。
数据以选择的同步信号开始按照块的顺序发送的。
每块数据的发送是低位在前,高位在后,即先发送第1位数据然后发送第2位依次类推到第32位(第0位是数据块的锁定位是不随数据一起发送的)。
l对数据存储时应注意字节地址的选择:
由上面的介绍我们可以知道,E5550卡读写的单位为32bit,所以要用4个字节的空间存储一个数据区的数据。
程序中使用移位的方法取输入口检测到数据位。
这就要求字节内移位方向和字节间的地址变化有机的结合在一起,否则将出现读数