模拟器件读IC卡号

市面上有些门禁一体机价格很低,原因是电路没有使用专用的IC读卡芯片,而是用模拟器件实现读IC卡号。最近做了一个这样的方案,这里分享下里面的难点。

硬件部分不做解释,主要解释下软件发送数据和接收数据的格式。

IC卡属入A类卡。卡和读卡器通讯格式如下:

clip_image002

读卡器发送数据的编码格式如下:

clip_image004

1、首先要发送WAKE-UP帧

7个数据位发送,LSB首先发送。(标准REQA的数据内容是‘26’,WAKE-UP请求的数据内容是‘52’)

通信结束

clip_image005

不加奇偶校验位。

图表 7‑2:REQA帧

单片机发送数据的波形如下:

clip_image007

1位的时间是128/13.56M=9.4us

使用RF工作场的ASK100%调制原理来产生一个如图6-2所示的“暂停(pause)”状态来进行PCD和PICC间的通信。“暂停(pause)”的时间大概2-3us,如上图所示。

根据6.4.1.3协议规定,发送的数据为

ZZXYZXYXY

第一个Z为通讯开始位,最后1位Y为通讯结束位。中间7位为0100101,即0X52命令码。

IC卡发送数据的编码格式如下:

clip_image009

接收的波形如下:

clip_image011

1位的时间是128/13.56M=9.4us

电路中加了一个三极管反向,送给单片机IO口的波形和协议规定的电压相反。

中间下降沿跳变为0,中间上升沿跳变为1.

在第一个下降沿的中间处数据传输开始,第一个上升沿跳变为起始位1,后面的16位数据为00100000 00000000,即卡类型0x0004.没有奇偶校验位。

程序检测时判断是位中间跳变后,延时1us检测IO口电平,为高表示当前位为1,为低表示当前位为0.

2、发送防碰撞命令0x93,0x20

发送格式为标准帧,

clip_image013

n*(8个数据位+奇数奇偶校验位),n≥1。每个数据字节的LSB首先被发送。每个数据字节后面跟随一个奇数奇偶校验位。

通信结束

图表 7‑3:标准帧

发送波形如下:

clip_image015

参数发送协议,发送的数据为

ZXXYZXYZXXYZZZZXYZZZY

11001001 1 00000100 0

第一个Z为通讯开始位,最后1位Y为通讯结束位。

发送的数据为0x93,0x20。

IC卡发送卡号数据波形如下:

clip_image017

除去起始位,总共接收45位,5个字节,每个字节包含一个奇校验位。

01100101 1 0XA6

01001100 0 0X32

11010010 1 0X4B

01110011 0 0XCE

10001000 1 0X11

4字节卡号为0XCE4B32A6,最后一字节0X11为前4字节的异或值

发表评论

电子邮件地址不会被公开。 必填项已用*标注