CANopen协议介绍

合集下载

CANopen协议讲解

CANopen协议讲解

CANopen协议讲解一、引言CANopen是一种基于CAN总线的通信协议,用于实现分布式控制系统中的设备之间的通信。

本协议旨在详细介绍CANopen协议的基本原理、通信机制、数据结构和应用领域。

二、协议概述1. 协议定义:CANopen是一种开放的、标准化的通信协议,用于实现CAN总线上的设备之间的通信和数据交换。

2. 协议特点:a. 灵活性:CANopen协议支持多种数据类型和通信方式,适用于不同的应用场景。

b. 可扩展性:协议定义了一系列标准对象和服务,可以根据实际需求进行扩展和定制。

c. 实时性:CANopen协议采用基于事件驱动的通信机制,支持实时数据传输和处理。

d. 可靠性:协议提供了错误检测和纠正机制,保证通信的可靠性和稳定性。

三、通信机制1. 帧格式:CANopen协议使用标准的CAN数据帧格式进行通信,包括标识符、数据长度码和数据域等字段。

2. 节点地址:每个CANopen设备都有一个唯一的节点地址,用于识别和寻址设备。

3. 通信对象:CANopen协议定义了一系列标准对象,包括数据对象、远程对象和服务对象等,用于实现设备之间的数据交换和控制。

4. 状态机:CANopen设备通过状态机进行通信管理,包括节点状态、网络状态和通信状态等。

四、数据结构1. 数据类型:CANopen协议支持多种数据类型,包括布尔型、整型、浮点型、字符串型等。

2. 对象字典:CANopen设备使用对象字典来管理和存储数据对象,包括输入对象、输出对象和配置对象等。

3. PDO:PDO(Process Data Object)用于实现实时数据传输和同步控制,包括TPDO(Transmit PDO)和RPDO(Receive PDO)两种类型。

五、应用领域1. 工业自动化:CANopen协议广泛应用于工业自动化领域,用于实现分布式控制系统中的设备之间的通信和数据交换。

2. 汽车电子:CANopen协议被用于汽车电子系统中,如发动机控制、车身控制、底盘控制等。

CANopen协议讲解

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协议

CANopen协议

CANopen协议一、引言CANopen是一种基于CAN总线的通信协议,用于在工业自动化和控制领域中实现设备之间的通信和数据交换。

本协议旨在确保不同厂家的设备能够互相兼容和交互操作,提供一种统一的通信标准。

二、范围本协议适用于使用CANopen协议的设备和系统,包括但不限于工业自动化、机械控制、医疗设备等领域。

三、术语和定义1. CAN总线:控制器局域网(Controller Area Network),一种广泛应用于工业领域的串行通信总线标准。

2. 节点:连接到CAN总线上的设备或系统。

3. PDO(Process Data Object):过程数据对象,用于在CANopen网络中传输实时数据。

4. SDO(Service Data Object):服务数据对象,用于在CANopen网络中传输配置和管理数据。

5. NMT(Network Management):网络管理,用于控制和管理CANopen网络中的节点。

四、协议规范1. 物理层a. CAN总线采用2线制,包括CAN_H和CAN_L两根线。

b. CAN总线的通信速率应符合ISO 11898标准。

c. CAN总线的电气特性应符合ISO 11898-2标准。

2. 数据链路层a. 数据链路层使用CAN帧进行数据传输。

b. CAN帧分为标准帧和扩展帧,标准帧的标识符为11位,扩展帧的标识符为29位。

c. 数据链路层使用基于优先级的帧发送机制,具有抢占性。

3. 网络管理a. NMT功能应支持节点的启动、停止、重置和状态监测等操作。

b. NMT功能应支持节点之间的心跳监测和通信质量检测。

c. NMT功能应支持节点的配置和参数设置。

4. PDO传输a. PDO传输应支持实时数据的传输,具有低延迟和高可靠性。

b. PDO传输应支持双向数据交换,可以进行数据的读取和写入操作。

c. PDO传输应支持数据的映射和过滤,以满足不同应用场景的需求。

5. SDO传输a. SDO传输应支持节点之间的配置和管理数据的传输。

canopen参数

canopen参数

canopen参数摘要:一、CanOpen协议简介二、CanOpen参数的分类与作用1.通信参数2.节点识别参数3.报文传输参数4.错误处理与诊断参数5.电源管理参数三、CanOpen参数的配置方法四、CanOpen参数在实际应用中的案例分析五、总结与展望正文:一、CanOpen协议简介CanOpen是一种基于CAN总线的通信协议,主要用于工业自动化和嵌入式系统中。

它是一种高性能、高可靠性的通信协议,能够实现设备间的高效、稳定、安全的数据传输。

CanOpen协议在全球范围内得到了广泛的应用,已经成为工业自动化领域的通信标准之一。

二、CanOpen参数的分类与作用1.通信参数:主要包括波特率、数据位、停止位、校验位等,这些参数决定了通信的速率、数据格式以及是否进行奇偶校验等。

2.节点识别参数:包括设备ID、子地址等,用于标识不同的设备节点,实现设备间的差异化。

3.报文传输参数:包括报文长度、发送间隔、发送次数等,用于控制报文的传输速率、传输次数等。

4.错误处理与诊断参数:包括错误检测与处理方式、诊断报文周期等,用于实现故障诊断与处理。

5.电源管理参数:包括电源模式、电源电压范围等,用于确保设备在不同电源环境下的稳定运行。

三、CanOpen参数的配置方法配置CanOpen参数时,需要根据实际应用需求,合理设置各个参数。

配置过程主要包括以下几个步骤:1.确定通信参数:根据通信速率、波特率等需求,设置相应的通信参数。

2.设置节点识别参数:根据设备ID、子地址等需求,设置相应的节点识别参数。

3.设置报文传输参数:根据通信需求,设置报文长度、发送间隔、发送次数等。

4.设置错误处理与诊断参数:根据故障诊断需求,设置错误检测与处理方式、诊断报文周期等。

5.设置电源管理参数:根据电源需求,设置电源模式、电源电压范围等。

四、CanOpen参数在实际应用中的案例分析以一个智能工厂为例,生产线上的设备通过CanOpen协议进行通信。

CANopen协议讲解

CANopen协议讲解

CANopen协议讲解CANopen是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。

它是由CAN in Automation (CiA)组织开发和维护的,目前已成为工业领域最常用的开放式通信协议之一。

本文将详细介绍CANopen协议的基本原理、通信结构、数据通信方式以及应用领域等内容。

1. CANopen协议的基本原理CANopen协议基于CAN总线,采用了面向对象的通信模型。

它将设备抽象为对象,每个对象具有唯一的标识符,通过读写对象字典中的数据来实现设备之间的通信。

CANopen协议还定义了一套标准的通信服务和对象类型,使得不同厂商的设备可以互相兼容和交互。

2. CANopen协议的通信结构CANopen协议采用了主从式的通信结构,其中一个节点作为主节点,其他节点作为从节点。

主节点负责控制总线的访问和数据传输,从节点负责接收和响应主节点的指令。

主节点和从节点之间的通信通过报文进行,包括数据报文和远程帧。

3. CANopen协议的数据通信方式CANopen协议支持多种数据通信方式,包括点对点通信、广播通信和组播通信。

点对点通信是指主节点与特定从节点之间的通信,广播通信是指主节点向所有从节点发送相同的指令,组播通信是指主节点向特定组内的从节点发送指令。

4. CANopen协议的对象字典CANopen协议使用对象字典来存储设备的数据和配置信息。

对象字典是一个由多个对象组成的数据结构,每个对象包含了标识符、数据类型、访问权限等信息。

通过读写对象字典中的数据,可以实现设备之间的数据交换和控制。

5. CANopen协议的应用领域CANopen协议广泛应用于工业自动化领域,包括机械设备、工厂自动化、物流系统等。

它提供了可靠的数据传输和实时性能,适用于各种复杂的控制和监测应用。

CANopen协议还支持设备的配置和诊断功能,使得系统维护和故障排除更加方便。

总结:CANopen协议是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。

CANopen协议

CANopen协议

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在接收到远程帧或规定的事件发⽣后进⾏传输。

CANopen通讯协议介绍

CANopen通讯协议介绍

CANopen通讯协议介绍CANopen是一种现场总线通信协议,它基于CAN(Controller Area Network)总线,用于在工业自动化和机器控制领域的设备之间进行通信。

它提供了一种标准化的通信和数据传输方式,具有高可靠性和实时性的特点。

CANopen协议在1994年首次发布,由CAN in Automation(CiA)组织负责制定和推广。

它采用基于对象的通信模型,通过定义不同类型的对象和对象字典来进行数据传输和设备之间的交互。

CANopen协议定义了不同的设备和功能模块之间的消息结构、通信规则和参数设置等。

CANopen协议提供了一种灵活且可扩展的通信方式,可以支持多种不同类型的设备和功能模块。

它可以用于各种应用领域,例如工业机器人、自动化生产线、电动机控制、安全系统和智能家居等。

CANopen协议适用于小型设备和大型系统,可以通过简单的点对点连接或复杂的网络结构进行通信。

1. 对象导向:CANopen协议采用面向对象的通信模型,通过定义对象和对象字典来进行数据传输和设备之间的交互。

对象可以是实际的物理设备、功能模块或数据结构。

对象字典是一个集合,用于存储和管理不同类型的对象。

2. 报文结构:CANopen协议定义了不同类型的报文结构,包括同步报文、时间戳报文、心跳报文、PDO(Process Data Object)报文和SDO (Service Data Object)报文等。

这些报文用于不同的通信任务和数据传输需求。

3. 设备配置:CANopen协议支持动态设备配置,可以自动检测和配置新加入的设备。

设备可以通过网络管理工具或主控设备进行配置和监控。

设备的参数设置和功能扩展可以通过SDO报文进行远程配置。

4. 网络管理:CANopen协议支持多种网络拓扑结构,包括主从结构、多主结构和对等结构等。

它提供了网络节点的自动发现、节点状态监测、网络同步和错误诊断等功能。

可以通过网络管理工具进行网络配置和监控。

CANopen协议详情讲解

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 的每一个节点都维护了一个状态机。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CANopen णᩲҟඑ⌕ᜐ⃻⌆ՈCAN-busʌሖणᩲֲᔩ1ǃҟඑ (1)2ǃCAL णᩲ (2)3ǃCANopen (3)3ˊ1 ᇍᬥᄫ݌OD (3)3ˊ2 CANopenỞᩳ (4)3ˊ3 CANopen8ᅮНẢ᥹▊ (6)3ˊ4 CANopenᷛ᪊৪ߚ‑ (8)3ˊ5 CANopen boot-upẋ࣏ (8)3ˊ6 CANopen⍜ᙃ᪱⊩ඊᅆ (9)4ǃᘏ඗ (18)5ǃ᪸ᯢ (19)1ǃҟඑҢOSIตච῵ൟՈᢖᑺᴹ׏ৠˈɴഎᘏඃตචϔჰাᅲɴњৰ1ሖ˄ĭˊሖ˅ǃৰ2ሖ˄᭄᥂⏂Ჳሖ˅ǃৰ7ሖ˄ᑨϬሖ˅DŽ಴ЎɴഎᘏඃỞᐌাࣙᣀϔϾต↉ˈ಴ℸϡ◄ᡅৰ3ሖ˄Ӵṗሖ˅੠ৰ4ሖ˄ตචሖ˅ˈгϡ◄ᡅৰ5ሖ˄Ӯ᪡ሖ˅ৰ6ሖ˄ᦣẴሖ˅Ո԰ϬDŽCAN˄Controller Area Network˅ɴഎᘏඃҙҙᅮНњৰ1ሖǃৰ2ሖ˄ᢅISO11898ᷛޚ˅˗ᅲ┉᪂ᩥЁˈẝϸሖᅠܼϵܰӊᅲɴˈ᪂ᩥҎਬ᮴◄ݡЎℸᓔথּ݇ḳӊ˄Software˅៪೎ӊ˄Firmware˅DŽẝϸሖᅠܼϵܰӊᅲɴˈৠᯊˈCANাᅮНĭˊሖ੠᭄᥂⏂Ჳሖˈ≵᳝ᢈᅮᑨϬሖˈᴀᵯᑊϡᅠᭈˈ◄ᡅϔϾʌሖणᩲᴹᅮНCAN᡹᭛ЁՈ11/29ԡᷛ᪊৪ǃ8ᄫᅆ᭄᥂ՈՓϬDŽ໐Ϩˈ෎ѢCANᘏඃՈᎹϮႮࡼ࣪ᑨϬЁˈᱎᴹᱎ◄ᡅϔϾᓔᬒՈǃᷛޚ࣪Ոʌሖणᩲ˖ẝϾणᩲᬃᣕ৘࢑CANॖଚ᪂໛ՈѦϬᗻǃѦᤶᗻˈ࿁໳ᅲɴ೼CAN ตචЁᦤկᷛޚՈǃඣϔՈிඣỞᩳ῵ᓣˈᦤկ᪂໛ࡳ࿁ᦣẴᮍᓣˈᠻᜐตච੥ˊࡳ࿁DŽz ᑨϬሖ˄Application layer˅˖ЎตචЁ↣ϔϾ᳝ᬜ᪂໛῁࿁໳ᦤկϔඈ᳝ϬՈ᳡ࡵϢणᩲDŽz ỞᩳᦣẴ˄Communication profile˅˖ᦤկ‑า᪂໛ǃỞᩳ᭄᥂Ո৿НˈᅮН᭄᥂ỞᩳᮍᓣDŽz ᪂໛ᦣẴ˄Device proflile˅˖Ў᪂໛˄ି˅๲ࡴ৪ড়ᢈᇇՈᜐЎDŽϟ☦Ոতᅆᇚҟඑ෎ѢCANՈʌሖणᩲ˖CALणᩲ੠෎ѢCALणᩲᠽሩՈCANopenणᩲDŽCANopen णᩲᰃCAN-in-Automation(CiA)ᅮНՈᷛޚПϔˈᑊϨ೼থᏗৢϡЙህቻᕫњᑓ⊯ՈᡓᩨDŽᇸ݊ᰃ೼⃻⌆ˈCANopenणᩲᝯᩨЎᰃ೼෎ѢCANՈᎹϮிඣЁऴ:ᇐഄԡՈᷛޚDŽ໻໮᭄ₑᡅՈ᪂໛ିൟˈ՟བ᭄ᄫ੠῵ᢳՈṗܹṗߎ῵ഫǃȥࡼ᪂໛ǃ᪡԰᪂໛ǃ᥻ࠊ఼ǃৃේ࣏᥻ࠊ఼៪ේۅ఼ˈ῁೼ࢴЎĀ᪂໛ᦣẴāՈणᩲЁẟᜐᦣẴ˗Ā᪂໛ᦣẴāᅮНњϡৠିൟՈᷛޚ᪂໛ঞּ݊ᑨՈࡳ࿁DŽձ☤CANopenणᩲՈᬃᣕˈৃҹᇍϡৠॖଚՈ᪂໛Ởẋᘏඃẟᜐ‑าDŽ೼OSI῵ൟЁˈCANᷛޚǃCANopenणᩲПⒸՈ݇ிབϟ೒᠔߾˖C iA DS P-401C iA DS P-404 CiA DSP-xxxApplicationC hipData LinkPhysical Layer೒1.1 CANǃCANopenᷛޚ೼OSIตච῵ൟЁՈԡาḚ೒2ǃCAL णᩲCAL˄CAN Application Layer˅णᩲᰃֲࠡ෎ѢCANՈʌሖỞᩳणᩲЁՈϔ࢑ˈ᳔ᮽϵPhilipsएћ᪂໛ᾬ⒬ࠊᅮDŽɴ೼CALϵưএՈCANϬ᠋੠ࠊỤଚ▊ಶCiA˄CAN in Automation˅णӮᯣᯧ੥ˊǃথሩ੠᥼ᑓDŽCALᦤկњ4࢑ᑨϬሖ᳡ࡵࡳ࿁˖z CMS (CAN-based Message Specification)CMSᦤկњϔϾᓔᬒՈǃ☦৥ᇍᬥՈɳ๗ˈϬѢᅲɴϬ᠋ՈᑨϬDŽCMSᦤկ෎ѢবₓǃџӊǃඳିൟՈᇍᬥˈҹ᪂ᩥ੠ᢈᅮϔϾ᪂໛˄ᅆ⚍˅Ոࡳ࿁བԩᝯ᪃⒲˄՟བˈབԩϞṁϟṁ᱉ẋ8ᄫᅆՈϔඈ᭄᥂˄ඳ˅ˈᑊϨ᳝ඌℶӴṗՈࡳ࿁˅DŽCMSҢMMS (Manufacturing Message Specification)ණᡓ໐ᴹDŽMMSᰃOSIЎᎹϮ᪂໛ՈẠ࣏᥻ࠊ੠֕᥻໐ࠊᅮՈᑨϬሖᢈᇇDŽz NMT (Network ManagemenT)ᦤկตච੥ˊ˄བ߱ྟ࣪ǃਃࡼ੠ذℶᅆ⚍ˈպ⌟༅ᬜᅆ⚍˅᳡ࡵDŽẝ࢑᳡ࡵᰃ₋ϬЏҢỞᩳ῵ᓣ˄᠔ҹা᳝ϔϾNMTЏᅆ⚍˅ᴹᅲɴՈDŽz DBT (DistriBuTor)ᦤկࡼᗕߚ‑CAN ID˄ℷᓣৡࢴЎCOB-IDˈCommunication Object Identifier˅᳡ࡵDŽẝ࢑᳡ࡵᰃ₋ϬЏҢỞᩳ῵ᓣ˄᠔ҹা᳝ϔϾDBTЏᅆ⚍˅ᴹᅲɴՈDŽz LMT (Layer ManagemenT)LMTᦤկׂᬍሖখ᭄Ո᳡ࡵ˖ϔϾᅆ⚍˄LMT Master˅ৃҹ᪂า঺໪ϔϾᅆ⚍˄LMT Slave˅Ոᶤሖখ᭄˄བᬍবϔϾᅆ⚍ՈNMTഄഔˈ៪ᬍবCAN᥹ষՈԡᅮᯊ੠⊶Ľɋ˅DŽCMSЎᅗՈ⍜ᙃᅮНњ8ϾӬܜ൫ˈ↣ϾӬܜ൫ᢹ᳝220ϾCOB-IDˈᇇೈҢ1ࠄ1760DŽ࠽ԭՈᷛᖫ˄0ˈ1761-2031˅ֱНඝNMTˈDBT੠LMTˈᢅᜬ2-1DŽᜬ2-1 ᯴ᇘࠄCAL᳡ࡵ੠ᇍᬥՈCOB-ID(11ԡCANᷛ᪊৪)COB-ID ᳡ࡵ៪ᇍᬥ0 NMT ਃࡼ/ذℶ᳡ࡵ1 - 220 CMSᇍᬥ Ӭܜ൫0221 - 440 CMSᇍᬥ Ӭܜ൫1441 - 660 CMSᇍᬥ Ӭܜ൫2661 - 880 CMSᇍᬥ Ӭܜ൫3881 - 1100 CMSᇍᬥ Ӭܜ൫41101 - 1320 CMSᇍᬥ Ӭܜ൫51321 - 1540 CMSᇍᬥ Ӭܜ൫61541 - 1760 CMSᇍᬥ Ӭܜ൫71761 - 2015 NMT ᅆ⚍ֱᡸ2016 - 2031 NMTˈLMTˈDBT᳡ࡵ⊼ᛣẝᰃCAN2.0Aᷛޚˈ11ԡIDᇇೈ[0ˈ2047]ˈϵѢग़৆ॳ಴└ࠊ೼[0ˈ2031]DŽབᵰՓϬCAN2.0B ᷛޚˈ29ԡIDᑊϡᬍবẝϾᦣẴ˗ᜬЁՈ11ԡ᯴ᇘࠄ29ԡCOB-IDЁՈ᳔ʌ11ԡˈҹႷѢᜬЁՈCOB-ID ᇇೈবᕫ๲໻᩼໮DŽ3ǃCANopenCALᦤկњ᠔᳝Ոตච੥ˊ᳡ࡵ੠᡹᭛ӴễणᩲˈԚᑊ≵᳝ᅮНCMSᇍᬥՈݙᆍ៪້ℷ೼ỞᩳՈᇍᬥՈିൟ˄ᅗাᅮНњhowˈ≵᳝ᅮНwhat˅DŽ໐ẝℷᰃCANopenߛܹ⚍DŽCANopenᰃ೼CAL෎܄ϞᓔথՈˈՓϬњCALỞᩳ੠᳡ࡵणᩲᄤ▊ˈᦤկњߚᏗᓣ᥻ࠊிඣՈϔ࢑ᅲɴᮍḜDŽCANopen೼ֱ᪅ตචᅆ⚍ѦϬᗻՈৠᯊܕ᩼ᅆ⚍Ոࡳ࿁╓ᛣᠽሩ˖៪੄ऩ៪໡ᴖDŽCANopenՈḌᖗὖᗉᰃ᪂໛ᇍᬥᄫ݌˄OD˖Object Dictionary˅ˈ೼݊ᅗɴഎᘏඃ˄ProfibusˈInterbus-S˅ிඣЁгՓϬẝ࢑᪂໛ᦣẴᔶᓣDŽ⊼ᛣ˖ᇍᬥᄫ݌ϡᰃCALՈϔᾬߚˈ໐ᰃ೼CANopenЁᅲɴՈDŽϟ☦ܜҟඑᇍᬥᄫ݌˄OD˖Object Dictionary˅ˈ✊ৢݡҟඑCANopenỞᩳᴎࠊDŽ3.1 ᇍᬥᄫ݌ODᇍᬥᄫ݌˄OD˖Object Dictionary˅ᰃϔϾ᳝ᑣՈᇍᬥඈ˗↣Ͼᇍᬥ₋ϬϔϾ16ԡՈ௦ᓩؐᴹᇏഔˈЎњܕ᩼᪃⒲᭄᥂඗ᵘЁՈऩϾܗ௤ˈৠᯊᅮНњϔϾ8ԡՈᄤ௦ᓩˈᇍᬥᄫ݌Ո඗ᵘখ+ᜬ3-1DŽϡᡅᝯᇍᬥᄫ݌Ё௦ᓩؐԢѢ0x0FFFՈþdata typesÿ-᠔ẻᚥˈᅗӀҙҙᰃϔѯ᭄᥂ିൟᅮНDŽϔϾᅆ⚍Ոᇍᬥᄫ݌Ո᳝݇ᇇೈ೼0x1000ࠄ0x9FFFПⒸDŽᜬ3-1 CANopenᇍᬥᄫ݌ỞϬ඗ᵘ௦ᓩᇍᬥ0000 Notused0001 - 001F ☝ᗕ᭄᥂ିൟ˄ᷛޚ᭄᥂ିൟˈབBooleanˈInteger 16˅0020 - 003F ໡ᴖ᭄᥂ିൟ˄8ᅮНϵ੄ऩିൟඈড়៤Ո඗ᵘབPDOCommParˈSDOParameter˅0040 - 005F ࠊỤଚᢈᅮՈ໡ᴖ᭄᥂ିൟ0060 - 007F ᪂໛ᄤणᩲᢈᅮՈ☝ᗕ᭄᥂ିൟ0080 - 009F ᪂໛ᄤणᩲᢈᅮՈ໡ᴖ᭄᥂ିൟ00A0 - 0FFF Reserved1000 - 1FFF Ởᩳᄤणᩲऎඳ(བ᪂໛ିൟˈ⏝᪳ᆘᄬ఼ˈᬃᣕՈPDO᭄ₓ)2000 - 5FFF ࠊỤଚĽᅮᄤणᩲऎඳ6000 - 9FFF ᷛޚՈ᪂໛ᄤणᩲऎඳ(՟བĀDSP-401 I/O ῵ഫ᪂໛ᄤणᩲā˖Read State 8 Input Lines਍)A000 - FFFF ReservedCANopenตචЁ↣Ͼᅆ⚍῁᳝ϔϾᇍᬥᄫ݌DŽᇍᬥᄫ݌ࣙ৿њᦣẴẝϾ᪂໛੠ᅗՈตචᜐЎՈ᠔᳝খ᭄DŽϔϾᅆ⚍Ոᇍᬥᄫ݌ᰃ೼Ϲᄤ᭄᥂᭛ḷ˄EDS˖Electronic Data Sheet˅ЁᦣẴ៪້ᩴᔩ೼ർϞDŽϡᖙᡅгϡ◄ᡅỞẋCAN-busĀᅵ⒲āϔϾᅆ⚍Ոᇍᬥᄫ݌ЁՈ᠔᳝খ᭄DŽབᵰϔϾᅆ⚍ϹḐᣝ+೼ർϞՈᇍᬥᄫ݌ẟᜐᦣẴ݊ᜐЎˈгᰃৃҹՈDŽᅆ⚍ᴀᵯা◄ᡅ࿁໳ᦤկᇍᬥᄫ݌Ёᖙ◄Ոᇍᬥ˄໐೼CANopen ᢈᅮЁᖙ◄Ո-ᅲ┉ϞᰃᕜᇥՈ˅ˈҹঞ݊ᅗৃọᢽՈǃᵘ៤ᅆ⚍ᾬߚৃ‑าࡳ࿁ՈᇍᬥDŽCANopenϵϔி߫ࢴЎᄤणᩲՈ᭛ḷඈ៤DŽỞᩳᄤणᩲ˄communication profile˅ˈᦣẴᇍᬥᄫ݌ՈЏᡅᔶᓣ੠ᇍᬥᄫ݌ЁՈỞᩳᄤणᩲऎඳЁՈᇍᬥˈỞᩳখ᭄DŽৠᯊᦣẴCANopenỞᩳᇍᬥDŽẝϾᄤणᩲỆϬѢ᠔᳝ՈCANopen᪂໛DŽẜ᳝৘࢑᪂໛ᄤणᩲ˄device profile˅ˈЎ৘࢑ϡৠିൟ᪂໛ᅮНᇍᬥᄫ݌ЁՈᇍᬥDŽֲࠡᏆ᳝5࢑ϡৠՈ᪂໛ᄤणᩲˈᑊ᳝޴࢑ℷ೼থሩDŽ᪂໛ᄤणᩲЎᇍᬥᄫ݌ЁՈ↣ϾᇍᬥᦣẴњᅗՈࡳ࿁ǃৡᄫǃ௦ᓩ੠ᄤ௦ᓩǃ᭄᥂ିൟˈҹঞẝϾᇍᬥᰃᖙ◄ՈẜᰃৃọՈˈẝϾᇍᬥᰃাᪿǃাݭ៪້ৃᪿݭ਍਍DŽ⊼ᛣ˖ϔϾ᪂໛ՈỞᩳࡳ࿁ǃỞᩳᇍᬥǃϢ᪂໛ּ݇ՈᇍᬥҹঞᇍᬥՈ෾ׅؐϵϹᄤ᭄᥂᭛ḷ˄EDS ˖Electronic Data Sheet ˅ЁᦤկDŽऩϾ᪂໛Ոᇍᬥ‑าՈᦣẴ᭛ӊࢴ԰᪂໛‑า᭛ӊ˄DCF ˖Device Configuration File ˅ˈᅗ੠EDS ּ᳝ৠՈ඗ᵘDŽѠ້᭛ӊିൟ῁೼CANopen ᢈᇇЁᅮНDŽ᪂໛ᄤणᩲᅮНњᇍᬥᄫ݌ЁાѯOD ᇍᬥᰃᖙ◄ՈˈાѯᰃৃọՈ˗ᖙ◄Ոᇍᬥᑨ᪩ֱᣕ᳔ᇥ᭄ֲҹޣᇣᅲɴՈᎹ԰ₓDŽৃọ-̣̣೼Ởᩳᾬߚ੠Ϣ᪂໛ּ݇ᾬߚ̣̣ৃҹḍ᥂◄ᡅ๲ࡴҹᠽሩCANopen ᪂໛Ոࡳ࿁DŽབᵰ◄ᡅՈ-᱉ẋњ᪂໛ᄤणᩲЁৃҹᦤկՈˈ೼᪂໛ᄤणᩲЁᏆ8Нϵᱷ໳ाⒸᦤկඝॖଚՈĽᅮࡳ࿁ՓϬDŽᇍᬥᄫ݌ЁᦣẴỞᩳখ᭄ᾬߚᇍ᠔᳝CANopen ᪂໛˄՟བ೼OD ЁՈᇍᬥᰃּৠՈˈᇍᬥؐϡᖙϔᅮּৠ˅῁ᰃϔḋՈDŽᇍᬥᄫ݌Ё᪂໛ּ݇ᾬߚᇍѢϡৠିՈ᪂໛ᰃϡৠՈDŽ3ˊ2 CANopen Ởᩳࠡ☦᪸ᯢњCANopen Ёᇍᬥᄫ݌Ոὖᗉˈɴ೼៥Ӏᴹҟඑ೼CANopen ตචЁՈỞᩳ⍜ᙃˈᅗӀՈݙᆍ੠ࡳ࿁ˈᤶহ᪡˖CANopen Ởᩳ῵ᓣDŽ⊼ᛣ˖᪻ऎߚᇍᬥᄫ݌ЁՈᇍᬥ˄ՓϬᇍᬥᄫ݌௦ᓩ੠ᄤ௦ᓩ˅੠Ởᩳᇍᬥ˄៪້⍜ᙃˈՓϬCOB-ID ˅DŽCANopen Ởᩳ῵ൟᅮНњ4࢑᡹᭛˄Ởᩳᇍᬥ˅˖ 1ˊ ੥ˊ᡹᭛z ሖ੥ˊˈตච੥ˊ੠ID ߚ‑᳡ࡵ˖བ߱ྟ࣪ˈ‑า੠ตච੥ˊ˄ࣙᣀ˖ᅆ⚍ֱᡸ˅DŽz ᳡ࡵ੠णᩲ৪ড়CAL ЁՈLMT ˈNMT ੠DBT ᳡ࡵᾬߚDŽẝѯ᳡ࡵ῁ᰃ෎ѢЏҢỞᩳ῵ᓣ˖೼CAN ตචЁˈা࿁᳝ϔϾLMT ˈNMT ៪DBT Џᅆ⚍ҹঞϔϾ៪໮ϾҢᅆ⚍DŽ2ˊ ᳡ࡵ᭄᥂ᇍᬥSDO(Service Data Object)z ỞẋՓϬ௦ᓩ੠ᄤ௦ᓩ˄೼CAN ᡹᭛Ոࠡ޴Ͼᄫᅆ˅ˈSDO Փᅶ᠋ᴎ࿁໳᪃⒲᪂໛˄᳡ࡵ఼˅ᇍᬥᄫ݌ЁՈ-˄ᇍᬥ˅DŽz SDO ỞẋCAL Ё໮ܗඳՈCMS ᇍᬥᴹᅲɴˈܕ᩼Ӵễӏԩ⑃ᑺՈ᭄᥂˄ᔧ᭄᥂᱉ẋ4Ͼᄫᅆᯊߚᢚ៤޴Ͼ᡹᭛˅DŽz णᩲᰃܲᩨ᳡ࡵିൟ˖Ў↣Ͼ⍜ᙃϣ៤ϔϾᑨਘ˄ϔϾSDO ◄ᡅϸϾID ˅DŽSDO ᪻∖੠ᑨਘ᡹᭛ᘏᰃࣙ৿8Ͼᄫᅆ˄≵᳝ᛣНՈ᭄᥂⑃ᑺ೼ৰϔϾᄫᅆЁᜬ߾ˈৰϔϾᄫᅆᨎᏺणᩲֵᙃ˅DŽSDO Ởᩳ᳝ṇ໮ՈणᩲᢈᅮDŽ3ˊ ẋ᭄࣏᥂ᇍᬥPDO ˄Process Data Object ˅z ϬᴹӴṗᅲᯊ᭄᥂ˈ ᭄᥂ҢϔϾϣѻ້ӴࠄϔϾ៪໮Ͼ⍜᯽້DŽ᭄᥂Ӵễ└ࠊ೼1ࠄ8Ͼᄫᅆ˄՟བˈϔϾPDO ৃҹӴṗ᳔໮64Ͼ᭄ᄫI/O ؐˈ៪້4Ͼ16ԡՈAD ؐ˅DŽz PDO Ởᩳ≵᳝णᩲᢈᅮDŽPDO ᭄᥂ݙᆍাϵᅗՈCAN ID ᅮНˈ؛ᅮϣѻ້੠⍜᯽້ک἗ẝϾPDO Ո᭄᥂ݙᆍDŽz ↣ϾPDO ೼ᇍᬥᄫ݌ЁϬ2ϾᇍᬥᦣẴ˖PDO Ởᩳখ᭄˖ࣙ৿ાϾCOB-ID ᇚᝯPDO ՓϬˈӴṗିൟˈࡅℶᯊⒸ੠ᅮᯊ఼਼ᳳDŽ PDO ᯴ᇘখ᭄˖ࣙ৿ϔϾᇍᬥᄫ݌ЁᇍᬥՈ߫ᜬˈẝѯᇍᬥ᯴ᇘࠄPDO ₐˈࣙᣀᅗӀՈ᭄᥂⑃ᑺ˄in bits ˅DŽϣѻ້੠⍜᯽້ᖙ/ک἗ẝϾ᯴ᇘˈҹᢧ₎PDO ݙᆍDŽz PDO ⍜ᙃՈݙᆍᰃ8ᅮНՈ˄៪້೼ตචਃࡼᯊ‑าՈ˅˖᯴ᇘᑨϬᇍᬥࠄPDO Ёᰃ೼᪂໛ᇍᬥᄫ݌ЁᦣẴՈDŽབᵰ᪂໛˄ϣѻ້੠⍜᯽້˅ᬃᣕৃবPDO ᯴ᇘˈὧМՓϬSDO ᡹᭛ৃҹ‑าPDO ᯴ᇘখ᭄DŽ z ৃҹ᳝໮࢑Ӵễᮍᓣ˖ᩨ᳡ࡵିൟṗᅲᯊ᭄᥂PDOৠℹ˄Ởẋ᥹ᬊSYNC ᇍᬥᅲɴৠℹ˅☢਼ᳳ˖ϵẠ࣏ᏻ8ᢪথӴễˈ៪້ϵ᪂໛ᄤणᩲЁᢈᅮՈᇍᬥĽᅮџӊ8ᢪথӴễDŽ ਼ᳳ˖Ӵễ೼↣1ࠄ240ϾSYNC ⍜ᙃৢᢪথDŽ ᓖℹϵẠ࣏ᏻᢪথӴễDŽϵ᪂໛ᄤणᩲЁᢈᅮՈᇍᬥĽᅮџӊᢪথӴễDŽᜬ3-2ඝߎᴹњϵӴṗିൟᅮНՈϡৠPDO Ӵṗ῵ᓣˈӴṗିൟЎPDO Ởᩳখ᭄ᇍᬥՈϔᾬߚˈϵ8ԡ᮴৪োᭈ᭄ᅮНDŽᜬ3-2 PDO ӴṗିൟᅮНᢪথPDO Ոᴵӊ(B = both needed O = one or both) ӴṗିൟSYNCRTREventPDO Ӵṗ0 B - B ৠℹˈ☢ᕾɳ 1-240 O - - ৠℹˈᕾɳ 241-251 - -- Reserved252 B B - ৠℹˈ೼RTR Пৢ 253 - O - ᓖℹˈ೼RTR Пৢ 254 - O O ᓖℹˈࠊỤଚĽᅮџӊ 255 - O O ᓖℹˈ᪂໛ᄤणᩲĽᅮџӊ ᪸ᯢ˖z SYNC –᥹ᬊࠄSYNC-object DŽ z RTR ˉ᥹ᬊࠄẠ࣏ᏻDŽz Event –՟བ᭄ؐᬍব៪້ᅮᯊ఼ЁᮁDŽz ӴṗିൟЎ˖1ࠄ240ᯊˈ᪩᭄ᄫҷᜬϸϾPDO ПⒸՈSYNC ᇍᬥՈ᭄ֲ˅DŽz ϔϾPDO ৃҹᣛᅮϔϾࡅℶᯊⒸˈेᅮНϸϾẢනPDO ӴṗՈ᳔ᇣⒸ╘ᯊⒸˈὃܡϵѢʌӬܜ൫ֵᙃՈ᭄᥂ₓ໾໻ˈྟඌऴ᥂ᘏඃˈ໐Փ݊ᅗӬܜ൫ṇԢՈ᭄᥂᮴࡯ঢѝᘏඃՈ⒲L DŽࡅℶᯊⒸϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡ100us DŽ z ϔϾPDO ৃҹᣛᅮϔϾџӊᅮᯊ਼ᳳˈᔧ᱉ẋᅮᯊᯊⒸৢˈϔϾPDO Ӵṗৃҹᝯᢪথ˄ϡ◄ᡅᢪথԡ˅DŽџӊᅮᯊ਼ᳳϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡ1ms DŽ z PDO ỞẋCAL ЁᄬټџӊିൟՈCMS ᇍᬥᅲɴDŽPDO ᭄᥂Ӵễ≵᳝Ϟሖणᩲˈ໐ϨPDO ᡹ᩨ˄ϔϾPDO ◄ᡅϔϾCAN-ID ˅DŽ↣ϾPDO ᡹᭛Ӵễ᳔໮8Ͼᄫᅆ˄64ԡ˅᭄᥂DŽ4ˊ 8ᅮН᡹᭛៪້Ľ⅞ࡳ࿁ᇍᬥz ৠℹ˄SYNC ˅೼ตචᇇೈݙৠℹ˄ᇸ݊೼ȥࡼᑨϬЁ˅˖೼ᭈϾตචᇇೈݙᔧࠡṗܹؐޚৠᯊֱᄬˈ╓ৢӴễ˄བᵰ◄ᡅ˅ˈḍ᥂ࠡϔϾSYNC ৢ᥹ᬊࠄՈ᡹᭛᳈ᮄṗߎؐDŽЏҢ῵ᓣ˖SYNC Џᅆ⚍ᅮᯊথễSYNC ᇍᬥˈSYNC Ңᅆ⚍ᬊࠄৢৠℹᠻᜐӏࡵDŽ ೼SYNC ᡹᭛Ӵễৢˈ೼ඝᅮՈᯊⒸज़ষݙӴễϔϾৠℹPDO DŽ ϬCAL Ё෎ᴀবₓିൟՈCMS ᇍᬥᅲɴDŽDŽSYNC ᡹᭛ৃҹϡz ᯊⒸᷛᩴᇍᬥ˄Time Stamp ˅ЎᑨϬ᪂໛ᦤկ݀݅ՈᯊⒸᏻখ໇DŽ ϬCAL ЁᄬټџӊିൟՈCMS ᇍᬥᅲɴDŽϔϾऩԡऩԡϾџӊᅮᯊ਼᭛≵᳝ܲᩨӴễ᭄᥂ҹՓ᡹᭛ሑৃ࿁ڱDŽCANopen COB-ID ᓎᩲϬϔϾ᳔ʌӬܜ൫Ոҹֱ᪅ৠℹֵোℷᐌӴễz ௫ᗹџӊ˄Emergency˅᪂໛ݙᾬ⏝᪳ᢪথDŽϬCALЁᄬټџӊିൟՈCMSᇍᬥᅲɴDŽz ᅆ⚍/ᇓੑֱᡸ˄Node/Life guarding˅DŽЏҢỞᩳ῵ᓣNMTЏᅆ⚍֕᥻ᅆ⚍źᗕ˖ࢴ԰ᅆ⚍ֱᡸ˄Node guarding˅DŽᅆ⚍гৃҹ˄ৃọᢽ˅֕᥻NMTЏᅆ⚍Ոźᗕ˖ࢴ԰ᇓੑֱᡸ˄Life guarding˅DŽᔧNMT Ңᅆ⚍᥹ᬊࠄNMTЏᅆ⚍থễՈৰϔϾNode Guard᡹᭛ৢਃࡼᇓੑֱᡸDŽ Ẕ⌟᪂໛Ոตච᥹ষ⏝᪳˄ϡᰃ᪂໛ႮᵯՈ⏝᪳˅˖Ởẋᑨᗹᣛ߾᡹ਞDŽḍ᥂NMTᅆ⚍ֱᡸणᩲᅲɴ˖ NMTЏᅆ⚍থễẠ࣏᪻∖ࠄϔϾĽᅮᅆ⚍ˈᅆ⚍ඝߎᑨਘˈᑨਘ᡹᭛Ёࣙ৿њẝϾᅆ⚍ՈźᗕDŽz Boot-UPЏҢỞᩳ῵ᓣNMTҢᅆ⚍ỞẋথễẝϾ᡹᭛ˈ৥NMTЏᅆ⚍᪸ᯢ᪩ᅆ⚍Ꮖඓϵ߱ྟ࣪źᗕẟܹ8᪡԰źᗕDŽ೒3-1 CANopen ᪂໛Ϟ☦ᦤࠄՈỞᩳᇍᬥିൟЁ᳝ѠϾᇍᬥϬѢ᭄᥂ӴṗDŽᅗӀ₋ϬѠ࢑ϡৠՈ᭄᥂Ӵṗᴎࠊᅲɴ˖z SDO Ϭᴹ೼᪂໛ПⒸӴṗ໻ՈԢӬܜ൫᭄᥂ˈ݌ൟՈᰃϬᴹ‑าCANopenตචϞՈ᪂໛DŽz PDO ϬᴹӴṗ8ᄫᅆ៪᳈ᇥ᭄᥂ˈ≵᳝݊ᅗणᩲ8᪂ᅮ˄ᛣੇ؄᭄᥂ݙᆍᏆ8ܜᅮН˅DŽϔϾCANopen᪂໛ᖙ/ᬃᣕϔᅮ᭄ₓՈตච੥ˊ᳡ࡵ˄੥ˊ᡹᭛ˈadministrative messages˅ˈ◄ᡅႷᇥϔϾSDODŽ↣Ͼϣѻ៪⍜᯽ẋ᭄࣏᥂Ո᪂໛◄ᡅႷᇥϔϾPDODŽ᠔᳝݊ᅗՈỞᩳᇍᬥᰃৃọՈDŽϔϾCANopen᪂໛ЁCANỞᩳ᥹ষǃᇍᬥᄫ݌੠ᑨϬ࣏ᑣПⒸՈ༘ிབ೒3-1᠔߾DŽ3ˊ3 CANopen8ᅮНẢ᥹▊Ўњޣᇣ੄ऩตචՈඈᗕᎹ԰ₓˈCANopenᅮНњᔎࠊᗻՈ෾ׅᷛ᪊৪˄CAN-ID˅ߚ‑ᜬDŽẝѯᷛᖫ৪೼8᪡԰źᗕϟৃϬˈỞẋࡼᗕߚ‑ẜৃׂᬍҪӀDŽCANopen᪂໛ᖙ/৥ᅗ᠔ᬃᣕՈỞᩳᇍᬥՈᦤկּᑨՈᷛ᪊৪DŽ෾ׅIDߚ‑ᜬᰃ෎Ѣ11ԡCANˉIDˈࣙ৿ϔϾ4ԡՈࡳ࿁ۅᾬߚ੠ϔϾ7ԡՈᅆ⚍ID(Node-ID)ᾬߚDŽབ೒3-2᠔߾DŽ೒3-2 8ᅮНẢ᥹▊IDNode-ID ϵிඣ▊៤ଚᅮНˈ՟བỞẋ᪂໛ϞՈᢼۅᓔ݇᪂าDŽNode-ID ᇇೈᰃ1~127˄0ϡܕ᩼ᝯՓϬ˅DŽ8ᅮНՈẢ᥹▊ᅮНњ4Ͼ᥹ᬊPDO ˄Receive ˉPDO ˅ˈ4ϾথễPDO ˄Transmit ˉPDO ˅ˈ1ϾSDO ˄ऴϬ2ϾCAN-ID ˅ˈ1Ͼ௫ᗹᇍᬥ੠1Ͼᅆ⚍⏝᪳᥻ࠊ(Node-Error-Control)ID DŽгᬃᣕϡ◄ܲᩨՈNMT-Module-Control ᳡ࡵˈSYNC ੠Time Stamp ᇍᬥՈᑓ᪁DŽ෾ׅID ߚ‑ᜬབᜬ3-3᠔߾DŽᜬḐ 3-3 CANopen 8ᅮНЏ/ҢẢ᥹▊CAN ᷛ᪊৪ߚ‑ᜬCANopen 8ᅮНЏ/ҢẢ᥹▊Ոᑓ᪁ᇍᬥᇍᬥࡳ࿁ۅ ˄ID-bits 10-7˅COB-ID Ởᩳখ᭄೼OD ЁՈ௦ᓩNMT Module Control 0000 000H -SYNC 0001 080H 1005H ˈ1006H ˈ1007HTIME SSTAMP0010100H1012H ˈ1013HCANopen Џ/ҢẢ᥹▊Ոᇍ਍ᇍᬥ ᇍᬥ ࡳ࿁ۅࡳ࿁ۅ ˄ID-bits 10-7˅COB-IDỞᩳখ᭄೼OD ЁՈ௦ᓩ௫ᗹ 0001 081H-0FFH 1024H ˈ1015H PDO1(থễ) 0011 181H-1FFH 1800H PDO1(᥹ᬊ) 0100 201H-27FH 1400H PDO2(থễ) 0101 281H-2FFH 1801H PDO2(᥹ᬊ) 0110 301H-37FH 1401H PDO3(থễ) 0111 381H-3FFH 1802H PDO3(᥹ᬊ) 1000 401H-47FH 1402H PDO4(থễ) 1001 481H-4FFH 1803H PDO4(᥹ᬊ) 1010 501H-57FH 1403H SDO(থễ/᳡ࡵ఼) 1011 581H-5FFH 1200H SDO(᥹ᬊ/ᅶ᠋) 1100 601H-67FH 1200HNMT Error Control 1110701H-77FH1016H-1017H⊼ᛣ˖z PDO/SDO থễ/᥹ᬊᰃϵ˄slave ˅CAN ᅆ⚍ᮍᢆᆳՈDŽz ᥻ࠊࣙᣀᅆ⚍ֱᡸ˄Node Guarding ˅ˈᖗᲷ᡹᭛˄Heartbeat ˅੠Boot-up णᩲDŽ ՈᑓՈᇍNMT ⏝᪳᥻ࠊࣙᣀᅆ⚍N ˅H3ˊ4 CANopenᷛ᪊৪ߚ‑IDഄഔߚ‑ᜬϢ8ᅮНՈЏҢẢ᥹▊˄set˅ּᇍᑨˈ಴Ў᠔᳝Ոᇍ਍IDᰃϡৠՈˈ᠔ҹᅲ┉Ϟা᳝ϔϾЏ᪂໛(ک἗᠔᳝Ả᥹Ոᅆ⚍ID)࿁੠Ả᥹Ո↣ϾҢᅆ⚍˄᳔໮127Ͼ˅ҹᇍ਍ᮍᓣỞᩳDŽϸϾẢ᥹೼ϔ᰻ՈҢᅆ⚍ϡ࿁໳Ởᩳˈ಴ЎᅗӀᕐℸϡک἗ᇍᮍՈᅆ⚍IDDŽ↨ṇϞᜬՈID᯴ᇘ੠CALՈ᯴ᇘˈᰒ߾њ݋᳝Ľᅮࡳ࿁ՈCANopenᇍᬥབԩ᯴ᇘࠄCALЁϔჰՈCMSᇍᬥDŽCANopenตචЁCAN ᷛ᪊৪˄៪COB-ID˅ߚ‑3࢑ϡৠᮍ⊩˖z ՓϬ8ᅮНՈЏҢẢ᥹▊DŽIDᰃ෾ׅՈˈϡ◄ᡅ‑าDŽབᵰᅆ⚍ᬃᣕˈPDO᭄᥂ݙᆍгৃҹ‑าDŽz ϞϹৢׂᬍPDOՈID˄೼8᪡԰źᗕ˅ˈՓϬ˄8ᅮНՈ˅SDO೼ᅆ⚍Ոᇍᬥᄫ݌ЁỆᔧԡาẟᜐׂᬍDŽz ՓϬCAL DBT᳡ࡵ˖ᅆ⚍៪Ңᅆ⚍᳔߱ϵᅗӀՈ‑าIDᣛࢴDŽᅆ⚍IDৃҹϵ᪂໛ϞՈᢼۅᓔ݇‑าˈ៪ՓϬCAL LMT᳡ࡵẟᜐ‑าDŽᔧตච߱ྟ࣪ᅠ↩ˈᑊϨਃࡼৢˈЏᅆ⚍ŊܜỞẋ”Connect_Remote_Node”᡹᭛˄ᰃϔϾCAL NMT᳡ࡵ˅੠↣ϾẢ᥹ՈҢ᪂໛ᓎএϔϾᇍ᪡DŽϔᮺẝϾᇍ᪡ᓎএˈCANỞᩳID˄SDO੠PDO˅ϬCAL DBT᳡ࡵߚ‑དˈẝ◄ᡅᅆ⚍ᬃᣕᠽሩՈboot-upDŽ3ˊ5 CANopen boot-upẋ࣏೼ตච߱ྟ࣪ẋ࣏ЁˈCANopenᬃᣕᠽሩՈboot-upˈгᬃᣕ᳔ᇣ࣪boot-upẋ࣏DŽᠽሩboot-upᰃৃọՈˈ᳔ᇣboot-up߭ᖙ/ᝯ↣Ͼᅆ⚍ᬃᣕDŽϸିᅆ⚍ৃҹ೼ৠϔϾตචЁৠᯊᄬ೼DŽབᵰՓϬCALՈDBT᳡ࡵẟᜐIDߚ‑ˈ߭ᅆ⚍ᖙ/ᬃᣕᠽሩboot-upẋ࣏DŽৃҹϬᅆ⚍źᗕḰᤶ೒ᜬ߾ẝϸ࢑߱ྟ࣪ẋ࣏ˈབ೒3-3᠔߾DŽᠽሩboot-upՈźᗕ೒೼8᪡԰੠᪡԰źᗕПⒸ↨᳔ᇣ࣪boot-up໮њϔѯźᗕDŽ೒3-3 CANopen᳔ᇣ࣪boot-upᅆ⚍źᗕḰᤶ೒⊼ᛣ˖z ೒3-3ЁᣀোݙՈᄫ↡ᜬ߾໘ѢϡৠźᗕὧѯỞᩳᇍᬥৃҹՓϬDŽa. NMT ˈb. Node Guard ˈc. SDO ˈd. Emergency ˈe. PDO ˈf. Boot-upz źᗕḰࢿ˄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 ᳡ࡵ῁ৃՓ᠔᳝៪້ᾬߚᅆ⚍ẟܹϡৠՈᎹ԰źᗕDŽNMT ᳡ࡵՈCAN ᡹᭛ϵCAN ༈(COB-ID=0)੠ϸᄫᅆ᭄᥂ඈ៤˗ৰϔϾᄫᅆᜬ߾᪻∖Ո᳡ࡵିൟ(‘NMT command specifier’)ˈৰѠϾᄫᅆᰃᅆ⚍ID ˈ៪້0˄ℸᯊᇏഔ᠔᳝ᅆ⚍˅DŽҙᬃᣕ᳔ᇣ࣪boot-up Ո᪂໛ি᳔ᇣ࿁࡯᪂໛DŽ᳔ᇣ࿁࡯᪂໛೼᪂໛߱ྟ࣪඗ᴳৢႮࡼẟܹ8᪡԰l źᗕDŽ೼ẝϾźᗕˈৃҹỞẋSDO ẟᜐখ᭄‑า੠ẟᜐCOB-ID ߚ‑DŽ᪂໛ẟܹޚ໛źᗕњNMT ᳡ࡵ੠ᅆ⚍ֱᡸ᳡ࡵ˄བᵰᬃᣕᑊϨ▔⌏Ո᪡˅໪ˈᇚذℶỞᩳDŽ˄಴ℸþStopped ÿᰃᦣẴẝϾźᗕՈϔϾདৡᄫ˅3ˊ6 CANopen ⍜ᙃ᪱⊩ඊᅆ೼ҹϟᾬߚЁCOB ˉID ՓϬՈᰃCANopen 8ᅮНẢ᥹▊ЁᏆᅮНՈ෾ׅᷛᖫ৪DŽ3ˊ6ˊ1 NMT ῵ഫ᥻ࠊ˄NMT Module Control ˅া᳝ᅆ⚍࿁໳ӴễNMT Module Control ᡹᭛DŽ᠔᳝Ң᪂໛ᖙ/ᬃᣕNMT ῵ഫ᥻ࠊ᳡ࡵDŽNMT Module Control ⍜ᙃNMT ⍜ᙃḐᓣབϟ˖NMT-Master Î NMT-Slave(s)COB-IDByte 0Byte 10x000 CS Node-IDNode-ID=0ˈ߭᠔᳝ՈNMT Ң᪂໛ᝯᇏഔDŽCS ᰃੑҸᄫˈৃҹপབϟؐ˖ੑҸᄫ NMT ᳡ࡵ1 Start Remote Node2 Stop Remote Node Enter Pre-operational State129 Reset Node130 Reset Communication3ˊ6ˊ2 MNT ᅆ⚍ֱᡸ˄NMT Node Guarding ˅NMT-Master ᅆ⚍থễẠ࣏ᏻ˄᮴᭄᥂˅བϟ˖NMT-Master Î NMT-Slave COB-ID 0x700+Node_IDNMT-Slave ᅆ⚍থễབϟ᡹᭛ᑨਘ˖NMT-Master Í NMT-Slave COB-ID Byte00x700 + Node_IDBit 7 : toggle Bit6-0 : źᗕ᭄᥂ᾬߚࣙᣀϔϾᢪথԡ˄bit7˅ˈᢪথԡᖙ/೼↣⃵ᅆ⚍ֱᡸᑨਘЁѸ᳓าĀ0ā៪້Ā1āDŽᢪথԡ೼ৰϔ⃵ᅆ⚍ֱᡸ᪻∖ᯊาЎĀ0āDŽԡ0ࠄԡ6˄bits0̚6˅ᜬ߾ᅆ⚍źᗕˈৃЎϟᜬЁՈ᭄ؐDŽNMT-Master ᅆ⚍࿁ᙃϡ◄ᡅᑨਘDŽৢˈ┨128129130 MNT Ởẋᅆ⚍ֱᡸ᳡ࡵˈM Џᅆ⚍ৃҹẔᶹ↣Ͼᅆ⚍Ոᔧࠡźᗕˈᔧẝѯᅆ⚍≵᭄᳝᥂Ӵễᯊẝ࢑᳡ࡵᇸ᳝݊ᛣНDŽ᭛ᑨ῵ഫ᥻ࠊ᳡ᔧValueźᗕ0 Initialising 1 Disconnected * 2 Connecting * 3Preparing *4 Stopped5 Operational 127 Pre-operationalboot-up Ոᅆ⚍ᠡᦤկDŽ⊼ᛣźᗕ0Ңϡ೼ᅆ⚍ֱᡸᑨਘЁߎɴˈ៪້ˈϔϾᅆ⚍ৃᝯ‑าЎѻϣ਼ᳳᗻՈᝯࢴ԰ᖗᲷ᡹᭛˄Heartbeat ˅Ո᡹᭛DŽHeartbeat Producer Î Consumer(s)COB-ID Byte 0 0x700 + Node_IDźᗕźᗕৃЎϟᜬ࢑Ո᭄ؐ˖źᗕᛣН0 Boot-up 4 Stopped 5 Operational 127 Pre-operationalHeartbeat ᅆ⚍ਃࡼৢᅗՈBoot-up ᡹᭛ᰃ݊ৰϔϾHeartbeat ᡹᭛DŽHeartbeat ⍜᯽້ỞᐌᰃNMT-Master ᅆ⚍ˈᅗЎ↣ϾHeartbeat ᅆ⚍᪂ᅮϔϾ᱉ᯊؐˈᔧ᱉ᯊথϣᯊ₋পּᑨࡼ԰DŽϔϾᅆ⚍ϡ࿁໳ৠᯊᬃᣕNode Guarding ੠Heartbeat णᩲDŽ3ˊ6ˊ3 NMT Boot-upᅆ⚍থᏗBoot-up ᡹᭛ỞکNMT-Master ᅆ⚍ᅗᏆඓҢinitialising źᗕẟܹpre-operationalNMT-Master Í NMT-SlaveCOB-ID Byte 0 0x700 + Node_ID0 3ˊ6ˊ4 ẋ᭄࣏᥂ᇍᬥ˄PDO ˅԰ЎϔϾ՟ᄤˈ؛ᅮৰѠϾtransmit-PDO ᯴ᇘབϟ˄೼CANopen ЁϬᇍᬥᄫ݌௦ᓩ0x1A01ᦣẴ˅˖ᇍᬥ0x1A01 : ৰѠϾTransmit-PDO ᯴ᇘᄤ௦ᓩؐᛣН0 22Ͼᇍᬥ᯴ᇘࠄPDO Ё1 0x60000208 ᇍᬥ0x6000ˈᄤ௦ᓩ0x02ˈϵ8ԡඈ៤2 0x64010110 ᇍᬥ0x6401ˈᄤ௦ᓩ0x01ˈϵ16ԡඈ៤ ೼CANopen I/O ῵ഫՈ᪂໛ᄤणᩲ˄CiA DSP-401˅ᅮНЁˈᇍᬥ0x6000ᄤ௦ᓩ2ᰃᅆ⚍Ոৰ2ඈ8ԡ᭄ᄫₓṗܹˈᇍᬥ0x6401ᄤ௦ᓩ0x01ᰃᅆ⚍Ոৰ1ඈ16ԡ῵ᢳₓṗܹDŽẝϾPDO ᡹᭛བᵰᝯথễ(ৃ࿁ϵṗܹᬍবˈᅮᯊ఼Ёᮁ៪້Ạ࣏᪻∖ᏻ਍ᮍᓣᢪথˈ੠PDO ՈӴṗିൟּϔႸˈৃҹ೼ᇍᬥ0x1801ᄤ௦ᓩ2Ёᶹᡒ)ˈ߭ϵ3ᄫᅆ᭄᥂ඈ៤ˈḐᓣབϟ˖⊼ᛣ˖ᏺˆোՈźᗕা᳝ᬃᣕᠽሩ಴ЎϔϾᅆ⚍೼ẝϾźᗕᯊᑊϡᑨਘᅆ⚍ֱᡸ᡹᭛DŽH ᔧϔϾ᡹᭛᭛DŽNMT-slave źᗕDŽPDO-producer Î PDO-consumer(s)COB-ID Byte 0Byte 1 Byte 2 0x280+Node_ID8ԡ᭄᥂ₓṗܹ 16ԡ῵ᢳₓṗܹ˄Ԣ8ԡ˅16ԡ῵ഫₓṗܹ ˄ʌ8ԡ˅Ởẋᬍবᇍᬥ0x1A01ՈݙᆍˈPDO Ոݙᆍৃᝯᬍব˄བᵰᅆ⚍ᬃᣕ˄ৃবPDO ᯴ᇘ˅˅DŽ⊼ᛣ೼CANopen Ё໮ᄫᅆখ᭄ᘏᰃܜথễLSB ˄little endian ˅DŽ ϡܕ᩼᱉ẋ8ϾᄫᅆՈ᭄᥂᯴ᇘࠄᶤϔϾPDO ЁDŽ೼CANopen Application Layer and Communication Profile ˄CiA DS 301 V 4.02 ˅ЁᅮНњMPDO(multiplexor PDO)ˈܕ᩼ϔϾPDO Ӵṗ໻ₓবₓˈỞẋ೼᡹᭛᭄᥂ᄫᅆЁࣙ৿⑤៪ֲՈᅆ⚍ID ǃOD ЁՈ௦ᓩ੠ᄤ௦ᓩᴹᅲɴDŽВϾ՟ᄤ˖བᵰ≵᳝ẝϾᴎࠊˈᔧϔϾᅆ⚍᳝64Ͼ16ԡՈ῵ᢳỞ἗ᯊˈህ◄ᡅ16ϾϡৠՈTransmit-PDOs ᴹӴễ᭄᥂ˈ3ˊ6ˊ5 ᳡ࡵ᭄᥂ᇍᬥ˄SDO ˅SDO Ϭᴹ᪃⒲ϔϾ᪂໛Ոᇍᬥᄫ݌DŽ᪃⒲້ᝯࢴ԰ᅶ᠋ (client)ˈᇍᬥᄫ݌ᝯ᪃⒲Ϩᦤկ᠔᪻∖᳡ࡵՈCANopen ᪂໛߿ࢴ԰᳡ࡵ఼(server)DŽᅶ᠋ՈCAN ᡹᭛੠᳡ࡵ఼ՈᑨਘCAN ᡹᭛ᘏᰃࣙ৿8ᄫᅆ᭄᥂ᛣН˅DŽϔϾᅶ᠋Ո᪻∖ϔᅮ᳝ᴹႮ᳡ࡵ఼ՈᑨਘDŽSDO ᳝2࢑Ӵễᴎࠊ˖z ࡴợӴễ˄Expedited transfer ˅ ˖ ᳔໮Ӵṗ4ᄫᅆ᭄᥂ z ߚ↉Ӵễ˄Segmented transfer ˅ ˖ Ӵṗ᭄᥂⑃ᑺ໻Ѣ4ᄫᅆSDO Ո෎ᴀ඗ᵘབϟ˖ Client Î Server / Server Î ClientByte 0 Byte 1-2 Byte 3 Byte 4-7 SDOCommand Specifier ᇍᬥ௦ᓩᇍᬥᄤ௦ᓩ** ˄**᳔໻4ᄫᅆ᭄᥂(expedited transfer)៪4ᄫᅆᄫᅆᩥ఼᭄˄segmented transfer ˅៪݇Ѣblock transfer খ᭄)៪້Client Î Server / Server Î ClientByte 0 Byte 1-70SDO ੑҸᄫ᳔໻7ᄫᅆ᭄᥂˄segmented transfer ˅SDO ੑҸᄫࣙ৿བϟֵᙃ˖ z ϟṁ/ϞӴ˄Download / upload ˅ z ᪻∖/ᑨਘ˄Request /response ˅z ߚ↉/ࡴợӴễ˄Segmented / expedited transfer ˅ z CAN ᏻ᭄᥂ᄫᅆ⑃ᑺz ϬѢৢන↣Ͼߚ↉ՈѸ᳓⏙►੠าԡՈᢪথԡ˄toggle bit ˅SDO Ёᅲɴњ5Ͼ᪻∖/ᑨਘणᩲ˖ਃࡼඳϟṁ ˄Initiate Domain Download ˅ˈඳߚ↉ϟṁ˄Download Domain Segment ˅ˈ ਃࡼඳϞӴ ˄Initiate Domain Upload ˅ˈඳߚ↉ϞӴ ˄Upload Domain Segment ˅ ੠ඳӴễЁℶ˄Abort Domain Transfer ˅DŽ೼CANopen ỞᩳणᩲՈ᳔ᮄČᴀЁˈᓩܹњϔ࢑ᮄՈSDO Ӵễᴎࠊ˖ഫӴễ˄Block transfer ˅˖ᔧӴễ᭄᥂⑃ᑺ໻Ѣ4ᄫᅆᯊˈ໮Ͼߚ↉াϵ1Ͼܲᩨ᡹᭛ᑨਘ˄བᵰᰃϟṁˈ߭ϵ᳡ࡵ఼ਃࡼӴễˈབᵰᰃϞӴˈ߭ϵᅶ᠋ਃࡼӴễ˅ҹ๲ࡴᘏඃ৲৤ₓDŽּᑨՈणᩲЎ˖ਃࡼഫϟṁ ˄Initiate Block Download ˅ˈഫߚ↉ϟṁ ˄Download Block Segment ˅ˈഫϟṁ඗ᴳ˄End Block Download ˅ˈਃࡼഫϞӴ ˄Initiate Block Upload ˅ˈഫߚ↉ϞӴ˄Upload BlockᛣϔϾB ˄ሑ੥ϡᰃ᠔᳝Ո᭄᥂ᄫᅆ῁ϔᅮ᳝Segment ˅ ੠ ഫϞӴ඗ᴳ˄End Block Upload ˅DŽ˅ᰃUpload ˅ᣛᇍᇍᬥᄫ݌ẟᜐᪿ᪡԰DŽ ẝѯणᩲՈSDO ੑҸᄫ˄SDO CAN ᡹᭛ՈৰϔϾᄫᅆ˅᪱⊩੠ඊᅆ೼ϟ☦ᾬߚ᪸ᯢ˖ ˄þˉÿᜬ߾ϡּ݇ˈᑨЎ0˅DŽਃࡼඳϟṁ˄Initiate Domain Download ˅Bit765432 1Client Î 0 0 1 - ne sÍServer 0 1 1 - - - - -᪸ᯢ˖z n ˖ བᵰe=1ˈϨs=1ˈ᳝߭ᬜˈ৺߭Ў0˗ᜬ߾᭄᥂ᾬߚЁ᮴ᛣН᭄᥂Ոᄫᅆ᭄˄ᄫᅆ8ˉnࠄ7᭄᥂᮴ᛣН˅DŽz e ˖ 0 = ℷᐌӴễˈ1 = ࡴợӴễDŽz s ˖ ᰃ৺ᣛᯢ᭄᥂⑃ᑺˈ0 = ᭄᥂⑃ᑺ᳾ᣛᯢˈ1 = ᭄᥂⑃ᑺᣛᯢDŽ z e = 0ˈ s = 0˖ ϵCiA ֱНDŽz e = 0ˈ s = 1 ˖ ᭄᥂ᄫᅆЎᄫᅆᩥ఼᭄ˈbyte 4ᰃ᭄᥂Ԣԡᾬߚ˄LSB ˅ˈbyte 7ᰃ᭄᥂ʌԡᾬߚ˄MSB ˅DŽz e = 1 ˖ ᭄᥂ᄫᅆЎᇚᡅϟṁ˄download ˅Ո᭄᥂DŽඳߚ↉ϟṁ˄Download Domain Segment ˅Bit765432 10 Client Î 0 0 0 t ncÍServer 0 0 1 t - - - -᪸ᯢ˖z n ˖᮴ᛣНՈ᭄᥂ᄫᅆ᭄DŽབᵰ≵᳝ᣛᯢ↉⑃ᑺˈ߭Ў0DŽ z c ˖ 0 = ᳝ৢනߚ↉◄ᡅdownload ˈ1 = ᳔ৢϔϾ↉DŽz t ˖ ᢪথԡˈৢන↣Ͼߚ↉Ѹ᳓⏙►੠าԡ˄ৰϔ⃵ӴễЎ0ˈ਍ᬜѢrequest/response ˅DŽਃࡼඳϞӴ˄Initiate Domain Upload ˅Bit765432 1Client Î 0 1 0 - - - - - ÍServer 0 1 0 - ne s ᪸ᯢ˖n ˈe ˈs ˖ ϢਃࡼඳϟṁּৠDŽඳߚ↉ϞӴ˄Upload Domain Segment ˅Bit765432 10 Client Î 0 1 1 t - - - - ÍServer 0 0 0 t nc᪸ᯢ˖n ˈc ˈt ˖ Ϣඳߚ↉ϟṁּৠDŽSDO ᅶ᠋៪᳡ࡵ఼ỞẋথߎབϟḐᓣՈ᡹᭛ᴹЁℶSDO Ӵễ˖ඳӴễЁℶ˄Abort Domain Transfer ˅Bit7654321C Î/ÍS 1 0 0 - - - - -Download ˅ϟṁ˄D ᰃᣛᇍᇍᬥᄫ݌ẟᜐݭ᪡԰ˈϞӴ˄U೼ඳӴễЁℶ᡹᭛Ёˈ᭄᥂ᄫᅆ0੠1ᜬ߾ᇍᬥ௦ᓩˈᄫᅆ2ᜬ߾ᄤ௦ᓩˈᄫᅆ4ࠄ7ࣙ৿32ԡЁℶۅˈᦣẴЁℶ᡹᭛Ӵễॳ಴ˈᢅᜬ3-4᠔߾DŽᜬ3-4 ඳӴễЁℶSDO˖16ẟࠊЁℶҷۅᜬ˄ᄫᅆ4ࠄ7˅Ёℶҷۅҷۅࡳ࿁ᦣẴ0503 0000 ᢪথԡ≵᳝Ѹ᳓ᬍব0504 0000 SDOणᩲ᱉ᯊ0504 0001 ☢⊩៪᳾کՈClient/Server ੑҸᄫ0504 0002 ᮴ᬜՈഫ໻ᇣ˄ҙBlock Transfer῵ᓣ˅0504 0003 ᮴ᬜՈᑣো˄ҙBlock Transfer῵ᓣ˅0503 0004 CRC⏝᪳˄ҙBlock Transfer῵ᓣ˅0503 0005 ݙᄬ⑶ߎ0601 0000 ᇍᬥϡᬃᣕ᪃⒲0601 0001 ᪙೒ᪿাݭᇍᬥ0601 0002 ᪙೒ݭাᪿᇍᬥ0602 0000 ᇍᬥᄫ݌Ёᇍᬥϡᄬ೼0604 0041 ᇍᬥϡ࿁໳᯴ᇘࠄPDO0604 0042 ᯴ᇘՈᇍᬥՈ᭄ֲ੠⑃ᑺ᱉ߎPDO⑃ᑺ0604 0043 ϔჰᗻখ᭄ϡݐᆍ0604 0047 ϔჰᗻ᪂໛ݙᾬϡݐᆍ0606 0000 ܰӊ⏝᪳ᇐႸᇍᬥ᪃⒲༅ᯩ0606 0010 ᭄᥂ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺϡऍ‑0606 0012 ᭄᥂ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺ໾໻0606 0013 ᭄᥂ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺ໾ڱ0609 0011 ᄤ௦ᓩϡᄬ೼0609 0030 ᱉ߎখ᭄Ոؐᇇೈ(ݭ᪃⒲ᯊ)0609 0031 ݭܹখ᭄᭄ؐ໾໻0609 0032 ݭܹখ᭄᭄ؐ໾ᇣ0609 0036 ᳔໻ؐᇣѢ᳔ᇣؐ0800 0000 ϔჰᗻ⏝᪳0800 0020 ᭄᥂ϡ࿁Ӵễ៪ֱᄬࠄᑨϬ0800 0021 ϵѢᴀഄ᥻ࠊᇐႸ᭄᥂ϡ࿁Ӵễ៪ֱᄬࠄᑨϬ0800 0022 ϵѢᔧࠡ᪂໛źᗕᇐႸ᭄᥂ϡ࿁Ӵễ៪ֱᄬࠄᑨϬ0800 0023ᇍᬥᄫ݌ࡼᗕѻϣ⏝᪳៪ᇍᬥᄫ݌ϡᄬ೼˄՟བˈỞẋ᭛ӊϣ៤ᇍᬥᄫ݌ˈԚϵѢ᭛ӊᤳണᇐႸ⏝᪳ѻϣ˅ਃࡼഫϟṁ˄Initiate Block Download˅Bit 7 6 5 4 3 2 1 0 ClientÎ 1 1 0 - - cc s 0 ÍServer 1 0 1 - - sc - 0 ᪸ᯢ˖z cc ˖ᅶ᠋᭄᥂ᰃ৺ՓϬCRC᷵ɀˈ0 = noˈ1 = yesDŽz sc ˖᳡ࡵ఼᭄᥂ᰃ৺ՓϬCRC᷵ɀˈ0 = noˈ1 = yesDŽz s ˖ᰃ৺ᣛᯢ᭄᥂▊⑃ᑺˈ0=᭄᥂▊⑃ᑺ᳾ᣛᯢˈ1˙᭄᥂▊⑃ᑺᣛᯢDŽz s=0 ˖ϵCiAֱНDŽz s=1 ˖᭄᥂ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽz ᳡ࡵ఼ᄫᅆ4ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0<blksize<128DŽഫߚ↉ϟṁ˄Download Block Segment˅Bit 7 6 5 4 3 2 1 0ClientÎ c 0ClientÎ c 1…etc… c seqnoÍServer 1 0 1 - - - 1 0 ᪸ᯢ˖z c ˖ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽz seqno ˖ߚ↉োˈ0<seqno<128DŽz ᅶ᠋᭄᥂ᄫᅆ˖↣ߚ↉Ⴗ໮ࣙᣀ7ᄫᅆ᭄᥂ᝯdownloadDŽz ᳡ࡵ఼ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳ᥹ᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉᳾ℷܲ᥹ᬊˈ᠔᳝↉ᖙ/ₑӴDŽz ᳡ࡵ఼ᄫᅆ2˖ࣙ৿blksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔ⃵ഫϟṁˈ0<blksize<128DŽഫϟṁ඗ᴳ˄End Block Download˅Bit 7 6 5 4 3 2 1 0ClientÎ 1 1 0 n - 1 ÍServer 1 0 1 - - - - 1 ᪸ᯢ˖z n ˖ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄᥂Ոᄫᅆ᭄DŽz ᅶ᠋᭄᥂bytes1+2 ЎᭈϾ᭄᥂▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϟṁ᡹᭛Ё cc੠scৠᯊЎ1ᯊCRCᠡ᳝ᬜDŽਃࡼഫϞӴ˄Initiate Block Upload˅Bit 7 6 5 4 3 2 1 0ClientÎ 1 0 1 - - cc 0 0 ÍServer 1 1 0 - - sc 0 ClientÎ 1 0 1 - - - 1 1 ᪸ᯢ˖z cc ˖ᅶ᠋᭄᥂ᰃ৺ՓϬCRC᷵ɀˈ 0˙no ˈ1=yesDŽz sc ˖᳡ࡵ఼᭄᥂ᰃ৺ՓϬCRC᷵ɀˈ 0=noˈ 1=yesDŽz s ˖ᰃ৺ᣛᯢ᭄᥂▊⑃ᑺˈ0=᭄᥂▊⑃ᑺ᳾ᣛᯢˈ1˙᭄᥂▊⑃ᑺᣛᯢDŽz s=0˖ϵCiAֱНDŽz s=1˖᭄᥂ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽz ᅶ᠋᭄᥂ᄫᅆ4˖ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0<blksize<128DŽz ᅶ᠋᭄᥂ᄫᅆ5˖ᜬ߾णᩲḰᤶᄫ˄pst˖Protocol Switch Threshold˅ˈϬѢᰃ৺ܕ᩼ᬍবSDO Ӵễणᩲˈ0=ϡܕ᩼ᬍবˈ1=ܕ᩼ᬍব˄བᵰᡅuploadՈ᭄᥂ᄫᅆ᭄ᇥѢ៪਍ѢpstˈServerৃҹỞẋInitiate Domain UploadणᩲᑨਘᬍবࠄUpload Domainणᩲ˅DŽഫߚ↉ϞӴ˄Upload Block Segment˅Bit 7 6 5 4 3 2 1 0ÍServer c 0ÍServer c 1..etc… c seqnoClientÎ 1 1 0 - - - 1 0 ᪸ᯢ˖z c ˖ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽz seqno ˖ߚ↉োˈ0<seqno<128DŽz ᳡ࡵ఼᭄᥂ᄫᅆ˖↣ߚ↉Ⴗ໮ࣙᣀ7ᄫᅆ᭄᥂ᝯdownloadDŽz ᅶ᠋ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳ᥹ᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉᳾ℷܲ᥹ᬊˈ᠔᳝↉ᖙ/ₑӴDŽz ᅶ᠋ᄫᅆ2˖ࣙ৿blksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔ⃵ഫϟṁˈ0<blksize<128DŽഫϞӴ඗ᴳ˄End Block Upload˅Bit 7 6 5 4 3 2 1 0ÍServer 1 1 0 n - 1 ClientÎ 1 0 1 - - - - 1 ᪸ᯢ˖z n ˖ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄᥂Ոᄫᅆ᭄DŽz ᳡ࡵ఼᭄᥂bytes1+2 ЎᭈϾ᭄᥂▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϞӴ᡹᭛Ё cc੠scৠᯊЎ1ᯊCRCᠡ᳝ᬜDŽϟ☦ඝߎ޴Ͼ՟ᄤ᪸ᯢབԩՓϬSDOᴹ᪃⒲ϔϾᅆ⚍Ոᇍᬥᄫ݌DŽՓϬϟ☦ՈSDO⍜ᙃˈؐ0x3FEᇚݭࠄᅆ⚍IDЎ2Ոᇍᬥᄫ݌Ё௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥЁএˈՓϬਃࡼඳϟṁणᩲˈࡴợӴṗ˄2ᄫᅆ᭄᥂˅˖Client Î Server (ᅆ⚍#2)COB-IDByte0 1 2 3 4 5 6-7602 2B 01 18 03 FE 03 - Client Í Server(ᅆ⚍ʿ2)582 60 01 18 03 - - - ՓϬϟ☦ՈSDO⍜ᙃˈৠḋՈᇍᬥᄫ݌Ё௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥᇚᝯᪿߎˈՓϬਃࡼඳϞӴणᩲˈ᳡ࡵ఼ՓϬࡴợӴṗᮍᓣᑨਘ˄2ᄫᅆ᭄᥂˅˖Client Î Server(ᅆ⚍ʿ2)COB-IDByte0 1 2 3 4 5 6-7602 40 01 18 03 - - - Client Í Server(ᅆ⚍ʿ2)582 4B 01 18 03 FE 03 - 3ˊ6ˊ6 ᑨᗹᣛ߾ᇍᬥ(Emergency Object)ᑨᗹᣛ߾᡹᭛ϵ᪂໛ݙᾬߎɴՈႸੑ⏝᪳ᢪথˈϵּ݇ᑨϬ᪂໛݊ᅗ᪂໛DŽỆϬѢЁᮁିൟՈ⏝᪳᡹ᨪֵোDŽ8ᄫᅆඈ៤ˈḐᓣབϟ˖ sender Î receiver(s)COB-ID Byte 0-1 Byte 2 Byte 3-70x080+Node_IDᑨᗹ⏝᪳ҷۅ⏝᪳ᆘᄬ఼ (ᇍᬥ0x1001)ࠊỤଚĽᅮՈ⏝᪳ऎඳ16ẟࠊՈᑨᗹ⏝᪳ҷۅབϟᜬ3-5᠔߾DŽᑨᗹ⏝᪳ҷۅЁþxx ÿᾬߚϵּᑨՈ᪂໛ᄤणᩲᅮНDŽᜬ3-5 ᑨᗹ⏝᪳ҷۅ˄16ẟࠊ˅ᑨᗹ⏝᪳ҷۅҷۅࡳ࿁ᦣẴ00xxError Reset ៪No Error10xx Generic Error 20xx Current 21xx Current ˈdevice input side 22xx Current ˈinside the device 23xxCurrent ˈdevice output side30xx V oltage31xx Mains voltage 32xxV oltage inside the device33xx Output voltage 40xx Temperature41xx Ambient temperature 42xx Device tempearture 50xx Device hardware 60xx Device software61xx Internal software 62xx User software 63xx Data set 70xx Additional modules 80xx Monitoring81xx communication 8110 CAN overrun 8120 Error Passive 8130 Life Guard Error ៪Heartbeat Error 8140Recovered from Bus-Off82xx Protocol Error 8210PDO no processed Due to length error8220 Length exceedd 90xx External error F0xx Additional functions FFxx Device specificᏆ᳔ʌӬܜ൫থễࠄϔϾᑨᗹ᡹᭛ϵ⏝᪳ᆘᄬ఼(Error Register)೼᪂໛Ոᇍᬥᄫ݌˄௦ᓩ0x1001˅Ёˈᜬ3-6᪸ᯢњ⏝᪳ᆘᄬ఼ՈԡᅮНDŽ᪂໛ৃҹᇚݙᾬ⏝᪳᯴ᇘࠄẝϾźᗕᄫᅆЁˈᑊৃҹᖿợᶹ׏ᔧࠡ⏝᪳DŽᜬ3-6 8ԡ⏝᪳ᆘᄬ఼ԡᅮНBit⏝᪳ିൟ0 Generic1 Current2 V oltage3 Temperature4 Communication5 Device profile specific6 Reserved(=0)7 ManufacturerspecificࠊỤଚĽᅮ⏝᪳ऎඳৃ࿁ࣙ৿Ϣ᪂໛ּ݇Ո݊ᅗՈ⏝ֵ᪳ᙃDŽ4ǃᘏ඗෎ѢCANᘏඃՈCANopenตචỞᩳ݋᳝ҹϟĽ⚍˖z ՓϬᇍᬥᄫ݌˄OD˖Object Dictionary˅ᇍ᪂໛ࡳ࿁ẟᜐᷛޚ࣪ՈᦣẴDŽz ՓϬASCII᭛ḷ˖Ϲᄤ᭄᥂᭛ḷ˄EDS˅੠᪂໛‑า᭛ӊ˄DCF˅ᇍ᪂໛ঞ݊‑าẟᜐᷛޚ࣪ՈᦣẴDŽz CANopenตචՈ᭄᥂Ѹᤶ੠ிඣ੥ˊ෎ѢCALЁCMS᳡ࡵDŽz ிඣboot-up੠ᅆ⚍ֱᡸ˄Node Guarding˅Ոᷛޚ෎ѢCALЁNMT᳡ࡵDŽz ᅮНњᭈϾிඣՈৠℹ᪡԰DŽz ᅮНњᅆ⚍ĽᅮՈᑨᗹ᡹᭛DŽЎϢCANopenỞᩳणᩲ੠ּᑨՈ᪂໛ᄤणᩲֱᣕϔႸˈҹՓࠊỤଚՈѻક࿁໳ϬѢӏԩCANopenตචˈҹϟ3࢑ሖ⃵Ոݐᆍᗻᡅ∖◄ᡅ⒵ᱷ˄ᇍ᮹֎๲⑃Ո᪂໛ݐᆍᗻՈᡅ∖˅˖z ϔႸᗻ˖᪂໛Ả᥹ࠄCANopenตචৢϡ࿁ᕅડ݊Ҫ᪂໛ՈỞᩳ˖ᑨϬሖՈϔႸᗻDŽz ѦϬᗻ˖᪂໛࿁໳ৠตචϞՈ݊ᅗᅆ⚍Ѹᤶ᭄᥂˖ỞᩳणᩲՈϔႸᗻDŽz Ѧᤶᗻ˖᪂໛࿁໳ҷ᳓঺໪ϔϾৠି᪂໛˖᪂໛ᄤणᩲՈϔႸᗻDŽϔϾCANopen᪂໛Ⴗᇥᑨ᪩݋᳝˄᳔ᇣ࿁࡯᪂໛˅˖z ϔϾᅆ⚍IDˈz ϔϾᇍᬥᄫ݌˄ݙᆍϵ᪂໛ࡳ࿁އᅮ˅ˈz ϔϾSDOˈ࿁໳᪃⒲ᇍᬥᄫ݌Ёᖙ◄Ոᇍᬥ˄াᪿ˅ˈz ᬃᣕϟ߫NMTҢ᪂໛᳡ࡵ˖Reset_Nodeˈ Enter_Preoperational_Stateˈ Start_Remote_NodeˈStop_Remote_Nodeˈ Reset_Communicationˈz ෾ׅՈᷛ᪊৪ߚ‑DŽᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ5ǃ᪸ᯢᴀ᭛তՈ໻ᾬߚݙᆍ຿᪕Ⴎ೑໪ҟඑCANopenणᩲՈϔઋ᭛তljCANopen˖high-level protocol for CAN-busNJˈ᪩᭛ত↨ṇܼ☦ഄҟඑњCANopenणᩲDŽCANopenणᩲᰃ෎ѢCAN-busՈϔ࢑ʌሖणᩲˈ೼⃻⌆ᑨϬṇЎᑓ⊯ˈỆড়ѢϹẃϹ⇨ǃᱎₒ≑Ḫǃხ⍋ϹᄤǃएћϹ఼ǃᎹ࣏ᴎẄǃ⎅ᲳᴎḪ਍:ඳˈϨणᩲ⍌ᇍᜐϮᑨϬˈᅲɴ↨ṇ੄⋕DŽ຿᪕ℸ᭛ՈֲՈ೼Ѣ৥ϔѯĽᅮᜐϮՈCAN-busϬ᠋ᦤկ݇ѢCANopenणᩲՈ᳝ϬֵᙃˈᏠᳯ࿁໳ᇍẝѯᜐϮՈCANopenणᩲѻક᪂ᩥ᰻ϔᅮՈᣛᇐ԰ϬˈҢ໐Փ៥೑ՈCAN-busᑨϬঞᮽϢ೑┉᥹ḬDŽॳ᭛ᴹႮሻ݄NIKHEF݀ৌตঝˈ԰້Ў˖H. BoterenbroodDŽ19。

相关文档
最新文档