CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第1张图片

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第2张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第3张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第4张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第5张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第6张图片
词典有专门的上位机工具,主要是管理变量
词典有很多个索引,每个索引都有配置项
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第7张图片
词典说白了就是变量

西门子的一个看open入门教程
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第8张图片

一个初始化的一个流程,这个流程非常重要,大家要了解。
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第9张图片
首先的话就是初始化,然后应用层复位,这是通讯复位。应用层复位指的是哪些呢?指的是词典工具里面索引范围2000到这个FFFF它们里面索引的复位。然后通讯复位,通讯符位的词典工具里面1000到1阿尔法,它相应的一些词典的变量一些复位是这样。

(Boot-up message)然后再往下这里的话就很重要的一个启动消息。就是说我们这个节点里面只要它上线,就会有一个上线消息的。一会儿给大家展示。然后展示之后,它这里面有几个操作状态进入是一个是预操作状态,pre Operation, 然后的话就是停止状态,还有就是操作状态,就这么几个状态。这三个状态预操作状态、操作状态、停止状态,这三个状态之间是可以相互切换的,任意切换它们三个之间任意切换,谁都可以跳转到谁上面。然后这三个状态又可以切换到这个应用层复位,或者切换到通讯复位。还有这么一个东西。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第10张图片
这个图重要之外,下面这个图就更重要了。通过这个图我们要了解什么呢?要了解到在不同的状态下,他们支持的这几个操作都有哪些。初始化状态下只有启动这个上线豹纹,然后预操作状态下,注意预操作状态下它不可以操作PDO,然后操作状态下都是各种能量都可以操作,其实我们没有这个上限,这个东西,上线报的那个东西,然后停止状态下特别注意一点,停止状态它是有这个心跳,有这个心跳包的,各位注意这一点。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第11张图片

然后就上线报。这个上线报告的话就是producer consumer producer的话它这个生产者消费者模式的话就是单一方向的。这个生产就可以认为它的从节点上线通知我们主节点它上线了。首先的话它这个是看ID,就是700加上节点ID。我们这个节点ID的话,我们这个程序里面配置是224,对应的是18。也就是说它上限的话是对应的是0X7018它就上线。然后对应的DLC是表示看它数据长度,这边的一个数据长度就要上线了,就是这样就是节点。也就是说我们这个节点上线之后,它就会发送一个ID是0X78的一个节点上线这个

然后的话就是心跳报文,它这个阶段上线之后,正常的情况下它是有心跳报文的。如果说我们配置了这个心跳的周期,心跳是在哪里配置呢?在这个节点,它这个词典里面对应的变量里面,0X1017,我们这里确定零X在我们的1017,我们设置设置它这个时间,我们设置时间的话,它就会上线的话,就会有个上线的帮我们出现这么一个东西。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第12张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第13张图片

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第14张图片

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第15张图片

consumers也就是我们主机这一块,主机这一块它对应那个1016,1016主机这块它要上线周期性的发送心跳包。然后是主机这块,通过106里面配置的这个参数,它里面设置的一个时间来查询是否上线了这么个东西。大家看一下,也了解一下,就这个1016它是相关的周期性的发送的话,我们来查询是否它上线了。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第16张图片

05表示操作状态,也就是对应的我们像前面给大家说的这这几个有几个有一个操作状态。然后这几个状态是哪些东西在操作上通过我们的NMP报文可以操作,它工作的状态非常方便。然后这个的话就是主机,我们这句话通过这个NNMT主机可以操作发送这几个命令。它的命令CS第一个是命令,然后就是接点ID命令和节点ID2个DLC等于2,就是分两个字节数据。然后就是这个数据的话,一的话是停止,然后我这我们这


CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第17张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第18张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第19张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第20张图片

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第21张图片

然后的话这个重点就是p do这个协议 ,这个重点这个PDO协议的话,它分4种玩法。四种玩法的话就是前两种,大家注意前两种,它是异步通讯。异步通讯是什么呢?区别于下边这个两个同步同步通讯。同步通讯的特点就是它有个consumer主机端,master端会发送一个同步信号,然后他来反馈这个就叫有个同步信号,这个叫同步传输。

异步通讯是什么呢?区别于下边这个两个同步同步通讯。同步通讯的特点就是它有个个consumer主机端,master端会发送一个同步信号,然后他来反馈这个就叫有个同步信号,这个叫同步传输。然后它这里的话没有同步信号,就是异步传输。其中这里有个遥控真做简单的做一个同步。其实刚才前面给大家说了,这个已经淘汰掉了。大家不用管它,主要就是管这个,他就异步的,就是说这个从极端是主动往上发的,人家就通过内部事件,比方说timer driver有驱动定时触发那个事件,就是周期性的就可以给这个主阶段发送消息,就这么一点,这个是异步的。然后同步的话需要我们同步端手机端发送的同步消息。同步端又分两种,一个是周期性的,在这个cyclic,还有就是acyclic异步的,周期是这样,就是同步发送一个同步消息,他反馈一个PDO,发放那个同步就要反馈个PDO,是这样。

然后异步的是什么呢?就是说它内部也可以产生一个通内部事件,然后它这个主机端再发送同步,然后再返回p do,它是这么一个东西触发它来读取,触发主极端的读取,这个让异步的就是这种不是异步了,就是同步的这是异这是非周期性的这种东西。好,这是它这几个东西。然后这几个东西进一步再往下p do通信参数,

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第22张图片

这个PDO通讯参数是一个非常重要的一个点,它这个点的话就是分为p do。我们这里的话直接这样我们这里的话直接看我们这个词典工具,看这个词典工具更利于大家实战,我也是这么学的,真的有时候刚开始看他这个时候有点懵,我就直接看这个色彩工具就更清晰了。

大家看啊这个一默认情况下都是四个都是四个这个RPDUR2PDU就是接收的,主要用于接收的p do,然后TPDO主要是用发送的。
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第23张图片
TPDO主要是用发送的。这个接收和发送是针对什么?针对这个节点来说的,针对这个节点来说,它来接收也就是说我们这个。比方说我们two o可以发发发发送来,那么他们里面发送的话,它这个RPDO在接收是这样。然后主机端如果他主动发送的话,TP do那你就说节点这给我们突入端来发送它这么的一个过这么一个东西,相对于节点来说的一个RP do和TP do这么个区别。然后这样的话大家看啊一共是四个,1400140114020三四个。

四个是什么呢?四这四个是通讯参数,通讯杂志就是通讯参数。然后下面这几个,然后再往下这个1600又到了1603,这是映射参数,通讯参数,映射参数。再往下映射参数,映射哪里呢?映射到这个厂家自定义的相关这块要放大的范围,可以用大家映射一下相关的一些变量这么一些东西。好,然后下面T也是TP do,这也是有1111800,就是1803。然后是A100到TP do的映射参数的是1A03这么几个。他们这是成对儿,这里的话油都是配置了4对,大家注意。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第24张图片
先输入1800,它这个的注释比较详细一些。这里的话一共是六个。它第一个参数是六个节点,六个子节点,它定义的是六个子节点的个数。然后子节点每一个子节点,每一个子节点的含义大家一定要理解。

COPID它每一个BIt,每一个BIt都是有专门的含义的。大家特别注意这BIt31,人家表示使能或禁止p do,然后就是BIt360是表示是否使用这个遥控器。这个遥控器基本上我们不用管它,现在都直接把它静止就行。我们不使用或者使用都行,只要应用层不使用就行了,这可以不用管。然后第11BIt的就表示看ID,注意点就是对应到我们这个自定义已经来了。

然后第二个就是传输类型,继续往下看传输。传输类型的话,它这有相关的很多一个含义,一共这么几个。零的时候这里表示这个地方零的时候是表示这个同步和非周期性的,然后1到24的时候是表示同步周期性的。然后再往下21、28、41到253没有使用。然后再往下就是这两个是表示事件驱动,就是没有使用这个同步传输了,就开始采用异步方式的这种异步方式。这是254的话是厂家自定义,然后下面就是设备,设备参数,或者是这个设备方式,或者应用层方式,这种定义方式这样的。

这个静止时间作用什么呢?比方说别的用应用在这里注释的非常详细,禁止就是设置为254,也就是这个值设置为254、255的时候,transmit设置254、255的时候,我们可以使用这个静止时间静止时间。就是说如果说你这个节点它发布的速度特别快的话,你可以设置一个,比如设置100毫秒,就是100毫秒内这一段时间再发送的就忽略太快了。因为它这个太快的的负载太大,你是很多件的都发处理不过来,所以设置的那个静止时间这么一个东西。然后再往下,它这个是event timer,这个event timer是什么呢?你可以作为一个周期性的发送,一会儿给大家展示。它原装定制设置为500毫米,它就500毫秒周期性的发送东西这么一个东西。

同步传输它这个作用是什么呢?就是说你传输几个同步,你接收到几个同步帧之后,你这个节点端在响应。比如说你比如说配置,人家在他们这里的话,配置零的时候就不使用了,就1.234。你比如说三的时候,配置接触到三个同步的时候,你的p do在网上传输就这么个东西。好,这样的话就跟我们这里的话这几个注释的定义都对应上。大家尤其你下面可以细看它每每一个的含义这么个东西。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第25张图片

然后进入一个重点了,就是映射,你要大家理解它这个东西是怎么映射的。比如你看我们看他这里,看我还是看这个,我们这里做了一个比如说TPT0
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第26张图片
0X1800这个通讯参数通用 先把基础的配置好,配置好之后,

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第27张图片
然后由下面这个0x1A00来设置这个映射。我们这个映射的话。设置了个什么设置这个0X2001,这个是它这个有具体含义的。0X200它是代表含什么含义呢?我们这里有,大家看看这里也有。第一个是高16倍的,是代表这个索引,然后低16倍的那个高高八倍的是代表着子索引。然后后边第八贝塔是代表这个数据类型,数据的Bit数。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第28张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第29张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第30张图片
实际上我们这个模板例子是融合了这个主机和从机了。这节课专门的给大家把这个分开,一个主机一个例子统计一个例子,方便大家了解它这个具体的实现。有时候有个具体的例子的话,大家有个具体的例子参考它更注意有助于理解,要不然还是理解的有点模糊。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第31张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第32张图片
这个同步协议就是说它的这个最终是要配合什么一起使用的,配合我们这个PTPDO,PDO还同步使用的。它这个实现的原理是什么呢?就是说我们主机这个主机端发送这个同步,然后这个机器它要在我们设置这个窗口时间内再恢复这个时间内来恢复,它才有效。如果说不是在这个呃时间内窗口时间内恢复的话,那那就是无效的。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第33张图片
这个紧急报文是它这个格式,只要你在这个程序里面,就像我们程序,你只要开启就行了,你把它开启就可以了。开启之后,它它就会按照这个相关的,把这个从节点会把这个相关的一个报案错误信息发给主节点,它会发送给我们主站这么一个东西。然后他加拿大就这么几个ECCERRE这个EM,这个MEFECC的话是这个错误代码,然后ER的话错误寄存器,这是常常自定义错误,错误信息这么一个东这个相关的一个信息。然后这个是具体的一些相关的一个错误,就这么一个东西,错误代码具体的错误代码大概的一个含义,这是两个字节来表示的。然后这对我们错误的话也把这个集成了。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第34张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第35张图片
它的预定义ID的话基本上就是说它就是通过软件来识别的,不需要这个硬件,它没有用到这个硬件过滤器,注意这一点。
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第36张图片
master主机。主机的话它有一个监测这个节点,它有一个消费实现消费者心跳时间。消费者心跳时间,这个就是主节点它应该监测的这个东西,然后就是生产这个时间,这个就是我们从机它产生这个心跳包,一直不断的给这个主机来发这个心电波,是这么一个东西。好,继续跟大家说。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第37张图片

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第38张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第39张图片

击进入0X1016这个索引,然后到这里的话就可以设置你的个数检索的支持的可以检索的统计个数。我这里检索了两个统计就什么了。然后大家也可以增加

大家刚才0X16这点点击时候它这里会有个提示出来。然后高八倍的设置为零,然后中间八倍的是监测的阶段ID,也就是我们这里一个展示的lx 18,还有lx 19这2个阶段ID然后最后16倍的是这个新调时间,就是说这个新调时间大家注意,这个是我们主机端监测的时间。

比方说我们主机可以设置为,我们这里的话设置是一秒检测一次。一秒检测是那么重新的话,只要在一秒内发送就可以了。因为不限制,哪怕你疫苗发送100次了也都没关系。只要他主机的在在疫苗能检测到。你那个同学发送过了,他就是认为你这个从设备是存在的没问题的,就这一点就行。我们这里是一共检测了两个。

CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第40张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第41张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第42张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第43张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第44张图片
CANopen协议栈专题知识点干货分享,系统了解NMT,PDOSDO,时间戳,同步报文,紧急报文等-笔记_第45张图片

你可能感兴趣的:(STM32开发,笔记,嵌入式硬件,驱动开发)