搜索
bottom↓
回复: 13

使用RC522读卡,能不能在多张卡叠放的情况,依次读出每张卡

[复制链接]

出0入90汤圆

发表于 2015-6-25 11:10:48 | 显示全部楼层 |阅读模式
现在要做一个东西,需要使用RC522来进行读卡写卡操作,但是读卡有的时候是会一次放2-3张卡过去,要求,1秒钟内把几张卡的信息都读出来。
我查过RC522有个防冲突读法。好像是可以做到。
不过就是不知道是不是需要什么特殊的算法,还是通用程序就能做得到。又或者RC522不能读这种多张卡叠放的情况。
希望有玩过的朋友给介绍下,多谢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2015-6-25 11:55:06 | 显示全部楼层
按标准做的防冲突可以做到读多张卡。但是,天线是否匹配,影响防冲突的效果。
实际上,防冲突不能保证100%的成功率。

出0入90汤圆

 楼主| 发表于 2015-6-25 13:14:25 | 显示全部楼层
KongQuan 发表于 2015-6-25 11:55
按标准做的防冲突可以做到读多张卡。但是,天线是否匹配,影响防冲突的效果。
实际上,防冲突不能保证100% ...

多谢回复。防冲突能读到就行。天线匹配这个倒不是特别懂。买来的那种专门的线圈不就可以了吗?最多影响读卡距离。
至于会有出错。可不可以通过多读几次,这种方式进行呢?

出0入0汤圆

发表于 2015-6-25 14:26:44 | 显示全部楼层
或许可以通过这样的方式实现:每读完一张卡,发指令让该卡休眠,再读下一张卡,具体能不能实现,没有试验过。

出0入90汤圆

 楼主| 发表于 2015-6-25 16:59:18 | 显示全部楼层
ti2086 发表于 2015-6-25 14:26
或许可以通过这样的方式实现:每读完一张卡,发指令让该卡休眠,再读下一张卡,具体能不能实现,没有试验过 ...

多谢回复,还是希望看看有没有做过类似的朋友给个明确点的答案。

出0入45汤圆

发表于 2015-6-25 17:13:17 | 显示全部楼层
honami520 发表于 2015-6-25 16:59
多谢回复,还是希望看看有没有做过类似的朋友给个明确点的答案。

4楼的方法是对的

出0入0汤圆

发表于 2015-9-5 23:17:27 | 显示全部楼层
今天特意试了下,多张卡叠放,直接去刷,结果一张也读不到。
一张一张的往读卡器上放,读完发送挂起指令,则可以读多张,但超过3张后明显不稳定,经常出错。

出0入0汤圆

发表于 2015-9-6 09:15:27 | 显示全部楼层
处理简单,读一张记录下来,再读另一张再记录,读到的不再重复读,这个应不难
我们做门禁的,要拿开再读下一张,判别方式改一下就行

出0入0汤圆

发表于 2015-9-6 09:20:32 | 显示全部楼层
叠读,防冲撞怎么过得了

出0入0汤圆

发表于 2015-6-25 11:10:49 | 显示全部楼层
本帖最后由 kelian 于 2015-9-6 10:17 编辑

门禁我都试过,两张叠记到一张后再反转读下一张
//*****************************************************
//函数名:WaitCard
//功能:等待卡的撤走。
//出口参数:无。
//入口参数:无。
//*****************************************************
void WaitCard(void)
{
     while(RC530(READ,KEYA,1,Buff,0)==OK);
     DelayMs(250);
     DelayMs(250);
}
读卡S50或S70
这个也是一个方式:读或写的时候加入selective字节,只有这个字节匹配的卡才会回应。这样就不会相互冲突。但要预先知道selective字节,且互不相同。然后遍历。

出0入0汤圆

发表于 2015-9-6 09:58:36 来自手机 | 显示全部楼层
这个应该和卡有关系。有些卡支持selective指令。读或写的时候加入selective字节,只有这个字节匹配的卡才会回应。这样就不会相互冲突。但要预先知道selective字节,且互不相同。然后遍历。

出0入90汤圆

 楼主| 发表于 2015-9-6 11:48:25 | 显示全部楼层
多谢楼上的回复。这个事情已经搞定了。就是麻烦了点。
因为我是需要验证2张卡。一次放2张卡上去。那么,我的做法很傻。
收先读取卡号,判断同时有2张卡出现。而且卡号不同。
然后,对2个卡号对应的block内容进行读取。

出0入0汤圆

发表于 2015-9-8 08:51:48 | 显示全部楼层
学习中。。。。。

出0入0汤圆

发表于 2015-11-14 17:12:59 | 显示全部楼层
学习了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 21:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表