【AD2426/7/8_A2B收发器技术参考手册】第四章 事件控制
A2B IIC功能介绍,推荐参考B站视频:《A2B IIC功能介绍》
四,A2B 事件控制
A2B 协议引擎包含一组寄存器,可为向主机发出的中断提供支持。这些寄存器包括:
• A2B_INTSTAT;
• A2B_INTSRC;
• A2B_INTTYPE;
• A2B_INTPND0 至 A2B_INTPND2;
• A2B_INTMSK0 至 A2B_INTMSK2。
要在主节点中注册从属中断请求,请在 A2B_INTMSK0 和 A2B_INTMSK1 寄存器中取消屏蔽从属节点中断。仅在主节点中,还需在 A2B_INTMSK2 寄存器中取消屏蔽中断。
A2B_IRQ 引脚的有效极性通过 A2B_PINCFG 寄存器进行设置。默认情况下,中断请求通过 A2B_IRQ 引脚上的高电平以及 A2B_INTSTAT.IRQ 位的设置来指示。主收发器中的活动中断请求在主机读取主收发器 A2B_INTTYPE 寄存器时被清除并修订。这个过程也适用于主节点接收来自从属节点的中断请求。
主收发器寄存器(A2B_INTSRC)指示活动中断是由主节点还是由从属节点生成(在从属节点生成的情况下,它还提供从属节点的 ID)。主收发器中的 A2B_INTTYPE 寄存器包含主机用于确定中断原因的信息。优先级逻辑自动确定 A2B_INTSRC 和 A2B_INTTYPE 寄存器的值。在读取 A2B_INTTYPE 寄存器后,可能会出现其他待处理的中断请求。当读取 A2B_INTTYPE 寄存器时,A2B_IRQ 引脚在一个 fSYSBCLK 周期(约 20 纳秒)内变为低电平。如果有待处理的中断请求,该引脚会立即转换为高电平。
当被屏蔽的中断发生时,它们会作为粘连位记录在 A2B_INTPND0 至 A2B_INTPND2 寄存器中,但不会触发中断请求。一旦取消屏蔽,任何待处理的中断将按照以下优先级顺序触发中断请求:
• 主节点中断优先于从属节点中断。
• 较低的从属节点 ID 号优先于较高的 ID 号。
• 较低编号的 A2B_INTTYPE 优先于较高编号的。
• A2B_INTPND0 优先于 A2B_INTPND1,A2B_INTPND1 优先于 A2B_INTPND2。
• 待处理寄存器 A2B_INTPND0 至 A2B_INTPND2 中较低编号的位优先于较高编号的位。
当主收发器从从属节点接收到中断请求时,IRQ 信号会立即被置位。
主机对中断请求的响应
当主机从主节点接收到中断请求(由 IRQ 信号变为高电平指示)时,主机可以读取 A2B_INTSRC 和 A2B_INTTYPE 寄存器,分别获得生成中断请求的从属节点 ID 以及中断请求的类型。这可以通过执行一次从 A2B_INTSRC 地址开始的双字节读取来实现,这样可以同时读取这两个寄存器。在完成 A2B_INTTYPE 寄存器的读取后,如果没有其他待处理的中断请求,活动中断将被清除且 IRQ 变为低电平。
中断延迟
中断在同步响应帧(SRF)内从从属收发器向上游发送到主收发器。在 SRF 开始后(在从属节点开始驱动 AP 和 AN 引脚后)触发的中断会在下一个超帧的 SRF 中发送到主节点。假设没有其他更高优先级的中断屏蔽所讨论的 IO 引脚中断,从属节点 IO 引脚和主节点 IRQ 之间的延迟是以下各项之和:
• 引脚中断生成的四个 SYSBCLK 周期(81.4 纳秒)+
• 进入 SRF 的一个超帧延迟(20833.3 微秒)+
• SRF 长度的 64 个 SYSBCLK 周期(1302.1 纳秒)+
• 主接收延迟的五个 SYSBCLK 周期(101.7 纳秒)+
• 主节点中 IRQ 逻辑的两个 SYSBCLK 周期(40.7 纳秒)
除了这总共 22.36 微秒的延迟之外,对于 SRF 必须经过的每个从属节点,还有额外的九个 SYSBCLK 周期的延迟(N×183.1 纳秒)。例如,在一个有三个从属节点的系统中,从从属节点 2 到主节点的 GPIO 中断的最大延迟为 22.36 微秒+(2×0.183)微秒=22.73 微秒。
4.1 错误管理
以下部分提供有关错误管理的信息。在 A2B 总线上传输的所有数据在接收端都会检查线路码违规(DDERR)情况。此外,同步控制帧(SCF)和同步响应帧(SRF)使用循环冗余码(CRC),并且每个同步数据时隙都使用一个奇偶校验位来增加错误检测的确定性