如何在任何應用中快速添加 NFC 功能
發布時間:2018-06-07 責任編輯:wenwei
【導讀】為了滿足日益增長的近場通信 (NFC) 功能需求,開發人員需要快速構建優化的設計。傳統方法拖慢了開發進程,因為設計人員需應對各種挑戰,如射頻電路優化、NFC 協議管理、功耗、以及最小化設計封裝。
為了幫助開發人員克服這些困難,NXP 等公司推出了 IC 以及支持性軟硬件,提供了一種更簡單的方法為應用增加 NFC 功能。
本文將簡要探討 NFC 如何演變到超越基本收銀機 (POS) 應用範疇。接著,本文將介紹 NXP LPC8N04 NFC 解決方案,然後討論如何利用它構建高效 NFC 設計以支持各種應用。
為何選擇 NFC
NFC 已超出其原始的收銀機支付應用範圍,發展成為各種應用的重要特性。如今,開發人員利用智能手機和其他移動設備對 NFC 的普遍支持,簡化消費者產業、工業和其他領域的設備控製。
隻需將智能手機靠近智能玩具、家用電器或者網絡設備,用戶就能輕鬆、安全地配置並控製目標係統。來自啟動器(稱為接近耦合器件,PCD)的智能手機射頻場啟動目標(稱為接近感應耦合卡,PICC)。
通過這種方法,任何兼容 ISO 14443 的 PCD 和 PICC 都能根據標準中規定的調製和編碼方案,利用數據調製射頻場,進行雙向通信。
NFC MCU
NXP LPC8N04 MCU 為 NFC 設計提供了一個高性價比解決方案。這種 4 x 4 mm 24 引腳 MCU 基於 Arm® Cortex®-M0+ 處理器核心,結合了全套 NFC/RFID 子係統和串行接口、GPIO、存儲器,包括 32 Kb 閃存、8 Kb SRAM 以及 4 Kb EEPROM。該產品本身功耗要求低,可以僅通過采集的射頻能量運作,因而非常適合用於物聯網 (IoT) 無電池連接係統,獨立式係統中的智能標簽,或者任何需要優化 NFC 解決方案的應用。
為了簡化開發,LPC8N04 集成了 Arm 嵌套向量中斷控製器 (NVIC) 和串行線調試 (SWD)。其中的 SWD 采用兩個觀察點比較器和四個斷點比較器,可為 JTAG 測試和調試提供雙向數據連接,並提供運行時係統內存訪問,無需在設備上增加額外軟件。此外,LPC8N04 固件為擦除閃存分區、複製數據到閃存、讀取出廠設置的唯一設備序列號等提供完整應用編程接口 (API)。
當然,本文主要討論的重點功能是其 NFC 子係統。該器件旨在支持不斷增長的具有 NFC 功能的應用,可通過 13.56 MHz 接近信號傳輸提供完整的 NFC 雙向通信能力。該器件兼容各種 NFC 規範,包括 NFC/RFID ISO 14443A、NFC Forum 2 型和 MIFARE Ultralight EV1 PICC 標準。
該子係統同時為硬件和軟件連接提供簡單的接口模型(圖 1)。對於硬件接口,子係統的 50 皮法 (pF) 內部電容兼容標準 NFC 天線,如 Molex 1462360021。因此,開發人員可以將現成的天線連接到 LPC8N04 的 LA-LB 引腳。並且,該設備可從射頻場恢複其時鍾,無需額外的時鍾元件。

圖 1:NXP LPC8N04 MCU 的集成射頻子係統通過 LA-LB 引腳提供天線連接,以及一個訪問寄存器和 SRAM 的軟件接口。(圖片來源:NXP)
從功能上而言,NFC 讀/寫操作中用到的寄存器(CMDIN、DATAOUT、SR)和 SRAM 都映射到共享存儲器中,訪問權由集成仲裁單元進行管理。通信會話期間,外部 NFC/RFID 啟動器讀寫寄存器或 SRAM。反過來,在 LPC8N04 Arm Cortex-M0+ 核心上運行的固件會評估寄存器和 SRAM,解析信息,並使用相同的共享資源酌情回複。為了保護通信通道,開發人員可以使用 MIFARE 協議的密碼驗證方法,根據需要允許或阻止訪問。
當外部啟動器發射的射頻場處於 LPC8N04 範圍內時,整個通信序列啟動。射頻場可用於將 LPC8N04 從低功耗休眠模式喚醒,並如下方所述用作其唯一電源。
電源管理
功耗通常是這些應用的關鍵考慮事項。過去,開發人員為了將功耗最小化,不得不在功能和性能上折衷。借助 LPC8N04,開發人員能利用多種器件特性協調功耗和性能,以滿足要求。
在降低功耗的典型方法中,開發人員通常會修改係統時鍾頻率。通過 LPC8N04,開發人員能使用此方法顯著降低功耗(圖 2)。在最大時鍾頻率 8 MHz 下,LPC8N04 消耗約 900 微安 (µA) 電流。時鍾速率降低至 1 MHz 時,功耗將降至 200 µA 左右。除了調整係統時鍾速率外,開發人員還可使用多種不同的功耗模式,通過選擇性地關閉 LPC8N04 的某些部分來降低功耗。

圖 2:通過將係統時鍾從最大頻率 8 MHz(曲線 6)降低至 4 MHz (5)、2 MHz (4)、1 MHz (3)、500 kHz (2) 甚至 250 kHz (1),開發人員能顯著降低 LPC8N04 電流消耗。(圖片來源:NXP)
正如大多數複雜器件一樣,LPC8N04 針對存儲器和模擬外設、數字核心和外設、實時時鍾 (RTC) 和欠壓檢測器 (BOD) 等需要持續電源的電路,將子係統分配到不同的功率域(圖 3)。反過來,集成電源管理單元 (PMU) 可啟用或禁用為模擬和數字功率域供電的低壓差 (LDO) 穩壓器。

圖 3:在 NXP LPC8N04 MCU 的電源架構中,電源管理單元 (PMU) 支持多種低功率模式,可選擇性地啟用或禁用為模擬和數字功率域供電的低壓差 (LDO) 穩壓器。(圖片來源:NXP)
通過設置 LPC8N04 電源控製 (PCON) 寄存器的位數,開發人員可對 PMU 編程,以三種低功率模式控製這些域的供電:
● 休眠模式中,PMU 保持兩個域的供電——降低功耗的同時,允許快速恢複處理器功能和指令執行。
● 深度休眠模式中,PMU 隻禁用模擬域——提供維持處理器狀態、外設寄存器和內部 SRAM 的最低功率模式,但需要增加開機時間,以訪問非易失性存儲器。
● 深度省電模式中,PMU 同時關閉模擬和數字域,將功耗降低至僅 3 µA,代價則是處理器狀態和指令執行恢複的延遲更長。
在所有這三種低功耗模式中,PMU 關(guan)閉(bi)處(chu)理(li)器(qi)核(he)心(xin)。因(yin)此(ci),使(shi)用(yong)低(di)功(gong)耗(hao)模(mo)式(shi)將(jiang)增(zeng)加(jia)返(fan)回(hui)到(dao)完(wan)全(quan)活(huo)動(dong)模(mo)式(shi)所(suo)需(xu)的(de)喚(huan)醒(xing)時(shi)間(jian)。當(dang)然(ran),低(di)功(gong)耗(hao)模(mo)式(shi)越(yue)深(shen),喚(huan)醒(xing)時(shi)間(jian)就(jiu)越(yue)長(chang)。但(dan)實(shi)際(ji)上(shang),喚(huan)醒(xing)時(shi)間(jian)對(dui)於(yu)大(da)多(duo)數(shu) NFC 應用而言都已經足夠快。最糟糕的情況下,從打開電源到上電複位以達到活動模式的總啟動時間僅 2.5 毫秒 (ms) 左右。
射頻能量收集
LPC8N04 相對快速的喚醒時間使開發人員有機會利用器件的能量收集能力從啟動器的射頻場收集能量。當 VNFC(從射頻場獲得的電壓)上升到閾值之上,該器件的電源架構中的電源選擇器自動將器件電源從電池模式切換到由采集能量供電(見圖 3)。開發人員可以僅通過此電源操作 LPC8N04,或者隻使用射頻能量收集作為電池備份電源。盡管能源選擇器單元可自動選擇最佳電源,開發人員能根據應用要求強製選擇 VBAT 或 VNFC。
實際上,通過采集射頻能量為 LPC8N04 供電的功能取決於外部讀取器發射的射頻場強度、以及連接到 LPC8N04 的接收天線電路的能效。如前所述,開發人員僅需將適當的天線連接到 LPC8N04 的 LA-LB 引腳。但實際上,接收能量最大化的功能取決於經過設計優化的天線電路。
無論何種 RFID/NFC 設計,天線電感均會與射頻前端總輸入電容(天線、接收器和連接寄生電容)形xing成cheng諧xie振zhen電dian路lu。該gai組zu件jian的de總zong電dian阻zu決jue定ding了le品pin質zhi因yin素su,它ta與yu諧xie振zhen電dian路lu的de性xing能neng和he場chang強qiang度du有you關guan。例li如ru,更geng高gao的de連lian接jie電dian阻zu會hui降jiang低di品pin質zhi因yin素su,從cong而er降jiang低di射she頻pin發fa射she器qi的de有you效xiao傳chuan輸shu範fan圍wei。
由於輸入電容及輸入電阻與輸入電壓(對於 LPC8N04 就是 VLA-LB)有you關guan,設she計ji適shi當dang的de天tian線xian變bian得de更geng加jia複fu雜za。輸shu入ru電dian壓ya改gai變bian時shi,輸shu入ru電dian容rong的de相xiang關guan改gai變bian造zao成cheng諧xie振zhen頻pin率lv改gai變bian,同tong時shi輸shu入ru電dian阻zu的de相xiang關guan改gai變bian造zao成cheng品pin質zhi因yin素su改gai變bian。天tian線xian設she計ji專zhuan家jia通tong常chang采cai用yong最zui小xiao輸shu入ru電dian壓ya設she計ji以yi應ying對dui這zhe些xie變bian化hua。
快速開發平台
雖然概念很簡單,但對於利用具有 NFC 功能的智能手機普及性的應用,如果開發人員希望快速部署應用,從頭實現高效 NFC 設計會減緩其進度。通過在基於 NXP LPC8N04 的 OM40002 開發板上搭建,開發人員可以即刻開始開發 NFC 應用,無需創建自己的係統。LPC8N04 板和相關 NXP 軟件開發套件的組合提供了一種直接的 NFC 解決方案,以及用於構建自定義硬件設計和軟件應用的平台。
OM40002 板包括兩部分,由可拆分的接口分隔(見圖 4 中凹口之間的垂直線)。主處理器 (MP) 部分包括位於板頂部的 LPC8N04(圖 4A,右)和底部的集成天線(圖 4B,右)。調試探頭 (DP) 部分包括 NXP Arm Cortex-M0 LPC11U35FHI33 MCU 和調試資源(圖 4A,左)。在 DP 部分的底部(圖 4B,左),5 x 7 LED zhenliehebiaomiantiezhuangyangshengqiweikaifataojianzhongsuohandeshiliyingyongtigongjiandandeyonghujiemianjizhi。kaifaqijian,gongchengshinengjiangzhengkuaikaifabanyongzuoyigewanzhengdexitong。duiyudingzhisheji,kaifarenyuannengshiyongzhengkuaikaifabantiaoshiqiyingyongruanjian,bingkezaishaohouchaixia MP 部分,用作獨立 NFC 子係統。

圖 4:NXP OM40002 板結合了調試探頭 (DP) 部分(A 和 B 左側)和主處理器 (MP) 部分,開發人員可以拆分 MP 部分,將此完整 NFC 子係統添加到自己的設計中。(圖片來源:NXP)
該開發板預裝示例應用,在 LPC11U35FHI33 MCU 上作為固件來運行。利用該開發板的 LED 陣列和揚聲器並並運行一個 NXP 提供的免費 Android 應用,此應用展示了 LPC8N04 和支持 NFC 功能的智能手機之間如何進行雙向 NFC 數據交換格式 (NDEF) 消息傳輸。NDEF 用於大多數具有 NFC 功能的智能手機和其他移動設備,是一種輕量級格式,單一消息內可包含任意數據。通過示例 Android 應用,開發人員能更清晰地了解可在智能手機和 OM40002 板之間以 NDEF 交換的數據類型和大小。
NDEF 處理
除了能直接演示功能,示例應用為開發人員提供了使用 LPC8N04 處理 NDEF 信息的關鍵設計模式。NXP 軟(ruan)件(jian)開(kai)發(fa)套(tao)件(jian)中(zhong)包(bao)含(han)低(di)層(ceng)服(fu)務(wu)例(li)程(cheng),用(yong)於(yu)處(chu)理(li)寄(ji)存(cun)器(qi)層(ceng)級(ji)的(de)事(shi)務(wu),而(er)示(shi)例(li)應(ying)用(yong)則(ze)用(yong)於(yu)展(zhan)示(shi)高(gao)層(ceng)操(cao)作(zuo)。開(kai)發(fa)套(tao)件(jian)中(zhong)包(bao)含(han)主(zhu)例(li)程(cheng),用(yong)於(yu)向(xiang)開(kai)發(fa)人(ren)員(yuan)展(zhan)示(shi)如(ru)何(he)在(zai)主(zhu)處(chu)理(li)循(xun)環(huan)之(zhi)前(qian)初(chu)始(shi)化(hua) LPC8N04 硬件和相關軟件結構(列表 1)。
int main(void)
{
int temp;
uint16_t decPosition, digit, prevDigit, index, textSize;
uint32_t tempSpeed;
bool initDispStarted = false;
PMU_DPD_WAKEUPREASON_T wakeupReason;
Init();
wakeupReason = Chip_PMU_PowerMode_GetDPDWakeupReason();
if(wakeupReason == PMU_DPD_WAKEUPREASON_RTC) {
/* Blink LED for second */
LPC_GPIO->DATA[0xFFF] = 0xE60U;
Chip_TIMER_SetMatch(LPC_TIMER32_0, 2, 1000*100 + Chip_TIMER_ReadCount(LPC_TIMER32_0));
Chip_TIMER_ResetOnMatchDisable(LPC_TIMER32_0, 2);
Chip_TIMER_StopOnMatchDisable(LPC_TIMER32_0, 2);
Chip_TIMER_MatchEnableInt(LPC_TIMER32_0, 2);
__WFI();
}
else {
...
/* Wait for a command.Send responses based on these commands.*/
while (hostTicks < hostTimeout) {
...
if ((sTargetWritten) && takeMemSemaphore()) {
sTargetWritten = false;
if (NDEFT2T_GetMessage(sNdefInstance, sData, sizeof(sData))) {
char * data;
uint8_t *binData;
int length;
NDEFT2T_PARSE_RECORD_INFO_T recordInfo;
while (NDEFT2T_GetNextRecord(sNdefInstance, &recordInfo)) {
if ((recordInfo.type == NDEFT2T_RECORD_TYPE_TEXT) && (strncmp((char *)recordInfo.pString, "en", 2) == 0)) {
data = NDEFT2T_GetRecordPayload(sNdefInstance, &length);
strncpy(g_displayText, data, (size_t)length);
g_displayText[length] = 0;
g_displayTextLen = (uint8_t)length;
eepromWriteTag(EE_DISP_TEXT, (uint8_t *)g_displayText, (uint16_t)(((uint16_t)length+4) & 0xFFFC));
startLEDDisplay(true);
}
else if((recordInfo.type == NDEFT2T_RECORD_TYPE_MIME) && (strncmp((char *)recordInfo.pString, "application/octet-stream", 24) == 0)) {
binData = NDEFT2T_GetRecordPayload(sNdefInstance, &length);
if(binData[0] == 0x53) {
extractMusic(&binData[1]);
eepromWriteTag(EE_MUSIC_TONE, (uint8_t *)&binData[1], (uint16_t)(((uint16_t)length+2) & 0xFFFC));
if(musicInProgress) {
stopMusic();
startMusic();
}
}
else if(binData[0] == 0x51) {
Chip_TIMER_MatchDisableInt(LPC_TIMER32_0, 0);
desiredSpeed = (uint8_t)(binData[1] + 5U);
if((desiredSpeed < 5) || (desiredSpeed > 30)) {
desiredSpeed = 20;
}
Chip_TIMER_SetMatch(LPC_TIMER32_0, 0, 1000*LED_REFRESH_RATE_MS + Chip_TIMER_ReadCount(LPC_TIMER32_0));
Chip_TIMER_MatchEnableInt(LPC_TIMER32_0, 0);
eepromWriteTag(EE_SCROLL_SPEED, (uint8_t *)&binData[1], (uint16_t)(((uint16_t)length+3) & 0xFFFC));
}
}
}
}
releaseMemSemaphore();
...
列表 1:NXP LPC8N04 開發軟件套件提供了全套資源庫和示例應用軟件,該軟件對關鍵 NFC 操作(如本代碼片段所示,讀取 NDEF 信息)的基本設計模式進行演示。(代碼來源:NXP)
首次調用時,主例程首先測試其是否是由於表示喚醒計數器已過期的特定 RTC 事件 (wakeupReason == PMU_DPD_WAKEUPREASON_RTC) 而啟動。如果不是,例程進入主循環,測試讀取器的各種指令並執行相關操作以進行響應。如果沒有 NFC 活動(例如,智能手機不再處於範圍內),則例程最終會超時。
盡管概念簡單,示例應用和底層服務例程全方位介紹了使用 LPC8N04 的 NDEF 的信息處理。如列表 1 所示,示例應用的主循環闡明了處理 NDEF 信息的操作順序。
正常操作中,LPC8N04 共享存儲器中如果出現新的 NDEF 信息,則會調用中斷,且中斷將設置一個標記 (sTargetWritten)。在這一基於信號量的架構中,在加載信息 (NDEFT2T_GetMessage) 到其緩衝區之前,主例程一直等待,直到能聲明信號量 (takeMemSemaphore())。例程會審查 NDEF 信息 (NDEFT2T_GetNextRecord),提取有效載荷並解析結果。
在本應用中,如果有效載荷為文本字符串,例程將數據寫入到 EEPROM (eepromWriteTag) 中並開啟 LED 顯示 (startLEDDisplay)。如果有效載荷為 MIME 類型“application/octet-stream”,例程會檢查 binData[0] 的值,以查看是否數據為音樂 (binData[0] == 0x53) 或滾動速度調整 (binData[0] == 0x51)。如果是後者,則將新的滾動速度保存到 EEPROM 中。如果是前者,例程會提取音樂數據 (extractMusic),將數據寫入到 EEPROM,並且如果用戶正在運行音樂播發器,還要重啟音樂播發器 (startMusic)。
該軟件套件提供了該應用和服務例程的全部源代碼。例如,開發人員能查看 NDEFT2T_GetMessage() 和 NDEFT2T_GetNextRecord() 函數中的源代碼,以了解讀取和處理 NDEF 信息的詳情。許多情況下,開發人員可能無需修改就能直接使用服務例程,從而專注於應用的具體細節和 main() 例程。
總結
近(jin)場(chang)通(tong)信(xin)應(ying)用(yong)正(zheng)不(bu)斷(duan)擴(kuo)展(zhan)到(dao)收(shou)銀(yin)機(ji)係(xi)統(tong)以(yi)外(wai)越(yue)來(lai)越(yue)多(duo)的(de)領(ling)域(yu)。但(dan)對(dui)於(yu)開(kai)發(fa)人(ren)員(yuan)而(er)言(yan),要(yao)在(zai)優(you)化(hua)射(she)頻(pin)性(xing)能(neng)的(de)同(tong)時(shi)最(zui)小(xiao)化(hua)功(gong)耗(hao),其(qi)中(zhong)涉(she)及(ji)的(de)一(yi)係(xi)列(lie)挑(tiao)戰(zhan)即(ji)使(shi)對(dui)於(yu)最(zui)有(you)經(jing)驗(yan)的(de)工(gong)程(cheng)師(shi)來(lai)說(shuo)也(ye)十(shi)分(fen)棘(ji)手(shou)。
通過集成全套 NFC 子係統,NXP LPC8N04 MCU 消除了 NFC 設計的大部分複雜性。對於尋求快速解決方案的開發人員來說,NXP 基於 LPC8N04 的開發板和軟件提供了一個完整的即用型示例應用和一個開發平台,從而輕鬆構建自己的定製 NFC 解決方案。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
- 模擬芯片設計師的噩夢:晶體管差1毫伏就廢了,溫度升1度特性全飄
- 3A大電流僅需3x1.6mm?意法半導體DCP3603重新定義電源設計
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技




