I²C一个总线上可以挂多个设备(传感器),设备之间直接用过ID进行区分,同一个总线上只能有一个主设备,可以有多个从设备,通信只能从主设备发起,不能从从设备发起。速率方面常用的有9.6Kbps、1.92Kbps、1.152Kbps,串口的通信速率必须两个设备都匹配才能进行。 串口属于点对点通信,一条串口线两端各联一个设备,设备之间是平等的,也就是两个设备都能够发起通信,而且使用的是两条不同的信号线,通信过程不会冲突。速率方面有100Kbps、400Kbps,一般只要从设备支持的速率上限足够,主设备的通信速率就可以随意了(因为)。 所以,总结一下: 一路I²C可以接多个传感器组成传感器网络,而一路串口只能接1个传感器; I²C的通信速率比较灵活,串口的比较死; I²C只能主设备发起通信,不能传感器主动想主设备发送数据,而串口则可以传感器主动发数据; 使用的难易程度来讲,串口比较简单,而I²C的调试相对复杂一些。 总的感觉是,在传感器领域这块的话I²C更为适用,一般可以使用主机不停轮询的方式来规避I²C从设备不能主动发数据的问题。
I²C一个总线上可以挂多个设备(传感器),设备之间直接用过ID进行区分,同一个总线上只能有一个主设备,可以有多个从设备,通信只能从主设备发起,不能从从设备发起。速率方面常用的有9.6Kbps、1.92Kbps、1.152Kbps,串口的通信速率必须两个设备都匹配才能进行。
串口属于点对点通信,一条串口线两端各联一个设备,设备之间是平等的,也就是两个设备都能够发起通信,而且使用的是两条不同的信号线,通信过程不会冲突。速率方面有100Kbps、400Kbps,一般只要从设备支持的速率上限足够,主设备的通信速率就可以随意了(因为)。
所以,总结一下:
总的感觉是,在传感器领域这块的话I²C更为适用,一般可以使用主机不停轮询的方式来规避I²C从设备不能主动发数据的问题。