CAN总线解析

合集下载

CAN总线详解.pdf

CAN总线详解.pdf

CAN总线§1 CAN总线的性能特点§2 CAN总线的技术规范§3 CAN器件及开发
CAN(Controllor Area Network)总线技术,由于其高性能、高可靠性以及独特的设计,越来越受到人们的重视。

已被列入ISO国际标准,称为ISO11898。

CAN最初是由BOSCH公司为汽车监测、控制系统而设计的。

由于CAN总线本身的特点,其应用范围已不再局限于汽车工业,而向过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等领域发展。

主要特点如下:
1、多主方式工作;
2、具有不同的优先级;
3、采用非破坏性总线仲裁技术
4、CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”;
5、节点数主要取决于总线驱动电路;
6、采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。

7、CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。

8、CAN节点在错误严重的情况下具有自动关闭输
出的功能,以使总线上其他节点的操作不受影响。

9、直接通讯距离最远可达10km(速率在5Kbps以下);通信速率可达1Mbps(通信距离最长为
40m);
§2 CAN总线的技术规范§2.1 CAN的通信参考模型
§2.2 CAN总线介质装置
§2.3 报文传送与帧结构
§2.4 错误类型和界定
§2.5 位仲裁技术。

can总线知识点梳理

can总线知识点梳理

can总线知识点梳理CAN总线是一种串行通信网络,用于实现分布式实时控制。

它是由德国的BOSCH公司开发的,具有传输速度快、通信距离远、无损位仲裁机制、多主结构等优点。

CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。

CAN总线采用差分电压传送,使用两条信号线(CAN_H和CAN_L),静态时均为2.5V左右,显性时,通常电压值为:CAN_H=3.5V,CAN_L=1.5V。

在CAN总线中,多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。

CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步,从而消除累积误差。

CAN总线的数据帧结构包括帧起始、仲裁段、控制段、数据段、CRC校验段、应答段和帧结束。

其中,仲裁段决定了报文的优先级,ID值越低,优先级越高。

控制段中包含数据长度代码(DLC),表示数据段的长度。

数据段包含发送的数据,可以有0~8个字节。

此外,CAN总线还支持扩展帧和标准帧两种格式,IDE位表示帧类型(0为标准帧,1为扩展帧),RTR位表示帧类型(0为数据帧,1为远程帧)。

在实际应用中,MCU负责实现对功能电路和CAN控制器的控制,包括初始化CAN控制器参数、通过CAN控制器读取和发送CAN 帧、处理CAN控制器的中断异常、根据接收到的数据输出控制信号等。

同时,接口管理逻辑解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。

在具体的CAN应用场景中,如汽车行业,现在每一辆汽车上都装有CAN总线。

同时,为了实现不同的功能,不同的CAN标准仅物理层不同,而应用层协议也有多种选择,如CANOpen、DeviceNet、J1939、iCAN等。

CAN总线简介(2024版)

CAN总线简介(2024版)
目前汽车上的网络连接方式主要采用2条CAN, 一条用于驱动系统的高速CAN,速率达到500kb/s; 另一条用于车身系统的低速CAN,速率是100kb/s。
驱动系统的高速CAN
• 驱动系统CAN主要连接对象是发动机控制器 (ECU)、ABS控制器、安全气囊控制器、 组合仪表等等,它们的基本特征相同,都是 控制与汽车行驶直接相关的系统。
倍。这种传统布线方法不能适应汽车的发展。CAN总线可有效减少线束,节省空间。
例如某车门-后视镜、摇窗机、门锁控制等的传统布线需要20-30 根,应用总线 CAN 则
只需要 2 根。(3)关联控制在一定事故下,需要对各ECU进行关联控制,而这是传统
汽车控制方法难以完成的表1 汽车部分电控单元数据发送、接受情况
• (5)直接通信距离最远可达10km(速率5Kbps以下)。
• (6)通信速率最高可达1MB/s(此时距离最长40m)。
• (7)节点数实际可达110个。
• (8)采用短帧结构,每一帧的有效字节数为8个。
• (9)每帧信息都有CRC校验及其他检错措施,数据出错 率极低。
• (10)通信介质可采用双绞线,同轴电缆和光导纤维,一 般采用廉价的双绞线即可,无特殊要求。
可靠性高:传输故障(不论是由内部还是外部引起 的)应能准确识别出来 使用方便:如果某一控制单元出现故障,其余系统 应尽可能保持原有功能,以便进行信息交换 数据密度大:所有控制单元在任一瞬时的信息状态 均相同,这样就使得两控制单元之间不会有数据偏 差。如果系统的某一处有故障,那么总线上所有连 接的元件都会得到通知。 数据传输快:连成网络的各元件之间的数据交换速 率必须很快,这样才能满足实时要求。
• (2)网络上的节点(信息)可分成不同的优先级,可以满 足不同的实时要求。

CAN总线介绍范文

CAN总线介绍范文

CAN总线介绍范文CAN总线,即控制器局域网络(Controller Area Network),是一种广泛应用于车辆、工业自动化和嵌入式领域的通信协议和总线系统。

CAN总线最早由汽车制造商Bosch于1986年开发,旨在解决车辆电子系统中的通信需求。

由于其高可靠性、优异的抗干扰能力和灵活的拓扑结构,CAN总线在汽车技术和工业控制领域得到了广泛的应用。

1.高可靠性:CAN总线采用了差分信号传输、信号线电平反转、CRC校验等技术,可以有效抵御电磁干扰和噪声,提高通信的可靠性和稳定性。

2.抗干扰能力强:CAN总线采用了差分传输方式,信号传输两根线,其中一根是正常逻辑信号,另一根是相反的逻辑信号,利用差分电压来表示信号的高低电平,从而减少了电磁干扰的影响。

3.灵活的拓扑结构:CAN总线可以采用总线拓扑或星形拓扑结构,适应不同的通信需求。

总线拓扑结构可以连接多个节点,而星形拓扑结构可以提供更稳定的通信环境。

4. 高速通信能力:CAN总线支持较高的通信速率,最高可达1Mbps,可以满足实时性要求较高的应用场景。

5.灵活的数据帧格式:CAN总线的数据帧格式包括标准帧和扩展帧,可以适应不同的数据通信需求。

标准帧有11位的标识符,扩展帧有29位的标识符,可以提供更多的地址空间和更灵活的数据传输方式。

6.支持多主机通信:CAN总线支持多主机通信,多个节点可以同时发送数据而不会发生冲突,提高了总线的利用率和通信效率。

CAN总线的应用广泛,特别是在车辆领域。

在汽车中,CAN总线连接了各个电子控制单元,如发动机控制单元、制动系统控制单元、空调控制单元等。

通过CAN总线,这些控制单元可以相互通信,实现车辆的集中控制和数据交换。

另外,为了满足不同的通信需求,CAN总线还衍生出了一些变种,如CAN FD(Flexible Data-Rate),它支持更高的数据传输速率,提高了通信的效率和带宽。

除了车辆领域,CAN总线还在工业自动化领域得到广泛应用。

CAN总线基础知识总结(建议收藏)

CAN总线基础知识总结(建议收藏)

CAN总线基础知识总结(建议收藏)CAN总线基础知识总结一、CAN总线简介1、CAN总线(Controller Area Network,控制器局域网)是由德国BOSCH(博世)公司在1986年为汽车而设计的,它是一种串行通信总线,只需两根线CAN_H和CAN_L。

2、隐性(逻辑1)与显性(逻辑0)的概念:CAN总线在数据传输过程中,实际上传输的是CAN_H和CAN_L 之间的电位差。

CAN_H只能是高电平(3.5V)或悬浮状态(2.5V),CAN_L只能是低电平(1.5V)或悬浮状态(2.5)V,当CAN_H和CAN_L 都为2.5V 时,是隐性,表示逻辑1,当CAN_H为3.5V、CAN_L都为2.5V时,是显性,表示逻辑0。

表示隐性和显性逻辑的能力是CAN总线仲裁方法的基本先决条件,即所有节点都为隐性时,总线才处于隐性状态;只要有一个节点发送了显性,总线就呈现为显性状态。

3、120?电阻:必须在总线的每一节点的CAN_H和CAN_L之间接一个120?左右的电阻,以避免出现信号反射。

4、CAN技术规范CAN2.0A和CAN2.0B:CAN2.0A只有标准帧(标识符(ID)有11位);CAN2.0B除了标准帧,还有扩展帧(标识符(ID)有29位)。

5、CAN的国际标准ISO11898和ISO11519:CAN 协议经ISO 标准化后有ISO11898和ISO11519两种标准,它们对于数据链路层的定义相同,但物理层不同。

ISO11898 是波特率为125kbps-1Mbps 的CAN高速通信标准。

ISO11519 是波特率为125kbps 以下的CAN低速通信标准。

高速通信标准和低速通信标准的硬件规格也不一样,所以需要选用不同的收发器。

在收发器的规格书上都会注明高速通信用还是低速通信用,或者是符合ISO11898标准还是ISO11519标准。

6、CAN总线协议只定义了物理层和数据链路层,要将CAN总线应用于工程项目中必须制定上层的应用协议。

CAN总线的原理及使用教程

CAN总线的原理及使用教程

CAN总线的原理及使用教程一、CAN总线的原理1.数据链路层:CAN总线采用的是二进制多播通信方式,即发送方和接收方之间没有直接的连接关系,所有节点共享同一个总线。

在一个CAN总线系统中,每个节点都可以发送和接收信息。

当一个节点发送消息时,所有其他节点都能接收到该消息。

2.帧格式:CAN总线使用的是基于帧的通信方式,每个消息都被封装在一个CAN帧中。

帧由起始标志、ID、数据长度码、数据和校验字段组成。

其中,ID是唯一标识符,用来区分不同消息的发送者和接收者。

数据长度码指示了消息中数据的长度。

校验字段用于检测数据的完整性。

3. 传输速率:CAN总线的传输速率可根据需求进行配置,通常可选的速率有1Mbps、500Kbps、250Kbps等。

高速传输速率适用于对实时性要求较高的应用,而低速传输速率适用于对实时性要求不高的应用。

4.错误检测:CAN总线具有强大的错误检测能力,能够自动检测和纠正错误。

它采用了循环冗余校验(CRC)算法,通过对数据进行校验,确保数据的完整性。

如果数据传输过程中发生错误,接收方能够检测到错误,并通过重新请求发送来纠正错误。

二、CAN总线的使用教程1. 硬件连接:在使用CAN总线之前,需要先进行硬件连接。

将所有节点的CANH和CANL引脚连接到同一个总线上,并通过双终端电阻将CANH和CANL引脚与Vcc和地连接。

确保所有节点的通信速率和电气特性相匹配。

2.软件设置:使用相应的软件工具对CAN总线进行配置。

根据具体需求,设置通信速率、总线负载、数据帧格式等参数。

还需要为每个节点分配唯一的ID,用于区分发送者和接收者。

3.数据传输:使用软件工具编写代码,实现消息的发送和接收。

发送消息时,需要指定ID、数据长度和数据内容。

接收消息时,需要监听总线上的消息,并根据ID判断是否为自己需要的消息。

通过合理的逻辑处理,实现节点之间的数据交换和通信。

4.错误处理:CAN总线在数据传输过程中可能会发生错误,如位错误、帧错误等。

CAN总线原理与应用基础

CAN总线原理与应用基础

CAN总线原理与应用基础CAN(Controller Area Network)总线是一种高可靠性、高性能、实时性强的通信总线,广泛应用于汽车电子、工业控制、机器人等领域。

本文将从CAN总线的基本原理、应用领域以及优势等方面进行详细介绍。

一、CAN总线的基本原理CAN总线是一种串行通信总线,采用非归零码 NRZ(Non-Return-to-Zero)的编码方式。

它由两根线组成,分别是CAN-H(CAN高)和CAN-L (CAN低)。

CAN总线采用差分传输方式,即CAN-H和CAN-L之间的电压差代表了数据的值。

CAN总线的通信速率可以达到1Mbps,具有很高的传输效率。

CAN总线采用了CSMA/CD(Carrier Sense MultipleAccess/Collision Detection)的冲突检测机制,保证了多个节点同时发送数据时不会产生冲突。

当一个节点要发送数据时,首先会监听总线上的电平,如果检测到总线上没有数据传输,则将数据发送出去。

如果多个节点同时发送数据,会发生冲突,此时节点会停止发送数据,并等待一个随机时间后再次发送,以避免冲突。

CAN总线还具有差错检测和纠正的功能。

每个CAN帧都附带有一个CRC(Cyclic Redundancy Check)校验码,接收节点会对接收到的数据进行校验,如果校验失败,则会发送错误帧。

此外,CAN总线还支持错误传播,即如果一个节点发送了错误的数据,其他节点会通过错误帧检测到错误,并进行相应的处理。

二、CAN总线的应用领域1.汽车电子:CAN总线最早应用于汽车电子领域,用于连接汽车内部的各个电子控制单元(ECU),如发动机控制单元、仪表盘、防抱死制动系统等。

CAN总线可以实现这些控制单元之间的数据交换和协调,提高汽车的性能和安全性。

2.工业控制:在工业控制领域,CAN总线被广泛应用于PLC(可编程逻辑控制器)、传感器、执行器等设备之间的通信。

CAN总线可以实现实时的数据传输和控制,提高工业自动化系统的可靠性和性能。

can总线应用层协议实例解析

can总线应用层协议实例解析

can总线应用层协议实例解析一、简介CAN总线(Controller Area Network)是一种广泛应用于汽车、工业自动化、家庭等领域的现场总线技术。

它是一种串行通信协议,可以在短距离和长距离传输中实现高可靠性的数据传输。

本篇文章将通过一个简单的CAN总线应用层协议实例来解析CAN总线的物理层、数据链路层和应用层。

二、物理层CAN总线的物理层包括传输介质、收发器和信号电平。

其中,传输介质可以是双绞线、同轴电缆等;收发器负责将数字信号转换为模拟信号或反向转换;信号电平采用差分电压进行数据传输,具有抗干扰能力强、传输距离远等优点。

三、数据链路层CAN总线的数据链路层定义了数据传输的规则和机制,包括数据帧、远程帧和错误控制。

数据帧由标识符、数据段和控制段组成,用于传输实际的数据;远程帧用于请求发送数据,但没有数据段;错误控制包括位错误检测和错误帧发送等功能。

四、应用层CAN总线的应用层定义了实际应用中需要的数据格式和协议。

例如,在汽车中,应用层可以定义车辆控制指令、传感器数据等的数据格式和协议。

应用层还提供了应用程序接口,使得用户可以轻松地使用CAN总线进行通信。

五、协议实例下面是一个简单的CAN总线应用层协议实例,用于控制车辆的灯光系统:1. 数据帧格式:每个数据帧包括标识符、控制段和数据段。

在此实例中,标识符表示灯光控制指令,控制段包括指令类型和指令参数,数据段包括指令的具体参数值。

2. 指令类型:指令类型包括打开前大灯、关闭前大灯、打开尾灯等。

每个指令类型都有一个唯一的标识符。

3. 指令参数:指令参数根据指令类型的不同而变化。

例如,打开前大灯的指令参数包括亮度等级和闪烁频率,关闭尾灯的指令参数为空。

4. 数据传输:当车辆的灯光控制系统接收到一个数据帧时,它会根据标识符判断指令类型和参数,然后执行相应的控制操作。

同时,控制系统还可以将传感器数据或其他信息封装成数据帧发送到CAN总线上。

5. 错误控制:如果数据传输过程中出现错误,控制系统会自动发送错误帧,通知其他节点出现错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、概述CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。

想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)CAN 有很多优秀的特点,使得它能够被广泛的应用。

比如:传输速度最高到1Mbps,通信距离最远到10KM,无损位仲裁机制,多主结构。

近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。

现在每一辆汽车上都装有CAN总线。

一个典型的CAN应用场景:二、CAN总线标准CAN总线标准只规定了物理层和数据链路层,需要用户来自定义应用层。

不同的CAN标准仅物理层不同。

CAN收发器负责逻辑电平和物理信号之间的转换,将逻辑信号转换成物理信号(差分电平)或者将物理信号转换成逻辑电平。

CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。

(有信号时,CANH 3.5V,CANL 1.5V,即显性;没有信号时,CANH 2.5V,CANL 2.5V,即隐性)IOS11898高速CAN电平中,高低电平的幅度低,对应的传输速度快。

双绞线共模消除干扰,是因为电平同时变化,电压差不变。

2.1物理层CAN有三种接口器件多个节点连接,只要有一个为低电平,总线就为低电平,只有所有的节点都输出高电平时,才为高电平。

所谓“线与”。

CAN总线有5个连续性相同的位后,就会插入一个相反位,产生跳变沿,用于同步。

从而消除累计误差。

和485、232一样,CAN的传输速度与距离成反比。

CAN总线终端电阻的接法:特点:低速CAN在CANH和CANL上串入2.2kΩ的电阻;高速CAN在CANH和CANL 之间并入120Ω电阻。

为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。

(因为大多数双绞线电缆特性阻抗大约在100~120Ω。

)120欧姆只是为了保证阻抗完整性,消除回波反射,提升通信可靠性的,因此,其只需要在总线最远的两端接上120欧姆电阻即可,而中间节点并不需要接(接了反而有可能会引起问题)。

因此各位在使用CAN Omega做CAN总线侦听的时候,大多数情况下是不需要这个120欧姆电阻的,当然,即使当前网络中并没有终端匹配电阻,只要传输线长度不长(比如SysCan360比赛环境中,传输线只有1-2米)CAN节点数量不多的情况下,不要这个120欧姆电阻也完全可以工作,甚至,你接任意电阻都是不会有影响的。

因为此时传输线长度和波长还相差甚远,节点不多的情况下,反射波的叠加信号强度也不会很强,因此传输线效应完全可以忽略。

而哪些情况需要呢,主要就是,当使用2个CAN Omega对发或者当前网络中仅有2个CAN设备的时候,此时两个端点最好都加上终端匹配电阻,当然,前面也说过了,传输线长度不长的时候,也可以不需要2端120欧姆电阻,但为了信号完整性考虑,加上这两个电阻才是严谨的。

2个120欧姆电阻的意义在于,使用USB CAN调试某些不带终端电阻的中间节点设备时,有时候CAN总线上没有2个120欧姆电阻通信可能会异常,此时可以接入2个120欧姆电阻作为2个终端电阻来作阻抗匹配,这时候其他端点不应接入任何终端电阻!并且,这2个120欧姆电阻不可用1个60欧姆电阻代替!125kHz载波的波长大概在(c / f) = (3e8m/s) / (125e3Hz)=2.4km,其临界长度为2.4kM/ 10 = 240m >> 2m,也即传输线长度不超过240m,分布阻抗带来的影响可以忽略不计2.2数据链路层CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。

数据帧用来节点之间收发数据,是使用最多的帧类型;远程帧用来接收节点向发送节点接收数据;错误帧是某节点发现帧错误时用来向其他节点通知的帧;过载帧是接收节点用来向发送节点告知自身接收能力的帧;用于将数据帧、远程帧与前面帧隔离的帧。

数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)2.3帧起始帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;帧结束由7个隐形位(高电平)组成。

2.4仲裁段CAN总线是如何解决多点竞争的问题?由仲裁段给出答案。

CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。

如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。

帧ID越小,优先级越高。

由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE 位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

2.5控制段共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成。

2.6数据段为0-8字节,短帧结构,实时性好,适合汽车和工控领域;2.7CRC段CRC校验段由15位CRC值和CRC界定符组成。

2.8ACK段当接收节点接收到的帧起始到CRC段都没错误时,它将在ACK段发送一个显性电平,发送节点发送隐性电平,线与结果为显性电平。

2.9远程帧远程帧分为6个段,也分为标准帧和扩展帧,且RTR位为1(隐性电平)CAN是可靠性很高的总线,但是它也有五种错误。

CRC错误:发送与接收的CRC值不同发生该错误;格式错误:帧格式不合法发生该错误;应答错误:发送节点在ACK阶段没有收到应答信息发生该错误;位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误;位填充错误:通信线缆上违反通信规则时发生该错误。

当发生这五种错误之一时,发送节点或接受节点将发送错误帧为防止某些节点自身出错而一直发送错误帧,干扰其他节点通信,CAN协议规定了节点的3种状态及行为。

2.10过载帧当某节点没有做好接收的"准备"时,将发送过载帧,以通知发送节点。

2.11帧间隔用来隔离数据帧、远程帧与他们前面的帧,错误帧和过载帧前面不加帧间隔。

2.12构建CAN节点构建节点,实现相应控制,由底向上分为四个部分:CAN节点电路、CAN控制器驱动、CAN应用层协议、CAN节点应用程序。

虽然不同节点完成的功能不同,但是都有相同的硬件和软件结构。

CAN收发器和控制器分别对应CAN的物理层和数据链路层,完成CAN报文的收发;功能电路,完成特定的功能,如信号采集或控制外设等;主控制器与应用软件按照CAN报文格式解析报文,完成相应控制。

CAN硬件驱动是运行在主控制器(如P89V51)上的程序,它主要完成以下工作:基于寄存器的操作,初始化CAN控制器、发送CAN报文、接收CAN报文;如果直接使用CAN硬件驱动,当更换控制器时,需要修改上层应用程序,移植性差。

在应用层和硬件驱动层加入虚拟驱动层,能够屏蔽不同CAN控制器的差异。

一个CAN节点除了完成通信的功能,还包括一些特定的硬件功能电路,功能电路驱动向下直接控制功能电路,向上为应用层提供控制功能电路函数接口。

特定功能包括信号采集、人机显示等。

CAN收发器是实现CAN控制器逻辑电平与CAN总线上差分电平的互换。

实现CAN收发器的方案有两种,一是使用CAN收发IC(需要加电源隔离和电气隔离),另一种是使用CAN 隔离收发模块。

推荐使用第二种。

CAN控制器是CAN的核心元件,它实现了CAN协议中数据链路层的全部功能,能够自动完成CAN协议的解析。

CAN控制器一般有两种,一种是控制器IC(SJA1000),另一种是集成CAN控制器的MCU(LPC11C00)。

MCU负责实现对功能电路和CAN控制器的控制:在节点启动时,初始化CAN控制器参数;通过CAN控制器读取和发送CAN帧;在CAN控制器发生中断时,处理CAN控制器的中断异常;根据接收到的数据输出控制信号;接口管理逻辑:解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。

发送缓冲区和接收缓冲区能够存储CAN总线网络上的完整信息。

验收滤波是将存储的验证码与CAN报文识别码进行比较,跟验证码匹配的CAN帧才会存储到接收缓冲区。

CAN内核实现了数据链路的全部协议。

2.13CAN协议应用层概述CAN总线只提供可靠的传输服务,所以节点接收报文时,要通过应用层协议来判断是谁发来的数据、数据代表了什么含义。

常见的CAN应用层协议有:CANOpen、DeviceNet、J1939、iCAN等。

CAN应用层协议驱动是运行在主控制器(如P89V51)上的程序,它按照应用层协议来对CAN报文进行定义、完成CAN报文的解析与拼装。

例如,我们将帧ID用来表示节点地址,当接收到的帧ID与自身节点ID不通过时,就直接丢弃,否则交给上层处理;发送时,将帧ID设置为接收节点的地址。

2.14CAN收发器SJA1000的输出模式有很多,使用最多的是正常输出模式,输入模式通常不选择比较器模式,可以增大通信距离,并且减少休眠下的电流。

收发器按照通信速度分为高速CAN收发器和容错CAN收发器。

同一网络中要使用相同的CAN收发器。

CAN连接线上会有很多干扰信号,需要在硬件上添加滤波器和抗干扰电路。

也可以使用CAN隔离收发器(集成滤波器和抗干扰电路)。

CAN控制器与MCU的连接方式SJA1000可被视为外扩RAM,地址宽度8位,最多支持256个寄存器将缓存区的数据连续写入寄存器…… for (i=0;i<len;i++) { WriteSJAReg(RegAdr+i,ValueBuf[i]); }……将连续多个寄存器连续读入缓存区…… for (i=0;i<len;i++) { ReadSJAReg(RegAdr+i,ValueBuf[i]); } ……头文件包含方案:每个程序包含用到的头文件每个程序包含一个公用头文件,公用头文件包含所有其他头文件SJA1000上电后处于复位状态,必须初始化后才能工作。

(1)置位模式寄存器Bit0位进入复位模式;(2)设置时钟分频寄存器选择时钟频率、CAN模式;(3)设置验收滤波,设定验证码和屏蔽码;(4)设置总线定时器寄存器0、1设定CAN波特率;(5)设置输出模式;(6)清零模式寄存器Bit0位退出复位模式;模式寄存器只检测模式:SJA1000发送CAN帧时不检查应答位;只听模式:此模式下SJA1000不会发送错误帧,用于自动检测波特率;SJA1000以不同的波特率接收CAN帧,当收到CAN帧时,表明当前波特率与总线波特率相同。

2.15波特率设置CAN总线无时钟,使用异步串行传输;波特率是1秒发送的数据位;2.16CAN帧发送:发送CAN帧的步骤:1.检测状态寄存器,等待发送缓冲区可用;2.填充报文到发送缓冲区;3.启动发送。

相关文档
最新文档