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

除了C 语言标准库中的API 可以使用外,还提供以下API

void Set_Cycle(ms)

功能:用于设定main_process 的运行周期,

参数:ms 的单位为毫秒, 非零

UNS8 Send_Msg(CAN_PORT port, Message *m,UNS8 bExtended)

功能:向CAN 总线发送一帧CAN 数据

参数:port 指向已打开CAN 口的句柄,m 指向Message 结构体的指针,bExtended 为1 时按

扩展帧发送,为0 时按标准帧发送

void Write_LW8K (UNS32 n,UNS16 val)

功能:将val  写入LW8000+n 的寄存器

参数:n 偏移量、最大999,val 待写入的值

UNS16 Read_LW8K (UNS32 n)

功能:读取LW8000+n 的寄存器的值

参数:n 偏移量、最大999

void Set_Timer(TimerCallback_t callback,TIMEVAL value, TIMEVAL period)

功能:使用定时器,经过设定的时间后,调用callback 函数

参数:callback 回调函数指针,value 单次定时时间,period 周期定时时间

int CopyToLW(UNS32 addr,const void *src, size_t n)

功能:由src 所指内存区域复制n 个字节到LW +addr 所在内存区域

参数:addr  为LW 寄存器地址、最大8999 ;src 待写入数据缓冲的指针;n 写入的字节数

说明:src 和LW8000+addr 所在内存区域不能重叠

返回值:失败,返回‐1

成功,返回写入的字节数

int CopyFromLW(UNS32 addr,const void *src

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

  1. 看到怒飞垂云的 一节课讲明白所有串口协议-Mavlink/ubx/诺瓦泰/NMEA/自定义协议/变帧长/定帧长 也是很有感触

    看到怒飞垂云的 一节课讲明白所有串口协议-Mavlink/ubx/诺瓦泰/NMEA/自定义协议/变帧长/定帧长 也是很有感触 http://www.nufeichuiyun.com/?page_id= ...

  2. 滑动窗口协议 c语言,TCP滑动窗口协议详解.docx

    本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流 滑动窗口机制 (1)?窗口机制 滑动窗口协议的基本原理就是 ...

  3. stp协议c语言,STP(生成树协议)

    生成树协议 拓扑图: SwA的配置 Switch>en Switch#conf Configuring from terminal, memory, or network [terminal]? ...

  4. 【Electron Playground 系列】自定义协议篇

    作者: OBKoro1 1. 协议: 从网页端唤起Electron应用 elelctron提供了一个方式来自动唤起electron应用(如下图),这一次就让我们来学学如何通过连接来唤起electron ...

  5. 细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

  6. sja1000 c语言,CAN总线控制器SJA1000源程序(c语言).doc

    CAN总线控制器SJA1000源程序(c语言) CAN总线控制器sja1000源程序 SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN 它是PHILIPS 半导体PCA ...

  7. AXI接口协议详解-AXI总线、接口、协议

    转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...

  8. pci总线协议学习笔记——PCI总线基本概念

    1.pci总线概述 (1)PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准; ...

  9. CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器

    CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器 CAN是最新进的现场总线,灵活性好,通讯可靠性高,抗干扰能力强,超长通信距离等优点,110个节点,兼带CAN-FD ...

  10. can总线不加末端电阻_细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

最新文章

  1. 优化思路千万种,基于下界函数的最优化效率如何?
  2. android eclipse 导入idea项目
  3. Codeforces Round 493
  4. 【机器视觉学习笔记】双边滤波算法(C++)
  5. Nacos SDK for Scala 发布
  6. 阿里巴巴基于 Nacos 实现环境隔离的实践
  7. RabbitMQ集群原理介绍
  8. 钓鱼(信息学奥赛一本通-T1431)
  9. python中利用opencv对图片进行缩放
  10. 【激活函数】h-swish激活函数详解
  11. BZOJ 1013 球形空间产生器
  12. .NET Core,.NET Framework和Xamarin有什么区别?
  13. git 创建远程仓库
  14. jsoup爬虫发送get、post请求、解析html、获取json
  15. 程序员除了代码,连数字都神神秘秘的
  16. 假如你有超能力,会复活哪部经典美剧?
  17. COSOSWAP官网2.0升级——线上圆桌会议重点回顾
  18. 让智能家居照顾老年人的生活
  19. 关于电脑自带学生office365免费版和Visio不兼容问题
  20. iOS中根据网络环境显示不同图片

热门文章

  1. 2022软考软件设计师复习(上午题)
  2. 新库上线 | CnOpenData境外投资企业(机构)名录数据
  3. 第19节 扫描技术——基于Windows系统的工具
  4. 哈夫曼树构造及哈夫曼编码
  5. Windows Server 2008 R2 学习笔记——VMware Workstation中服务器(Windows Server 2008 R2)与客户机(Windows 7)的安装
  6. 打印5列五颗星_可打印丨50组“数学顺口溜”+大九九乘法口诀表!给孩子收藏!...
  7. Linux的web视频服务器的构建 (chinaitlab)
  8. Gstreamer学习笔记(5):GStreamer Pad and Capabilities Negotiation
  9. Windows7主题包:Aero Pure 0.2 更像Win8
  10. 诺基亚linux系统手机系统下载,智能手机操作平台大翻盘 诺基亚拥抱Linux