旧文备份:CANopen协议中SDO服务】的更多相关文章

SDO是服务数据对象接口(Service Data Obiect)的缩写,顾名思义提供服务数据的访问接口,服务数据就是一些实时性要求不高的数据,一般是指节点配置参数,因此,SDO一般用来配置和获得节点的配置参数.其优先级只比心跳(Heartbeat)高. SDO既然称之为服务,那就要有服务的提供者和使用者,提供者就是SDO server,使用者就是SDO client,在CANopen网络中每个节点都要有一个SDO server,因为每个节点的对象字典大部分对象都是通过SDO来访问的,对象字典的…
(于2007.1.22) 由于PDO所传输的数据内容是无协议的且分配的标识符范围较SDO靠前,因此,其效率和优先级都是较高的,通常用于实时过程数据的传输. PDO是生产/消费类型的通讯方式,数据只有一个生产者(发送),但是消费者(接收)可以有多个,生产者和消费者事先都已知道数据的类型和内容(通过设置PDO映射来管理). 对PDO通讯参数的设置可以实现四种通讯方式: 同步传输.在收到SYNC消息后触发PDO发送,可以定义收到几个SYNC后触发一次TPDO,在有SYNC的CANopen网络中,SYN…
SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发.SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高.SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产…
有关节点地址和网络波特率的在线设置等:下载…
SDO是CANopen协议中最复杂的一部分,带有应答机制,有多种传输方式,并且完整的SDO功能节点需提供1个SDO server和多个SDO client,因此SDO的实现异常困难,协议多种传输方式的解析处理还有迹可循,多个SDO client服务和多个对SDO server的访问的协调就不容易了,这里介绍一种方法——SDO线程来解决. 注意,这里的线程可不是操作系统提供的多线程技术,况且为保证协议栈良好的移植性,在CANopen协议栈核心代码里中也不好去调与操作系统相关的库函数.我们这里的SD…
CANopen专有个子协议用来描述怎样去通过网络设置节点地址和波特率,就是CiA DSP-305,大伙都叫LSS协议,是Layer Setting Services的缩写,不太好翻译,可以叫底层设置服务协议吧. 属于主从式服务,类似于NMT的方式,占用2021(for master)和2020(for slave)两个标识符.CANopen网络中同时只能有一个节点能提供LSS Master服务,并且该节点同时也必须是NMT Master.网络上的其他节点都提供LSS Slave服务. 假设网络上…
(十年前的旧文,不舍等扔) 创建日期:2005-11-17 修改日期:2005-11-17 文件名称:简单CANOpen 协议说明.doc 作者:winshton 版本:V1.0 (注:本文以24in 24out I/O模块为例说明,对在单片机下实现简单的CANopen简单功能作分析设计,文档中所有功能均已在AVR上实现) 本说明是CAN上层协议CANOpen协议的嵌入式简化,较原始CANOpen版本简单易用,且更适应嵌入式模块通讯的需要,并且兼容CANOpen协议. 下面按照协议支持的功能分别…
在公司开发的RT下没法使用C库,并且替代库函数没有几个,需要用到setjmp和longjmp函数,没办法,只能自己想办法了,上sourceforge淘换到一个小日本的工程,提供这两个函数的替代源码,名字叫libcont,下载下来发现实在Linux下编译的,查看Makefile文件,使用了GCC和NASM,郁闷了,但是实在找不到windows下的代码了,看看能不能移植到VC下吧! 千辛万苦,本想修改代码移植到VC下,无奈汇编格式差异较大,后经同事提醒,在VS2005下调用NASM总算把汇编嵌进来了…
我们知道OD(对象字典)是CANopen的核心,所有功能都是围绕它开展的,是协议栈的数据中心,良好的OD实现是协议栈高效稳定运行的基础,而OD的实现最基本的一点就是怎么去保存它.因为OD的内容比较杂,读写属性上,有只读数据.只写数据.可读写数据:保存要求上有非易失和掉电丢失两种类型:数据类型上有字符型.整型.长整型等等:存储格式上有8位.16位.32位等.其它的不管,本文现只讨论怎么利用单片机的资源去尽量满足OD的存储需求. 有人会以为这还要讨论么?只读的就放在只读存储器中,可写的就放在RAM中…
前段时间接触了几天RTLinux,折腾了好几天才总算把它安装上,得益于Prof. Chang-Gun Lee的安装建议,觉得该文档可能会对准备尝试安装RTLinux的朋友们有帮助,本人英语很烂,也比较懒,好在也没几页,就试着翻译了一下,有需要的朋友可以将就着看看,英语好的可以去看原文. 总体感觉,RTLinux的硬件兼容性实在不敢恭维,同样的内核版本,同样的配置在有的平台上就跑不起来,反正我试了一个Intel845G主板的台式兼容机和一个SIS主板的神州移动PC,那个兼容机一加载RTLinux模…