Edit online

通用广播地址

通用广播地址 (General call address) 是为了寻址总线上的所有设备。不需要使用广播功能的设备,可以不响应广播。需要使用广播功能的设备,则在检测到广播地址后发送响应,并作为 slave 接收读取总线上发送的数据。

Master 不知道总线上发送响应的 slave 数量,总线上所有可以响应广播的 slave 读取广播地址后的第二个以及后面的字节,不能处理广播数据的 slave 不发送响应来忽略广播。因此 master 检测不到未响应的 slave,。

广播信息的含义在第二个字节决定。

GEN_CALL 格式有两种情况:

  1. 第二个 Byte 最低位 B 为 0:
    • 0000_0110(06h):设备复位并通过硬件写数据到 slave 的可编程部分。所有可以响应此类广播的 slave,收到此两个字节后,进行复位并进入其地址的可编程部分。

    • 0000_0100(04h):通过硬件写内容到 slave 的可编程部分,作用类似 (06h),但设备不复位。

    • 0000_0000(00h):不允许作为第二个字节使用。

  2. 第二个 Byte 最低位 B 为1:
    • 该两字节广播定义为“硬件广播”,由一个硬件 master 器件发送,例如键盘扫描器。它们不能编程来发送一个期望的 slave 地址,由于硬件 master 预先不知道报文要传输给哪个器件,它只能产生这个硬件广播呼叫和它自己的地址让系统识别它。

    • 第二个字节中前7位是硬件master的地址,这个地址被一个连接到总线的智能器件识别 (例如 微控制器)并指引硬件master的信息。如果硬件master也可以作为slave,它的slave地址和master地址一样。

    硬件广播格式: