can总线常用通信协议.docx
- 文档编号:26295992
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:13
- 大小:26.31KB
can总线常用通信协议.docx
《can总线常用通信协议.docx》由会员分享,可在线阅读,更多相关《can总线常用通信协议.docx(13页珍藏版)》请在冰豆网上搜索。
can总线常用通信协议
竭诚为您提供优质文档/双击可除
can总线常用通信协议
篇一:
史上最全can总线协议规则
一、can总线简介
can是控制器局域网络(controllerareanetwork,can)的简称,是由研发和生产汽车电子产品著称的德国bosch公司开发了的,并最终成为国际标准(iso11898)。
是国际上应用最广泛的现场总线之一。
在建立之初,can总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。
上世纪90年代can总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。
二、can总线技术及其规范
2.1性能特点
(1)数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息;
(2)can网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输;
(3)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。
尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况;
(3)通信距离最远可达10km(速率低于5kbps)速率可达到1mbps(通信距离小于40m);
(4)通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。
can总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。
(5)采用短帧结构,传输时间短,受干扰概率低,每帧信息都有cRc校验及其他检验措施,数据出错率极低;
(6)节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。
(7)can总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。
2.2技术规范
2.2.1can的分层结构
图1can的分层结构
逻辑链路控制子层(llc)的功能:
为数据传送和远程数据请求提供服务,确认由llc子层接收的报文实际上已被接收,为恢复管理和通知超载提供信息。
在定义目标处理时,存在许多灵活性。
介质访问控制子层(mac)的功能:
主要是传送规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定。
mac子层也要确定当开始一次新的传送时,总线是否开放或者是否马上开始接收。
位定时特性也是mac子层的一部分。
2.2.2can的报文传送和帧结构
报文传送由以下四种不同的帧类型所表示和控制。
·数据帧:
数据帧携带数据从发送器至接收器;
·远程帧:
总线单元发出远程帧,请求发送具有同一识别符的数据帧;·错误帧:
任何单元检测到一总线错误时发出的错误帧;
·超载帧:
超载帧用来在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
数据帧或远程帧通过帧空间与前述的各种帧分开。
2.2.2.1数据帧
数据械是用来传输数据的帧,由7个位场组成:
1.帧起始位场、2.仲裁场、
3.控制场、4.数据场、5.cRc场、6.应答场、7帧结尾。
数据帧的组成如图2所示。
can2.0b中存在两种不同的帧格式,其主要区别在于仲裁场的标示符长度。
具有11位标示符的帧称为标准帧,包括29位标示符的帧称为扩展帧。
标准帧和扩展帧的仲裁场格式如图3所示。
图3标准帧和扩展帧的仲裁场格式
·帧起始
帧的起始场仅仅包含一个显性位,当can总线空闲时,总线保持隐性位,出现一个显性位即表示总线开始数据传输。
can总线上的节点只能在总线空闲时发送数据,而检测到起始位之后节点就进入接收状态。
·仲裁场
仲裁场由标识符和远程发送请求位(RtR位)组成。
RtR位在数据帧中为显性,在远程帧中为隐性。
其结构如图4所示。
图4can总线数据帧仲裁场结构
对于can2.0b标准,标准格式帧与扩展格式帧的仲裁场标识符格式不同。
标准格式里,仲裁场由11位识别符和RtR(RtR=0)位组成。
识别符位由id.28~id.18组成。
而在扩展格式里,仲裁场包括29位识别符、替代远程请求位sRR、标识位ide、远程发送请求位RtR(RtR=1)。
其识别符由id.28~id.0组成,其格式包含两个部分:
11位(id.28~id.18)基本id、18位(id.17~id.0)扩展id。
扩展格式里,基本id首先发送,其次是sRR位和ide位。
扩展id的发送位于sRR位和ide位之后。
sRR的全称是“替代远程请求位(substituteRemoteRequestbit)”,sRR
是一隐性位。
它在扩展格式的标准帧RtR位上被发送,并代替标准帧的RtR位。
因此,如果扩展帧的基本id和标准帧的识别符相同,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的。
ide的全称是“识别符扩展位(identifierextensionbit)”,对于扩展格式,ide位属于仲裁场;对于标准格式,ide位属于控制场。
标准格式的ide位为“显性”,而扩展格式的ide位为“隐性”。
·控制场
控制场由6个位组成,包括数据长度码和两个将来作为扩展用的保留位。
其结构如图5所示。
图5can总线数据场结构图标准格式和扩展格式的控制场格式不同。
标准格式里的帧包括数据长度代码、ide位(为显性位)及保留位r0。
扩展格式里的帧包括数据长度代码和两个保留位:
r1和r0。
其保留位必须发送为显性,但是接收器认可“显性”和“隐性”位的任何组合。
·数据场
数据场由数据帧里的发送数据组成。
它可以为0~8个字节,每字节包含了8个位,首先发送最高有效位(msb)。
·cRc场
cRc场由15位cRc序列和1位隐性cRc界定符组成,,其结构如图6所示。
图6can总线cRc场结构图
cRc序列用于检测报文传输错误,cRc校验是由硬件完成的。
·应答场
应答场长度为两个位,包含应答间隙(ackslot)和应答界定符(ackdelimiter
),其结构如图7所示。
图7can总线应答场结构图
在应答场里,发送站发送两个“隐位”。
当接收器正确的接收到有效的报文时,接收器就会在应答间隙期间(发送ack信号)向发送器发送一“显性”位以示应答。
所接收到匹配cRc序列的站会在应答间隙期间用一“显性”位写入发送器的“隐性”位来做出回答。
ack界定符是ack场的第二个位,并且必须为隐位。
因此应答间隙被两个“隐性”位所包围,也就是cRc界定符和ack界定符。
·帧结束
每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。
这样,接收节点可以正确检测到一个帧的传输结束。
2.2.2.2远程帧
通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。
远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、
cRc场、应答场、帧结束。
其结构如图8所示。
图8can总线远程帧结构
与数据帧相比,远程帧的RtR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。
当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RtR位为显性,所以数据帧获得优先。
发送远程帧的节点可以直接接收数据。
2.2.2.3错误帧
错误帧由两个不同的域组成:
第一个域是来自控制器的错误标志;第二个域为错误分界符。
其结构如图9所示。
篇二:
can总线简单介绍整理
can是控制器局域网络(controllerareanetwork,can)的简称,是由以研发和生产汽车电子产品著称的德国bosch公司开发的,并最终成为国际标准(iso11898),是国际上应用最广泛的现场总线之一。
在北美和西欧,can总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以can为底层协议专为大型货车和重工机械车辆设计的j1939协议。
can总线通过can收发器接口芯片82c250的两个输出端canh和canl与物理总线相连。
can总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。
can总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
can总线通信接口中集成了can协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
can总线任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序,高优先级节点信息在134μs通信;多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞;通信距离最远可达10km(速率低于5kbps)速率可达到1mbps(通信距离小于40m);can总线传输介质可以是双绞线,同轴电缆,光缆。
can的报文格式
在总线中传送的报文,每帧由7部分组成。
can协议支持两种报文格式,其唯一的不同是标识符(id)长度不同,标准格式为11位,扩展格式为29位。
在标准格式中,报文的起始位称为帧起始(soF),然后是由11位标识符和远程发送请求位(RtR)组成的仲裁场。
RtR位标明是数据帧还是请求帧,在请求帧中没有数据字节。
控制场包括标识符扩展位(ide),指出是标准格式还是扩展格式。
它还包括一个保留位(ro),为将来扩展使用。
它的最后四个位用来指明数据场中数据的长度(dlc)。
数据场范围为0~8个字节,其后有一个检测数据错误的循环冗余检查(cRc)。
应答场(ack)包括应答位和应答分隔符。
发送站发送的这两位均为隐性电平(逻辑
1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。
用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。
报文的尾部由帧结束标出。
在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。
can数据帧的组成
远程帧
远程帧由6个场组成:
帧起始、仲裁场、控制场、cRc场、应答场和帧结束。
远程帧
不存在数据场。
远程帧的RtR位必须是隐位。
dlc的数据值是独立的,它可以是0~8中的任何数值,为对应数据帧的数据长度。
错误帧
错误帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,第二个场是错误界定符
错误标志具有两种形式:
活动错误标志(activeerrorflag),由6个连续的显位组成
认可错误标志(passiveerrorflag),由6个连续的隐位组成
错误界定符包括8个隐位
超载帧
超载帧包括两个位场:
超载标志和超载界定符
发送超载帧的超载条件:
要求延迟下一个数据帧或远程帧
在间歇场检测到显位
超载标志由6个显位组成
超载界定符由8个隐位组成
数据错误检测
不同于其它总线,can协议不能使用应答信息。
事实上,它可以将发生的任何错误用信号发出。
can协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。
循环冗余检查(cRc)
在一帧报文中加入冗余检查位可保证报文正确。
接收站通过cRc可判断报文是否有错。
帧检查
这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误。
应答错误
如前所述,被接收到的帧由接收站通过明确的应答来确认。
如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ack场已损坏或网络中的报文无站接收。
can协议也可通过位检查的方法探测错误。
总线检测
有时,can中的一个节点可监测自己发出的信号。
因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异。
位填充
一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率。
然而,如果在一帧报文中有太多相同电平的位,就有可能失去同步。
为保证同步,同步沿用位填充产生。
在五个连续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。
例如,五个连续的低电平位后,can自动插入一个高电平位。
can通过这种编码规则检查错误,如果在一帧报文中有6个相同位,can就知道发生了错误。
如果至少有一个站通过以上方法探测到一个或多个错误,它将发送出错标志终止当前的发送。
这可以阻止其它站接收错误的报文,并保证网络上报文的一致性。
当大量发送数据被终止后,发送站会自动地重新发送数据。
作为规则,在探测到错误后23个位周期内重新开始发送。
在特殊场合,系统的恢复时间为31个位周期。
但这种方法存在一个问题,即一个发生错误的站将导致所有数据被终止,其中也包括正确的数据。
因此,如果不采取自监测措施,总线系统应采用模块化设计。
为此,can协议提供一种将偶然错误从永久错误和局部站失败中区别出来的办法。
这种方法可以通过对出错站统计评估来确定一个站本身的错误并进入一种不会对其它站产生不良影响的运行方法来实现,即站可以通过关闭自己来阻止正常数据因被错误地当成不正确的数据而被终止。
can总线在工控领域主要使用低速-容错can即iso11898-3标准,在汽车领域常使用500kbps的高速can。
某进口车型拥有,车身、舒适、多媒体等多个控制网络,其中车身控制使用can网络,舒适使用lin网络,多媒体使用most网络,以can网为主网,控制发动机、变速箱、abs等车身安全模块,并将转速、车速、油温等共享至全车,实现汽车智能化控制,如高速时自动锁闭车门,安全气囊弹出时,自动开启车门等功能。
can系统又分为高速和低速,高速can系统采用硬线是动力型,速度:
500kbps,控制ecu、abs等;低速can是舒适型,速度:
125kbps,主要控制仪表、防盗等。
大众车系,30号线,不经过任何开关控制的火线。
15号线,经过点火开关控制的火线,x线,经过点火开关控制卸荷继电器,卸荷继电器输出的火线,31,搭铁线,1号线是点火线圈的控制端和发动机转速输出端,连通转速表,分电器,机油报警控制器,进气管预热控制器。
can总线多用于工控和汽车领域,在can总线的开发测试阶段,需要对其拓扑结构,节点功能,网路整合等进行开发测试,需要虚拟、半虚拟、全实物仿真测试平台,并且必须测试各节点是否符合iso11898中规定的错误响应机制等,所以can总线的开发需要专业的开发测试工具,并且在生产阶段也需要一批简单易用的生产线测试工具。
can总线开发测试工具的主要供应商有zlg、passionixxat、ihR、Vector、intrepidcs、passionwarwick、laike等。
常用的开发测试工具如canscope、canalyst-ii、passiontechdiagRa、cananalyser、x-analyser、autocan、canspider,laikecantest等。
篇三:
can总线通讯
基于单片机的can总线通讯实现摘要
can总线是控制器局域网总线(controllerareanetwork)的简称。
属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。
can总线是(can总线常用通信协议)一种多主方式的串行通讯总线,是国际上应用最广泛的现场总线之一,现已被应用到各个自动化控制系统中,从高速的网络到低价位的多路接线都可以使用can总线。
本文重点就基于单片机的can总线通信设计的实现进行介绍,通过can控制器以及can收发器把串口发送来的数据转换成can通信的数据,然后又把数据转换成串口通信数据回发给计算机,实现数据的自发自收。
关键词:
can总线;at89s52;sja1000;pca82c250
abstract:
can-bus,whichiscontrollerlan-bus(contro1lerareanetwork)forshort.,belongstothecategoryoffieldbus,whichisakindofeffectivesupportdistributedcontrolorreal-timecontrolofserialcommunicationnetwork.can-busisamainwaymorethantheserialcommunicationbus,whichisoneofthemostwidelyusedinternationalfieldbus.ithasbeenusedinvariousautomaticcontrolsystem,fromthenetworktothelowpriceofmulti-channelwiringcan.thispaper,whichfocusesonthecanbuscommunicationdesign,isbasedonthemcutoachieve.throughthecancontrollerandcantransceiver,thedataisconvertedtotheserialporttosendthecancommunicationdata,andthenputthedataintotheserialcommunicationsdatabacktothecomputerofspontaneousself-received.
keywords:
can-bus;at89s52devices;sja1000;pca82c250
第一章前言
1.1概述
控制器局域网(can-controllerareanetwork)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。
它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及csma/cd-amp(带有信息优先权及冲突检测的载波监听多路访问)的mac(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。
can的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。
随着计算机硬件、软件及集成电路技术的迅速发展,同时消费类电子产品、计算机外设、汽车和工业应用等的需求不断增加。
高速、高可靠和低成本的通信介质的要求也随之提高。
现场总线是当今自动化领域技术发展的热点之一,它为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
微处理器中常用的串行总线是通用异步接收器传输总线(uaRt)、串行通信接口(sci)、同步外设接口(spi)、内部集成电路(i2c)和通用串行总线(usb),以及车用串行总线,包括控制器区域网(can)和本地互连网(lin)等。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
在计算机数据传输领域内,长期以来使用的通信标准,尽管被广泛使用,但是无法在需要使用大量的传感器和控制器的复杂或大规模的环境中使用。
控制器局部网can(contRolleRaeRanetw0Rk)就是为适应这种需要而发展起来的。
随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。
can总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上由于can总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控等其他领域中。
1.2can总线的特点
80年代末,在汽车工业中,由于众多的控制设备与测试仪器之间需要进行大量数据交换,传统的总线无法满足需求,德国bosch公司提出了can总线,这种新的串行数据通讯协议。
can总线即控制器局域网总线,通信接口中集成了can协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
can(controllerareanetwork)属于现场总线的一种,在传统的工业控制领域中,大部分的通信采用Rs232、Rs485或Rs422总线。
相比之下,Rs232、Rs485或Rs422总线有着通信距离近,通讯速度慢,抗干扰性能差等缺点。
通讯一般采用主从方式,通过主站查询方式进行通讯,实时性、可靠性较差。
当系统有错误,多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点。
基于can总线的分布式控制系统在很多方面具有明显的优越性。
l而can的电路结构简单,要求的线数较少,只需要两根线与外部器件互联,使得各控制单元能够通过can总线共享所有的信息和资源。
达到简化布线、减少传感器数量、避免控制功能重复的效果。
can具有的完善的通信协议,并且可以通过can控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。
can支持分布式控制或实时控制,工作于多主方式,网络上各个节点均可以在任一时刻主动发送信息,可以点对点,点对多点以及全局广播方式收发数据。
网络中的各节点都可根据总线访问优先权,采用非破坏性总线总裁技术,通信速度快,可靠性高,可大大节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。
can没有采用站地址编码,而是对通信数据进行编码,这可使不同的节点同时接收到数据,这使得can总线的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。
它具有如下特点:
1)can是到目前为止为数不多的有国际标准的现场总线,总线协议已被国际标准化组
织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。
2)can总线没有采取传统的站地址编码,不对节点进行地址规定,而是把通信数据块
进行编码。
这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由1l位或29位二进制数组成。
这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以及报文的内容,高优先级的节点享有传送报文的优先权。
还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。
采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。
3)can总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或光导纤
维,可以多个主站运行并且分散仲裁。
can总线上任意节点可以点对点,一对多及广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
can通讯距离最大是1o公里(设速率为5kbps),最大通信速率为1mbit/s(设通信距离为4o米)。
4)can采用非破坏性的总线仲裁技术,即载波侦听多路访问/冲突检测(csma/cd)
的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。
避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。
5)can总线协议采用了完善的错误检测与错误处理机制,包括了cRc校验、错误报文
自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。
节点在错误严重的情况下,具有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- can 总线 常用 通信协议