查看: 8023|回复: 6

[教程] 使用Raspberry PI驱动ITEAD PN532 NFC Module

[复制链接]
  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-6-27 09:13:25 | 显示全部楼层 |阅读模式
    分享到:
    ITEAD PN532 NFC模块上带了双排插针,可以通过连接线直接连接到树莓派上,然后使用我们提供的ITEAD PN532 NFC SPI Library来驱动模块进行无接触的近场通讯操作,比如读写13.56M的IC卡。
    ade378aege009328d475f&690.jpg
    首先,在安装我们提供的库之前,我们要对树莓派的配置进行一些修改,使SPI模块可以开机自启动:
    cd /etc/modprobe.d/
    进入配置文件夹
    sudo nano raspi-blacklist.conf
    以超级用户打开配置文件
    #blachlist sip-bcm2708
    注释掉该行,实现SPI模块开机加载

    然后,就可以解压我们提供的库,我们以放置到桌面为例:
    cd /home/pi/Desktop/ITEAD_PN532_NFC
    进入库文件夹
    make install
    安装ITEAD PN532 NFC库这样我们的库就已经编译安装完成了,之后如果需要使用到这个库,只要在工程文件中包含进nfc.h即可调用库里的各函数。编译时,在命令行中添加-lNFC就可以将这些调用的库函数编译处理了。
    以我们库里提供的DEMO为例子:
    gcc readID.c –o readID –lNFC
    编译readID例程文件
    sudo ./readID
    运行编译完的例程文件 – 这样,只要将13.56M的IC卡靠近NFC模块,就会在显示器上显示出这张卡的ID号了。

    下面这个库提供的一些功能函数的简单说明:

    FUNCTIONS:
    Begin(): Begin to communicate with the ITEAD NFC module
    Parameters:NULL
    Return:NULL
    Usage:begin();

    SAMConfig(): Configure RPI to read RFID tags and cards
    Parameters:NULL
    Return: false or true
    Usage:SAMConfig();

    getFirmwareVersion(): Get the firmware version of the NFC module
    Parameters:NULL
    Return: the number of the firmware version(fail will return 0);
    Usage: I = getFirmwareVersion();

    readPassiveTargetID(uint8_t cardbaudrate): Get the passive target card ID
    Parameters: cardbaudrate;
    Return: the ID of the card(fail will return 0);
    Usage: I = readPassiveTargetID(PN532_MIFARE_ISO14443A);

    authenticateBlock(cardnumber, cid, blockaddress, authtype, * keys): Authenticate the block
    Authenticate the block
    authenticateBlock(cardnumber, cid, blockaddress, authtype, * keys)

    Parameters:
    -uint8_t cardnumber: 1 or 2;
    -uint32_t cid: Card NUID;
    -uint8_t blockaddress:0 to 63;
    -uint8_t authtype: Either KEY_A or KEY_B;
    -uint8_t * keys
    Return: true or false;
    Usage: authenticateBlock(1,id,0x08,KEY_A,keys);
    readMemoryBlock(cardnumber, blockaddress, block): Read a block(16 bytes) from the tag and stores in the parameter
    Parameter:
    -uint8_t cardnumber, can be 1 or 2;
    -blockaddress, range from 0 to 63;
    -uint8_t* block, will save 16bytes that read from tag.  
    Return: true or false
    Usage: readMemoryBlock(1,0x08,block);

    writeMemoryBlock( cardnumber, blockaddress, * block): Write a block(16 bytes) to the tag
    Parameter:
    -uint8_t cardnumber,can be 1 or 2;
    -blockaddress,range from 0 to 63;
    -uint8_t* block,saves 16bytes that will write to the tag.
    Return: true or false
    Usage: writeMemoryBlock(1,0x08,writeBuffer);

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2012-11-23 16:50
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-6-27 13:34:49 | 显示全部楼层
    不错,不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-31 08:31
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-6-27 14:19:12 | 显示全部楼层
    哪里有更详细的资料啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2013-6-27 16:29:10 | 显示全部楼层
    gdmgb520 发表于 2013-6-27 14:19
    哪里有更详细的资料啊?

    你具体指哪方面的资料呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-31 08:31
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-6-28 22:01:37 | 显示全部楼层
    haothree 发表于 2013-6-27 16:29
    你具体指哪方面的资料呢?

    "我们提供的ITEAD PN532 NFC SPI Library来驱动模块"

    请问你们提供的库在哪里可以获得?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2013-7-2 09:23:32 | 显示全部楼层
    gdmgb520 发表于 2013-6-28 22:01
    "我们提供的ITEAD PN532 NFC SPI Library来驱动模块"

    请问你们提供的库在哪里可以获得? ...

    请看这里http://imall.iteadstudio.com/prototyping/basic-module/im130625002.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-1-5 23:17
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-11-19 01:23:21 | 显示全部楼层
    haothree 发表于 2013-7-2 09:23
    请看这里http://imall.iteadstudio.com/prototyping/basic-module/im130625002.html

    请教下 图中raspberry pi的数据线是软驱线吗
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 13:25 , Processed in 0.189428 second(s), 28 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.