目录

一、前言

二、准备工作

1.搭建简易硬件环境

三、搭建软件环境

1.安装LabVIEW,安装NI VISA驱动

2.安装CH340驱动

3.安装串口调试助手,VSPD虚拟串口

4.安装购买模块附赠的测试软件或上位机

四、M1卡

1.扇区和块

2.操作指令组成

3.操作步骤

五、校验和

1.校验原理

2.子VI示例

六、对块进行读操作

七、对块进行写操作

八、用户开卡信息存储

九、钱包初始化

十、充值

十一、消费

十二、余额查询

十三、串口配置

1.配置

2.写入

3.读取

十四、操作面板

1.超级管理员权限

2.管理员权限

3.用户权限

十五、数据库拓展

1.SQL Server 2019

2.ODBC

3.子VI

资料附录

视频测试




一、前言

使用LabVIEW开发上位机与射频读写模块通信,实现读写IC卡,操作区块数据内容实现充值消费等功能。

二、准备工作

1.搭建简易硬件环境

  1. RFID读写设备
  2. TTL转USB模块
  3. 准备一张IC卡
  4. 至少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.操作步骤

  1. 上位机向522发出十六进制操作指令
  2. 验证秘钥KeyA或秘钥KeyB
  3. 验证成功进行读写并返回成功指令,验证失败则无操作并返回失败指令

五、校验和

上位机和下位机串口通信中互相收发的指令数据的最后一字节为该指令的校验和,检验该指令是否正确。

1.校验原理

以522为例,收发的指令长度为N字节,将前N-1位字节数据进行异或运算,对异或结果按位取非,得到的即为指令的第N位数据,称校验位。

2.子VI示例

01 08 A3 20 05 00 00 70 

这是522读取第5块内容的指令。

  1. 返回校验和是截取指令最后一位
  2. 计算校验和是用检验原理对缺校验位的指令进行计算得到需要的校验位
  3. 验证校验和是对返回的完整指令进行校验

六、对块进行读操作

七、对块进行写操作

八、用户开卡信息存储

参考“十五、数据库拓展”自行开发。

九、钱包初始化

生成将所选块初始化为0元的指令。

十、充值

生成对所选块充值的指令。

十一、消费

生成对所选块消费的指令。

十二、余额查询

生成对所选块查询余额的指令。

十三、串口配置

上述步骤中产生的相关指令要发送给522以及接收522返回的指令就要用到串口相关功能,在这里简单举例。

1.配置

  1. 停用终止符:默认是开启,在这里设置为关闭,因为串口中传输的数据为十六进制,若数据包内有特殊值,串口会误操作,无法收发完整的数据
  2. VISA资源名称:创建输入控件,作为串口选择
  3. 其他设置须参考522的设置,一般可默认

2.写入

  1. VISA资源名称:将配置端的输出中输出连接至此
  2. 写入缓冲区:将指令输入此处

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自动售卖系统测试

基于LabVIEW与RFID自动售卖系统(完)相关推荐

  1. 基于LabVIEW开发的自动测试系统ATS

    主程序 用户管理模块 自动测试模块 数据管理模块 二次开发模块

  2. 基于LabVIEW开发的自动测试系统

    1.登录界面 2.测试类型选择 3.自动测试界面 4.测试完成界面 5.测试中界面 6.程序工程图 7,程序框图

  3. 基于图像处理的水果自助售卖系统(自助水果售卖机)

    目录 第一章 概述 1.1 发展概要 1.2 国内外研究现状 1.3 研究目的和意义 1.4 方案介绍 第二章 软件设计方案 2.1 整体程序框架 2.2 opencv识别水果算法 2.2.1算法整体 ...

  4. 自动售卖系统开发系列——人脸识别自动售卖机三代BrotherSharp

    大纲: 售卖机三代BrotherSharp的简介 售卖机三代BrotherSharp的方案介绍    #系统整体组成    #软件平台    #硬件平台 售卖机三代BrotherSharp的实现过程 ...

  5. 自动售卖系统开发系列——人脸识别自动售卖机二代ChingTom

    大纲: 售卖机二代ChingTom的简介 售卖机二代ChingTom的方案介绍    #系统整体组成    #软件平台    #硬件平台 售卖机二代ChingTom的实现过程    #业务逻辑介绍   ...

  6. (二)基于区块链的自动抽奖系统从0到1实现

    文章目录 前言 开始动手独立部署Truora 1.适合以下场景: 2.部署的服务包括: 3.使用的系统介绍 4.下载部署包(推荐使用) 5.进入部署脚本(deploy_single.sh)所在目录,执 ...

  7. 【毕业设计】基于单片机的宠物自动喂食系统 - 物联网 嵌入式 单片机 宠物喂食系统 宠物投食系统

    文章目录 0 简介 1 系统说明 2 背景意义 3 系统设计 3.1 总体方案 3.2 硬件设计 3.2.1 STC89C52 3.2.2 CLS150TD舵机 3.2.3 压力传感器 3.2.4 H ...

  8. labview虚拟心电监测系统_基于LabVIEW实现的心电监护系统

    基于 LabVIEW 实现的心电监护系统 王步青 ; 王卫东 ; 李开元 [摘 要] 心电监护是监护系统中的重要组成部分 , 可获得监护对象心电信号的具体 信息 , 对研究不同状态下的心脏状态具有重要 ...

  9. (四)基于区块链的自动抽奖系统从0到1实现

    文章目录 前言 一.核心功能 1.页面展示 1.抽奖接口 3.定时触发智能合约抽奖,并自动公布结果 4.项目整体代码地址 总结 前言 上一章节我们已经编写了核心的预言机合约,并且部署测试成功,现在我们 ...

最新文章

  1. mysql每日备份_Linux下如何实现Mysql数据库每天自动备份定时备份
  2. 是否能领先e步 浅析SSD中的eTLC和eMLC颗粒
  3. Discuz常见大问题-如何DIY一个独立页面
  4. The Text Splitting (将字符串分成若干份,每份长度为p或q)
  5. [译] 2019 年的 9 大设计趋势
  6. ffmpeg 快速定位帧-资料整理
  7. 《C++ Primer Plus(第六版)》(17)(第十章 对象和类 编程题答案)
  8. [UWP]涨姿势UWP源码——Unit Test
  9. 安全市场五巨头将面临新兴厂商的挑战
  10. c语言用整数 寻址,132-寻址运算符-C语言教程2020年 - 视频教程 - 北盟网校 - 专注原创教学第一站...
  11. 【NOIP2002】【Luogu1037】产生数(高精乘低精,DFS暴力搜索)
  12. Qt Plain C++ Project error: undefined reference to `pthread_create'
  13. chaos-monkey-spring-boot小试牛刀
  14. Java八大算法:归并排序
  15. 【JSP】测试Ajax
  16. 现代控制理论基础总结
  17. JS添加/修改CSS样式
  18. HBase2.x完全分布式集群安装
  19. SolidWorks快速安装螺栓
  20. 渗透工具之CS4.0使用说明书

热门文章

  1. 出道的第八年,依然AI着......
  2. 集群对讲 文字 文件_英国小学生是如何学习中国高考词汇的?第一讲(文末留言送礼)...
  3. Win10对移动硬盘进行加密的要点
  4. LVGL学习笔记(二):从0到1移植LVGL8.1到STM32平台上(完结篇)
  5. 工控电脑主板与普通主板的区别有哪些?
  6. c4d r23快捷键偏好留档
  7. 每日10行代码44:用python操作手机点击淘金币
  8. 君子性非异也,善假于物也
  9. CNC加工中心的G代码详细解析
  10. 【转发】Oracle中to_char和to_date的用法