
CANopen主要基于CAN应用协议,它是属于OSI七层模型中的应用层以上的协议。相当于它对物理层CAN再进行了一次协议封装,作为一个标准并开放出来,这样每个久额阿布与报要厂家可以用这个协议彼此通讯,提高互操作性和兼容性。
CANopen源代码是指可以用来下载到带CAN控制器的MCU上的应用程序,用来完成CANopen的通讯协议解析、产品的应用/功能逻辑。C来自ANopen源代码编写之前要先了解它的结构和重要概念。
可以考虑基于开源代码或者商业版代码来开发,几个简单的区别:
1、费用:开源代码360百科免费;商业版代码收费,但节省了很多研发人员和测试人员的时间,节省了很多人力成本。
2、技术支持和文档:商业版有企示广仅人负责解答也有培训,有完整的操作文档和手册,开源无人解答--问题解决的几率小。
3、代院评则创室来码质量和稳定性:商业终严过代码的质量、优化和自效率有保证;使用开源代码存在很大风险;
4、开发难度和时间:商业版有完整的多款不同硬件平台的样例程序,大大降低开发移植难度和时间。开源代码的研发工作程季管儿价诉尼突相量增加、后期测限治再试难度和时间也增加。
5、研发/测试工具:商业版有完整的工具链和测试方法提供。溶穿指米犯需完整的测试工具包括:编慢底斤盾夫网络组网和管理以及测试(导入EDS文件组网并修改对应的数据,PDO mapping)、报文分析、快速创烧真弱座建对象字典 生成由罗构衡送EDS文件、USB-CAN卡采集数据等等。
7、支持的MCU平台demo丰富:SO-877-VP或者SO-1063-VP提供30多种不同MCU平台的demo,并且每年不断更新和增加察。
如果要做serious的产品,一般用商业版的代码更有保障。
介绍
从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。
CAN(Controller Area Network)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。
同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。
评论留言