CANopen笔记1】的更多相关文章

PDO 过程数据对象用于在节点之间传送过程数据,如I/O模块I/O状态读取和设定,模拟量采集和模拟量输出等等,协议考虑从机硬件限制最多支持4组PDO,每组包含一个RPDO和一个TPDO.The Gold drive supports 4 TPDO and 4 RPDO. Each PDO contains up to 8 bytes of data. 现在以I/O模块为例进行说明:设I/O模块有24路输入,24路输出.24输入通过TPDO传给监控终端或其他节点,24输出通过RPDO由控制节点对其…
CAN现场总线只定义了OSI网络模型的第一层(物理层) 和第二层(数据链路层) ,而这两层一般已被CAN硬件完全实现了.由于没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符和8字节数据的使用.而且,随着CAN总线的广泛应用,国内外很多公司都开发出使用CAN总线的控制设备,为了使各种CAN设备可以互相兼容,需要一个开放的.标准化的高层协议来实现各种CAN设备进行标准的.统一的通讯. CANopen协议的子协议--实时伺服驱动和运动控制协议(CiA DSP402)…
1. c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*); http://zhidao.baidu.com/link?url=_lDBGq_ukEjYngcgn4yVGnJum_wrrxfyUUTWRvFZ7WyXPm9Urm6shNAShHNByuYzCQT8C6Sq9hjHbgKoEqoSEK 2. 弄清楚为什么要用TIM_IT_CC1,而不是用TIM_IT_UPDATE? http://www.dndev.com/cgi-bin/fo…
一.背景 CAN组网就必须得要应用层协议,原因就在于 * 便于网络管理与控制 * 确认数据的收发 * 发送大于8个字节的数据块(CAN每帧数据传输大小为8字节) * 为不同节点分配不同的报文标识符 * 定义帧报文的内容及含义(这在我看来是最主要的原因) * 网络的监控,节点故障的诊断与标识 CAN上层协议有许多,用大家都公认的,便于产品的兼容,因此,CANopen成为备选项. CANopen有个开源协议栈[CANFestival],同时有一位大神已经做了移植并记录,在此就厚着脸皮转载过来以做备份…
转自http://bbs.21ic.com/icview-878522-1-1.html   前段时间学习了CanOpen协议,到网上下载的CanFestival3-10源码,移植到VC.QT.STM32等平台,由于网上的资源较少,走了不少弯路,移植好使用过程中才逐渐暴露出各种问题,比如OD字符串传输.心跳时间不准确等等,现在已经解决了遇到的所有问题,移植出来的工程能够完好支持CanOpen协议,花了点时间,整理出一个简单易用的移植方法说明,也写了一些比较实用的调试工具,本来还想整理SDO.PD…
在网上下载CanFestival源码最新版本CanFestival-3-884a60cbb83e建立以下文件夹:inc文件夹:放LM3S8962硬件相关以及驱动部分的头文件,adc.h.hw_adc.h等等:Lib文件夹:放集成库文件driverlib.lib,这个需要比较新的,因为遇到老的库文件缺少CANbitset()函数:Startup文件夹:放启动代码,Keil软件自身提供的,只需要加入定时器中断(CANopen需要一个16位定时器)和CAN接收中断处理函数:Target文件夹:目标板初…
常用的mode of operation 有以下几种: 控制字 control word: 6--------------7---------------15--------------------7 通信前的准备                    电机使能                电机去使能 Tips: 1 通信准备工作 control word=6; 2 在进行控制前,先设置操作模式 mode of operation 在使能电机; 3 模式切换,先去使能control word…
Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程 博主现在从车载自组网信道分配和多跳路由转向了自动驾驶,没啥经验,想快些做出来个Demo还是得站在巨人的肩膀上才行,我选择了Apollo,主要还是支持国产而且它的开发者套件有现成的底盘可以直接跑起来,但是apollo系统结构比较复杂,各种花哨的设计模式(消息适配器.工厂模式等)绕得人头晕.日本那里有个autoware是基于原生ROS的,也用Apollo开发者套件跑了下,就是普通的机器人开发那套,难度适合学生用来做项目,…
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件:// 第二步,使用命令git commit,完成. 2.修改文件 git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改. git diff顾名思义就是查看difference,显示的格…
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者服务器 一.安装webpack 你需要之前安装node.js $ npm install webpack -g 安装成功后,便可以使用webpack命令行了. ok,开始工作! 二.新建一个空目录,名字为myApp,文件如下 entry.js document.write("It works.&qu…