英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
在单片机EM78P447A和基于MF-RC530的IC射频读卡器之间的串行外围接口通信
YOU Zhi, CHEN Shu-zhen,HUANG Ji-wu
武汉大学电子信息学院
中国湖北武汉430072
摘要:
目前提出了单片机EM78P447A操纵基于MF-RC530的IC射频读卡器的用于射频IC卡的应用的功能的一个重要方法。在本文中介绍了基于MF-RC530的IC射频读卡器的SPI兼容接口。内核技术包括在IC读卡器和单片机之间的SPI连接,软件设计,启动注册和请求-响应,解释身份验证和适当的关键格式。本文创新的采用了串行外围接口。SPI通信模式被证明是可行的和精确的。此外,我们应该避免滥用并行接口的方式。
关键词: 射频卡;基于MF-RC530的IC射频读卡器;安全键;单片机EM78P447A;SPI通信
CLC编号:TP 368.1;TP 273.5
接收日期:2004-07-06
基金项目:国家自然科学基金(50099620)和中国国家863高技术发展计划(2001 aa132050-03)
传记: YOU Zhi (1977 -),男,硕士研究生,研究方向:通信与信息系统,电子邮件:mrshanduo@163.com
致收信人,电子邮件:huangjwcn@21cn.com
0 简介
无线电频率(RF)卡也叫非接触式集成电路(IC)卡(实现微程序控制的控制单元(MCU),特定于应用程序的集成电路(ASIC)等等),其近年来已大大发展。IC读卡器是基于射频卡的整个系统的核心。如何正确操纵IC读卡器是基于射频卡内核技术的应用。
MF RC530是飞利浦半导体IC读卡器家庭的一员。它支持IS()14443A通信方案和使用高波特率非接触式读卡器的非接触通信的所有的层。它在节电工作和串行外围接口(SPI)方面同样表现良好。
在目前最新的基于IC卡应用的智能系统应用程序中,并行接口用于操纵IC读卡器。相比而言,串行数据通信是很少使用的。本文介绍了mu;处理器EM78P447A和基于MF-RC530的IC射频读卡器之间的串行数据通信技术。
1 MF RC530内部配置
MF RC530实现了两个主要模块:数字电路模块和模拟电路模块。它的配置如图1所示。
数字电路块由状态机,复位控制,64字节FIFO,32 X 16字节EEPROM,关键缓冲区,32位的伪随机信号发生器,编码器和逻辑译码器,串行数据开关等等。
状态机在命令寄存器中由外部mu;处理机执行命令代码,并根据执行结果更新相关注册标志。
内部寄存器分为8页。每个页面包含8个字节。外部mu;处理器通过设置其寄存器操纵MF RC530。此外,重点检查,mu;处理器和射频卡之间的数据读写都取决于两个步骤: mu;处理器操纵MF RC530和MF RC530射频卡的处理。在这些过程中, mu;处理器从MF RC530的寄存器获取状态信息。因此,关键是准确设置IC读卡器的寄存器。MF RC530的硬重置发生在以下三种情况: DVDD管脚电位升高引起的上电复位; AVDD管脚电位升高引起的上电复位;RSTPD管脚高电平。
EEPROM分为32块(地址0到31)。每个块包含16个字节。第一个块是只读的块,它存储了包括产品类型证明和产品序列号的产品信息。寄存器初始化文件存储在后两个块中。在初始化过程中,寄存器地址从0x10到0x2F 自动初始化去查询这些寄存器初始化文件。如果异值初始化是必要的,你可以块地址3 到7,在其中你可以填写任何喜欢的值来完成初始化或直接通过写寄存器来改变它们。最后,块地址8到31是关键字段(只写)。关键缓冲区包含12个字节,其中存放在关键字检查时使用的关键字。32位伪随机信号发生器产生随机数据进行身份验证。
模拟电路块包括调制器、天线驱动程序、接收和放大电路。
2 串口通信的连接
MF RC530支持串行外围接口(SPI),这使它容易与EM78P447A专门进行位数据处理的通信。图2显示了mu;处理器和使用SPI兼容接口的MF RC530之间的联系。
基于MF-RC530的IC射频读卡器是32针小引出线封装。管脚介绍请查看Ref.[4]。本文中我只介绍与mu;处理器EM78P447A 的SPI连接相关的管脚。
在图中,MF RC530作为从IC。管脚A2的定义是作为时钟线与主IC(EM78P447A)的管脚P73相连。SPI时钟(SCK)由主IC生成。MOSI线(P74到A0 })用于把位流从主IC送到从IC(MF RC530)。MISO线(D0到P75)用于从MF RC530传输比特流到主IC。此外,主IC管脚P77应该连接到定义为NSS的ALE管脚。
3 通信设计
此篇介绍通信程序设计。图3是用来说明编程流。
起初,电压下降沿应该传送给管脚RETPD用于重置和初始化。我们还提供了重置过程程序,因为我们意识到它的棘手。
BC PORT7,RSTPD ; 管脚RESET清零
CALL Delay 25 ms ; 延时25毫秒
BS PORT7,RSTPD ; 管脚RESET置1
CALL Delay 2.5 ms ; 延时25毫秒
BC PORT7,RSTPD ; 管脚RESET清零
CALI~ Delay 100mu;s ; 延时100微秒
重置阶段后,每个寄存器保持默认值。所以有必要发送适当的值给它们。现在,我想描述如何设置寄存器ClockQcontrol(控制时钟生成900阶段转移Q-channel时钟)和寄存器TxControl (控制天线驱动程序管脚Tx1和Tx2的逻辑行为)。首先设置ClockQcontrol为0x00,然后将其设置为0x40。100mu;s的延迟后,再将其设置为0x00。因此,它的第6位设置为0,Q-clock自动校准。当设置TxControl时,首先将bit-1和bit-0清零去驱动管脚Tx2和管脚Tx1恒定的输出电平。1毫秒的延迟后,将它们设置为1,允许13.56兆赫载波调制的能量传输数据的传送。
寄存器初始化完成后,你可以在两个IC之间启动请求-响应流程。以下两个步骤是必要的:
- 编写命令代码0x52(读卡)到寄存器FIFO DATA。
- 编写命令代码0x1E(收发)到寄存器Command。
在传输完成之后,你应该启动MF RC530中的定时器。射频区域内如果有卡片,计时器将停止并启动接收器接收信号,否则计时器将继续自减为零,同时你可以通过检查寄存器的标记位InterruptRq知道该卡是否准备好。当射频卡准备好时,MF RC530接收卡的产品序列号,然后存储到寄存器FIFODATA中,之后再被EM78P447A读取。
在卡片选择阶段如果不止有一个卡在射频区域内,碰撞检测能力可能有助于MF RC530正确回应。MF RC530可以通过防冲突程序来解决不同卡片的序列号的数据碰撞。
除非关键字被填写和检查了,否则读写卡是不允许的。为了填充到EEPROM中,关键字必须用一个特定的格式进行预处理。每个关键字节必须分成低四位ko到k3(低半字节)和高四位k4到k7(高半字节)。每个半字节应该一个字节中满两次,同时其中一个是位操作反向。例如如果字节是0x4A,预处理的结果是两个字节:0xBA和0x54。在用这种格式预处理后,EEPROM或FIFODATA缓冲区的12个字节需要存储6-byte关键字。所需的所有字节被复制到关键字缓冲区。如果关键字的格式不正确, 标志位KeyError置1,同时将不可能得到一个有效的卡验证。
为了加密通信,MF RC530和射频卡应该互相验证。如果卡和MF RC530之间验证通过,双方所有进一步的通信需要使用密码1安全算法来完成。
4 从MF RC530中读写数据
在图2中,我们可以区分SPI连接模式和普通的I2C总线连接模式。在后者中只存在一个数据行。所以对IC的读写不能同时进行。在前者中,如图2所示, 随着时钟信号(SCK) 的改变,读写动作可以同时进行。接下来让我们详细介绍这两个过程。
4.1从MF RC530中读数据
EM78P447A写地址字节到MF RC530,同时读取相应的数据字节。表1描述了地址字节格式。
第一个地址字节发送工作模式本身的定义和首地址。它必须满足下列格式:MSB设置为1,bit6 到bit1定义地址,LSB设置为0。之后的字节发送只定义地址。它们的MSB设置为0,LSB设置为0。最后一个发送的字节应该是0x00。此时读取数据的过程就结束了。我们必须着重第一个从MF RC530读出的数据是随机的和无用的这一事实。
4.2从MF RC530中写数据
首先,EM78P447A发出一个字节,它定义了工作模式本身和你想写的地址。它必须满足格式如表2所示。
MSB设置为0。Bit 6 到bit 1定义地址和LSB设置为0。之后一个或多个字节就是你想写的数据流。
强调SPI的时序图是很有必要,因为调度实现是与MF RC530适当通信的前提。事实上,单片机EM78P447编程中最困难的就是调度的实现。在SPI中NSS信号是控制写模式的开关。为了在一个数据流中发送字节,NSS信号必须一直是低电平。为了切换到另一个地址,你应该改写另一个地址字节使其满足特殊的格式。在一个数据流NSS信号一直保持低电平是非常重要的。当发送多个数据流, 在两个相邻数据流之间NSS必须设置为高电平。SPI时序图如图4所示。
我想通过提供汇编语言程序来特别的介绍该过程,该程序描述了EM78P447A在串行模式下从MF RC530中读取数据。首先从MF RC530 的数据缓冲区(FIFODATA)中读取NUMBER-byte长数据流,然后将它们从ADDR中存储到EM78P447A的记忆区。当假设正确格式的地址字节0x84已经填满记忆地址空间COMM时,程序验证有效。
RD_0: BC PORT7, NSS ; 选择SPI模式
BS 0X1F , 0 ; 设置起始标志位
BS 0X1F , 1 ; 设置结束标志位
MOV A , @ADDR ; 设置起始地址
MOV R4, A
MOV A, @NUMBER ; 为读比特设置定时器
M()V 0X3A, A
M()V A , COMM ; 发送定义兼备模式和地址的字节
RD_I: MOV 0X3B, A
RD_2: MOV A , @0X08 ; 设置一个字节的比特数
MOV 0X39 , ARD_3: BC PORT7, SCK ; 时钟线置低
BC PORT7 , MOSI ; 写入线置低
RLC 0X3B ; 左移一位
JBC R3 , C ; 如果溢出位是0则跳出
BS PORT7 , MOSI ; 否则写入线置1
BC R3 , C ; 进位标志位清零
JBC PORT7 , MISO ; 如果读出位为0则跳出
BS R3 , C ; 否则进位标志位置1
RLC 0X3C ; 左移一位
BS PORT7 , SCK ; 时钟线置高
DJZ 0X39 ; 自减字节数
JMP RD_3 ; 如果一个字节处理未完成就跳到RD_3
MOV A, 0X3C ; 否则存储读到的字节
MOV R0, A
JBS 0X1F, 0 ; 如果这个字节是首字节就跳出
INC R4 ; 否则地址指针自增
BC 0X1F , 0 ; 首字节标志位清零
JBS 0X1F , 1 ; 如果这个字节是结束字节就跳出
JMP RD_4 ; 否则结束
MOV A, COMM
AND A, @0X7F
DJZ 0X3A ; 读自增字节数
JMP RD_I ; 如果一个字节处理未完成就跳到RD_I
BC 0X1F , 1 ; 否则结束字节标志位清零
CLR 0X3B ; 发送0x00作为结束字节
JMP RD2 ; 跳出循环
RD_4: BS PORT7 , NSS ; 暂停SPI
RET ; 返回
5 总结
随着技术和社会经济的发展,I卡已被广泛应用于许多领域,如公共交通、无线通信、卫生服务、财务和公共安全。例如,智能卡应用于智能水表、智能安培表和智能煤气表,这为人们提供了极大的方便。智能IC卡已经在现代社会扮演了一个重要且无法挑战的角色。因此, 对SPI通信方式进行详细的研究是及其重要的。此外以上提出的串行数据通信
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[147296],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。