近期小编开发了【跟我学CANopen】系列课程,会陆陆续续连载更新完毕,相关目录如下(由于内容较多导致文字太小,下图请放大后查看)。
如下图所示,定义了CANopen通信的设备结构; CANopen协议通常分为用户应用层、对象字典以及通信单元三个部分。
一、通信
通信单元即代表了CANopen通信,定义了CANopen协议通信规则以及与CAN控制器驱动之间对应关系;由CAN收发器、CAN控制器以及CANopen协议栈组成;
协议栈中包括实现通信的CANopen通信对象(如SDO、PDO、NMT等)和状态机;
通信单元提供数据传输所需的所有机制和通信对象,符合CANopen规范的数据可以利用这些机制通过CAN总线进行数据传输;
通信单元设置了用于数据交换(如SDO、PDO)、设备监控(如心跳、节点保护、启动报文)以及网络管理(如设备启动、停止等)的功能
二、用户应用程序
用户应用程序是用户根据实际的需求编写的应用对象CANopen设备的用户应用程序,对设备的基本功能进行定义和描述;例如:在I/O设备中,可以访问设备的数字或模拟输入/输出接口;在驱动控制系统中,可以实现轨迹和速度控制模块的控制。
三、对象字典
对象字典是CANopen通信的核心,描述了应用对象和CANopen报文之间的关系;
在对象字典中,CANopen设备的所有对象都以标准化的形式进行描述;对象字典利用对象来描述CANopen设备的全部功能。用户应用程序和通信单元都可以访问对象字典;
对象字典中的对象可以通过一个16位索引来识别,对象可以是变量、数组或结构;数组或结构的单元又可以通过8位的子索引进行访问;
应用程序可以从对象字典中读取参数和输出值,同事外部进程的输入参数也可更新到对应的对象字典中;
关于对象字典的详细介绍,请关注该系列文章中对象字典相关的详细介绍。