您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页STM32上CAN_OPEN总线移植

STM32上CAN_OPEN总线移植

来源:筏尚旅游网
STM32上CAN_OPEN总线移植

本文的由来:公司开发的几个产品上都要用到CAN_OPEN总线。它们适应于DS406标准。现在公司从来没有人做过有关这方面的事情,而本人也未接触过,但是对下列协议比较了解且已用到产品上:

1 以太网及TCP/IP栈。

2 USB2.0 3.0

3.SSI

4.modbus/TCP modbus/RTU

所以想用一段时间把这个产品加上can_open总线。

开发过程及调研:

为了进行这个开发,购买了下列书籍:

现场总线CANOPEN设计与应用,是CiA写的。

项目驱动--canopen现场总线基础教程 这个是周立功等编的。这两本书,我基本上大部分是在机场等待时阅读完的,正好哪段时间出去比较多。

另外在网上下载了下列代码:

Atmel公司网站上有关canopen参考资料源代码。

Microchip公司网站上的有关芯片资料和源代码

CiA网站上的DS301和DS406部分 ELGO公司产品样本(他们的产品支持CANOPEN)

另外在中搜索了一些有关的资料,其中最有用的是虹科的CANOPEN协议介绍。

本人非常感谢虹科的这篇文档,因为它使我少花了很多时间去看哪些冗长的标准。后来发现CANOPN最基础的部分基本上这篇文档都讲到了,而且它的篇幅是如此之短能容纳我最需要的部分,正是因为这么多的网友的无私奉献,我才能把这个协议栈写出来,所以我非常愿意将本文给大家分享。因为本人文笔有限,不当之处还请谅解。

开发难度:

目前国内真正将这个CANOPEN整明白的人还不是很多,少数几个可能在某些公司,有价值的东西基本上也没有发表,这对于推广这个总线很不利,比如我们有好些网友希望将CANOPEN用到STM32的M3单片机上,就碰到了很大的难度。CANOPEN还是比较复杂的,但是如果我们只开发传感器部分就比较简单了。传感器部分不一定支持所有的这些命令和协议,有时只需最低的就可以。比如测量电压的传感器,它只有一个测量量,它就比较简单了。不过再简单,也要支持基本的协议,最基本的NMT命令,SDO访问,和PDO数据的发送。

一些公司还想靠这个技术堡垒维持它们的运作,这是非常不妥的。试想如果大家都掌握了这个下位机的技术,推出各种各样的产品,这个时候,市场大了,自然就有更多的生意,而不象目前,在国内基本上很少有公司推出这类接口的产品。

开发过程:

这个部分我想要花我很多时间来写了。等我有机会再重新整理并更新此文档。

其中硬件部分只用一个CAN物理层芯片。其它的没有什么改变。

软件部分源代码来自ucOS网站,这要感谢该公司的开源策略,使之在中国开花结果。由于我们暂时未商用,是许可的。

开发结果:

上位机,我们用一个USB接CAN的小接口卡实现。几十元钱一个,用VC编写一个简单的测试程序。

下位机,采用STM32103实现,为了简单,我们让它运行在ucOS操作系统之上。一些事件就用操作系统的时钟来进行。

测试功能:

1.设置心跳信号及其它4个NMT功能。

2.读取SDO数据

3.设置事件定时器周期。

4.读取PDO包并实时显示。

5.在LSS层设置下位机ID号

6.在LSS层下设置波特率。

7.保存参数。

经验证这些功能都可以实现,于是这个简单的CANOPEN总线传感器系统就基本实现了。接下来我们打算购买一个施耐德的带CANOPEN总线的PLC再测试一下。

整个过程用了2个多月(有一半多时间是业余时间,晚上在家里做的)

从购买书开始用了4个月。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务