汽车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
除了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相关推荐
- 看到怒飞垂云的 一节课讲明白所有串口协议-Mavlink/ubx/诺瓦泰/NMEA/自定义协议/变帧长/定帧长 也是很有感触
看到怒飞垂云的 一节课讲明白所有串口协议-Mavlink/ubx/诺瓦泰/NMEA/自定义协议/变帧长/定帧长 也是很有感触 http://www.nufeichuiyun.com/?page_id= ...
- 滑动窗口协议 c语言,TCP滑动窗口协议详解.docx
本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流 滑动窗口机制 (1)?窗口机制 滑动窗口协议的基本原理就是 ...
- stp协议c语言,STP(生成树协议)
生成树协议 拓扑图: SwA的配置 Switch>en Switch#conf Configuring from terminal, memory, or network [terminal]? ...
- 【Electron Playground 系列】自定义协议篇
作者: OBKoro1 1. 协议: 从网页端唤起Electron应用 elelctron提供了一个方式来自动唤起electron应用(如下图),这一次就让我们来学学如何通过连接来唤起electron ...
- 细说汽车电子通信总线之CAN 2.0 总线协议详解
引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...
- sja1000 c语言,CAN总线控制器SJA1000源程序(c语言).doc
CAN总线控制器SJA1000源程序(c语言) CAN总线控制器sja1000源程序 SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN 它是PHILIPS 半导体PCA ...
- AXI接口协议详解-AXI总线、接口、协议
转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...
- pci总线协议学习笔记——PCI总线基本概念
1.pci总线概述 (1)PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准; ...
- CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器
CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器 CAN是最新进的现场总线,灵活性好,通讯可靠性高,抗干扰能力强,超长通信距离等优点,110个节点,兼带CAN-FD ...
- can总线不加末端电阻_细说汽车电子通信总线之CAN 2.0 总线协议详解
引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...
最新文章
- 优化思路千万种,基于下界函数的最优化效率如何?
- android eclipse 导入idea项目
- Codeforces Round 493
- 【机器视觉学习笔记】双边滤波算法(C++)
- Nacos SDK for Scala 发布
- 阿里巴巴基于 Nacos 实现环境隔离的实践
- RabbitMQ集群原理介绍
- 钓鱼(信息学奥赛一本通-T1431)
- python中利用opencv对图片进行缩放
- 【激活函数】h-swish激活函数详解
- BZOJ 1013 球形空间产生器
- .NET Core,.NET Framework和Xamarin有什么区别?
- git 创建远程仓库
- jsoup爬虫发送get、post请求、解析html、获取json
- 程序员除了代码,连数字都神神秘秘的
- 假如你有超能力,会复活哪部经典美剧?
- COSOSWAP官网2.0升级——线上圆桌会议重点回顾
- 让智能家居照顾老年人的生活
- 关于电脑自带学生office365免费版和Visio不兼容问题
- iOS中根据网络环境显示不同图片
热门文章
- 2022软考软件设计师复习(上午题)
- 新库上线 | CnOpenData境外投资企业(机构)名录数据
- 第19节 扫描技术——基于Windows系统的工具
- 哈夫曼树构造及哈夫曼编码
- Windows Server 2008 R2 学习笔记——VMware Workstation中服务器(Windows Server 2008 R2)与客户机(Windows 7)的安装
- 打印5列五颗星_可打印丨50组“数学顺口溜”+大九九乘法口诀表!给孩子收藏!...
- Linux的web视频服务器的构建 (chinaitlab)
- Gstreamer学习笔记(5):GStreamer Pad and Capabilities Negotiation
- Windows7主题包:Aero Pure 0.2 更像Win8
- 诺基亚linux系统手机系统下载,智能手机操作平台大翻盘 诺基亚拥抱Linux