1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RFID读卡程

RFID读卡程序 标签: 无标签 RFID读卡程序 RFID读卡程序 关键字 :125k 、读卡程序 、RFID 一、 原理 1、硬件原理 1.1、硬件工作原理 说明 阅读器:基站 ;应答器:非接触ID卡。我们使用的MCU(单片机)是at89s52(CS—Ⅲ板)。 基站在上电的情况下通过耦合线圈发射频率为125k的正弦波,ID卡的耦合线圈在125k的正弦波的激励下产生感应电动势,它为整个ID卡提供电源。ID卡通过调制电路根据其卡类的数据使ID卡的耦合线圈也发出正弦波,基站的耦合线圈接收到,根据它与125k波的不同来表示不同的数据。并将其通过DATA端以曼切斯特码的形式输出。 1.2、基站的接线端点 NC(未用) ACC(+5v) GND(接地) DATA(数据端) GND(电源管理) 基站接线的端口 说明:ACC接+5v的电源 GND:接地端 DATA:数据端,一般通过接外部中断以跳变的方式来接收曼切斯特码 GND:电源管理。高电平:禁止对基站的供电;低电平:允许对基站的供电 2、 数据编码 数据编码是将数据表示成某种特殊的信号形式以便于数据的可靠传输。 2.1、 数字信号编码技术 对于传输数字信号来说,最普通且最容易的方法是用两个不同的电压值来表示两个二进制值。用无电压(或负电压)表示0,而正电压表示1。 常用的数字信号编码有不归零(NRZ)编码、曼彻斯特(Manchester)编码和差分曼彻斯特(Differential Manchester)编码。 2.1.1、NRZ编码 它的优点是:一位码元(一串脉冲)一个单位脉冲的亮度,称为全亮码。根据通信理论,每个脉冲亮度越大,信号的能量越大,抗干扰能力强,且脉冲亮度与信道带宽成反比,即全亮码占用信道较小的带宽编码效率高。 它的缺点是:当出现连续0或1时,难以分辨复位的起停点,会产生直流分量的积累,使信号失真。因此,过去大多数数据传输系统都不采用这种编码方式。近年来,随着技术的完善,NRZ编码已成为高速网络的主流技术。 2.1.2、曼彻斯特编码 在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变(0 1)表示0,用负的电压跳变(1 0)表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。 2.1.3、差分曼彻斯特 差分曼彻斯特编码是曼彻斯特编码的一种修改格式。其不同之处在于:每位的中间跳变只用于同步时钟信号;而0或1的取值判断是用位的起始处有无跳变来表示(若有跳变则为0,若无跳变则为1)。这种编码的特点是每一位均用不同电平的两个半位来表示,因而始终能保持直流的平衡。这种编码也是一种自同步编码。 3、RFID的数据处理 3.1、ID卡内的数据存储结构 下图是ID卡内存储空间的数据结构: 请注意:图中的一个数据表示的是一个位bite,即;图中共有8个字节 9个‘1’作为开头; 紧接着是10组数据: 4个有效数据位(Dxx ) 和一个行偶校验位(Px); 其后是4个列偶校验位的数据(PC0—PC3);最后以0结束。 3.2、基站将ID卡内数据转化为曼切斯特码输出 基站接收处理ID卡的数据后以曼切斯特码的形式通过DATA端输出,即将卡类的64位数据转化为了128位的曼切斯特码。 将ID卡内数据转化为曼切斯特码原理如图: 3.3、MCU从基站DATA端接收曼切斯特码 采集曼码如图: 二 、RFID读卡程序设计 1、RFID读卡程序原理流程 (1)将正确接收的128位曼码存于16个字节的数组中。(2)找到9个“1 0 ”的标志头。(3) 将128位转化为ID卡内原始的 除去9个“1”的55位数据形式,并暂存于16字节的数组中。 (4)对55位数据 先进行 列偶校验。 (5) 再进行 行偶校验 ,每校验正确一组(4个有效数据位 和 1个行偶校验位) 就将 4位有效数据 放于我们一个特定的5字节有效数组中。 2、代码如下: 说明:以下程序是读取基站DATA端数据,并加以校验正确后,将卡内正确数据存放于effectdata[5]中,而没有直接给出main函数,故可根据需要编写main调用effectdata[5](内存有正确的卡内数据)。 ///////////////////////////////////////////////////////////

文档评论(0)

书是爱的奉献 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档