目录
一、前言
使用LabVIEW开发上位机与射频读写模块通信,实现读写IC卡,操作区块数据内容实现充值消费等功能。
二、准备工作
1.搭建简易硬件环境
- RFID读写设备
- TTL转USB模块
- 准备一张IC卡
- 至少4根母口杜邦线
详细内容请参考主页第一篇博客
三、搭建软件环境
1.安装LabVIEW,安装NI VISA驱动
镜像文件在链接中已分享,若下载速度过慢,可前往NI官网下载,无法下载时请切换浏览器,推荐Chrome浏览器。下载完成后将iso格式文件解压缩,安装。
2.安装CH340驱动
链接中已分享,下载安装即可,安装失败时拔出设备重新安装。
3.安装串口调试助手,VSPD虚拟串口
链接中已分享,下载安装,相关使用请自行搜索VSPD使用教程。(可选择不装,主要是用于测试串口。)
4.安装购买模块附赠的测试软件或上位机
通常商家售卖会附赠相关资料包。
四、M1卡
1.扇区和块
M1卡内存储空间有16个扇区,第0区通常为厂商写入,不可更改,第1~15扇区可用来进行操作。每个扇区内有四个数据块,第0~2块各存放16字节十六进制数据,可以自由进行读写操作。第3块存储KeyA、秘钥控制位、KeyB,尽量不要对其强行写操作。
2.操作指令组成
522模块((一)中提及的RC 522-F读写模块,以下简称522)所用指令由命令类型,包长度,命令,地址,参数数据,校验和组成。
3.操作步骤
- 上位机向522发出十六进制操作指令
- 验证秘钥KeyA或秘钥KeyB
- 验证成功进行读写并返回成功指令,验证失败则无操作并返回失败指令
五、校验和
上位机和下位机串口通信中互相收发的指令数据的最后一字节为该指令的校验和,检验该指令是否正确。
1.校验原理
以522为例,收发的指令长度为N字节,将前N-1位字节数据进行异或运算,对异或结果按位取非,得到的即为指令的第N位数据,称校验位。
2.子VI示例
01 08 A3 20 05 00 00 70
这是522读取第5块内容的指令。
- 返回校验和是截取指令最后一位
- 计算校验和是用检验原理对缺校验位的指令进行计算得到需要的校验位
- 验证校验和是对返回的完整指令进行校验
六、对块进行读操作
七、对块进行写操作
八、用户开卡信息存储
参考“十五、数据库拓展”自行开发。
九、钱包初始化
生成将所选块初始化为0元的指令。
十、充值
生成对所选块充值的指令。
十一、消费
生成对所选块消费的指令。
十二、余额查询
生成对所选块查询余额的指令。
十三、串口配置
上述步骤中产生的相关指令要发送给522以及接收522返回的指令就要用到串口相关功能,在这里简单举例。
1.配置
- 停用终止符:默认是开启,在这里设置为关闭,因为串口中传输的数据为十六进制,若数据包内有特殊值,串口会误操作,无法收发完整的数据
- VISA资源名称:创建输入控件,作为串口选择
- 其他设置须参考522的设置,一般可默认
2.写入
- VISA资源名称:将配置端的输出中输出连接至此
- 写入缓冲区:将指令输入此处
3.读取
搭配使用,属性节点功能是检测串口的数据字节数,判断有数据后将字节位数传递给读取,在读取缓冲区中可以浏览串口收回的数据。
十四、操作面板
1.超级管理员权限
对M1卡内非0扇区进行任意读写、初始化、充值、消费。
2.管理员权限
初始化,充值。
3.用户权限
仅消费。
十五、数据库拓展
主机版售卖系统存储信息主要靠IC卡,目前市面上有各式各样的IC软件,低至20元就可将M1卡密钥破解从而修改卡内数据,所以引入数据库技术,将每张卡的信息保存在数据库中。
优点
- 一是方便大批量信息管理
- 二可对存储在卡内的余额信息与库进行比对,防止盗刷
下面对此基本用法简单介绍,具体功能请自行研究。
1.SQL Server 2019
安装后,设置root密码请牢记。该软件安装及使用教程请参考其他讲解视频资料。
2.ODBC
搜索框搜ODBC
搜索不到服务器时请打开服务,检查是否启用SQLBrowser
如果新建用户无法登录,请前往SQL中,使用Windows登录,向新用户授权。
“测试成功”即连接成功,可使用LabVIEW连接数据库操作了。
3.子VI
主要使用DataBase函数,对数据库进行操作,这里示例为读取当前数据库内信息。
其他功能自行研究。
资料附录
链接:https://pan.baidu.com/s/1OACPm2ZeNxT2lDNjmul0nQ
提取码:SUST
有效期至2022/4/8
主要指令封装
demo
视频测试
上述方法是基于子VI路径调用,视频中的程序基于项目管理生成,略有不同,仅供参考。
基于LabVIEW与RFID自动售卖系统测试