关于st25系列NFC标签简单介绍及st25TV系列用于门禁读取时的注意事项总结


文章目录

  • 关于st25系列NFC标签简单介绍及st25TV系列用于门禁读取时的注意事项总结
  • 1. 前言
  • 2. ST25 NFC/RFID系列标签介绍
  • 3. ST25TV系列选择
  • 4. ST25TV02K开发相关参考文档
  • 5. ST25TV02K相关工具
  • 6. stm32实现读取st25TV02K NFC
    • 6.1 方案选型
    • 6.2 基础代码框架
    • 6.3 结合数据手册实现新接口
    • 6.4 读写密码需要实现的接口注意事项
  • 7. 最后

1. 前言

由于之前使用的M1卡作为门禁卡时容易被复制的情况,目前选用了st25TV系列NFC来作为门禁卡,并启用其带有的数据区加密功能,读取数据区数据时必须先发送密钥,否则只能读取卡号和0区,因此只要确保加密密钥的不易破解性,那么门禁卡也就不容易被复制了,针对该系列的读写程序已经开发完成,这里总结一下相关坑点,避免后续走弯路。

2. ST25 NFC/RFID系列标签介绍

这个可以通过st官网查看,有中文,目前主要包括:ST25TA、ST25TB、ST25TN、ST25TV几个系列的NFC标签,使用的场景和读写协议存在差异:https://www.st.com/zh/nfc/st25-nfc-rfid-tags.html

ST25TA:该系列产品支持NFC应用如标签、NFC令牌、NFC智能标贴、NFC名片(虚拟卡)。它可用于包括消费电子、计算机外设、游戏设备、家用电器、工业自动化和医疗产品在内的各种应用。(https://www.st.com/zh/nfc/st25ta-series-nfc-tags.html)

ST25TB:ST25TB系列RFID标签兼容ISO14443标准,可以支持公共交通和活动票务等应用。 它们提供了先进的RF性能,包括计数超过40亿次的计数器。(https://www.st.com/zh/nfc/st25tb-series-nfc-tags.html)

ST25TN:ST25TN系列可与Android/iOS NFC手机和NFC Forum兼容读写器通信,为各种消费者参与、产品信息和智能标签场景提供非常广泛的可能性。这种高性价比ST25TN系列面向多种应用,如游戏、服饰鞋类、消费性包装品、运动产业、酒水,并在成本与性能之间取得了良好的平衡。(https://www.st.com/zh/nfc/st25tn-series-nfc-tags.html)

ST25TV:ST25TV Type 5 NFC标签IC是首个结合ISO/IEC 15693标准长距离通信的便利性和篡改检测能力的解决方案。与其他NFC类型标签相比,ST25TV标签更容易被读取,从而改进了产品设计的用户体验。产品设计者和制造商现在可以使用更小的NFC标签和贴纸,这些标签和贴纸更安全且更容易安装,以增强与客户的互动。这种独特的解决方案可以在整个产品生命周期(从制造点到销售点的消费者互动,以及后续阶段)中使用。它赋予了日常消费品数字化生命。ST25TV标签可用于基于云管理的品牌保护,比如葡萄酒和白酒、药品和奢侈品等不同应用领域的防伪/篡改检测。它们还可以与远程HF RFID读写器一起用于产品识别以及物流可追溯性应用。(https://www.st.com/zh/nfc/st25tv-series-nfc-tags.html)

3. ST25TV系列选择

主要根据需要的存储空间进行选择,比如你需要1k左右的空间来存储门禁数据扩展也不会太多,则可以使用ST25TV02K,其工作频率为13.56 MHz的2-Kbit EEPROM标签IC,具有64位UID和密码,基于ISO/IEC 15693和ISO/IEC 18000-3模式1,即2k字节的数据区空间,8字节的UID,可以基于ISO/IEC 15693协议进行读写。(选择产品可以参考:https://www.st.com/zh/nfc/st25tv-series-nfc-tags.html#products)

4. ST25TV02K开发相关参考文档

直接在文档页面下载数据手册和一些文档:

https://www.st.com/zh/nfc/st25tv02k.html#documentation

5. ST25TV02K相关工具

https://www.st.com/zh/nfc/st25tv02k.html#tools-software

有相关的测试软件可供使用,包括Windows PC、ios、Android等,对应的SDK是Java的。

6. stm32实现读取st25TV02K NFC

6.1 方案选型

还是老问题了,之前我就说过,门禁这块其实可以Android直接读卡,但是原有方案使用stm32单片机来读取,然后再通过串口发送给Android端,这个历史缘由我也找到了,因为这部分的卡读取方案是由一个没有Android的stm32做的刷卡touch来的,为了快速在Android门禁机上实现,直接把这个touch的stm32通过Android上的串口连接起来了,Android端就不用再开发这块了,直接定义协议和stm32交互就可以了(实际上Android端开发的话相关的sdk之类的更多更方便),真是个悲伤的故事。

6.2 基础代码框架

stm32读取该NFC我们使用的15693协议,上面看到也可以使用18000-3,这块可以直接在网上买相关的开发套件,一般会给到各种协议的示例程序。

如果没有的话可以参考st这里的固件源代码:https://www.st.com/content/st_com/zh/products/embedded-software/st25-nfc-rfid-software/stsw-st25r002.html

是通过st的论坛找到的,但是你可能需要根据自己的情况进行调试:https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=618387&extra=

根据自己的协议实现即可,15693这里还是能用的,虽然没有实现所有的接口,但是基础的读写之类的都是有的,至少不用自己去整时序直接操作寄存器了:

6.3 结合数据手册实现新接口

这里以st25v02k为例进行说明,如何借助上面st上找到的固件源码实现其它的适用于本产品的接口。

下载datasheet这里不再说了,一般是英文的,但是也有可能是中文的,比如st25v02k这个就是中文的,虽然仍然晦涩:

你需要先看一下对应包括哪些接口(我这里所谓的接口就是指访问设备时的协议实现接口):

从这里可以看到Inventory、Select、Read Single Block、Write Single Block、Read Multiple Blocks、Get System information这些指令接口在搜到的固件源码中已经有了,我们接下来实现新的接口就可以了,比如:Write Password、Present Password、Read Configuration、Write Configuration、Set Untraceable mode、Get Random Number。

但是有个问题,我们该实现哪些接口,这些接口如何组合使用,目前没有好的方法,除非你买一个官方的开发板,里面有现成的示例demo,否则你可能就得试了。

6.4 读写密码需要实现的接口注意事项

接下来就是我们要实现的读写密码这块了,固件代码中没有这块,我们要实现对st25v02K NFC的加密该如何做,读数据前解密又如何做?根据数据手册,看起来write password是比较像写密码的,反正中间花了很多时间啃datasheet和尝试,最终总算理清了整个处理过程,这里总结一下。

写密码:初始化->选卡->获取随机数->发送密钥->写密码->写配置。

读数据:初始化->选卡->获取随机数->发送密码->读数据。

注意点:

  • 1、present password相当于发送密码进行校验,出厂密码为全0;
  • 2、写完密码后需要调用写配置的接口修改卡状态为加密状态,卡不会自动根据密码是不是全0修改自身状态为加密状态,需要自己修改配置,否则密码写进去了,下次判断卡还是未加密状态;
  • 3、每次读数据前都需要发送密码进行校验,校验通过才能调用读取多块数据的接口读到数据,否则读不到数据;
  • 4、判断卡是否已加密可以通过读配置这个接口来判断;

7. 最后

目前主要用到的NFC卡大部分都是符合14443a、14443b、15693协议的,包括公交卡、身份证、门禁卡、手环手表手机的NFC等等,所以找一个开发板研究一下这几个协议对于NFC这块的开发会比较有帮助;此外,封装库和sdk以及提供demo和帮助文档对于芯片推广是非常有必要的,否则直接去操作芯片恐怕大家集成起来会比较困难,持续性的提供维护和帮助服务也是非常重要的,比如Android开发和stm32开发的官方帮助文档就比较全面,很多时候在官网中就可以找到很好的解决方案。

关于st25系列NFC标签简单介绍及st25TV系列用于门禁读取时的注意事项总结相关推荐

  1. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

  2. 苹果7pnfc功能门禁卡_苹果下个月终于要开放NFC权限了!iphone一秒变身门禁卡

    原标题:苹果下个月终于要开放NFC权限了!iphone一秒变身门禁卡 当我们开始习惯用iPhone的NFC功能进行移动支付,苹果公司要进一步开放NFC芯片功能,它将能用来充当钥匙,可以打开房门车门. ...

  3. id门禁卡复制到手机_手机NFC有哪些功能?怎么设置手机门禁卡?别浪费了手机的NFC功能...

    NFC功能早前都运用一些手机旗舰机中,随着手机技术的发展,现在有许多的手机都有NFC的功能,那手机中的NFC只是个摆设吗?NFC不仅仅有不依靠数据网络.安全稳定的特点,其实还有许多你不知道的功能!比如 ...

  4. IPFS技术系列之IPFS简单介绍

    前言   随着社会网络的不断发展,当前时代人们对网络资源的渴求越来越大,从文本.图片乃至视频文件.然而在人们的日常使用中,传统的HTTP协议的诟病一一浮现出来,于此同时其他的传输协议也不断兴起,IPF ...

  5. 【Qt】控件——QPlainTextEdit使用简单介绍:常用方法及信号、逐行读取编辑框的内容、使用自带的快捷菜单、作为日志显示窗口

    Qt控件-QPlainTextEdit使用 参考链接: https://blog.csdn.net/seniorwizard/article/details/109726147; https://bl ...

  6. pn532未发现nfc设备_NFC手机手环脱机模拟加密门禁卡,你get了吗?

    目标:将门禁卡.考勤卡.会员卡.停车卡.电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1. 前言   目前,IC卡已被广泛应用于身份识别.金融消费.安全认证 ...

  7. ngrok工具的介绍与使用,以及使用此工具时注意的事项

    1.前几天,有个同学分享了一个工具,叫ngrok,ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道.详细介绍可以看百度百科的介绍:ngrok介绍 ,下面我来介绍 ...

  8. Android NFC 标签读写Demo与历史漏洞概述

    文章目录 前言 NFC基础 1.1 RFID区别 1.2 工作模式 1.3 日常应用 NFC标签 2.1 标签应用 2.2 应用实践 2.3 标签预览 2.4 前台调度 NFC开发 3.1 NDEF数 ...

  9. ShardingSphere(一)ShardingSphere简单介绍及相关概念

    一.ShardingSphere简单介绍 出现背景:当数据库数据巨大时,数据库读写性能将变得很低,为了解决此问题,设计时,可以将数据进行分别存储于不同数据库.不同表中,以降低单表量数量大问题:Shar ...

最新文章

  1. UC伯克利最新深度强化学习课程上线,视频已上传到B站
  2. 架构师之路 — 分布式系统 — 分布式事务难题
  3. linux automake-1.16 编译错误 Try `--no-discard-stderr' if option outputs to stderr
  4. ExtJs之gridPanel的属性表格,编辑表格,表格分页,分组等技巧
  5. 读书笔记_代码大全2第七章_高质量的子程序
  6. 独占一行 html_HTML基础-语义化标签
  7. 【Ids4实战】最全的 v4 版本升级指南
  8. 什么是CAS机制?(进阶篇)
  9. 使用保险丝结构管理MQ和ESB的大型部署,第I部分
  10. 刘志明 | 知识图谱及金融相关
  11. GUI编程tkinter模块常用参数(python3)
  12. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  13. java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案
  14. Audiority Big Goat Mac(模拟建模复古失真插件)
  15. 【WPF】Slider 任意位置拖动
  16. blastn、blastp、blastx、tblastn和tblastx的区别与用法
  17. Windows自带工具提取颜色得到十六进制颜色码
  18. 新手免费搭建个人网站
  19. 百度地图API去掉百度logo信息等
  20. 消灭害虫V1.0 | EliminatePests V1.0

热门文章

  1. Red Hat 认证工程师(RHCE)
  2. win7计算机里不显示摄像头,win7没有摄像头图标怎么办|win7显示摄像头图标的方法...
  3. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal
  4. [转载]java图片缩放处理
  5. 双十一活动三个阶段分别需要做什么,双十一怎样引流,双十一怎样开直通车
  6. 后羿采集器怎么导出数据_数据采集教程_智能模式_基本操作流程_后羿采集器
  7. Asus EeePC X101上网本为MeeGo带来新的生机
  8. Office 2007兼容工具包
  9. Ubuntu20.04桌面系统快速上手教程
  10. C语言简单的键盘玩扫雷小游戏(完结)