查看: 1611|回复: 0

[评测分享] 【更适合初学者的开发板ELF 1】+ 11.CAN进阶CANopen

[复制链接]
  • TA的每日心情
    无聊
    2024-10-11 22:04
  • 签到天数: 67 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2023-12-17 12:26:22 | 显示全部楼层 |阅读模式
    分享到:
    1.CANopen协议
    从 OSI 的 7 层网络模型的角度来看同,CAN(Controller Area Network)现场总线仅仅 定义了第 1 层(物理层,见ISO11898-2 标准)、第 2 层(数据链路层,见 ISO11898-1 标准); 而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software) 或固件(Firmware),只要了解如何调用相关的接口和寄存器,即可完成对 CAN 的控制。
    1.png
    基本每个行业的 CAN 应用,都需要一个高层协议来定义 CAN 报文中的 11/29 位标识符、8 字节数据的使用。但在 CAN 总线的工业自动化应用中,由于设备的互通互联 的需求越来越多,所以需要一个开放的、标准化的高层协议:这个协议支持各种 CAN 厂商 设备的互用性、互换性,能够实现在 CAN 网络中提供标准的、统一的系统通讯模式,提供 设备功能描述方式,执行网络管理功能。
    对象字典:
    CANopen 对象字典(OD: Object Dictionary)是 CANopen 协议最为核心的概念。所谓的 对象字典就是一个有序的对象组,描述了对应 CANopen 节点的所有参数,包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件(电子数据文档 Electronic Data Sheet)。

    每个对象采用一个 16 位的索引值来寻址,这个索引值通常被称为索引,其范围在 0x0000 到 0xFFFF 之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位 的索引值,这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间。
    2.png
    网络管理对象
    它负责CAN网络上的初始化、配置和故障处理。节点控制
    3.png
    节点上线报文:任何一个 CANopen 从站上线后,为了提示主站它已经加入网络(便于热插拔),或者避免与其他从站 Node-ID 冲突。这个从站必须发出节点上线报文(boot-up),如图 6.3 所示, 节点上线报文的 ID 为 700h+Node-ID,数据为 1 个字节 0。生产者为 CANopen 从站。
    4.png
    PDO:
    PDO 分为 TPDO(发送 PDO)和(接收 RPDO),发送和接收是以CANopen 节点自身 为参考(如果 CAN 主站或者其他从站就相反)。TPDO和 RPDO 分别有 4 个数据对象,每种数据对象就是 1 条 CAN 报文封装。

    PDO 通信参数,定义了该设备所使用的 COB-ID、传输类型、定时周期等。RPDO 通讯 参数位于对象字典索引的 1400h to 15FFh,TPDO 通讯参数位于对象字典索引的1800h to 19FFh。每条索引代表一个 PDO 的通信参数集,其中的子索引分别指向具体的各种参数。
    5.png
    SDO:
    SDO 主要用于 CANopen 主站对从节点的参数配置。服务确认是 SDO 的最大的特点, 为每个消息都生成一个应答,确保数据传输的准确性。
    6.png
    紧急对象:
    紧急事件对象(Emergency),是当设备内部发生错误,触发该对象,发送设备内部错误代码,提示 NMT 主站。紧急报文属于诊断性报文,一般不会影响 CANopen 通讯,其 CAN-ID 存储在 1014h的索引中,一般会定义为 080h +node-ID,数据包含 8 个字节。
    7.png
    时间戳:
    时间标记对象(Time Stamp),NMT 主机发送自身的时钟,为网络各个节点提供公共 的时间参考,即网络对时。时间戳协议采用广播方式,无需节点应答,CAN-ID为 100h,数据长度为 6,数据为当 前时刻与 1984 年 1 月 1 日 0 时的时间差
    8.png
    2.硬件设计
    硬件原理图:
    9.png
    使用开发板与can分析仪连接,进行数据帧分析:
    10.jpg
    3.移植验证
    下载源码:

    11.png
    Canoepn源码:
    12.png
    编译源码,生成可执行文件,并拖入开发板中,添加可执行权限,运行:
    13.png
    由于当前只接了can分析仪,没有其他的can设备,因此会出现NMT错误。查看can分析仪数据:
    14.png



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 07:32 , Processed in 0.125208 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.