非接触式智能卡模块ID-0/10/15的原理及应用

控制/MCU

1883人已加入

描述

  这里介绍一种非接触式智能卡模块的原理,性能。并给出了与MCS51单片机接口的详细程序。

  1 概述

  当前社会生活中使用的主要为接触式智能卡,工作时需与读写终端触点接触,存在易磨损、并行性差、响应时间长等特点;而非接触式智能卡由于具有无接触,可并行处理、与接触式相比可节约70%-90%的时间等优点正越来越广泛的运用于 医疗、交通,社会保险、税务等诸多领域。

  这里提供的ID10/15非接触式智能卡模块具有远距离、低功耗、小体积等特点,它专为OEM 厂商设计。

  

 

  2 ID10/15模块工作原理

  ID10/15模块外接的电感应线圈产生125KHZ的电磁波,当ID-0/1-/15智能卡片在ID-0/10/15产生的磁场范围内时,智能卡片内的线圈接收电磁波的能量,智能卡片内的威廉希尔官方网站 对其整流、稳压后作为卡片系统工作电压,并从接收到的振幅调制脉冲调制出信息并送到内部控制逻辑,并将内部数据经由天线送出,ID-0/10/15收到智能卡上的资料后再重新依输出格式编码输出。

  3 ID-0/10/15模块特点

  电源﹕5VDC。

  数据输出接口:有二种数据输出格式

  (1)Wiegand 26模式

  (2)ASCⅡ模式

  读卡距离﹕ 0/7~10cm/12~15cm @5V

  工作频率﹕125KHz

  读写能力﹕只读

  视觉声音指示﹕指示灯和2.7KHz蜂鸣器驱动输出

  体积﹕22*20*6mm/26*25*6mm/39*39*9mm

  4 ID-0/10/15模块引脚定义

  

 

  1. 电源地

  2. 重置脚(Reset Bar)

  3. 天线A

  4. 天线B

  5. 接地为ASCⅡ模式/接5V为韦根26模式

  6. CMOS/One Output

  7. TTL Data/Zero Output

  8. Beeper/Led

  9. +4.6V~+5.5V

  ID-10的读卡距离为8厘米,ID-15的读卡距离为14厘米

  5 应用实例

  5.1 Wiegand 26 模式

  在Wiegand 26 模式下,ID-0/10/15引脚接法如下﹕

  PIN1﹕ 地

  PIN2﹕Reset Bar

  PIN3,4 ﹕Antenna

  PIN5 ﹕接+5VDC

  PIN6﹕DATA 1

  PIN7: DATA0

  PIN8: Beeper/Led

  PIN9: +4.6V~+5.5V

  在Wiegand 26 模式下,ID-0/10/15数据引脚输出波形如下﹕

  data0

  。。。

  data1 950μs 50μs

  。。。

  50μs 950μs

  DATA0 和 DATA1总共26个低电平脉冲,每一个脉冲代表一个BIT 数据,第1个BIT 为1-13 BIT 的偶校验位,第26 个BIT 为14-26 BIT 的奇校验位,BIT2-BIT25 共6 DIGITS(每4 BIT 为一个DIGITS)代表卡片号码的后六位数。

  此模式下与MCS51单片机接口的程序如下﹕

  ID-0_DATA0: EQU P1.7 ;P1.7 CONNECT TO DATA0

  ID-0_DATA1: EQU P1.6 ;P1.6 CONNECT TO DATA1

  ADDR_1: EQU 30H ;6 BYTES DATA SAVE IN INRAM 30-35H

  EVEN_CHECK EQU 00H ;20H_BIT0 SAVE AS EVEN PARITY

  ODD_CHECK EQU 01H ;20H_BIT1 SAVE AS ODD PARITY

  EVEN_FLAG EQU 02H ;20H_BIT2

  TIME_OUT_FLAG EQU 03H ;20H_BIT3

  ORG 000BH

  LJMP TIMER0_IN

  ORG 30H

  WIEGAND_START: TMOD,#01H ;

  SETB EA

  SETB EVEN_FLAG ;SET EVEN CHECK FLAG

  CLR TIME_OUT_FLAG

  MOV R2,#6 ;TOTAL 6 BYTES DATA

  MOV R3,#4 ;4 BITS PER BYTE

  MOV R0,#ADDR_1 ;START ADDRESS OF DATA

  WIEGAND1: JNB ID-0_DATA0,WIEGAND2 ;DATA0 IS LOW THEN START TO OUTPUT DATA

  JB ID-0_DATA1,WIEGAND1 ;DATA0 AND DATA1 IS HIGH THEN WAIT DATA

  JB TIME_OUT_FLAG,ERR

  MOV TH0,#0F8H ;2000US INTERRUPT

  MOV TL0,#30H

  CLR TIME_OUT_FLAG

  SETB TR0 ;TIMER0 START

  LCALL DELAY25US

  MOV C,ID-0-DATA0

  LCALL DELAY175US

  JNB ID-0-DATA1,ERR

  LJMP WIEGAND3

  WIEGAND2: NOP

  JB TIME_OUT_FLAG,ERR

  MOV TH0,#0F8H ;2000US INTERRUPT

  MOV TL0,#30H ;

  CLR TIME_OUT_FLAG

  SETB TR0 ;TIMER0 START

  LCALL DELAY25US ;DELAY 25 μS

  MOV C,ID-0_DATA0 ;MOVE DATA IN C REGISTER

  LCALL DELAY175US

  JNB ID-0-DATA,ERR

  WIEGAND3: JNB EVEN_FLAG,WIEGAND_DATA ;EVEN IS 0 THEN OUTPUT IS DATA

  MOV EVEN_CHECK,C ;OUTPUT IS EVEN CHECK BIT

  CLR EVEN_FLAG ;CLR EVEN CHECK BIT

  LJMP WIEGAND1 ;RECEIVE DATA

  WIEGAND_DATA: RLC A ;

  DJNZ R3,WIEGAND1 ;BYTE IS NOT OVER

  ANL A,#00001111B ;BYTE OVER

  MOV @R0,A ;SAVE DATA TO INRAM

  INC R0 ;INCREASE INRAM ADDRESS

  MOV R3,#4 ;4 BITS PER BYTE

  DJNZ R2,WIEGAND1 ; READ DATA AGAIN

  ODD: JNB ID-0_DATA0,ODD_BIT ;WAIT ODD CHECK BIT

  JB ID-0_DATA1,ODD ;

  ODD_BIT: NOP ;

  LCALL DELAY25US ;DELAY 25 μS

  MOV C,ID-0_DATA0 ;ODD CHECK BIT

  MOV ODD_CHECK,C ;SAVE ODD CHECK BIT

  NOP

  LJMP OTHER_PROGRAM ;READ CARD OVER

  DELAY25US: MOV R4,#11 ;DELAY 25μS

  DELAY25US_A: DJNZ R4,DELAY25US_A

  NOP

  RET

  DELAY175US: MOV R4,#86 ;DELAY 175 μS

  DELAY175US_A: DJNZ R4,DELAY175US_A

  NOP

  RET

  TIMER0_IN: SETB TIME_OUT_FLAG

  CLR TR0

  RETI

  ERR: NOP ;ERR EXECEL

  . ;

  . ;

  . ;

  LJMP WIEGAND_START ;READ DATA AGAIN

  5.2 ASCⅡ模式

  在ASCⅡ模式下,ID-0/10/15引脚接法如下﹕

  PIN1﹕ 地 PIN2﹕Reset Bar PIN5 ﹕接地

  PIN3,4 ﹕Antenna

  PIN6: CMOS

  PIN7: TTL Data

  PIN8: Beeper/Led

  PIN9: +4.6V~+5.5V

  在ASCⅡ模式下,ID-0/10/15与MCS51单片机的连接如下图﹕

  ID-0/10/15 PIN7 80C51 UART

  80C51 I/O波形如下﹕

  在c模式下,ID-0/10/15输出数据为9600波特率,8位数据位,1位停止位,无奇偶校验位。

  此模式下输出数据格式如下﹕

  STX(02H) DATA CHSUM CR LF ETX(03H)

  The checksum is the result of the ‘exclusive or ‘ of the 5 Binary Data bytes

  (the 10 ASCⅡ data characters)

  eg: DATA=0000001164(Hex)

  CHECKSUM=75H

  STX(02 HEX)是数据启示位,DATA是10位卡片号码,CR (0D HEX)是计算器回车符,LF(0A HEX)是计算器换行符,ETX(03 HEX)是数据停止位。

  此模式下与MCS51单片机接口的程序如下﹕

  ID-0/10/15_DATA: EQU P1.7 ;P1.7 CONNECT TO DATA

  ADDR_1: EQU 30H ;6 BYTES DATA SAVE IN INRAM 30-35H

  MAIN: MOV SP,#60H ;

  MAIN_1: MOV R2,#14 ;TOTAL 14 BYTES

  MOV R0,#ADDR_1 ;

  LOOP_BYTE_READ:MOV R3,#8 ;8 BITS PER BYTES

  WAIT_DATA1: JB ID-0_DATA,WAIT_DATA1 ;DATA IS HIGH THEN WAIT

  WAIT_DATA2: JNB ID-0_DATA,WAIT_DATA2 ;

  LCALL DELAY_BIT_2 ;DELAY 45μS

  LOOP_BIT_READ: LCALL DELAY_BIT_1 ;DELAY 95 μS

  CLR EA ;INTERRUPT DISABLE

  MOV C,ID-0_DATA ;MOVE DATA IN C RESIGTER

  RRC A ;

  DJNZ R3,LOOP_BIT_READ ;8 BITS PER BYTE

  CPL A ;

  MOV @R0,A ;SAVE DATA IN NRAM

  INC R0 ;INCREADE INRAM ADDRESS

  LCALL DELAY_BIT_1 ;DELAY 95μS

  DJNZ R2,LOOP_BYTE_READ ;14 BYTE IS NOT OVER THEN AGAIN

  SETB EA ;INTERRUPT ENABLE

  LJMP OTHER_PROGRAM ;READ CARD END

  DELAY_BIT_1: MOV R4,#46 ;DELAY 95μS

  DELAY_BIT_1_A: DJNZ R4,DELAY_BIT_1_A

  NOP

  RET

  DELAY_BIT_2: MOV R4,#21 ;DELAY 45μS

  DELAY_BIT_2_A: DJNZ R4,DELAY_BIT_2_A

  NOP

  RET

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分