初始化序列

下图演示了在初始化期间由 NFC CX 和 NFCC 交换的高级 NCI 数据包集。 在初始化开始之前,NFC CX 驱动程序会调用客户端驱动程序的 Pre-Init 序列处理程序(如果已注册)。 StateInit 包括以下高级序列:NCI 重置、NCI 初始化、参数的标准 NCI 配置,以及 RF 接口和 RF 协议映射。 请注意,NFC 客户端驱动程序可以通过 NFC CX 接口函数(如 NfcCxSetRfDiscoveryConfig**NfcCxSetLlcpConfig)设置初始化期间使用的一些 NCI 配置参数的默认值。 初始化完成后,将调用初始化完成序列处理程序。 初始化完成后的下一个状态是 StateRfIdle。

初始化序列。

NFCC 正常运行的关键要求之一是从 NFC 客户端驱动程序处理固件下载操作。 NFC CX 设计足够灵活,足以支持多个不同的设计,以便将固件下载到控制器。

一些芯片组需要 NCI 初始化以获取固件版本信息,以确定是否需要下载固件。 对于此类设计,用于完成固件下载的 NFC CX 和 NFC 客户端驱动程序的状态机将如下所示。 BLUE 状态对应于 NFC CX 指定的状态,GRAY 状态对应于 NFC 客户端驱动程序中的状态。 NCI 初始化后,即在初始化完成序列处理程序中,客户端驱动程序从 CORE_INIT_RSP 消息中检查当前版本,并确定是否需要固件下载操作。 如果“否”,则 NFC CX 驱动程序的正常状态转换将继续进入下一个状态。 如果客户端驱动程序请求 NFC CX 执行重启,则为“是”。 关闭完成后,NFC 客户端驱动程序可以实现固件下载。

初始化后固件下载。

某些 NFCC 固件实现具有带外机制,即在 NCI 上下文之外,以确定是否需要固件下载。 在这种情况下,在处理预初始化序列时,NFC 客户端驱动程序可以实现其连接器状态,以确定是否需要固件下载。 如果为“是”,则由客户端驱动程序执行固件下载作。 如果“否”,即不需要下载固件,则继续正常操作到下一个状态。 下图显示了固件下载预 NCI 初始化的状态机处理。

固件下载预初始化。