- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
8.DB410c开发板测试nfc设备(PN532)-i2c方式
录入:edatop.com 点击:
几年前在wince系统下做过rfid设备相关项目,就是根据厂商的文档通过串口将rfid卡中的信息读取,做成函数调用的形式提供给上层开发者。后来听说又出现了nfc这种设备,只是一直没有机会接触。下面是一些简单介绍.FC近场通信技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司)、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。近场通信(Near Field Communication,NFC)是一种短距高频的无线电技术,在13.56MHz频率运行于10厘米距离内。其传输速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三种。目前近场通信已通过成为ISO/IEC IS 18092国际标准、ECMA-340标准与ETSI TS 102 190标准。NFC采用主动和被动两种读取模式。NFC近场通信技术是由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。工作频率为13.56MHz,但是使用这种手机支付方案的用户必须更换特制的手机。目前这项技术在日韩被广泛应用。手机用户凭着配置了支付功能的手机就可以行遍全国:他们的手机可以用作机场登机验证、大厦的门禁钥匙、交通一卡通、信用卡、支付卡等[1] 。pn532就是恩智浦半导体公司最新一代NFC产品。
下面说说ibnfc,是目前nfc最好的开源软件。
ibnfc是首个遵循GNU(自由工程项目)通用公共许可证针对所有人都完全免费的低级别NFC软件开发包和编程应用程序接口。它提供了完整的透明度且免费供大家使用。该库目前支持调制ISO / IEC14443 A和B,FeliCa,Jewel/Topaz标签及数据交换协议(P2P)作为目标和启动程序。想了解更多关于libnfc的信息,可参考http://nfc-tools.org/。http://nfc-tools.org/index.php?title=Libnfc:configuration就是一个不错的介绍。
libllcp是nfc设备p2p通信方式的开源代码,下载地址为:https://github.com/nfc-tools/libllcp,目前我只是想简单了解nfc识别读写过程,对于高级的p2p通信暂时不涉及,所以我这里仅仅是下载编译通过而已。
下面说说我的具体操作过程和一些需要注意的细节问题。
1)购买nfc设备,某宝上买的,可以通过图片猜测在那里买的,或者跟我联系高价将这个设备卖给你,呵呵。
2)连接nfc到DB410c开发;
因为db410c开发板有一个PCA9306是一款支持I2C总线和SMBus的双向电平转换器,所以接线照片根本无法看清楚,我们这里使用官方视频里面的图片来说明问题。
需要注意几点:
a)nfc模块通过i2c方式链接开发板必须接到pca9306上,直接接到开发板上,开发板将无法识别这个i2c设备;具体原因不明;
b)注意nfc模块上i2c和uart,spi模式选择;
c)注意nfc模块vcc链接正常后模块的led灯会亮,我这个设备开始因为焊接不牢固灯没有亮,耽误不少时间。开始可以尝试使用i2cdectect命令查看这个i2c设备链接成功。
3)下载,编译libnfc;
wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2
另外需要什么库就安装一下。sudo apt-get update && sudo apt-get install libusb-dev libpcsclite-dev
./configure --prefix=/usr --sysconfdir=/etc &&make&&make install
添加配置文件/etc/nfc/libnfc.conf
4)运行,测试;
如果一切正常应该出现上面图片的结果。不过db410开发板却出现下图的结果
无奈之下将这个nfc模块接到其他开发板上测试,结果正常,看来是这个开发板有一些问题,后面有时间在查找一个出现问题的原因。补记:重新接线后按照上面的方法,PN532模块可以读到正确的数值,很可能是硬件焊接或者接线的问题。示例结果见下图:
不知道小编解决了没,我接入i2c完全检测不到设备
必须使用自带half-size breadboard接i2c设备,注意接上1.8V的那根线。
你是说pca那个小板吗,我接入了,没用
我开始没有接pca小板,i2cdetect命令执行无法找到i2c设备,接好了就可以找到。你仔细检查接线吧。
上一篇:无线充电汽车应用讨论
下一篇:打造家庭网络监控