(本文参考文献如下:

《基于 CANopen 协议的交流伺服驱动器的研究---黄剑》

《基于CANopen协议的主从站伺服控制研究---陈海燕》)

 

CANopen的层模型如下图,包括物理层,数据链路层,和应用层。

物理层:波特率等电气特性。

数据链路层:判断总线数据优先级,监控出错点等。

应用层:使用通讯对象(COB)完成设备间的数据交换。

CANopen 伺服 学习笔记1---CANopen协议入门

CANopen典型结构由通讯接口、对象字典、应用程序组成。

通讯接口:提供各种通讯对象和传输数据所需的服务???协议栈???

对象字典:应用对象、通讯对象、状态机等数据的集合体

应用程序:各设备之间的纽带,核心功能是通过访问对象字典完成控制等。

CANopen 伺服 学习笔记1---CANopen协议入门

 

 

CAN 总线采用 CSMA/CD 即载波监听多路访问/冲突检测(Carrier  Sense  Multiple 
Access/Collision Detect)的通信模式。

CANopen 伺服 学习笔记1---CANopen协议入门

 

几个概念:

同步传输和异步传输

CANopen通信模型支持同步和异步的信息传输方式。同步传输与异步传输的区
别是:同步传输的报文必须通过一个预先定义好的同步报文来触发其发送,而异步
传输的报文则可以在任何时候发送。CANopen使用同步报文以及时间戳报文等预定
义的通信对象来实现同步功能。通过使用报文的同步传输功能,网络内的所有数据
传输,例如数据采集和驱动都可以得到很好的调节和控制。

线性表和链表

  • 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链表结构。
  • 当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致长度,用顺序存储结构效率会高很多

协议栈中对象字典实现

选择静态结构体作为对象字典的存储结构,所有参数按照索引、子索引升序存入数组。

(静态查找有顺序查找、折半查找、差值查找三种)

 

还需要解决的问题是:

1,从邮箱到对象字典的映射如何处理?

2,NMT、PDO、SDO。

 

 

 

 

 

 

 

相关文章: