打印
[牛人杂谈]

新唐使用笔记 - M051 使用 RFID 感应模块

[复制链接]
2345|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
slotg|  楼主 | 2015-6-29 01:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


无线射频辨识 (Radio Frequency IDentification,缩写:RFID) 是一种无线通讯技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。

RFID 使用的范围很广,票卡、门禁卡、会员卡,eTAG、宠物身上的标签...等,使用的射频频率也依需求的不同有多种选择,一般常用的卡大都是选择使用 13.56MHz 的 MIFARE 卡,而读写卡片的控制芯片大都是使用 NXP 的 RC522,因此市场上有很多厂家生产了这类的感应模块,而这些感应模块大致分成了 2 类,一类是板子上没有 MCU,主板需透过 SPI/I2C/UART 的连接方式去控制模块上的 RC522 读写感应卡,使用这种模块的优点是除非芯片停产否则不会有买不到的风险,而缺点就是主程序必须要自己去存取 RC522 的内部寄存器,这多少增加了程序的复杂性。



另一类是板子上有 MCU,厂家会规划出特定的通讯协议,使用者只需要透过这些通讯命令就可以读写感应卡,本次调试就是使用这种模块。使用这种模块的优点是模块上的 MCU 已经处理了 RC522 的控制,因此主程序只要直接发送命令就可以了,甚至于有些模块上已经具备了 RS485/RS232 的转换芯片,可以直接应用在长距离的需求。不过缺点就是这类模块的通讯协议并没有标准,每家厂家都不一样,因此也就受制于该生产厂家了。



我们选择所使用的模块可设定成"主动模式"或是"被动模式",所谓主动模式就是当感应到 RFID 卡时模块会主动将卡内的 ID 或是内部扇区数据经由串口主动送出,而被动模式就是主程序要自己发送命令给模块读取数据。

本次调试中我们将模块设定在主动模式,当有 RFID 卡感应时将卡上的 32 位 ID 显示在 N5110 液晶屏上面。 while 回圈先呼叫读取 RFID 卡的函数 ReadCardID(),然后将读取到的 ID 存入记录的 5 组数组之中,最后呼叫显示函数 Ds_IDBUF() 显示数组内容。

    while(1)
    {
        ReadCardID(&buf1[0]);   //  Read CARD ID
   
        for(i=4;i>0;i--)
        {
            for(j=0;j<5;j++)
            {
                IdBuf[i][j] = IdBuf[i-1][j];
            }
        }
   
        for(i=0;i<4;i++)
        {
            IdBuf[0][i+1] = buf1[i];
        }
   
        IdBuf[0][0] = 1;

        Ds_IDBuf(IdBuf);        //  Display ID buffer
    }

感应第 1 张卡



感应第 2 张卡



显示前 5 笔数据



原本对于数据的显示是使用大写英文字体 (A-F),在调试的过程中发现这种小尺寸的液晶屏上 8 与 B 经常会看错,因此后面也就修改成使用小写英文字体 (a-f)。


模块资料:
M3650B-HA资料(V3.0).rar (2.35 MB)

工程文件,使用 KEIL 4.72 与 M051_Series_BSP_CMSIS_Rev3.00.002 库
D008.rar (1.26 MB)



新唐使用笔记 - M051 的 LCD12864 显示程式
https://bbs.21ic.com/icview-894166-1-1.html

新唐使用笔记 - 使用牛桥调试 MAX7219 模组
https://bbs.21ic.com/icview-904322-1-1.html

新唐使用笔记 - 使用 M051 设计一个计时器
https://bbs.21ic.com/icview-910044-1-1.html

新唐使用笔记 - M051 小游戏 (数字防御)
https://bbs.21ic.com/icview-917284-1-1.html

新唐使用笔记 - M051 的 N5110 液晶屏驱动
https://bbs.21ic.com/icview-945442-1-1.html


沙发
gaoyang9992006| | 2015-6-29 08:52 | 只看该作者
代码写的很规范啊,这个液晶屏多少钱买的,什么通信接口?

使用特权

评论回复
板凳
gaoyang9992006| | 2015-6-29 08:53 | 只看该作者
好像是诺基亚那个手机屏幕。。是吧??

使用特权

评论回复
地板
slotg|  楼主 | 2015-6-29 09:07 | 只看该作者
gaoyang9992006 发表于 2015-6-29 08:53
好像是诺基亚那个手机屏幕。。是吧??

感谢版主关注,是诺基亚的屏使用 SPI 接口,这个在 TB 上很常见。

使用特权

评论回复
5
yiyigirl2014| | 2015-6-29 10:39 | 只看该作者
这板子做工真不赖,楼主做的还是非常认真的,学习一下。。

使用特权

评论回复
6
slotg|  楼主 | 2015-6-29 16:08 | 只看该作者
yiyigirl2014 发表于 2015-6-29 10:39
这板子做工真不赖,楼主做的还是非常认真的,学习一下。。

感谢关注,使用现有的模块做的。

使用特权

评论回复
7
捉虫天师| | 2015-6-29 16:31 | 只看该作者
无线射频辨识 (Radio Frequency IDentification,缩写:RFID) 是一种无线通讯技术,饭卡就是的,我拆过一个,里面有个线圈和一个芯片,线圈应该就是射频的天线。

使用特权

评论回复
8
598330983| | 2015-6-29 19:19 | 只看该作者
天线设计的很合理啊。做工不错。佩服。

使用特权

评论回复
9
yiyigirl2014| | 2015-6-29 19:23 | 只看该作者
楼主这种大神的帖子还是比较值得一看的。

使用特权

评论回复
10
天灵灵地灵灵| | 2015-6-29 19:38 | 只看该作者
读卡的函数好简单啊,看来真是好用的很。

使用特权

评论回复
11
pallee| | 2015-6-29 19:47 | 只看该作者
楼主威武,学习 了

使用特权

评论回复
12
slotg|  楼主 | 2015-7-1 09:50 | 只看该作者
598330983 发表于 2015-6-29 19:19
天线设计的很合理啊。做工不错。佩服。

谢谢,这个是使用现成的模块。

使用特权

评论回复
13
cowboy2014| | 2015-7-2 21:43 | 只看该作者
谢谢楼主分享,我就是申请不到

使用特权

评论回复
14
slotg|  楼主 | 2015-7-2 23:18 | 只看该作者
cowboy2014 发表于 2015-7-2 21:43
谢谢楼主分享,我就是申请不到

你说的是新唐的板子吗?多关注新唐的活动跟训练课程就会有的。

使用特权

评论回复
15
戈卫东| | 2015-7-2 23:51 | 只看该作者
马可。。。。。。学习一下,谢谢分享

使用特权

评论回复
16
ccw1986| | 2015-7-3 10:49 | 只看该作者
好棒啊,谢谢楼主分享

使用特权

评论回复
17
Luis德华| | 2015-7-5 21:26 | 只看该作者
讲的挺实用的啊,谢谢楼主

使用特权

评论回复
18
quray1985| | 2015-7-7 15:25 | 只看该作者
楼主,罪外围的一圈圈的是什么东西啊?

使用特权

评论回复
19
slotg|  楼主 | 2015-7-7 17:00 | 只看该作者
quray1985 发表于 2015-7-7 15:25
楼主,罪外围的一圈圈的是什么东西啊?

感应天线。

使用特权

评论回复
20
仙女山| | 2015-7-9 09:21 | 只看该作者
看了一下,代码写的很规范,学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

1177

帖子

6

粉丝