施耐德CANopen-协议通讯_第1页
施耐德CANopen-协议通讯_第2页
施耐德CANopen-协议通讯_第3页
施耐德CANopen-协议通讯_第4页
施耐德CANopen-协议通讯_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CANopen通讯协议培训2017-03-03CAN通讯的简介

历史CAN(ControllerAeraNetwork,控制器局部网)是德国Bosch公司在1983年开发的一种串行数据通讯协议,最初应用于现代汽车中众多的控制与测试仪器之间的数据交换,是一种多主方式的串行通讯总线,介质可以是双绞线、同轴电缆和光纤,速率可达1Mbps,支持多达128个节点;具有高抗电磁干扰性,而且能够检测出产生的任何错误,保证数据通讯的可靠性。通信机制比较简单,适合于所有机械的嵌入式网络,可以降低设备的复杂程度,在工业领域(如汽车、电梯、医疗、船舶、纺织机械等)得到了广泛应用,是欧洲重要的网络标准CANopen的术语1993年CiA发布用来描述传送机制的CAL(CommunicationApplicationLayer)规范1995年CiA发布DS-301通信描述文件:CANopen2001年CiA发布DS-304,在标准CANopen总线上集成4层安全元件(CANsafe)2CAN通讯

术语CAN=ControllerAreaNetwork控制器局域网CiA=CANinAutomation协会CANopen

是CAN应用层协议,它基于信息广播的通讯概念:每一个连接到总线的站点都在接收其它站点的信息.然后决定他们的动作,是否回答相关指令.CAN协议授权所有的站点同步访问总线.然后根据COB-ID给予优先权.COB-ID=ComunicationObjectIdentifier-由通讯标识码和从站地址组成EDS=ElectronicDataSheet,用于描述设备通讯相关的文件CAL-CAN的应用层CAL(CANapplicationlayer),由Cia(CANInAutomation)定义CAN通讯的模型

模型

CANopen和ISO模型CiADS-301=CommunicationprofileEMPTYEMPTYEMPTYEMPTYCAN2.0AandB+ISO11898CAN2.0AandB=ISO11898-1and2ISO11898+DS-102DeviceProfileCiADSP-401I/OmodulesDeviceProfileCiADSP-402DrivesDeviceProfileCiADSP-404MeasuringdevicesDeviceProfileCiADSP-4xxCAL=CANApplicationLayer应用层描述层会话层传输层网络层链路层=LLC+MAC物理层7654321CANspecificationsCAN通讯的模型

CANopen的物理层CAN的非归零编码:用两种不同的电平分别表示显性状态和隐性状态显性电平会覆盖隐性电平当同一网络的不同设备同时发显性和隐性数据,则总线显示显性电平,否则是隐性电平隐性电平的逻辑值为1,显性电平的逻辑值为0每个位可以没有上升或下降沿CAN通讯的模型

CAN的物理层CAN数据帧的位填充:非归零编码的一个特点是,如果传输大量连续的相同极性的位,发生的数据信号不能提供可用于重新同步的上升沿或下降沿。因此,使用位填充技术用于确保所有总线节点的同步。这意味着在传输消息期间,最多五个连续位具有相同的极性。CAN帧中的位填充区域包括SOF,仲裁字段,控制字段,数据字段和CRC字段。理论最差情况Smax=(34+8dlc-1):4=8+2dlc,dlc表示数据长度代码,CAN报文有效数据字节数量6CAN通讯的模型

CAN的物理层CAN数据帧的位定时:位定时是一个复杂的话题,为了减轻用户处理这种艰难任务的负担,CANopen不仅规定了波特率,也规定了位定时的采样点,位定时分为4个部分:同步段、传播段、相位段1和相位段2采样点恰好位于相位段1和2之间。每个段由基本时间单位(tq)的整数倍构成。基本时间单位是CAN节点使用的最小时间分辨率。其长度由CAN控制器的振荡器频率的分频后产生。同步段1个tq,传播段1~8个tq,相位段1-1~8个tq,相位段2-2个tq,采样点同步跳转宽度SJW为1个基本时间单位。7CAN通讯的模型

CAN的物理层CANopen电平:在显性状态时,CAN-High线上的电压值会升高一个预定值(对CAN驱动数据总线来说,这个值至少为1V)。而CAN-Low线上的电压值会降低一个同样值(对CAN驱动数据总线来说,这个值至少为1V)。于是在CAN驱动数据总线上,CAN-High线就处于激活状态,其电压不低于3.5(2.5V+1V=3.5V),而CAN-Low线上的电压值最多可降至1.5V(2.5V-1V=1.5V)。CAN的高低电平是一个差分信号在受到干扰时,因为CAN_H和CAN_L是差分信号,所以Vdiff不变8CAN通讯

模型-物理层硬件接线使用屏蔽双绞线,三根线,CAN_H,CAN_L和CAN_GND通讯长度与通讯速度的关系如下图所示可以使用CANopen中继器完成总线长度的扩展拓扑直线拓扑,总线的末端需加两个120欧姆的终端电阻总线最大个数128主站1+从站1279CAN通讯

模型-物理层通讯线的线径和通讯长度的关系电缆阻抗:32站: <21

64站: <18,5

100站: <16

CAN通讯

模型-物理层通讯线的相关参数:每米阻抗(r): 70m

/m终端电阻

(Rt):

一般120

(最小

108

,最大132

)线缆阻抗

(Z):

一般

120

(最小108

,最大

132

)电缆延迟: 5ns/mCAN通讯

模型-物理层通讯线的支线长度限制最大支线长度计算公式:未连接终端电阻支线电缆的最大长度Ld和累计支线长度Ldi的经验法则:

tPROPSEG: 位周期的数据传输段的长度tP: 每个长度单位的特定线路延迟例:波特率=500kbit/s:tPROPSEG=12*125ns=1500ns;tP=5ns/m

CAN通讯

模型-物理层CiADS-102Bit-rates13CAN通讯

模型-物理层CiADS-102设计时建议CANopen设备应至少支持波特率20K,并且支持的越多越好超过200米长度的CANopen线缆建议加光电隔离超过1Km建议使用CANopenrepeater-重发器。14CAN通讯的模型

CAN的物理层CANopen中继器的作用:可以使用CANopen中继器完成总线长度的扩展电气的隔离拓扑方式的扩展很小的延迟-与产品有关CANopen硬件接线的针脚定义:RJ45使用1,2和3脚而SUB-D9接头采用2,3和715CAN通讯的模型

CAN的物理层CANopen5针迷你接头针脚定义:针脚定义:1: (CAN_SHLD)=CAN屏蔽层可选2: (CAN_V+)=CAN外部电源正可选3: CAN_GND=Ground/0V/V-4: CAN_H=CAN_H5: CAN_L=CAN_L16CAN通讯的模型

CAN的物理层CANopen5针端子接头针脚定义:针脚定义:1: CAN_GND=Ground/0V/V-2: CAN_L=CAN_L3: (CAN_SHLD)=CAN屏蔽可选4: CAN_H=CAN_H5: (CAN_V+)=CAN外部电源正可选17CAN通讯的模型

CANopen的数据链路层总线访问CAN数据帧的结构错误处理18CAN通讯的链路层

CANopen的数据链路层ISO11898进行了标准化,CAN的数据链路层是其核心内容数据链路层的服务由逻辑链路控制(LLC)和媒体访问控制(MAC)中实现,LLC提供:数据接收过滤,过载通知和管理恢复MAC负责:数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串/并转换等功能。这些功能都是围绕信息帧传送过程展开的。19CAN通讯的链路层

广播方式CAN广播发送方式广播通信的CAN概念意味着网络的每个站可以监听发送站的帧(这里:站2)。收到帧后,每个节点决定广播的消息接受还是不接受。数据接收过滤是在每个CAN节点中实现。CAN广播发送的处理方式与司机接听交通台的广播的情况是类似的。每个司机根据自己要走的路和广播发送的路况信息决定广播的数据是否采用。20CAN通讯的链路层

RTRCAN的RTR远程传输请求(RTR)就像是提问题。具有答案的节点将在第二次通信中产生所请求的数据。该数据帧也可以由对该对象感兴趣的其他消费者接收。远程帧和数据帧由称为标识符的特定字段标识。21CAN通讯的链路层

多主访问CAN多总线访问CAN协议允许从不同节点同时进行总线访问。如果多个节点访问总线,则需要进行仲裁。CAN中使用的总线访问方法是一种非破坏性的逐位仲裁,称为具有冲突检测和消息优先级仲裁(CSMA/CD+AMP)的载波侦听多路访问。消息优先级在CAN标识符中解码。当总线处于空闲状态时,几个节点可以开始传输帧。每个节点在完整消息期间从总线逐位读回,并将发送的比特值与接收的比特值进行比较。根据定义,具有主导值的位将覆盖具有隐性值的位(这必须由收发器提供)。22CAN通讯的链路层

Producer-consumerCAN的生产者和消费者该写入对象服务将数据帧从一个节点(生产者)发送到一个或多个接收节点(消费者)。这并不意味着一个节点将接受消息,这意味着某些站点对此信息感兴趣。这项服务是经典的CAN通信服务。第二通信服务是请求特定消息。此读取对象服务由一个或多个消费者启动。因此,这些节点将传输所谓的远程帧。拥有所请求信息的节点将传送相应的数据帧。23CAN通讯的链路层

总线仲裁CAN的总线仲裁24CAN通讯的数据帧

4种数据帧CAN的4种数据帧数据帧:这些帧将数据从生产者传输到消费者,而不保证将被处理。远程帧:这些请求帧由客户端发送到服务器以请求传输数据帧(标识符将具有与请求相同的值)。错误帧:当站检测到总线上存在错误时,会发送这些帧。过载帧:这些帧被发送以要求连续帧之间的额外的时间间隔(数据或请求)。25CAN通讯的模型

帧结构以及CAN2.0A和CAN2.0BCAN数据帧结构帧起始和帧结束-表示帧开始或结束仲裁段-表示帧的优先级控制段-表示数据的字节数及保留位的段数据段-数据的内容,可发送

0~8

个字节的数据CRC段-用于检验数据的正确与否ACK-表示确认正常接收的段CAN的2.0A和2.0BCAN针对ID参数规定了两种不同的格式。其中标准消息格式用了11位的ID,而扩展消息格式用了29位的ID。

CAN

2.0A-只规定了标准消息格式(扩展消息会被认为是错误)

CAN2.0Bactive-能处理标准和扩展消息格式

CAN2.0Bpassive-处理标准消息,忽略扩展消息CAN控制器必须完全支持11位信息包括收、发,和必须支持接收扩展帧26CAN通讯的模型CANopen的应用层CANopen的4种标准服务CANopen的对象字典CANopen的标识符CANopen的CIA405功能块CIA402的流程27CANopen通讯的模型

模型-应用层4种标准服务1.网络管理:参数设置,启动,监视(主/从)2.实时小容量过程数据(<=8字节)传输:PDO=ProcessDataObject(生产者-消费者)PDOs有几种传输方式:状态改变,轮循,接收到同步信息或者主站发出请求3.无时间限制时通过分割方式进行大容量数据(>8字节)传送:SDO=ServiceDataObject(客户端-服务器)

4.管理同步(SYNC),时基参数,致命错误的预定义信息:SFO=SpecialFunctionObjectCANopen定义:数据怎样传输:

DS-301通信描述文件适用于所有产品、定义每种信息COB-ID标示符的分配什么样的数据:DS-4XX产品描述文件对每个产品家族进行详细规定

(discreteI/O,analogueI/O,variablespeeddrives,encoders,etc.)这些功能通过设备对象词典OD=ObjectDictionary进行描述28CANopen通讯的模型

DS301DS4XXDS301描述OD和通信配置文件区域中的对象的一般结构:索引1000到1FFF。适用于所有CANopen产品。DS-4xx设备模型:描述各种类型产品(离散量I/O模块,模拟I/O,变频器,测量仪器)的相关对象。标准对象:索引6000到9FFF具体对象:索引2000〜5FFF一些对象是强制性的,其他对象是可选的。它们可以在只读模式或读/写模式下访问。29PDO用于实时传输少量的过程数据(<=8bytes)一个PDO可以由对象字典中几个不同索引的数据组成,规划方式则是透过对象字典中对应PDOmapping及PDO参数的索引。此服务不需确认。PDO分为两种:传送用的TPDO及接收用的RPDO。一个节点的TPDO是将数据由此节点传输到其他节点,而RPDO则是接收由其他节点传输的数据。PDO可以用同步或异步的方式传送:同步的PDO是由SYNC

信号触发,而异步的PDO是由节点内部的条件或其他外部条件触发。例如若一个节点规划为允许接受其他节点产生的TPDO请求,则可以由其他节点送出一个没有数据但有设置RTR位元的TPDO(TPDO请求),使该节点送出需求的数据。PDO详细描述PDO30每个发送或接收PDO在对象字典中由两个对象描述。PDO通信参数指示如何传输或发送的:

使用的COB-ID

使用的发送/接收模式

对于发送PDO,2个消息之间的最小时间(禁止时间)PDO映射参数指示传输哪些数据:

对象字典OD中的对象列表

每个对象的大小PDO详细描述PDO通讯内容和工作方式PDO详细描述TPDOTPDO的地址0x1800~19FFPDO详细描述TPDOTPDO的地址0x1A00~1BFFPDO详细描述RPDORPDO的地址0x1400~15FFPDO详细描述TPDORPDO的地址0x1600~17FFPDO的的触发方式:事件触发:当数据变化时,立刻发送出去,不需要等待主机轮询才发送,所以实时性好,而且避免重复数据占用大量总线占用资源,就像数据压缩了一样。事件驱动类型的RPDO可立即处理收到的数据。远程请求或轮询:此方式就像485通信一样,主控主动远程请求或者轮询,子设备才发送PDO。因为市面上有一些不支持远程帧的CAN控制器,不建议使用。同步传输:CAN总线上有一个设备作为SYNC信号的生产者,其他设备作为消费者。生产者和消费者都又SYNC计数功能,消费者计数到一定时(1~240),自动发送PDO。if(同步传输&&事件触发):顾名思义,不仅满足定时还满足事件触发,才发送PDO。PDO详细描述PDO的触发方式PDO的的触发方式:事件触发:当数据变化时,立刻发送出去,不需要等待主机轮询才发送,所以实时性好,而且避免重复数据占用大量总线占用资源,就像数据压缩了一样。事件驱动类型的RPDO可立即处理收到的数据。远程请求或轮询:此方式就像485通信一样,主控主动远程请求或者轮询,子设备才发送PDO。因为市面上有一些不支持远程帧的CAN控制器,不建议使用。同步传输:CAN总线上有一个设备作为SYNC信号的生产者,其他设备作为消费者。生产者和消费者都又SYNC计数功能,消费者计数到一定时(1~240),自动发送PDO。if(同步传输&&事件触发):顾名思义,不仅满足定时还满足事件触发,才发送PDO。PDO详细描述PDO的触发方式PDO的的触发方式:PDO详细描述PDO的触发方式PDO的非周期传输方式:PDO详细描述PDO的非周期传输方式事件productXSYNCSYNCSYNCSYNCTxPDO_PXSYNCSYNCSYNCSYNCTxPDO_PX远程请求productXSYNCSYNCTxPDO_PX远程请求productX非周期传输方式0请求(轮询)-通过接收远程触发传输类型=252PDO的周期传输方式:PDO详细描述PDO的周期传输方式SYNCSYNCSYNCSYNCTxPDO_PXSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCTxPDO_PXTxPDO_PX例当n=3例当n=3周期传输在同步信号之后传输方式1~240(SYNC个数)PDO的事件:PDO详细描述PDO的事件触发事件productXTxPDO_PXTxPDO_PXTxPDO_PXSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC远程请求productX远程请求productX事件触发传输方式254制造商特定事件,255设备子协议约定事件触发传输方式253,在收到远程请求后发送为了确保能够发送具有低优先级的对象,可以分配一个PDO的2个传输之间的最小时间。该参数用于TxPDO通信参数对象索引0x1800至0x19FF中的“禁止时间”参数。PDO的禁止时间PDO的inhabittime服务数据对象(SDO)SDO常用于存取读取或设定节点的参数数据。提供对象字典的节点称为SDO服务器,存取对象字典的节点称为SDO客户端。SDO通讯一定由SDO客户端开始,并提供初始化相关的参数。在CANopen的术语中,上传是指由SDO服务器

中读取数据,而下载是指设定SDO客户端

的数据。由于对象字典中的数据长度可能超过8个字节,无法只用一个CAN数据包传输,SDO也支援长数据包的分割(segmentation)和合并(desegmentation)。这样的对象有二种:SDO下载/上传(SDOdownload/upload)及SDO区块下载/上传(SDOBlockdownload/upload)。CANopen协议较新版本支持SDO区块传输,可以允许传输大量的数据,且传输的overhead可以较低。负责处理SDO数据传输的COBID可在对象字典中设置。在对象字典的索引0x1200至0x127F可设定SDO服务器的COBID,最多可设定到127个。而SDO客户端可以在对象字典的索引0x1280至0x12FF中设定。不过预定义连结(pre-definedconnectionset)定义在开机后(Pre-operational状态)可用来设定设备组态的SDO。接收用的COBID为0x600+节点ID,而传送用的COB为0x580+节点ID。SDOSDO的详细说明SFOSYNC对象SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发。SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高。SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产者提供网络节拍,各消费者以节拍周期的倍数执行数据传输功能。在CANopen网络中应用SYNC要注意以下几点:1.

SYNC并不是主节点必须的功能,不一定要和NMT放在同一节点上,实际网络应用中可以在网络中找一个任务较少、实时性好的节点来作为SYNC生产者,SYNC消费者可以有多个,但是生产者同时只能有一个存在。2.

SYNC是不带数据的,以使报文尽可能短,目的是为了加快其传输,减少网络占用。3.

SYNC发出后,需要发送数据的PDO要在规定时间段内发送数据,这个时间段叫做时间窗口(对象1006H指定),要小于SYNC节拍周期,以便每个周期留一定时间来进行其他类型的网络通讯。SFOSYNC对象SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发。SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高。SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产者提供网络节拍,各消费者以节拍周期的倍数执行数据传输功能。在CANopen网络中应用SYNC要注意以下几点:1.

SYNC并不是主节点必须的功能,不一定要和NMT放在同一节点上,实际网络应用中可以在网络中找一个任务较少、实时性好的节点来作为SYNC生产者,SYNC消费者可以有多个,但是生产者同时只能有一个存在。2.

SYNC是不带数据的,以使报文尽可能短,目的是为了加快其传输,减少网络占用。3.

SYNC发出后,需要发送数据的PDO要在规定时间段内发送数据,这个时间段叫做时间窗口(对象1006H指定),要小于SYNC节拍周期,以便每个周期留一定时间来进行其他类型的网络通讯。4.SYNC常用于伺服的数据的同步输入获取或更新输出(例如轴控制)。SFOSYNC对象两个连续SYNC消息之间的时间段称为通讯循环周期,可以在SYNC生产者的对象字典(对象索引为十六进制的1006)中进行调整。同步传输PDO在接收到SYNC消息后的指定时间范围内开始传输。此时间范围称同步窗口长度,可在所有必须传输同步PDO的设备的对象字典(对象索引为十六进制的1007)中进行配置。。SFO时间戳对象时间戳对象提供所有设备作为统一的时间基准。这个时间是以6个字节编码的,代表从1984年1月1日起的绝对时间(毫秒)。。SFOEMCY当设备发生故障(电流,电压,温度,通讯等)时,会触发EMCY通讯帧。EMCY的COB-ID存储在对象字典主索引为0x1014的对象内。使用EMCY信息前要确认0x1014对象的第31位为0,即EMCY信息是有效的。

设备内产生某些特定的内部错误,会触发EMCY信息的发送,发生过的错误记录在索引为0x1003的对象中SFO

Nodeguard和Heartbeat为了检测通讯中断,节点一般会提供Nodeguard或Heartbeat服务节点保护服务:通过每隔一定间隔(寿命)发送“remotetransmitrequest”(远程发送请求)(RTR)来扫描节点。通过将“保护时间”与“寿命系数”相乘来计算得出“寿命”,一旦“寿命”到期,如果节点没有收到(主站)RTR就会触发一个“LifeGuarding”(寿命保护)故障,

并发送一个紧急电报(EMCY):

假如设置了“GuardTime”(保护时间)为500ms,“LifeTimeFactor”(使用期限系数)为4,LifeTime(生存期限)为4x500ms=2秒。·心跳服务:如果选择此服务,“MasterConsumerTimeofNode”(节点的消费时间)参数必须大于“NodeHeartbeat的ProducerTime”(心跳的生产时间)。如果当前配置的节点的“MasterConsumerTimeofNode”(节点的消费时间)为0,则不启动心跳服务。在“节点的消费时间”过去之后没有收到“心跳信息”,变频器就会触发一个“心跳”事件并发送一个紧急电报(EMCY)。Nodeguard和Heartbeat服务只能选择一种。CANopen通讯的模型

对象字典-OD对象字典对象词典OD是一序列对象组,可以通过以下方式进行访问:16位索引号有时候加上8位子索引号描述了产品的所有功能,描述采用ASCII格式的EDS表格文件(ElectronicDataSheet)这种描述使用严格的语法,并可用于总线配置工具(例如Sycon

等)EDS文件:对象字典描述了产品所有CANopen通讯功能这些描述使用EDS(ElectronicDataSheet)文件来描述

EDS文件有严格的格式,并可以被编程软件所使用(SoMachine、Unity、Sycon

等等.)50CANopen通讯的模型

对象字典-OD对象字典的结构:51CANopen通讯的模型

NMT网络管理NMT状态表如右图所示

NMT主站控制的状态转换:

允许的通讯操作类型1:Start_Remote_Node a.NMT2:Stop_Remote_Node b.NodeGuard3:Enter_Pre-Operational_State c.SDO4:Reset_Node d.EMCY5:Reset_Communication e.PDO.6:Nodeinitialisationstopped52CANopen通讯的模型

默认标识符的分配标识符把COB-ID标示符分成两个部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论