CANOpen学习指南
对于初学者,相对于其他总线的资料来说,在国内CANOpen的资料并不多。而且并不是所有资料都适合初学者看的。这里给出一些建议,对CANOpen感兴趣的,可以参考一下学习的顺序。
前提:需要对CAN总线有所了解,可以看CAN2.0总线的资料。
当然,对计算机系统、单片机以及编程也需要有一定的基础。
第一步:CANOpen Standard 301,这个是一切的基础,最然并不一定马上就要对所有的细节了如指掌,但至少对CANOpen总线以及各种传输控制方式以及其作用需要有一定的了解(比如:NMT、SDO、PDO、HeartBeat等等)。这里不推荐看ZLG的文档,ZLG的文档只是从301文档中,抽出的一些章节中的内容,我相信如果直接看ZLG的文档的话,大部分人是看不懂的。
第二步:最后有一个可以玩的硬件(最好是已经移植好CANOpen协议栈的),否则所有的协议只是资料中的数据格式以及操作方式而已。这样就需要有一个开发板和CAN逻辑分析仪工具。还好我在3年前就已经自己做过一块低成本的CAN的开发板(基于AT90CAN32),并且在这个开发板上实现了基于串口的CAN适配器(可以用于发送各种CAN数据),同时,也在这块板上实现了CANOpen。目前taobao上也有很多种类的CAN开发板和适配器。
在这个硬件上,测试各种CANOpen报文,包括NMT、SDO、PDO,可以远程设置HeartBeat频率,看看收到的HeartBeat报文等。这步完成后,对于CANOpen就有了一定的认识了。对于各种报文,这里要推荐一下ZLG的文档,最后部分对CANOpen的各种报文的格式做了一个总结,查看起来非常方便。
第三步:找个CANOpen的协议栈源码看看,从代码层次来理解CANOpen的各种操作的步骤以及实现方式。当然,目前协议栈也有不少了,有些是免费的,有些是收费的(估计价格还都不便宜)。
第四步:301文档只是描述了CANOpen有那些工具可以使用,但没有任何关于一个模块如何利用这些功能的信息。这样就要看一下CANOpen的各个模块的文档,比如401--I/O模块。不过,并不是所有的这些文档都是免费公开的,可能有些是需要$$才能得到的。
CANOpen学习指南的更多相关文章
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- [go语言学习指南]
内部分享,根据自己的经验,收集汇总的go语言学习指南. 适合新手入门. 可以通过这里进行下载.
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- 推荐10个很棒的AngularJS学习指南
AngularJS 是非常棒的JS框架,能够创建功能强大,动态功能的Web app.AngularJS自2009发布以来,已经广泛应用于Web 开发中.但是对想要学习Angular JS 的人而言,只 ...
- 项目管理之道--纪我的新书《PMP项目管理认证学习指南(第4版)》出版并预祝大卖!
新年伊始,我最新的项目管理书籍——<PMP项目管理认证学习指南(第4版)>也出版了,真是新年新气象啊!翻译英文书籍是一件任重道远的工作,除了要具备扎实的基本功,熟悉相关的领域外,还需要细致 ...
- Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)
本文转载自: Gulp学习指南之CSS合并.压缩与MD5命名及路径替换
- Android Wear(手表)开发 - 学习指南
版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...
随机推荐
- golang 实现海明距离 demo
Simhash的算法简单的来说就是,从海量文本中快速搜索和已知simhash相差小于k位的simhash集合,这里每个文本都可以用一个simhash值来代表,一个simhash有64bit,相似的文本 ...
- IntelliJ IDEA 历史版本下载地址
地址:https://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases scala插件:htt ...
- R语言学习笔记(二十一):字符串处理中的元字符(代码展示)
元字符有自己的特殊含义 [ ]内的任意字符将被匹配 grep(pattern = "[wW]", x = states, value = T) grep(pattern = &qu ...
- 20155321 《信息安全系统设计》Linux多线程的深入学习
再次学习之多线程 基本概念的再次学习 线程是程序执行的最小单位(进程是资源管理的最小单位),线程隶属于某个进程中 进程有自己的数据段.代码段和堆栈段.线程通常叫做轻型的进程,每个线程共享其所附属进程的 ...
- c++ 预处理和多重替换
预处理概念 #include #define extern 一. 预处理概念 在源代码编译成机器指令之前,都要进行预处理. 预处理阶段一般会在编译之前处理和修改C源代码.完成预处理后预 ...
- 4542: [Hnoi2016]大数
4542: [Hnoi2016]大数 链接 分析: 如果p等于2或者5,可以根据最后一位直接知道是不是p的倍数,所以直接记录一个前缀和即可. 如果p不是2或者5,那么一个区间是p的倍数,当且仅当$\f ...
- CF 1114 D. Flood Fill
D. Flood Fill 链接 题意: 一个颜色序列,每个位置有一个颜色,选择一个起始位置,每次可以改变包含这个位置的颜色段,将这个颜色段修改为任意一个颜色, 问最少操作多少次.n<=5000 ...
- Kafka系列二 kafka相关问题理解
1.kafka是什么 类JMS消息队列,结合JMS中的两种模式,可以有多个消费者主动拉取数据,在JMS中只有点对点模式才有消费者主动拉取数据. kafka是一个生产-消费模型. producer:生产 ...
- 解决 spring-test 出现 Failed to load ApplicationContext 的异常
在使用spring-test的时候,在启动@Test的方法时,spring-test会去加载spring的配置文件,这个时候如果配置文件没有在 @ContextConfiguration 中写全,就会 ...
- 设置 idea 运行前不去检查其他类的错误的方法
问题描述 MainClass为要运行的正常类,目录下存在一个类ErrorClass有错误,运行MainClass时会无法运行. 现在需要忽略ErrorClass中的错误,执行MainClass中的代码 ...