Hands On-基于 E3110 开发板外设CAN的简介

1   前言

       CAN 是 Controller Area Network 的缩写,它是一种 ISO 国际标准化的串行通信协议。在汽车产业中,由于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。

       高速 CAN 收发器是汽车和其他系统中使用的关键元件,主要用于 CAN 协议控制器和物理总线接口之间的连接。NXP 的各种收发器是目前世界上使用最广泛的设备之一。

       本文的 E3110 开发板就使用了 CAN_TJA1044GT/3 芯片,本文旨在通过 E3110 开发板所需的 CAN 外设做一个简单的介绍。

 

2   CAN 概述

        CAN 是控制器局域网,它是一种串行异步数据通信协议。最初出现在 80 年代末的汽车工业中,由德国 Bosch 公司最先提出。

        CAN 总线可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。其具有非破坏性位仲裁总线机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。

       此外,CAN 总线的数据传送方式可以点对点、一点对多点(成组)及全局广播几种传送方式接收数据。其通信速率最高可达 1MB/s,节点数实际可达 110 个,采用短帧结构,每一帧的有效字节数为 8byte,并具有错误检测功能。

       在实际使用中,比如在汽车中,CAN 总线可以用于传输各种传感器数据和控制信号,实现汽车电子控制系统之间的通信。

 

2.1  CAN 工作原理

        CAN(Controller Area Network)是一种控制器局域网,被广泛应用于汽车、工业自动化、医疗设备等领域。CAN 总线是一种串行通信网络,可以实现分布式控制和信息传输。以下是一些关于 CAN 总线工作原理的介绍:

        1)通信协议:CAN 总线采用通信协议,其物理层和数据链路层由国际标准化组织 ISO 制定,应用层由各个厂商或组织自行制定。

        2)报文传输:CAN 总线上的每个节点都可以发送和接收报文。报文以帧的形式传输,每帧由标识符、数据字段和帧检查序列组成。标识符用于指示报文的优先级,数据字段包含实际传输的数据,帧检查序列用于保证报文的完整性。

        3)总线仲裁:当多个节点同时发送报文时,CAN 总线使用标识符的逐位仲裁机制来解决碰撞。在仲裁期间,每个节点都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个节点可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个节点就失去了仲裁,必须退出发送状态。

        4)错误检测和恢复:CAN 总线具有强大的错误检测和恢复机制。当检测到错误时,错误计数器将会对错误进行计数并报告给相关的节点。如果错误计数器达到了一定的值,节点将会被隔离并停止发送报文。同时,其他节点会尝试重新建立连接,以保证总线的正常运行。

        5)网络拓扑结构:CAN 总线可以使用多种网络拓扑结构,如星型、树型、环型等。其中,星型结构是最常用的结构,它使用一个主节点作为中心节点,其他节点作为从节点。主节点负责管理和调度总线的通信,从节点则负责接收和发送报文。

        总之,CAN 总线以其高可靠性、实时性、灵活性和可扩展性等特点,被广泛应用于各种领域。

 

2.2  CAN 通信机制

        电信号的传输在物理层面都是靠电压高低区分来实现的,CAN 通信也不例外。CAN 总线使用双绞线进行差分电压传输,两条信号线被称为 CAN 高(CAN_H) 和 CAN 低 (CAN_L)。

        两条线静态时均为 2.5V 左右,此时状态表示为逻辑 1,也被称作隐性。当两条线电压值出现差异时,通常 CAN_H=3.5V 和 CAN_L=1.5V,此时状态表示为逻辑 0,也称作显性。即:

差分电压 CAN_diff = 0V,表示逻辑“1”,为隐性;

差分电压 CAN_diff = 2V,表示逻辑“0”,为显性;

        注:实际开发中两条线的电压都会在标准值上下附近波动,这也是用差分传输的好处,减少误差和噪声带来的干扰。

 

2.3  CAN 帧格式

CAN 总线定义四种帧类型,分别为数据帧、远程帧、错误帧和过载帧。

        1)数据帧就是总线上传输用户数据的帧,其最高有效载荷是 8 Byte,结构上由 7 个段组成,其中根据仲裁段 ID 码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。


图2-1 数据帧结构图


2)远程帧是用来向总线上其它节点请求数据的帧,它的帧结构与数据帧相似,只不过远程帧结构上无数据段,由6个段组成。



图2-2 远程帧结构图


3)错误帧是表示通信出错的帧。错误针分为主动错误和被动错误。

       主动错误帧由 6 个连续的显性位和 6 个连续的隐性位组成,其中显性位标志为错误标志,隐性位标志为错误界定符。当节点检测到错误时,会发送主动错误帧。

       被动错误帧由 6 个连续的隐性位和 8 个连续的隐性位组成,其中隐性位标志为错误标志和错误界定符。当其他节点接收到主动错误帧后,会发送被动错误帧。



图2-3 错误帧结构图


4)过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。

      (1)过载标志 6 个位的显性位,过载标志的构成与主动错误标志的构成相同。 

      (2)过载界定符 8 个位的隐性位,过载界定符的构成与错误界定符的构成相同。


                                                                                               6个连续显性电平位                                          8个连续隐性电平位

图2-4 过载帧结构图

 

2.4  CAN 数据位时序与同步

        CAN 通过一种称为“非归零(Non-Return-to-Zero)”的编码方式来实现数据位时序和同步。具体实现方式如下:

       非归零编码:CAN 使用非归零编码来表示数据位。在 CAN 总线上传输的信号中,每一个位(0 或 1)都被编码成两个相对相反的电平,分别是“高”和“低”。这种编码方式使得信号的平均值始终保持为 0,从而提高了抗干扰能力。

       位时间:CAN 总线通信的时间被分成了许多等长的时间段,每个时间段称为“位时间(Bit Time)”。每一个位都占用一个或多个位时间。

       同步位:CAN 帧的开始由一个特定的同步位标志,称为“帧起始位(Start of Frame, SOF)”,表示一个帧的开始。这个同步位的作用是用来同步接收方的时钟。

       相位段:每个位时间被分成了三个部分:传输时段(TSEG1)、同步跳转时段(TSEG2)和位同步时段(TSEG3)。相位段的长度可以根据通信速率进行调整,以适应不同的环境和设备。

TSEG1:用于确定位的传输时间。

TSEG2:用于在 TSEG1 的中间位置提供同步跳转。

TSEG3:用于在 TSEG2 结束时继续保持总线稳定。

        通过这种方式,CAN 总线可以确保发送方和接收方之间的时钟同步,以保证数据的可靠传输。同时,非归零编码也使得 CAN 总线对噪声和干扰有很强的抵抗能力。这些技术共同确保了 CAN 总线的高效稳定通信。

 

3   E3110 开发板的 CAN 方案设计

        TJA1044GT/3 提供了针对 12 V 汽车应用优化的特性,相比 NXP 的第一代和第二代 CAN 收发器(如 TJA1040 和 TJA1042)有显著改进,并具有出色的电磁兼容性 (EMC) 性能。所以在 E3110 开发板的设计上,我选择使用了 NXP 公司的 CAN_TJA1044GT/3 这颗芯片。

 

3.1  CAN_TJA1044GT/3 简介及特性

        TJA1044GT/3 是高速 CAN 收发器的一部分。它提供了控制器局域网 (CAN) 协议控制器与物理两线 CAN 总线之间的接口。收发器为汽车行业的高速 CAN 应用而设计,为带有 CAN 协议控制器的微控制器提供差分发送和接收功能。此外,TJA1044GT/3 还具有以下特性:

1)当电源电压断开时,对 CAN 总线的理想无源行为;

2)具有非常低的待机模式电流和总线唤醒能力;

3)在高达 500kbit/s 的速度下具有出色的 EMC 性能,甚至无需共模扼流圈;

4)TJA1044GT/3GT/3 和 TJA1044GT/3GTK/3 可直接接口到采用 3V 至 5V 电源电压的微控制器;

       这些特性使成为所有类型的高速 CAN 网络的优秀选择,在需要低功耗模式及具备唤醒能力通过 CAN 总线的节点上,尤为适合。



图3-1 CAN_TJA1044GT/3 5V 系统应用框图

 

3.2  CAN_TJA1044GT/3 工作模式

        TJA1044 支持两种操作模式,正常和待机。操作模式为通过引脚 STB 选择。正常情况下的操作模式见下表:

模式

输入

输出

STB引脚

TXD引脚

CAN驱动器

RXD引脚

正常模式

低电平

低电平

显性

低电平

高电平

隐性

CAN总线显性时为低电平

CAN总线隐性时为高电平

待机模式

高电平

X[忽略]

对地偏置

当检测到唤醒时跟随CAN总线

没有唤醒时为高电平

图3-2 TJA1044  正常情况下的操作模式

 

  • 正常模式:

       引脚 STB 上出现低电平选择正常模式。在此模式下,收发器可以通过总线线路 CANH 和 CANL 传输和接收数据(参见图 1 的框图)。差分接收器将总线线路上的模拟数据转换成数字数据,并从引脚 RXD 上输出。总线线路上的输出信号的斜率由内部进行控制,并经优化以确保实现最低的电磁辐射(EME)。

 

  • 待机模式:

       引脚 STB 上出现高电平选择待机模式。在待机模式下,收发器无法通过总线线路传输或正确接收数据。发射机和正常模式接收器块被关闭以降低电流消耗,只有低功耗差分接收器对总线线路进行活动监测。
       在待机模式下,总线线路被偏置为接地状态,以最小化系统供电电流。低功耗接收器由 VIO(非 VIO 变种中的 VCC)供电,即使 VIO 是唯一可用的电源电压,也可以检测到 CAN 总线活动。在检测到唤醒请求后,引脚 RXD 会跟踪总线。当 STB 被强制置为低电平时,将触发转换到正常模式。

 

  • 远程唤醒(通过 CAN 总线)

       当在总线上检测到专用的唤醒模式(在 ISO11898-2:2016 中指定)时,TJA1044 从待机模式唤醒。这种过滤机制有助于避免产生错误的唤醒事件。错误的唤醒序列可由诸如带有时钟夹断的主动总线或者因总线上的噪声或干扰产生的主动相位而触发。



图3-3  Wake-up timing

 

3.3  CAN_TJA1044GT/3 管脚解析

        E3110 开发板的 CAN_TJA1044GT/3 选用的是  SO8  的一个封装,芯片共有 8 个管脚及相对应的管脚功能。



图3-4 CAN_TJA1044GT/3 封装图

 

引脚号

引脚名称

功能说明

1

TXD

传输数据输入,从MCU输入给CAN总线

2

GND

接地引脚

3

VCC

电源供电引脚

4

RXD

传输数据输出,从CAN总线输出给MCU

5

VIO

TJA1044GT/3、TJA1044GTK/3型号该引脚才会连接,为IO口提供电压

6

CANL

低电平CAN总线

7

CANH

高电平CAN总线

8

STB

待机模式(Standby)控制输入

表3-5 CAN_TJA1044GT/3 管脚解析

 

3.4  E3110 开发板的 CAN 原理图

        基于 E3110 开发板的 CAN 设计原理图,根据 TJA1044GT/3 的工作原理和各管脚定义,绘制了如下原理图,VCC_5V 都是从 SBC FS5600 的 BUCK 电压给到 CAN 进行供电,TXD/RXD 上拉 VCC_3V3 并同时链接到 E3110 芯片的 GPIO 复用接口。



图3-6   CAN_TJA1044GT/3 原理图

 

 

如对此有更多需求,敬请联系世平集团 ATU 部门,atu.cn@wpi-group.com

 

4   参考文献

[1] 杜尚丰,曹晓钟,徐津.CAN 总线测控技术及其应用[M].电子工业出版社,2007.

[2] 董珂,李克强,冯能莲等. CAN 总线技术及其在混合动力电动车上的应用[J].清华大学学报(自然科学版),2003 (8) :100-102.

[3]《汽车 CAN 总线系统原理、设计与应用》 罗峰 孙泽昌 著.

        [4] 参考【TJA1044GT/3 Product data sheet】.



      欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com

     
     作者:Sandy Yang / 杨羽洁




     更多资讯,请扫码关注我们!

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能