CAN接口简介

CAN是控制器局域网络(Controller Area Network, CAN)的简称,1986年被德国研发和生产汽车电子产品著称的BOSCH公司所开发,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。

1 CAN通信简介

CAN是控制器局域网络(Controller Area Network, CAN)的简称,1986年被德国研发和生产汽车电子产品著称的BOSCH公司所开发,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。

Controller Area Network,控制器局域网。CAN-bus规范定义了物理层和数据链路层,CANopen、DeviceNet等定义应用层,应用层可自行设计。支持多主通信模式。

2 CAN总线通信物理层
2.1 硬件连接
  1. CAN控制器:集成在控制单元内部,处理控制单元中的数据后传给CAN收发器;同时接受收发器的数据,处理并传给控制单元;

有的微控制器内部已经包含了CAN控制器,只需要外加CAN收发器,收发器一般是8个引脚的芯片。比如STM32:STM32+SN65HVD230(3.3V)。

  1. CAN收发器:集成在控制单元内部,将CAN控制器传来的数据化为电信号并通过传输线发送;同时曾接受传输线上来的数据给CAN控制器。

CAN收发器将逻辑信号(TXD、RXD)和物理信号(CANH、CANL)相互转换:CAN控制器向着CAN收发器的TX引脚发送数据,经过CAN收发器转换成差分信号。(相当于数字调制)

  1. 数据传输线:两条铜导线形成了双绞线结构,分为CAN高位数据线CAN_H和低位数据线CAN_L,具备有效的抗电磁干扰功能。

信号差分传输,可以有效抑制共模干扰:差分信号即使由环境问题影响,也是同时影响两根线,两者做差可以抵消这个环境引起的变化

  1. 终端电阻:布置在CAN网络的两个终端位置,防止数据在线端被反射,以回声的形式返回,影响数据的传输的准确性。

阻抗匹配:对于高速信号一般这个电阻设置为120Ω。为什么是120Ω:因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。低速CAN总线在CANH和CANL上分别串接2.2kΩ的电阻(也可以不接)。

2.2 CAN总线上的电平信号

CAN协议经过ISO标准化后有两个标准ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准(闭环),而IS011519-2是针对通信速率为125Kbps以下的低速通信标准(开环)。

35ea1a9f12054f6666f80d65cfe4f8d1.png

拿标准ISO11898来说:

Recessive:隐性(代表逻辑1) CAN_H=2.5V CAN_L= 2.5V 两条线上的电压差:0V
Dominant:显性(代表逻辑0) CAN_H=3.5V CAN_L=1.5V 两条线上的电压差:2V

2.3 CAN总线的测量

电阻值测量

(1) 测试工具
万用表
示波器

(2) 测试方法

第一步:将电池正极断开,整车断电
第二步:万用表调到电阻档200Ω量程。
第三步:将万用表的两个表笔连接到诊断接口引脚(CAN_H)和引脚(CAN_L)两端,测量PCAN的电阻值,若电阻值为60±10Ω,则测试通过.

电压测量
分别测量两个引脚电压是否满足标准

3 CAN总线通信数据链路层

单线CAN、低速CAN、高速CAN在数据链路层都相同,支持CAN2.0规范。数据链路层解决收发目标选择、数据校验、总线竞争、错误机制等问题。CAN-bus规定了5种通信帧——数据帧、远程帧、错误帧、过载帧、帧间隔。CAN控制器实现了数据链路层的全部功能以及物理层的位定时功能。

名称帧用途
数据帧用于发送单元向接收单元传送数据的帧
遥控(远程)帧用于接收单元向具有相同 ID 的发送单元请求数据的帧
错误帧用于当检测出错误时向其它单元通知错误的帧。(硬件自动完成)
过载帧当一个节点正忙于处理接收的信息,可以通知其它节点暂缓发送新报文。(硬件自动完成)
帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧(硬件自动完成)

数据帧
特点:用于传输数据,使用最多,分为标准帧CAN2.0A和扩展帧CAN2.0B。

f0f87b278d3920dfefc6812fbd861d5c.png

名称描述
帧起始表示帧的开始,产生一个bit的显性电平。
仲裁段表示帧的优先级, 由标识符(ID)和传送帧类型(RTR)组成。
控制段表示数据的字节数,由6个bit构成
数据段数据的具体内容,可发送0~8 个字节的数据。
CRC段用于校验传输是否正确。
ACK段表示确认是否正常接收。
帧结束表示此帧结束。

帧起始
1bit显性电平,助记符为SOF。作用是进行硬同步。(因为帧间隔是隐性电平,这样在帧起始时会有一个跳变,便于同步检测)

仲裁段
对于CAN2.0A,仲裁段由11bit ID和1bit RTR位组成,ID规定了数据帧的优先级,ID越小优先级越高;RTR位是远程发送请求位,标明该帧是数据帧还是远程帧,数据帧该位为显性,远程帧该位为隐性,因此,当ID相同时,数据帧的优先级高于远程帧。ID高7位ID10-ID4不得全为隐性。

对于CAN2.0B,差别仅仅在于在标准帧11位ID后面插入了1bit显性的替代远程帧请求位SRR,将标准帧中位于控制段的扩展识别位IDE接在SRR后面,然后接上扩展的18bit ID。扩展帧ID有29位。标准帧的优先级高于扩展帧。标准帧IDE为显性,扩展帧为隐性。

CAN控制器会监测数据线上的电平与发送位的电平,如果不相同,停止发送,如果该位在仲裁段,则退出总线竞争,如果不在仲裁段,则产生错误(除了ACK段和被动错误标志传输时)。

ID禁止高7位全为隐性。在任何情况下,总线上不可能有多个设备在同一时刻使用同一个ID传输数据帧。

控制段
对于CAN2.0A,控制段由IDE、保留位r0、4位的数据段长度码DLC共6位组成。DLC表示数据段数据的字节数,取值0到8,用BCD码表示。

对于CAN2.0B,控制段由保留位r1、r0和4位长度码DLC共6bit组成。

数据段
数据段包含0到8个字节,byte0在前,每个字节先传MSB。数据量小,实时性高。

CRC段
CRC校验,将前4段所有位进行模2除以多项式

27d5a2c2e61432cee60db40f6ea64831.png

得到15位CRC值,再加上一位隐性的CRC界定符组成16位的CRC段。

得到15位CRC值,再加上一位隐性的CRC界定符组成16位的CRC段。

ACK段
由一位ACK槽和一位ACK界定符组成。ACK槽期间发送节点发送隐性电平,接收正确节点发送显性电平将总线上信号拉低。ACK界定符位1位隐性电平。要保证发送节点在应答间隙期间接收到应答的显性位,对总线长度有了限制。

帧结束
7个连续的隐性位,助记符EOF。

远程帧
远程帧与数据帧点区别在于没有数据段,RTR为隐性,其余相同。

0a11336c86cbd47997b41c64439d2449.png

4 CAN总线通信应用层

通过应用层协议来规范,工业领域主要有CANopen、Devicenet等协议。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Canfestival中文手册是一种为了方便中国用户而制作的Canfestival软件的中文使用指南。Canfestival是一个开源的CANopen协议栈,用于在嵌入式系统中实现CANopen协议通信。这个手册详细介绍了Canfestival的安装、配置和使用方法,以及各个功能模块的使用说明。 首先,手册中会介绍Canfestival的基本概念和原理,包括CANopen协议的基本概念和通信模型,以及Canfestival的架构和工作原理。用户可以通过这些介绍了解Canfestival的基本原理,为后续的学习和使用打下基础。 然后,手册会详细介绍Canfestival的安装过程,包括软件环境的准备和依赖库的安装。通过按照手册的指导,用户可以轻松地在自己的嵌入式系统中安装和配置Canfestival软件。 接下来,手册会逐步介绍Canfestival的各个功能模块的使用方法,包括CAN总线通信的初始化、PDO和SDO对象的配置和管理,以及CANopen网络的建立和维护等。用户可以通过手册中的示例代码和详细说明,迅速上手并掌握Canfestival软件的各项功能。 此外,手册还会介绍一些常见的问题和解决方法,以及一些使用技巧和注意事项。这些内容可以帮助用户更好地理解和使用Canfestival,以及解决在使用过程中遇到的一些常见问题。 总之,Canfestival中文手册是一本详细介绍Canfestival软件的中文指南,通过学习这本手册,用户可以了解Canfestival的原理和使用方法,从而更好地应用Canfestival进行嵌入式系统的CANopen通信开发。 ### 回答2: CanFestival是一个开放源码的CANopen协议栈实现工具。它为CANopen通信协议提供了丰富的功能和灵活性,可以在各种嵌入式系统中使用。 CanFestival中文手册是对CanFestival工具的使用说明书,以中文形式详细介绍了CanFestival的安装、配置和使用方法。 手册首先介绍了CanFestival的基本概念和原理,包括CANopen通信协议的基本原理和工作方式。然后详细介绍了CanFestival的安装步骤,包括从官方网站下载CanFestival源码、编译和安装CanFestival库文件。 手册进一步介绍了CanFestival的配置文件,包括主节点和从节点的配置方法,以及各种通信参数的设置。它详细说明了如何配置节点的ID、波特率、通信对象字典等信息,以满足不同应用场景的需求。 手册还介绍了CanFestival的API接口,包括发送和接收CAN消息的方法、读写对象字典的方法,以及事件处理和错误处理的方法。这些接口的使用方法和调用示例都有详细的说明,并提供了一些常用的示例代码。 手册最后介绍了CanFestival的应用示例,包括如何使用CanFestival实现简单的CANopen通信、如何使用CanFestival实现远程控制和监控等功能。通过这些示例,读者可以更好地理解和掌握CanFestival的使用方法。 总之,CanFestival中文手册是一本详细介绍CanFestival工具的使用说明书,它帮助用户了解和掌握CanFestival的安装、配置和使用方法,为开发者提供了丰富的参考资料。 ### 回答3: Canfestival是一个用于开发CANopen协议的开源工具集。它提供了一套完整的软件库和丰富的API,方便开发人员快速实现CANopen通信。Canfestival具有跨平台的特性,可以在多种操作系统上运行,如Windows、Linux、FreeRTOS和嵌入式系统等。该工具集的中文手册为使用者提供了详细的指导和说明。 Canfestival中文手册主要包含以下内容: 1. Canfestival简介:介绍Canfestival的概述、特点和应用领域。 2. 安装和配置:详细介绍如何在不同的操作系统和开发环境中安装和配置Canfestival。 3. Canfestival的基本概念:介绍Canfestival的基本概念和术语,如节点、对象字典、SDO和PDO等。 4. Canfestival的API和函数库:详细介绍Canfestival提供的API和函数库,包括初始化、发送和接收数据、处理事件和调度等。 5. 示例和实例代码:提供一些示例和实例代码,方便开发人员理解和使用Canfestival。 6. 故障排除和常见问题:列举了一些常见问题和解决方法,帮助开发人员快速解决问题。 通过Canfestival中文手册,开发人员能够全面了解和学习利用Canfestival进行CANopen开发。它为开发人员提供了一个详尽的指南,帮助他们快速上手并高效地使用Canfestival进行开发工作。无论是初学者还是有经验的开发人员,都可以从中文手册中获得帮助和指导,从而加快开发进度,提高开发质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值