CANOpen过程数据对象报文

来源:互联网 发布:js 点击radio 触发事件 编辑:程序博客网 时间:2024/06/06 20:24
       canopen资料、主站/从站移植模板、源码注释下载链接:http://download.csdn.net/detail/lushoumin/9811717





        PDO被用来传输实时数据,数据从一个生产者传到一个或多个消费者,采用无确认的方式。在CANOpen网络中,一般情况下从站之间是不进行交互的,所以这个生产者或指主站。比如主站发送一个远程索取报文,多个从站接收到该报文之后开始发送应答PDO。再比如主站发送同步报文,从站接收到同步报文之后判断是否回应PDO报文。

       

        数据长度被限制为1~8字节。这就要看一下PDO报文格式了,如下图PDO请求(左),PDO数据报文(右):

                                                         


        PDO数据内容只有它映射参数对象定义,生产者和消费者知道这个PDO的数据内容

          首先在CANOpen字典中,需要定义两个PDO参数,通信参数和映射参数。

          从站接收到PDO远程请求之后,通过对比PDO通信参数中所指定的COB-ID和接收消息中COB-ID来确定是否回应主站并确定这是第几个PDO通道,并通过映射参数得知该通道要回应什么样的值。

          同样,主站也是根据通信参数和映射参数来确定是否接收并未将该值存放至何处。


          通信参数:

               

        映射参数:

               



在PDO通信参数中:

        PDO可以指定禁止时间,避免由于高优先级信息的数据量太大,始终占用总线。而使其它优先级较低的数据无力竞争总线的问题。禁止时间单位100us。

        PDO可以指定一个事件定时周期,当超过定时 时间后,一个PDO传输可以被触发(不需要触发位)。事件周期由16位无符号整数定义,单位1ms。

        PDO传输模式

                异步触发模式

                远程索取模式

                同步触发模式

                同步周期模式

                同步非周期模式

        注:PDO的同步传输模式:同步传输(通过接收SYNC对象实现同步),同步传输又可分为非周期和周期传输,非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送。周期传输则是通过接收同步对象(SYNC)来实现

               PDO的异步传输模式:其触发方式可有两种,第一种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送(传输类型为253),第二种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等,传输类型为255)


1 0