一个关于不同通信方式下PDO的问题_第1页
一个关于不同通信方式下PDO的问题_第2页
一个关于不同通信方式下PDO的问题_第3页
一个关于不同通信方式下PDO的问题_第4页
一个关于不同通信方式下PDO的问题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一个关于不同通信方式下PDO的问题(这条文章已经被阅读了 1551 次) 时间:2008/04/27 06:26am来源:lucyfa 我在一家叫Selectron的公司实习做应用工程师,同时还在做毕业设计,也是工程应用的,所以我对硬件层面知之有限,不好意思,有些关于TxPDO和RxPDO的问题需要请教你。1. 我查阅了之前众多网友询问你关于PDO的问题,对于主从模式下,我可以理解主站根据软件设置通过SDO对从站进行PDO的配置,包括MAPPING等。这个时候从站通过自身的(带从站节点地址信息)TxPDO发送数据给主站,主站通过从站的(带从站节点地址信息)RxPD

2、O发送数据给从站。那么这个时候,主站就不再是通过带自身节点信息的TxPDO发送数据到总线上,而从站配置带主站节点信息的RxPDO对主站发送的TxPDO进行接收,对吧?2. 那么回到广播或者一对多的通信模式下,节点1通过带自身节点信息的TxPDO发送数据到总线上,而其他节点分别通过配置带节点1地址信息的RxPDO对节点1发送的TxPDO进行接收。这个时候我的疑问就明显了,节点1发出的TxPDO取得了总线的控制,从而将报文帧发送到了总线上,而其他节点通过对总线的监听和自身RxPDO的配置了解到总线上正在传输的节点1的TxPDO需要被自己接收,从而启动接收的操作,这样理解对吗?3. 假设这样的理解没

3、有问题,那么广播或一对多的通信模式下,节点1的TxPDO真正发送到了总线上,而其他节点配置的RxPDO是否就根本不会像主从模式下的RxPDO那样会真正发送到总线上?这种时候的RxPDO仅仅作为一种软件层面对需要接收的TxPDO进行定义和设置而工作的?这就是我的疑问,主从模式下,主节点对从节点配置的T和R的PDO都真正通过总线传输了,并且起到了传输数据的作用。而在广播或一对多的模式下,节点需要通过总线传输的数据是否都是通过TxPDO发送的,而RxPDO仅仅起了一个配置的作用,并未参与到总线的数据传输中去?不好意思,如有表述不清晰的地方请见谅。这个问题困扰我很久,一直没有答案。 打包下载

4、引用该文发表评论转寄该文关闭窗口此文章相关评论:该文章有13个相关评论如下:(点这儿论坛方式查看)yuanfang发表于: 2008/04/27 07:10am1)其实我还不太明白你描述的意思,不管是主站,还是从站,对一个SDO和PDO的判断,即判断是否是发给我的,都是通过COBID来判断的。2)TXPDO和RXPDO是两个相对独立的过程,两者之间没有任何关系,TXPDO是从站发送给主站的PDO,而RXPDO是主站发送给从站的PDO。3)CAN总线是广播方式的,即任何一个节点发出的数据,总线上所有的节点都能接收到,至于拉收到的数据是否是自己需要的,由自己的软件来判断。CANopen是一个多种方

5、式并存的协议,单就PDO来说,是Producer/Consumer模式,主站传送给从站的RXPDO,可能被一个或多个从站接收处理,而从站发送给主站的TXPDO,也可以由主站或是其它从站接收处理,看你如何配置,配置的过程通过SDO来实现。总的来说,我还没有看清楚你的描述,可能你对总线的通讯结构还有些模糊,多看一些资料,发挥一些空间想像能力来理解。 顶部lucyfa发表于: 2008/04/27 02:06pm谢谢,我想我弄明白了,我之前把TxPDO/RxPDO当成了Producer/Consumer,以为二者是必须对应的,现在我清楚了,非常感谢你的帮助! 顶部lucyfa发表

6、于: 2008/04/27 02:21pm 相关图片如下:请看这幅图,这是我们公司内部的培训PPT中的一个例子主从通信下主站和从站的PDO传送,这个时候,图中所示为主站通过TxPDO发送数据,从站通过RxPDO接收数据,同时从站通过自身的TxPDO发送数据,主站通过自身的RxPDO接收数据,这就让我很难理解。如果主站通过自身的TxPDO发送数据给从站,那从站既然能监听总线,直接通过软件判断进行接收就行了,为什么还要通过自身的RxPDO进行接收,这个RxPDO中的数据从哪里来的? 顶部yuanfang发表于: 2008/04/28 01:24am這個圖寫得不清楚,這裡面的TX

7、PDO和RXPDO是針對節點本身來說的,PDO實際上並無主從,數據是被產生出來,就叫做TXPDO,數據被接收處理,就叫RXPDO,比如一筆數據是從主站發給從站,對於主站來說,這是TXPDO,對於從站來說,這是RXPDO,而我們通常所說的,都是站在從站的角度來說的,所以主站發給從站的是RXPDO,從站發給主站的是TXPDO。 顶部lucyfa发表于: 2008/04/28 03:03am 相关图片如下:附图中上图为主从的通信方式,下图就是我说的无主的广播的模式。由于TxPDO和RxPDO都有相应的不同COB-ID,而COB-ID最大的作用是总线仲裁,所以是否Tx和Rx的PDO

8、都要发送到总线中?在主从通信方式下,我的应用中,整个网络都是在主的软件中进行配置的,包括了从的TxPDO和RxPDO,这个时候我们一般直接把主要向从传输的数据直接写入从的RxPDO中,网络启动后我用CANanalyzer监测,只能在总线上读到带从节点的RxPDO和TxPDO的COB-ID的报文帧。也就是说假设我们理解主从节点之间的通信,主节点对从节点发送信息的PDO对于主节点来说,是TxPDO,对于从节点来说,是RxPDO,那么为什么我们监测不到带主节点节点地址信息的TxPDO?所以我觉得RxPDO如果只是做对应一个TxPDO的PDO Linking的话,网络上只需要传输TxPDO就行了,这就

9、是前面我说我觉得RxPDO不需要发送到总线上的原因。这个地方要想想明白,我一般是想象主从模式下直接跳出了协议中PDO的传输模式,从软件实现了主直接使用从的RxPDO发送数据,并且不配置RxPDO的情况下接收所有从的TxPDO,不知这样是否又错的很远了?另外不好意思问一下,如果主要发送给从数据,必须通过一个带主自身节点信息的TxPDO,要接收从的某一确定数据,必须配置一个带自身节点信息的RxPDO,那么在一个有60个节点以上的网络中,假设每个从节点使用4个TxPDO和4个RxPDO,是不是主节点就要配置240个TxPDO和240个RxPDO? 顶部lucyfa发表于: 2008/04/

10、28 03:11am不好意思一直打扰你,我之所以需要弄清楚各种模式下RxPDO是否发到了总线上,主要是因为我在做CANopen在列车通信网络的应用。在方案中PDO是事件驱动的,因此我需要计算出网络中可能发生的最大负载的报文同步竞争网络可能出现的延时的影响,以此为依据设定PDO的inhabit time。这个时候我必须要知道有哪些报文真正向总线请求传送,如果主发送的是自身节点信息的TxPDO,与其用从的RxPDO传输数据,由于COB-ID的不同,优先级差别很大的。 顶部yuanfang发表于: 2008/04/28 03:56am是報文就要通過總線發送,不發送的數據,就不能稱作報文了。

11、我想我有些懂你的疑惑了,在CANopen網絡中,只能同時存在一個主站,所以COB-ID裡面的地址,是由從站的ID來組成的,沒有主站的地址,因此你看不到所謂“帶主站地址信息”的報文。 顶部tyz发表于: 2008/04/28 09:20am这个贴子最后由tyz在 2008/04/28 05:25pm 第 2 次编辑     PDO是用来传输实时过程数据的。     在CANopen预定义连接集中,对节点TxPDO和RxPDO的所占用的COB-ID给出了缺省定义。可以看出,表中定义的COB-ID并没有任何交叠(over-lapp

12、ing)并没有任何两个TxPDO和RxPDO占用同一个COB-ID其实一旦有交叠的话,那一个link也就意味着一个PDO通道的建立了。    为了有效地对整个CANopen网络进行管理,301中定义了CANopen NMT master,这个NMT master用来对各slave节点的节点状态进行控制。在此基础上,302中又提出了CANopen Manager的概念,如过NMT master至少再具备SDO Manager和Configuration Manager二者之一就是一个CANopen Manager了。    与485的“主从问答式”通信机制

13、相不同,站在CAN底层的级别,我们可以说CAN是多主机制的硬件中基于报文ID优先级进行仲裁,只要我们保证不同节点所发报文ID是不同的,就可以避免总线发送冲突了其实这也是CANopen预定义的各种对象采用“功能码+Node-ID”的原因。     预定义连接集并不是什么神圣不可动摇的“普世法则”,实际的CANopen组网中,需要根据应用背景的不同来灵活地配置包括PDO通道在内的众多配置项。具体到PDO通道的配置,TxPDO和RxPDO并无主从之分,只是不同视角下的不同称呼。127*8的4组TxPDO和RxPDO说白了,其实就是一大堆可用的CAN-ID资源。通信参数定

14、PDO对象的基本通信参数特性,映射参数定义了PDO对象和应用对象之间的联系。    你所说的将主站的RxPDO和从站的TxPDO对应起来,完全可以,如果应用需求是这样的话。“总线上到底没有RxPDO?”呵呵,这个问题问其实还是受了“预定义连接集”的误导。不妨这样回答:总线上只有PDO在传输,在发送方看,它是TxPDO;在接收方看,它是RxPDO。 顶部lucyfa发表于: 2008/04/28 01:31pm 你所说的将主站的RxPDO和从站的TxPDO对应起来,完全可以,如果应用需求是这样的话。“总线上到底没有RxPDO?”呵呵,这个问题问其实还是受了

15、“预定义连接集”的误导。不妨这样回答:总线上只有PDO在传输,在发送方看,它是TxPDO;在接收方看,它是RxPDO。一个从节点,是通过什么来定义需要接收总线上的哪条PDO数据的?是通过RxPDO的配置?还是通过软件中的设置?还是通过CAN控制器的过滤? 顶部lucyfa发表于: 2008/04/28 01:48pm举例来说吧,我的主节点节点地址为3,一个从节点节点地址为10这时,假设我主节点发送一个TxPDO1,其COB-ID自然是Ox183h;那么我对10节点配置一个RxPDO,其COB-ID为Ox20ah,这两个TxPDO和RxPDO能关联上吗?如果不能,那应该是怎样的?

16、60;顶部tyz发表于: 2008/04/28 02:30pm     不能的。此时需要把从节点对象字典中对应的RxPDO通信参数(假如是RxPDO1)1400h索引下01子索引值配置为0x183h。 顶部cndestiny发表于: 2008/05/27 01:14pm"CANopen是一个多种方式并存的协议,单就PDO来说,是Producer/Consumer模式",在传输PDO时没有主,从站之分, 只有一个Producer和一个或多个consumer,Producer发送TxPDO(从Producer角度看)报文,Consumer接收RxPDO(从Consumer角度看)报文,这两个报文的COB-ID是相同的,所以其实就是一条相同的报文,TxPDO与RxPDO就是通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论