移植libnfc到Android并结合蓝牙spp操作pn532读卡之概述

整理一个半年前做的好玩的东西,连线图在此:http://blog.csdn.net/chenxupro/article/details/8795725

主要思路是蓝牙串口模块HC-05连接nfc芯片pn532的TTL串口,Android手机通过蓝牙连接HC-05,修改libnfc的buses中的uart_posix.c代码,将它改造成通过Android蓝牙(bluetooth spp协议)提供的接口,发送串口读写指令操作pn532。

libnfc部分属于JNI层,采用NDK编译,UI层调用下层的函数。

完整代码在此:https://sourceforge.net/projects/androidbluesppnfc/

核心代码为:AndroidBlueSppNfc.c+uart_bluespp.c+mfoc.c+AppMain.java

AndroidBlueSppNfc.c为列出卡,读卡UID,模拟卡UID,发送消息等功能。

uart_bluespp.c为uart_posix.c结合蓝牙spp改写,相当于新增了一种名为bluespp的总线。

mfoc.c是另一个开源项目mfoc里的调用部分,在这里用于读取卡内部的数据,由于学校一卡通我们之前已经破解,所以直接设定了key去读取(为了避免不必要的麻烦,共享出的代码里去掉了这个key,以及上层java代码里计算卡内信息部分的代码)。

AppMain.java是整个软件的上层UI部分,用于menu选择,结果显示,代码很简单。

感谢小明(http://jointxmg.com/)提供pn532板子,感谢Bigroomer们提供饭卡测试^_^。

增加这么个转接设备和软件后普通的Android手机也具备了NFC的功能哟!

效果图在此:



PN532是NXP最近推出的一款NFC芯片,支持读卡器模式和卡模式(需要卡芯片Smart MX),支持TypeA丶TypeB丶TypeC三个标准。该NFC模块PN532开发板特点: @ 内部带一个MCU51,支持命令方式,可以直接跟PC串埠连接成为一个RFID读卡器,简单方便,成本低,性能好。 @ 读卡器通过串口和电脑连接,上位机可以使用libnfclibnfc是一个开源的软件,功能特别强大,实现了很多nfc的功能。 @ 电路板全部采用机器焊接,外观整齐漂亮,质量稳定可靠。 @ 绝对不会出现虚焊和短路。市面上一些采用手工焊接的PN532(QFN封装)电路板,由於QFN封装的原因经常发生虚焊和短路现象。 @ 电路板将PN532的所有引脚都引出来,方便二次开发评估,包括smartMX芯片的接口也引出来。 @ 电路板天线经过数学公式的计算,达到最佳的匹配效果,3.3v供电,最远的读卡距离可以达到7.5CM! NFC模块PN532开发板实物截图: NFC技术原理 @ 支持NFC的设备可以在卡操作或读写器模式下交换数据。 @ 在读写器模式下,启动NFC通信的设备,也称为NFC发起设备(主设备),在整个通信过程中提供射频场(RF-field)。 @ 它可以选择106kbps丶212kbps或424kbps其中一种传输速度,将数据发送到另一台设备。 @ 另一台设备称为NFC目标设备(从设备),不必产生射频场,而使用负载调制(load modulation)技术,即可相同的速度将数据传回发起设备。 @ 此通信机制与基於ISO14443A丶MIFARE和FeliCa的非接触式智能卡兼容,因此,NFC发起设备在读写器模式下,可以用相同的连接和初始化过程检测非接触式智能卡或NFC目标设备,并与之建立联系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值