基于树莓派--智能读卡(一)

2,625 阅读2分钟

技术总览

RFID识别、树莓派、智能IC卡、SSH、Linux、Java

实现功能

树莓派(Raspberry Pi)挂载RFID/NFC读卡器模块,智能读卡语音播报。

简单原理

树莓派在底层与读卡器模块交互,简化硬件方面的要求。充分利用树莓派自带的Linux操作系统和GPIO引脚,在读卡器上安装简单的驱动程序,能够识别智能IC卡的UID信息。

材料清单

Raspberry pi 3b+

在经过多个树莓派版本的选择尝试后,选购了最新版本的树莓派3b+(低功耗的老版本可能更为适合,后面会有详细叙述)。

PN532 读卡器模块

Itead工作室的PN532 NFC/RFID读卡器模块在淘宝中有卖,价格容易接受。Itead PN532 NFC模块,顾名思义,采用的是PN532芯片,在13.56MHz下可以进行通信。自带天线,不需要外接天线线圈。它支持SPI、I2C和串口(UART)协议。最理想的就是该模块为Raspberry Pi提供的NFC一些必要的库,也就是树莓派开发NFC读卡器完全行得通,提供了便捷。在官网中有相关详细的该NFC模块的介绍。

IC卡

符合ISO/IEC7816-4协议

杜邦线

树莓派连接PN532,我选择的SPI接口协议需要6根公对公线,I2C和UART需要4条就足够。

硬件连接

开始硬件连接时,确认好选用的通信协议。 不少商家出售安装好驱动程序的智能卡读卡器,可以通过个人电脑等设备与智能卡读卡器通信。 考虑到便携性与节能性,直接在底层与读卡器进行接口交互(树莓派上的GPIO引脚直接与读卡器芯片通信),岂不是更好? 市面上一些主流NFC读卡器芯片是ACR122U,如果为了省事(同时也会花银子),可以选择比较常见的ACR122U读卡器,通过USB接入计算机。配套的使用说明和软件很丰富,而且很多IC卡商家对其支持也比较好。出于省钱和练手的目的,我选择了ITEAD工作室开发的ITEAD PN532 模块。 PN532支持的的协议有:SPI 、I2C、串口(UART)。 接下来在树莓派命令行中输入raspi-config命令行工具开启以上的通信总线,我用的是SPI。 最后用跳线进行连接,ITAED电路板的开关设置与SPI连接示意图如下:

PN532 树莓派
5V 引脚1 引脚2
GND 引脚2 引脚6
NSS/SCL/RX 引脚5 引脚24
MO/SDA/TX 引脚6 引脚19
M 引脚7 引脚21
SCK 引脚8 引脚23