串口是三颗线地线作为参考,接收和发送分别使用一颗线,所以是全双工通讯,双方设定好速率后,根据设定的速率定时采集数据,就可以通讯了。
IIC是一颗时钟,一颗数据,接收和发送都是数据线,所以是半双工通讯,接收端在时钟的上升沿或者下降沿锁定数据线上的数据。
SPI是时钟和接收发送共计三条线,如果多个设备需要一个片选信号,也是全双工通讯。MOSI就是主设备输出,从设备输入,MISO就是输设备输入,从设备输出,SS片选只有被选中的芯片才能获的与主设备通讯的权利。
CAN是差分信号传输,CANL和CANL两颗线的相对高低不同表示0和1,这样抗干扰能力强。
就是通过时序,读写1和0,包括单总线通信,这些都是别人定义的一个协议流行起来了就成为行业标准了,其实你自己也可以定义自己的同行协议。
理解这些协议就是看懂它们的时序图,这也是为什么这些协议都可以软件模拟的原因。
串口两条线一发一收,SPI也是,不过SPI多了一个时钟线和一个片选线,时钟由主设备提供
I2C一条时钟线一条数据线,按照地址选择通信对象