I2C和串口

有很大方式的不同。譬如i2c是带地址的通讯,支持多方通讯,串口就搞不定;两者通讯的机制原理也不同;

另外速度上I2C相对会快一些,好像i2c是philips发明的,目的就是解决速度的瓶颈。I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。最低也有100K的速率,而串口通讯定了很多波特率设置使用最多的是9600bps,因为波特率越大传输距离越短,一般使用9600bps大概传输距离是10m到20m之间,如果使用125200bps大概只有2-3m。所以就按最大的也就115K左右的速率.

I2C接口是"器件间"接口,是在一块板子之内数据的,RS232串行接口是"设备间"接口,更多的是用于两台设备之间传输数据。从传输数据的距离来说,应该是RS232传输的距离较远,但二者具体差别多少,我没有做过专门的试验。

串口是一根线传送数据,一根线接收数据
I2C是一根线是时钟线,一根线是数据线,数据线是双向的,可以接收,也可以发送。

协议不同,波特率不同.
串行接口,像单片机,时钟由内部MCU提供,而I2C接口要由器件来决定,不能太快.

i2c是同步串行传输,RS232(或曰UART,通用异步收发器)是异步串行传输。

同步方式必须有一根时钟线连接传输的两端,i2c里的scl就是这根时钟线。因为同步方式不用花费额外的开销对其数据,所以其传输速率一般比异步方式高。

原文地址:https://www.cnblogs.com/hdsong/p/5104515.html