如何开速开发NFC?

移动开发
很多人知道NFC都是从支付开始的,因为现在苹果在做apple pay,谷歌在做gogle Wallet,中移动,支付宝等都在用NFC在做支付了,招商银行也推出了闪付通这样的服务....

2014年由于苹果的加入,NFC快速进入大众视野,国内各厂商也跃跃欲试,想在这一领域能分到一杯羹,但是很多人还搞不清NFC是啥东西,除了支付它还能干啥?有没有我们可以深耕的空间.....

1.什么是NFC?

其实NFC也是像蓝牙一样,有一套协议栈规范的。它是建立在13.56MHZ频段上的一套短距的通讯规范,通常的通讯距离也就在3厘米左右,最远也不超过10厘米,关于它有什么好处和有优势大家百度一下就知道了,我不在这里赘叙,它是兼容RFID协议的一种支持主从呼唤的协议,比原来的RFID更有优势,并能兼容以前的无线ID卡应用场景。以前的RFID是主机只能是主机,不能切抱成tag(从机)的角色。

2.NFC能干啥?

很多人知道NFC都是从支付开始的,因为现在苹果在做apple pay,谷歌在做gogle Wallet,中移动,支付宝等都在用NFC在做支付了,招商银行也推出了闪付通这样的服务....

但是支付涉及到银联认证,涉及各方的利益多了入门槛就高了,不是一般公司与个人能玩的了,我个人觉得普通想参与NFC阵营的朋友,别想NFC支付了,没我们什么事的,那都是大公司大财团玩的,那不关注NFC支付,NFC还能做啥呢?

NFC其实全称是Near field communication ,中文就是近场通信,支付只是它的一个典型应用,其实可以用它来传输任意数据。但是能做与要做是两回来,要用NFC来做什么,这取决于它的特点和优势,NFC的特点是通信建立时间非常快而传输速率比较慢, 所以适合用于传输数据量比较小而过程短又快的场景。

两个应用方向我觉得是重点:

1,读写非接触IC卡 (各种ID卡、IC卡)

2,P2P(点对点)通信--可以传自定义数据

在安防领域:NFC可以做动态密码的门禁,甚至是能同时兼容手机和ID卡的高级身份识别系统,也可以作为签到系统,贵重物品设备管理等等。。。

 

 

NFC在智能门禁中应用(同时支持手机+门卡)

在防伪朔源方面:也是大有可为,也是我等普通人可以做的事情,例如五粮液等产品已使用NFC标签用于防伪朔源。

在专业应用领域:主要是使用NFC 的P2P通信,可以让手机与工业设备任意互相传输数据,方便地利用上手机的处理能力还有便捷性,例如工业机器只要装上NFC,就可以用手机来配置参数,读取工业设备的状态数据等等。特别是现在银行的ATM也开始用P2P方式来开展业务了,例如小额支付,无卡取款等,都可以用手机来完成,通过P2P传输加密了卡号和密码的数据,安全又灵活,比卡模拟的操作空间更大,例如风火轮的SMC532模组已在国内某些ATM机器中使用,就是为了小额取款无卡取款等方面的应用,让用户手机打开应用绑定银行卡,然后可在ATM取款机上刷一下,就可以取款,省去了输密码或忘记带银行卡的烦恼。其中用到的就是SMC532模组的NFC点对点通信功能 ,该模组可以有NFC功能的手机互相传输数据,这些数据都是ATM应用经过加密的,保证了安全又得到了方便。

 

 

NFC在广告机中应用(发优惠券等数据)

3.如何快速开发NFC功能?

要开发NFC功能,必须得按照NFC协议来进行通讯,而NFC的应用协议栈,为了兼顾安全和效率等因素,自然也是相当复杂,应用起来也不是一时半会能摸透它。

要想快速开发NFC功能,最好还是使用内置了协议栈的NFC模组,例如风火轮科技的SMC532模组,它里面有一颗MCU,把NFC的应用协议栈都做到里面了,所以使用者根本不用去了解NFC的协议栈等,只需要通过串口发一串命令,就能实现复杂的NFC功能,无论是单片机,还是跑有嵌入式系统(WINCE,ucos-II,Android)的设备,都可以快速的加入NFC功能,一条串口命令对应一个NFC功能,例如读卡、写卡、P2P....,都是一条命令搞定,

NFC模组 读到卡号还有P2P数据等也是自动通过串口直接就传出来,非常方便快捷,特别是设备NFC与手机的P2P通信,用的是NDEF格式,里面涉及到的协议有LLCP,LIBNFC,SNEP,NEDF等,如果自已开发起来工作量非常大,如果你的设备主控是单片机做的,也跑不了这些协议栈,所以最好是使用SMC532这种模组,会省事很多,NFC传输的细节就不用管了,只要操心要传什么数据,读什么数据等等业务逻辑相关的事情就好。

举例:

读卡:当有NFC卡进入天线范围,SMC532自动读取某地址的值,通过串口发出来

 

 

PS.这个默认读取的某地址,是可以通过命令配置的。

写卡:

例如需要往02地址块里写入数据01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16,命令如下:

 

 

给手机发送 NFC数据(P2P方式)

用户通过SMC532模组与手机进行P2P通信,NDEF数据格式,可传任意数据,风火轮提供了各平台的DEMO示例程序源码,并提供手机上的演示程序源码,让你快速实现自定义NFC功能。

 

 

.....................00 FF

以上数据都是16进制。

设置了这些数据,当NFC手机靠近过来,运行了风火轮 P2P的软件,模组就会发送红色的数据到手机上。

手机给模组发送NFC数据

风火轮提供的手机程序界面如下

 

 

当SMC532 NFC模组收到手机传来的P2P数据,如果是大数据,它会分帧传给主机,模组通过串口传给主机的数据中,有两种帧格式:

 

 

看到了吧,真的很简单的操作,就能实现NFC的复杂功能了。

----- 开发NFC,就这么简单。。。。

责任编辑:老门
相关推荐

2013-01-23 14:33:04

Android开发NFC

2013-01-22 23:02:57

NFC

2013-01-23 14:42:26

Android开发NFC

2013-01-23 13:35:46

AndroidNFC学生卡

2013-10-11 10:17:21

微软开源市场

2023-12-22 09:11:45

AndroidNFC移动开发

2022-08-12 07:00:00

NFC安全性RFID

2011-10-25 09:48:07

NFC诺基亚Symbian

2010-09-16 17:46:22

SQL存储过程

2022-05-12 14:22:39

NFC标签鸿蒙

2023-05-16 20:25:37

物联网工业物联网

2017-03-24 10:23:37

Python语法机器学习环境搭建

2022-07-25 14:51:00

NFC非接触式支付

2012-04-18 15:39:04

诺基亚NFC

2013-01-31 11:26:23

NFC移动支付近场通信

2020-06-02 10:00:33

GitHub 技术开发

2018-09-28 10:07:36

运维必备工具

2022-12-23 20:46:37

遥控器应用鸿蒙

2011-11-21 09:55:32

NFC

2012-05-21 09:07:55

云存储
点赞
收藏

51CTO技术栈公众号