这几类通信均为串行通信协议。
IIC协议,可以用普通IO口模拟,两根线,一个SDA 一个SCL。半双工。通过两根线的时序,实现输入输出。
SPI:四根线,全双工,输入,输出,时钟,片选。
CAN总线:CAN 是一种 ISO 国际标准化的串行通信协议, 是 1986 年德国电气商博世公司开发出面向汽车开发出来的,此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。CAN 传输数据只需要两根线就可以了。CAN 控制器根据两根线上的电位差
来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。
特点:总线空闲的时候,所有的单元都可以发送消息,而两个或者两个以上的单元同时发送消息的时候呢, 它是根据标示符 (也就是 ID)来决定优先级的。
485通信:半双工,多点通信,结构类似CAN总线。模块与can用的芯片不同。
目前来看,首先选择的可以用串口,SPI。再次可以IIC。因为IIC速度我感觉比较慢。