CAN协议教程.docx
《CAN协议教程.docx》由会员分享,可在线阅读,更多相关《CAN协议教程.docx(24页珍藏版)》请在咨信网上搜索。
1、CAN协议教程CAN协议教程本CAN协议教程概述了ISO 11898-1和ISO 11898-2标准。 对CAN的基本原理做出了详细的介绍,诸如用于汽车设计、工业自动化控制以及更多的应用。一,介绍:CAN总线CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的报文。没有办法把报文单独发送给特定的节点;所有节点都将原封不动地捕获所有报文。但是,CAN硬件能够提供本地过滤能力,从而每个节点可以只对感兴趣的报文做出响应。总线使用不归零的位填充。模块以连续逻辑与方式连接到总线:如果只有一个节点向总线传输逻辑0,那么不管有多少个节点向总线传输逻辑1,整个总线都处于逻辑0状态。CAN标准定义
2、四种不同的报文类型。报文使用一种聪明的位操作仲裁方案来控制对总线的访问,每条报文都带有优先级标记。CAN标准还为错误处理和消除定义了详细的方案。这在第9节“CAN错误处理”(第23页)中有更详细的说明。在本教程第8页讨论位计时和时钟同步。这里有一个位计时计算器,您可以用它来计算CAN总线参数和寄存器设置。CAN可以使用不同的物理层来实现(第5页),这里阐述其中一些。而且,可以使用许多不同种类的连接器。我们还为对报文细节感兴趣的用户提供了许多示波器图片(第6页)。二, CAN报文CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的报文。没有办法把报文单独发送给特定的节点;所有节点都
3、将原封不动地捕获所有报文。但是,CAN硬件能够提供本地过滤能力,从而每个节点可以只对感兴趣的报文做出响应。CAN报文CAN使用短报文 最大实用负载是94位。报文中没有任何明确的地址;相反,可以认为报文是通过内容寻址,也就是说,报文的内容默示地确定其地址。报文类型CAN总线上有四种不同的报文类型(或“帧”):1. 数据帧2. 远程帧3. 错误帧4. 过载帧1. 数据帧概要:“大家好,这是一些标签为X的数据,希望满足您的需要!”数据帧是最常见的报文类型。由下列主要部分组成(出于简洁性目的,忽略了一些细节):仲裁字段。当两个或多个节点争夺总线时,确定报文的优先级。仲裁字段包含: 对于CAN 2.0A
4、,一个11位的标识符和一个支配数据帧的RTR位。对于CAN 2.0B,一个29位的标识符(这个标识符还包含两个隐性位:SRR和IDE)和RTR位。数据字段。包含0到8字节数据。CRC字段。包含一个基于报文大部分数据计算得到的15位校验和。校验和用于错误检测。确认位。任何能够正确接收报文的CAN控制器都会在每条报文的末尾发送一个确认位。传输器检查确认位是否存在,如果没有检测到确认位,会重传报文。注1:请注意,总线上存在确认位不表示任何目标地址已经收到报文。唯一表示的是,总线上的一个或多个节点已经正确收到报文。注2:仲裁字段中的标识符不一定标识报文的内容(尽管其名字会让人如此认为)。CAN 2.0
5、A(“标准CAN”)数据帧CAN 2.0B(“扩展CAN”)数据帧2. 远程帧概要:“大家好,有没有人能够生成标签为X的数据?”远程帧与数据帧十分相似,但是有两个重要的区别:它被显式标记为远程帧(仲裁字段中的RTR位为隐性),并且它没有数据字段。远程帧的设计目的是提出要求传输相应的数据帧。例如,如果节点A传输一个仲裁字段设置为234的远程帧,那么节点B(如果已经正确初始化)可能通过一个仲裁字段也设置为234的数据帧进行响应。远程帧可以用来实现一种类型的请求-响应类型的总线通信管理。但是,远程帧在实践中很少使用。还有一点值得注意的是,CAN标准没有规定这里说明的行为。大部分CAN控制器都可以进行
6、编程,从而自动响应远程帧或通知本地CPU。远程帧有一个注意事项:数据长度代码必须设置成期望的响应报文的长度。否则仲裁将无法工作。有时会声称响应远程帧的节点会在识别标识符后立即开始传输,从而“填充”空的远程帧。但是事实并非如此。远程帧(2.0A类型):3. 错误帧概要:“大家好(大声),让我们重新试一下”简单地说,错误帧是一种违背CAN报文帧规则的特殊报文。它在一个节点检测到故障时被传送,将导致所有其它节点也检测到故障,所以其它节点也将发送错误帧。然后传输器将自动尝试重传报文。有一种复杂的错误计数器方案,可以确保节点无法通过重复传输错误帧来破坏总线通信。错误帧包含一个错误标志。这个错误标志是6位
7、长的相同值(因此违背位填充规则)和一个错误分隔符(8个隐性位)。错误分隔符提供一些空间,以便总线上其它节点在检测到第一个错误标志时可以发送它们的错误标志。错误帧图示如下:4. 过载帧概要:“我是非常繁忙的小型82526,您可以稍等片刻吗?”这里,我们仅仅出于知识完整性目的而提及过载帧。在格式方面,过载帧与错误帧非常相似。它由过于繁忙的节点传输。过载帧并不常用,因为当今的CAN控制器会非常智能化地避免使用过载帧。事实上,会生成过载帧的唯一一种控制器是现在已经过时的82526。标准CAN和扩展CAN最初,CAN标准把仲裁字段中标识符的长度定义为11位。后来,客户需求迫使扩展此标准。新格式通常称为扩
8、展CAN,标识符不允许少于29位。为了区分这两种帧类型,在控制字段中使用了一个保留位。标准的正式名称是2.0A,仅支持11位标识符2.0B,支持完整的29位标识符(也可以混合使用11位标识符)的扩展版本。2.0B节点可以是 “2.0B主动型”,也就是说,它可以发送和接收扩展帧,或者“2.0B被动型”,也就是说,它将默默抛弃接收到的扩展帧(但是请参考下述内容)1.x表示初始规范及其修订版。如今的新型CAN控制器通常是2.0B类型。1.x或2.0A类型的控制器如果接收到29个仲裁位的报文会很麻烦。2.0B被动型控制器容许这些报文,如果它们正确的话会进行确认,然后抛弃这些报文。2.0B主动型控制器既
9、可传送也可接收这些报文。实现2.0B和2.0A(和1.x)的控制器相互兼容,只要实现2.0B的控制器不发送扩展帧,可以在同一个总线上使用它们!有时候有人会鼓吹标准CAN“优于”扩展CAN(因为扩展CAN报文中包含更多管理位)。这种说法未必正确。如果您使用仲裁字段来传送数据,那么扩展CAN真正占用的管理位可能比标准CAN少。基本CAN和完整CAN术语“基本CAN”和“完整CAN”源自CAN的初创年代。历史上曾经有Intel 82526 CAN控制器,它为程序员提供DPRAM风格的接口。然后出现了Philips 82C200 CAN控制器,它使用面向FIFO(队列)的编程模型和有限制的过滤能力。为
10、了区分这两种编程模型,人们出于某些原因把Intel的模型称为“完整CAN”,把Philips的模型称为“基本CAN”。如今,大多数CAN控制器同时支持这两种编程模型,所以没有理由继续使用术语“基本CAN”和“完整CAN”。事实上,这些术语可能会令人迷惑,应当尽量避免。当然,“完整CAN”控制器可以和“基本CAN”进行通信,反之也可。不存在任何兼容性问题。总线仲裁和报文优先级报文仲裁(两个或多个CAN控制器协商确定谁使用总线的过程)对于数据传送中真正可用的带宽非常重要。任何CAN控制器都可能在检测到空闲总线时开始传送数据。这可能会导致两个或多个控制器(几乎)同时开始传送报文。通过下列方法解决这种
11、冲突。传送节点在发送报文时监视总线。如果节点在自身发送隐性位时检测到显性位,它将立即退出仲裁过程并转变成接收方。仲裁针对整个仲裁字段进行,当该字段已经被发送时,总线上恰好只剩一个传送节点。这个节点就像什么都没发生那样继续传送。其它潜在的传送节点将在总线下次空闲时尝试重传它们的报文。仲裁过程不会消耗时间。这种位操作方式仲裁成功的重要条件是没有两个节点传送相同的仲裁字段。这个规则有一个例外:如果报文不包含任何数据,那么任何节点都可能传送该报文。因为总线采用连续逻辑与运算,并且显性位是逻辑0,所以结果是包含数值最低仲裁字段的报文将赢得仲裁。问:如果一个节点是总线上的唯一节点并且试图进行传送,会发生什
12、么情况?答:当然,节点将赢得仲裁并顺利地进行报文传送。但是,当进行确认的时候,没有任何节点将在ACK期间发送显性位,所以传送节点将检测到ACK错误,发送一个错误标志,将传送错误计数器加8并开始重传。这将发生16次。然后传送节点将进入错误被动状态。通过错误限制算法中的一个特殊值,如果节点为错误被动并且错误是一个ACK错误,传送错误计数器不再增加。所以节点将一直继续传送,至少一直到有人确认报文。报文寻址和标识再次提醒,CAN报文中没有任何显式的地址。每个CAN控制器都会检查总线上的所有通信,并使用硬件过滤器和软件的组合来确定是否对该报文感兴趣。事实上,CAN中没有报文地址的概念。报文的内容由存在于
13、报文中某处的标识符进行标识。CAN报文被称为“内容寻址”的报文。常规的报文地址类似于“这是发给节点X的报文”。而内容寻址的报文类似于“这是包含标签为X的数据的报文”。这两个概念之间的区别很小但是非常重要。根据标准,仲裁字段的内容用来确定总线上报文的优先级。所有CAN控制器还将在硬件过滤过程中使用整个(一些控制器将只使用一部分)仲裁字段作为主键。标准没有规定仲裁字段必须用作报文标识符。但是,不管怎样,这是一种常见情况。标识符值注意事项我们说过,标识符可以是11位(CAN 2.0A)或29位(CAN 2.0B)。这不完全正确。出于与某种老式CAN控制器(猜猜是哪种)兼容的原因,标识符不得把7个最高
14、有效位都设置为1。所以,对于11位标识符,只剩下0到2031,29位标识符可以使用532676608个不同的值。注意,所有其它CAN控制器都接受“非法”标识符,所以现代CAN系统标识符2032到2047可以自由使用。三,CAN物理层CAN总线CAN总线使用不归零(NRZ)的位填充。有两种不同的信号状态:显性位(逻辑0)和隐性位(逻辑1)。这些信号状态对应于所用物理层(有几种不同的物理层)的某种电气水平。模块以连续逻辑与方式连接到总线:如果只有一个节点向总线传输逻辑0,那么不管有多少个节点向总线传输逻辑1,整个总线都处于逻辑0状态。不同的物理层物理层定义总线上的电气水平和信号方案、缆线阻抗和类似
15、的方面。有几种不同的物理层: 最常见的类型由CAN标准定义,是ISO 11898-2的一部分,是一种双线平衡信号方案。有时也称为“高速CAN”。 同一个ISO标准的另一部分(ISO 11898-3)为低总线速度定义了另一种双线平衡信号方案。它具有容错能力,所以即使一条总线线缆断开或对地短路或连接到后备电池,信号都可以继续发出。有时也称为“低速CAN”。 SAE J2411定义一种单线缆(当然,加上接地)物理层。主要用在汽车中 例如GM-LAN。 还有几种专有的物理层。 在没有CAN驱动程序的早期,使用RS485的修改。 对于那些对报文细节感兴趣的用户,可进入第6页观看一些示波图。不同的物理层不
16、能互通,这是一个规则。一些组合可能在情况良好时可以工作或看上去可以工作。例如,在相同总线上同时使用“高速”和“低速”收发器有时可以工作。大量CAN收发器芯片产自Philips;其它厂商包括Bosch、Infineon、Siliconix和Unitrode。一种常见的收发器类型是82C250,它实现ISO 11898定义的物理层。82C251是一种改进的版本。“低速CAN”的一种常见收发器是产自Philips的TJA1054。最大总线速度按照标准,CAN总线的最大速度是1 Mbit/s。然而,一些CAN控制器能够处理比1Mbit/s更快的速度,可以在特殊应用场合中使用。低速CAN(ISO 118
17、98-3,参见上文)最快可以达到125 kbit/s。单线缆CAN在标准模式中可以达到大约50 kbit/s。如果使用特殊的高速模式(例如用于ECU编程),可以达到大约100 kbit/s。最小总线速度注意,一些总线收发器不允许低于特定的比特率。例如,使用82C250或82C251时,低于10 kbit/s不会有问题。但是,如果使用TJA1050,则不能低于大约50 kbit/s。请查阅数据表。最大线缆长度如果速度为1 Mbit/s,可以使用的最大线缆长度大约为40米(130英尺)。这是因为仲裁方案需要信号的峰值可以到达最远的节点并且在位采样之前再次返回。换言之,线缆长度受光速限制。曾有人提出
18、提高光速,但是因为这会产生时空交错而被驳回。其它的最大线缆长度是(这些是近似值) 100米(330英尺),比特率为500 kbit/s 200米(650英尺),比特率为250 kbit/s 500米(1600英尺),比特率为125 kbit/s 6千米(20000英尺),比特率为10 kbit/s如果使用光隔离器来提供电气隔离,那么最大总线长度会相应地减小。提示:使用快速光隔离器并观察通过设备的延迟(不要采用指定的最大比特率)。总线端接ISO 11898 CAN总线必须进行端接。 通过在总线各端点使用120欧姆的电阻达到这个要求。端接可以达到两个目的:1. 消除总线终端处的信号反射。2. 确保
19、总线获得正确的直流电电平。不管速度快慢,ISO 11898 CAN总线始终都必须进行端接。我将重复这一点:不管速度快慢,ISO 11898 CAN总线始终都必须进行端接。对于实验性工作,一个端接器可能就已足够。如果没有连接任何端接器,但是您的CAN总线仍然能够正常工作,那么您只是比较幸运而已。注意,其它物理层(例如“低速CAN”、单线缆CAN和其它物理层)不一定需要进行端接。但是您的常用高速ISO 11898 CAN总线总是需要至少一个端接器。请参考这篇文章获取关于CAN总线端接的更多信息。线缆ISO 11898规定线缆阻抗名义上应该是120欧姆,但是允许108.132欧姆区间的任何阻抗。现今
20、市场上满足这种要求的线缆并不多。允许的阻抗区间将来很有可能会扩大。ISO 11898针对屏蔽或非屏蔽的双绞线而定义。单线缆标准SAE J2411的相关工作正在进行之中。CAN连接器对于CAN总线连接器,根本没有任何标准!通常,每种高层协议都会定义一种或一些首选的连接器类型。常见的类型包括 9针DSUB(由iCiA建议)。 5针迷你C和/或小型C连接器(DeviceNet和SDS使用)。 6针德驰连接器(由CANHUG建议用于移动液压场合)。 参见第7页中一些不同的连接器布局。四,CAN示波器图片这是一幅来自最普通的ISO 11898 CAN总线(以1 Mbit/s的比特率运行)的图片。收发器是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 协议 教程
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。