介紹
本應用筆記概述了ADI公司具有近場通信(NFC)的安全微控制器。雖然讀者應該對NFC和非接觸式支付技術有一些了解,但為了澄清術語和概念,它包含了最少的背景知識。我們的安全NFC微控制器旨在支持支付系統,特別是歐洲卡,萬事達卡,維薩卡(EMV)非接觸式,并用作讀卡器或接近耦合設備(PCD)。它們不支持卡仿真,蜂窩手機通常將其用作支付方式,例如Apple Pay和Samsung Pay,或點對點通信,例如兩部蜂窩電話之間的數據交換。??????
本應用筆記是ADI公司安全NFC微控制器開發過程中可能出現的問題的主要參考點。
MAX32560
ADI公司的第一代NFC讀卡器最初設計用于支持EMV 2.6a版本。它還在大多數設計中支持EMV 3.0。完整的器件詳情請參見MAX32560產品頁面。它支持A型和B型(ISO 14443 A和B),PBM Classic(MIFARE Classic)和JIS X 6319-4(Felica)的EMV非接觸式協議。?
MAX32570
ADI公司的下一代NFC讀卡器大幅提高了現場功率,可滿足EMV 3.0的苛刻設計和要求。完整的器件詳情可在MAX32570產品頁面上找到。它支持A型和B型(ISO 14443 A和B,鄰近),PBM Classic(MIFARE Classic),JIS X 6319-4(Felica)和ISO 15693(附近)的EMV非接觸式協議。
NFC 概述
NFC 通常是指各種各樣的產品、設備、規格和軟件。許多不同的公司開發了具有各種通信方式的獨特產品,這些產品變得高度分散。將不同產品標準化為有凝聚力的分組的幾項努力已經取得了一些成功,包括ISO規范,EMV非接觸式和NFC論壇。然而,許多專有設備、通信、軟件應用程序仍然在這些分組之外。NFC 應用通常按設備類型、物理層類型、標準和管理機構進行組織。
NFC 基礎知識
從根本上說,NFC是一種成熟的無線通信方法,可提供安全性和便利性。
安全
大多數無線通信(FM收音機,蜂窩,藍牙,Wi-Fi)依賴于遠場天線效應。遠場從距天線λ/2p的距離開始,其中λ是從天線發射的信號的波長。在這個區域,信號能量從天線輻射出去。遠場距離的其他天線彼此的影響可以忽略不計。這對于AM/FM收音機來說是有益的,以便在交通高峰時段接收足夠的信號來收聽收音機。但是,它給支付系統帶來了安全風險。任何有天線的人都可以竊聽對話,并且很難控制錢包中的哪張卡用于付款。?
近場靠近天線,定義為小于λ/2p。能量主要存儲在天線的主場中,而不是輻射。對于NFC系統,這個距離約為3.5m,但對于低功耗系統和小型天線,典型的NFC工作距離限制在4cm或更小。在這個區域,接收信號的天線會影響發射信號。這種獨特的近場效應行為允許NFC。結果是支付卡或設備必須靠近終端進行處理,這使得通信極不可能被攔截,因為持卡人可以看到任何足夠近的監聽天線。這也意味著您口袋里的支付卡不會被無意中檢測到和收費。
方便
除了通信距離外,近場天線效應還允許從讀卡器向卡傳輸電力。這意味著NFC卡不需要電池或其他像收音機或手機那樣的自供電方式。這使得卡的功能與信用卡幾十年來的工作方式大致相同。想象一下,在購物前必須為信用卡充電或更換電池。這種收集能力使卡片或標簽設計簡單,生產成本低廉,便于在廣泛的應用中使用,包括將數千個標簽部署到書籍、盒子等中的庫存管理系統。這是對電磁理論和近場和遠場天線行為的簡化解釋。
設備類型
設備類型根據功能將產品及其關聯技術組織成組。
PCD(接近耦合設備):讀卡器和終端產生用于為 PICC 供電并提供通信介質的近場。ADI公司的NFC微控制器實現了這種類型。
PICC(感應IC卡):支付和身份證,標簽,智能郵票等。是進入近場時供電的設備。
卡仿真:支持此功能的設備類似于PICC的設備,但可以提供自己的電源。手機將其用于支付方案,例如Apple Pay。
點對點:通常用于在能夠生成自己字段的兩個設備(例如兩個蜂窩電話)之間交換數據。
物理/射頻層類型和標準
對 NFC 設備進行排序的另一種常見方法是按它們支持的物理層類型、調制方案和使用的位編碼。ADI公司僅支持使用13.56MHz載波頻率的類型。還有其他載波頻率用于各種應用,但它們超出了本文檔的范圍。這些類型通常由其標準引用,但有一些別名。此外,各種類型之間存在重疊。
NFC設備通過調制PCD和PICC之間的場幅進行通信,這稱為幅度移位鍵控(ASK)。PCD通過改變其產生的磁場的輸出功率來實現這一點。外周中心增加或減少其在場上的負載,稱為負載調制。PCD 使用 100% ASK 或 10% ASK 進行傳輸,具體取決于類型。10%ASK有點用詞不當,因為實際幅度要求因類型和與場產生天線的距離而異。就本文件而言,所有低于100%的ASK將被稱為10%。PICC的負載調制幅度比發射器的調制小得多。即使將示波器連接到PCD天線接收引腳,也很難看到。回想一下,負載調制通信只能在近場進行。
以下列表提供了有關各種物理設備類型的基本詳細信息。每種類型都由命名標準定義,可以查閱以獲取完整的詳細信息。圖1顯示了各種類型,并提供了每種類型的產品示例。它還說明了NFC產品和技術的復雜性和碎片化。
ISO/IEC 14443 A
由于要求在距PCD天線4cm或更短的距離內工作,因此這種類型被稱為接近。它還將其與 ISO/IEC 15693 區分開來。這種類型也稱為A型或NFC-A型。PCD至PICC使用100%ASK調制和改進的米勒位編碼。PICC到PCD使用具有開斷鍵(OOK)和曼徹斯特位編碼的子載波。
ISO/IEC 14443 B
類型 A 和 B,也稱為 NFC-B,在相同的 14443 規范中一起定義。B 型 PCD 至 PICC 使用 10% ASK 調制和不歸零 (NRZ) 位編碼,如串行 UART。PICC至PCD使用具有二進制相移鍵控(BPSK)和NRZ-L位編碼的副載波。
費利卡
這種類型在日本開發和流行,也稱為F型,C型,NFC-F型和JIS X 6219-4。與A型和B型不同,F型對兩個通信方向使用相同的曼徹斯特位編碼。PCD 到 PICC 使用 10% ASK,而 PICC 到 PCD 使用負載調制,沒有子載波。
ISO/IEC 15693
這種類型被稱為附近,因為它被設計為比 A 型和 B 型(也稱為 NFC-V)更遠離讀卡器天線。該技術主要用于射頻識別(RFID)和庫存跟蹤。V型包括許多不同的模式,允許閱讀器根據應用定制通信方法。鄰近耦合器件 (VCD) 到鄰近 IC 卡 (VICC) 使用 100% 或 10% ASK。100% 為嘈雜環境提供更高的信號幅度,而 10% 允許遠處的設備保持恒定的功率傳輸量。位編碼使用 1 個中的 256 個或 1 個中的 4 個。激活通信時,VCD 將 VICC 配置為使用單載波或雙副載波調制,每種副載波調制都有獨特的位編碼和低或高數據速率。
ISO/IEC 18092
此類型也稱為點對點,基于 ECMA-340。它使用A型和F型的某些部分,具體取決于通信速度。它允許設備成為發起方或目標以及主動或被動通信。
高分辨率圖像 ?
圖1.NFC 類型和標簽概述。
通信速度
每種類型都支持多種通信速度。速度由每個位中的載波周期數定義,其中 fc 為 1.13MHz。用于PICC到PCD通信的A型和B型的副載波(fs)為fc / 56或16kHz。在默認的 848Kbps 速率下,每個位時間為 106 個子載波周期 fs/8 或 fc/8。允許的速度范圍為 128、106、212 和 424Kbps;每個更高的速度使用更少的子載波每比特時間。因此,較高的速度不如較低的速度堅固。更復雜的是,在高于848Kbps的速率下,A型PICC到PCD通信通常使用BPSK與B型PICC類似,但具有不同的成幀。在實踐中,106Kbps 通常是使用的最高速度。請注意,ADI公司的NFC微器件目前僅支持A型和B型的默認速率424Kbps。
F型默認速率為212Kpbs,支持424Kpbs。 ADI公司的NFC微器件目前僅支持212Kpbs的默認速率。
V 型速度稍微復雜一些,因為 VCD 到 VICC 的速度是 1/4,速度為 26.48Kbps,1/256 的速度為 1.65Kbps。VICC到VCD使用~fc / 2048或6.6Kbps的低速和~fc / 512或26Kbps的高速。如果使用雙副載波,這些 VICC 到 VCD 速率會略有變化。
ISO 18092 名義上定義了 106、212 和 424Kbps 的速率。它還列出了更高的速度,但沒有指定這些速度的調制或位編碼。
電動輪車
歐洲卡,萬事達卡,維薩卡(EMV)是支付卡的主要管理機構。它提供了接觸卡(智能卡)和非接觸式(NFC支付卡)等的規格。EMV 非接觸式 1 級規范包括 A 型和 B 型,1 級處理卡識別、激活以及從應用協議數據單元 (APDU) 到 RF 調制的通信。重要的是要知道,雖然這些是從ISO 14443類型中采用的,但它們并不相同。EMV 不允許一次在現場使用多張卡。如果檢測到沖突(通常來自字段中的多張卡),則交易將終止。ISO 14443 詳細說明了允許在現場多張卡時識別和通信單個卡的程序。EMV 指定通信將僅采用 106Kbps 的默認速率。
EMV還要求PCD和PICC設備進行嚴格的認證測試,以符合EMV非接觸式標準。為了通過EMV 1級認證,必須成功完成模擬、數字和互操作性測試。請注意,各種卡供應商(如Visa和萬事達卡)也有針對2級的詳細認證測試,以驗證支付供應商特定的應用程序和程序。ADI公司提供的DTE(器件測試環境)示例軟件設計用于1級測試。
米法爾
MIFARE是恩智浦開發的產品,是最常見的NFC卡類型,已售出超過10億臺卡設備。MIFARE卡有許多不同類型和尺寸,包括MIFARE Classic(最常見的),Plus,Ultralight,Ultralight C,1K,2K,4K和DESFire。其中一些類型完全符合ISO 14443 A型,而有些僅部分符合。經典卡,如 1K 和 4K,使用加密方案對事務的奇偶校驗和數據位進行加密。這阻止了使用標準的A類通信程序。但是,DESFire 卡完全符合 ISO 14443 A 型標準。????
NFC論壇
NFC論壇是由恩智浦、索尼和諾基亞創立的非營利性行業協會。他們試圖組織分散的NFC技術領域,并通過根據其支持的行為和物理/ RF類型將卡分組為不同的標簽編號來執行質量標準。??
其他類型和標準
還有許多其他卡片技術,包括Calypso,GTML(例如,Type B素數或Innovatron),Topaz,Jewel,iClass,超出了本文檔的范圍。ADI公司的NFC微器件不提供示例代碼或支持這些技術或上述未提及的其他技術。其中一些可以使用RF驅動程序提供的最低接口級別來實現,但支持留給讀者進行練習,不能保證。???
驅動程序、軟件和堆棧
ADI公司的NFC安全微控制器主要面向支付應用,并不試圖支持所有類型的NFC設備和技術。圖2顯示了早期的NFC類型和標簽圖表,其中疊加了ADI公司提供的軟件的使用位置。此圖表旨在作為概述,而不是軟件和功能的明確表示。
高分辨率圖像 ?
圖2.NFC 庫支持概述。
物理層和射頻層由模擬前端(AFE)、數字基帶(DBB)和射頻驅動器(libnfc_pcd_rf_driver,青色)提供。在此之上,是各種協議、激活和數據傳輸協議。libnfc_pcd_emv_l14443_stack(綠色)支持 EMV 和 ISO 1 設備。MIFARE Classic 設備激活和加密通信由 libnfc_pcd_pbm(紫色)提供。請注意,RF 驅動程序不支持 Topaz、Jewel、GTML、FeliCa、ISO 18092 和 ISO 15693。目前,ISO 15693僅適用于MAX32570的beta級評估,不適用于MAX32560。
射頻驅動器
對ADI設備上的非接觸式無線電的訪問由硬件抽象層(HAL)提供,該層在我們的文檔中稱為RF驅動程序。RF 驅動程序為復雜的底層無線電硬件提供了簡單的 API,而不會損失功能或可配置性。RF 驅動程序處理協議成幀、AFE 調諧和低級時序要求。它與軟件無關,并在其上方堆疊,如果需要,允許使用隨附的EMV 1級(L1)堆棧或第三方L3堆棧。MAX1和MAX32560具有不同的RF驅動器,因為它們具有不同的功能并支持一些不同的類型。但是,它們提供的 API 實際上是相同的。
完整的 API 文檔、資源使用情況、集成指南和版本歷史記錄包含在基于Doxygen的編譯HTML(CHM)文件中,該文件隨非接觸式支持包(CSP)的每個版本一起分發。RF 驅動程序主要以二進制庫形式(閉源)發布。某些功能在源可用文件 mml_nfc_pcd_port.c 中實現。移植文件允許自定義RF驅動器并將其集成到特定應用程序中。
收發
激活該字段后,所有通信都以PCD傳輸開始,并等待PICC回復。每個收發操作都由提供給RF驅動器的以下參數決定:
協議:上面定義并由微支持的物理/射頻類型之一。
幀類型:大多數類型使用由 8 位字符和 CRC 組成的標準成幀。A型在激活過程中使用特殊的短幀。
數據:傳輸數據和長度,用于存儲接收數據和長度的指針。
計時:三個計時參數用于強制和驗證協議要求。
框架
每種類型都有自己的成幀要求,包括幀開始 (SOF)、幀結束 (EOF)、奇偶校驗、開始停止位、CRC、位順序、前導碼、預告片、字符間延遲等。RF驅動器的收發功能滿足了所有這些成幀要求。在傳輸之前,數據根據需要封裝,以滿足每個協議/類型的成幀要求。在接收期間,將驗證成幀,然后從接收的數據中剝離。在此級別添加到通信的大部分幀旨在防止和檢測通信問題,因為任何無線連接本質上都是不可靠的連接。如果任何成幀不正確,RF 驅動程序將在收發功能返回的狀態中將其報告為錯誤。為了提供最大的調試和可見性,每個成幀要求和潛在錯誤源都有唯一的錯誤代碼,其中包含 70 多個錯誤代碼。
RF驅動器還提供稱為收發位的原始接口。此接口使用與上述收發功能相同的所有參數,但幀類型除外。此模式繞過了大部分協議/類型成幀。它主要用于類型 A,允許按位防沖突過程和加密的 PBM (MIFARE) 通信。目前,在位模式下僅支持類型 A 協議,因為沒有其他類型需要這種低級通信形式才能正常運行。
定時
RF 驅動程序使用三個時序參數來強制和驗證協議要求。這些參數被賦予描述性名稱,以幫助解釋其用途。為方便起見,它們以 1/fc 單位(又名 fc)為單位。協議/類型規范中的大多數時序參數都使用此作為基本時間單位。只要空閑且可能,RF 驅動程序將調用移植功能mml_nfc_pcd_task_sleep以允許進行其他關鍵系統和應用程序操作,例如更新 LCD 等。收發功能的三個時序參數詳述如下。圖 3 進一步說明了每個參數及其使用方式。
delay_till_send:提供一種精確控制兩個連續PCD操作之間的時序的機制。這可用于強制兩個傳輸之間的間距(FDTpcdmin)或允許所需的時間量(5.1ms)使PICC在磁場首次通電時預熱。此時間適用于PCD傳輸開始之前。它是從先前的有效操作中測量的:成功接收的有效PICC響應的結束或最后一次PCD發送的結束。啟用RF場也會啟動定時器,從而精確控制現場卡的上電時間。圖3、圖4和圖5顯示了這些不同的時序情況。
超時:PCD傳輸結束與收到有效的PICC響應之間的最大允許時間限制。如果過期,RF 驅動程序將返回無數據和超時錯誤代碼。每個協議都有特定的成幀步驟和要求,規定在超時發生之前必須接收的內容才能被視為有效。例如,如果接收在接近超時時開始,但在超時發生之前收到 SOF,則響應在沒有任何其他通信錯誤的情況下將被視為有效。
early_limit:協議規范對 PICC 在收到 PCD 報文后響應的速度有特定要求。這是由 early_limit 參數強制執行的。如果接待在此時間之前開始,即使所有其他檢查都通過,也將被視為無效。請注意,在EMD模式下,如果完整的消息到達這個聾啞時間,則可以接收并忽略它。
圖3.具有有效PICC響應的收發時序圖。
圖4.無效或缺失外周中心靜脈導管響應的收發時序。
圖5.射頻激活后的收發定時。
錯誤處理
必須驗證和檢查每個潛在的PICC響應,以檢查各種錯誤條件。檢測到的錯誤將報告給呼叫軟件,由呼叫軟件確定必須如何處理這些錯誤。返回的錯誤類型大致分組如下:
成功
超時。除了上面詳述的標準超時之外,還可能發生一些其他與超時相關的錯誤代碼。有關更多詳細信息,請參閱 RF 驅動程序 API 文檔。
傳輸錯誤。由于類型/協議之間的差異,這是最大的錯誤代碼組。響應可能在幾個不同的層出現錯誤,包括無效成幀、位編碼符號、奇偶校驗、開始、停止、前導碼等。即使這些低級檢查通過,也可能發生不完整的數據,或者數據包的CRC可能無效。驗證這些潛在陷阱后,數據包仍可能違反所需的計時條件。
碰撞。每種類型/協議都有自己的方法來檢測碰撞,當現場有多個卡時會發生沖突。請注意,這些特定于類型的沖突檢測僅在字段中找到兩個或多個相同類型的卡片時進行檢測。1 級技術輪詢過程旨在檢測與不同類型的設備(如 A 型和 B 型)的碰撞。
電磁干擾(EMD)是一種特殊情況,具有自己的錯誤處理要求。此特定類型的錯誤僅適用于 EMV 通信。EMD 處理使用幀類型FT_STANDARD_CRC_EMD為給定收發功能啟用,如 API 文檔中所述。有關導致響應被視為 EMD 的特定條件的詳細信息,請參閱 EMV L1 規范。如果響應足夠短并且存在某種類型的錯誤,則必須將其視為 EMD。在EMD模式下,RF驅動器需要丟棄此數據包,并立即為任何后續響應做好準備。所需的周轉時間(tRECOVERY,1280fc)和收發功能的API要求RF驅動程序直接處理這些情況,這發生在RF驅動程序的中斷服務例程(ISR)中。圖 6 顯示了 EMD 的一個案例。請注意,所有 EMD 數據包都會被丟棄,并且在超時之前可能沒有有效的響應。
圖6.電動可移動工具響應。
可移植性
為了支持不同的產品和用例要求,RF 驅動程序的某些部分駐留在文件 mml_nfc_pcd_port.c 中。此文件作為源發布,而大多數 RF 驅動程序僅是二進制文件。這些功能允許系統集成商決定如何為其系統最好地實現每個功能。使用實時操作系統 (RTOS) 的應用程序具有用于關鍵部分進入和退出的專用例程,以及可在睡眠調用期間使用的任務生成功能。有關更多詳細信息,請參閱有關移植的 API 文檔。查看 DTE(單線程)和 FreeRTOS 演示中提供的移植文件的示例實現。
模擬配置
RF驅動器的最后一個主要功能是允許在每個收發器功能的基礎上配置模擬前端(AFE)。為了最大限度地提高可配置性,收發功能調用公共移植功能mml_nfc_pcd_field_level_detection_callback。它必須確定用于當前正在處理的收發器的模擬參數。RF驅動器為功能提供協議類型,因為每種類型可能需要不同的模擬配置,具體取決于特定設計的獨特挑戰。
字段級檢測在 API 中通常縮寫為 FD。FD電平表示PCD和PICC天線線圈之間的磁耦合強度。FD可以被認為是表示線圈之間的距離,但這只是耦合中的一個因素。線圈之間的方向、偏移和有源負載(功率收集)也會影響負載。
通常,該功能mml_nfc_pcd_field_level_detection_callback利用一個矩陣,其中包含指定FD級別的特定設計的設置。它調用RF驅動器功能mml_nfc_pcd_detect_loading以確定此電平,然后為當前收發功能選擇模擬配置。注意,由于特性集不同,MAX32560和MAX32570的模擬配置參數結構存在差異。
這種模擬配置的動態控制是一個強大的工具,允許自定義與卡的所有通信。圖 7 顯示了一個調用樹圖,解釋了此功能的工作原理。有關更多詳細信息,請參閱 CSP 和 SDK 安裝隨附的文檔、NFC PCD AFE 調諧指南、PCD 天線匹配設計指南、EMV DTE 用戶手冊和 EMV 3.0 應用筆記。
圖7.動態模擬配置回調。
PBM MIFARE 兼容經典庫
PBM 庫旨在與 MIFARE 經典卡(通常稱為 1K 或 4K 卡)兼容。這些卡廣泛用于交通、訪問控制、活動票務等。MIFARE卡有許多不同類型的,包括DESFire,Ultra-Light,UL C,Plus和Plus EV1等。已知其中許多類型使用兼容的低級傳輸,并且不需要使用 PBM 庫。PBM 庫僅以二進制形式發布。請注意,Maxim目前不提供示例代碼,演示與經典卡以外的任何MIFARE卡的激活和通信。非經典的MIFARE卡類型更符合標準。因此,應用可以使用標準RF驅動器收發功能命令和EMV L1堆棧的某些部分與它們通信。
MIFARE經典卡利用專有密碼來保護PCD和PICC之間交換的數據。此密碼被公開承認為已泄露,不應依賴它來確保數據安全。密碼方法導致通信不符合ISO 14443,盡管它們遵守A型卡的大多數規定。主要區別在于成幀和應用程序級數據交換。加密通信加密數據字節和關聯的奇偶校驗位,這是 ISO 14443 第 3 冊成幀所要求的。這意味著奇偶校驗位不再是低級活動通信期間的實際奇偶校驗位,整個數據包必須在通信前加密,接收后解密;因此,使用術語奇偶校驗旁路模式 (PBM)。這與其他協議完全不同,其他協議對每一層都有明確的責任劃分,例如網絡OSI模型。清除位 6 的 Select 命令的經典卡類型響應表示它們不支持 ISO 14443-4,即使用 APDU 的半雙工塊傳輸協議。相反,這些卡使用專有的命令響應協議。
激活
盡管MIFARE經典卡不完全符合ISO 14443-3,但它們仍然使用其中詳述的大部分激活和初始化過程。用于 EMV 卡的相同輪詢例程用于查找和激活這些卡;但是,輪詢例程返回錯誤代碼TYPE_A_NON_ISO14443_4_READY。為了確定正確的通信程序,MIFARE應用筆記描述了確定現場找到的MIFARE卡的確切類型所需的程序。請參閱卡制造商的數據表和用戶指南,了解完整的激活和通信詳細信息。
命令
MIFARE 經典數據和文件結構詳細信息超出了本文檔的范圍。請參閱卡制造商提供的用戶指南和數據表,了解這些卡的完整結構和功能詳細信息。
ADI公司提供對MIFARE經典卡的原始命令訪問。這些命令提供對所有卡數據和功能的訪問,并在設備測試環境 (DTE) 示例應用程序 P. 傳輸經典 (PBM) 菜單項中演示。ADI公司的DTE用戶手冊附錄A提供了有關這些命令的詳細信息,并包括訪問卡上數據的兩個示例使用流程。
收到有效的選擇確認 (SAK) 后,必須對所需的訪問塊進行身份驗證。這需要塊密鑰的應用程序知識,該密鑰寫入扇區拖車中。如果應用程序不知道此密鑰,PBM 庫將無法完成目標數據塊的身份驗證,并且無法訪問它。請注意,空卡或未格式化的卡通常也使用空塊密鑰制造(即,所有 64 位密鑰:0xFFFFFFFFFFFF)。DTE 示例默認對所有 PBM 通信使用此密鑰。這可以通過菜單選項更改,也可以通過示例修改覆蓋。
電動車 L1 堆棧
ADI公司的安全微控制器主要針對支付應用。EMV 1 級 (L1) 規范是非接觸式支付行業中使用最廣泛的規范。對EMV L1的支持是每個設備可用的NFC DTE示例代碼的主要功能。結合器件評估套件,它是一個完整的解決方案,能夠完成所需的EMV L1認證測試,包括模擬、數字和互操作性。
ADI公司的EMV L1堆棧與DTE示例代碼的其余部分一起作為源發布,允許針對任何獨特的應用要求進行定制,例如時序不兼容的卡、響應等。
L1 堆棧由兩部分組成,輪詢代碼和 EMV L1 規范中定義的半雙工傳輸協議,基于 ISO 14443-4。輪詢例程通常由應用程序代碼訪問,以在現場查找潛在的卡,而 L1 堆棧通常綁定到 EMV 應用的 2 級堆棧中。
投票
術語輪詢是用于識別和激活NFC字段中的卡的算法過程。ISO 14443 和 EMV 規定的所需輪詢過程類似。它旨在按順序查找字段中多種類型的卡片;但是,存在一些重要的差異。對于ISO 14443,期望使用復雜的防沖突程序在現場查找和識別所有可能的卡片,該程序旨在允許所有卡片以其唯一的識別號進行響應。然后,可以對這些卡進行索引,并通過應用程序代碼單獨選擇這些卡,以找到所需的卡。在EMV中,在字段中發現的多張卡被視為碰撞,不允許。EMV L1 為處理在多技術輪詢和激活的防沖突階段發現的沖突提供了特定要求,這是輪詢和激活過程中止的典型特征。
DTE 的輪詢例程在文件 EMV_polling_and_loopback.c 中提供。請務必注意,此文件包含兩個單獨的卡輪詢例程:singleemvl1exchange 在環回模式下用于 L1 認證測試,emv_poll_for_card 用于最終應用程序。主要區別在于,應用程序模式在未找到卡片時重置字段。找到卡后,將返回并成功激活。測試模式會自動進入環回模式,如EMV DTE規范中所述。發送鄰近支付系統環境 (CAPDU PPSE),并將 RAPDU 作為下一個 CAPDU 重新發送,除非有特殊的退出案例代碼或發生錯誤。PPSE 命令通常是發送到激活的 EMV 卡的第一個命令,響應標識卡供應商。
請注意,雖然 EMV L1 規范允許 PCD 輪詢其他技術,例如 FeliCa 等,但 DTE 僅輪詢 EMV 類型 A 和 B。DTE 的功能是實現 EMV 要求。它不支持 ISO 14443 樣式的多卡檢測和處理。盡管 RF 驅動程序提供了執行 ISO 14443-3 多卡防沖突程序所需的所有機制,但目前在 1 級堆棧或 DTE 示例中不支持此功能。
亞太都大學運輸
應用協議數據單元 (APDU) 在接觸式 EMV 規范中有詳細說明。它們是應用程序和 2 級堆棧之間的邊界,以及較低的 1 級功能。APDU 可以是命令 APDU (CAPDU) 或響應 APDU (RAPDU)。大多數卡用戶指南和數據手冊都詳細介紹了支持的 CAPDU,以及預期 RAPDU 的結構。這些的格式和解碼是 2 級軟件的功能。
在激活階段,PICC 響應包含各種通信參數的應答選擇 (ATS),L1 堆棧必須符合這些參數。這些參數包括等待PICC響應的時間,PICC可以接收和傳輸的塊數據包大小等。堆棧調整收發功能數據包以適應這些卡請求(如果它們在指定范圍內);否則,它將啟動異常處理過程。L1 規范允許卡請求額外的操作時間,并提供確認 (ACK) 和否定確認 (NAK) 程序以方便重試。當然,L1 堆棧中的大多數操作在聲明錯誤之前最多可以重試三次。此功能增強了無線連接和低級 EMD 處理例程的魯棒性。
2 級及以上
PCD和PICC之間有許多順序交換的CAPDU和RAPDU,這是完成任何交易(例如購買)所必需的。這些 APDU 的確切順序和格式,以及命令和響應中的數據格式,是 2 級堆棧提供的功能的一部分。不同的信用卡公司對他們的支付應用程序有自己的規格。這些特定的應用程序通常稱為內核。EMV 詳細介紹了七種不同的 L2 內核。每個都對應不同的支付公司,例如維薩卡、萬事達卡、美國運通卡等。
與 EMV 1 級不同,EMV 2 級內核不太符合行業標準。大多數主要的信貸公司,包括Visa(payWave)和萬事達卡(PayPass),都有自己的2級內核規范和自己的認證流程,分別是EMV。??
級別 2 以上的事物定義不太明確,稱為應用程序級別。應用程序級別負責所有系統任務,包括屏幕更新、引腳輸入、主機通信(USB、藍牙、Wi-Fi)、支付方式識別(NFC、聯系人、MSR 等)、與支付服務器的加密安全通信以及其他遠程資產。
阿馬迪斯
ADI公司不支持超過1級的NFC應用。我們與 Amadis 合作,Amadis是 2 級支付軟件的行業領導者。
例子
ADI公司為每個安全NFC微控制器提供了兩個示例。DTE 示例按照 EMV DTE 規范的要求和詳細說明實現設備測試環境。這是最好的例子,它向非接觸式無線電公開了大多數功能。這是任何受支持的微型的NFC相關開發的起點。每個評估板都附帶一個演示示例,SDK中也提供該示例。這包括用于執行主要評估板功能的軟件,如LCD、觸摸屏、安全引腳板、MSR、智能卡/接觸式EMV和NFC。演示示例與 DTE 示例有很大不同,因為它使用 FreeRTOS 而不是單線程。提供了 mml_nfc_pcd_port.c 的不同實現,與 FreeRTOS API 接口。
演示示例設置為讀取輸入該字段的任何支付卡。找到的任何卡都會被激活。如果它們支持 ISO 14443-4,則執行 PPSE CAPDU。所有符合 EMV 標準的支付卡都響應此命令。響應包含應用程序標識符代碼 (AID),通常包含一個帶有支付公司名稱(即 Visa、萬事達卡等)的 ASCII 字節數組。如果沒有文本名稱,演示將在已知提供程序的表中搜索收到的 AID 代碼。在任一成功讀取的情況下,AID和提供商名稱都會顯示在液晶屏上,并發出成功蜂鳴音。請注意,任何未安裝有效付款小程序/應用程序的卡在發送 PPSE 時都會返回錯誤代碼。如果是這樣,液晶屏顯示卡無法處理 PPSE,這意味著它已成功激活,但缺少 EMV 支付小程序。該演示還試圖識別在現場發現的任何MIFARE卡。請注意,這僅用于演示目的,不適用于每個 NFC 卡或設備。目前,它僅嘗試發現 A 型和 B 型卡。
硬件注意事項
盡管EMV 1級堆棧和RF驅動器試圖通過硬件抽象消除低級復雜性,但每個系統和應用都必須考慮硬件配置。由于近場天線效應的性質,系統機械和設計需要仔細的天線放置、匹配和模擬前端(AFE)調諧。
天線尺寸和位置
在銷售點 (POS) 終端設計過程的早期考慮天線尺寸至關重要。天線尺寸和位置高度依賴于給定解決方案的物理形狀和機械設計。許多設計選擇發生在印刷電路板 (PCB) 設計或應用軟件開發開始之前。天線太小或位于設計有問題的區域可能會導致無法實現所需的NFC性能范圍。
通常,較小的天線更難成功通過 1 級認證和性能標準。建議使用MAX32560的設計應使用5cm x 5cm或更大的天線,而MAX32570天線應使用4cm×4cm或更大。針對給定設計,非接觸式天線的最佳設計極其復雜,超出了本文檔的范圍。
此外,應注意優化非接觸式天線的放置。由于近場效應,天線范圍內(~4cm半徑)內的任何黑色金屬或導電金屬都會降低可用于為PICC供電的輻射功率。組合小天線,同時將寄生機械裝置放置在天線附近會導致性能不佳。鐵氧體材料可用于減輕磁場附近各種寄生金屬的負載效應。
有關詳細信息,請參閱 PCD 天線匹配設計指南和 NFC PCD AFE 調諧指南。請注意,天線設計是一個高級專業主題,通常需要多年的教育、經驗、電磁設計和仿真工具的使用。一些NFC天線可以購買現成的,可用于原型設計目的。也有第三方公司專門從事定制天線設計。
耦合效應
盡管PCD和PICC必須靠近NFC通信才能成功,但極近的距離會損害信號完整性,嚴重到足以違反EMV 1級要求并降低通信可靠性。兩個天線之間的耦合效應隨著PCD天線尺寸的減小以及PCD和PICC天線尺寸的接近而增加。
物理系統設計強制兩個天線之間保持一定距離,因為PCD天線通常位于顯示器后面或塑料外殼內。建議兩個線圈之間有大約 5mm 的間隔或間隙。這個距離是一個很好的折衷方案,可以在近距離內實現合理的信號完整性,而不會犧牲遠距離的讀取范圍和功率輸出。但是,每種設計的最佳分離都是獨一無二的。
電力輸送
從PCD輸送到PICC的功率可能是需要考慮的最關鍵參數。與其他規格所需的體積相比,EMV 1級所需的工作體積相當大。EMV 2.6 和 3.0 之間的更改使其要求更高。雖然規范增加了所需的功率,但緊湊型和便攜式POS設備的設計趨勢會損害可用功率(即,較小的天線和寄生金屬材料靠近天線)。
為了解決這個問題,MAX32570設計用于為PCD天線提供更大的功率。有關實現電源要求的進一步指導,請參閱每個器件的非接觸式PCD應用筆記 – EMV 3.0 1級模擬應用筆記。
匹配網絡
匹配網絡將微控制器的13.56MHz場發生器(發射器,Tx)引腳的輸出連接到NFC天線。它由兩部分組成:電磁兼容性(EMC)濾波器和阻抗匹配部分。由于每個系統都有獨特的環境寄生效應、天線設計和布局,因此匹配網絡也必須針對應用進行定制。PCD天線匹配設計指南中提供了有關調諧的詳細指導。需要注意的是,環境和外殼寄生效應會影響天線的匹配條件。建議使用盡可能完整的設計原型執行匹配過程,以避免在以后系統調整發生變化時大量重復工作。
ADI公司建議網絡的EMV濾波器部分盡可能靠近安全微控制器,以最大程度地減少信號損失、失真和輻射電噪聲。建議匹配部分靠近天線,如有必要,這些部分之間的走線允許更長。總體而言,從微型到天線的走線長度應盡可能短,以最大限度地提高功率傳輸。
AFE 調諧
選擇并放置NFC天線,并調諧匹配網絡以獲得最佳性能后,可以開始模擬前端(AFE)調諧的最后階段。AFE 調整過程通常需要在系統集成的硬件方面花費最多的開發時間。AFE 調整是迭代的。雖然初始值可以提供合理的性能,但通過EMV L1模擬測試套件需要進行修改,這可能導致多次迭代調諧以確保穩健的性能。有關詳細信息和指導,請參閱非接觸式 PCD AFE 調諧指南和非接觸式 PCD 應用筆記 – EMV 3.0 1 級模擬。請注意,更具挑戰性的系統(即,更小的天線和封閉寄生效應增加的負載效應)需要更長、更困難的AFE調諧。
完成 AFE 調諧會創建一個mml_nfc_pcd_analog_params_matrix_t陣列,應用軟件使用該陣列來支持給定的系統天線。DTE 隨附的 NFC 天線的模擬設置矩陣,并在啟動時應用此矩陣。為了支持不同的天線,DTE 示例和最終應用程序必須使用精心調整的 AFE 設置版本覆蓋此矩陣,這些設置旨在支持特定的天線和系統。DTE 提供菜單命令,用于在調諧時調整模擬設置,這些命令在《非接觸式 PCD AFE 調諧指南》和《EMV DTE 用戶手冊》中有詳細說明。在 DTE 中完成 AFE 設置后,使用菜單命令 P. 將當前矩陣打印為 C 結構將當前配置的矩陣復制并粘貼到 DTE 或應用程序源代碼中。
mml_nfc_pcd_port.c 文件中的mml_nfc_pcd_field_level_detection_callback函數使用此矩陣為當前協議類型動態選擇正確的模擬設置。有效距離為與PICC的每次通信提供詳細的參數控制。
SDK、庫和示例安裝
要使用ADI公司帶NFC的安全微控制器,必須使用最新的NFC插件或庫安裝和更新所需的軟件開發套件(SDK)。非接觸式支持包 (CSP) 軟件和文檔可與為相應設備發布的 SDK 配合使用。SDK可通過ADI公司網站“設備”頁面的“設計資源”選項卡獲得。對于MAX32560,CSP是一個存檔,結合了Eclipse插件與文檔文件(編譯的html,.chm)和插件安裝指南。MAX32570使用不同的SDK。NFC產品庫可通過ADI公司的micros軟件開發套件維護工具安裝,但需要安裝NFC存儲庫URL。由于NFC支持包需要保密協議(NDA),請聯系ADI公司以獲取安裝說明和存儲庫URL。?
云解決方案提供商包含的文檔
CSP 中包含的文檔內置于單個文件中,以便于查看。它結合了幾個降價文檔、白皮書和 Doxygen 庫 API 詳細信息。
電動車輛 DTE 用戶手冊
本手冊隨附 DTE,并說明了如何使用示例:電路板檢查、連接、電源、菜單選項和故障排除。
PCD 天線匹配設計指南
本指南逐步介紹設計決策和問題,以獲得非接觸式接口的最佳模擬性能。對于每個非接觸式設計,正確完成此操作至關重要。
匹配設計計算
此電子表格應與PCD天線匹配設計指南結合使用。它提供了易于使用的方程來求解天線匹配分量值。
NFC PCD AFE 調諧指南
本指南介紹了非接觸式設計所需的最終模擬調諧。應在最佳天線匹配后使用。
評估板EMV L1測試報告
這些模擬和數字報告是使用內部Micropross EMV 1級測試儀生成的。
實施一致性聲明 (ICS)
EMVCo 要求提交認證的每個獨特設計/產品都需要此表格。它提供了安全微控制器中 1 級堆棧和硬件行為的具體細節。僅供參考。
射頻驅動程序文檔
RF 驅動程序的降價頁面包含指向 API 文檔的鏈接。它提供了有關資源使用情況的重要指導,包括計時器利用率、IRQ 和可移植性配置詳細信息。可移植性是指在與客戶應用程序系統集成期間實施和修改的方法。
ADI公司EMV L1堆棧文檔
EMV L1 堆棧降價頁面包括堆棧功能的一些高級描述和指向 API 文檔等的鏈接。
PBM 庫文檔
PBM 庫標記頁面包括庫功能的一些高級描述和指向 API 文檔的鏈接等。
設備用戶指南
用戶指南詳細介紹了除NFC/非接觸式外設之外的安全微控制器的所有部件。
應用說明
MAX32570非接觸式PCD應用筆記 – EMV 3.0 1級模擬
MAX32560非接觸式PCD應用筆記 – EMV 3.0 1級模擬
這些應用筆記是補充性的,旨在幫助解決EMV 1級模擬認證期間遇到的特定問題,可從器件登錄頁面獲取。
故障 排除
ADI公司努力提供必要的信息和工具,以促進非接觸式解決方案的設計和開發。與任何足夠復雜的系統一樣,根據RF設計的相對難度,可能會遇到問題。
模擬性能問題
由于使用帶NFC的安全微控制器的每個設計都存在獨特的模擬挑戰,因此可能會出現許多問題和情況。新設計不能自動保證最佳性能。一種設計中使用的天線和濾波連接可能無法在另一種設計中使用。使用以下文檔中詳述的設計過程至關重要。注意MAX32560和MAX32570的每種文檔都有不同的版本,因為這些器件具有一些不同的特性。但是,大多數信息是相同的。
PCD 天線匹配設計指南
NFC PCD AFE 調諧指南
EMV 3.0 1 級模擬應用說明
除了本文檔及其中的常見問題解答部分之外,在遇到性能問題時,請始終參考上述文檔和過程以獲取指導。重要的是盡快發現問題,同時仍然可以采取糾正措施(設計修改)。在設計經過認證調試測試之前,通常不會發現模擬性能問題。這些問題包括但不限于:
現場運行量上的電力輸送不足。
無法從操作體積內的最大距離接收微弱的外周中心靜脈導管傳輸。
在非常近的距離上過度加載條件,導致違反信號完整性測試。
違反操作音量周圍不同位置的調制深度。
如果通過仔細實施和考慮上述文檔中的程序無法解決特定問題,請提交問題報告并向ADI公司請求支持。包括以下信息:
問題的詳細描述,例如失敗的原因、頻率、如何復制問題、特定測試用例等。
測試儀或示波器捕獲的模擬波形和日志顯示問題
行為是否與評估板有顯著差異
記錄 EMV 1 級堆棧事務
EMV堆棧包括一個強大的日志記錄機制,由logging.c和logging.h實現。它支持從 0(無日志記錄或調試)到 6(顯示所有日志記錄、錯誤、警告以及信息和調試消息,包括 Rx 緩沖區的內容)的完整調試)的七個級別。默認級別為 1 日志記錄,并生成 EMVCo 要求 DTE 在測試過程中顯示的信息。在 DTE 示例中,可以通過修改代碼或通過 DTE 設置菜單中的“L.更改日志記錄級別”選項輕松更改級別。
日志記錄雖然在認證測試期間是必需的,但可以在應用程序模式下使用級別 0 禁用,以提高 EMV 堆棧的吞吐量性能。請注意,與 DTE 的所有菜單一樣,日志記錄消息是串行顯示的。對于某些 2 級測試,必須在要求的時間段內完成完整的事務序列。通常需要減少日志記錄以滿足此時間限制。回想一下,每個115200bps的UART位長度為8.68μs,每個字符10位,顯示此數據所需的時間會迅速增加。例如,前兩個句子是 ~300 個字符,傳輸大約需要 26 毫秒。如果日志記錄級別太高,串行傳輸所需的時間增加會導致某些EMV L1測試由于未滿足時序要求而失敗。
在測試過程中遇到問題時,日志記錄是使用的第一步。查看事件順序和故障原因可提供快速定位問題的見解。
射頻驅動器跟蹤模式
在某些極端的故障排除情況下,可能需要查看 RF 驅動程序中的調試信息。此步驟是通常只有ADI工程師用于內部開發的最后手段。如果需要在ADI公司之外獲得支持,則提供RF驅動器的單獨版本。由于必須滿足時序要求,因此很難調試RF驅動器操作。堆棧和更高層中使用的串行日志記錄會導致射頻驅動程序出現大量問題,丟棄數據包,錯過事件等。為了跟蹤和調試 RF 驅動程序中的操作,特殊生成將數據跟蹤寫入 RAM,并在從mml_nfc_pcd_transceive返回之前處理此數據部分。即使這種快速調試操作也會更改RF驅動程序中的一些時序檢查,這些檢查必須修改,需要特殊構建。在編譯的 RF 驅動程序庫中提供此功能的可選啟用是不切實際的。
常見問題
為什么射頻驅動器是閉源的?
MAX32560和MAX32570上的非接觸式外設很復雜,有數百個寄存器。許多配置寄存器和位可能會以意想不到的方式影響操作。RF驅動器對時序敏感,必須在短時間內完成某些任務。修改可能導致無法滿足這些要求。兩代器件之間的外設也有很大不同。已確定提供源將導致客戶混淆和支持工作量的增加,而沒有明顯的好處。
什么是PBM?
奇偶校驗旁路模式(PBM)是MIFARE Classic兼容庫的內部名稱。該術語基于發送和接收類型 A 數據而忽略低級成幀的功能,特別是關于每個 8 位字符之后奇偶校驗位的要求。
為什么PBM(MIFARE兼容)庫是閉源的?
雖然該庫與MIFARE卡兼容,并且激活和通信加密的詳細信息屬于公共領域,但MIFARE是注冊商標。ADI公司無法發布實現細節。
非接觸式磁帶庫的內存占用量是多少?
非接觸式庫的內存使用量隨非接觸式支持包 (CSP) 的每個版本而變化。因此,每個版本的 Doxygen 文檔都包含有關非接觸式庫內存使用情況的部分。顯示了射頻驅動器、PBM 庫和 EMV L1 堆棧中使用的各種文件的無臂大小輸出。
如何創建非接觸式庫校驗和?
EMV 1 級認證需要圖書館校驗和作為 DTE 和認證文書工作的一部分。不包括有關如何生成此校驗和的詳細信息。在 DTE 示例中,RF 驅動程序、PBM 庫和 EMV L1 堆棧的文件使用 cat 命令合并到二進制 blob 中,然后為此 blob 生成 sha1sum。生成的哈希包含在 DTE 示例代碼和用戶指南中。請注意,此哈希/校驗和將隨著示例的每次構建而更改,作為時間戳等。包含在二進制文件中。有關詳細信息,請參閱每個版本隨附的 Doxygen 文檔中的非接觸式磁帶庫內存使用情況部分。
EMV L1 數字測試時序故障
許多L1數字測試與時序有關,因為PCD和PICC之間協商了不同的時序。其中一些時間可能長達幾秒鐘。盡管在這些時間有一些允許的余量,但要求仍然很嚴格。PCD(MAX32560或MAX32570)需要精確的時基來滿足這些要求。該時基由外部32560.27MHz晶體在MAX12上提供,MAX32570由外部27.12MHz晶體、32.768KHz和內部150MHz環形振蕩器提供。外部晶體的精度需要使用電容器進行適當的補償。有關適當電容的詳細信息,請參考MAX32560和MAX32570數據資料、晶體數據資料和評估板原理圖。由于環境溫度、不正確的負載和正常的晶體差異,系統時鐘的精度可能會相差100ppm或更多。這通常不是問題,因為大多數事件計時都非常小,以至于 100ppm 只相當于最小的納秒數。但是,一些協商的延遲和等待時間可能是數百萬個計數。為了幫助彌補這一點,EMV L1堆棧具有一個功能pad_for_crystal_margin,可為長時間參數增加少量額外時間。
注意,在MAX32570上,150MHz內部環形振蕩器(IRO)不如外部晶體精確。建議在設備啟動時啟用其校準例程。此例程使用外部 RTC 晶體定期調整 IRO,從而提供必要的精度。較新版本的MAX32570RF驅動器使用外部27.12MHz定時器進行低電平時序。校準仍然有利于系統性能。
其他時序故障可能是由其他應用程序代碼使用為 RF 驅動程序和堆棧保留的系統計時器引起的。請參閱每個版本隨附的 Doxygen 文檔中 RF 驅動程序集成指南中的定時器部分。
RF驅動器和EMV L1堆棧取決于mml_nfc_pcd_port.c中功能的正確實現。特別是,函數 mml_nfc_pcd_task_sleep 應在請求的毫秒數后返回。過早或過晚返回可能會導致計時故障。RF驅動器功能mml_nfc_pcd_block_for_us用于RF驅動器和堆棧中的許多定時操作。它是使用文檔中詳述的系統計時器之一實現的。如果在測試過程中檢測到時序問題,則直接從測試代碼調用這些時序例程,同時切換外部引腳或LED不同時間,以通過示波器驗證正確的時序,可能會很有用。
支持哪些 MIFARE 類型?
DTE 示例和 PBM 庫支持的主要 MIFARE 類型是 MIFARE Classic。有關更多詳細信息,請參閱上面的 PBM MIFARE 兼容經典庫部分。
低功耗、低頻操作
NFC PCD本質上是一種高功率設備,它需要從其天線廣播大量功率,以激勵EMV和其他規范所需的空間量。器件用于為磁場供電的實際功率取決于許多變量,包括天線的匹配質量、現場寄生效應、模擬設置、環境溫度和電源電壓。在電池供電的設備中,電源使用更為關鍵,但在通常具有交流電源的永久安裝的銷售點(POS)終端中,功耗問題較少。降低系統頻率會降低功耗,但會阻止非接觸式外設正常工作;因此,在NFC操作過程中應避免使用。
降低NFC安全微控制器功耗的最佳方法是限制磁場開啟的時間。DTE 示例輪詢模式是根據 EMV DTE 規范的要求設計的。它在整個輪詢激活期間保持現場打開狀態,以允許測試硬件輕松與被測PCD同步;但是,這不是應用程序應運行的方式。事實上,長時間打開現場可能會產生負面影響,如器件自熱和耗散部分所述。相反,在 EMV 應用程序中,要打開的字段的最短輪詢時間略高于 10 毫秒(毫秒)。這為現場卡提供 5.1ms 的上電、輪詢 A 類卡、5.1ms 直到輪詢 B 類卡和超時。假設未發現卡,則應用程序可以自由關閉字段電源,并在微控制器上進入睡眠或空閑模式數百毫秒,然后喚醒以再次開始輪詢過程。輪詢之間的時間越長,消耗的電量就越少,盡管過多的停機時間會導致接受付款的明顯滯后。不久將發布詳細介紹低功耗NFC/非接觸式操作的應用筆記。
器件自發熱和自散熱
由于產生NFC場所需的大電流,只要場處于活動狀態,安全微控制器就會發生內部發熱。該熱量通過封裝上的各種引腳散發到PCB中;但是,過多的熱量會降低NFC場的輸出功率。在設備的正常運行期間,當磁場未連續通電時,預計不會損失性能。此外,如果天線匹配不當,過多的功率可能會反射回發射器。必須注意避免此類電路損壞安全微控制器。如前面的常見問題解答所述,根據DTE測試規范的要求,現場的連續操作并不反映實際操作。如果 DTE 輪詢和環回模式使用時間過長,則過熱會略微降低性能,如果可用余量不足,可能會導致測試失敗。應指示認證測試操作員定期禁用該字段,允許冷卻并避免這種情況。
卡取出檢測
卡移除是EMV 1級堆棧通過功能iso_14443_3a_remove和iso_14443_3b_remove提供的一項功能。根據 EMV L1 規范的要求,此命令將連續查找卡,直到三個順序喚醒命令 (WUP) 超時。在成功的卡通信和付款序列之后,但在繼續返回到正常輪詢模式之前使用此命令。刪除命令在標準 EMV 環回測試模式和互操作性環回例程中使用,這是 DTE 的要求。
中止操作
一些 2 級內核認證具有 PICC/卡在沒有完成交易的情況下進行協商的測試。在這種情況下和其他情況下,請使用set_abort_check_callback。每次調用 RF 驅動程序的收發函數后,都會檢查此回調,以確定如果用戶請求或應用程序超時,是否應中止當前操作(通常是 APDU 傳輸)。如果操作中止,它將返回狀態ISO14443_3_ERR_ABORTED。請注意,由于時序限制和實現細節,不支持中止對RF驅動器收發器功能的調用。它將在接收后或超時到期時返回。
發布版本和更改歷史記錄
發布新的軟件版本時,版本號會增加。對于每個版本,庫和 DTE 示例的版本歷史記錄中詳細介紹了主要更改。最好在 Doxygen 文檔中查看此歷史記錄。實際信息記錄在以下頭文件中:RF 驅動程序頭文件:mml_nfc_pcd_rf_driver.h、EMV 堆棧和 DTE 示例頭文件 iso14443_3_common.h 以及 PBM 庫頭文件 pbm_command.h。
模擬設置矩陣大小
在最新版本的CSP中,默認模擬設置矩陣大小從3增加到10。這是支持EMV 3.0所需更改的直接結果,因為支持具有三個不同加載濾波器的三個不同PICC的要求增加了復雜性。這就要求對非平凡的天線和系統設計具有更高的可配置性。大多數設計不需要使用矩陣的所有 10 列。任何不需要的列都應使用最后一個唯一列的內容填充,以避免任何意外的模擬行為。可以使用 mml_nfc_pcd_port.h 中的定義FD_THRESH_NUM_STEPS并更新所有mml_nfc_pcd_analog_params_matrix_t結構根據需要修改矩陣大小(即列數)。
EMV 1 級測試報告
CSP 的每個版本都包括在 Micropross 非接觸式測試站上內部生成的 EMV 1 級模擬和數字測試報告。它們被編譯到每個版本隨附的Doxygen生成的文檔文件NFC_PCD_CSP.chm中。
測試設備差異
ADI公司使用Micropross非接觸式測試站上的EMV 1級模擬和數字測試套件,在我們的安全微控制器上驗證每個CSP版本的EMV合規性。許多不同的供應商提供PCD測試工具,包括Keolabs,Comprion,CI Labs,是德科技等。雖然這些供應商中的每一個都符合EMVCo并通過EMVCo認證,但它們之間存在細微差異,例如模擬負載條件,測試速度略有不同,以及一些測試在一個系統上通過但在其他系統上失敗。不同的認證實驗室使用不同的供應商進行測試設備;有些公司擁有自己內部開發的測試解決方案。由于這些差異,請根據內部使用的設備考慮使用哪個實驗室。選擇后,繼續使用該實驗室以最大程度地減少認證問題。??
堆棧不允許的非 EMV 卡和響應
雖然ADI公司提供的EMV L1堆棧的主要目標是支持EMV支付卡,但它可用于與符合ISO 14443第1至4冊的其他卡進行通信。但是,并非所有功能都由某些非EMV卡支持或要求的堆棧提供。例如,EMV不允許現場同時使用多個卡,并且僅期望以106Kbps的最慢速率運行。此外,某些卡返回的激活參數可以被堆棧拒絕。例如,SCOSTA印度交通卡具有ATTRIB響應,包括高信息歸檔(INF)數據。這在 EMV 中是不允許的,并且會導致 ATTRIB 命令出錯。
也可以支持其他違反要求(例如,不遵守時序要求)的卡,但這樣做需要修改堆棧。
如何滿足EMV 3.0現場電源要求
EMV 3.0 需要比以前版本更多的場功率。對于某些設計來說,滿足這些要求可能很困難,例如MAX32560,它的設計是為了滿足EMV 2.5的要求。有關更多詳細信息,請參閱“供電”部分。有關實現電源要求的廣泛指導,請參閱每個器件的非接觸式PCD應用筆記 – EMV 3.0 1級模擬應用筆記。
推薦天線參數
在尺寸、形狀、位置等方面存在獨特的關注點。選擇天線時。電感一般應在 1 和 1.5μH @ 13.56MHz 之間。如果天線太小,電源可能會在較遠的距離上失效。如果太大,近距離信號的完整性可能會受到影響。如果使用PCB天線,阻抗和電阻可以保持相對較低,通常為1μH和1Ω。過大的電阻會降低品質因數 (Q) 方面的調諧靈活性。
如何選擇EMC濾波電感器
EMC濾波器的目的是將輻射信號降低到EMC兼容閾值以下。請考慮以下要求:
產品設計、整體尺寸和外形限制可以根據封裝尺寸決定選擇哪些電感器。
ADI公司建議截止頻率為20MHz,可通過270nH電感和240pF電容實現。其他組合可用于實現相同的截止頻率,例如470nH和130pF。較大值的電感器成本可能更高,尤其是在使用繞線功率電感器時。
電感器是EMC濾波器中最大和最關鍵的元件。由于電感器在電路中串聯,因此足夠的電流處理能力非常重要。我們建議電感器可承受1A或更高的電流。13.56MHz的較高Q值對于實現現場最大功率傳輸至關重要。較低的Q值會增加發射電路中的有效電阻并降低可用功率。發射器的輸出電壓為3.3V,這意味著電路的電流會極大地影響場功率。
電感的容差應盡可能小,以減少器件之間的差異。對于匹配網絡中推薦使用1%電容和2%電感的大多數元件來說,情況都是如此。使用公差較寬松的組件會導致最終產品的性能差異過大。
匹配網絡PCB走線寬度建議
在13.56MHz的工作頻率下,PCB走線寬度和長度一般不是匹配的關鍵因素。首要考慮因素是電流處理與PCB走線寬度和厚度的關系。典型的 1oz 銅厚 PCB 設計具有 10mil (0.25mm) 走線寬度,可承受 1A 電流。在ADI公司的65mm×65mm評估天線板中,天線走線寬度為0.4mm。由于每個設計都不同, 理想的PCB設計可能因設計約束和限制而異.請與PCB供應商驗證是否能夠處理足夠的電源。
總匹配阻抗高于建議值 (6Ω—10Ω)
計算工具并不完全準確,SMD組件確實有一些變化。對于略微關閉(~2Ω或更低)的情況,調諧de-Q電阻以使其匹配。在更極端的情況下,驗證計算工具中的值并測量實際電路中使用的元件值。雖然匹配計算工具不是完全準確的,但它仍然應該很接近;但是,過高的阻抗可能表明存在問題,例如電路中的元件不正確。
非接觸式天線的最佳或推薦 Q 值是多少?
理想情況下,天線Q值應大于60,這相對容易實現。給定1μH電感,電阻應小于1.42Ω,典型的PCB設計和供應商可以輕松實現。雖然這不是一個嚴格的要求,但它通過de-Q電阻和Rmatch選擇提供了足夠的調諧靈活性。
0厘米處的問題
雖然在遠距離工作音量距離下,足夠的功率傳輸是首要關注點,但在0cm信號完整性下進行超近距離測試是最難實現的測試和性能指標。具體來說,EMV L1模擬測試套件參數t3和t4可能存在問題(例如,t3太快),以及信號完整性的過沖。隨著加載效應的增加,這些問題會加劇,特別是使用HLZ進行EMVCo測試PICC2時。PICC1可以表現出類似的表現,但PICC2是最差的。最直接的解決方案是在5cm處增加0mm或更小的偏移,以減少無硬件的耦合。這通常發生在正常的物理產品設計中,因為線圈在一定程度上是封閉的。否則,可能需要重新設計PCD天線(較小的L),匹配和EMC濾波器(即較低的截止頻率)。由于端子的形狀,0cm處的偏移適用于EMVCo參考PICCS無法到達的所有測試位置。如果偏移量低于5mm,鑒定實驗室可以在型式認可測試期間測量并將其應用于所有適用的測試位置。在型式認可報告中包括此信息。如果偏移量為5mm或更大,則必須在型式批準會議之前將其傳達給EMVCo。有關詳細信息,請參閱模擬測試臺和測試用例要求 v6.2a 測試用例的第 2.3.0 節。
是否支持費利卡?
是和不是。FeliCa卡,也稱為C型,NFC-F型和JIS X 6219-4,不是EMV的一部分。因此,ADI公司提供的EMV 1級堆棧不支持FeliCa卡。但是,RF驅動器在收發器功能級別為它們提供低層支持。DTE 示例使用命令 ATQC 提供激活示例并解釋響應。它還提供了FeliCa讀寫器RF性能測試所需的環路測試程序,如果大致相當于EMV 1級模擬測試。ADI公司不提供對輪詢、激活、選擇、安全握手和更高級別的數據傳輸的全面支持,必須實現。或者,支持這些更高級別功能的FeliCa堆棧軟件可以與其他供應商分開采購,并與RF驅動器接口。
ADI公司提供哪些軟件來支持EMV、MIFARE、FeliCa和鄰近卡?
ADI公司提供的示例軟件演示了MAX32570對EMV、MIFARE、FeliCa和Nearinity的支持。由于這些設備的主要目標是付款,因此我們為 EMV 卡和作為 DTE 和演示示例的一部分發布的 EMV L1 堆棧代碼提供的設備提供了更多支持。通過每個安全微型的RF驅動程序為MIFARE,FeliCa和Vicinity卡以及非EMV ISO 14443卡提供低級支持。對于 MIFARE 經典卡,PBM 庫提供基本的命令和身份驗證處理。有關支持所有這些卡類型的更多詳細信息,請參閱相應部分。
非接觸式接口需要哪些外部電路?
非接觸式通信需要合適的天線和帶有EMC濾波器的調諧匹配網絡。確切的外部組件取決于應用和系統設計。有關更多詳細信息和實現示例,請參閱PCD天線匹配設計指南、評估板原理圖和gerber文件。
ADI公司的安全微控制器是否兼容EMVCo非接觸式3.0版?
是的,MAX32560和MAX32570均符合EMV 3.0要求。可根據要求提供來自第三方實驗室的經過驗證的測試報告。
ADI公司是否提供EMV 2級解決方案?
ADI公司的EMV和支付應用支持截止到1級。但是,我們與 Amadis(2 級軟件和支付應用軟件的行業領導者)合作。
2 級測試問題
一些 2 級認證套件包括特殊測試卡和移動設備,具有所需的成功讀取嘗試百分比。這些卡和設備不可用于內部測試,也沒有公開記錄。支付提供商負責 2 級測試用品、測試卡和設備,這些設備會定期更新并保密。對于這些測試,ADI公司無法提供直接幫助。即使通過具有不同負載條件的三個必需測試PICC的1級測試和EMV L1互操作性測試,設計也不能保證涵蓋所有情況。一些測試設備和卡可能難以使用,但通常可以通過仔細調整模擬矩陣參數來支持。這些測試設備可能因認證實驗室而異。選擇一個實驗室并使用調試會話來優化所需的設置,然后再在同一實驗室提交認證。
碰撞檢測
每個物理類型規范都提供自己的沖突檢測機制。一些 2 級認證(即 PBOC)要求通過 POS 終端演示碰撞檢測。請注意,碰撞檢測對某些類型比其他類型效果更好。由于PCD用例的性質,通常為POS或票務,因此僅考慮來自現場多個PICC的碰撞檢測。在主讀取器范圍內查找其他活動字段超出了測試和大多數規范考慮因素。這通常是通過物理安全和相對較小的通信領域規模來實施的。對于 ISO 18092 規范來說并非如此,該規范允許多個啟動器(即讀取器、現場發生設備)。有幾種方法可以在現場對多個 PICC 進行碰撞檢測。
可以根據協議類型位編碼方法檢測沖突。A型PICC到PCD只允許位時間調制的前半部分(序列D),后半部分(序列E)或不調制(序列F)。如果整個位時間都存在調制,則將其視為沖突。請注意,這僅在與 A 型卡通信的激活階段才有可能。規范要求現場所有卡同時開始卡響應,這意味著所有卡響應在每個位時間內堆疊在一起。
同時傳輸多個PICC降級信號可能會導致成幀或CRC錯誤。例如,如果要求B型同時響應(按照時隙1,N = 0內的EMV L1程序的要求),則決斗的子載波可能會降級和組合,從而導致接收數據中出現開始和停止位錯誤或間隙。這不是一種可靠的方法,因為具有強信號(即高振幅場調制)的PICC在場外圍的信號可能是弱卡的10倍,尤其是在靠近PCD天線時。來自一張卡的高幅度信號可以掩蓋較弱的響應。
可以按照每種類型規范中詳述的防沖突輪詢過程來檢測沖突。對于類型 A,字段中的所有卡同時開始傳輸其唯一標識符 (UID),直到檢測到逐位沖突。對于類型 B 和 F,提供了多個響應時隙,供卡隨機選擇響應。這些程序的多輪識別獨特的卡,可以專門針對這些卡并在搜索更多卡時將其靜音。經過足夠的回合后,并且沒有發現更多的卡牌,可以繼續激活找到的卡牌。同樣,EMV不允許這樣做,要求現場的所有卡在一個時隙內響應。檢測到的任何沖突都需要重置字段并再次輪詢。
最后,輪詢循環用于確定現場何時存在多個不同物理類型的設備。如果在現場找到多個任何類型的設備,EMV L1 不允許激活。提供并用于 EMV 模式的輪詢循環示例不會輪詢除 EMV A 和 B 類型之外的其他技術。這可以根據應用程序需要進行擴展。
雖然EMV要求現場的B型卡在第一個時隙(N = 1)內響應,但它預計異步響應將導致傳輸錯誤。有關詳細信息,請參閱 EMV L1 規范。雖然這可能會發生,但不能保證。EMV 不需要在 1 級進行直接碰撞檢測測試;但是,某些 2 級測試確實需要它。根據測試條件,可能會或可能不會檢測到碰撞。如果需要進行此類測試,建議將此告知測試操作員。如果仍然需要,請使用兩個類型完全相同的卡,具有相似或相同的負載調制幅度。這更有可能導致傳輸錯誤,因為一張卡將無法屏蔽另一張卡的信號。作為最后的手段,可以充分調整模擬設置矩陣,以檢測兩個PICC振幅組合導致波形失真的碰撞區域。
對 B 型使用概率時隙碰撞檢測方法更可靠。由于這需要 N > 1,因此 EMV 至少不允許級別 1)。它可以允許用于其他認證,例如 2 級等。
非NFC外設上的中斷使用和數據丟失
當MAX32560上的RF驅動器主動發送和接收時,它進入關鍵部分。盡管活動時間(即占空比)與總輪詢時間相比較低,但在活動通信期間,例如 APDU 傳輸和購買序列,中斷服務會延遲很長時間。如果其他系統外設依靠ISR來處理FIFO數據或在嚴格的時序要求下響應命令,則可能導致數據丟失、通信丟失、ACK/NAK過多等。一些可能遭受此行為影響的外圍設備包括串行 UART、SPI、I2C、USB、智能卡和 MSR。建議將 DMA 與應用程序關鍵型外設一起使用,以避免潛在的數據丟失。與中斷相比,系統可能更好地利用輪詢方法運行,但這取決于各個系統和應用程序要求。目前,MAX32570上的RF驅動器只在短時間內進入關鍵部分;但是,這種情況將來可能會改變。查看每個新 CSP 發布版本的更改歷史記錄,了解此類潛在更改。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7496瀏覽量
151085 -
讀卡器
+關注
關注
2文章
410瀏覽量
39346 -
nfc
+關注
關注
59文章
1617瀏覽量
180413
發布評論請先 登錄
相關推薦
評論