版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAN总线和基于CAN总线的高层协议一、本文概述随着汽车电子技术的飞速发展,车辆内部各个系统之间的通信变得越来越重要。在众多通信协议中,控制器局域网(ControllerAreaNetwork,简称CAN)总线因其高可靠性、低成本和强大的实时通信能力而脱颖而出,成为汽车电子通信的标准协议。本文旨在全面介绍CAN总线的基本原理、特性及其在汽车领域的应用,并深入探讨基于CAN总线的高层协议,包括其设计原则、实现方式以及在车辆网络中的重要作用。通过本文的阅读,读者将能够深入理解CAN总线的核心技术,掌握基于CAN的高层协议设计方法,为汽车电子通信系统的设计与开发提供有力支持。二、CAN总线基本原理CAN(ControllerAreaNetwork)总线,即控制器局域网,是一种用于实时应用的串行通讯协议。其设计初衷是为了解决现代汽车中众多控制与测试仪器之间的数据交换问题,现已广泛应用于工业自动化、船舶、医疗设备、工业设备等领域。CAN总线以其高可靠性、低成本、高数据传输速率和长距离传输能力等特点,成为了众多领域中的通信标准。CAN总线系统主要由硬件和软件两部分组成。硬件部分包括CAN控制器和CAN收发器,其中CAN控制器负责处理数据、产生CAN协议所需的各种信号,而CAN收发器则负责将CAN控制器提供的逻辑电平转换成可以在总线上传输的差分电平。软件部分则主要是CAN协议的实现,包括数据帧、远程帧、错误帧、过载帧以及应答帧的生成和解析。CAN总线采用差分信号进行数据传输,具有较强的抗干扰能力。其通信速率灵活可变,最高速率可达1Mbps(兆位每秒)。CAN总线采用多主工作方式,任何一个节点都可以在任意时刻主动向其他节点发送信息,通信方式灵活,且无需站地址等节点信息,大大简化了节点之间的信息交互过程。在CAN总线中,数据以帧的形式进行传输,帧类型包括数据帧、远程帧、错误帧、过载帧和应答帧五种。数据帧和远程帧用于节点之间数据的传输和请求,错误帧用于检测并纠正通信过程中的错误,过载帧用于接收节点通知发送节点暂时不要发送数据,而应答帧则用于接收节点对成功接收到的数据帧进行确认。CAN总线采用循环冗余校验(CRC)来检测数据传输过程中的错误,并通过ACK(应答)机制确保数据的正确传输。当发送节点发送完一帧数据后,会等待接收节点的应答。如果接收节点正确接收到数据,则会发送应答信号,否则发送节点会重新发送数据。CAN总线还具有较强的错误处理和故障隔离能力。当总线上的节点检测到错误时,会向其他节点发送错误帧,以便其他节点采取相应的措施。当某个节点出现故障时,CAN总线还可以通过故障隔离机制将其从总线中隔离出去,确保总线上的其他节点能够继续正常工作。CAN总线以其高可靠性、低成本、高数据传输速率和长距离传输能力等特点,成为了众多领域中的通信标准。其基本原理和特性使得CAN总线在各种实时应用中具有广泛的应用前景。三、CAN总线协议规范CAN总线(ControllerAreaNetwork)是一种串行通讯协议,其设计初衷是为了在汽车电子控制系统中实现各个电子控制单元(ECU)之间的通信。由于其高性能、高可靠性、低成本等优点,CAN总线已经在各种工业自动化、嵌入式系统、医疗设备等领域得到广泛应用。物理层:物理层定义了CAN总线上的电气特性,包括电压范围、电缆类型、连接器类型等。CAN总线使用差分电压信号进行数据传输,通常使用双绞线作为传输介质。CAN总线的传输速率有多种,常见的有250kbps、500kbps和1Mbps等。数据链路层:数据链路层是CAN总线协议的核心部分,负责数据的封装、传输和接收。数据链路层又分为逻辑链路控制(LLC)和媒体访问控制(MAC)两个子层。LLC子层负责数据帧的识别、流量控制和错误恢复等功能。MAC子层则负责数据帧的封装、发送和接收,以及错误检测和仲裁等功能。CAN总线协议的数据帧格式包括帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束等部分。其中,仲裁场用于确定数据帧的优先级,数据场用于携带实际的数据信息,CRC场用于检测数据帧在传输过程中是否发生错误。应用层:应用层是CAN总线协议的最高层,负责具体的应用协议和数据处理。应用层协议可以根据具体的应用场景进行定制,如ISO11898标准中定义了多种应用层协议,包括ISO14229-1(UDS,统一诊断服务)等。CAN总线协议的数据传输采用短帧结构,每帧数据长度最大为8字节,传输时间短,抗干扰能力强。同时,CAN总线协议采用了多主站设计,任何一个节点都可以在任意时刻主动向其他节点发送数据,保证了通信的灵活性和实时性。CAN总线协议还具有较强的错误处理和恢复能力。当检测到错误时,CAN总线会自动进入错误处理状态,采取一系列措施来纠正错误,如发送错误帧、限制发送速率等。当错误得到纠正后,CAN总线会自动恢复正常工作状态。CAN总线协议规范是一种高效、可靠、灵活的串行通讯协议,适用于各种需要高速数据传输和实时通信的场合。四、基于CAN总线的高层协议CAN总线作为一种高效、可靠的通信协议,已经在许多领域得到了广泛的应用。然而,单纯依靠CAN总线可能无法满足某些复杂应用的需求,因此,基于CAN总线的高层协议应运而生。这些高层协议在CAN总线的基础上,通过添加更多的功能和特性,使得整个系统更加灵活和强大。DeviceNet协议:DeviceNet是一个为工业设备设计的开放式网络协议,它基于CAN总线,并添加了一些用于设备级控制和通信的特性和功能。DeviceNet协议支持多种类型的设备,包括传感器、执行器、控制器等,使得设备之间的通信更加简单和高效。ControlNet协议:ControlNet是一个用于工业自动化的高性能网络协议,同样基于CAN总线。它支持高速数据传输和实时控制,特别适用于需要高速、高带宽通信的工业自动化系统。ControlNet协议具有良好的可靠性和稳定性,能够满足各种复杂控制系统的需求。J1939协议:J1939是一个为商用车辆设计的网络协议,它基于CAN总线,并添加了一些用于车辆级通信和控制的功能。J1939协议支持多种类型的车辆设备,包括发动机、传动系统、制动系统等,使得车辆内部的通信更加标准化和规范化。这些基于CAN总线的高层协议在各自的领域内都发挥了重要的作用,它们不仅提高了系统的通信效率和可靠性,还降低了系统的复杂性和成本。随着技术的不断发展,基于CAN总线的高层协议将会在未来得到更广泛的应用。五、CAN总线与高层协议的实际应用CAN总线及其高层协议在众多领域都有广泛的应用,从汽车工业到工业自动化,再到医疗设备、航空航天等,它们发挥着至关重要的作用。在汽车行业中,CAN总线是车辆内部通信的主要手段。无论是发动机控制、刹车系统、还是车身电子系统,都离不开CAN总线的支持。通过CAN总线,各种传感器和执行器可以实时地交换数据,使得车辆能够安全、高效地运行。同时,基于CAN总线的高层协议,如ISO11898和ISO14229,为汽车制造商提供了统一的标准,使得不同品牌和型号的汽车能够互相通信,为汽车后市场服务提供了便利。在工业自动化领域,CAN总线同样发挥着重要作用。工业设备通常需要高速、可靠的数据传输,而CAN总线正是满足这一需求的理想选择。通过CAN总线,各种工业设备可以实时地交换状态信息、控制指令等,实现设备的协同工作。基于CAN总线的高层协议,如DeviceNet和CANopen,为工业自动化提供了丰富的功能和应用场景,使得工业设备能够更加方便地集成到系统中。除此之外,CAN总线及其高层协议还在医疗设备、航空航天等领域得到了广泛应用。在医疗设备中,CAN总线可以实现医疗设备之间的通信和数据共享,提高医疗效率。在航空航天领域,CAN总线则能够满足高可靠性、高实时性的要求,确保飞行安全。CAN总线及其高层协议在实际应用中发挥着重要作用,为各个行业提供了高效、可靠的数据通信解决方案。随着技术的不断发展和进步,CAN总线及其高层协议将在更多领域得到应用和推广。六、CAN总线与高层协议的发展趋势与挑战随着科技的飞速发展和智能化时代的来临,CAN总线及其高层协议在工业自动化、汽车制造、航空航天、医疗器械等众多领域中的应用日益广泛。然而,随着应用需求的不断提高,CAN总线与高层协议也面临着许多发展趋势与挑战。高速与高性能:随着对数据传输速率和处理能力的需求日益增长,CAN总线及其高层协议正朝着更高的速度和性能方向发展。新型的CAN协议,如CANFD(FlexibleData-Rate),已经提供了更高的数据传输速率和更大的数据包容量,以满足日益增长的应用需求。智能化与网络化:随着物联网和人工智能技术的深入应用,CAN总线与高层协议也正在向智能化和网络化方向发展。智能化的CAN系统可以自动适应不同的工作环境和应用需求,而网络化的CAN系统则可以实现更广泛的设备互联和信息共享。安全性与可靠性:随着对系统安全性和可靠性的要求不断提高,CAN总线与高层协议也需要不断提升自身的安全性能和可靠性。这包括数据加密、身份验证、错误检测与纠正等方面的技术提升。复杂性与兼容性:随着CAN总线与高层协议的不断发展,系统的复杂性也在不断增加。这要求设计者需要更高的技术水平和更丰富的经验来应对。同时,新的协议和技术需要与旧的协议和技术保持兼容,这也是一个重大的挑战。实时性与确定性:在许多应用场合中,对CAN总线与高层协议的实时性和确定性有着极高的要求。例如,在汽车制造中,任何数据传输的延迟或错误都可能导致严重的后果。因此,如何保证CAN总线与高层协议的实时性和确定性是一个需要持续关注和解决的问题。安全与隐私:随着CAN总线与高层协议在物联网和智能化领域中的应用越来越广泛,数据的安全和隐私保护成为了一个重要的问题。如何防止数据泄露、非法访问和恶意攻击,保障用户的数据安全和隐私,是CAN总线与高层协议面临的重要挑战。CAN总线与高层协议在面临众多发展趋势的也面临着许多挑战。为了应对这些挑战,我们需要不断研究和开发新的技术,提高CAN总线与高层协议的性能、安全性和可靠性,以满足日益增长的应用需求。七、结论随着汽车工业的快速发展,车辆内部的电子系统变得越来越复杂,对于通信和数据传输的需求也日益增长。在这样的背景下,CAN总线及其基于的高层协议以其高可靠性、实时性和灵活性成为了车辆内部通信的关键技术。CAN总线的设计使得它能够在多种环境中稳定运行,包括高温、低温和电磁干扰等恶劣条件。同时,CAN总线的高层协议如ISO11898和SAEJ1939等,进一步增强了其数据传输的效率和安全性。这些协议定义了物理层、数据链路层和应用层等多个层面,使得CAN总线可以在不同设备之间实现无缝的数据交换。CAN总线及其高层协议在工业自动化、航空航天、医疗设备等领域也得到了广泛应用。这些领域的共同特点是对通信的实时性和可靠性有着极高的要求,而CAN总线及其高层协议正好满足了这些需求。然而,随着技术的进步和应用场景的不断扩展,CAN总线也面临着一些挑战。例如,随着车辆内部电子系统的复杂性增加,CAN总线可能需要更高的数据传输速率和更大的带宽。随着网络安全问题的日益突出,CAN总线及其高层协议也需要进一步加强安全性能。CAN总线及其基于的高层协议已经成为现代车辆内部通信的关键技术。它们在确保通信的实时性、可靠性和安全性方面发挥着重要作用。随着技术的进步和应用场景的不断扩展,CAN总线及其高层协议也将继续发展和完善,以满足未来更加复杂和多样化的需求。参考资料:控制器局域网总线(CAN,ControllerAreaNetwork)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。控制器局域网CAN(ControllerAreaNetwork)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version0)制定并发布。该技术规范共包括A和B两个部分。其中0A给出了CAN报文标准格式,而0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。CAN总线技术也在不断发展。传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺陷。当总线上传输消息密度较小时,这些缺陷对系统的实时性影响较小;但随着在总线上传输消息密度的增加,系统实时性能会急剧下降。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-TriggeredCAN),ISO11898-4己包含了TTCAN。TTCAN总线和传统CAN总线系统的区别是:总线上不同的消息定义了不同的时间槽(TimerSlot)。依据国际标准化组织/开放系统互连(InternationalStandardi-zationOrganization/OpenSystemInterconnection,ISO/OSI)参考模型,CAN的ISO/OSI参考模型的层结构。CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。(1)报文(Message)总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。(2)信息路由(InformationRouting)在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。(3)标识符(Identifier)要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。(4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。(5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。(6)优先权由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。(7)远程数据请求(RemoteDataRequest)通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。(8)仲裁(Arbitration)只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。(9)总线状态总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。(10)故障界定(Confinement)CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。(11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。(12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。(13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。(14)报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的校验机制,这些都保证了CAN通信的可靠性。(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;(2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;(3)具有优先权和仲裁功能,多个控制模块通过CAN控制器挂到CAN-bus上,形成多主机局部网络;(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCHCAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。从物理结构上看,CAN节点的构成如图7-8所示。在CAN中,物理层从结构上可分为三层:分别是物理信号层(PhysicalLayerSignaling,PLS)、物理介质附件(PhysicalMediaAttachment,PMA)层和介质从属接口(MediaDependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统,CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的"调度"。CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。CAN上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN0A),而扩展标准(CAN0B)的报文标识符几乎不受限制。CAN的数据链路层是其核心内容,其中逻辑链路控制(LogicalLinkcontrol,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(MediumAccesscontrol,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。在CAN2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。如CAN1.2版本协议所描述,两个版本的标准数据帧格式和远程帧格式分别是等效的,而扩展格式是CAN2.0B协议新增加的特性。为使控制器设计相对简单,并不要求执行完全的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。但无论是哪种帧格式,在报文传输时都有以下四种不同类型的帧:在报文传输时,不同的帧具有不同的传输结构,下面将分别介绍四种传输帧的结构,只有严格按照该结构进行帧的传输,才能被节点正确接收和发送。(1)数据帧由七种不同的位域(BitField)组成:帧起始(Startof)、仲裁域(ArbitrationField)、控制域(ControlField)、数据域(DataField)、CRC域(CRCField)、应答域(ACKField)和帧结尾(Endof)。数据域的长度可以为0~8个字节。1)帧起始(SOF):帧起始(SOF)标志着数据帧和远程帧的起始,仅由一个“显性”位组成。在CAN的同步规则中,当总线空闲时(处于隐性状态),才允许站点开始发送(信号)。所有的站点必须同步于首先开始发送报文的站点的帧起始前沿(该方式称为“硬同步”)。2)仲裁域:仲裁域由标识符和RTR位组成,标准帧格式与扩展帧格式的仲裁域格式不同。标准格式里,仲裁域由1l位标识符和RTR位组成。标识符位有ID28~IDl8。扩展帧格式里,仲裁域包括29位标识符、SRR位、IDE(IdentifierExtension,标志符扩展)位、RTR位。其标识符有ID28~IDO。为了区别标准帧格式和扩展帧格式,CANl.0~1.2版本协议的保留位r1现表示为IDE位。IDE位为显性,表示数据帧为标准格式;IDE位为隐性,表示数据帧为扩展帧格式。在扩展帧中,替代远程请求(SubstituteRemoteRequest,SRR)位为隐性。仲裁域传输顺序为从最高位到最低位,其中最高7位不能全为零。RTR的全称为“远程发送请求(RemoteTransmissionRequest)”。RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。它是区别数据帧和远程帧的标志。3)控制域:控制域由6位组成,包括2个保留位(rr1同于CAN总线协议扩展)及4位数据长度码,允许的数据长度值为0~8字节。4)数据域:发送缓冲区中的数据按照长度代码指示长度发送。对于接收的数据,同样如此。它可为0~8字节,每个字节包含8位,首先发送的是MSB(最高位)。5)CRC校验码域:它由CRC域(15位)及CRC边界符(一个隐性位)组成。CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15位为0的解除填充的位流给定。此多项式被下列多项式15+14+10+8+7+4+3+1除(系数按模2计算),相除的余数即为发至总线的CRC序列。发送时,CRC序列的最高有效位被首先发送/接收。之所以选用这种帧校验方式,是由于这种CRC校验码对于少于127位的帧是最佳的。6)应答域:应答域由发送方发出的两个(应答间隙及应答界定)隐性位组成,所有接收到正确的CRC序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第二个隐性位,由此可见,应答间隙两边有两个隐性位:CRC域和应答界定位。7)帧结束域:每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的传输结束。(2)错误帧错误帧由两个不同的域组成:第一个域是来自控制器的错误标志;第二个域为错误分界符。2)错误界定:错误界定符由8个隐性位组成。传送了错误标志以后,每一站就发送一个隐性位,并一直监视总线直到检测出1个隐性位为止,然后就开始发送其余7个隐性位。(3)远程帧:远程帧也有标准格式和扩展格式,而且都由6个不同的位域组成:帧起始、仲裁域、控制域、CRC域、应答域、帧结尾。与数据帧相比,远程帧的RTR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RTR位为显性,所以数据帧获得优先。发送远程帧的节点可以直接接收数据。(4)过载帧过载帧由两个区域组成:过载标识域及过载界定符域。下述三种状态将导致过载帧发送:1)接收方在接收一帧之前需要过多的时间处理当前的数据(接收尚未准备好);3)如果CAN节点在错误界定符或过载界定符的第8位采样到一个显性位节点会发送一个过载帧。汽车制造中的应用、大型仪器设备中的应用、工业控制中的应用、智能家庭和生活小区管理中的应用以及机器人网络互联中的应用。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。目前大多数CAN控制器只做到链路层,然而随着CAN的发展和应用,应用层的硬件设计也成为硬件厂商的考虑范畴。控制器局域网总线(CAN,ControllerAreaNetwork)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。控制器局域网CAN(ControllerAreaNetwork)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version0)制定并发布。该技术规范共包括A和B两个部分。其中0A给出了CAN报文标准格式,而0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。CAN总线技术也在不断发展。传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺陷。当总线上传输消息密度较小时,这些缺陷对系统的实时性影响较小;但随着在总线上传输消息密度的增加,系统实时性能会急剧下降。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-TriggeredCAN),ISO11898-4己包含了TTCAN。TTCAN总线和传统CAN总线系统的区别是:总线上不同的消息定义了不同的时间槽(TimerSlot)。依据国际标准化组织/开放系统互连(InternationalStandardi-zationOrganization/OpenSystemInterconnection,ISO/OSI)参考模型,CAN的ISO/OSI参考模型的层结构。CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。(1)报文(Message)总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。(2)信息路由(InformationRouting)在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。(3)标识符(Identifier)要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。(4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。(5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。(6)优先权由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。(7)远程数据请求(RemoteDataRequest)通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。(8)仲裁(Arbitration)只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。(9)总线状态总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。(10)故障界定(Confinement)CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。(11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。(12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。(13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。(14)报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的校验机制,这些都保证了CAN通信的可靠性。(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;(2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;(3)具有优先权和仲裁功能,多个控制模块通过CAN控制器挂到CAN-bus上,形成多主机局部网络;(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCHCAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。从物理结构上看,CAN节点的构成如图7-8所示。在CAN中,物理层从结构上可分为三层:分别是物理信号层(PhysicalLayerSignaling,PLS)、物理介质附件(PhysicalMediaAttachment,PMA)层和介质从属接口(MediaDependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统,CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的"调度"。CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。CAN上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN0A),而扩展标准(CAN0B)的报文标识符几乎不受限制。CAN的数据链路层是其核心内容,其中逻辑链路控制(LogicalLinkcontrol,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(MediumAccesscontrol,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。在CAN2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。如CAN1.2版本协议所描述,两个版本的标准数据帧格式和远程帧格式分别是等效的,而扩展格式是CAN2.0B协议新增加的特性。为使控制器设计相对简单,并不要求执行完全的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。但无论是哪种帧格式,在报文传输时都有以下四种不同类型的帧:在报文传输时,不同的帧具有不同的传输结构,下面将分别介绍四种传输帧的结构,只有严格按照该结构进行帧的传输,才能被节点正确接收和发送。(1)数据帧由七种不同的位域(BitField)组成:帧起始(Startof)、仲裁域(ArbitrationField)、控制域(ControlField)、数据域(DataField)、CRC域(CRCField)、应答域(ACKField)和帧结尾(Endof)。数据域的长度可以为0~8个字节。1)帧起始(SOF):帧起始(SOF)标志着数据帧和远程帧的起始,仅由一个“显性”位组成。在CAN的同步规则中,当总线空闲时(处于隐性状态),才允许站点开始发送(信号)。所有的站点必须同步于首先开始发送报文的站点的帧起始前沿(该方式称为“硬同步”)。2)仲裁域:仲裁域由标识符和RTR位组成,标准帧格式与扩展帧格式的仲裁域格式不同。标准格式里,仲裁域由1l位标识符和RTR位组成。标识符位有ID28~IDl8。扩展帧格式里,仲裁域包括29位标识符、SRR位、IDE(IdentifierExtension,标志符扩展)位、RTR位。其标识符有ID28~IDO。为了区别标准帧格式和扩展帧格式,CANl.0~1.2版本协议的保留位r1现表示为IDE位。IDE位为显性,表示数据帧为标准格式;IDE位为隐性,表示数据帧为扩展帧格式。在扩展帧中,替代远程请求(SubstituteRemoteRequest,SRR)位为隐性。仲裁域传输顺序为从最高位到最低位,其中最高7位不能全为零。RTR的全称为“远程发送请求(RemoteTransmissionRequest)”。RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。它是区别数据帧和远程帧的标志。3)控制域:控制域由6位组成,包括2个保留位(rr1同于CAN总线协议扩展)及4位数据长度码,允许的数据长度值为0~8字节。4)数据域:发送缓冲区中的数据按照长度代码指示长度发送。对于接收的数据,同样如此。它可为0~8字节,每个字节包含8位,首先发送的是MSB(最高位)。5)CRC校验码域:它由CRC域(15位)及CRC边界符(一个隐性位)组成。CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15位为0的解除填充的位流给定。此多项式被下列多项式15+14+10+8+7+4+3+1除(系数按模2计算),相除的余数即为发至总线的CRC序列。发送时,CRC序列的最高有效位被首先发送/接收。之所以选用这种帧校验方式,是由于这种CRC校验码对于少于127位的帧是最佳的。6)应答域:应答域由发送方发出的两个(应答间隙及应答界定)隐性位组成,所有接收到正确的CRC序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第二个隐性位,由此可见,应答间隙两边有两个隐性位:CRC域和应答界定位。7)帧结束域:每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的传输结束。(2)错误帧错误帧由两个不同的域组成:第一个域是来自控制器的错误标志;第二个域为错误分界符。2)错误界定:错误界定符由8个隐性位组成。传送了错误标志以后,每一站就发送一个隐性位,并一直监视总线直到检测出1个隐性位为止,然后就开始发送其余7个隐性位。(3)远程帧:远程帧也有标准格式和扩展格式,而且都由6个不同的位域组成:帧起始、仲裁域、控制域、CRC域、应答域、帧结尾。与数据帧相比,远程帧的RTR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RTR位为显性,所以数据帧获得优先。发送远程帧的节点可以直接接收数据。(4)过载帧过载帧由两个区域组成:过载标识域及过载界定符域。下述三种状态将导致过载帧发送:1)接收方在接收一帧之前需要过多的时间处理当前的数据(接收尚未准备好);3)如果CAN节点在错误界定符或过载界定符的第8位采样到一个显性位节点会发送一个过载帧。汽车制造中的应用、大型仪器设备中的应用、工业控制中的应用、智能家庭和生活小区管理中的应用以及机器人网络互联中的应用。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。目前大多数CAN控制器只做到链路层,然而随着CAN的发展和应用,应用层的硬件设计也成为硬件厂商的考虑范畴。随着工业自动化水平的不断提高,现场总线技术逐渐成为工业控制领域的重要支柱。其中,控制器局域网(CAN)总线由于其高性能、高可靠性以及灵活性而得到广泛应用。本文将聚焦于基于CANopen协议的CAN总线控制系统,对其背景、研究目的、研究方法、实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《消毒剂的相关知识》课件
- 向父亲借款合同范例
- 惠山区租车合同范例
- 走向绿色:管道工程的挑战
- 弯钢玻璃采购合同范例
- 入股经营协议合同模板
- 录音师合同范例
- 大修设备出售合同范例
- 就职劳动合同模板
- 学校库房修建合同模板
- 个人开车与单位免责协议书
- 四川公务员考试(公共基础知识)真题试卷汇编1
- 《护理文书书写》课件
- 广东省广州市海珠区2024-2025学年三年级上学期月考英语试卷
- 2023年北京市重点校初三(上)期末历史试题汇编:第一次工业革命
- 《最后一片叶子》课件
- 2024年小轿车买卖合同标准版本(三篇)
- 八年级生物中考备考计划
- 2024-2030年全球及中国湿巾和卫生纸行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 公务员2019年国考《申论》真题及答案(省级)
- 2024年会计专业考试初级会计实务试卷与参考答案
评论
0/150
提交评论