CAN协议中CRC编码的硬件实现

发布者:RadiantRiver最新更新时间:2015-01-27 来源: laogu关键字:CAN协议  CRC编码  硬件实现 手机看文章 扫描二维码
随时随地手机看文章

1  引言     
从1982年2月RobertBosch公司在SAE(汽车工程协会)大会上宣布CAN控制器局部网的那一刻开始, CAN已经走过20多年的历史。1992年,Mercedes(奔驰)在他们的高级客车中使用CAN技术,相继Volvo、Volkswagen、BMW 等几十家公司都在各自的汽车上应用CAN技术。今天,在欧洲几乎每一辆新客车均装有CAN控制器局部网。CAN技术近年在我国发展也比较迅猛,国内的高级客车也都开始应用CAN技术。
CAN的协议在应用过程中,用户层直接访问数据链接层,每个厂商提供的数据调用方式各不相同,而CAN的标准没有规定应用层的相关信息,因此,CAN设备的兼容性和互换性不是很规范。而且,随着应用领域的扩展,CAN协议在实际工业控制应用过程中,即使执行一些简单的分布式网络,除了标准中的物理层和数据链接层外,客户还要求有更多的功能,如发送长于8字节的数据块、响应和确定数据传送、标识符分配、网络节点的状态等。如果这些功能正确执行,通信和应用过程的界线就十分清晰,将明显提高各个厂商之间的设备互换性和兼容性。鉴于这些原因,产生了一些针对不同的目的和要求的基于CAN协议的较高层协议标准。下面就对CAN协议及其较高层协议DeviceNet和CANopen进行一些比较。

2  三种协议的比较项目
CAN(Controller Area Network)1993年形成了CAN总线国际标准,2003年又进行了修订,是BOSCH公司为改进汽车内部电器线路开发的一种总线。CAN协议的实现简单,成本低,可靠性高,抗干扰能力强。
DeviceNet在美国市场占有率比较高,它是由美国Rockwell公司在CAN的基础上推出的一种低成本的通信链接,它使用抽象的对象模型,其协议和规范都是开放的,用户将设备连接到系统时无需购买硬件、软件和许可权。
CANopen 是由CiA(CAN in Aoutmation)成员编制,主要盛行于欧洲,它在通讯和系统服务以及网络管理方面使用了CAL(CAN Application Layer)子集,设备建模是借助于对象目录而基于设备功能性的描述,标准设备以设备子协议的形式规定。CANopen标准由CiA同行机构集团支持,设备子协议由CiA中专门的同行机构制定。
本文就以下项目对三种协议进行比较。
(1) 信息标识符的分配;
(2) 数据交换的方法;
(3) 建立信息连接的方法;
(4) 网络管理;
(5) 设备建模和子协议。
2.1  信息标识符的分配
由于CAN采用非破坏性的仲裁方法,因此,标识符决定了块信息传送的优先权和信息等待时间,信息标识符的分配的方法被认为是CAN系统的主要结构元素,它同时也影响了信息滤波和标识符的使用效率问题。
由于标识符分配的方法不同,不同的协议在解决方案已把不同的原则考虑进去。CAN基本协议和DeviceNet的标识符采用预定义的方式,不同的是在CAN 协议中节点标识符在设计时被确定后就不能动态更改,而DeviceNet每个节点预定义多个标识符,不同的功能标识符优先级不同。在CANopen协议中,除了预定义了一些用于管理的标识符外,其它标识符统一组成一个通用的标识符库,用户可根据设备的需要进行手动或者自动分配所有的设备标识符。这样的分配方案用户就可以完全自由决定标识符的使用及系统实时通讯的过程。
表1     DeviceNet关于CAN标识符的使用分配


DeviceNet 的标识符分配方案是面向节点的信息标识符分配,对于DeviceNet系统,最多数量为64个的节点,其每一个节点拥有一组出自于3个信息组的标识符,如表1所示。信息组1为每个设备的16个信息提供一高优先信息组,报文ID较小的总是优先发送;信息组2的信息优先权主要取决于节点的号码,信息的MAC- ID可以是目标或源地址该段共计分配512个标识符。信息组3与信息组1结构相似,但提供给每个设备7个标识符优先级比较低,这组的标识符优先权被平均分配到网络上的所有设备。信息组4只有48个标识符,不包含任何设备地址,该组信息主要用于网络管理。由于采用了基本CAN类型的控制器,信息滤波的潜能受到限制,信息组2以这种受到限制的潜能去支持多个设备,因此选择了根据节点号码的滤波功能。即DeviceNet规定了一个预定义主从连接组,以便于观察主-从系统配置的通讯。下面的信道功能是为了向基于预定义连接组的主从设备间的I/O与显式信息的交换提供支持:
l 显式信息信道。
l 主机查询改变信道的状态循环。
l 从机I/O改变信道的状态循环。
显式信息主要服务于设备的配置。主机查询改变状态信道使得主机可以向设备请求I/O数据并把输出数据发送到从机。借助于改变状态循环或从机I/O(通过改变状态循环触发或通过应用触发),从机将输入数据发送到主机。通过位选通指令,主机可以从最多为64个的从机中请求接收一个输入数据。由于所有的这些信息都是被响应的,所以对这些不同的功能性分配了8个信息标识符。如果请求获取数据的位选通没有使用一高效的标识符,则通过目的地址场在从机上对信息进行滤波。
CANopen 系统的标识符分配使用在CAL子集,其中CMS(CAN-based Message Specification)将信息标识符定义了8个优先级,每个级别拥有220个ID,范围从1~1760,剩余的标志(0,1761~2031)保留给NMT(Network MessagemenT)。在CANopen的系统中,可能访问的节点为128个,所以保留128个信息标识符作为节点保护。
在最小系统配置中,CANopen规定了一个面向设备的标识符分配方案,这种方法可以供127台设备默认连接到一台主设备上(如图1所示)。通过4位的功能代码可以区分某些情况的16种基本功能,这些情况分别是:2个数据过程信道的接收和发送、一个点对点信道、节点状态控制、节点保护、紧急情况通报以及接收同步信息和有时间标记的信息。由于信息的优先级由它的功能决定,所以功能代码位于信息标识符的最高几位。


图1     CANopen最小系统标识符分配方案
2.2  交换过程数据
在一分布式自动化系统的设备之间发送过程数据是CAN 通讯系统的目的,它应以最高效率的方式完成。因此,对于应用规定的数据(过程数据、I/O数据)其传送应该根据产生者使用者的模型来执行,其意思就是说,通过相关的信息ID推断所发送的数据。信息的产生者和使用者在这种情况下被假设拥有使用数据的知识或明白发送数据的含义。
在CAN基本协议中,各个节点采用规定的模式交换数据。CAN的数据流由数据帧、远程帧、错误帧和超载帧4种不同的帧类型所表示和控制。数据帧携带数据从发送器至接收器。远程帧由总线单元发出,请求发送具有同一识别符的数据帧。任何单元检测到一总线错误就发出错误帧。超载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。[page]
但是,DeviceNet和CANopen在过程数据交换采用不同的解决方案。DeviceNet过程数据通过“I/O信息”传送,CANopen过程数据通过“过程数据对象”(PDOs Process Data Object)传送。
DeviceNet 支持下列的触发模式:循环、改变状态和应用对象触发。通过循环触发的模式当指定信息的传送触发定时器终止时,信息的发送就会被启动。通过状态改变的模式当检测到应用对象状态改变时,信息发送就会开始,当一特定间隔时间结束而没有发送信息,信息也会被发送。通过应用对象触发模式,应用对象可以决定何时触发信息的发送,当一特定间隔时间结束而没有发送信息时信息也会被发送。
CANopen的触发模式划分为事件、应用请求或预定义同步信息接收后的触发模式。事件触发可以在子协议(Profile)或应用指定的事件(异步PDO)中产生。PDO的发送也可以通过接收一远程请求信息而被触发。“同步PDO” 是通过接收同步信息的一指定号码而被循环触发的。同步信息也可以被用作为整个网络中数据获得的同步以及输出数据滤波的同步。传输实时数据时,数据从一个生产者传到一个或多个消费者,传送限制在1到8个字节,即一个PDO可以传输最多64个数字I/O值或者4个16位的AD值。
数据交换过程中,网络设备会产生或者消耗一个以上的映射应用对象。DeviceNet和CANopen为灵活地将应用数据映射到通讯对象而提供了非常完善的方法。
DeviceNet中,应用数据的分组是由集合对象的实例(instance)规定的。这个“集合”对象的实例定义了发送的应用对象数据格式。一个设备可能包含多于一个I/O集合而且其相应集合的选择也是一个可配置的设备选项。
CANopen 规定了有关应用对象映射,应用对象通过一个叫“PDO映射记录”的数据结构映射到PDO中。这个结构以对象标识符列表(对象目录索引子索引)和数据长度的形式规定了映射的应用对象数据。由于PDO映射可通过SDO(Service Data Object)访问,所以PDO映射可通过配置工具配置。
2.3  建立过程数据信息连接
在CAN 网络里,信息生产者发送信息以及信息消耗者接收信息,其各自标识符的分配建立了通讯路径。通过已经分配的信息标识符的预定义信息可以建立信息的连接,或通过信息的各种标识符分配来达到建立信息的连接目的。非预定义标识符分配的主要优点是:建立任何类型的通讯结构的可能性,根据应用需求的最大数量信息标示符的有效性以及面向控制而设计的信息标示符分配有效性。
在一预定义信息的系统中,信息的功能和信息的标示符已经被定义DeviceNet和 CANopen使用1:n系统结构的预定义连接组方法。根据预定义组,一个已经分配了从设备预定义查询连接的DeviceNet主机,已经知道关于发送查询请求以及期待查询响应信息的信息ID,因为它们来源于从机的MAC-ID。同样的,在CANopen中除了其他的预定义信息之外, 默认的预定义连接组提供了2个预定义的接收和发送PDO, 默认PDO的用法和含义是由设备的类型决定。
DeviceNet标识符分配方法是通过设备拥有的信息标示符库决定的,这个标示符出自于信息发送设备的标示符库。DeviceNet最大为64个设备发布有效的标识符。在连接过程中,一个产生模块的信息从它的信息ID库中,分配一个空闲的信息ID,并将此空闲的信息ID与它的源MAC ID(Source MAC ID)结合在一起,产生一个所谓的“连接ID”。而CANopen的变量标识符分配方案基于中央信息标识符库,系统管理员通过SDO(Service Data Object)信道设置设备对象目录中相应的PDO标识符实现信息连接的建立。
2.4  网络管理
由于应用是分布的,所以必须处理某些事件,如应用部件的故障或节点的故障,如果同一应用还没有被分配,则这些事件就不会出现。因此,对于一个正确的网络管理,其主要任务是检测和显示网络中的错误,并通过服务以一协调的方式控制分布节点的通讯。状态取决于系统的解决方案,网络的功能性可以通过显式网络管理设施提供,或通过其他方法提供。
CAN网络的错误检测包括位错误、填充错误、CRC错误、格式错误和应答错误,每当检测到一个错误该节点的错误计数器就加1,当节点的错误计数器大于或等于256时,节点进入总线关闭状态。
CANopen 网络管理基于CAL NMT(Network ManagemenT)服务元素,这些元素应用了“节点保护”原则来检测节点故障。为了这个目的,一个NMT主机通过一个远程请求帧对网络的每个节点 NMT从机循环发送一个保护请求。被访问的从机用它的实际通讯状态响应每个请求。如果NMT主机检测到节点状态改变或被访问的节点没有响应,就会有一个保护错误告示NMT主机应用。当节点连接到网络上后,节点保护就启动。每一个节点也监督到达节点的保护请求信息。节点的“生存时间”过期后如果没有进一步的保护请求信息,则此节点的应用被告之有网络错误。
根据面向连接的设计,DeviceNet中的每个连接都受到监控。因此,根据配置的期望信息包速率(expected packet rate),每个接收的连接端点都有静止看门狗定时器(Inactivity/Watchdog-Timer),用于监控到达节点的信息。如果定时器溢出,连接就会执行专有的超时行动。在接收到创建服务(Create Service)显式信息后,可以通过使用专有的显式信息服务的顺序来配置连接,并且,要在整个连接完成了配置以后才允许连接。在访问每个 DeviceNet节点之前,每个节点必须重复执行MAC ID检查,使用这个特殊的协议顺序,可以确保设备MAC ID的唯一性。所有的DeviceNet模块都要求参与这个MAC ID的检测算法。
2.5  设备建模和设备子协议
除了标准的通讯外,还要求相似设备在开放式自动化系统中应具有额外的互用性和可交换性。CAN协议各个厂商间的设备功能可交换性较差DeviceNet和CANopen在这方面改进了很多。DeviceNet和CANopen以设备模型的形式描述网络上所看见的设备的功能性。为了提高相似设备的可交换性,DeviceNet 和CANopen规定了工业自动化中主要设备类型的设备子协议,以确保不同厂家器件的相同基本标准行为。除了设备的功能性描述外,设备模型还提供关于设备的身份特点、版本号、状态诊断信息、通讯设施和配置参数的描述。
DeviceNet的节点模型包括了几个对象,其中一些是由DeviceNet要求的,其他则是由产品的应用功能要求的。对象提供有关于设备中特殊部件的描绘和相关的数据属性以及数据的过程服务的描绘。DeviceNet中的对象访问是基于一个具有等级划分的访问方案,对象访问包括媒体访问控制标识符、类型标识符、实例标示符以及属性标识符。媒体访问控制标识符用以将一个节点从同一网络中的所有其他节点中区分开来,类型标识符用以识别对象类型,实例标示符用以在相同类型的所有实例中识别一个实例,属性标示符用以识别一个类型或实例里的属性。
DeviceNet的设备子协议(Device Profile) 包含三方面的信息:设备类型的对象模型、设备类型的I/O数据格式以及配置数据和数据的公共接口。一个设备可能包含高达32个嵌入对象,而且这些对象都是总线可寻址的实体。根据嵌入对象的级别可以确定属性、行为和事件。
CANopen通过对象目录描述对象设备的功能性。目录项是由一个16位索引和一个8位子索引号码识别,数据和参数的功能被规定其中。除了用于定义数据类型的区段外,还有3个主要的区段,分别是:通讯子协议区段、标准化的设备子协议区段和厂商细节区段。通讯子协议区段信息对于任何CANopen设备类型都是一致的,并包含与信息、参数和功能相关的设备。这些信息参数和功能又与设备的鉴别、错误管理、包括将应用对象映射到过程数据对象的设备通讯信道的定义有关。CANopen设备子协议区段为特殊类别的基本标准设备的功能性提供了一个接口,其中有些条目是强制的,有些是可选的。强制的、共有的条目要确保设备在一个定义的基本方式中运转。主要工业设备不同的设备子协议用以提高设备的可交换性。厂商特殊的或不标准的设备的功能性可以通过厂商特殊子协议区段进行提供。

结束语
文章通过对CAN、DeviceNet、CANopen在五方面的比较,使CAN总线用户更深入的了解这几种总线。这几种协议最明显的不同是信息标识符的使用。DeviceNet基于面向连接的观点,CANopen基于面向信息的观点。DeviceNet、CANopen协议和 CAN协议构成了一个完整的协议体系CAN总线因其具备其独特的设计思想、优良的性能和高可靠性在汽车、医学、机器人等领域有着很好的应用,而CAN的高层协议DeviceNet、CANopen满足了不同产品的兼容和互操作性,使得CAN总线的功能更加的丰富和适应更加复杂的应用,进一步推进了CAN总线在工业领域的推广和应用。



 
 
关键字:CAN协议  CRC编码  硬件实现 引用地址:CAN协议中CRC编码的硬件实现

上一篇:基于DSP和FPGA的油田测井系统总线通信接口设计
下一篇:无线以太网技术在输送系统中的应用

推荐阅读最新更新时间:2024-05-02 23:27

硬件单片机实现温室智能控制
近年来,温室环境控制在国内外得到了相应的研究和应用。国内现有的智能温室系统硬件大部分从国外引进,国外的系统是经过多年的发展和完善,在技术上是比较成熟与先进的。但在我国的应用中出现了一些问题,如体积大、能耗大、温室降温较差、在我国使用不适应。从经济效益上看,因其设备投资大,运行费用高,普遍亏损。“林木种苗工厂化生产环境控制设备与自动化控制集成应用研究示范”是我们自主开发的智能温室监控系统,该系统对于实现农业精细化、自动化生产,提高农业生产的效率与农产品的质量有一定的促进作用。 系统硬件相关技术指标要求如下: ( 1) 对现场空气温度湿度,土壤基质温度湿度,光照强度进行实时的数据采集、数据信号处理、数据分析。数据采集时延 3min
[单片机]
<font color='red'>硬件</font>单片机<font color='red'>实现</font>温室智能控制
STM32 I2C 硬件中断方式实现方法
流程图如下: I2C 中断处理函数如下: /** * @brief This function handles I2C1 Event interrupt request, tx, rx * buffer and number of bytes will be changed. * @param None * @retval None */ void I2C1_EV_IRQHandler(void) { #ifdef ARC_I2C_IRQ uint32_t i2cEvent; I2C_param_struct __IO *pI2C_param; pI2C_param = ARC_get_
[单片机]
STM32 I2C <font color='red'>硬件</font>中断方式<font color='red'>实现</font>方法
基于TMS320VC5510的低功耗加密型语音硬件平台的设计与实现
   高质量、低速率的语音编码算法在现代通讯系统中地位越来越重要,被广泛应用于诸如IP电话、语音信箱、军事无线通讯等领域。特别是在一些特殊的应用领域,信道带宽很窄而且误码率较高,要在这种信道上实现语音通讯,低速和甚低速语音压缩编码技术是关键。以前由于硬件条件的限制,此类的低速率复杂编解码算法往往只能停留在原理和计算机实现阶段。近些年来,由于VLSI技术的蓬勃发展,尤其是高性能数字信号处理芯片的DSP的普及,这些编码算法开始大规模的运用到了现实领域。本次设计就是为这套军用语音编码算法标准设计一个通用编解码平台。该平台已经做为嵌入式低功耗语音模块,应用到语音编码和语音合成等领域,并已小规模量产。    1. 语音硬件平台的总体介绍和
[嵌入式]
用PSOC3实现虚拟示波器的系统解决方案,软硬件实现
0引言 示波器是电子设计一项最基本的仪器,该仪器可以用于观察数字与模拟电路的波形,可以测量信号质量、电压、频率等系列参数。但是这个设备一般只有学校实验室、研发部门才会拥有。该设备价格相对较贵,个人用户一般不会拥有。网络上还流传一种利用系统API开发声卡型示波器,该示波器能实现基本功能,但是因为测量时候因使用不慎会烧坏电脑的声卡、甚至电脑主板,一台笔记本本可能就这样报废。并且声卡采用数据速率相当的有限,这套方案有先天的缺点,如果可以使用另一个解决方案,同时解决速率、成本、不烧坏电脑那么该产品一定可以在市场占有一席之地,经过学习PSOC3发现这是一套非常完美的方案,Cypress Semiconductor 的PSOC 3 芯片内包
[测试测量]
用PSOC3<font color='red'>实现</font>虚拟示波器的系统解决方案,软<font color='red'>硬件</font><font color='red'>实现</font>
嵌入式系统硬件抽象层的原理与实现
    摘要: 板级支持包(BSP)是嵌入式系统中常用的硬件抽象形式,是介于操作系统和硬件之间的软件层次。介绍BSP的功能和特点,并结合工作实践提出了设计BSP的一般方法;最后针对当前嵌入式系统中BSP的设计方法所面临的问题提出了可行的解决办法。     关键词: 嵌入式系统 嵌入式实时操作系统(RTOS) 硬件抽象层(HAL) 板级支持包(BSP) 随着计算机硬件技术的快速发展,出现了越来越多的便携设备和智能设备。这些设备中通常包含控制用的CPU和相应的操作系统;这类特殊的计算机系统叫做嵌入式实时系统。嵌入式实时系统以其简洁高效等特点在计算机、通信等领域中广泛使用。 由于嵌入式实时系统应用环境的特
[嵌入式]
以太网分析、车载总线协议解码、CAN位时间测试3个方面解读
本文导读 提起汽车电子行业的通信问题,大家自然会想到CAN、LIN、CANFD、车载以太网等协议。那么工程师在调试这类通信问题的时候,示波器是否拥有相关协议的分析插件就非常关键。这些分析插件是如何协助工程师解决问题的呢? 本文将重点从示波器的以太网分析、车载总线协议解码、CAN位时间测试3个方面来进行描述。 一、以太网分析 目前,车载以太网最重要的应用就是域控制器。除了域控制器、激光雷达这些都需要高带宽和全新的运算架构。另外一点就是降低成本的需求。 如图1所示,为典型的汽车网络架构。 图1 典型的汽车网络架构 像CAN总线一样,以太网也需要类似的多种测试来确保通信等的稳定性。这其中就包括眼图测试、发送抖动、幅值
[测试测量]
以太网分析、车载总线<font color='red'>协议</font>解码、<font color='red'>CAN</font>位时间测试3个方面解读
NXP2214实现多路韦根信号采集硬件设计
韦根传感器是一种当交变磁场经过时产生输出电压脉冲的传感器。脉冲的幅度是由激励磁场的场强决定的。因此,韦根传感器不需要外界电源供电。韦根传感器的工作频率从0速率到20KHZ,脉冲的极性由激励磁场的极性所决定。由于韦根传感器非常容易和数字系统相匹配,并且系统没有可动的部件或半导体器件,这使得它们能适用于恶劣的环境和长期无人监控的场所。   1 韦根信号简介   韦根信号是两根数据线传输二进制数据,在空闲时端,两线的对0V的电源都为TTL电平的水平,也就是5V,一般通过5K电阻上拉,当有数据传输时,两根线交替地发送400uS低脉冲,当Data0线发脉冲时,数据是0;当Data1发脉冲时,发送的数据是1,不能两根线同时发脉冲。脉
[工业控制]
NXP2214<font color='red'>实现</font>多路韦根信号采集<font color='red'>硬件</font>设计
详解基于CAN总线的汽车仪表系统设计—CAN总线原理分析
控制器局域网CAN 控制器局域网CAN(CAN一  ControllerAreaNetwork)为串行通讯协议,属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。控制器局域网采用双线串行通信方式工作。具有强有力的检错功能,可在高噪声干扰环境中使用,具有优先权和仲裁功能、多个单片微机可通过CAN的控制器挂到CAN总线上,形成多主机局部控制网。CAN的最初设计目标是取代汽车中过多的硬件连接控制电路,但由于它的优良性能,现在除了汽车外,它已在工业自动化、各种控制设备、交通工具、医疗仪器以及建筑、环境控制等
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved