各种控制系统传输的场合:总线
RS485:一主多从的通信方式,适用于总线通信,只是物理上用了RS485的电平标准
选择总线时,需要考虑 传输速率、传输距离
传输速率与传输距离往往成反比
RS485: 10Mbps max
CAN: 1Mbps max,几十米
当数据在几kbps时,RS485无中继距离最远1km左右
LIN总线:40m max, 几十kbps
Ethernet: 100m max
从抗干扰角度考虑,RS485与CAN总线都不错,都是差分信号
RS485上层协议需要开发人员自己设计,RS485只是物理层的标准
RS485:一主多从,半双工,应答式通信方式,主机发起,从机应答,然后主机再次发起,等待从机应答;如果在RS485组成的局域网里面,如果有一个设备发生异常,就可能会导致整个网络瘫痪
CAN总线就不存在上述问题,CAN总线有比较好的防冲突机制,在发信号前,会一直不停的监测总线上的状态,如果发生冲突(同一时刻不同设备同时向总线上发消息),本身也有很好的仲裁机制,比如优先级处理;除此之外,CAN总线的控制器里面有一个比较强大的自锁功能,如果设备本身发生故障,就会立即自锁,不会影响其它CAN节点,CAN局域网仍然可以继续工作
LIN总线本身挂载设备不多,协议也相对于CAN简单一些,没有像CAN那样有仲裁机制,但自身有一个任务调度表,会简单的处理冲突情况
Ethernet:载波侦听机制。
具体选择,取决于项目类型:
如果是偏控制类项目,则实时性要求较高,CAN/LIN/RS485都可以考虑,Ethernet的实时性就相对弱一点。
CAN总线数据链路层,数据帧长度不大于8字节,携带的信息少
Ethernet数据链路层,数据帧长度长,时延大。
如果考虑后期灵活的添加/移除设备,则CAN总线比较灵活一点。 方便后期维护。
RS485/LIN总线接口简单
CAN总线需要有专用的控制器。