接口/总线/驱动
本文主要是关于CAN总线的相关介绍,并着重对CAN总线终端电阻阻值的检测进行了详尽的阐述。
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。
CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
优势
CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
网络各节点之间的数据通信实时性强
首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;
开发周期短
CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。
已形成国际标准的现场总线
另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。
最有前途的现场总线之一
CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。其典型的应用协议有:SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。
发展
控制器局部网(CAN-CONTROLLER AREA NETWORK)是BOSCH公司为现代汽车应用领域推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在中国迅速普及推广。
随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。
分散式工业控制系统就是为适应这种需要而发展起来的。这类系统是以微型机为核心,将 5C技术--COMPUTER(计算机技术)、CONTROL(自动控制技术)、COMMUNICATION(通信技术)、CRT(显示技术)和 CHANGE(转换技术)紧密结合的产物。它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。
典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成。现场总线(FIELDBUS)能同时满足过程控制和制造业自动化的需要,因而现场总线已成为工业数据总线领域中最为活跃的一个领域。现场总线的研究与应用已成为工业数据总线领域的热点。尽管对现场总线的研究尚未能提出一个完善的标准,但现场总线的高性能价格必将吸引众多工业控制系统采用。同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据。控制器局部网 CAN(CONTROLLER AERANETWORK)正是在这种背景下应运而生的。
由于CAN为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991年 9月 PHILIPS SEMICONDUCTORS制订并发布了 CAN技术规范(VERSION 2.0)。该技术规范包括A和B两部分。2.0A给出了曾在CAN技术规范版本1.2中定义的CAN报文格式,能提供11位地址;而2.0B给出了标准的和扩展的两种报文格式,提供29位地址。此后,1993年11月ISO正式颁布了道路交通运载工具--数字信息交换--高速通信控制器局部网(CAN)国际标准(ISO11898),为控制器局部网标准化、规范化推广铺平了道路。
特点
CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。
完成对通信数据的成帧处理
CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
使网络内的节点个数在理论上不受限制
CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识符可由11位或29位二进制数组成,因此可以定义2或2个以上不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。
可在各节点之间实现自由通信
CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数据通讯。CAN总线插卡可以任意插在PC AT XT兼容机上,方便地构成分布式监控系统。
结构简单
只有2根线与外部相连,并且内部集成了错误探测和管理模块。
传输距离和速率
CAN总线特点:(1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序,高优先级节点信息在134μs通信; (2) 多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞; (3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M);(4) CAN总线传输介质可以是双绞线,同轴电缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。
终端电阻是为了消除在通信电缆中的信号反射,在通信过程中,有两种原因导致信号反射:阻抗不连续和阻抗不匹配。 阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。
消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。
引起信号反射的另外一个原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。
为了提高网络节点的拓扑能力,CAN总线两端需要接有120Ω的抑制反射的终端电阻, 它对匹配总线阻抗起着非常重要的作用,如果忽略此电阻,会使数字通信的抗干扰性和可靠性大大降低,甚至无法通信。
不合适的CAN总线终端电阻导致的错误
CAN总线ISO 11898协议规定,CAN总线必须在网络的两端,通常是网络主控制器和网络最远端的节点之间安装合适的总线终端电阻(在位于DB-9接口的第2和第7引 脚的CAN_H和 CAN_L信号线之间安装一个120欧姆的电阻)。详细请参考相关链接部分“为NI-CAN硬件安装合适的终端电阻”,更为详细地了解如何为NI-CAN 网络安装终端电阻。 在没有安装合适的终端电阻的情况下,通信可能会出现下面非预期的行为:
在低波特率的情况下能够正确通信,但是在波特率较高时会出错(具体出错的波特率的值取决于一系列因素,包括CAN网络长度、数据帧上携带的数据----它能够改变具体传输的最高频率以及网络附近的电磁干扰等等)。
值得注意的是,在安装了合适的终端电阻的情况下,通信总是正常的。但是在40K较低的波特率下,通信仍然是正常的,因此这点是不符合CAN ISO 11898规范的地方。
CAN错误 - Form错误、CRC错误、Bit错误、Stuff错误和其他由于不合适终端电阻所导致的错误。如果出现这些错误,则请按照附件中的知识库文章来检验是否 安装了合适的终端电阻。更多短语CAN错误的信息,请参考相关链接一栏中的NI-CAN硬件和软件用户手册(附录B包含了一个CAN标准的总结,并包含一 个叫“CAN错误检测与约束”,该章节详细描述了CAN错误)。
Stuff错误就是一个可以用没有合适的终端电阻来解释的CAN错误(这个错误在CAN ISO 11898规范中进行了定义)。 当总线上连续出现6位相同的数据时,就会发生Stuff错误。当发送器件检测到连续5位相同的数据时,就会自动在数据流后面插入一个完成停止位,这个位会 被所有的接收器件检测到并自动去除掉。这个填充位的策略能够保证数据流中有足够的信号沿,从而保证同一个数据帧中的数据同步。如果接收器件检测到连续6位 相同的数据位,那么一定是由于同步丢失,导致接收到的数据与发送的数据不相同。而在没有合适的终端电阻的情况下,就会发生这样的事情,数据帧中的某些数据 能够正确地接收和发送,而在接收的CAN接口处,整个帧(或者数据帧的完整性)没有正确的保持和被接收。 出现这种情况的原因是,一般来说CAN网络定义传输线,根据传输线理论,如果在接收端没有合适的终端电阻,那么足够高频率的信号在执行长度的传输线上是不 能正确被传输的。这里的终端电阻一般指网络匹配,该负载一般选择使传输功率最大,并且其值等于网络端口阻抗共轭值(这里指的是接收端的CAN接口,实际 上,考虑到噪声和其他影响,许多应用中常使用不一样的终端电阻)。
值得庆幸的是,在CAN ISO 11898规范中,已经将整个CAN网络的终端电阻简化为在网络两端安装两个120欧姆的电阻(就如同第一部分描述的一样,这完全符合CAN标准)。
检测提示
● 电压检测 (示波器):电压检测的前提条件是,蓄电池已连接并且点火开关已接通。
● 电阻测量:在电阻测量时,在测量前必须把待测部件断电。为此应断开车辆蓄电池的接线。等待约3 分钟,直到系统中的所有电容器放完电。
CAN总线
CAN (控制器区域网络) 总线系统是一种线形总线系统并具有以下特征:
● 信号双向传播。
● 所有总线用户都接收同一个信息。每个总线用户决定,它是否利用该信息。
● 通过简单并联即可添加附加的总线用户。
● 此总线系统构成一个多主控单元系统。每个总线用户可以是主控单元也可以是副控制单元,根据其作为发射器还是接收器被连接而定。
● 传输媒介是双线连接。导线的名称为:CAN Low (低速) 和 CAN High (高速)
● 原则上每个总线用户可以通过总线同所有其它总用户通信。通过干预法,控制总线上的数据交换。
数据总线 K-CAN (车身 CAN)、PT-CAN (传动系 CAN) 和 F-CAN (底盘 CAN) 之间的主要区别是:
● K-CAN:数据传输率约 100 kBit/s。可以进行单线运行。
● PT-CAN:数据传输率约 500 kBit/s。不能进行单线运行。
● F-CAN:数据传输率约 500 kBits/s。不能单线运行
主控单元
主控单元是主动式通信方,通信的主动权由它发出。主控制单元掌控总线,并控制通信。主控制单元能够在总线系统中向被动式总线用户 (副控制单元) 发送信息,并根据被动式用户的要求接收信息。
副控单元
副控制单元是一个被动式通信用户。副控制单元被要求接收和发送数据。
多主控单元系统
在一个多主控单元系统中所有的通信用户在某个时间都能够担当主控单元或副控制单元的角色。
示波器测量
为了弄清 CAN 总线是否完好工作,必须观察总线上的通信情况。在这种情况下不需要分析单个位,而只需要观察 CAN 总线是否工作。示波器测量说明:‘CAN 总线很可能无故障工作’。
如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号:
K-CAN:
CAN Low (低速) 对地:U 最小 = 1 V,U 最大 = 5 V
CAN High (高速) 对地:U 最小 = 0 V,U 最大 = 4 V
这些值都是近似值,根据总线上的负载可能有几个 100 mV 的偏差
测量 K-CAN:CH1 CAN 低,CH2 CAN 高
如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号:
PT-CAN 和 F-CAN:
CAN Low (低速) 对地:U 最小 = 1.5 V,U 最大 = 2.5 V
CAN High (高速) 对地:U 最小 = 2.5 V,U 最大 = 3.5 V
测量 PT-CAN:CH1 CAN 低,CH2 CAN 高
总线端测量
测量前提 :
● CAN 总线必须断电。
● 不允许使用其它测量仪 (并联测量仪)。
● 测量在 CAN-Low 导线和 CAN-High 导线之间进行。
● 实际值允许与标准值有几欧姆的偏差。
K-CAN :
因为电阻根据控制单元内部的开关逻辑而变化,所以在 K-CAN 总线上不能进行规定的电阻测量!
PT-CAN、F-CAN :
为了避免信号反射,在 2 个 CAN 总线用户上 (在 PT-CAN 网络中的距离最远) 分别连接一个 120 Ω 的终端电阻。这两个终端电阻并联,并构成一个 60 Ω 的等效电阻。关闭供电电压后可以在数据线之间测量这个等效电阻。此外,单个电阻可以各自分开测量。
通过 60 Ω 等效电阻进行测量的提示:把一个便于拆装的控制单元从总线上脱开。然后在插头上测量 CAN-Low导线和 CAN-High 导线之间的电阻。
提示!
并非所有车辆都在 CAN 总线上有终端电阻。可以根据相应的电路图检查,在连接的车辆上是否安装有终端电阻。
CAN 总线失效
当 K-CAN 或 PT-CAN 数据总线失效时,在 CAN-Low 或 CAN-High 导线上可能存在短路或断路。或者某个控制单元已损坏。
为了查找故障原因,建议进行下列工作步骤:
● 将总线用户从 CAN 总线上依次拔下,直至找到故障原因 (= 控制单元 X)。
● 检查通往控制单元 X 的导线是否短路或断路。
● 如有可能,检测控制单元 X。
● 如果某个控制单元至 CAN 总线的分支线短路,仅执行该工作步骤就成功了。如果 CAN 总线中的一条导线自身短路,则必须检查电线束。
关于CAN总线的相关介绍就到这了,如有不足之处欢迎指正。
全部0条评论
快来发表一下你的评论吧 !