CANopen源代码框架说明.docx

上传人:b****6 文档编号:6566433 上传时间:2023-01-08 格式:DOCX 页数:11 大小:52.89KB
下载 相关 举报
CANopen源代码框架说明.docx_第1页
第1页 / 共11页
CANopen源代码框架说明.docx_第2页
第2页 / 共11页
CANopen源代码框架说明.docx_第3页
第3页 / 共11页
CANopen源代码框架说明.docx_第4页
第4页 / 共11页
CANopen源代码框架说明.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

CANopen源代码框架说明.docx

《CANopen源代码框架说明.docx》由会员分享,可在线阅读,更多相关《CANopen源代码框架说明.docx(11页珍藏版)》请在冰豆网上搜索。

CANopen源代码框架说明.docx

CANopen源代码框架说明

2015年12月

摘要:

本文主要介绍五部分内容:

商业版代码与开源代码的详细区别;CANopen协会-CiA的各重要子协议的代码包情况介绍;代码包重要服务;代码包框架介绍和使用说明;支持的MCU列表和升级情况。

首先先介绍一下开源代码和商业版代码的区别,当然这其实已经是“公开的秘密”,只是我们没有去详细总结而已:

1、费用:

商业版代码收费,开源代码免费;商业版代码节省了很多研发人员和测试人员的时间,节省了很多人力成本。

2、技术支持和文档:

遇到问题,商业版有人负责解答,有完整的操作文档和手册(将近五百页的详细说明书),开源无人解答--问题解决的几率小、风险不确定性大。

3、代码质量和稳定性:

商业版本有质量保证,代码的质量、优化和效率;使用开源代码存在质量风险大大提高;

4、开发难度和时间:

商业版有完整的多款不同硬件平台的demo提供,大大降低开发移植难度和时间。

(研发人员的薪资也是成本,产品质量和推出市场的时间也是机遇与挑战)。

商业版代码的研发工作量增加、后期测试难度和时间也增加。

5、测试和调试配套:

商业版有完整的工具链和测试方法提供,开源代码没有。

完整的测试工具包括:

网络组网和管理以及测试(导入EDS文件组网并修改对应的数据,快速图形化PDOmapping)、报文分析、快速创建对象字典生成EDS文件、USB-CAN卡采集数据等等。

6、培训:

提供一天在线培训,开源代码无任何培训和技术支持

7、后期延展性很好:

SO-877-VP或者SO-1063-VP提供30多种不同MCU平台的demo,并且每年不断更新和增加,如果项目需要更换MCU,可以快速移植,不需要额外的开发工作量。

而开源代码没有这方面的资源。

如果要做serious的产品,一般用商业版的代码更有保障,这也是为什么很多标杆企业采用商业版代码的原因。

国内运动控制行业、医疗行业、轨道交通等行业用户最广的代码供应商。

德国SYSTEC的商用版代码这个代码非常大的好处在于:

1、提供完全开放的代码;2、买断式的使用权限(当然,仅限本公司本地址);3、一个价格,购买三十多种MCU的demo,这无疑为公司的其他项目或者以后的升级提供了很多的便利。

4、代码的稳定性和文档的完整,差不多20年的客户经验积累了非常多的文档和高质量的代码。

5、一年免费升级(所有新平台demo都可以拿到)

可选的代码清单:

SO-877-VP:

支持CiA301,401协议

SO-1063-VP:

支持CiA301,401协议+CiA302协议(302主要指NMTmanager-动态切换网络状态和管理,SDOmanager-动态创建SDO连接,动态OD等等)

插件清单:

SO-1081:

CiA402协议-运动控制行业专用协议代码

SO-1089:

CANopenBootloaderSourceCode

SO-1059:

符合CiA304safety规范的代码,符合IEC61508的SIL3等级。

SO-1114:

flyingmaster源代码,配合SO-1063使用,符合CiA302-part2的规范。

这个不指CiA302-Part6的网络冗余,它指的是同一个网络之间如果同时有几个不同的NMTmaster,则可以互相切换。

SO-1078:

SDOGateway源代码

SO-1066:

MPDO源代码:

MultiplePDO传输。

SO-877-VP或者SO-1063-VP包括如下服务:

免费培训:

德国思泰研发工程师赠送一天的免费培训(主要针对CANopen源代码的协议学习以及如何上手开发,在线远程培训)。

二,提供免费demo:

贵司可以得到附件我们所列出的所有MCU平台下的demo,比如我们有STM32F107的demo,您可以直接简单修改就可以完成移植,剩余的功能您直接参考原有的demo修改就可以。

(德国的软件开发人员编写的源代码程序都是模块化的,可读性很强)。

三,买断式授权:

贵司可以不限使用时间,不限开发人数,不收取年费(除非贵司要升级和技术服务),不限产品MCU平台,不限产品种类,不收取产品的授权费用,这属于买断性的授权等等。

(但是贵司的开发需要在注册地址和注册公司内部使用)

四,VP包赠送开发和调试过程中所需的多款软件:

CDE软件(负责CANopen网络管理,设备管理,PDO映射,修改任意CANopen设备的EDS文件比如站地址和波特率等等),

CANinterpreter软件(负责接收/发送/保存/解析CANopen报文,比如PDO,SDO,NMT等)。

还包括一个德国原装进口的USB-CAN转换器。

五、样例代码(可以通过support@留下信息后,免费索取):

四个文件包括(一般拿到正式代码的demo后,也就只有这几个文件需要修改或检查):

ex_slv.c:

asimpleCANopenSlaveDemoaccordingtoCiA-301with3

RPDOsand3TPDOs(thiscorrespondstoourSO-877.

objdict.h:

Objectdictionarywhichbelongstoex_slave.c

ccmmain_.c:

excerptofthefileccmmain.c(correspondstoourSO-877

demo_flyma.c:

asimpleDemoaccordingtoCiA-301andCiA-302including

FlyingMaster(thiscorrespondstoourSO-1063

1)代码是模块化的结构,可读性很强,注释很清楚,而且采用商业级的代码,研发工作的继承性较好,因为采用的是统一的编程规范。

采用功能模块化的结构,还有一个好处是:

里面提供了很多不同的功能模块,但是您不需要把每个功能模块都加到您的项目中,只需要一些相关的,这样的话就使得您做不同的项目时很灵活,代码效率也很高。

2)通过Macros非常简单就可以创建对象字典文件,请参考附件的objdict.h

3)可自由选择需要调试的部分-针对输出

4)代码是包括LSS(LayerSettingServices)的,这个可以用于修改任何一个标准的CANopen节点的通讯地址和波特率等,使得您开发的设备不仅可以通过外设的拨码开关等设置,还可以通过支持LSS的软件设置。

六,节省开发周期,提高代码质量,代码量少优化性能高,提供一年免费升级和技术支持服务:

我们有个深圳的客户(做运动控制)在不懂CANopen协议的基础上,在我们的demo上用STM32F103

开发了IO接口,用时是五天,开发完所有的功能并完成了一致性测试的。

这个源代码是德国的,至今已经销售将近20年,在全球有非常多的客户,这些都从侧面反映了代码的稳定性和质量。

有demo则大大减少了开发的难度,提高了开发效率,加快了产品上市时间。

SO-877-VP或者SO-1063在源代码安装之后,一般会有8个文件夹,如下图:

我们可以按顺序进行一一介绍:

一、ccm主要是与CCM相关的函数,这里的包含了CCM层的接口函数读写,API的封装,波特率的设置,CAN外部控制器等等。

二、cdrv,里面放着三种类型的函数,分别为bdi开头的波特率设置,cci开头的外部CAN控制器,以及cdrv开头的是芯片自带CAN控制器的驱动源程序。

2.1其中,在以bdi开头的程序里面是晶振波特率的计算,其中已经定义了从6M到100M的晶振记算,当然如果从中没有找到相应的波特率,也可以根据我们已有的格式和功能函数,由客户自己来定义,如下图是6M的例子:

2.2cci开头的外部CAN控制器,定义了不同外部CAN控制器的功能函数。

2.3以cdrv开头是一些芯片自带CAN控制器的驱动源程序,里面都是CAN消息处理。

CAN的数据接收到以后,就是通过这些API接口函数,直接提交给协议栈的。

因为是基于Linux的,所以我们会看到一些Linux的进程。

可以参照cdrv.h进行讲解。

三、Copstack协议栈可以先跳过不讲,这里面主要根据CiA301规范的CANopen协议栈的内容。

四、objdicts对象字典:

客户可以在里面选择与自己对象字典功能相近的,然后再其基础上进行修改,

而不需要用户重新全部定义。

例如,ds401_7p就是7个PDO的;ds401_2axis为2轴的。

当创建对象字典的时候,我们可以看到是从索引0x1000开始定义的,一般都是从OBD_BEGIN开头,以OBD_END结束完成整个定义,具体里面索引和子索引后面的0x05、0x07是什么意思,我们不用去记,可以通过查手册找到相关的定义。

同时在这里定义的是对象字典的结构,保证对象字典的通用性。

如果要做一个对象字典,需要关注的是obdcfg.h和objdict.h两个文件。

obdcfg.h是对象字典的配置文件。

五example与target、其中example是完成不同功能的例子,在target文件夹下的这么多硬件平台,

都只是实现一个功能,如一个主站或者从站;而在examples下我们看到的函数,ex_mst.c的功能是支持主站一个instance的,而ex_mst_2inst.c是支持主站2个instance,就是指支持两个CAN接口的。

如果先前是只有一个inst的,需要实现两个inst,可以通过加载ex_mst_2inst.c,删掉ex_mst.c。

六、project也是Demo样例,是先前进行一次源代码的大更新,这样是为了有更好的延用性,以前比较旧的样例平台文件并没有删除,而是放在project下,现在新的文件都会放在target目录下面,同时会不断更新。

SYSTECCANopenSourceCode

SupportedTargetPlatforms

SYSTECpcNetCAN

SYSTECUSB-CANmodulseries

SYSTECCAN-EthernetGateway

PEAKPCAN-PCIPEAKPCAN-USBPEAKPCAN-Dongle

TewsTechnologiesTPMC816ESDGmbHPMC/331

KEILµVision(C51V7.xKEILµVision(C166V4.xKEILµVision(ARMV2.0

KEILµVision(RealViewARMTASKINGCC51TASKINGCC166TASKINGCCM16C

FujitsuSofttuneFFMC-16MicrosoftVisualC++5.0MicrosoftVisualC++6.0eMbeddedVisualC++4.0CodeComposerStudioMetrowerksCodeWarriorADS(ArmDeveloperSuiteGNUtoolchain

ParadigmBeckEdition

CodeRedTech-LPCXpressoeCosPROToolchainMPLAB

withoutOSLinuxeCosPXROSMS-DOS

MSWindows9x/ME/NT/2000/XPMSWinCE4.2

*

VxWorksCMX*

*Realizedascustom-specificadaptation

广州虹科电子科技有限公司

CANopen源代码2013年到2015年9月29号之间的升级情况和记录:

Latestchanges:

-NewdemoaddedinSO-1059(SafetyAdd-onforTexasInstrumentsRM42.-NewdemoaddedinSO-877forSTMicroelectronicsSTM32F407.-NewdemoaddedinSO-1063forSTMicroelectronicsSTM32F407

-Softwarechanged:

Thefileccmwin32.cisreadyfor64BitWindowsnow.-NewdemoaddedinSO-1059(SafetyAdd-onforTexasInstrumentsRM48.

-Newfeature:

NewdemoaddedinSO-877forSTMicroelectronicsSTM32F107usingSegger

embOSandIARWorkbench.

-Newfeature:

Newdemoaddedwhichshowsthehandlingwiththeobject0x1029"ErrorBehavior"

accordingtotheCiA-301standard.

-Newfeature:

NowtheSDOgatewaysupportsSDOaccesstotheownODonremotenetwork.-Newfeature:

SupportofXilinxZYNQ7000-basedonandforEnclustraMarsZX3witheCosOS

-Newfeature:

FlyingMasterimplementedaccordingtoCiA-302part2.ItisavailableforSO-1063

andisinstalledasAdd-on.

-Newfeature:

SDOgatewayimplementedaccordingtoCiA-302part7.ItisavailableforSO-877and

SO-1063

andisinstalledasAdd-on.

-Newfeature:

Newdemoprojectforexplorer-16-PIC32addedwith2instances-Newfeature:

SupportofthenewTEWSCANcarddriverV2.xincdrv_tdrv011.c.-Newfeature:

64BitversionofSYSTECwrappercdrvwrap64.dlladded.-Newfeature:

SupportofTI'sAM335XwithGNUcompiler

-Newfeature:

SupportofMicrochip'sPIC32withMPLABXcompiler

 

-Newfeature:

DemowithLinuxSocketCANdriveradded-Newfeature:

CANdriverforRenesasRX62Tadded

-Newfeature:

SDOGatewayimplementedaccordingtoCiA-302part2.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1