zoukankan      html  css  js  c++  java
  • 射频识别技术漫谈(7)——ID卡【worldsing笔记】

    ID(Identification)是识别的意思,ID卡就是识别卡。ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡。

    射频ID卡一般都工作在TTF模式,进入射频场得电后不停地发送自己的识别号。最初识别卡是用来识别人的,用5个字节40位二进制数表示,可以识别大约一万亿人,估计是因为考虑到一万亿太多了,一般ID卡使用时只使用低位的4个字节,而把最高位的一个字节作为厂家标识或版本号使用。这样4字节32位二进制数可以识别43亿人,在当时全世界每人一个识别号也足够了。当然后来又发展到卡号可以随便复制,这是后话。

    为了检查数据传输中是否发生了错误,射频识别卡对每个字节都增加了两个校验位,其中高半字节一个,低半字节一个,这样每个字节增加到10位二进制数,5个字节共有50位。为了校验数据的整体性错误,射频ID卡还增加了一个4位的纵向冗余检验,这样整个ID卡数据增加到54位。当进入射频场时,如果卡片直接回送这5个字节,那么读写器很难确定起始位和结束位,所以射频识别卡又增加了9个二进制“1”在前面作起始位,增加了一个二进制“0”在后面作结束位,这样ID卡就有了64位数据,正好8个字节。其排列如下图所示:

    image
    例如卡号为2100A5EAD9的卡片,其编码格式为

    1  1  1  1  1  1  1  1  1  9个“1”的起始位,也叫头部

    0  0  1  0  1  “2”

    0  0  0  1  1  “1”

    0  0  0  0  0  “0”

    0  0  0  0  0  “0”

    1  0  1  0  0  “A”

    0  1  0  1  0  “5”

    1  1  1  0  1  “E”

    1  0  1  0  0  “A”

    1  1  0  1  1  “D”

    1  0  0  1  0  “9”

    1  1  0  0  0  列偶校验和结束位“0”

    射频ID卡的数据编码一般使用曼侧斯特码或两项码,传送数据的速率用传送一位二进制数据使用几个单位载波表示。常用的有64载波,32载波,16载波,在125KHz的频率下,一个载波的时间是8微秒,因此相应的位宽为512微秒,256微秒,128微秒。对应的数据传输速率为2K(1953)、4K(3906)、8K(7813)。我们平常使用的大多是2K曼侧斯特编码的ID卡。下图是使用HTRC110芯片读卡时,卡号为2100A5EAD9的卡片从数据输出脚DOUT输出的实测波形。

    image


    软件解码时可以使用查询或中断检测跳变,配合定时器确定脉宽,根据跳变沿的方向确定数据。

    为了和128位的动物识别标签相区别,业内一般称这种64位的ID卡格式为“ID64格式”。

    本文来自新浪网

  • 相关阅读:
    Python的传递引用
    kafka的ACK
    分布式事务
    Java中的锁
    docker笔记
    MySQL数据库优化
    Centos7使用yum命令安装Mysql5.6.X
    ubuntu16.04安装workbench
    ubuntu下IDEA配置tomcat报错Warning the selected directory is not a valid tomcat home
    ubuntu配置JDK
  • 原文地址:https://www.cnblogs.com/worldsing/p/3281937.html
Copyright © 2011-2022 走看看