canopen物理层是5类双绞线属于物理层吗

总述/CANopen
  CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在中使用,也是工业控制常用到的一种。
  CANopen 实作了模型中的以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的。 CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的,可处理资料的分段传送及其组合。一般而言资料链结层及实体层会用CAN来实作。除了 CANopen 外,也有其他的通讯协定(如)实作 CANopen 的设备子协定。
  CANopen由非营利组织CiA(CAN in Automaion)进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301. 中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。
设备模型/CANopen
  以下是所有 CANopen 设备都要具备的功能:
  通讯单元 处理和网络上其他模组通讯所需要的通讯协定。 设备的启动及重置由状态机 (state machine)控制。状态机需包括以下的几个状态:Initialization, Pre-operational, Operational 及 Stopped。当接收到网络管理 (NMT) 通讯对象,状态机会转换到对应的状态。 对象字典 (Object Dictionary) 是一个有 16 位元索引 (Index) 的变量阵列。每个变量可以(但非必须)有 8 位元的子索引 (Subindex)。变量可用来调整设备的组态,也可以对应设备量测的资料或设备的输出。 当状态机设定为 operational 之后,设备的应用 (application) 部份就会实现设备预期的机能。此部份可以由对象字典中的变量调整其设定,而资料由通讯层传收或接收。对象字典  CANopen 设备都需要具备对象字典,用来设定设备组态及进行非即时的通讯。对象字典的entry 定义如下:
  索引 (Index):对象 16 位元的位址。 对象名称 (Object name):一个代表对象的 symbolic type,可以是阵列、纪录或只是一个变量。 名称 (Name):描述此 entry 的字串。 形态 (Type):变量的资料形态。 属性 (Attribute):提供此 entry 是否可读/可写的资料,有下列四种:可读/写、只读、唯写、只读常数。 必须 (Mandatory)/可选 (Optional)字段定义属于特定设备规范下的设备,是否必须实现某些对象。 在 CANopen 标准中定义了对象字典中的基本资料型态,包括逻辑值、整数及浮点数。也定义了复合对象:如阵列、记录及字串。复合对象用一个 8 位元的数值作为其子索引(subindex)。记录或阵列中子索引 0 的位置记录此的元素个数,资料型态为 UNSIGNED8。
  例如在 CiA301 标准中,设备通讯的参数放在 0x1000 - 0x1FFF (通讯行规区)。此区域的前几项如下:
  索引对象名称名称形态属性M/O0x1000VARdevice typeUNSIGNED32只读M0x1001VARerror registerUNSIGNED8只读M...​​​​​0x1008VARmanufacturer device nameVis-String常数O...​​​​​ 若配合适当的工具,可以用编辑电子资料表(electronic data sheet, EDS)档案的方式规划一个设备,并且将变量的数值上传到设备中。EDS 档案的格式通常会是INI档。
通讯/CANopen
通讯对象  CANopen 的物理层 CANbus 每次传送的资料量不大,其中包括 11 位元的 ID、远端传输请求(RTR)位元及大小不超过8位元的资料。CANopen 将 CANbus 11 位元的 ID 分为 4 位元的功能码及 7 位元的 CANopen 节点 ID。7 位元的 ID 共有 128 种不同的组合,其中 ID 0 不使用,因此一个 CANopen 网络上最多允许 127 台设备。CANbus 在 CAN 2.0 B 规格中允许 29 位元的 ID,因此若配合 CAN 2.0 B 使用,CANopen 网络上可以超过127 台设备,不过在实际运用中,大多数的 CANopen 网络上设备数量均低于此数值。
  CANopen 将 CANbus 的 11 位元 ID 称为通讯对象 ID (COB-ID)。当传输资料出现碰撞时,CANbus 的仲裁机制会使 COB-ID 最小的讯息继续传送,不用等待或重传。COB-ID 的前 4 个位元是 CANopen 的功能码,因此数值小的功能码表示对应的功能重要,允许的延迟时间较短。
  以下是一个标准的 CANopen 页框:
  功能码节点 IDRTR资料长度资料长度4 位元7 位元1 位元4 位元0-8 字节 在 CANopen 标准中,部份 COB-ID 被保留作网络管理及 SDO 通讯用。而在设备初始化后,有些功能码和 COB-ID 会对映到标准的功能,不过后续仍可以规划为其他用途。通讯模型  CANopen 设备间的通讯可分为以下三种通讯模型。
  在 master/slave 模型中,一个 CANopen 设备为 master,负责传送或接收其他设备(称为 slave)的资料。NMT 协定就使用了 master/slave 模型。 主从(client/server)模型定义在 SDO 协定中,SDO client 将对象字典的索引及子索引传送给 SDO server,因此会产生一个或数个需求资料(对象字典中,索引及子索引对应的内容)的 SDO 封包。 生产者/消费者(producer/consumer)模型用在 Heartbeat and Node Guarding 协定。由一个生产者送出资料给消息者,同一个生产者的资料可能给一个以上的消息者。又可分为二种: push-model:生产者会自动送出资料给消费者。 pull-model:消费者需送出请求讯息,生产者才会送出资料。
协定/CANopen
  NMT 协定NMT(网络管理, Network management)协定会定义(设备内部)状态机的状态变更命令(如启动设备或停止设备)、侦测远端设备 bootup及故障情形。
  NMT master 使用的模组控制协定可变更设备的状态。其 COB-ID 为 0,其功能码及节点 ID 均为 0,因此网络上的所有节点均会处理这个讯息。在此讯息的资料部份会有此讯息实际针对节点的ID,此 ID 也可为 0,表示所有节点都要变更为指定的状态。
  心跳协定(Heartbeat protocol)是用来监控网络中的节点及确认其正常工作。心跳讯息的生产者(一般是 slave 设备)周期性的送出功能码 1110、ID 为本身节点 ID 的讯息,讯息的资料部份有一个表示节点状态的位元。而心跳讯息的消费者负责接收上述资料,若在指定时间(于设备的对象字典中定义)内,消费者均未收到讯息,可采取相关行动(例如显示错误或重置该设备)。
  其格式为:
  COBID + DATA(status of node) CANopen 设备需要在 bootup 时自动从 Initializing 状态切换至 Pre-operational 状态,设备会在切换完成后送出一个心跳讯息,这就是心跳协定。
  有一种 pull model 的 NMT 协定,称作节点监控(Node guarding)协定,也可以作从机的监控。服务资料对象 (SDO) 协定  服务资料对象(SDO)可用来存取远端节点的对象字典,读取或设定其中的资料。提供对象字典的节点称为SDO server,存取对象字典的节点称为SDO client。SDO 通讯一定由SDO client 开始,并提供初始化相关的参数。
  在CANopen的术语中,上传是指由 SDO server 中读取资料,而下载是指设定 SDO server 的资料。进程数据对象 (PDO) 协定  进程数据对象 (PDO) 协定可用来在许多节点之间交换即时的资料。可透过一个 PDO ,传送最多 8 字节(64位元)资料给一设备,或由一设备接收最多 8 字节(64位元)的资料。一个 PDO 可以由对象字典中几个不同索引的资料组成,规划方式则是透过对象字典中对应 PDO mapping 及 PDO 参数的索引。
  PDO 分为两种:传送用的 TPDO 及接收用的 RPDO。一个节点的 TPDO 是将资料由此节点传输到其他节点,而 RPDO 则是接收由其他节点传输的资料。一个节点分别有 4 个 TPDO 及 4 个 RPDO 。
  PDO 可以用同步或异步的方式传送:同步的 PDO 是由 SYNC 讯息触发,而异步的 PDO 是由节点内部的条件或其他外部条件触发。例如若一个节点规划为允许接受其他节点产生的 TPDO 请求,则可以由其他节点送出一个没有资料但有设定 RTR 位元的 TPDO(TPDO 请求),使该节点送出需求的资料。 
  借由 RPDO 也可以使两种设备同时启动。
  CANopen 专有名词
  PDO 程序资料对象 - 对应实际物理量的输入及输出。资料的单位可能是 RPM, V, Hz, mAmp...。
  SDO 服务资料对象 - 一般来说是组态设定的资料,如节点位置、节点ID、通讯速度、位移、增益等。……
  COB-ID - CAN 对象编号
  CAN ID - CAN Identifier. 是在每个 CAN 讯息前面的讯息识别码,共 11 位元。
  EDS - 电子资料档(Electronic data sheet)是 INI 格式的档案。
  DCF - 设备案(Device configuration file),是加强版的 EDS,可以设定节点 ID 及通讯速度。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:4次
参与编辑人数:4位
最近更新时间: 15:00:00
申请可获得以下专属权利:
贡献光荣榜 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
CANOPEN协议详解
下载积分:1000
内容提示:CANOPEN协议详解
文档格式:DOCX|
浏览次数:46|
上传日期: 20:13:12|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
阅读此文档的用户还读了
CANOPEN协议详解
官方公共微信&&&&&&&&&&&&&
原文出处:
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。这个暑假,通过参加苏州社会实践,去某船舶电气公司实习几周,也借此机会,学习了一下CAN总线。
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。
想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)
CAN有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。
近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。
一个典型的CAN应用场景:
CAN总线标准
CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。
CAN收发器负责逻辑电平和物理信号之间的转换。
将逻辑信号转换成物理信号(差分电平),或者将物理信号转换成逻辑电平。
CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。
高低电平幅度低,对应的传输速度快;
*双绞线共模消除干扰,是因为电平同时变化,电压差不变。
CAN有三种接口器件
多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。所谓"线与"。
CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。从而消除累积误差。
和485、232一样,CAN的传输速度与距离成反比。
CAN总线,终端电阻的接法:
为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线
数据链路层
CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。
数据帧用来节点之间收发数据,是使用最多的帧类型;远程帧用来接收节点向发送节点接收数据;错误帧是某节点发现帧错误时用来向其他节点通知的帧;过载帧是接收节点用来向发送节点告知自身接收能力的帧;用于将数据帧、远程帧与前面帧隔离的帧。
数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)
帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;
帧结束由7个隐形位(高电平)组成。
CAN总线是如何解决多点竞争的问题?
由仲裁段给出答案。
CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。
帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。
共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成。
为0-8字节,短帧结构,实时性好,适合汽车和工控领域;
CRC校验段由15位CRC值和CRC界定符组成。
当接收节点接收到的帧起始到CRC段都没错误时,它将在ACK段发送一个显性电平,发送节点发送隐性电平,线与结果为显性电平。
远程帧分为6个段,也分为标准帧和扩展帧,且RTR位为1(隐性电平)
CAN是可靠性很高的总线,但是它也有五种错误。
CRC错误:发送与接收的CRC值不同发生该错误;
格式错误:帧格式不合法发生该错误;
应答错误:发送节点在ACK阶段没有收到应答信息发生该错误;
位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误;
位填充错误:通信线缆上违反通信规则时发生该错误。
当发生这五种错误之一时,发送节点或接受节点将发送错误帧
为防止某些节点自身出错而一直发送错误帧,干扰其他节点通信,CAN协议规定了节点的3种状态及行为
当某节点没有做好接收的"准备"时,将发送过载帧,以通知发送节点。
用来隔离数据帧、远程帧与他们前面的帧,错误帧和过载帧前面不加帧间隔。
//好好理解1.6最后一张ppt
构建CAN节点
构建节点,实现相应控制,由底向上分为四个部分:CAN节点电路、CAN控制器驱动、CAN应用层协议、CAN节点应用程序。
虽然不同节点完成的功能不同,但是都有相同的硬件和软件结构。
CAN收发器和控制器分别对应CAN的物理层和数据链路层,完成CAN报文的收发;功能电路,完成特定的功能,如信号采集或控制外设等;主控制器与应用软件按照CAN报文格式解析报文,完成相应控制。
CAN硬件驱动是运行在主控制器(如P89V51)上的程序,它主要完成以下工作:基于寄存器的操作,初始化CAN控制器、发送CAN报文、接收CAN报文;
如果直接使用CAN硬件驱动,当更换控制器时,需要修改上层应用程序,移植性差。在应用层和硬件驱动层加入虚拟驱动层,能够屏蔽不同CAN控制器的差异。
一个CAN节点除了完成通信的功能,还包括一些特定的硬件功能电路,功能电路驱动向下直接控制功能电路,向上为应用层提供控制功能电路函数接口。特定功能包括信号采集、人机显示等。
CAN收发器是实现CAN控制器逻辑电平与CAN总线上差分电平的互换。实现CAN收发器的方案有两种,一是使用CAN收发IC(需要加电源隔离和电气隔离),另一种是使用CAN隔离收发模块。推荐使用第二种。
CAN控制器是CAN的核心元件,它实现了CAN协议中数据链路层的全部功能,能够自动完成CAN协议的解析。CAN控制器一般有两种,一种是控制器IC(SJA1000),另一种是集成CAN控制器的MCU(LPC11C00)。
MCU负责实现对功能电路和CAN控制器的控制:在节点启动时,初始化CAN控制器参数;通过CAN控制器读取和发送CAN帧;在CAN控制器发生中断时,处理CAN控制器的中断异常;根据接收到的数据输出控制信号;
接口管理逻辑:解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。
发送缓冲区和接收缓冲区能够存储CAN总线网络上的完整信息。
验收滤波是将存储的验证码与CAN报文识别码进行比较,跟验证码匹配的CAN帧才会存储到接收缓冲区。
CAN内核实现了数据链路的全部协议。
CAN协议应用层概述
CAN总线只提供可靠的传输服务,所以节点接收报文时,要通过应用层协议来判断是谁发来的数据、数据代表了什么含义。常见的CAN应用层协议有: CANOpen、DeviceNet、J1939、iCAN等。
CAN应用层协议驱动是运行在主控制器(如P89V51)上的程序,它按照应用层协议来对CAN报文进行定义、完成CAN报文的解析与拼装。例如,我们将帧ID用来表示节点地址,当接收到的帧ID与自身节点ID不通过时,就直接丢弃,否则交给上层处理;发送时,将帧ID设置为接收节点的地址。
SJA1000的输出模式有很多,使用最多的是正常输出模式,输入模式通常不选择比较器模式,可以增大通信距离,并且减少休眠下的电流。
收发器按照通信速度分为高速CAN收发器和容错CAN收发器。
同一网络中要使用相同的CAN收发器。
CAN连接线上会有很多干扰信号,需要在硬件上添加滤波器和抗干扰电路
也可以使用CAN隔离收发器(集成滤波器和抗干扰电路)。
CAN控制器与MCU的连接方式
SJA1000可被视为外扩RAM,地址宽度8位,最多支持256个寄存器
#define REG_BASE_ADDR 0xA000 // 寄存器基址
unsigned char *SJA_CS_Point = (unsigned char *) REG_BASE_ADDR ;
void WriteSJAReg(unsigned char RegAddr, unsigned char Value) {
*(SJA_CS_Point + RegAddr) = V
unsigned char ReadSJAReg(unsigned char RegAddr) {
&return (*(SJA_CS_Point + RegAddr));
将缓存区的数据连续写入寄存器
…… for (i=0;i&i++) { WriteSJAReg(RegAdr+i,ValueBuf[i]); } ……
将连续多个寄存器连续读入缓存区
…… for (i=0;i&i++) { ReadSJAReg(RegAdr+i,ValueBuf[i]); } ……
头文件包含方案:
每个程序包含用到的头文件
每个程序包含一个公用头文件,公用头文件包含所有其他头文件
#ifndef __CONFIG_H__ // 防止头文件被重复包含
#define __CONFIG_H__
#include &8051.h&&&&&&&&& // 包含80C51寄存器定义头文件
#include "SJA1000REG.h"&&&&&&&& // 包含SJA1000寄存器定义头文件
#define LOW_BYTE(x)& (unsigned char)(x)
#define HIGH_BYTE(x)& (unsigned char)((unsigned int)(x) && 8)
#define OSCCLK UL
#define CPUCLK (OSCCLK / 12)
#endif // __CONFIG_H__
SJA1000上电后处于复位状态,必须初始化后才能工作。
(1)置位模式寄存器Bit0位进入复位模式;
(2)设置时钟分频寄存器选择时钟频率、CAN模式;
(3)设置验收滤波,设定验证码和屏蔽码;
(4)设置总线定时器寄存器0、1设定CAN波特率;
(5)设置输出模式;
(6)清零模式寄存器Bit0位退出复位模式;
模式寄存器
只检测模式:SJA1000发送CAN帧时不检查应答位;
只听模式:此模式下SJA1000不会发送错误帧,用于自动检测波特率;SJA1000以不同的波特率接收CAN帧,当收到CAN帧时,表明当前波特率与总线波特率相同。
波特率设置
CAN总线无时钟,使用异步串行传输;波特率是1秒发送的数据位;
CAN帧发送:
发送CAN帧的步骤:1.检测状态寄存器,等待发送缓冲区可用;
2.填充报文到发送缓冲区;
3.启动发送。
SJA1000具有一个12字节的缓冲区,要发送的报文可以通过寄存器16-28写入,也可通过寄存器96-108写入或读出
设置发送模式
char SetSJASendCmd(unsigned char cmd) {
&&&&unsigned char
&&&&switch (cmd) {
&&&&default:
&&&&case 0:
&&&&&&&&ret = SetBitMask(REG_CAN_CMR, TR_BIT);
&&&&break;
&&&&case 1:
&&&&&&&&ret = SetBitMask(REG_CAN_CMR, TR_BIT|AT_BIT);
&&&&break;
&&&&case 2:
&&&&&&&&ret = SetBitMask(REG_CAN_CMR, TR_BIT|SRR_BIT);
&&&&break;
&&&&case 0xff:
&&&&&&&&ret = SetBitMask(REG_CAN_CMR, AT_BIT);
&&&&break;
&&&&return
}&&&&&&&&&
unsigned char SJA_CAN_Filter[8] = {&&&
0x00, 0x00, 0x00, 0x00,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
0xff, 0xff, 0xff, 0xff&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
unsigned char STD_SEND_BUFFER[11] = {&&
0xEA, 0x60,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa&
void main(void)
&&&&timerInit();
&&&&D1 = 0;&&&&&&&
&&&&SJA1000_RST = 1;
&&&&timerDelay(50);
&&&&SJA1000_RST = 0;&&&&&&&
&&&&SJA1000_Init(0x00, 0x14, SJA_CAN_Filter);&&
&&&&for(;;) {&&&&&&&&&&&
&&&&&&&&SJASendData(STD_SEND_BUFFER, 0x0);&&&&&&&&&&&
&&&&&&&&timerDelay(100);&&&&&&&&
为什么帧ID是0x753,这与CAN帧在缓冲区的存储格式有关。
终端电阻非常重要,当波特率较高而且没加终端电阻时,信号过冲非常严重。
SJA1000有64个字节的接收缓冲区(FIFO),这可以降低对MCU的要求。MCU可以通过查询或中断的方式确定SJA1000接收到报文后读取报文。
参考资料:《项目驱动-CAN-bus现场总线基础教程》 广州周立功单片机科技有限公司
阅读(...) 评论()CAN2.0A,CAN2.0B,CANOPEN的一些解释
CAN2.0A,CAN2.0B,CANOPEN的一些解释
CAN2.0A 是CAN协议的PART A部分,此部分定义了11bit的标识区 。
CAN2.0B 是CAN协议的扩展部分,也叫PART B,定义了29bit的标识区,其它部分与CAN2.0A一样。
CANOpen是基于CAN协议的应用层协议,可以理解为用户层,即规定了用户、软件、网络终端等之间用来进行信息交换的约定!而CAN定义了物理层和数据链路层,而CANOpen与DeviceNet一样,只定义了OSI模型的第七层。
CAN2.0A/B是CAN标准的两个部分,只要CAN芯片支持CAN2.0B,则都可以兼容通讯,而CANOpen是上层协议,建立在CAN的基础上的。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。北京航空航天大学出版社-现场总线CANopen设计与应用
您好,欢迎来到北京航空航天大学出版社![] []
&| &|&|&|&|
您的位置》&&
现场总线CANopen设计与应用
定&&&&价:
关&注&度:
库存状态:
图书状态:
作&&&&者:
周立功 黄晓清 严寒亮 译
出版时间:
版&&&&次:
印&&&&次:
字&&&&数:
开&&&&本:
787×960 1/16
纸&&&&张:
&&& 本书讲述作为工业现场总线协议重要成员之一&&CANopen协议的基本原理、规则以及相关背景,重点介绍CANopen协议的工作机制,力求向读者展现CANopen协议的概貌,使读者能够理解为何CANopen需要制定如此的工作流程。全书分为4个部分,第一部分由第1~3章组成,主要介绍通信的基本原理,以及CANopen协议物理层和链路层的基本特性(CAN总线);第二部分由第4~5章组成,主要介绍CANopen的基本核心工作机制和CANopen主站设备的特点;第三部分由第6~8章组成,主要介绍CANopen应用中的设备子协议规范;第四部分由第9~10章组成,主要介绍CANopen协议的应用及调试的方法和工具。
&&& 本书适合从事工业控制或工业通信的工程技术人员使用,也可作为高等院校自动化、机电一体化、电子信息类等专业的教学参考书。
第1章 通信和设备模型1
1.1通信层和参考模型1
1.2设备模型和兼容性等级2
1.3对象的描述与定义4
第2章 物理层6
2.1位定时和位填充6
2.2高速收发器芯片8
2.3网络拓扑结构9
2.4连接器12
第3章CAN协议14
3.1报文格式15
3.2错误的检测、限制和处理21
3.2.1错误检测机制21
3.2.2无法检测到的错误26
第4章 应用层28
4.1基本原理29
4.2通信对象33
4.2.1过程数据对象33
4.2.2服务数据对象47
4.2.3同步57
4.2.4发送设备错误信号60
4.3对象字典62
4.3.1对象词典的分配63
4.3.2通信参数的描述64
4.3.3对象字典的实现73
4.4网络管理系统76
4.4.1 NMT服务与协议76
4.4.2设备监控80
4.5 CAN标识符的分配81
4.5.1预定义主/从连接集81
4.5.2设备的基本功能83
4.6节点ID的分配84
第5章 应用层的附加功能88
5.1可编程的CANopen设备88
5.1.1术语的定义89
5.1.2标准的网络启动89
5.1.3 CANopen管理器的作用90
5.1.4可编程的CANopen设备的过程数据93
5.1.5网络变量94
5.1.6下载程序98
5.2网络组99
5.3安全数据传输协议101
5.3.1安全相关的数据对象SRDO102
5.3.2 CANopen安全实施方案104
第6章 设备子协议108
6.1基础109
6.2 I/O模块的子协议109
6.2.1数字量输入110
6.2.2数字量输出111
6.2.3模拟量输入112
6.2.4模拟量输出113
6.2.5控制手柄114
6.3驱动和运动控制设备子协议115
6.3.1驱动器状态机115
6.3.2驱动器的工作模式117
6.3.3因数组123
6.3.4预定义PDO123
6.4传感器和测量设备的子协议124
6.4.1模拟量输入功能模块 124
6.4.2调节器功能模块125
6.4.3报警功能模块125
6.4.4数字I/O功能模块126
6.4.5从数据类型到对象词典126
6.4.6子协议的特性127
6.5编码器和凸轮转换机构子协议128
6.5.1编码器参数和诊断对象129
6.5.2操作模式130
6.5.3编码器中的凸轮转换机构130
6.6液压阀的子协议131
6.6.1常规定义133
6.6.2应用对象134
6.6.3 PDO映射134
6.7倾角传感器的子协议135
6.8织布机的子协议135
6.9蓄电池和充电器的子协议136
6.10医疗器械的子协议138
6.11其他的设备子协议143
第7章 接口规范144
7.1与符合IEC 611313标准的控制器接口144
7.1.1数据类型144
7.1.2网络变量145
7.1.3功能块146
7.1.4数据交换148
7.2商务车辆中的网络接口148
7.3基于以太网的网络接口149
7.4连接到ASInterface的CANopen网关151
7.5其他的接口规范155
第8章 应用规范156
8.1基础知识157
8.2针对乘客信息系统的应用规范158
8.3针对建筑机械的传感器的应用规范160
8.4针对垃圾收集车的应用规范163
8.5针对电梯控制器的应用规范165
8.6针对挤压机下游设备的应用规范167
8.7针对造影剂注射器的应用规范170
8.8针对轨道车辆的应用规范173
8.8.1车载集成网络173
8.8.2用于子系统内部通信的应用规范175
8.9针对吊车附加设备的应用规范178
第9章 CANopen工具182
9.1设备数据表与设备配置文件183
9.2配置CANopen设备和系统184
9.3系统配置流程188
9.4配置工具的结构与工作原理188
9.5用于CANopen设备的设计工具191
9.6仿真工具191
9.7一致性与性能测试系统192
9.7.1 CANopen一致性的检验192
9.7.2性能检测193
第10章 CANopen设备及网络195
10.1 CANopen设备分类195
10.2 CANopen网络结构196
10.3 CANopen网络配置198
10.4 CANopen应用案例201
10.4.1空调控制系统网络结构201
10.4.2空调机的PDO分配201
10.4.3 CANopen网络的优势203
附录A 参考文献205
附录B 作者209
附录C 词汇表211
CANopen是一种基于控制器局域网(CAN)的通信子协议。其最初的通信原型始于德国BOSCH公司领导的Esprit项目,这是一种为用于产品部件内部网络通信而开发的系统。最初,CANopen通信子协议是以CiA(国际用户与制造商团体)所定义的CAL为基础的,CAL是按照OSI参考模型定义的一种应用层。在Esprit项目结束之后,CANopen规范被转交给CiA继续进行修改和维护。CiA利益组IG(Interest Group)对CANopen通信子协议进行了全面的修改,并于1996年10月发布了3.0版的CANopen规范。之后CiA又在2002年2月发布了Version 4.0.2。Version 4.0.2包含了迄今为止可在CAL规范(CiA标准草案201~207)中查阅到的所有定义和描述,是欧洲标准EN503254的基础。2007年底发布的CANopen通信子协议(Version 4.2)仅包含少许新功能。这次修改主要是去除了含混不清、易引起误解的规范内容以及显而易见的矛盾和错误。
CANopen规范全集除了包括应用层和通信协议之外,还包括各种不同的框架、建议,以及标准的设备规范、接口协议与应用技术规范。CANopen的&创始者们&原打算开发一种标准化嵌入式网络(Embedded Network),以便将大批量的设备用于嵌入式机床控制器之中。这样做的主要目的是为了让系统尽可能拥有更多的自由度。另外,功能offtheshelf plugandplay(开箱即用,即插即用)最初是没有的,但是可以通过基于CANopen协议的相关应用技术规范来实现。
CANopen的自由度很大,因而其应用非常广泛。CANopen不仅成功地应用于传统的机床控制器中,还涉及其他的领域,比如医疗、航海、铁路、军事以及太阳能领域。此外,CANopen还可应用于楼宇、实验室、过程与生产自动化等领域。
这本由多名作者合著的CANopen著作一方面阐述了CANopen中所应用的基本程序和方法,另一方面也介绍了相关背景,使得读者能够理解为何选用了这种程序或者选用了那种方法。但是本书并不能代替CANopen协议(规范)。想要采用CANopen的设备制造商必须认真参考相应的CANopen规范和建议文档。系统集成也是如此,虽然能够运用性能十分强大的软件工具,但如果涉及高度优化的系统,还是需要对CANopen进行详细了解,因此必须参考相关的CANopen规范和建议文档。
尽管应用层和通信协议已经非常稳定,但对CANopen规范的研究工作依然要继续进行。尤其是设备规范和应用技术规范尚不稳定,原因是:一方面有新的应用领域提出了其他要求,另一方面设备功能随着技术进步日新月异。本书所反映的是2007年初的CANopen技术状况,在某些方面对其他研究工作进行了预测。若有疑问,应始终以CiA发布、改进和维护的官方规范为准。另外,您也可以在CiA网站(www.cancia.org)上免费下载现行版本的PDF文档。尚处在研究阶段的规范仅供CiA成员使用,并由成员决定是否以及何时发布规范。
Holger Zeltwanger
版权所有 2017 北京航空航天大学出版社 备案编号:京公海网安备号地址:北京市海淀区学院路37号工程训练中心楼5层 邮政编码:100191联系电话:86(10) 传真:86(10) 电子邮箱:

我要回帖

更多关于 rvvp是双绞线吗 的文章

 

随机推荐