本帖最后由 骑猪看夕阳 于 2016-10-19 17:36 编辑
这个帖子基本是一个知识普及贴,介绍一下刷卡器这个产品,会从产品类型、设计方案和参考例程几方面做简单的介绍。想了解的朋友可继续,大神请忽略。
刷卡器主要是使用在适合会员刷卡消费的场合,比如理发店、美食城、商场等等,也有用于授权、记名系统的,比如门禁系统、考勤系统等。按照卡的类型不同,刷卡器可以分为:接触式刷卡器和非接触式刷卡器,接触式刷卡器又分为磁条刷卡器和芯片卡刷卡器。非接触式刷卡器主要是指射频刷卡器,频率有125khz和13.56MHZ等等。
按照和电脑连接的接口类型分为:串口刷卡器和USB口刷卡器。因为现在大部分电脑已经取消了串口,所以现在的刷卡器基本都是USB刷卡器,根据USB类型的不同又分为:1、USB虚拟串口模式 2、模拟USB键盘模式 3、HID类设备模式,这三种模式有什么区**面会再说明一下。
设计方案:
刷卡器的设计一般都是一颗主控单片机(通常是8位单片机)和一颗负责读卡的芯片,有读磁条的也有读射频卡的。当然为了节约成本有的读磁条的直接使用阻容电路来实现,无需专用芯片。常用的单片机有STC单片机,常用的读卡芯片有FM1702、RC522等,如果是要做USB接口的刷卡器还要增加一颗USB接口的芯片,比如CH340和CH372等等。不过随着单片机技术的不断发展,现在都是直接使用带USB功能的单片机来把USB接口电路一起做了,做到整合性更好。
USB刷卡器的接口类型:
①USB HID类设备:此模式类似于鼠标键盘,电脑上无需安装驱动,只需要配合上位机软件就可以接受刷卡器识别到的刷卡信息。早期做HID类设备的USB接口芯片有MA101或CH9326等等。
②USB虚拟串口类设备:此模式下电脑需要安装驱动程序,USB刷卡器插到电脑上电脑识别为一个串口设备,优点是直接兼容之前的上位机软件,缺点是要安装芯片驱动,这种方式采用的USB芯片的典型代表是PL2303和CH340。
③USB虚拟键盘:此模式使用非常方便,电脑上不需要安装驱动,USB刷卡器插在电脑上直接识别为USB键盘,每刷一张卡,刷卡信息会直接输入到鼠标的光标处,类似键盘输入功能,已经越来越多的刷卡器使用这种模式。这种模式芯片的典型代表是CH9328芯片。
刷卡器设计程序:
以下程序基于USB单片机CH558开发,刷卡芯片采用恩智浦的RC522芯片,是非接触式刷卡器。CH558是一颗主频56MHZ的8位增强型USB单片机,4K RAM,32K FLASH,双串口,支持SPI和8路11位ADC,最重要的是带USB DEVICE接口,比较适合刷卡器产品的开发。
软件的设计流程如下:
实现PC如何通过USB接口向IC卡写入和读取数据,程序采用基于Keil C51的C语言编写,可分成多个模块使用模块化子程序设计。主程序流程如下:
(1)初始化。系统启动时对MCU和编解码芯片以及各种接口的初始化,设置USB口工作模式,然后进入系统等待状态。这里需要注意的是读写卡芯片的初始化,复位后,一般先关闭天线再打开,然后设置模式。
(2)寻卡,普通非接触式读卡器寻卡距离在10cm以内,找到卡返回2字节卡类型;
(3)防冲突,返回4个字节卡唯一序列号加4字节序列号异或校验值;
(4)选卡,返回1字节卡容量码;
(5)验证秘钥;
(6)前四步都过了以后才能按块号对IC卡进行读写操作。
(7)通过USB口把数据传给上位机,一般模拟成HID设备,免驱。
根据需求不同USB支持三种工作模式:1、USB虚拟串口 2、HID免驱类 3、键盘值上传模式。
主程序代码见附件。
USB刷卡器开发代码.zip
(10.27 KB)
|