CANopen源代码框架说明.docx
- 文档编号:6566433
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:11
- 大小:52.89KB
CANopen源代码框架说明.docx
《CANopen源代码框架说明.docx》由会员分享,可在线阅读,更多相关《CANopen源代码框架说明.docx(11页珍藏版)》请在冰豆网上搜索。
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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CANopen 源代码 框架 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)