收藏 分享(赏)

1非接触式IC卡工作原理.doc

上传人:hwpkd79526 文档编号:8200206 上传时间:2019-06-13 格式:DOC 页数:5 大小:80.50KB
下载 相关 举报
1非接触式IC卡工作原理.doc_第1页
第1页 / 共5页
1非接触式IC卡工作原理.doc_第2页
第2页 / 共5页
1非接触式IC卡工作原理.doc_第3页
第3页 / 共5页
1非接触式IC卡工作原理.doc_第4页
第4页 / 共5页
1非接触式IC卡工作原理.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1非接触式 IC 卡工作原理非接触式 IC 卡可用以存储数字、字母编码信息,具有智能读写和加密通信的功能,卡中存储的需要识别、交互的数据可以随时写入、更改或擦除。它通过无线电波与读写设备进行数据交换,不需要电气触点,读写频率高。卡中的集成电路除了带加密逻辑、串行EEPROM (可擦除、可编程只读存储器) 、微处理器 CPU 外,还带有射频收发及相关电路。无源非接触式 IC 卡框图如图1 所示。 非接触式 IC 卡接收射频脉冲,经整流给电容器充电,再经稳压后作为工作电压。数据解调部分从接收到的射频脉冲中解调出数据送到控制逻辑,控制逻辑接受指令完成存储、发送数据或接收读写器的数据。图 1 无源非接

2、触式 IC 卡框图系统以 13. 56MHz 的工作频率,半双工方式在读写器与 IC 卡之间双向传递数据。读写器将要发送的信号,编码后加载在频率为 13. 56MHz 的载波信号上经天线向外发送,进入读写器工作区域的 IC 卡接收此脉冲信号,一方面卡内芯片中的射频接口模块由此信号获得电源电压、复位信号、时钟信号; 同时卡内芯片中的有关电路对此信号进行调制、解码、解密,然后对命令请求、密码、权限等进行判断,若为读命令,控制逻辑电路则从存储器中读取有关信息,经加密、编码、调制后经卡内天线发送给读写器,读写器对接收到的信号进行解调、解码、解密后送至后台计算机处理。若为修改信息的写命令,有关控制逻辑引

3、起的内部电荷泵提升工作电压,提供擦写 EEPROM 时所需的高压,以便对 EEPROM 中的内容进行改写。若经判断其对应的密码和权限不符,则返回出错信息与接触式 IC 卡相比较。2射频卡读写器硬件设计系统工作前,通过读写器中的写卡功能对所有的 IC 卡写入指定的数据,在正式的工作中,由读写卡模块的读卡功能将放入感应区的 IC 卡中的数据读出,并将数据传输到微处理器中,然后再由微处理器通过对比判断读卡模块上传的数据是否正确,最后根据微处理器得出的结果决定是否开门。系统的原理框图如图2所示。图 2 系统原理图2. 1 读写卡模块IC 卡读写模块中采用的芯片是 MF RC500,它的并行微控制器接口

4、自动检测连接的 8 位并行接口的类型,它包含一个易用的双向 F IFO 缓冲区和一个可配置的中断输出,这样就为连接各种 MCU 提供了很大的灵活性,即使使用非常低成本的器件也能满足高速非接触式通信的要求。数据处理部分执行数据的并行串行转换,它支持的帧包括 CRC 和奇偶校验,它以完全透明的模式进行操作,因而支持 ISO14443A 的所有层,状态和控制部分允许对器件进行配置以适应环境的影响并使性能调节到最佳状态,当与 M I2FARE Standard 和 M IFARE 产品通信时, 使用高速 CRYPTO1 流密码单元和一个可靠的非易失性密匙存储器。模拟电路包含了一个具有非常低阻抗桥驱动器

5、输出的发送部分使得最大操作距离可达 100mm。接收器可以检测到并解码非常弱的应答信号 ,由于所采用的接收器已不再是限制操作距离的因素,在此使用的 IC 卡读写模块具有比较大的科学先进性,比以往使用的 ID 卡系统拥有更高的性能。2. 2 微处理器模块在微处理器上采用了 AT89C51 单片机为处理芯片。由于系统中 IC 卡方面的功能已经可以用 RC500 处理,处理器只负责对读写器的读写和外部通讯 ,所以此单片机完全符合上述功能。微处理器的 P0 口连接读写卡模块的一些控制信号端口, P1 口连接读写卡模块的数据和地址端口。在单机连接使用时可直接使用微处理器的串口,如果是多机连接时,可再加入

6、串口转 RS485 模块 ,这样对每一个使用的系统进行编号处理就构成了多机的联机使用状态 ,。3射频卡读写器软件设计在系统的主程序流程图中主要画出的是微控制器的程序流程,而加密算法作为一个子程序嵌入到主程序当中。在此系统中,微控制器中的程序使用的是 C 语言,但在编写数据加密系统中使用的是专用的编写程序。由于两种编程语言使用的并不是相同的语言,如何将两种语言在同一系统中体现出各自的功能是本系统软件编写的重点和难点。本系统主程序流程图如图3所示。图 3 主程序流程图3. 1 微控制器软件设计 此模块中的设计主要是 IC 卡模块与微控制器之间的通讯设计。其中重要的是密码的写入与读写的操作过程。以下

7、便是本模块的部分原始程序。装载密码的应用程序: uint8 PCDLoadKey ( uint8 KEYAB, uint8 SecNr, uint8 3 Key) uint8 Status; SerBfrCMDTYPE = 1; / /对 IC 卡存储芯片写时续操作 SerBfrCOMMAND = E; / /定义数据长度 SerBfrLENGTH = 8; / /写入卡的密码数据 SerBfrDATA = KEYAB; / /进行加密操作 SerBfrDATA + 1 = SecNr; memcopy( / /对写入的数据进行验证 Status =R500_Cmd ( SlvAddr) ;

8、if ( Status = =OK) / /判断加密操作 Status = SerBfr STATUS; return Status; 写读卡芯片寄存器的应用程序: uint8 PCDWriteReg( uint8 RegAddr, uint8 RegValue) uint8 Status; SerBfrCMDTYPE = 1; / /对 IC 卡存储芯片写时续操作 SerBfrCOMMAND = F; / /定义数据长度 SerBfrLENGTH = 2; / /定义写数据的地址 SerBfrDATA =RegAddr; / /调整地址 SerBfrDATA + 1 =RegValue; /

9、 /调用写数据程序 Status =R500_Cmd ( SlvAddr) ; if ( Status = =OK) / /验证数据正确性 Status = SerBfr STATUS; return Status; 读读卡芯片寄存器的应用程序: uint8 PCDReadReg( uint8 RegAddr, uint8 3 RegValue) uint8 Status; SerBfrCMDTYPE = 1; / /对 IC 卡存储芯片写时续操作 SerBfrCOMMAND = G; / /定义数据长度 SerBfrLENGTH = 1; / /定义读数据的地址 SerBfrDATA =Re

10、gAddr; / /调用读数据程序 Status =R500_Cmd ( SlvAddr) ; if ( Status = =OK) Status = SerBfr STATUS; if ( Status = =OK) / /验证数据正确性 3 RegValue = SerBfrDATA ; return Status; 3. 2 数据加密软件设计 私钥加密算法和哈希值加密算法是本设计中用到的加密方法。其中私钥加密中使用单个私钥来加密和解密数据。哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值,哈希值是一段数据唯一且极其紧凑的数值表示形式。 在本系统中,数据

11、在读卡系统和微控制器之间相互传输,微控制器接受由读卡系统发送来的用户数据。 数据在读卡系统中,首先对要传送的数据使用哈希算法将得到数据的哈希值,然后使用用户的自有私钥密码对数据和使用哈希算法得到的哈希值加密,然后传到微控制器中,再由微控制器对得到的数据进行解密,恢复传输的原始数据。本模块的设计主要使用的是数据加密算法的专业编程语言。功能是将 IC 卡模块中的数据进行加密处理,然后将加密的数据传出和对接受的数据进行解密处理。但由于两种语言的不一致性,通过微处理器读取的数据不能直接通过加密算法进行加密处理,所以在此程序中特意编写了与微控制器通讯的通讯端口,将微处理器得到的数据通过此端口传入数据的加

12、密算法程序中,对数据进行加密处理后,再通过此端口将数据传到微处理器中,这样就方便两种语言进行数据的转换和传递。以下便是本模块软件设计的部分原始程序。生成对称密钥: Trip leDESCryp toServiceProvider TDES = new Trip leDESCryp2 toServiceProvider( ) ; TDES. Generate IV ( ) ; TDES. GenerateKey( ) ; 生成不对称密钥: RSACryp toServiceProvider RSA = new RSACryp toServicePro2vider ( ) ; / /Save th

13、e public key information to an RSAParameters structure. RSAParameters RSAKeyInfo =RSA. ExportParameters(false) ; 将不对称密钥存储在密钥容器中: CspParameters cp = new CspParameters( ) ; cp. KeyContainerName =ContainerName; RSACryp toServiceProvider rsa = new RSACryp toServicePro2 vider ( cp) ; / /得到保存的密钥 RSACryp toServiceProvider rsa = new RSACryp toServicePro2 vider ( cp) ; rsa. ToXmlString( true) ; / /删除保存的密钥 rsa. PersistKeyInCsp = false; rsa. Clear ( ) ;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报