I2C总线是如何识别总线上的各个器件并保持与其通讯的?
如果真如很多文献认为的是通过地址来识别总线上的每个器件,那么CPU必须在与每个器件通讯前,知道每个器件地址信息,也就是说CPU必须存有一本“通讯录”,以备与总线上的各个外设通讯!
对于I2C总线如何做到识别各个器件,欢迎大家发表高见!
参考文献:
1)杜礼霞,吴 伟《软件模拟I2C总线的C51实现》;
“I2C总线上数据为同步传输。挂在I2C总线上的每一个器件都有一个独立的地址,而且在传输过程中有主节点和从节点的区分,主节点的作用是启动和结束一次通信,并负责控制总线时钟,总线上可以有多个主节点或多个从节点,但是在一次通信中只能有一个节点作为主节点。”
2)来自网络《I2C总线串行接口应用设计》
“(2)器件寻址,给一个起始信号(SCL为高电平时SDA给一个下降沿)。发送从器件地址,高5位为10110,然后根据A1/A0(如果和器件的地址相同则那个器件会应答)进行读/写控制(O为读)。
(3)应答,器件在SCL的第9个周期时SDA给出一个低电平,作为应答信号。”
用户377235 2013-8-8 17:24