介绍
本应用笔记概述了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 发布版本的更改历史记录,了解此类潜在更改。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !