极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30426|回复: 2

树莓派使用libnfc驱动ITEAD NFC PN532模块

[复制链接]
发表于 2014-6-7 15:44:37 | 显示全部楼层 |阅读模式
libnfc是首个遵循GNU(自由工程项目)通用公共许可证针对所有人都完全免费的低级别NFC软件开发包和编程应用程序接口。它提供了完整的透明度且免费供大家使用。该库目前支持调制ISO / IEC14443 A和B,FeliCa,Jewel/Topaz标签及数据交换协议(P2P)作为目标和启动程序。想了解更多关于libnfc的信息,可参考http://nfc-tools.org/



ITEAD PN532 NFC模块配有双排引脚,可直接通过排线连接到树莓派,然后树莓派将驱动模块进行非接触式近场通信操作,如读写13.56M IC卡。



以下教程,演示如何在树莓派上使用libnfc通过SPI总线来驱动ITEAD PN532 模块。


1, 硬件链接

Itead PN532 Module是专门为树莓派量身定制的,仅需要排线直接连接就行,如下图




按照上图的连接方式,Itead PN532 模块是通过SPI总线与树莓派连接的,所以需要把NFC模块的工作模式设置为SPI模式,如下图:
                                                            即 :  SET0-->L   SET1-->H


2,安装依赖的软件包
    sudo apt-get update
    sudo apt-get install libusb-dev libpcsclite-dev

3,下载并解压缩libnfc源码包
    cd ~
    wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2
    tar -xf libnfc-1.7.1.tar.bz2
   
4,编译与安装
    cd libnfc-1.7.1
    ./configure --prefix=/usr --sysconfdir=/etc
    make
    sudo make install
   
5, 修改配置文件
    cd /etc
    sudo mkdir nfc
    sudo nano /etc/nfc/libnfc.conf

将如下内容复制到/etc/nfc/libnfc.conf文件中:

    # Allow device auto-detection (default: true)
    # Note: if this auto-detection is disabled, user has to set manually a device
    # configuration using file or environment variable
    allow_autoscan = true

    # Allow intrusive auto-detection (default: false)
    # Warning: intrusive auto-detection can seriously disturb other devices
    # This option is not recommended, user should prefer to add manually his device.
    allow_intrusive_scan = false

    # Set log level (default: error)
    # Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)
    # Note: if you compiled with --enable-debug option, the default log level is "debug"
    log_level = 1

    # Manually set default device (no default)
    # To set a default device, you must set both name and connstring for your device
    # Note: if autoscan is enabled, default device will be the first device available in device list.
    device.name = "Itead_PN532_SPI"
    device.connstring = "pn532_spi:/dev/spidev0.0:500000"

6,树莓派系统默认是将SPI模块的驱动关闭的,我们需要将其打开;

    sudo nano /etc/modprobe.d/raspi-blacklist.conf
在 “blacklist spi-bcm2708”前添加“#”,变为 “#blacklist spi-bcm2708”,如下图:



重启后能在/dev下看到两个spi设备:



7, 至此,准备工作已经做完,我们可以用“nfc-list”命令查看是否安装成功。



现在,刷个卡试下。。




测试OK!



下面再顺便介绍下第二个方法:


如何采用树莓派I2C总线连接的配置方式:


1. 软件配置


树莓派开启I2C总线,将/etc/modprobe.d/raspi-blacklist.conf中“blacklist i2c-bcm2708”变为“#blacklist i2c-bcm2708”
在/etc/modules末尾添加一行 “i2c-dev”

将/etc/nfc/libnfc.conf 文件最后一行改为:“pn532_i2c:/dev/i2c-1”




2. 硬件连接,如下图所示:




刷卡测试,运行效果如图:



-----------------------------------------------------------------------------------------------
参考资料附录&相关链接:
A1. libnfc配置方法:http://nfc-tools.org/index.php?title=Libnfc:configuration
A2. libnfc安装教程:http://nfc-tools.org/index.php?title=Libnfc
A3. libnfc用户API:http://nfc-tools.org/index.php?title=Libnfc:API
A4. libnfc主页:http://nfc-tools.org/index.php?title=Main_Page
A5. libnfc学习例程:ibnfc:Examples" target="_blank">http://nfc-tools.org/index.php?title=Categoryibnfc:Examples
A6. Iteadstudio PN532 Module 网址 http://imall.iteadstudio.com/im130625002.html

A7. Disable R-Pi/RASPBIAN serial console for using UART0 http://learn.adafruit.com/adafruit-nfc-rfid-on-raspberry-pi/freeing-uart-on-the-pi
-------------------------------------------------------------------------------------------------


教程到此结束,谢谢大家!有问题请留言或微博@ITEAD创易工作室


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2014-6-9 13:12:17 | 显示全部楼层
另外给大家介绍一款开源的可配置的13.56MHz模块教程:http://www.geek-workshop.com/thread-10056-1-1.html
回复 支持 反对

使用道具 举报

发表于 2016-12-5 17:00:27 | 显示全部楼层
出現 NO NFC device found.
是需要安裝驅動嗎?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-16 17:29 , Processed in 0.042324 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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