第5章-控制器局域网教学课件.ppt
《第5章-控制器局域网教学课件.ppt》由会员分享,可在线阅读,更多相关《第5章-控制器局域网教学课件.ppt(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、信息与控制工程研究所 张凤登张凤登第第5章章 控制器局域网控制器局域网1.控制器局域网,简称CAN(Controller Area Network)2.详细讲解广泛应用于嵌入式系统的CAN总线51 位传输总线概述位传输总线概述 由于现场总线开发组织或行业的不同,许多总线标准在其设计之初就带有典型的行业特色,适应特定对象的应用需求是其主要目标。为实现输入/输出信息的双向交换,人们制定了多种快速、简单的位传输现场总线协议。它们的主要应用对象是具有开关量特征的传感器和执行器系统。因此又称这类总线为I/O现场总线。传感器。传感器。各种原理的位置接近开关及温度、压力、流量、液位开关等,执行器。执行器。各
2、种开关阀,声、光报警器,也可以是继电器、接触器等低压开关电器。I/O现场总线的特点是采用位(bit)传输,其种类有很多,如:应用于汽车领域的CAN总线;食品加工领域的P-Net;航空航天领域的SwiftNet;电气现场总线AS-i、DeviceNet、SDS、Seriplex等。在这一章里,我们将着重学习目前较为普及的CAN(Controller Area Network)总线,并简单阐述其它I/O现场总线的基本原理及特点。52 汽车总线的分类汽车总线的分类 目的:用电子数据的总线通信满足任何车辆数据的传送需要。汽车工程师协会(ASE)对汽车中的总线按其性能、应用范围和要求分为A、B和C三类。
3、如图5-1所示。B类总线。适合于高速应用,用作非诊断目的非关键性通信,传输速率在10kbps125kbps之间,支持事件驱动和一些周期性报文传输,并具备静默/唤醒功能。常用于发动机管理等。然而,这类总线并不考虑与确定性和安全性相关的要求。这方面的世界标准一直是CAN。A类总线。性能最低,通常用作低端非放射性诊断通信,传输速率一般小于10kbps,支持事件驱动的报文传输。主要应用于车体电子系统,在这类应用中,最注重系统的造价。应用最多的协议:LIN、CAN。C类总线。这类总线必须涉及到与安全相关的性能,如状态的确定性、有界的执行时间、分布式的时钟同步、防止多路感应的复杂失真等。传输速率在125k
4、bps1Mbps之间。主要用于发动机定时、燃油输送等。正在不断发展完善中的这类协议包括:CAN、TTP、TTCAN和FlexRay等。53 CAN总线体系结构及协议标准总线体系结构及协议标准 531 CAN总线及其基本特点总线及其基本特点 CAN总线是德国Bosch公司在80年代初为解决汽车中大量的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。CAN协议的标准化:1991年9月,Bosch公司制定并发布了CAN技术规范(Version2.0)。该技术规范包括A和B两部分。2.0A 的信号传输速率为125kbps1Mbps,使用11位标识符;2.0B的信号传输速率仍为125kbps1
5、Mbps,而标识符长度可扩展到29位。1993年11月,ISO正式颁布了道路交通运载工具数字交换高速通信控制器局域网(CAN)国际标准ISO 11898。与其它类型的总线相比,CAN在许多方面具有独特之处:采用面向报文的优先级控制方式,用标识符定义静态的报文优先权。采用短帧格式,总线上的报文以不同的固定报文格式发送,但长度受限。非破坏性的总线仲裁多主系统。总线空闲时,任何节点都可以开始传送报文,优先级较低的节点会主动退出发送,而具优先级高的节点可以最终获得总线访问权,不受影响地继续传输数据。通信服务简便,阻隔期短。错误检测和错误处理机制先进。为了获得最安全的数据发送,CAN的每一个节点均设有错
6、误检测、错误标定及错误自检等措施。整个系统范围内保持数据一致性。延迟时间短,出错恢复快。总线驱动电路决定总线可接节点数,目前可达110个。通信距离与通信速率有关。最低为40m,相应的通信速率是1Mbps;最远可达10km,相应的通信速率在5kbps以下。532 CAN总线的体系结构总线的体系结构 现代汽车中,用于实现开闭环控制任务(引擎管理、ABS防抱制动控制、舒适性电子工业等)的电子控制单元(ECU,Electronic Control Unit)的数量越来越多。ECU之间的大量数据交换是在极其严重的电磁干扰环境下完成的,交换过程频繁且每个报文数据量极低(特征过程数据的循环发送,例如引擎速度
7、)。CAN总线技术规范在很大程度上满足了这类信息通信的需要。CAN的体系结构中只定义了ISO/OSI模型的最低两层(图5-2):数据链路层。逻辑链路控制(LLC)子层(又称为“对象层”)。涉及报文过滤;超载通知;恢复管理。媒体访问控制(MAC)子层(又称为“传送层”)。负责报文分帧;仲裁;应答;错误检测和标定。物理层。包括:物理信令。涉及位编码/解码;位定时与同步。物理媒体附属装置。媒体相关接口。应用层是通过专门用于特定工业领域的各种协议或CAN用户专用方案(如CANopen、DeviceNet、SDS)与物理媒体相连。四种不同类型的报文帧:数据帧、远程帧、出错帧和超载帧。数据帧数据帧。将数据
8、由发送器传至接收器;远程帧远程帧。用以请求发送具有相同标识符的数据帧;出错帧出错帧。用于通知总线上的节点有错误发生;超载帧超载帧。用于在前一帧和后续数据帧(或远程帧)之间提供附加延时。另外,数据帧和远程帧借助帧间空间帧间空间相互隔开。1.数据帧数据帧 数据帧包括7个不同的位场:帧起始、仲裁场、控制场、数据场、CRC场、确认场和帧结束。帧起始帧起始。帧起始(SOF,Start Of Frame)标志数据帧和远程帧的起始,仅由一个显性(dominant)位组成,规定显性位为“0”。只有当总线为空闲状态时,才允许节点开始发送,所有的节点必须同步于首先开始发送的那个节点的帧起始上升沿(参见5.3.7节
9、中的“硬同步”)。533 CAN报文格式报文格式续续 533 CAN报文格式报文格式 仲仲裁裁场场。仲裁场由标识符和远程发送请求(RTR,Remote Transmission Request)位组成。标识符长度为11位,按由高到低的顺序发送,依次为ID10,ID9,ID0,其中最高7位(ID10ID4)不能全为隐性(recessive)位,即不应全为“1”。RTR位在数据帧中必须是显性位“0”,而在远程帧中必须为隐性位“1”。控制场控制场。控制场由6位组成,其中4位用来指出数据场字节个数,用数据长度代码DLC(DLC,Data Length Code)表示,另2位是用于未来DLC扩展的保留位
10、。在定义保留位功能之前,发送器必须按显性位发送,但是接收器认可显性位和隐性位的组合。DLC的长度可为0,数据帧允许数据字节数目范围为08。表表5-1 数据长度代码表示的数据字节数编码数据长度代码表示的数据字节数编码 DLC数据的字节数DLC3DLC2DLC1DLC0000000001100102001130100401015011060111710008 数据场数据场。数据场包含待传输的数据,它可以为08个字节,每个字节包括8位。首先发送的是最高位。CRC场场。循环冗余码CRC场包括CRC序列,其后是CRC界定符。CRC序列由循环冗余码求得的帧检查序列组成,最适用于位数小于127位(BCH码)
11、的帧。为实现CRC计算,被除的多项式系数由帧起始、仲裁场、控制场、数据场(如果存在)在内的无填充的位流给出,其15个最低位的系数是0。此多项式除以下列生成多项式,所得到的余数就是发送到总线上的CRC序列。G(x)=x15+x14+x10+x8+x7+x4+x3+1 (51)CRC序列之后是CRC界定符,仅由一个隐性位“1”构成。确认场确认场。确认场又称为ACK场,长度为2位:ACK间隙和ACK界定符。发送节点的ACK场中,送出两个隐性位“11”。在ACK间隙内,所有接收到匹配CRC序列的节点,以显性位“0”改写发送器的隐性位送出一个确认。ACK界定符为ACK场的第二位,其必须是隐性位“1”,因
12、此,ACK间隙被两个隐性位(CRC界定符和ACK界定符)所包围。帧结束帧结束。每个数据帧和远程帧均由7个隐性位“1111111”组成的标志序列界定。续续533 CAN报文格式报文格式续续533 CAN报文格式报文格式2.远程帧远程帧 需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的标识符命名的。远程帧包括6个不同的位场:帧起始、仲裁场、控制场、CRC场、确认场、帧结束。3.出错帧出错帧 出错帧包括两个场。第一个场由来各个节点的错误标志叠加得到,第二个场是错误界定符。报文传输过程中,检测到任何一个节点出错,即于下一位开始发送出错帧,通知发送端停止发送。错误标志叠加错
13、误标志叠加。错误标志具有两种形式:主动错误标志(active error flag)。由6个连续的显性位组成。一个检测到出错条件的“错误激活”节点,通过发送一个主动错误标志进行标注。被动错误标志(passive error flag)。由6个连续的隐性位组成。可被来自其它节点的显性位改写。一个检测到出错条件的处于“被动错误”节点,试图发送一个被动错误标志进行标注,该错误认可节点自被动错误标志为起点,等待6个相同极性的连续位,当检测到6个相同的连续位后,被动错误标志即告完成。错误界定符错误界定符。错误界定符包括8个隐性位。错误标志发送后,每个节点都送出隐性位,并监控总线,直到检测到隐性位。然后开
14、始发送其余的7个隐性位。续续533 CAN报文格式报文格式4.超载帧超载帧 超载帧包括两个位场:超载标志。由6个显性位组成。超载界定符。由8个隐性位组成。导致发送超载标志的情况有三种:一是接收器内部要求对下一数据帧或远程帧进行延时;第二是在间歇场的第一和第二位检测到一个显性位;第三,CAN节点在错误界定符或超载界定符的最后一位采样到一个显性位。由第一种超载情况引发的超载帧起点,只允许在期望间歇场的第一个位时间开始,而由后两种情况引发的超载帧在检测到显性位的后一位开始。超载标志超载标志。超载标志的全部形式对应于主动错误标志形式。由于超载标志的形式破坏了间歇场的固定形式,因此,所有其它的节点都将检
15、测到一个超载条件,并且由它们开始发送超载标志。如果有的节点在间歇场的第3位期间检测到显性位,则这个位将被视为帧的起始。超载界定符超载界定符。超载界定符和错误界定符具有相同的形式。发送超载标志后,节点就一直监视总线,直到检测到一个由显性位到隐性位的发送,即出现显性位到隐性位的跳变。此时,总线上的每一个节点均完成了超载标志的发送,并开始同时发送其余7个隐性位。5.帧间空间帧间空间 数据帧、远程帧通过帧间空间隔开。与此相反,超载帧和出错帧前面不存在帧间空间,并且多个超载帧之间也不用帧间空间分隔。帧间空间包括:间歇场间歇场、总线空闲场总线空闲场,而对于先前帧已发送“错误认可”的节点,其帧间空间除了间歇
16、场和总线空闲场外还包括暂停发送场暂停发送场,如图5-7(a)、(b)所示。间歇场间歇场。间歇场由3个隐性位组成。间歇期间,所有的节点不允许发送数据帧或远程帧,仅起标注超载条件的作用。总线空闲场总线空闲场。总线空闲时间可以是任意长度。总线空闲时,任何节点均可访问总线以便发送。在其它帧发送期间,等待发送的帧紧随间歇场之后的第一个位启动。如果在总线空闲期间检测到总线上有显性位,可被理解为帧起始。暂停发送场暂停发送场。“错误认可”节点完成发送后,在开始下一次帧发送或认可总线空闲之前,它紧随间歇场后发出8个隐性位。如果在此期间其它节点开始一次发送,则本节点将变为帧接收器。续续533 CAN报文格式报文格
17、式 CAN帧的位流采用非归零码(NRZ)。在整个位时间内维持有效电平,要么为显性“0”,要么为隐性“1”。缺点缺点:在连续数值相同的位较多时,没有用于各个网络节点同步的边沿。1.位填充位填充 发送器在5个相同极性的位后插入一个相反极性的附加位,接收器随后去除这些填充位。2.使用位填充的场使用位填充的场 帧起始、仲裁场、控制场、数据场和CRC序列中使用了位填充。数据帧或远程帧的其余位场(CRC界定符、确认场和帧结束)格式固定,不进行位填充。出错帧和超载帧的格式也固定,同样不使用位填充方法进行编码。534 帧编码及其发送帧编码及其发送/接收接收 3.位填充举例位填充举例 4.帧发送次序帧发送次序
18、一个帧应由SOF场开始逐个位场进行发送,每个场内应首先发送最高位。CAN的总线访问控制采用了由CSMA/CD发展而来的CSMA/CA(载波监听多路访问/冲突避免,Carrier Sense Multiple Access with Collision Avoidance)方法。1.解决总线访问冲突的机理解决总线访问冲突的机理 每个发送器将自身发送的位电平同总线上检测到的电平进行比较。若相等,则节点可以继续发送。当送出一个隐性电平(逻辑“1”),而检测到的为显性电平时(逻辑“0”),表明节点丢失仲裁,并且不应再送更多位。当送出显性电平,而检测到的为隐性电平时,表明节点检测出位错误。由于拥有高优先
19、权的帧具有较低的标识符,其仲裁场是以更多的显性位开始。因此,帧会保留在总线上,且数据并不被损坏(冲突避免)。2.CAN协议仲裁过程实例协议仲裁过程实例3.解决冲突的原则解决冲突的原则 优先权就体现在帧标识符中。若具有相同标识符的数据帧和远程帧,数据帧具有更高优先权。在一个系统内,每条信息必须标以唯一的标识符。具有给定标识符和非零DLC的数据帧仅可由一个节点启动。远程帧只能以全系统内确定的DLC发送,该数据长度代码为对应数据帧的DLC。535 总线访问总线访问 由于汽车对数据传送安全性的要求较高,因此CAN协议非常重视错误检测功能。检测机制:监测、填充规则校验、帧校验、CRC检验和应答检验。1.
20、错误类型错误类型 位错误。节点在向总线发送位的同时也对总线进行监视。如果所发送的位值与所监测的位值不相符合,则在此位时间里检测到一个位错误。例外情况是:仲裁场的填充位流期间或ACK间隙送出隐性位而监测到显性位,不视为位错误;送出被动错误标志,而检测到显性位的节点,不将其理解为位错误。填充错误。在使用位填充法进行编码的帧场中,出现了第6个连续相同的位电平时,将检测到一个填充错误。CRC错误。CRC序列由发送器的CRC计算结果构成。接收器计算CRC的方法与发送器相同,当其计算结果与接收到CRC序列不相符,则检测到一个CRC错误。形式错误。当固定格式位场出现1个或多个非法位时,则检测到形式错误。例外
21、情况是:接收器在帧结束的最后一位检测到显性位,不视为形式错误。确认错误。在ACK间隙期间,发送器未检测到显性位,则检测到一个应答错误。当任何节点检测到位错误、填充错误、形式错误或应答错误时,则由该节点在下一位开始发送错误标志;当检测到CRC错误时,出错帧在紧随ACK界定符后的那位开始发送,除非其它出错条件的出错帧已经开始发送。536 错误检测与错误处理错误检测与错误处理2.节点错误状态节点错误状态 CAN总线中的任何一个节点,可能处于下列三种故障状态之一:错误激活、错误认可、总线脱离。错误激活节点可以正常参与总线通信,并在检测到错误时发出一个主动错误标志。错误认可节点不允许发送主动错误标志,可
22、以参与总线通信,但当检测到错误时,只能发出被动错误标志,而且发送后,错误认可节点在开始进一步发送前将等待一段附加时间。处于总线脱离状态的节点,既不发送也不接收任何帧,即不允许影响总线。为了进行错误界定,总线上的每个单元中都设置有两个计数器:发送错误计数器(REC)。接收错误计数器(TEC)。计数器计数规则计数器计数规则:接收器检测到一个错误,接收错误计数器加1。但是,若在发送主动错误标志或超载标志期间检测到位错误,接收错误计数器不加1。接收器在发送错误标志后的第一位检出一个显性位,接收错误计数器加8。当发送器送出一个错误标志时,发送错误计数器值加8。但有两个例外,一个是若发送器为错误认可,由于
23、未检测到显性位应答或检测到一个应答错误,并且在送出其被动错误标志时,未检测到显性位;另一个是若由于仲裁期间发生的填充错误,发送器送出一个隐性位错误标志,但送出隐性,而检测到显性。在此两种情况下,发送错误计数器值不变。发送器发送主动错误标志或超载标志时,若检测到位错误,则发送错误计数器加8。接收器发送主动错误标志或超载标志时,若检测到位错误,则接收错误计数器加8。在发送主动错误标志、被动错误标志或超载标志后,任何节点都允许最多7个连续的显性位。在检测的第11个连续的显性位后(在主动错误标志或超载标志情况下),或紧随被动错误标志检测到第8个连续的显性位后,以及附加的8个连续的显性位的每个序列后,每
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制器 局域网 教学 课件
限制150内