串行通信与IIC总线通信的区别在哪里?
能否具体的说明?还有哪种具体的通信机制
串口通信就是232,只有两根线txd和rxd,双方必须设定相同的波特率,传输距离比较近。 I2C号称是最简单的串行通讯协议,只需要一根数据线一根时钟线就可以完成半双[图片]工通讯。一根是双向的数据线SDA,另一根是时钟线SCL。I2C协议:
1.谁主动发起数据请求(读/写)谁就是主机。
2.主机提供时钟。
3.SCL为高电平时,SDA从高到低跳变表示起始条件,从低到高跳变表示结束条件。数据传输过程中SDA表示的数据的跳变只能发生在SCL为低电平的时候。
4.主机发送起始条件后,发送的第一个字节是从机地址(7bit)+读写指示(1bit),从机在SDA上产生1bit的ACK。
5.第一个字节的传输至此结束。以后的字节传输也是发送方发送一个8bit数据,接收方发一个1bit的ACK。至于是主机发送数据还是从机发送就看读写指示位。
6.数据传输结束后主机发送停止条件。
7.主机发送停止条件之前,如果主机是接收方需要回应,则主机发NACK。为什么不是ACK,这个还需要再想想。 |