1 / 21
文档名称:

canbus协议-协议应用及实例分析.ppt

格式:ppt   大小:128KB   页数:21页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

canbus协议-协议应用及实例分析.ppt

上传人:sanshengyuanting 2017/6/26 文件大小:128 KB

下载得到文件列表

canbus协议-协议应用及实例分析.ppt

文档介绍

文档介绍:CANBUS协议
应用及实例分析
2012-2-20
目的
本文档通过简要介绍GD860通讯函数及Mercedes Benz
的基本功能协议,指导我们熟悉CANBUS通讯协议的具体应用。
培训内容
GD860 CAN通讯函数介绍
GD860 CAN通讯参数设置函数介绍
GD860 CAN流控制帧函数介绍
Mercedes Benz 读版本信息
Mercedes Benz 读故障码
Mercedes Benz 清除故障码
Mercedes Benz 读数据流
Mercedes Benz 动作测试
GD860 CAN通讯函数介绍(一)
函数:
W_INT2 ISO15765_SendMultiFrameGetMultiFrame (
W_INT2 iSendDataLength, BYTE *pDataToSend,
BYTE *pRecBuffer,W_INT2 iRecBufferLength)
函数返回值:
大于0表示接收到有效数据,否则表示通讯错误。
函数参数:
iSendDataLength:所要发送数据的长度
pDataToSend:要发送的数据。第一个字节表示发送的帧数,
第二个字节表示接收的字节数(推荐使用ff,下
位机自动判断接收长度),第三个字节表示ID
个数。从第四个字节开始为发送的每帧数据,
不带55+AA和CS发送。
pRecBuffer:接收缓冲区。第二个字节为接收的总帧数,从
第三个字节开始为接收到的数据
iRecBufferLength:接收缓冲区长度
GD860 CAN通讯函数介绍(二)
函数功能:
发多帧收多帧,下位机自动判断并发送流控制帧(即0x30帧,
通过SetEnterFrame函数设置)
下位机自动过滤7f 78忙帧
支持2,3,4个ID
下位机能够自动识别接收长度
GD860 CAN通讯函数介绍(三)
函数使用方法(以2个ID为例子说明):
发一帧收一帧
Req:08 FC 00 02 10 81 00 00 00 00 00
Ans:08 FD 00 02 50 81 00 00 00 00 00
发送缓冲区pDataToSend中的数据为:
01 FF 02 0D 61 01 08 FC 00 02 10 81 00 00 00 00 00
BYTE0: 发送命令帧数,此处为1帧
BYTE1: 接收的帧数,此处由下位机判断
BYTE2: 过滤ID字节个数,此处为2
BYTE3: 发送命令长度(该字节后所有字节个数)
BYTE4,BYTE5: 命令发送模式,此处为发一收一
BYTE6~BYTE16: 发送的命令
接收缓冲区pRecBuffer中的数据为:
00 01 55 AA 0B 08 FD 00 02 50 81 00 00 00 00 00
BYTE0, BYTE1: 接收的总帧数,两个字节表示
BYTE2,BYTE3:固定为55 AA
BYTE4:接收命令长度(该字节后所有字节个数)
BYTE5~BYTE15: 接收的命令
GD860 CAN通讯函数介绍(四)
发一帧收多帧
Req:08
Ans:08
Req:08
Ans:08
Ans:08
FC
FD
FC
FD
FD
00
00
00
00
00
02
10
30
21
22
21
12
00
34
30
00
61
00
41
31
00
00
00
42
38
00
4C
00
43
34
00
46
00
35
32
00
50
00
36
FF
00
48
00
39
FF
发送缓冲区pDataToSend中的数据为:
01 FF 02 0D 61 01 08 FC 00 02 21 00 00 00 00 00 00
接收缓冲区pRecBuffer中的数据为:
00 03 55 AA 0B 08 FD 00 10 12 61 00 4C 46 50 48 34
41 42 43 35 36 39 30 31 38 34 32
GD860 CAN通讯参数设置函数介绍
函数:
BYTE CanSetParameterALL(BYTE ConnectorType,
*CanParam)
函数返回值:
0设置成功,其他设置失败。
函数参数:
BYTE ConnectorType 接头类型:
*CanParam 设置参数结构
typedef struct
{
BOOL IsExFrame;//帧格式: 扩展帧(0XFF),标准帧(0X00)
BOOL WorkMode;//工作模式:只听模式(0XFF),正常工作模式(0X00)
BYTE BaudRate;//波特率
BY