访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
Temic-RF卡读写器的设计
内容导读:
Temic\ RF卡读写器的设计* 华东地质学院信息工程系饶运涛邹继军 摘要用单片机与Temic\ RF卡读写芯片U2270B接口,组成IC卡读写器。它主要用软件实现射频信号的调制和解调,以实现对卡片的读和写操作。 关键词RF卡脉冲曼彻斯特调制定时器 一、 Temic-e5550 RF卡简介 德国Temic公司的产品中有非接触式IC卡(以下简称RF卡)的芯片系列,e5550是其中的一种。在欧洲,它主要用作防盗等安全装置的身份证实上。它的主要技术性能指标有:① 低功耗、低电压CMOS结构。② 工作频率(RF)为100~150kHz。③ 264bit的E2PROM存储器分8个区,每区33bit,其中0位是封锁;0区是方式存储;7区可作为口令;其余是用户数据区(非口令方式时,7区也可作为数据区)。④ 通信比特率最高为RF/8;最低为RF/128。⑤ 信号调制方式有FSK、PSK和Manchester(曼彻斯特)等。工作方式有标准、应答、口令等,这些都可通过写方式字来设置。这类卡的结构比较简单,价格较低,这也表现在与它配套的读写图1RF卡与读写器系统示意图 * 对于要详细了解用复码调制的读写程序设计的读者,可参看本刊第1期中“一种用复码调制的非接触IC卡读写”一文。器的专用芯片U2270B上。U2270B结构也较简单,价格很低。因此,在许多身份证实的装置上使用它们,甚至在低面值的公交卡上也使用它,其性能价格比是较高的。整个系统结构的示意如图1所示。 U2270B一边与读写器的天线接口,接收感应产生的信号,又把命令和数据的调制信号送到天线发射出去;另一边与微控制器接口,把通过天线读得的卡片信息传给MCU,又受MCU的控制,把MCU发出的命令和数据转送给天线。它与MCU之间传送和接收的信号都是调制信号,而其他类型的RF卡读写接口芯片(如Mifare)却是标准的数字信号。因此,在开发中,U2270B与MCU的接口软件必须从最低层做起。 e5550的方式字的位含义如表1所列。我们以Manchester调制方式为例说明MCU如何从U2270B读得信息以及如何写卡。各种调制方式下数字信号的表示如图2所示。以51系列单片机作为MCU,读写器的基本电路如图3所示。 有关的位功能和操作方式详细说明如下。表1方式字位功能(其中第15,24位=0) 位序号〖〗1~11〖〗12~14〖〗16~20〖〗21~22〖〗23〖〗25~27[]28〖〗29〖〗30〖〗31〖〗32功能〖〗保留〖〗BR〖〗MS〖〗PSKCF〖〗AOR〖〗MAXBLK[]usePWD〖〗useST〖〗useBT〖〗useSTOP〖〗res’d说明〖〗未用〖〗比特率〖〗调制方式〖〗PSK载频〖〗应答方式〖〗最大区设置〖〗口令方式〖〗序列端头〖〗区端头〖〗执行停止〖〗保留未用图2调制方式示意图图3读写器电路原理图(1) 第0位是封锁位,如果置1,则不能改写该区。第15,24位必须为“0”。 (2) usePWD口令方式:该位置1,在写操作时,读写器发出标准操作码(10)后必须是有效的32位口令,然后是封锁位、32位数据、3位区号。若口令无效,则IC卡不能写入。如果该位为0,则上述过程中就不要口令,称为标准写。 (3) AOR方式:位AOR=1,在读操作时,卡片IC等待读写器的回应,如果usePWD=1,则有效的回应是发送标准操作码(10)、32位有效口令;如果usePWD=0,则标准操作码后可以用任意32位代替口令;此后,才能开始读卡。否则,IC卡在把方式字装入工作寄存器后,就无调制信号产生。 (4) MAXBLK:最大区设置,限制从卡片读出的数据区。例如,MAXBLK=3,IC卡就只发送1,2,3区数据;如果MAXBLK=0,则可读出0区。 (5) useST和useBT:这里的端头是指在读取一帧数据的开始标志,实际是用作同步的信号。useST=1时,是几个区的开始有1个端头;useBT=1时,是每个数据区的前面都有1个端头。 (6) useSTOP:该位为0时,读写器发出停止操作码(11),使IC卡停止工作,直到下次上电复位。停止码后不能跟其他数据。 (7) 各个区的位读写顺序都是从低到高。 二、 e5550的工作过程 e5550的基本工作过程是:由卡片线圈电磁感应从读写器的发射电磁场中获取电源,E2PROM的数据经线圈发射给读写器,把从线圈接收到的数据编程,写入E2PROM。每次上电复位后都进入读卡过程,一般只是先把0区的方式字读到工作寄存器中,而不是传送到线圈中;然后数据流以设定的调制方式和波特率从1区传送到MAXBLK区(由方式字设定)。若设置MAXBLK=0,则0区被读出。读写器对e5550写的过程是以短间隙中断RF场,2个间隙之间的时间编码成0和1的信号传送出去。间隙的长度一般为50~150μs,标准定义2间隙之间的时间为24个RF周期代表“0”,56个RF周期代表“1”;取RF=125kHz,则大约分别为200μs和450μs。如果接收到有效数据位,且大于64个RF周期信号无间隙或接收到的间隔时间无效,则e5550自行退出写模式,开始编程,把数据写入E2PROM。再从1区进入读卡模式。读写器对e5550有2个操作码,一是标准操作码“10”,它表示1个写操作的开始;二是停止操作码“11”,它可使e5550停止运行,直到下一次上电复位。每次标准操作码之前,应先发1个起始间隙,它要比一般间隙长。如果操作码无效,e5550又从1区开始进入读卡模式。 三、 用单片机编程实现读、写卡的功能 下面以Manchester调制方式,RF=125kHz,波特率=RF/32为例,说明在读/写卡信号的编码和译码的过程中单片机的软件流程。在e5550进入读卡模式发送正式数据流之前,有一同步脉冲发送。从图2的Manchester调制方式的信号脉冲可以看到有2种脉冲长度,一种短,另一种长。在理想状态,长的应是短的的2倍。在厂家提供的资料中给出2种脉冲长度参考值:短脉冲最小值Ts1=90μs,最大值Ts2=180μs;长脉冲最小值TL1=210μs,最大值TL2=300μs。这里之所以这样规定,是因为实际上,由于各种因素干扰,e5550发出的信号参数在某一范围内漂移。在单片机中用一定时器来测定脉宽,设置定时器溢出时间为TL2,读信号脚为IN,测定同步脉冲的流程如下: (1) 设置定时器。在IN脚探定1个电位跳变。 (2) 启动定时器。 (3) 在IN脚探定下1个电位跳变。 (4) 停止定时器。 (5) 时间是否小于TL1?若是,则该脉冲无效,到第1步重新开始。 (6) 时间是否大于TL2?若是,则该脉冲无效,到第1步重新开始。 (7) 延时Tnext约135μs。 (8) 检测同步结束。 从图2的Manchester调制方式中可知,数据信号“0”和“1”分别由下降沿和上升沿表示。现在要准确探测出每1位,首先应考虑的是读取数位的时间间隔,这个时间间隔自然是1个比特周期。另外可以看到,2个相邻的位之间其脉冲数(不管是高电平 (上接第42页)程序中LCALL FPAD指令可改为LCALL FPSU/FPMU/FPDI/FPDI2/FPSQ及CMPR任意之一(其中CMPR只影响Z、V、C等标志位,可查看PSW验证之)。 例: 演示浮点数0.1×105开平方。清除2EH字单元,表示正数、正阶。在2DH中置入05(阶)在2C~28H内依次置入10,00,00,00,00,表示尾数为0.1。单步执行演示程序,在执行LCALL DTOB后,可看到0.1×105所对应的二进制浮点数为8E1C400000,8EH为阶码,1C400000H为尾数。执行LCALL FSQR后,看到平方根为8748000000(87H为阶码,48000000H为尾数)。当执行LCALL BTOD之后,得到十进制浮点数位1.0×102,表明10000=100,结果正确无误。MES 注:由于篇幅所限,作者提供的子程序清单此处从略,读者可从本刊网站上下载。 参考文献 1孙涵芳Intel 16位单片机北京:北京航天航空大学出版社,1995 2涂时亮,姚志石单片机MCS\ 96/98实用子程序.上海:复旦大学出版社,1991 3R 罗德高等数学(第一、二卷)北京:人民教育出版社,1978还是低电平),最少是1个,最多是2个(即长脉冲和短脉冲)。也就是说,1个比特周期可能是1个脉冲宽度,也可能是2个脉冲宽度组成。用1根I/O线(IN)可探测出U2270B输出脚(Output)上的跳变,2个跳变之间的宽度(即1个脉冲宽度)可用定时器测定。输出的数位是“0”还是“1”,可以在每个比特周期过后读取IN脚的电平来定。上述同步检测后,接收数据流的1个位的流程如下: (1) 设置定时器,并启动。 (2) 检测1个脉冲宽度。 (3) 该脉宽有效长度与上一次累加,若总长度小于1个比特周期,则返回到第1步,继续探测下1个;若定时器溢出,则该脉冲无效,失败。 (4) 上述脉冲累加时间达到1个比特时钟周期时(约260μs),读IN脚,取得1个有效的位。 (5) 要接收N个位(N取决MAXBLK定义),则N次循环上述(1)~(4)步,以此同时把所得位拼接成字节存放在接收缓冲区。 在应答方式下(AOR位=1)读卡:首先读写器必须发送使IC卡调制功能生效的激发信号,即在操作码“10”后跟32位有效口令(usePWD=1时),如果口令位usePWD=0,则任何32个有效位都将代表口令,其后过程同上。 把数据写到卡的方式有: (1) 在标准写的方式下,数据位的先后顺序是:操作码“10”、封锁位“1”或“0”、32位数据、区地址3位。 (2) 在口令方式(usePWD位=1),要求在上述操作码后跟有效口令,再是其他位。 (3) 在应答方式(AOR=1)下,若usePWD位=1,首先要求操作码和有效口令使调制器工作。 写卡的基本流程如下(以标准写为例):设单片机的输出引脚为OUT。 (1) 发一起始间隙,即OUT置0,间隙延时比一般的长,以便IC卡易探测到。这里设该起始间隙为180μs,一般的为50~150μs。 (2) 以下发出各数据位时,分别用长度为24个和56个时钟周期的正脉冲表示“0”和“1”,即OUT置1的时间。各位之间用OUT置0的间隙50~150μs断开。 (3) 数据发送完后,延时(最后1个间隙后超出64个时钟周期无间隙),使得e5550退出写模式,开始编程把数据写入E2PROM。 在写数据到e5550时,若发现编码两间隙之间的时钟数目错、操作码错、口令方式时的无效口令或接收到的总位数错等任一情况,则e5550又进入读卡模式,从1区开始。在写模式中有效的位数应是:标准写为38位;带口令写为70位;要求应答为34位。 结束语 在实际编程中,要考虑可能的干扰和误差,因此,校验和对采样信号的数据处理(如脉冲宽度的归一)等措施必不可少。如果实现了上述功能,那么,剩下的单片机与用户应用的接口既多样又容易做到。MES
标签:
来源:单片机与嵌入式系统应用 作者:华东地质学院信息工程系 饶运涛 邹继军 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐