CANopen 协议下载(https://github.com/CANopenNode/CANopenNode)
CANopenNode
CANopenNode是免费和开源的CANopen协议栈。
CANopen是建立在CAN基础上的嵌入式控制系统的国际标准化(EN 50325-4) (CiA301)高层协议。有关CANopen的更多信息,请参见http://www.can-cia.org/
CANopenNode是以面向对象的方式用ANSI C编写的。它运行在不同的微控制器上,作为独立的应用程序或与RTOS。包含了带有CANopen master功能的Linux实现。
变量(通信、设备、自定义)在CANopen对象字典中排序,可以从C代码和CANopen网络访问。
CANopenNode的主页是https://github.com/CANopenNode/CANopenNode
Characteristics
CANopen
对象字典提供了清晰和灵活的组织任何变量。
NMT slave启动、停止、复位设备。简单的NMT的主人。
Heartbeat生产者/消费者错误控制。
PDO链接和动态映射,从对象字典快速交换过程变量。
SDO加快了对所有对象字典变量的服务访问、分段和块传输。
SDO客户机。
紧急生产者/消费者。
生产者/消费者同步。
时间戳协议生产者/消费者。
LSS主从,LSS fastscan。
CANopen网关,CiA309-3 Ascii命令接口,用于NMT主机,LSS主机和SDO客户端。
CANopen Safety, EN 50325-5“PDO like”在安全相关网络中的通信
Other
适用于16位以上的微控制器
多线程的实时
对象字典编辑器
对象字典变量的非易失性存储。
节电可能
可能的引导加载程序(用于固件更新)
Documentation, support and contributions
包含入门、LSS使用和跟踪使用的文档在doc目录中。代码记录在头文件中。在项目基目录中运行doxygen将生成完整的html文档。只需在浏览器中打开CANopenNode/doc/html/index.html即可。或者在线浏览文档。
在https://github.com/CANopenNode/CANopenNode/issues上报告问题
如需在Slack上进行讨论,请访问https://github.com/robincornelius/libedssharp
旧的讨论组在Sourceforge: http://sourceforge.net/p/canopennode/discussion/387151/
贡献是受欢迎的。贡献代码的最佳方式是创建一个项目,修改它,然后发送一个pull请求。应该遵循一些基本的格式化规则:Linux风格的缩进4个空格。还有一个带有示例的codingStyle文件和一个用于clang格式工具的配置文件