如何開速開發(fā)NFC?
2014年由于蘋果的加入,NFC快速進(jìn)入大眾視野,國(guó)內(nèi)各廠商也躍躍欲試,想在這一領(lǐng)域能分到一杯羹,但是很多人還搞不清NFC是啥東西,除了支付它還能干啥?有沒有我們可以深耕的空間.....
1.什么是NFC?
其實(shí)NFC也是像藍(lán)牙一樣,有一套協(xié)議棧規(guī)范的。它是建立在13.56MHZ頻段上的一套短距的通訊規(guī)范,通常的通訊距離也就在3厘米左右,最遠(yuǎn)也不超過10厘米,關(guān)于它有什么好處和有優(yōu)勢(shì)大家百度一下就知道了,我不在這里贅敘,它是兼容RFID協(xié)議的一種支持主從呼喚的協(xié)議,比原來的RFID更有優(yōu)勢(shì),并能兼容以前的無線ID卡應(yīng)用場(chǎng)景。以前的RFID是主機(jī)只能是主機(jī),不能切抱成tag(從機(jī))的角色。
2.NFC能干啥?
很多人知道NFC都是從支付開始的,因?yàn)楝F(xiàn)在蘋果在做apple pay,谷歌在做gogle Wallet,中移動(dòng),支付寶等都在用NFC在做支付了,招商銀行也推出了閃付通這樣的服務(wù)....
但是支付涉及到銀聯(lián)認(rèn)證,涉及各方的利益多了入門檻就高了,不是一般公司與個(gè)人能玩的了,我個(gè)人覺得普通想?yún)⑴cNFC陣營(yíng)的朋友,別想NFC支付了,沒我們什么事的,那都是大公司大財(cái)團(tuán)玩的,那不關(guān)注NFC支付,NFC還能做啥呢?
NFC其實(shí)全稱是Near field communication ,中文就是近場(chǎng)通信,支付只是它的一個(gè)典型應(yīng)用,其實(shí)可以用它來傳輸任意數(shù)據(jù)。但是能做與要做是兩回來,要用NFC來做什么,這取決于它的特點(diǎn)和優(yōu)勢(shì),NFC的特點(diǎn)是通信建立時(shí)間非常快而傳輸速率比較慢, 所以適合用于傳輸數(shù)據(jù)量比較小而過程短又快的場(chǎng)景。
兩個(gè)應(yīng)用方向我覺得是重點(diǎn):
1,讀寫非接觸IC卡 (各種ID卡、IC卡)
2,P2P(點(diǎn)對(duì)點(diǎn))通信--可以傳自定義數(shù)據(jù)
在安防領(lǐng)域:NFC可以做動(dòng)態(tài)密碼的門禁,甚至是能同時(shí)兼容手機(jī)和ID卡的高級(jí)身份識(shí)別系統(tǒng),也可以作為簽到系統(tǒng),貴重物品設(shè)備管理等等。。。

NFC在智能門禁中應(yīng)用(同時(shí)支持手機(jī)+門卡)
在防偽朔源方面:也是大有可為,也是我等普通人可以做的事情,例如五糧液等產(chǎn)品已使用NFC標(biāo)簽用于防偽朔源。
在專業(yè)應(yīng)用領(lǐng)域:主要是使用NFC 的P2P通信,可以讓手機(jī)與工業(yè)設(shè)備任意互相傳輸數(shù)據(jù),方便地利用上手機(jī)的處理能力還有便捷性,例如工業(yè)機(jī)器只要裝上NFC,就可以用手機(jī)來配置參數(shù),讀取工業(yè)設(shè)備的狀態(tài)數(shù)據(jù)等等。特別是現(xiàn)在銀行的ATM也開始用P2P方式來開展業(yè)務(wù)了,例如小額支付,無卡取款等,都可以用手機(jī)來完成,通過P2P傳輸加密了卡號(hào)和密碼的數(shù)據(jù),安全又靈活,比卡模擬的操作空間更大,例如風(fēng)火輪的SMC532模組已在國(guó)內(nèi)某些ATM機(jī)器中使用,就是為了小額取款無卡取款等方面的應(yīng)用,讓用戶手機(jī)打開應(yīng)用綁定銀行卡,然后可在ATM取款機(jī)上刷一下,就可以取款,省去了輸密碼或忘記帶銀行卡的煩惱。其中用到的就是SMC532模組的NFC點(diǎn)對(duì)點(diǎn)通信功能 ,該模組可以有NFC功能的手機(jī)互相傳輸數(shù)據(jù),這些數(shù)據(jù)都是ATM應(yīng)用經(jīng)過加密的,保證了安全又得到了方便。

NFC在廣告機(jī)中應(yīng)用(發(fā)優(yōu)惠券等數(shù)據(jù))
3.如何快速開發(fā)NFC功能?
要開發(fā)NFC功能,必須得按照NFC協(xié)議來進(jìn)行通訊,而NFC的應(yīng)用協(xié)議棧,為了兼顧安全和效率等因素,自然也是相當(dāng)復(fù)雜,應(yīng)用起來也不是一時(shí)半會(huì)能摸透它。
要想快速開發(fā)NFC功能,最好還是使用內(nèi)置了協(xié)議棧的NFC模組,例如風(fēng)火輪科技的SMC532模組,它里面有一顆MCU,把NFC的應(yīng)用協(xié)議棧都做到里面了,所以使用者根本不用去了解NFC的協(xié)議棧等,只需要通過串口發(fā)一串命令,就能實(shí)現(xiàn)復(fù)雜的NFC功能,無論是單片機(jī),還是跑有嵌入式系統(tǒng)(WINCE,ucos-II,Android)的設(shè)備,都可以快速的加入NFC功能,一條串口命令對(duì)應(yīng)一個(gè)NFC功能,例如讀卡、寫卡、P2P....,都是一條命令搞定,
NFC模組 讀到卡號(hào)還有P2P數(shù)據(jù)等也是自動(dòng)通過串口直接就傳出來,非常方便快捷,特別是設(shè)備NFC與手機(jī)的P2P通信,用的是NDEF格式,里面涉及到的協(xié)議有LLCP,LIBNFC,SNEP,NEDF等,如果自已開發(fā)起來工作量非常大,如果你的設(shè)備主控是單片機(jī)做的,也跑不了這些協(xié)議棧,所以最好是使用SMC532這種模組,會(huì)省事很多,NFC傳輸?shù)募?xì)節(jié)就不用管了,只要操心要傳什么數(shù)據(jù),讀什么數(shù)據(jù)等等業(yè)務(wù)邏輯相關(guān)的事情就好。
舉例:
讀卡:當(dāng)有NFC卡進(jìn)入天線范圍,SMC532自動(dòng)讀取某地址的值,通過串口發(fā)出來

PS.這個(gè)默認(rèn)讀取的某地址,是可以通過命令配置的。
寫卡:
例如需要往02地址塊里寫入數(shù)據(jù)01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16,命令如下:

給手機(jī)發(fā)送 NFC數(shù)據(jù)(P2P方式)
用戶通過SMC532模組與手機(jī)進(jìn)行P2P通信,NDEF數(shù)據(jù)格式,可傳任意數(shù)據(jù),風(fēng)火輪提供了各平臺(tái)的DEMO示例程序源碼,并提供手機(jī)上的演示程序源碼,讓你快速實(shí)現(xiàn)自定義NFC功能。

.....................00 FF
以上數(shù)據(jù)都是16進(jìn)制。
設(shè)置了這些數(shù)據(jù),當(dāng)NFC手機(jī)靠近過來,運(yùn)行了風(fēng)火輪 P2P的軟件,模組就會(huì)發(fā)送紅色的數(shù)據(jù)到手機(jī)上。
手機(jī)給模組發(fā)送NFC數(shù)據(jù)
風(fēng)火輪提供的手機(jī)程序界面如下

當(dāng)SMC532 NFC模組收到手機(jī)傳來的P2P數(shù)據(jù),如果是大數(shù)據(jù),它會(huì)分幀傳給主機(jī),模組通過串口傳給主機(jī)的數(shù)據(jù)中,有兩種幀格式:

看到了吧,真的很簡(jiǎn)單的操作,就能實(shí)現(xiàn)NFC的復(fù)雜功能了。
----- 開發(fā)NFC,就這么簡(jiǎn)單。。。。