CAN总线基础(1)

 (一)什么是CAN总线?

        CAN是控制器域网 (Controller Area Network, CAN) 的简称,CAN总线是德国博世公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交互而开发的一种串行数据通信协议。

(二)CAN总线拓扑结构

1)ISO11898 :定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,闭环总线网络高速、短距离,它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各要求有一个120 欧的电阻。

2)ISO11519:定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2千欧的电阻。传输速率为40kbps时,总线长度可达1000米。

高速CAN与低速CAN由于通讯速率不同,在汽车上的应用也有区别。 高速 CAN 连接动力、底盘等控制时间响应要求高的部 分,低速 CAN 用于车身、座舱设备等对响应速度要求不高的方面 。

       传播速率这里需要注意,单位 kbps ,全称为千比特每秒(kilobits per second)。这是衡量数据传输速度的常用单位,特别是在网络和通信领域。具体含义是每秒钟传输的数据量为多少千比特(1千比特等于1000比特)。这里与波特率需要重点区别一下。波特率是每秒传送一bit的数量单位是bits/s。通俗理解常见的115200,也就是每秒传输115200位的速度。

为什么要挂载120欧姆的终端电阻?

根据拓扑结构可能很多人有这个疑惑,CAN总线终端电阻的作用有3个:

1.提高抗干扰能力,让高频低能量的信号迅速走掉

2.确保总线快速进入隐性状态,让寄生电容的能量更快走掉

3.提高信号质量,放置在总线的两端,让反射能量降低

其中原因与具体硬件相关,本文不做具体解释,可参考CAN总线终端电阻的作用?为什么是120Ω?为什么是0.25W? (qq.com)

(三)CAN信号收发

        CAN总线上每个节点都有CAN收发器(transceiver)和CAN控制器(controller),CAN收发器和CAN控制器可能集成在芯片(on-chip),也可能是独立于芯片(off-chip)

CAN信号发送:在发送过程,CAN控制器将CPU传来的信号转换为逻辑电平(TTL电平)。CAN收发器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上;

CAN信号接收:在接收过程,CAN收发器将CAN_H CAN_L 线上传来的差分电平转换为逻辑电平(TTL)输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。发送方通过CAN收发器使总线电平发生变化,将其信息传递到CAN总线上。接收方通过监听总线电平,将总线上的消息读入自己的CAN收发器。

   (四)CAN通信差分信号

       CAN总线的两根信号线通常采用的是双绞线传输的是差分信号,通过两根信号线的电压差CANH-CANL来表示总线电平。以差分信号传输信息具有抗干扰能力强,能有效抑制外部电磁干扰等优点,这也是CAN总线在工业上应用广泛的一个原因。

        在CAN总线上通过差分电压传输报文信号,但是差分电压又是如何形成的呢?在差分信号中,逻辑0和逻辑1是用两根差分信号线的电压差来表示。当处于逻辑1,CAN_H和CAN_L的电压差小于0.5V时,称为隐性电平(Recessive);当处于逻辑0,CAN_High和CAN_Low的电压差大于0.9V,称为显性电平(Dominant)。

      差分电压就是CAN_H和CAN_L之间的电压差,通过电压差来表示逻辑0和1。其中的原理非常简单,当CAN_H与CAN_L都为2.5V时,CAN_H与CAN_L的差值为0,代表逻辑1,为隐性,当CAN_H为3.5V,CAN_L为1.5V时,二者差值为2V,代表逻辑0,为显性。这里需要注意一下,显隐性与逻辑0和1与我们平时的逻辑不太一样,需要注意区分一下。

      通信的过程中,各个节点通过CAN_H、CAN_L直接接在总线上,通过MCU发出要传输的信号(如01001)给CAN控制器,控制器解析MCU传来的信号,转化为电压通过CAN收发器发送到总线上,总线上其余的节点可通过CAN收发器读取总线上的电压情况,得到通信信息进行通信,通信内部处理原理同上 。

        

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值