搜档网
当前位置:搜档网 › CAN总线与CANopen协议

CAN总线与CANopen协议

CAN总线与CANOpen协议

一CAN总线简介

1.1 引言

在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。

图1.1 早期的ECU(汽车电子控制单元)通信

CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用

层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。

图1.2 基于总线(CAN)的ECU通信

1.2 CAN总线的特点

CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。

其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点:

(1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线;

(2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134μs;

(3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空

闲时才能够发送数据,即载波监听多路访问方式。在总线出现两个以上的节点同时发送数据时,CAN协议规定,按位进行仲裁,按照显性位优先级大于隐性位优先级的规则进行仲裁,最后高优先级的节点数据毫无破坏的被发送,其它节点停止发送数据(即逐位仲裁无破坏的传输技术)。这样能大大的提高总线的使用效率及实时性;

(4)CAN总线所挂接的节点数量主要取决于CAN总线收发器或驱动器,目前的驱动器一般都可以使同一网络容量达到110个节点。CAN报文分为两个标准即CAN2.0A标准帧和CAN2.0B扩展帧,两个标准最大的区别在于CAN2.0A 只有11位标识符,CAN2.0B具有29位标识符;

(5)CAN总线定义使用了硬件报文滤波,可实现点对点及点对多点的通信方式,不需要软件来控制。数据采用短帧发送方式,每帧数据不超过8字节,抗干扰能力强,每帧接收的数据都进行CRC校验,使得数据出错机率极大限度的降低。CAN节点在错误严重的情况下具有自动关闭的功能,避免了对总线上其它节点的干扰;

(6)CAN总线通信介质可采用双绞线、同轴电缆或光纤,选择极为灵活。可大大节约组网成本。

1.3 CAN总线的物理连接和电平特性

CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。在隐性状态下,CAN-H与CAN-L的输入差分电压为0V(最大不超过0.5V),共模输入电压为2.5V。在显性状态下,CAN-H与CAN-L的输入差分电压为2V(最小不小于0.9V),其物理连接和电平特性如下图所示:

图1.3 CAN总线物理连接

图1.4 CAN总线的基本结构

图1.5 CAN总线的电平特性

1.4 CAN总线的数据格式

CAN协议有以下5中不同类型的帧格式:

表1 帧的种类及用途

帧帧用途

数据帧用于发送单元向接收单元传送数据的帧

远程帧用于接收单元向有相同ID的发送单元请求数据的帧错误帧用于当检测出错误时向其他单元通知错误的帧

过载帧用于接收单元通知尚未做好接收准备的帧

帧间隔用于数据帧及远程帧与前面的帧分隔开来的帧

CAN2.0B总线规范定义了2种不同的数据格式(标准帧和扩展帧),其主要区别在于标识符的长度不同:标准帧有11位的标识符,扩展帧有29位的标识符。CAN总线的标准帧数据长度是44~10位,而扩展帧的长度是64~128位。根据数据流代码的不同,标准帧可以插入32位的填充位,扩展帧可以插入28为的填充位。因此标准数据帧最长为131位,扩展帧最长为156位。

图1.6 数据帧

图1.7 远程帧

图1.8 错误帧

图1.9 过载帧

图1.10 帧间隔

在数据帧,各数据位的意义如下:

SOF(1 bit)标识一个消息帧的开始,在空闲时间的下降沿同步所有的总线模块;

ID(11/29 bits)标准帧11位,扩展帧29位,标识了此消息的优先级和过滤信息;

RTR(1 bit)远程传输请求,如果RTR=1表示在数据帧中没有有效数据,请求远程节点向发出请求帧的节点发送数据;

IDE(1 bit)标识符扩展,如果IDE=1,则采用扩展的数据帧传送数据;

r0(1 bit)保留;

DLC(4 bit)数据长度代码,数据帧允许的数据字节数为(0~8),其他长度数值不允许使用;

DATA(0~64 bits)消息数据;

CRC(15 bits)循环冗余校验码,只用于检测错误而不能校正;

ACK(2 bits)每一个接听者收到消息后必须发送响应位(ACK);

EOF(7 bits)帧的结束;

IFS(3 bits)内部帧空间,将接收到的消息从总线处理单元复制到缓冲,只有扩展模式有该位;

SRR(1 bit)代替标准帧中的远程帧请求位(RTR);

r0(1 bit)保留。

根据系统通信速率的要求,CAN总线的物理布线长度具有严格的限制。每个数据帧由几个字节(最多8个字节)组成,从而提高了总线对于新的数据帧的响应时间。但另一方面,CAN总线不适合高数据吞吐类型的信息传输,比如实时图像处理。

1.5 CAN总线的仲裁

CAN总线采用的是一种叫做“载波监听,多主访问/冲突避免”(CSMA/CA)的通信模式。这种总线仲裁方式允许总线上的任何一个设备都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的设备要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。

总线处于空闲状态时呈现隐形电平,此时任何节点都可以向总线发送显性电平作为帧的开始。如果2个或2个以上同时发送就会产生竞争。CAN解决这种冲突的方法和CSMA/CD相似,并对其进行了改进采用CSMA/CA,访问总线,按位对标识符进行仲裁。各节点在向总线发送电平的同时,也对总线上的电平读

取,并与自身发送的电平比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。剩余的节点继续上述过程,直到总线上只剩下一个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。如下图所示:

图 1.11 总线仲裁过程

1.6 CAN协议层

CAN总线是个开放的系统,其标准遵循ISO的OSI七层模式,而CAN的基本协议只有物理层和数据链路层。实际上,CAN总线的核心技术是其MAC 应用协议,主要解决数据冲突的CSMA/CA协议。CAN总线一般用于小型的现场控制网络中,如果协议的结构过于复杂,网络的信息传输速率势必会变慢。因此,CAN总线只用了7层模型中的3层:物理层,数据链路层,应用层。如下图12所示:

(1)物理层:传输线的物理接口

l差分双绞线;

l IC集成方式和接收数据;

l可采用光纤传输;

l可选的编码格式:PWM、NRZ、曼侧斯特编码。

(2)数据链路层

l定义消息格式和传输协议;

l CSMA/CA避免总线冲突。

(3)应用层

l工业标准和汽车应用有细微区别;

l为通信、网络管理和实时操作系统提供接口。

图1.12 CAN协议层结构

1.7 CAN的通信错误及其处理

在CAN总线中存在5中错误类型,它们互相并不排斥,下面介绍一下它们的区别、产生的原因及处理方法。

(1)位错误:向总线发送出一位的某个节点同时也在监视总线,当监视总线位的电平与送出的电平不同时,则在该位时刻检测到一个位错误。但是在仲裁的填充位流期间或应答间隙送出隐形位而检测到显性位时,不认为是位错误。送出认可错误标注的发送器,在检测到显性位时也不认为是位错误;

(2)填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,检测出一个填充错误;

(3)CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以与发送器相同的方法计算CRC。如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误;

(4)形式错误:当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错位;

(5)应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。

检测到出错条件的节点通过发送错误标志进行标定。当任何节点检测出位错

误、填充错误、形式错误、或应答错误时,有该节点在下一位开始发送出错误标志。

当检测到CRC错误时,出错标志在应答界定符后面那一位开始发送,除非其他出错条件的标志已经开始发送。

CAN总线中,任何一个单元可能处于下列3中故障状态之一:错误激活状态(Error Active)、错误认可状态(Error Passive)和总线关闭状态(Bus off)。具体的错误计算方式可以参考CAN 2.0协议标准。

图1.13 错误处理

图1.14 CAN控制器的三种状态

二CANopen协议

2.1 简介

CANopen协议是在20世纪90年代末,由CiA组织(CAN-in-Automation)在CAL(CAN Application Layer)的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用。经过对CANopen协议规范文本的多次修改,使得CANopen 协议的稳定性、实时性、抗干扰性都得到了进一步的提高。并且CIA在各个行业不断推出设备子协议,使CANopen协议在各个行业得到更快的发展与推广。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用。

从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。

CAN(Controller Area Network)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。

同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN 网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。

l应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。

l通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。

l设备描述(Device proflile):为设备(类)增加符合规范的行为。

CANopen是基于CAN的高层协议,由CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同

类型的标准设备及其相应的功能。依靠CANopen协议的支持,可以对不同厂商的设备通过总线进行配置。

在OSI模型中,CAN标准、CANopen协议协议之间的关系如下图所示:

图2.1 CAN、CANopen标准在OSI网络模型中的位置框图

2.2 CANopen设备的结构

一般来说,每一个CANopen节点设备都由3部分组成,通讯、对象字典和用户应用,如下图所示:

图2.2 CANopen节点设备的结构

(1)通讯(Communication)

数据交换的具体实现机制,通常包括报文管理(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和预定义或特殊功能对象。

(2)对象字典(Object Dictionary)

一个能够描述和影响设备应用行为的所有数据元素对象的集合。

(3)应用(Application)

应用对象包含与外界环境的相互沟通并实现特定的功能。

2.3 对象字典(OD)

CANopen的一个最重要特征是标准化的设备描述。这被叫做“对象字典”,用来提供对设备所有重要数据、参数和功能的访问(无论远程或本地)。对象字典(OD:Object Dictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。

CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。对于每一个CANopen设备,对象字典结构都是相同的,这为通信参数、制造商定义对象和设备对象提供了一套标准化的地址空间。这种统一的对象字典结构和标准化的通讯参数对象使得“新”设备的集成变得十分的容易。

从“外部”看来,比如通过CAN总线,各种类型的CANopen设备都提供相同的结构。每个对象字典被进一步细分为4096个入口数据区。其中从0x1000到0x1FFF被称作通讯数据区(由CiA301详细定义),从0x2000 to 0x5FFF包含的是生产商定义对象,从0x6000 到0x9FFF是设备描述区,从0xA000 到0xAFFF 保留给网络变量。网络变量数据区是动态的入口区域(或者说是动态的通道),在与程序控制器(比如PLC)交换数据时使用。在程序控制器中,数据类型和个数不是静态的而是依赖于用户程序。一般来说,网络变量是在网络配置过程中生成的,比如使用CANopen配置工具。

对于每一个对象字典中的对象来说都有相应的值,该值可以用SDO读写。一个对象字典入口可以直接代表设备的一个属性或是一个功能(比如,设备启动,数字输入状态)。访问该对象时需要知道数据类型和“值”所代表的意义。因此,每一个CANopen设备生产厂商需要提供“电子数据表单”(EDS)来描述每一个对象字典入口的地址(index/sub-index),参数名,数据类型,访问类型和默认值。一般,EDS以ASCII格式文件提供。EDS文件也被用来作为建立设备配置的模板。在建立设备配置的过程中,EDS文件中的默认值由用户期望的配置参数值

替代(比如,PDO COB-ID,PDO mapping等等)。对设备的配置也被存储为一个文件,“设备配置文件”(DCF)。因此,DCF也可以被看作为填写了有效设备配置数据的EDS文件。虽然说对象字典对于一个CANopen设备来说是必须的,但实际上只有其中的一部分入口是必须的。下表所示是对象字典的前几项:

表2 对象字典

索引对象名称名称形态属性M/O

0x1000 V AR Device type UNSIGNED32 只读M

0x1001 V AR Error register UNSIGNED8 只读M

……..

0x1008 V AR Manufacturer

Device name

Vis-String 常数O

……..

CANopen有一系列称为子协议的文档组成:

(1)通讯子协议(Communication Profile)

通讯子协议,描述对象字典的主要形式和对象字典中的通讯对象以及参数。这个子协议适用所有的CANopen设备,其索引值范围从0x1000~0x1FFF。(2)制造商自定义子协议(Manufacturer-Specific Profile)

制造商自定义子协议,对于在设备子协议中未定义的特殊功能,制造商可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同,其索引值范围为0x2000~0x5FFF。

(3)设备子协议(Device Profile)

设备子协议,为各种不同类型的设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如DS401、DS402、DS406等,其索引值范围为0x6000~0x9FFF。

2.4 CANopen通讯

CANopen通讯模型定义了4种类型的报文:

(1)管理报文NMT

管理报文负责层管理、网络管理和ID分配服务,例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。

(2)服务数据对象SDO(Service Data Object)

SDO主要用于主节点对从节点的参数配置。服务确认是SDO的最大的特点,为每个消息都生成一个应答,确保数据传输的准确性。在一个CANopen系统中,通常CANopen从节点作为SDO服务器,CANopen主节点作为客户端。客户端通过索引和子索引,能够访问数据服务器上的对象字典。这样CANopen主节点可以访问从节点的任意对象字典项的参数,并且SDO也可以传输任何长度的数据(当数据长度超过4个字节时就拆分成多个报文来传输)。

(3)过程数据对象PDO(Process Data Object)

PDO用来传输实时数据,其传输模型为生产者消费者模型如图2.3所示。数据长度被限制为1~8字节。

图2.4 生产者消费者模型

PDO通信对象具有如下的特点:

l PDO通讯没有协议规定,PDO数据内容由它的CAN-ID(也可称为COB-ID)定义;

l每个PDO在对象字典中用2个对象描述:

? PDO通讯参数,该通讯参数定义了该设备所使用的COB-ID、传输类型、定时周期;

? PDO映射参数,映射参数包含了一个对象字典中的对象列表,这些对象映射到相应的PDO,其中包括数据的长度(单位,位),对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释PDO内容。

l PDO消息内容是预定义的,如果PDO支持可变PDO映射,那么该PDO是可以通过SDO进行配置;

l PDO可以有多种的传输方式:

? 同步传输(通过接收同步对象实现同步),同步传输又可分为非周期和周期传输。非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事

件预触发传送。周期传输则是通过接收同步对象(SYNC)来实现,可以设置1~240个同步对象触发;

? 异步传输(由特定事件触发),其触发方式可有两种,第一种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送,第二种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等)。

(4)预定义报文或特殊功能对象

预定义报文或特殊功能对象为CANopen设备提供特定的功能,方便主站对从站管理。在CANopen协议中,已经为特殊的功能预定义了COB-ID,其主要有以下几种特殊报文:

l同步(SYNC),该报文对象主要实现整个网络的同步传输,每个节点都以该同步报文作为PDO触发参数,因此该同步报文的COB-ID具有比较高的优先级以及最短的传输时间;

l时间标记对象(Time Stamp),为各个节点提供公共的时间参考;

l紧急事件对象(Emergency),当设备内部发生错误触发该对象,即发送设备内部错误代码;

l节点/寿命保护(Node/Life Guarding),主节点可通过节点保护方式获取从节点的状态。从节点可通过寿命保护方式获取主节点的状态;

l启动报文对象(Boot-up),从节点初始化完成后向网络中发送该对象,并进入到预操作状态。

2.5 CANopen的预定义连接集

CANopen预定义连接是为了减少网络的组态工作量,定义了强制性的缺省标识符(CAN-ID)分配表,该分配表是基于11位CAN-ID的标准帧格式。将其划分为4位的功能码和7位的节点号(Node-ID)。如图2.5所示,在CANopen 里也通常把CAN-ID称为COB-ID(通信对象编号)。CANopen设备必须向它所支持的通讯对象提供标识符。

图2.5 预定义连接集ID

其中节点号由系统集成商给定,每个CANopen设备都需要分配一个节点号,节点号的范围为1~127(0不允许被使用)。预定义连接集定义了4个接收PDO

(Receive-PDO)、4个发送PDO(Transmit-PDO)、1个SDO(占用2个CAN-ID)、1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也支持不需确认的NMT模块控制服务、同步(SYNC)和时间标志(Time Stamp)对象报文。

2.6 CANopen的标识符分配

ID地址分配表与预定义的主从连接集(SET)相对应,因为所有的对等ID 是不同的,所以实际上只有一个主设备(知道所有连接的节点ID)能和连接的每个从节点(最多127个)以对等方式通讯。两个连接在一起的从节点不能够通讯,因为它们彼此不知道对方的节点ID。

CANopen网络中CAN 标识符(或COB-ID)分配3种不同方法:

l使用预定义的主从连接集。ID是缺省的,不需要配置。如果节点支持,PDO 数据内容也可以配置。

l上电后修改PDO的ID(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。

l使用CAL DBT(参考CAL协议)服务:节点或从节点最初由它们的配置ID 指称。节点ID可以由设备上的拨码开关配置,或使用CAL LMT(参考CAL 协议)服务进行配置。当网络初始化完毕,并且启动后,主节点首先通过“Connect_Remote_Node”报文(是一个CAL NMT服务)和每个连接的从设备建立一个对话。一旦这个对话建立,CAN通讯ID(SDO和PDO)用CAL DBT服务分配好,这需要节点支持扩展的boot-up。

2.7 CANopen的boot-up过程

在网络初始化过程中,CANopen支持扩展的boot-up,也支持最小化boot-up 过程。扩展boot-up是可选的,最小boot-up则必须被每个节点支持。两类节点可以在同一个网络中同时存在。如果使用CAL的DBT服务进行ID分配,则节点必须支持扩展boot-up过程。

可以用节点状态转换图表示这两种初始化过程,如图2.6所示。扩展boot-up 的状态图在预操作和操作状态之间比最小化boot-up多了一些状态。

l图中括号内的字母表示处于不同状态那些通讯对象可以使用。

a. NMT ,

b. Node Guard ,

c. SDO ,

d. Emergency ,

e. PDO ,

f. Boot-up l状态转移(1-5由NMT服务发起),NMT命令字(在括号中):

1:Start_Remote_node (0x01)

2:Stop_Remote_Node (0x02)

3:Enter_Pre-Operational_State (0x80)

4:Reset_Node (0x81)

5:Reset_Communication (0x82)

6:设备初始化结束,自动进入Pre_Operational状态,发送Boot-up消息。

在任何时候NMT服务都可使所有或者部分节点进入不同的工作状态。NMT 服务的CAN报文由CAN头(COB-ID=0)和两字节数据组成;第一个字节表示请求的服务类型(‘NMT command specifier’),第二个字节是节点ID,或者0(此时寻址所有节点)。

仅支持最小化boot-up的设备叫最小能力设备。最小能力设备在设备初始化结束后自动进入预操作l状态。在这个状态,可以通过SDO进行参数配置和进行COB-ID分配。

设备进入准备状态后,除了NMT服务和节点保护服务(如果支持并且激活的话)外,将停止通讯。

2.8 CANopen消息的语法

CANopen消息的语法包括:NMT模块控制、NMT节点保护、NMT boot-up、过程数据对象(PDO)的描述、服务数据对象(SDO)的描述等,具体细节请参考CANopen协议规范,这里不做过多描述。

三总结

CAN总线作为新型成熟的现场总线已经应用到生活生产的各个领域。其中基于CAN总线的CANopen协议,以其独特的优势已经成为行业标准,CANopen 也必将成为现场总线的发展趋势。基于CANopen的典型应用如图所示:

图3.1 CANopen网络的典型组建

基于CAN总线的CANopen网络通讯具有以下特点:

l使用对象字典(OD:Object Dictionary)对设备功能进行标准化的描述;

l使用ASCII文档:电子数据文档(EDS)和设备配置文件(DCF)对设备及其配置进行标准化的描述;

l CANopen网络的数据交换和系统管理基于CAL中CMS服务;

l系统boot-up和节点保护(Node Guarding)的标准基于CAL中NMT服务;l定义了整个系统的同步操作;

l定义了节点特定的应急报文。

为与CANopen通讯协议和相应的设备子协议保持一致,以使制造商的产品能够用于任何CANopen网络,以下3种层次的兼容性要求需要满足(对日益增长的设备兼容性的要求):

l一致性:

设备连接到CANopen网络后不能影响其他设备的通讯:应用层的一致性。

l互用性:

设备能够同网络上的其它节点交换数据:通讯协议的一致性。

l互换性:

设备能够代替另外一个同类设备:设备子协议的一致性。

一个CANopen设备至少应该具有(最小能力设备):

l一个节点ID,

l一个对象字典(内容由设备功能决定),

l一个SDO,能够访问对象字典中必需的对象(只读),

l支持下列NMT从设备服务:

Reset_Node,Enter_Preoperational_State,Start_Remote_Node,Stop_Remote_Node,Reset_Communication,

l缺省的标识符分配。

基于STC89C51的CAN总线点对点通信模块设计

基于STC89C51的CAN总线点对点通信模块设计 [导读]随着人们对总线对总线各方面要求的不断提高,总线上的系统数量越来越多,继而出现电路的复杂性提高、可靠性下降、成本增加等问题。为解决上述问题,文中阐述了基于SJAl000的CAN总线通信模块的实现方法,该方法以PCA82C250作为通信模块的总线收发器,以SITA-l000作为网络控制器。并以STCSTC89C5l单片机来完成基于STC89C5l的CAN通信硬件设计。文章还就平台的初始化、模块的发送和接收进行了设计和分析。通过测试分析证明,该系统可以达到CAN的通信要求,整个系统具有较高的实用性。 0 引言 现场总线是应用在生产最底层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。 1 CAN总线概述 CAN (Controller Area Network)即控制器局域网络,最初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其良好的性能及独特的设计,使CAN总线越来越受到人们的重视。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。目前,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。它的直线通信距离最大可以达到l Mbps/30m.其它的节点数目取决于总线驱动电路,目前可以达到110个。 2 CAN系统硬件设计 图1所示是基于CAN2.0B协议的CAN系统硬件框图,该系统包括电源模块、MCU部分、CAN控制器、光电耦合器、CAN收发器和RS232接口。硬件系统MCU采用STC89C5l,CAN控制器采用SJAl000,CAN收发器采用PCA82C250,光耦隔离采用6N137。

CAN总线多点温度采集节点硬件设计

CAN总线多点温度采集节点硬件设计 【摘要】随着科学技术的发展,温度监控系统的应用越来越广泛,本文阐述了一种基于CAN总线的多点温度采集系统,可以实现温度实时监测,该系统能应用于工农业生产的诸多场合。系统以AT89C52单片机为微处理器,外接数字式温度传感器DS18B20获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上,从而实现对温度的采集。 【关键词】CAN总线;节点;温度采集 0 概述 现场总线是安装在生产制造过程中的装置与控制室内的控制装置之间的一种数字式、串行、多点通信的数据线。应用现场总线技术不仅可以降低系统的布线成本,还具有设计简单、调试方便等优点。同时,由于现场总线本身还提供了灵活且功能强大的协议,这就使得用户对系统配置,设备选型具有强大的自主权,可以任意的将多种功能模块组合起来扩充系统的功能。在众多的现场工业总线中。随着温度控制技术在各个领域得到广泛地推广和应用,相关行业对温度控制技术的要求与日俱增。目前市场上也有一些温度控制系统,但是这些系统在传送数据时实时性能实现的不是很好,而CAN总线的实时性强、成本低,而且还具备可靠性高、抗干扰强等特点。综合多方面因素考虑,我们能够利用CAN总线的特点和优势设计温度控制系统。 1 设计方案 1.1 系统功能要求 系统能够接受数字式温度传感器DS18B20的温度信号,将温度信号传给单片机,完成单片机最小系统设计,并把此系统作为CAN的节点,节点的硬件包括AT89C52单片机、CAN总线驱动器PCA82C250、CAN总线控制器SJA1000、单片机的时钟和复位电路。主要研究基于AT89C52单片机与DS18B20数字温度传感器的多点温度测量系统。完成数字式温度传感器与CAN总线节点的接口设计及电路设计,实现具有数字式串行温度采集功能的CAN总线节点的硬件设计。应用CAN总线控制器SJA1000及其总线收发器的工作原理,完成数字式温度传感器与CAN总线节点的接口设计。 1.2 硬件功能模块 该系统主要由现场数据采集模块和总线发送模块构成。现场数据的采集是以AT89C52单片机为核心控制单元,外接数字传感器DS18B20,从而获得现场环境的温度信号。通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上。CAN节点由微处理器、CAN控制器SJA1000、CAN

CANopen协议讲解

根据DS301的内容进行介绍 1、CAN总线 CAN标准报文

2、CANopen应用层协议 CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。 一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。 一个标准的CANopen 节点 CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。功能码将所有的报文分为7个优先级,按照优先级从高至低依次为: 网络命令报文(NMT) 同步报文(SYNC) 紧急报文(EMERGENCY) 时间戳(TIME)

过程数据对象(PDO) 服务数据对象(SDO) 节点状态报文(NMT Err Control) 7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。 下表给出了各报文的COB-ID 范围。 NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。 SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。 EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与

处理能力的节点会接收并处理紧急报文。

TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。 PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。 SDO 分为发送SDO 和接收SDO,用于读写对象字典。 MT Error Control报文由从节点发出,用以监测从节点的运行状态。 状态机 CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。 初始化时,节点将自动设置自身参数和CANopen 对象字典,发出节点启动报文,并不接收任何网络报文。 初始化完成后,自动进入预运行状态。在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了PDO 以外的所有报文。 运行状态为节点的正常工作状态,接收并发送所有通讯报文。 停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。

CAN总线设计

微机应用课程设计报告 ` 题目:基于单片机的16*16点阵系统设计 专业: … 班级: 姓名: 学号: 地点: 时间: 指导老师:

~

摘要 现场总线是自动化领域的计算机网络,是当今自动化领域技术发展的热点之一。它以总线为纽带,将现场设备连接起来成为一个能够相互交换信息的控制网络,是一种双向串行多节点数字通信的系统。CAN总线也是现场总线的一种,它最初被应用于汽车的控制系统中,由于其卓越的性能,CAN总线的应用范围已不再局限于汽车工业中,而被广泛的用到自动控制、楼宇自动化、医疗设备等各个领域。 本文主要介绍一种基于CAN总线的控制系统,通过对这一系统的制作流程来说明CAN总线的简单应用,文章主要是对本控制系统的三个硬件模块进行介绍及模块中相关芯片的应用,同时本文也对软件的编写进行了说明。 关键字:现场总线; CAN总线;单片机;控制系统

目录 1 绪论 (1) CAN总线的简单介绍 (1) CAN总线的优势 (1) 网络各节点之间的数据通信实时性强 (2) 缩短了开发周期 (2) 已形成国际标准的现场总线 (2) 最有前途的现场总线之一 (2) 2 硬件电路设计 (3) 单片机模块 (3) STC89C52主要特性如下: (4) STC89C52RC单片机的工作模式 (5) CAN总线控制器模块 (6) SJA1000简介 (6) PCA82C250简介 (9) 通信模块和外围接口 (11) 通信模块 (11) 外围接口 (12) 3 CAN总线控制系统软件设计 (13) 初始化程序 (13) 数据的接收和发送功能 (15) 发送数据 (15) 接收数据 (17) 4 总结 (19) 参考文献 (20) 附录一 (21)

基于组态的CAN总线温度控制系统设计 2

基于组态的CAN总线温度控制系统设计 2

基于组态的CAN总线温度控制系统设计 院系:电气信息工程学院 专业:自动化11-01 姓名:黄俊龙 学号:541101010115

目录 1概述 0 1.1 .............................. 温度控制的发展状况 1.2 .............................. 温度控制完成的功能 2 2方案设计 (3) 2.1 ............................... i CAN-6202模块简介 3 2.2 .......................................... 热电偶 5 2.3 .................................. iCAN-2404模块 8 2.4 ...................................... CAN接口卡 11 3CAN总线技术基础与温度控制系统的基本原理 (13) 4基于MCGS的HMI设计 (17) 4.1 ........................................ 人机界面 17 4.2 .................... 人机界面产品的组成及工作原理 17 4.3 .............................. 人机界面产品的特点

18 5人机界面设计 (19) 6心得体会 (21) 7参考文献 (22)

基于组态的CAN总线温度控制系统设计 1概述 温度是日常生活中无时不在的物理量,温度的控制在各个领域都有积极的意义。很多行业中都有大量的用电加热设备,如用于加热的电烤箱,用于融化金属的坩埚电阻炉及各种不同用途的温度箱等,采用单片机对它们进行控制步进具有控制方便、简单、灵活性大的特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量。因此,智能化温度控制技术正被广泛地采用。 本温度设计以CAN总线为基础,采用iCAN模块采集和控制信号。iCAN模块集成了转换电路、单片机、CAN控制器、CAN接发器等,其中转换电路包括I/V(V/I)电路,ADC(DAC)。CAN模块的采用,大大地使接线简单化。 1.1温度控制的发展状况 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。 温度是科学技术中最基本的物理量之一,物理、化学、生物等学

基于CAN总线的温度控制系统

基于CAN总线的温度控制系统 前言 CAN (Controller Area Network) 总线又称控制器局域网是Bosch 公司, 在现代汽车技术中领先推出的一种多主机局部网由于其卓越的性能极高的可靠性独特灵活的设计和低廉的价格现,已广泛应用于工业现场控制智能大厦小区安防交通工具医疗仪器环境监控等众多领域CAN, 已被公认为几种最有前途的现场总线之一CAN。总线规范已被ISO 国际标准组织制订为国际标准,CAN 协议也是建立在国际标准组织的开放系统互连参考模型基础上的,主要工作在数据链路层和物理层。用户可在其基础上开发适合系统实际需要的应用层通信协议,但由于CAN 总线极高的可靠性从而使应用层通信协议得以大大简化。CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。 控制器局域网CAN是目前为止被批准为国际标准的少数现场总线之一。CAN 网络可以采用多主方式工作。它采用非破坏性的总线仲裁技术,其控制和信号传输采用短帧结构,因而具有低耦合性和较强的抗干扰能力。它的传输介质可以是双绞线、同轴光纤或电缆,选择十分灵活;每帧信息都有CRC校验及其它检错措施,因此数据出错率极低,可靠性较高;当其传输的信息出错严重时,节点可以自动断开与总线的联系,以使其总线上其它的操作不受影响。 虽然目前USB、PCI等总线技术得到了快速发展,但是在大量应用的测试微机及工控机中,用的最多的还是ISA总线。ISA总线具有16位数据宽度,其最高工作频率为8MHz,数据传输速率可达到16MB/s,地址总线有24条,可寻址16MB 的地址单元,其总线信号分为5类,分别为数据线、控制线、地址线、电源线和时 钟线。 控制器局域网CAN属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是德国博世公司在20世纪80年代专门为汽车行业

CAN总线的浅析CANopen协议

CAN总线的浅析CANopen协议 作者:IC 文章来源:本站原创点击数:288 更新时间:2005-5-23 通过采用高层协议将CAN的应用推向深化,和其他的现场总线相比,CAN只定义了物理层和数据链路层的规范(遵循OSI标准),这种设计和CAN规范定义时的历史条件有关,也可以使CAN能够更广泛地适应不同的应用条件,但必然给用户应用带来一些不便。用户在应用CAN协议时,必须自行定义高层协议。 如何将CAN协议的应用推向更深的层次,同时满足产品的兼容和互操作性?国际上通行的办法是发展基于CAN的高层应用协议,只用在应用层上,不同公司的产品才可能实现互操作,好的应用层协议更可以为用户带来系统性能的飞跃。 在CAN总线协议飞速发展的20年中,很多领域都制定了CAN在该领域应用时所采用的高层协议规范。其中,比较著名的有美国汽车工程师协会(SAE)制定的车内通信规范J1939等。这些协议和规范对CAN的推广起了很大的作用,但总体来说,协议的模块化特性都不太好,一般只能应用于特定的领域。为了能够把CAN推广到更多的领域,欧洲一些公司推出了CAL(应用层CAN)协议,尽管CAL在理论上正确,并在工业上可以投入应用,但每个用户都必须设计一个新的子协议,因为CAL 是一个真正的应用层协议。CAL 可以被看作一个应用CAN 方案的必要理论步骤,但在这一领域它不会被推广。从1993 年起,由Bosch公司领导的一个欧洲机构研究出一个协议原型,由此发展成为CANopen规范。 CANopen是一个基于CAL的子协议,采用面向对象的思想设计,具有很好的模块化特性和很高的适应性,通过扩展可以适用于大量的应用领域。在CANopen规范基本完成之后,Bosch将其移交给CIA组织,由其进行维护与发展。在1995年,CIA发表了完整版的CANopen通信子协议;仅仅用了5年的时间,它已成为全欧洲最重要的嵌入式网络标准。 CANopen 不仅定义了应用层和通信子协议,而且为可编程系统、不同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出的CANopen设备将能够实现不同公司产品间的互操作。另外,CANopen 协议是免许可证的,任何组织和个人都可以开发支持CANopen协议的设备而不用支付版税,这也是CANopen得到迅猛发展的重要原因之一。CANopen目前已在汽车工业控制系统,公共交通运输系统,医疗设备,海运电子设备和建筑自动化系统中取得了广泛的应用,是将CAN应用推向深化的理想选择。 采用CANopen协议 实现通信 CANopen协议中包含了标准的应用层规范和通信规范,其通信模型如图1所示。在CANopen的应用层,设备间通过相互交换通信对象进行通信。良好的分层和面向对象的设计思想将带给用户一个清晰的通信模型。 CANopen设备模型 一个CANopen设备模块可以被分为3部分,如图2所示。 通信接口和协议软件提供在总线上收发通信对象的服务。不同CANopen设备间的通信都是通过交换通信对象完成的。这一部分直接面向CAN控制器进行操作。 对象字典描述了设备使用的所有的数据类型,通信对象和应用对象。是一个CANopen设备的核心部分。对象字典位于通信程序和应用程序之间,向应用程序提供接口,应用程序对对象字典进行操作就可以实现CANopen通信。理解对象字典的概念是理解CANopen模型的关键。 应用程序由用户编写,包括功能部分和通信部分。通信部分通过对对象字典进行操作实现CANopen通信,而功能部分由用户根据应用要求实现。 CANopen网络的通信和管理都是通过不同的通信对象来完成的,为了能够实现通信,网络管理,紧急情况处理等功能,CANopen规范定义了四类标准的通信对象:

CAN总线网络设计

1 引言 can(controller area network)即控制器局域网络,最初是由德国bosch公司为解决汽车监控系统中的自动化系统集成而设计的数字信号通信协议,属于总线式串行通信网络。由于can总线自身的特点,其应用领域由汽车行业扩展到过程控制、机械制造、机器人和楼宇自动化等领域,被公认为最有发展前景的现场总线之一。 can总线系统网络拓扑结构采用总线式结构,其结构简单、成本低,并且采用无源抽头连接,系统可靠性高。本设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等持点。 2 系统总体方案设计 整个can网络由上位机(上位机也是网络节点)和各网络节点组成(见图1)。上位机采用工控机或通用计算机,它不仅可以使用普通pc机的丰富软件,而且采用了许多保护措施,保证了安全可靠的运行,工控机特别适合于工业控制环境恶劣条件下的使用。上位机通过can总线适配卡与各网络节点进行信息交换,负责对整个系统进行监控和给下位机发送各种操作控制命令和设定参数。 网络节点由传感器接口、下位机、can控制器和can收发器组成,通过can收发器与总线相连,接收上位机的设置和命令。传感器接口把采集到的现场信号经过网络节点处理后,由can收发器经由can总线与上位机进行数据交换,上位机对传感器检测到的现场信号做进一步分析、处理或存储,完成系统的在线检测,计算机分析与控制。本设计can总线传输介质采用双绞线。 图 1 can总线网络系统结构 3 can总线智能网络节点硬件设计 本文给出以arm7tdmi内核philips公司的lpc2119芯片作为核心构成的智能节点电路设计。该智能节点的电路原理图如图2所示。该智能节点的设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等特点,下面分别对电路的各部分做进一步

基于CAN总线的温度监测系统

摘要 控制器局部网(CAN—C0NTROLLER AREA NET的RK)是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。其总线规范已成为国际标准,被公认为几种最有前途的总线之一。本文综述了CAN总线产生和发过程,概括了CAN总线优于其它现场总线的特点,结合生产中温度监控的实际需求,提出了将CAN总线应用于生产实践的设想。给出了基于CAN总线的温度监控系统的设计方案,设计了一种基于CAN总线的智能楼宇温度测控系统。以STC89C52RD单片机为核心,利用CAN总线技术和数字温度传感器DS18B20,组建了智能楼宇温度测控系统的节点及网络架构,给出了系统总体结构和关键的软件流程。测试结果表明,房间温度控制能满足设计要求,具有结构简洁、节能、实时性好及可靠性高等优点。 关键词:现场总线,温度传感器,节点,网络架构 I

A CAN network based temperature monitoring system ABSTRACT Controller area network (CAN-C0NTROLLER AREA NET's RK) is a BOSCH company is the leading modern automotive applications, launched a multi-host the local network, because of its superior performance has been widely used in industrial automation, variety of control equipment, transport, medical equipment and construction, environmental control and many other sectors. The bus specification has become the international standard, recognized as some of the most promising of the bus. This paper reviews the production and development process of CAN bus, CAN bus, summarizes the characteristics superior to other field bus, temperature monitoring with the production of the actual demand, put forward a CAN bus used in the production practice of the idea. CAN bus is presented based on temperature monitoring system design, design of a CAN bus based temperature measurement and control system of intelligent buildings. The STC89C52RD microcontroller as the core, the use of CAN bus technology and the digital temperature sensor DS18B20, set up a temperature measurement and control system intelligent building node and network architecture, gives the overall system architecture and key software processes. The results show that the room temperature control to meet the design requirements, with a simple structure, energy, real good, and reliability. Keywords: field bus, temperature sensors, nodes, network architecture II

课程设计--CAN总线

课程设计 题目 CAN通信 二级学院电子信息与自动化 专业自动化 班级 107070103 学生姓名学号 指导教师熊文 考核项目 设计50分平时 成绩 20分 答辩30分 设计质量 20分 创新设计 15分 报告质量 15分 熟练程度 20分 个人素质 10分 得分 总分考核等级教师签名

摘要: CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简称。属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独立的设计而被广泛应用于工业现场控制系统中。SJAl000是一个独立的CAN控制器,PCA82C200的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊断和维护方面,因此,SJAl000将会替代PCA82C200。SJAl000支持直接连接到两个著名的微型控制器系列80C51和68xx。下面以单片机AT89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CAN通信软件的基本设计方法。 关键词:AT89S52 CAN通信 SJA1000

目录: (一) 背景: (二) CAN介绍 (三) SJA1000内部结构和功能简介 (四) 硬件电路图 (五) 初始化程序 (六) 测试 (七) 总结

一背景: CAN(Controller Area Network)数据总线是一种极适于汽车环境的汽车局域网。CAN总线是德国Bosch公司为解决汽车监控系统中的 复杂技术难题而设计的数字信号通信协议,它属于总线式串行通信网 络。由于采用了许多新技术和独特的设计思想,与同类车载网络相比,CAN总线在数据传输方面具有可靠、实时和灵活的优点。 1991年9月Philips半导体公司制定并发布了CAN技术规范(版本 2.0),该技术规范包括A部分和B两部分,其中2.0A给出了CAN报文的标 准格式;2.0B给出了标准和扩展两种格式。此后,1993年11月ISO正 式颁布了道路交通运输工具一数据信息交换一高速通信控制器局域 网(CAN)的国际标准IS011898,为控制器局域网的标准化和规范化铺 平了道路。 二CAN介绍 CAN通信的特点: (1) CAN是到目前为止唯一具有国际标准且成本较低的现场总线; (2) CAN废除了传统总线的站地址编码,对通信数据块进行编码,为 多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可 使不同的节点同时接收到相同的数据,无需站地址等节点信息。 (3) CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信 息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可 不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其 是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可

基于CAN总线的温度监测系统毕业设计

基于CAN总线的温度监测系统 摘要 控制器局部网(CAN—C0NTROLLER AREA NET的RK)是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。其总线规范已成为国际标准,被公认为几种最有前途的总线之一。本文综述了CAN总线产生和发过程,概括了CAN总线优于其它现场总线的特点,结合生产中温度监控的实际需求,提出了将CAN总线应用于生产实践的设想。给出了基于CAN总线的温度监控系统的设计方案,设计了一种基于CAN总线的智能楼宇温度测控系统。以STC89C52RD单片机为核心,利用CAN总线技术和数字温度传感器DS18B20,组建了智能楼宇温度测控系统的节点及网络架构,给出了系统总体结构和关键的软件流程。测试结果表明,房间温度控制能满足设计要求,具有结构简洁、节能、实时性好及可靠性高等优点。 关键词:现场总线,温度传感器,节点,网络架构 I

A CAN network based temperature monitoring system ABSTRACT Controller area network (CAN-C0NTROLLER AREA NET's RK) is a BOSCH company is the leading modern automotive applications, launched a multi-host the local network, because of its superior performance has been widely used in industrial automation, variety of control equipment, transport, medical equipment and construction, environmental control and many other sectors. The bus specification has become the international standard, recognized as some of the most promising of the bus. This paper reviews the production and development process of CAN bus, CAN bus, summarizes the characteristics superior to other field bus, temperature monitoring with the production of the actual demand, put forward a CAN bus used in the production practice of the idea. CAN bus is presented based on temperature monitoring system design, design of a CAN bus based temperature measurement and control system of intelligent buildings. The STC89C52RD microcontroller as the core, the use of CAN bus technology and the digital temperature sensor DS18B20, set up a temperature measurement and control system intelligent building node and network architecture, gives the overall system architecture and key software processes. The results show that the room temperature control to meet the design requirements, with a simple structure, energy, real good, and reliability. Keywords: field bus, temperature sensors, nodes, network architecture II

CAN总线与CANopen协议

CAN总线与CANOpen协议 一CAN总线简介 1.1 引言 在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。 图1.1 早期的ECU(汽车电子控制单元)通信 CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用

层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。 图1.2 基于总线(CAN)的ECU通信 1.2 CAN总线的特点 CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。 其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点: (1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线; (2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134μs; (3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空

CAN总线设计(最终版)(1)

CAN-USB适配器设计 ***** 指导老师:*** 学院名称:***** 专业班级:**** 设计提交日期:**年**月 摘要 随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案。USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。本文介绍了一种基于新型USB接口芯片CH372的CAN总线网络适配器系统的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接

的方案。利用芯片CH372可在不了解任何USB协议或固件程序甚至驱动程序的情况下,轻松地将并口或串口产品升级到USB接口。该系统在工业现场较之以往的系统,可以更加灵活,高速,高效地完成大量数据交换,并可应用于多种控制系统之中,具有很大的应用价值。 关键词:USB;CH372;CAN;SJA100;适配器 目录 1.设计思想 (3) 2.CAN总线与USB的转换概述 (4) 3. 适配器硬件接口设计 (5) 3.1 USB接口电路 (5)

3.2 CAN总线接口电路 (7) 4.USB通用设备接口芯片CH372 (8) 4.1 概述 (8) 4.2 引脚功能说明 (9) 4.3 内部结构 (9) 4.4 命令 (10) 5.软件设计 (10) 5.1 概述 (10) 5.2主监控程序设计 (12) 5.3 CAN和USB接口芯片的初始化 (13) 5.4 CAN报文的发送 (15) 5.5 CAN报文的接收 (17) 5.6.自检过程 (19) 5.7 USB下传子程序设计 (20) 5.8 USB上传子程序设计 (22) 5.9.USB—CAN转换器计算机端软件设计 (23) 6. 抗干扰措施 (25) 7. 估算成本 (26) 8. 应用实例介绍 (27) 9 总结及设计心得 (28) 10 参考文献 (28) 1 设计思想 现场总线网络技术的实现需要与计算机相结合。目前,在微机上扩展CAN总线接口设备一般采用PCI总线或者RS-232总线。PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、扩展槽地址;中断资源有限;并且插拔不方便;价格较贵;而且设计复杂、需有高质量的驱动程序保证系统的稳定;且无法用于便携式计算机的扩

基于CAN总线的多点温度采集系统设计

【摘要】随着科学技术的发展,为提供农作物生长的最佳环境,大棚种植也成为现代农业种植中必要可行的一种方式。在温室大棚中的温度实时监测与控制却成为为一个难题。因此基于CAN总线的主要优点,再从CAN总线的可靠性,它的优越性以及低成本出发,采用基于CAN总线多点温度采集系统的设计,该系统采用非破坏性总线仲裁技术具有实时性高,精度高,灵活性强能够及时信息的测控。 本课题是采用一种基于CAN总线的多点温度采集系统。论文根据系统的要求完成了整体的方案设计和系统选型。该方案是利用温度传感器PT100将温室大棚内温度的变化,经放大电路送入含A/D转换器的单片机的采集模块完成A/D转换,在通过CAN收发器将信号传至住监视器。再经过液晶显示器进行数据显示。CAN总线通信模块是本次设计中的核心技术,它负责系统中主控器和执行器之间的数据通信。 经过试验验证表明该系统可靠性好、精度高、结果简单、成本低在使用范围可代替传统的测温系统的不足。 【关键词】CAN总线微控制器传感器Pt100 液晶显示器。

Design of multi-spot temperature gathering system based on CAN bus 【Abstract】With the development of science and technology, to provide the best environment for crop growth, greenhouse cultivation has become an essential of modern farming viable way. The temperature in greenhouse real-time monitoring and control has become a problem. Therefore, the main advantages based on CAN bus, CAN bus, and from the reliability, technological superiority of the system operation and low cost starting point based on CAN bus multi-temperature collection system design, system technology using non-destructive real-time bus arbitration high, high precision, flexibility and timely information to the monitoring and control. This issue is based on CAN bus using a multi-point temperature acquisition system. System requirements thesis completed under the overall program design and system selection. The program is the use of the greenhouse temperature sensor PT100 temperature changes, the amplifier circuit into with A / D converter module to complete the acquisition of SCM A / D converter, CAN transceiver through the signal transmitted live monitor. Data for another LCD display. CAN bus communication module is the core of this design technique, which is responsible for the system and implementation of master data communication between devices. Tested to verify that the system reliability, high accuracy, the results of simple, low cost alternative to the use of conventional temperature measurement system deficiencies. 【Keywords】The can bus MCU sensor Pt100 LCD monitors。

CANopen协议

一、CANOpen总线结构 广播命令 二、通信类型 CANOpen有三种通信方式: 主/从通信方式 服务器/客户端通信方式 生产商/顾客通信方式 2.1主/从通信方式(NMT) 对某一特点功能而言,一个网络中只有一个主机,其他全为从机。由主机发送请求信号,从机发送相应信号(如果需要) 主机发出命令,从机作出响应,但不回送数据

主机发出命令,从机作出响应,同时回送数据确认 2.2服务器/客户端通信方式(SDO) 这种关系指发生在一个服务器和一个客户端之间,客户端发送命令,服务器执行后,回答客户端 2.3生产商/顾客通信方式(SYNC、Time Stamp、EMCY) 这种通信方式有Push和pull两种模式,网络中在这一个生产厂,0或多个顾客。 2.3.1push模式 厂商发送命令,顾客执行,不需回送数据 2.3.2 pull模式 厂商发送命令,顾客执行,回送证实数据

三PDO传送模式 PDO分为TPDO(发送PDO)与RPDO(接收PDO)两种,PDO的传送模式有两种:同步传送与异步传送。同步传送又分为周期传送与非周期传送 3.1同步传送 由某一个同步应用在网路上周期性的发送同步对象,及发送SYNC帧,该同步应用可以是主机也可以是从机

PDO通信参数中的传输类型说明传送模式与触发方式, TPDO:传送类型同时说明其传送率,以基本传送周期的倍数表示。 传送类型为0时,表示当某事件发生后,收到一个同步对象帧(SYNC)时,立刻进行数据传输。(非周期传送) 传送类型为1时,表示当每收到一次同步对象帧(SYNC)时,传送一次数据。(周期传送) 传送类型为n时,表示当每收到n次同步对象帧(SYNC)时,传送一次数据。(周期传送) RPDO:接收是在收到SYNC信号后,运行接收,独立于传输参数定义的传送率。 传输类型 252 为非周期传输,在接收到同步对象后进行采样但不发送,在接收到请求该数据的远程帧后发送。 3.2异步传送 TPDO: 异步传送与SYNC无关, 传输类型 253-255 为异步传输,定义为此三种类型的 TPDO在接收到远程帧或规定的事件发生后进行传输。 3.3触发模式: 触发方式有三种 3.3.1事件触发方式 对于周期性传送,接收到的SYNC报文达到设定数量,相当于出发事件,引起一次发送。 对于非周期性传送由设备子协议设定的事件触发发送 3.3.2定时器触发 当设定的时间达到后,触发一次发送 3.3.3远程帧触发 在收到其他设备发送的远程帧后,启动一次异步传送 3.4PDO协议 PDO的通信模式相当于厂商/顾客的通信模式,包含如下参数: PDO数量:1~512, 用户类型:厂商/顾客 数据类型:由PDO映射确定 禁止时间:n*100ns 索引20h描述PDO的通信参数,索引21描述PDO的映射参数 3.4.1写PDO 使用厂商/顾客模式的PUSH形式,厂商主动发送PDO 3.4.2读PDO 使用厂商/顾客模式的PULL形式,某一顾客发送远程帧,传送发送PDO,这是可选模式,所有的PDO都可以接收,。这种模式若PDO发送的数据量L大于PDO映射定义的数据量n,取前那个数据,若PDO发送的数据量L小于PDO映射定义的数据量n,若顾客支持Emergency报文,发送Emergency报文,错误代码为8210 四SDO传送模式 SDO以段的形式发送,首先发送的是初始化阶段的段,以加速传送方式传送,包含4个以内字节的数据,索引为22h的对象字典描述SDO通信参数。相应的对象字典的条目通过下式计算:

相关主题