CAN通信协议

作者&投稿:柘嘉 (若有异议请与网页底部的电邮联系)
can总线通讯协议~

随着集成电路和嵌入式电脑在汽车上的广泛应用,现代汽车上的电子控制器的数量越来越多,常见的有发动机的电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电动门窗装置、主动悬架等。电控系统的增加虽然提高了轿车的动力性、经济性和舒适性,但随之增加的复杂电路也降低了汽车的可靠性,增加了维修的难度。从布线角度分析,传统的电子气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成宠大的布线系统。因此,一种新的概念——汽车上电子控制器局域网络CAN,也就应运而生。为使不同厂家生产的零部件能在同一辆汽车上协调工作,必须制定标准。按照ISO有关标准,CAN的拓扑结构为总线,因此称为CAN总线。CAN总线被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECN之间交 换信息,在车载各电子控制装置ECN之间交换信息,形成汽车电子控制网络。

控制器局域网CAN(Controller Area Network)是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(ISO)的ISO11992、ISO11783以及汽车工程协会(Societyof Automotive Engigeers)的SAE J1939。CAN总线已经作为汽车的一种标准设备列入汽车的整车设计中。
CAN总线简介
CAN通信协议规定了4种不同的帧格式,即数据帧、远程帧、错误帧和超载帧。基于以下几条基本规则进行通信协调:总线访问、仲裁、编码/解码、出错标注和超裁标注。CAN遵从OSI模型。按照OSI基准模型只有三层:物理层、数据链路层和哀告层,但应用层尚需用户自己定义。CAN总线作为一种有效支持分布式控制或实时控制的串行通信网络,应用范围遍及从高速网络到低成本的多线路网络。如:CAN在汽车中的发动机控制部件、ABS、抗滑系统等应用中的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电器系统中,例如电气窗口、灯光聚束、座椅调节等,以替代所需要的硬件连接。其传输介制裁为双绞线,通信速率最高可达1Mbps/40m,直接传输距离最远可达10km/5kbps,挂接设备数最多可达110个。CAN为多主工作方式,通信方式灵活,无需站地址等节点信息,采用非破坏性总线仲裁技术,满足实时要求。另外,CAN采用短帧结构传输信号,传输时间短,具有较强的抗干扰能力。
CAN总线与其它通信协议的不同之处主要有两方面:一是报文传送不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,其特点是可在线上网下网、即插即用和多站接收;另外一个方面就是特别强化了数据安全性,满足控制系统及其它较高数据要求系统的需求。
在现代汽车的设计中,CAN总线已经成为构建汽车网络的一种趋势;而汽车网络作为直接与汽车内部各个ECU连接并负责命令的传递、数据的发送及共享,其可靠性和稳定性与整车的性能紧密相关。本文的设计开发是在基于试验条件下搭建的仿真平台,节点之间的通信是通过对等的CAN通信节点进行的。试验表明其运行性能稳定可靠,但实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高.
比如:
把CAN总线融合到嵌入式平台中,在其ARM-EP9315和ARM-S3C2440嵌入式平台上都做到了CAN总线功能的实现!ARM嵌入式控制平台,具有开放、集成度高、尺寸小、可扩展性强、低功耗等特点,非常适合与数字家电、车载设备、通信终端、网络设备等的应用。如今有了CAN总线的实现,使其在此方面的应用更为有效!


基于单片机AT89C52的CAN总线分布式测控系统的研制
1 CAN总线网络的技术特点[1][2]
用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等;

采用非破坏性基于优先权的总线仲裁技术,具有暂时错误和永久性故障节点的判别及故障节点的自动脱离功能,使系统其它节点的通信不受影响;同时,CAN具有出错帧自动重发功能,可靠性高;

信号传输用短帧结构(8字节),实时性好;

不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;

采用统一的标准和规范,使各设备之间具有较好的互操作性和互换性,系统的通用性好;

通讯介质可采用双绞线,无特殊要求;现场布线和安装简单,易于维护,经济性好。

总之,CAN总线具有实时性强、可靠性高、结构简单、互操作性好、价格低廉等优点,克服了传统的工业总线的缺陷,是构建分布式测控系统的一种有效的解决方案。

2系统总体硬件设计方案
首先,定义各节点的功能,确定各节点检测或控制量的数目、类型、信号特征。这是进行微机测控系统网络化的第一步。原则是尽量避免重复测试。智能节点模块绝大部分是输入输出模块,调节回路可以跨模块构成回路。但考虑到调节回路的安全性,为了保证在上位机或整个通信线路出现重大故障时回路调节不受到影响,设计了隔离型、自整定PID、隔离型温度调节器等带有调节功能的模块。它们的输入输出通道都在同一模块中,其底层软件的功能很强,所有的输入处理、输出增量的计算(多种调节算法可通过组态选择,包括串级调节)、输出,包括自整定模块的过程参数的自动识别都在本模块实现,保证了调节回路的安全性、可靠性。

其次,选择各节点控制器和相应的CAN适配元件。由于各测控节点功能相对单一,数据量少,因此对CPU的要求大大降低,采用8051系列单片机即可满足要求。CAN 总线适配器件主要有:控制器接口、总线收发器和I/O器件。采用Philips公司生产的82C200CAN控制器和与其配套的82C250CAN收发器。82C200具有完成高性能通信协议所要求的全部必要特性。具有简单总线连接的82C200可完成物理层和数据链路层的所有功能。
最后,按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN总线分布式测控网络。如图1所示。
3系统的硬件组成[3][4][5]
(1)CAN总线接口模块
① 微处理器
目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等;另一类是带有芯片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根据当前市场、开发工具和课题的实际需要,系统的智能节点均选用ATMEL 8位单片机AT89C52为微处理器。

② CAN控制器
CAN控制器选用SJA1000作为控制器。SJA1000是高集成度CAN控制器。具有多主结构、总线访问优先权、成组与广播报文功能及硬件滤波功能。输入时钟频率为16MHh时钟,输出可编程控制。由以下几部分构成:接口管理逻辑、发送缓存器、接收缓存器、位流处理器、位定时逻辑、收发逻辑、错误管理逻辑、控制器接口逻辑等。

SJA1000有很多新功能 :标准结构和扩展结构报文的接受和发送;64字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器;可进行读/写访问的错误计数器;可编织的错误报警限制:最近一次的错误代码寄存器;每一个CAN总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断;单发方式(当发主错误或丢失仲裁时不重发);只听方式(监听CAN总线,无应答,无错误标志);支持热插拔(无干扰软件驱动位速率监测)。因此,系统的智能节点均选用SJA1000作为CAN控制器。

③ CAN总线收发器
CAN总线收发器选用PCA82C250作为总线收发器。 PCA82C250是CAN 协议控制器和物理总线之间的接口。82C250 可以为总线提供不同的发送性能,为CAN 控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI)实现热防护等。为了进一步提高抗干扰措施,在两个CAN器件之间使用了由高速隔离器件6N137构成的隔离电路。 CAN器件与微处理器的硬件连接如图2所示。
硬件电路的设计并不太困难,但有几点应引起注意:
总线两端两个120Ω的电阻,对于匹配总线阻扰,起着相当重要的作用。忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。

82C50第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于民的阻值,实验数据表明15~200kΩ为Rs较理想的取值范围,在该方式下,可以使用平行线或双绞线作总线。

SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的VREF端(约为0.5 Vcc)与RX1脚相连,从而简化了电路。

在系统中,SJA1000的片选信号一般由地址总线经译码获得,并由此决定出CAN控制器各寄存器的地址。实际应用中,采用单片机AT89C52的P2.7为片选信号。所以,SJA1000的地址为:7F00~7F32H。

当上电复位时,AT89C52的上电复位,需要从低到高的电平变化来激活,而SJA1000的17脚RST被激活,需要出现一个由高电平到低电平的跳变,因此,这必须加一个反相器。

(2)数据采集模块
数据采集模块用来将各类传感器的数据传送到CAN总线上。整个电路包括:看门狗X5045,单片机89C52,锁存器74LS373,A/D转换器ADC0809以及CAN控制器SJA1000和收发器82C250。电路板如图3。

数据采集模块的工作原理:各类传感器采集到数据后将0—5V的模拟量传送到ADC0809,0809将转换成的数字量传给89C52,最后单片机将采集到的数据送到SJA1000通过CAN总线收发器82C250传上总线,完成数据采集工作。

(3)控制模块
是一个带有CAN通信功能的隔离型控制器。该模块有一个数据输入点,可以是命令或其他信号,有一个模拟量输出,供输出执行机构是连续变化的控制系统使用,例如控制步进电机;还有一路是数字量输出,供执行机构是两位式的控制系统使用,例如开关设备。这个控制器可以单独作为一个调节器使用,因为在该模块上提供了完整的显示窗口和操作按钮,可以设定温度设定值、PID调节参数等运行过程中可以显示被控对象的PV值和SV值。该模块可以根据设定的控制点及升、降的时间实现自动调节。带有CAN通信口,可以与微机实现通信,也就是说控制模块可以接入CAN 网络系统。通过上位机实现对多个节点上的控制模块设定各控制点的上下限控制点、PID值、实现时间等控制参数,并实时记录各控制器的测量值,描绘出变化曲线,供实验人员对实验结果进行分析。如图4所示。

4系统软件设计
(1)CAN 总线通讯模块
CAN总线测控系统的通信软件分为3部分:CAN初始化、数据发送和数据接收。
① CAN初始化
其主要是设置CAN的通信参数。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间可写访向,因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,并且系统中各CAN控制器的总线定时寄存器的初始化字必须相同。

② 数据发送
现场的各传感器把环境多参数的检测信号(数字量、模拟量、开关量)进行转换处理后,发向CAN控制器的发送缓冲区,然后启动CAN控制器的发送命令,此时CAN控制器将自动向总线发送数据,不再需传感器的微控制器进行干预。若系统中有多个传感CAN控制器同时向总线发送数据,则CAN控制器通过信息帧中的标识符来进行仲裁,标识符数值最小的CAN控制器具有对总线的优先使用权。

③ 数据接收
整个温室微机测控系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向89C52微控制器发送接收中断,启动中断接收服务程序,89C52通过执行中断接收服务程序,从CAN控制器的接收缓冲区读取数据,并对其进行进一步处理工作。

(2)监控模块
集成了所有的数据采集、参数设定、数据统计分析等功能。同时,为了实现操作人员对生产过程的人工干预,如修改给定值、控制参数和报警限等,添加了参数的修改功能;为了建立人机信息联系,并且能将各节点传输来的数据以图形、图表或其它动态方式显示出来,本系统可以使用任何具有DDE(Dynamic Data Exchange)接口的MMI(Man-Machine interface)软件;为了更好的管理各种数据,采取了组态控制方式,能够接收来自MMI软件以及用户软件的DDE连接请求,并将该请求传递给通信驱动部分,由通信驱动转换为通信信号通过传输媒体传递给智能模块的固化软件。并将模块的应答作为DDE操作的结果返回给MMI软件及用户软件。

5 结论
将先进的现场总线技术(CAN BUS)应用于智能测控系统,大大提高了系统的可靠性;自主开发了符合国际标准的基于单片机的智能节点,不仅大量节约了资金,而且可以购置通用的同类设备,可节约大量的研发费用;基于工控机的上位机提供了良好的人机界面,使操作更加方便,直观。

CAN协议,即控制器局域网总线(CAN,Controller Area Network),是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。
CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

扩展资料
CAN总线的特点:
(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
(2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
(3)具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;
(4)可根据报文的ID决定接收或屏蔽该报文;
(5)可靠的错误处理和检错机制;
(6)发送的信息遭到破坏后,可自动重发;
(7)节点在错误严重的情况下具有自动退出总线的功能;
(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
参考资料来源:百度百科-can协议

控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达1 Mbit/s。同时,可以将CAN安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。

为了达到设计透明度以及实现柔韧性,CAN被细分为以下不同的层次:
• CAN对象层(the object layer)
• CAN传输层(the transfer layer)
• 物理层(the phyical layer)
对象层和传输层包括所有由ISO/OSI模型定义的数据链路层的服务和功能。
对象层的作用范围包括:
 查找被发送的报文。
 确定由实际要使用的传输层接收哪一个报文。
 为应用层相关硬件提供接口。
在这里,定义对象处理较为灵活。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。 物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。

CAN具有以下的属性:
• 报文的优先权
• 保证延迟时间
• 设置灵活
• 时间同步的多点接收
• 系统宽数据的连贯性
• 多主机
• 错误检测和标定
• 只要总线一处于空闲,就自动将破坏的报文重新传输
• 将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭错误的节点

汽车的can是什么意思
答:CAN是Controller Area Network的缩写,是一种数据传输协议,被广泛地应用于汽车的诸多控制单元之间的通信。CAN允许多个控制单元同时进行数据交换,从而实现了不同的汽车系统部件之间的有效协同。CAN系统可以实现防止误操作、简化电子线束和降低重量。这是因为它以数据包的形式分配数据,而不需要多条单独的电线...

CAN总线协议的概述
答:随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议...

CAN总线的通讯协议是什么?
答:1can是两根线,2can线上有两个状态,a隐性状态,两线电压2.5V,表示位为1。b显性状态,两线电压:低1.5V,高3.5V,压差2V;表示位为0;3以上2里的电压叫差分线路,为的是增加抗干扰性能,同时在高与低两根线上并入120欧姆电阻,防止信号震荡。4以上只是电路的硬件解释,下面以长城上的烽火台举...

canopen免费么
答:CanOpen不是免费的。CanOpen是一种基于CAN总线的通信协议,它广泛应用于工业自动化和嵌入式系统中。虽然CanOpen协议本身是开源的,意味着任何人都可以查看、使用、修改和分发其规范,但这并不意味着它是完全免费的。在实际应用中,实现CanOpen协议可能需要购买或使用某些硬件和软件,这些通常需要付费。例如...

CAN总线协议通信的数据是什么格式,及其显示的波形图是怎样的?_百度知 ...
答:CAN采用差分信号的方式通信,CAN_H=3.5 CAN_L=1.5, 示波器波形为方波,其帧结构及长度如下 标准帧:SOF+ID+RTR+r0+DLC+Data+CRC+CRCDel+ACK+ACKDel+EOF=1+11+1+1+1+4+(0~8)*8+15+1+1+1+7=44~108 扩展帧:SOF+ID+RTR+r0+DLC+Data+CRC+CRCDel+ACK+ACKDel+EOF=1+29+1+1...

我想问问can有哪些协议类型呢?
答:感谢题主的邀请,我来说下我的看法:CAN总线有很多的总线协议类型,其中汽油车的CAN总线一般采用ISO15765协议,柴油车以及电动汽车采用J 1939协议,自动化生产线上的CAN系统采用CANopen协议,现在你清楚了吗?如果您需要进行CAN协议解析工作,可以前往我们的网站进行具体的咨询,欢迎来访。

请问一般我们常用的can协议有哪些?
答:感谢题主的邀请,我来说说这个问题:CAN总线也叫控制器局域网,是德国博世公司开发出来为汽车电子产品升级而服务的。CAN总线的运行要遵循专门的CAN协议,就如同我们在说话的时候要循序特定的语法一样,如果违背了相关协议,CAN总线是无法进行数据的传输的。一般我们常用的CAN总线协议有三种,分别是CANopen,...

车机技术之CAN、CAN-bus
答:由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,现在在...

请问车载can总线的通信协议都是统一的吗?
答:感谢题主的邀请,我来说下我的看法:当然不统一,你看像是汽油发动机的车,它们一般就都采用ISO15765协议来规范汽车CAN总线的使用。柴油发动机的汽车呢?它们一般采用J1939协议。至于电动车,它们目前用的CAN协议基本上都是基于J1939研究出来的。如果想进行汽车CAN协议的解析的话,可以前往我们的网站进行咨询...

汽车上常用的CAN通讯是种通讯协议还是硬件接口
答:CAN是一种国际标准化的串行通讯协议。使用该协议的车载网络系统通常称为CAN数据传输系统。主要有:CAN控制器、CAN收发器、数据传递终端、CAN数据总线等组成。