汽车can总线协议c语言,CAN总线自定义协议使用说明.pdf

CAN 总线自定义协议使用说明

用C语言实现自己的协议

进入 EV5000 安装目录下builddriver 目录(如图1),这个目录里面的fbserver.c 文件即

协议程序,用户不需要了解CAN 口的细节编程,只需要按照该框架,用C 语言来编写自己

的协议即可。不可随意更改该文件中的函数名及头文件引用。

图1

CAN 自定义协议程序的流程图

主程序流程

框架初始化 接收线程流程

(LW 、CAN波特率)

创建接收线程 Read_CAN

Init()

MsgDispatch()

main_process()

usleep(cycle)

图2

需要用户实现的函数

void Init(CAN_PORT canport)

调用方式:仅在组态程序运行的时候执行一次

功能:用户程序的初始化

void main_process(CO_Data* d, UNS32 id)

调用方式:周期性执行,默认周期为10ms,周期可以在void Init(CAN_PORT canport)中调用

Set_Cycle 来设定,最小周期为10ms

功能:用户程序的“main 函数”

void MsgDispatch(CO_Data* d, Message *m)

调用方式:每接收到一帧CAN 数据,就执行一次

功能:常用于对接收到的数据做解析,或者做出响应。与main_process 没有关联。

供用户调用的API_V0.1

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAN总线和CANopen协议是现代工业领域中常用的通信标准。CAN(Controller Area Network)总线是一种高可靠性、实时性和高性能的串行通信系统,广泛应用于汽车电子、工业自动化、机械控制等领域。 CAN总线通过一对差分信号线实现数据的传输,具有抗干扰能力强、传输距离远等优点。它采用了分布式控制的方式,所有节点共享总线,通过标识符来识别不同的消息。CAN总线为实时通信提供了基础,可以同时传输多种不同优先级的数据,具有确定性和可扩展性。 CANopen协议CAN总线上应用层的一种通信协议,它定义了在CAN总线上节点之间的数据传输规则和通信方式。CANopen协议提供了一种标准化的、开放的、高度可配置的通信和设备控制服务,为工业自动化系统中的设备提供了互联互通的环境。 CANopen协议定义了一套对象字典的数据结构,其中包括网络管理对象、设备配置对象、应用对象等。通过访问这些对象,可以实现对CAN总线上节点的配置、诊断和控制。CANopen协议还定义了一种基于事件驱动的通信机制,可以确保实时数据的传输和同步。 CAN和CANopen为工程师提供了一种便捷而可靠的通信方式,使得多个设备之间可以通过共享CAN总线进行高效的数据交换。此外,CAN总线和CANopen协议的开放性也为设备的互操作性和可扩展性提供了保障,能够满足不同应用领域的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值