什么是通用呼叫地址,它在 I2C 中的用途是什么?

What is General Call Address and what is the purpose of it in I2C?

我想知道I2C (0x00) 中的通用调用地址是什么。如果我们有一个主机和一些从机,我们可以通过我们的主机使用这个地址与这些从机通信吗?

I2C 规范 v.6 (https://www.i2c-bus.org/specification/) 的第 3.2.10 节清楚地描述了通用调用的目的。

3.2.10General call address

The general call address is for addressing every device connected to the I2C-bus at the same time. However, if a device does not need any of the data supplied within the general call structure, it can ignore this address. If a device does require data from a general call address, it behaves as a slave-receiver. The master does not actually know how many devices are responsive to the general call. The second and following bytes are received by every slave-receiver capable of handling this data. A slave that cannot process one of these bytes must ignore it. The meaning of the general call address is always specified in the second byte (see Figure 30).

您可以使用它与您的奴隶通信,但有三个限制。

  1. General call只能写数据到slave,不能读
  2. 每个slave都应该接收general call,你不能用它来寻址特定的设备,或者你必须在general call消息体中对设备地址进行编码,然后在slave中解码。
  3. 有标准的普通呼叫消息格式。您不应将标准代码用于您自己的功能。