STM32
直播中

听我讲

9年用户 685经验值
擅长:电源/新能源 MEMS/传感技术
私信 关注
[问答]

CAN总线和以太网EtherCAT哪一个更好

CAN总线是什么?CAN总线有何作用?CAN总线的优点有哪些?

回帖(1)

陈超

2021-11-10 09:25:30
  现场总线
  最近的实验需要较高的运动控制速率。市场上大部分的驱动板目前只支持CAN通信。毕竟CAN通信配置简单而且便宜。通信速率在500kbps,当使用多个驱动器时,一拖多不能达到想要的控制速率。所以选择EtherCAT转CAN。采用树形网络来作为通信网络结构。
  CAN总线(Control Area Network)
  一、CAN总线是什么?
  CAN是Controller Area Network的简称,是一种有效支持分布式控制或实时控制的串行通信网络,最早是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,1986年,BOSCH开发出面向汽车的CAN通信协议,后来,CAN总线通过ISO 11898和ISO 11595进行了标准化,现在在欧洲是汽车网络的标准协议。
  把汽车比如成人体,那CAN总线就是神经系统,电子控制单元(ECU)就是身体的一部分,身体是由多个ECU组成的,各个ECU之间通过神经系统进行通信,一个部分感知到的信息可以与另一部分共享。
  CAN的应用非常广泛,工业自动化、船舶、医疗设备、工业设备等方面。
  CAN总线的作用?
  在汽车上,CAN总线的作用就是把不同的部件连接起来,然后这些部件都执行同一套标准协议,这样的好处是兼容性高,信息可以可靠共享,并且能减少整车的线束数量。
  CAN总线的优点
  简单低成本: ECU通过单个CAN系统进行通信,而不是直接的复杂模拟信号线通信,这样减少了错误,重量,接线和成本。
  完全集中: CAN总线提供了一个接入点,可以与所有网络ECU进行通信,——支持集中诊断,数据记录和配置。
  稳定: CAN总线具有强大的抗电干扰和抗电磁干扰能力,非常适合对安全要求严格的应用(例如车辆)。
  高效: 通过ID对CAN帧进行优先级排序,以便优先级最高的数据可以立即访问总线,而不会引起其他帧的中断。
  CAN总线拓扑图
  从拓扑图中可以看到一个CAN节点,主要由CPU,CAN控制器,CAN收发器组成
  
  CAN总线是差分线,有CAN_H和CAN_L两根线,差分线的抗干扰能力强,外界有干扰时,几乎同时会耦合到差分线的两根线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消,图中箭头所示,虽然两根线都受到干扰,但是两者差值不变。
  1 CAN控制器的作用
  CAN控制器一方面接收收发器的数据,进行解析后发送给CPU;另一方面接收CPU的指令数据,然后发送给CAN收发器。
  120Ω终端电阻
  高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。
  
  对于低频信号则不用CAN总线两端必须连接终端电阻才可以正常工作,终端电阻应该与通讯电缆的阻抗相同,典型值为120欧姆,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。
  各接口协议速率对比
  IIC
  S(标准模式)测量与控制场合,100kb/sF(快速模式),速率为 400kb/sHs(高速模式),速率为 3.4Mb/s。 具体看器件要求,单片机一般是400k或以下常用。IIC协议是有规定的,其总线的容性负载要求,目前最高的1M左右。普通的芯片只有 低速 100K 与 高速 400K 两种规格。如果通信距离较远,导线的分布电容较大,而上拉电阻又取得太时,信号上升时间不够,接收方就可能会读不到高电平。我们知道IIC是靠上拉出来的高电平,信号上升所需的时间正比于上拉电阻值和该点对地电容的乘积。 SPI
  SPI是一种高速的,全双工,同步的通信总线,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。对于STM32器件,如果用的固件库,那就是更改SPI_InitStructure.SPI_BaudRatePrescaler参数。 赋值在stm32xxxxx_spi.h中有定义,是APB2或者APB1总线频率的1/2~1/256。 CAN
  理论上,CAN总线在速率小于5K时,距离可达10km;速率接近1M时,距离小于40m。现实中常用的高速CAN总线速率有500k或250k,低速CAN总线有125k和62.5k,传输距离在几米到几十米间。速率和传输距离的选择还有考虑硬件的要求。理论上,一条CAN总线上可以连接无数个CAN设备,但实际上受到其他条件限制,数量总是有限的。例如,使用了更上层的CANOPEN协议,则一条总线上只能有128个设备。 485
  RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号 A,B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。RS-485/422最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求: 1. 接收器的输入电阻RIN≥12kΩ 2. 驱动器能输出±7V的共模电压 3. 输入端的电容≤50pF 4. 在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关) 5. 接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号“0”;(V+)-(V-)≤-0.2V,表示信号“1”) USB
  USB1.1:1. 低速模式(low speed):1.5Mbps2. 全速模式(full speed): 12MbpsUSB2.0:向下兼容。增加了高速模式,最大速率480Mbps。1. 高速模式(high speed): 25~480Mbps USB3.0:向下兼容。2.super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。
  工业以太网
  EtherCAT
  还有其他可以代替的工业以太网协议,比如powerlink。Etherc
  EtherCAT传输性能
  传输速率:– 2 x 100 Mbit/s (高速以太网, 全双工模式)• 刷新时间:– 256 数字量 I/O:11 µs– 分布于 100 节点的 1000 开关量 I/O:30 µs = 0.03 ms– 200 模拟量 I/O (16 bit) :50 µs, 采样率 20 kHz– 100 伺服轴 (每个 8 Byte IN+OUT) : 100 µs = 0.1 ms– 12000 数字量 I/O: 350 µs• 40 轴 (每轴 20 Byte 输入和输出数据)• 50 I/O 站,共计560个EtherCAT总线端子模块• 2000 个数字量 + 200个模拟量, 总线长度500米• EtherCAT: 循环时间 = 276 µs• 总线负载44%, 报文长度 = 122 µs EtherCAT应用层
  协议层
  
  EtherCAT应用层支持多种设备行规以实现邮箱通讯,包括CANopen、SERCOS、HTTP等,基于EtherCAT的应用层行规被称为xoE协议(xxx over EtherCAT)。设备开发中,从站设备无需支持所有行规,根据其应用选择最合适的一种即可。下面将以应用最为广泛的CoE协议举例描述。
  CoE协议
  
  CoE全称CAN application protocol over EtherCAT,是EtherCAT应用层协议实现的一种,其特点是根据CiA402协议编写,使用对象和对象字典的功能实现邮箱通讯。
  CANopen协议已经有成熟且大规模的应用,使用CoE协议,相关设备只需要经过少量的更改即可应用于EtherCAT协议上,大部分CANopen的固件也可以得到重复利用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分