如何快速增加NFC能力到任何應用程序

  爲了滿足日益增長的對近場通信(NFC)能力的需求,開發人員被要求快速創建優化設計。傳統的方法是緩慢的發展,設計師的工作,但挑戰,如射頻電路優化,NFC協議管理,功耗和最小的設計足跡。

  爲了幫助開發人員克服這些挑戰,公司如NXP推出ICS和支持的硬件和軟件,提供一個簡單的方法來添加NFC功能的應用。

  本文將簡要地討論NFC如何超越基本服務點(POS)應用程序。然後介紹恩智浦lpc8n04 NFC方案在討論如何使用它來創建高效的NFC設計能夠支持範圍廣泛的應用。


  爲什麼NFC

  NFC已經成爲應用程序的一個重要功能,超出了它在銷售點付款場景中的最初用途。開發人員利用無處不在的NFC支持智能手機和其他移動設備,以簡化設備在消費者,工業和其他部門的控制。

  只要將智能手機靠近智能玩具、家用電器或網絡設備,用戶就可以輕鬆、安全地配置和控制目標系統。從引發智能手機射頻場,稱爲感應耦合裝置(PCD),爲目標,稱爲感應感應耦合卡(PICC)。

  使用這種方法,任何ISO 14443兼容的PCD和PICC都可以通過根據標準中指定的調製和編碼方案對射頻場進行數據調製來進行雙向通信。


  NFC MCU

  NXP lpc8n04 MCU提供NFC設計具有成本效益的解決方案。基於ARM®皮質®-M0+處理器核心,4 x 4毫米24引腳單片機結合完整的NFC /RFID系統串行接口、GPIOs、和記憶,包括Flash,32字節,8字節的SRAM,4字節的EEPROM。隨着其固有的低功耗要求,它的能力完全運行的收穫射頻能源,使之非常適合聯網的物聯網(物聯網),獨立系統中的智能標籤,或任何需要優化的NFC解決方案的應用程序相連接的系統。

  爲了簡化開發,集成了ARM的lpc8n04嵌套向量中斷控制器(NVIC)和串行線調試(SWD)。在這裏實現兩個觀察點比較器和四斷點比較器,社署提供的JTAG測試雙向數據連接和調試,以及運行時訪問系統內存設備上沒有需要額外的軟件。此外,該lpc8n04固件提供了一個完整的應用編程接口(API)擦除閃存部門,將數據複製到閃存,讀程序獨特的設備序列號工廠,和更多。

  當然,本文的主要功能是駐留在它的NFC子系統中。旨在支持日益增長的NFC功能的應用程序,該設備提供完整的NFC雙向通信能力,使用13.56兆赫近距離信令。該裝置具有廣泛的NFC規格包括NFC /RFID ISO14443A兼容,NFC論壇類型2,和MIFARE輕EV1 PICC標準。

  子系統爲硬件和軟件連接提供了一個簡單的接口模型(圖1)。對於硬件接口,子系統的50皮法(PF)內部電容與標準的NFC天線如莫仕1462360021兼容。因此,開發人員可以將一個現成的lpc8n04 LA-LB引腳的天線。此外,該設備恢復其時鐘從射頻場,省去了額外的時鐘組件的需要。

  NXP lpc8n04 MCU的集成射頻子系統圖

  

  圖1:NXP lpc8n04 MCU的集成射頻子系統在洛杉磯長灘引腳提供天線的連接,和一個軟件接口,訪問寄存器和SRAM。(圖片來源:凱利訊半導體)

  在功能上,寄存器(cmdin,DATAOUT Sr)和SRAM用於NFC讀/寫操作都映射到共享內存的訪問通過一個集成的仲裁單元管理。在通信會話期間,外部NFC / rfid發起者讀取和寫入寄存器或SRAM。反過來,固件在lpc8n04的ARM Cortex-M0+內核上運行訪問寄存器和SRAM、分析信息,並回復相應地使用相同的共享資源。保護通信通道,開發者可以使用Mifare協議的口令認證方法來允許或阻止訪問的需要。

  這整個通信序列開始時外部引發傳輸射頻領域內的lpc8n04範圍。射頻場可以用來喚醒lpc8n04從低功耗睡眠模式和作爲其唯一的動力來源,如下描述。


  電源管理

  在這些應用中,功耗通常是一個關鍵問題。在過去,開發人員常常發現自己被迫妥協的功能和性能,以儘量減少權力。與lpc8n04,開發者可以利用一些裝置來調整功率利用率和性能滿足要求。

  在減少功耗的典型方法中,開發人員經常修改系統時鐘頻率。與lpc8n04,開發人員可以使用這種方法來降低功耗(圖2)。在最高8 MHz的時鐘頻率,這lpc8n04消耗約900微安(µ一)。減少到1 MHz的時鐘速率下降,功耗約200µ除了調整系統時鐘速率,開發者還可以利用許多不同的電源模式,通過選擇性地關閉的lpc8n04部分降低功耗。

  通過降低系統時鐘頻率降低NXP lpc8n04消耗電流圖

  

  圖2:開發商可以顯著減少從8 MHz的系統時鐘最高頻率降低lpc8n04電流消耗(曲線6)(5)4 MHz,2 MHz,1 MHz(4)(3),500千赫(2),甚至250千赫(1)。(圖片來源:凱利訊半導體)

  作爲最複雜的設備,該lpc8n04組織子系統爲存儲和模擬外設不同的電源域;對於數字內核和外設;和電路,如實時時鐘(RTC)和棕色的探測器(BOD),需要持續的動力(圖3)。反過來,一個集成的電源管理單元(PMU)使和禁用低壓差穩壓器(LDO)的功率模擬和數字電源領域。

  NXP lpc8n04單片機的電源架構圖

  

  圖3:在NXP lpc8n04單片機的電源架構,電源管理單元(PMU)支持多種低功耗模式,選擇性地啓用或禁用低壓降(LDO)監管機構提供的模擬和數字電源域。(圖片來源:凱利訊半導體)

  在lpc8n04功率控制設置位(PCON)登記,開發商程序PMU控制電源這些領域三的低功耗模式:

  在休眠模式下,PMU對兩個域都保持功率——提供功率減少,同時允許處理器功能和指令執行的快速恢復。

  在深睡眠模式下,PMU只禁用模擬域——提供保持處理器狀態、外圍寄存器和內部SRAM的最低功率模式,但要求非易失性存儲器的增量電能消耗時間。

  深掉電模式,PMU關閉模擬和數字領域,降低功耗只有3µ在對處理器狀態和指令執行修復較長的延遲成本。

  在所有這三種低功耗模式中,PMU關閉處理器核心。因此,低功率模式的使用會導致恢復到完全工作模式的增量喚醒時間。當然,喚醒時間隨着較低的低功率模式而變長。然而,在實踐中,大多數NFC應用程序的喚醒時間可能足夠快。在最壞的情況下,實現從電源和電源上的應用重置激活模式的總啓動時間只有大約2.5毫秒(毫秒)。


  RF能量收集

  的lpc8n04相對快速喚醒時間爲開發者提供了一個機會,利用設備的能力,從發起者的射頻場本身獲取能量。當VNFC(從射頻場提取電壓)超過閾值,在設備的電源架構源選擇器自動切換裝置的電源從電池到收穫的能源供應(又見圖3)。開發商可以操作lpc8n04僅從源或只是使用RF能量收集作爲一個電池備份源。雖然源選擇器單元自動選擇最佳的來源,開發商能力或vnfc VBAT選擇應用需求決定的。

  在實際中,從接收的RF能量中供電的能力取決於外部讀取器發出的RF場強,以及接收天線電路連接到天線罩的效率。正如前面提到的,開發者只需要連接一個合適的天線的lpc8n04 LA-LB引腳的。然而,在實踐中,最大限度地接收能量的能力取決於最佳設計的天線電路。

  正如任何RFID / NFC的設計,天線的電感和射頻前端的總輸入電容形成諧振電路(天線、接收機、連接寄生)。該組件的總電阻定義了品質因數,它與諧振電路的性能和場強有關。例如,更高的連接電阻降低了品質因數,降低了rf發射機的有效傳輸範圍。

  在設計一個合適的天線產生的輸入電容和輸入電阻對輸入電壓的依賴進一步的併發症(vla-lb爲lpc8n04)。隨着輸入電壓的變化,輸入電容的相關變化導致諧振頻率的變化,而輸入電阻的相關變化導致品質因數的變化。天線設計專家通常通過設計最小輸入電壓來解釋這些變化。


  快速開發平臺

  雖然概念上很簡單,但從零開始實現有效的NFC設計,可能會減慢開發人員快速部署應用程序的能力,因爲這些應用程序充分利用了NFC功能的智能手機。而不是創建自己的系統,開發人員可以立即開始開發NFC應用的基礎om40002 lpc8n04 NXP開發板建築。該lpc8n04板和相關的軟件開發包提供一個立即的NFC解決方案的組合,以及作爲一個平臺來創建定製的硬件設計和軟件應用。

  的om40002板由一個易碎的界面分離兩部分(見如圖4之間缺口的垂直線)。主處理器(MP)部分包括在板的頂部lpc8n04(圖4A,右)和底部集成天線(圖4B,右)。調試探頭(DP)部分包括NXP ARM Cortex-M0 lpc11u35fhi33單片機調試資源(圖4A,左)。在DP部分的底部(圖4B,左),一個5×7的LED陣列和一個表面安裝揚聲器提供了一個簡單的用戶界面機制,用於開發包中包含的示例應用程序。在開發過程中,工程師可以使用完整的板作爲一個完整的系統。對於定製設計,開發人員可以使用完整的板來調試其應用程序軟件,然後分離MP部分用作獨立的NFC子系統。

  NXP om40002板圖像

  

  圖4。NXP om40002板結合調試探針(DP)部分(A和B的左側)和主處理器(MP)的部分,允許開發者將MP部分添加這個完整的NFC系統自身的設計。(圖片來源:凱利訊半導體)

  董事會預裝一個樣本應用程序運行在lpc11u35fhi33 MCU固件。利用板的LED陣列和揚聲器,應用了雙向NFC數據交換格式(Format)的lpc8n04和NFC功能的智能手機之間的通訊採用NXP運行提供免費的Android應用程序。使用的大多數的NFC智能手機和其他移動設備,NDEF是一個輕量級的格式封裝任意數據到一個單一的消息。與樣品的Android應用程序,開發人員可以更清楚地瞭解該類型和數據交換,可以通過他們的智能手機和om40002板之間NDEF大小。


  NDEF處理

  超越簡單的演示能力,然而,示例應用程序開發人員提供了關鍵的設計模式的使用lpc8n04 NDEF消息處理。包括在NXP的軟件開發包,低級別的服務程序辦理登記的水平交易,而一個示例應用程序說明了高層次的操作。包括在開發包,一個主程序說明開發商將初始化lpc8n04硬件和相關軟件結構的主處理循環之前(清單1)。

  主(空)

  {

  int變量;

  uint16_t decposition,數字,prevdigit、指數、文字大小;

  uint32_t tempspeed;

  布爾initdispstarted = false;

  pmu_dpd_wakeupreason_t wakeupreason;

  ();

  wakeupreason = chip_pmu_powermode_getdpdwakeupreason();

  如果(wakeupreason = = pmu_dpd_wakeupreason_rtc){

  *閃爍導致第二*

  lpc_gpio ->數據[ 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();

  }

  別的{

  。..

  *等待命令。基於這些命令發送響應。* /

  而(hostticks < hosttimeout){

  。..

  如果((stargetwritten)和takememsemaphore()){

  stargetwritten = false;

  如果(ndeft2t_getmessage(sndefinstance sizeof(數據,數據,))){

  字符*數據;

  uint8_t * bindata;

  int的長度;

  ndeft2t_parse_record_info_t recordinfo;

  而(ndeft2t_getnextrecord(sndefinstance,與recordinfo)){

  如果((recordinfo.type = = ndeft2t_record_type_text)&(((char *)中的recordinfo.pstring,“恩”,2)= = 0)){

  數據ndeft2t_getrecordpayload(sndefinstance,和長度);

  strncpy(g_displaytext,數據,(size_t)長度);

  g_displaytext [長度] = 0;

  g_displaytextlen =(uint8_t)長度;

  eepromwritetag(ee_disp_text,(uint8_t *)g_displaytext,(uint16_t)(((uint16_t)長度+ 4)和0xfffc));

  startleddisplay(真的);

  }

  else if((recordinfo.type = = ndeft2t_record_type_mime)&(((char *)中的recordinfo.pstring,“application/octet-stream”,24)= = 0)){

  (=,長度);

  如果(bindata [ 0 ] = = 0x53){

  extractmusic(與bindata [ 1 ]);

  eepromwritetag(ee_music_tone,(uint8_t *)& bindata [ 1 ],(uint16_t)(((uint16_t)長度+ 2)和0xfffc));

  如果(musicinprogress){

  stopmusic();

  startmusic();

  }

  }

  如果(bindata [ 0 ] = = 0x51){

  chip_timer_matchdisableint(lpc_timer32_0,0);

  desiredspeed =(uint8_t)(bindata [ 1 ] + 5U);

  如果((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)長度+ 3)和0xfffc));

  }

  }

  }

  }

  releasememsemaphore();

  。..

  清單1:NXP lpc8n04開發軟件包提供了一套完整的庫和示例應用程序軟件演示基本的設計模式的關鍵NFC操作如讀一個NDEF消息在這個代碼片段所示。

  當第一次調用,主程序首先檢查是否開始因爲特定的RTC事件(wakeupreason = = pmu_dpd_wakeupreason_rtc)指示喚醒計數器已過期。如果沒有,例程進入主循環,從讀取器測試各種命令,並在響應中執行適當的操作。如果智能手機不再在範圍內,那麼如果沒有NFC活動,例程最終會超時。

  儘管概念簡單,示例應用程序和底層服務程序提供一個全面的介紹,使用lpc8n04 NDEF消息處理。如清單1所示,該示例應用程序的主循環說明NDEF消息與工作的操作順序。

  在正常操作中,在一個新的外觀lpc8n04 NDEF消息共享內存調用中斷,設置一個標誌(stargetwritten)。在這個信號量的基礎架構,主程序等待直到它可以請求信號量(takememsemaphore())在裝貨前的消息(ndeft2t_getmessage)到緩衝區。日常工作通過NDEF消息(ndeft2t_getnextrecord),提取的有效載荷,並分析結果。

  在這種應用中,如果負載是一個文本字符串,它將數據寫入EEPROM(eepromwritetag)並啓動LED顯示屏(startleddisplay)。而如果有效載荷類型“application/octet-stream”檢查bindata [ 0 ]看看數據是音樂的價值(bindata [ 0 ] = = 0x53)或滾動速度調整(bindata [ 0 ] = = 0x51)。如果是後者,它節省了新的卷軸速度在EEPROM中。如果是前者,常規提取音樂數據(extractmusic),將數據寫入EEPROM中,並重新啓動音樂播放器(startmusic),如果用戶有音樂播放器運行。

  軟件包爲應用程序和服務例程提供完整的源代碼。例如,開發人員可以檢查源代碼中的ndeft2t_getmessage()和ndeft2t_getnextrecord()功能來學習閱讀和處理NDEF消息的細節。在許多情況下,開發商將能夠使用的服務程序無需修改,而是專注於main()常規和他們自己的應用程序的細節。


  結論

  近場通信的應用正在逐步超越銷售點系統。然而,對於開發人員來說,與優化RF性能相關的挑戰,同時儘量減少功耗,即使最有經驗的工程師也能拖延。

  通過集成一個完整的NFC系統,消除了很多lpc8n04 NXP單片機NFC設計的複雜性。爲開發商尋找一個快速的解決方案,NXP lpc8n04基於開發板和軟件提供一個完整的應用程序可以立即使用,以及一個用於創建自定義的NFC解決方案開發平臺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章