1、修改的发现流程
在修改后的发现流程图中,所有从节点都会被发现并立即按顺序初始化,从0号从节点到系统中最后一个可用的从节点。
在发现并编程所有节点之后,就不再需要总线管理了。但是中断服务例程可以用来响应特殊事件(例如,来自诊断的IRQ事件)。IRQ引脚可以用来发出这样一个事件的信号。另外,可以轮询A2B_INTTYPE寄存器来监视中断事件。
Modified Discovery Flow
2、优化发现流程
优化后的快速发现和初始化显示在优化发现流图中。即使在初始化节点之前,主机也会尝试发现下一个节点。发现下一个节点的时间用于初始化当前节点。这将发现和初始化时间几乎完全减少到锁相环找到锁的时间。中断服务例程用于避免重复轮询寄存器,减少了主机处理器的负担。
发现并初始化所有节点后,就不需要再进行总线管理了。中断服务例程可以用来响应特殊事件(例如,来自诊断的IRQ事件)。
流程图中的一个高级特性是使用节点id。节点id允许主机根据存储在每个从节点的EEPROM中的id查找寄存器设置。
Optimized Discovery Flow
3、高级发现流程
高级发现流程图显示了一个高级、快速的发现和初始化流程。即使在初始化节点之前,主机也会尝试发现下一个节点。发现下一个节点的时间用于初始化当前节点。这将发现和初始化时间几乎完全减少到锁相环找到锁的时间。只要初始化主、从0节点,就可以启动数据的同步交换,而未发现和初始化的下一个节点可以逐渐启动。使用中断服务例程来避免寄存器的重复轮询,这减少了主机处理器的负担。
这个流程图中的另一个高级特性是节点id的使用。节点id允许主机根据存储在每个从节点EEPROM中的id查找寄存器设置。
通过添加每个新节点来重新配置从属节点,以调整负载的数量,从而优化带宽和功耗。最佳总线活动级别是在每次添加一个新节点时实现的,即使不能发现所有节点。
当主机试图执行“自动发现”,而不事先知道系统中节点的数量时,这是特别有利的。A2B_DNSLOTS、A2B_LDNSLOTS、A2B_LUPSLOTS可以根据每个节点的A2B_BCDNSLOTS、A2B_LDNSLOTS、A2B_LUPSLOTS信息计算出A2B_DNSLOTS、A2B_UPSLOTS寄存器值。这可以是节点ID能力信息的一部分(例如,在每个从节点的EEPROM中),也可以根据能力信息进行查找。
根据发现的节点数量,修改所有节点的A2B_DNSLOTS和A2B_UPSLOTS会对主机的I2S/TDM接口产生影响。当添加提供或使用同步数据的新节点时,通道分配将发生更改。
在总线完全发现之前,在早期节点上允许同步有效负载操作可能是可取的,也可能不是可取的。可以修改高级发现流程,使同步音频操作只在发现后才开始(参见优化的发现流程)。
发现并初始化所有节点后,就不需要再进行总线管理了。中断服务例程可以用来响应特殊事件(例如,来自诊断中的IRQ事件)。
高级发现流程