当前位置:首页 > 物联网 > 网络协议
[导读]  总述   CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现

  总述  

CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。

  CANopen 实作了OSI模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。 CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。一般而言资料链结层及实体层会用CAN来实作。除了 CANopen 外,也有其他的通讯协定(如EtherCAT)实作 CANopen 的设备子协定。

  基本的 CANopen 设备及通讯子协定定义在 CAN in AutomaTIon (CiA) draft standard 301. 中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

  设备模型

  以下是所有 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。

    通讯

  通讯对象

  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 的仲裁机制会使 COS-ID 最小的讯息继续传送,不用等待或重传。COB-ID 的前 4 个位元是 CANopen 的功能码,因此数值小的功能码表示对应的功能重要,允许的延迟时间较短。

   在 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:消费者需送出请求讯息,生产者才会送出资料。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

甲类电源是一种开关式电源,它通过快速开关来控制电压,使输出电压保持恒定。甲类电源的输出电流波形接近直流,能够提供高效率和高功率输出。

关键字: 甲类电源 线性电源 电源

现在的智能家居越来越受欢迎,市面上出现了各式各样的无线收发模块,功能也各不相同,当然了,大家不能盲目的去采购,这样可能会带来一些不必要的损失。

关键字: 无线收发模块 功耗 网络协议

直流电是指电流方向始终保持不变的电流。在实际应用中,我们经常需要调整直流电的电流大小,以满足不同的需求。本文将从多个方面详细阐述直流电如何调节电流。

关键字: 直流 电流 负载调节

在人工智能的快速发展中,加强AI监管与推动AI技术的进步同等重要。从技术角度来看,可以通过可解释AI等技术手段增强AI的可信度。

关键字: 人工智能 AI 增强AI

随着科技的快速发展,人脸识别技术已经广泛应用于各个领域,如手机解锁、支付验证、门禁系统等。然而,有时我们可能会遇到人脸识别一直失败的情况,这不仅影响了用户体验,还可能引发安全隐患。本文将深入探讨人脸识别失败的原因,并提供...

关键字: 人脸识别 人工智能

随着科技的快速发展,人工智能(AI)逐渐从科幻概念变为现实,其应用广泛渗透到各行各业,为人类社会带来了前所未有的便利与机遇。然而,正如任何新兴技术一样,人工智能的发展也面临着诸多困难与挑战。本文将深入剖析人工智能发展所面...

关键字: 人工智能 AI

在科技迅猛发展的今天,人工智能(AI)已经从一个前沿概念转变为全球范围内的热门话题,深刻影响着我们的日常生活、工作和思维方式。本文将对当前人工智能的现状进行深入分析,从技术发展、应用领域、市场竞争以及挑战与机遇等多个维度...

关键字: 人工智能 AI

在科技的浪潮中,人工智能(AI)已经从一个遥不可及的概念,逐渐转变为影响我们日常生活的现实力量。无论是语音识别、图像识别,还是自动驾驶、医疗诊断,人工智能都展现出了强大的潜力和无限的可能性。那么,未来的人工智能发展前景又...

关键字: 人工智能 AI

在智能家居日益普及的今天,无线开关作为实现家居自动化的重要工具,受到了越来越多消费者的青睐。然而,对于许多家庭来说,如何将现有的普通灯具接入无线开关,实现远程控制,仍然是一个值得探讨的问题。本文将详细阐述普通灯具接入无线...

关键字: 无线开关 智能家居

本文旨在为读者提供一篇详尽的AWVS 13使用教程,从安装配置到实战应用,全面解析这一强大的Web应用安全扫描工具。通过本文的学习,读者将能够掌握AWVS 13的基本操作,提高Web应用的安全性。

关键字: awvs13 Web应用
关闭
关闭