ID卡又称射频ID卡,工作频率在125KHz。现在市场采用的多是一种无源、唯一序列号的ID卡片,制造厂家在产品出厂前已将此序列号固化,不可更改。 目前主流的ID卡为EM4100系列以及与其兼容的卡。
每个ID卡内部存储有5个字节的序列号,其中一个字节存储VID号,剩下四个字节存储ID号,我们平时在ID卡或钥匙扣上看到的那串数字就是用这四个字节的ID号的十进制形式标识出来的。下图为EM4100系列卡的内部存储按位(bit)方式展示出来的结构图:
本例要实现的功能为Ubeeto开发板控制ID卡读卡模块不停的搜寻周围的ID卡,当有效的ID卡靠近之后,即可检测出其VID号和ID卡号,最后将VID和ID卡号以十进制的方式在电脑串口调试终端上输出。
名称 | 推荐购买链接(或者你可以自己制作) | 模块/芯片硬件资料下载 |
---|---|---|
125K ID卡读卡模块 | 125K ID卡读卡模块(包含天线线圈)购买链接 |
声明:这里推荐的购买链接仅供参考,您完全可以去其他商家或渠道购买,只要功能相似即可,如果需要更低的成本建议自己开发硬件模块或定制。
--配置USB以虚拟串口模式工作,波特率115200,这样print()函数的内容就会打印到电脑串口终端上面 LIB_UsbConfig("CDC") --设置ID卡读卡器模块占用TX0和RX0引脚 LIB_IdCardReaderConfig("UART0") --开始大循环 while(GC(1) == true) do --查询是否读到ID卡 id_found,vid,id = LIB_IdCardReaderGetContent() if id_found == 1 then --将读取到的vid和id号以十进制形式打印输出 print(string.format("VID:%03d ID:%010d\r\n", vid, id)) end end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在API文档中通过Ctrl+F查询。
在电脑端运行的调试助手上,我们可以看到如下打印输出信息:
这里前后用了三个ID卡进行打卡操作,三个ID卡的卡号如下图:
简单、快捷、高效、强大的物联网开发板
© 2022. All Rights Reserved. 粤ICP备2021058065号