先回答你的最后一问:
答 你说的很对,SCL脉冲永远都是由主机来提供,从机在SCL线上永远都是输入状态。
再回答你的第二问:
答 你的第二句话是错误的。正确的说法是:
I2C主机可以发送SDA, 也可以从SDA上接收;从机可以根据主机的要求发送SDA数据,也可以从SDA上接收数据(当然这一过程要按照I2C通信协议规定的数据帧进行)
发送和接收数据并不会改变主机和从机的区别。
以上是I2C技术标准里规定死的,和单片机型号无关。
最后回答你的第一个问题:
答: 在弄清了I2C主机和从机的本质区别是看谁能提供SCL信号以后,我们再看看PIC单片机所谓 主模式---从模式是什么意思。
早期的PIC单片机,没有I2C的硬件模块支持,要完成I2C的通信,必须通过两根普通I/O线,完全用软件来模拟。
既然是软件模拟,自然是可以模拟成主机运行,也可以模拟成从机。由于大量外围I2C器件都是制造成从机的,所以,软件模拟主机的情况居多。
现今的PIC新型单片机,从物理硬件、中断、串行数据字节等,都有专门的I2C模块。
这些模块如果是工作在从机状态下,就叫做从模式,工作在主机状态下,就是主模式。
在一个I2C总线上,遵守一主多从的规定。即I2C技术协议本身不支持多主机系统,协议内也没有多主机总线的竞争仲裁机构。
|