八,附录 A:其他发现流程示例
- 八,附录 A:其他发现流程示例
- 8.1 修改后的发现流程
- 8.2 优化后的发现流程
- 8.3 高级发现流程
八,附录 A:其他发现流程示例
以下部分提供了关于修改后的、优化后的和高级的发现流程的更多信息。任何软件流程图都可以作为发现和初始化的指南。
8.1 修改后的发现流程
在“修改后的发现流程”图中,所有从节点被发现并立即按顺序从从节点 0 到系统中最后一个可用的从节点依次进行初始化。 在所有节点被发现并编程后,不再需要总线管理。但是中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。IRQ 引脚可用于发出此类事件的信号。或者,可以轮询 A2B_INTTYPE 寄存器以监控中断事件。
8.2 优化后的发现流程
“优化后的发现流程”图展示了一种更加优化、快速的发现和初始化过程。甚至在一个节点被初始化之前,主机就尝试发现下一个节点。发现下一个节点的时间被用于初始化当前节点。这几乎将发现和初始化时间完全减少到锁相环(PLL)找到锁定所需的时间。中断服务例程用于避免重复轮询寄存器,减轻主机处理器的负担。
在所有节点被发现并初始化后,不再需要总线管理。中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。
流程图中的一个高级功能是节点 ID 的使用。节点 ID 允许主机根据存储在每个从节点的电可擦可编程只读存储器(EEPROM)中的 ID 查找寄存器设置。
8.3 高级发现流程
“高级发现流程”图展示了一种高级、快速的发现和初始化流程。甚至在一个节点被初始化之前,主机就尝试发现下一个节点。发现下一个节点的时间被用于初始化当前节点。这几乎将发现和初始化时间完全减少到锁相环(PLL)找到锁定所需的时间。一旦主节点和从节点 0 被初始化,同步数据交换就可以开始,而尚未被发现和初始化的下一个节点可以逐渐启动。使用中断服务例程以避免重复轮询寄存器,这减轻了主机处理器的负担。
此流程图中的另一个高级功能是节点 ID 的使用。节点 ID 允许主机根据存储在每个从节点的电可擦可编程只读存储器(EEPROM)中的 ID 查找寄存器设置。
随着每个新节点的加入,从节点会被重新配置以调整有效载荷量,从而优化带宽和功耗。即使并非所有节点都能被发现,在每次添加新节点时都能实现最佳的总线活动水平。
当主机试图在不事先知道系统中节点数量的情况下执行“自动发现”时,这尤其有利。A2B_DNSLOTS 和 A2B_UPSLOTS 寄存器值可以根据每个节点中的 A2B_BCDNSLOTS、A2B_LDNSLOTS 和 A2B_LUPSLOTS 信息进行计算。这可以是节点 ID 能力信息的一部分(例如,在每个从节点的 EEPROM 中),或者可以根据能力信息进行查找。
根据发现的节点数量在所有节点中更改 A2B_DNSLOTS 和 A2B_UPSLOTS 会对主节点的 I2S/TDM 接口产生影响。当添加提供或消耗同步数据的新节点时,通道分配会发生变化。
在总线完全被发现之前允许早期节点上的同步有效载荷操作可能是理想的,也可能不是。高级发现流程可以进行修改,以便同步音频操作仅在发现后开始(参见优化后的发现流程)。
在所有节点都被发现并初始化后,不再需要总线管理。中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。