uCAN设计说明通信协议docxGoogle Code.docx

上传人:b****3 文档编号:10793431 上传时间:2023-05-27 格式:DOCX 页数:13 大小:63.53KB
下载 相关 举报
uCAN设计说明通信协议docxGoogle Code.docx_第1页
第1页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第2页
第2页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第3页
第3页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第4页
第4页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第5页
第5页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第6页
第6页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第7页
第7页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第8页
第8页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第9页
第9页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第10页
第10页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第11页
第11页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第12页
第12页 / 共13页
uCAN设计说明通信协议docxGoogle Code.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

uCAN设计说明通信协议docxGoogle Code.docx

《uCAN设计说明通信协议docxGoogle Code.docx》由会员分享,可在线阅读,更多相关《uCAN设计说明通信协议docxGoogle Code.docx(13页珍藏版)》请在冰点文库上搜索。

uCAN设计说明通信协议docxGoogle Code.docx

uCAN设计说明通信协议docxGoogleCode

陈正

uCan设计说明

通信协议部分

陈正

2010-7-2

历史记录

修改人

版本

日期

备注

陈正

0.0.1

2007-9-9

文档创建

陈正

0.0.2

2007-11-17

添加数据报命令

陈正

0.0.3

2007-12-15

修改命令格式

陈正

0.0.4

2010-05-27

修改命令格式

前言

uCan设计说明包括硬件设计说明,嵌入式软件设计说明,PC软件设计说明,以及通信协议设计说明。

本文属于通信协议设计说明。

范围

本文针对uCAN设备与PC通信的通信协议做了详细描述,包括通信帧格式,数据内容定义,以及通信命令定义。

引用文件

《CAN2.0规范》

术语和定义

1.通信速度

uCAN设备通过全速USB2.0接口与PC进行通信,传输类型为批量传输方式,理论速度可达12Mbps,采用批量传输时实际速度可达900KBps。

足够满足两个CAN以最大1Mbps的速度。

2.通信格式

uCan和PC的通信采有两种形式:

●数据流:

用于传输大量的CAN数据帧,一个数据流可以由一个或多个USB帧组成。

每一路CAN对应两个数据流,一个用于接受PC上发送的数据,另外一个用于向PC传输接收到的CAN数据。

●数据报:

用于向设备发送命令或者获取设备状态。

数据报由报头以及数据组成,且不可大于一个USB帧长。

数据报占用了两个端点,一个端点用于接收PC发送的命令,另一个端点用于设备向PC报告当前设备状态。

一个USB帧能且只能传输一个数据报。

数据流和数据报分别通过不同的端点传输,这样可以简化程序处理,但是缺点是需要占用了更多的端点。

2.1.数据流格式:

数据流的长度必须是4的整数倍,数据流由整数个CAN帧信息报文组成,如图1所示。

图1数据流与CAN帧关系

数据流由上行(设备到PC)与下行(PC到设备)两种传输方向,其中下行和上行数据流中CAN帧信息格式是不同的,下面两节将详细介绍下行和上行数据流的CAN帧信息格式。

2.1.1.下行CAN帧格式:

下行数据流用于传输PC需要往CAN网络发送的数据,其具体格式如图2所示。

图2下行数据帧格式

表1下行数据帧格式字典

名称

含义

FS

帧信息域,包含了该帧描述信息

FF

扩展帧标志,1表示扩展帧,0表示标准帧

RTR

远程帧标志,1表示远程帧,0表示数据帧

DLC

数据长度,当RTR为1时,表示远程帧请求的数据长度,当RTR为0时,表示数据帧中的数据长度。

CAN帧中数据长度最大为8字节,所以当DLC大于8时,应当作为8来处理。

PRI

CAN帧发送优先级,数值越低优先级越高。

ID

CAN标识符,当FF为0时,标识符长度为11位;当FF为1时标识符长度为29位

DATA

数据域,该域中的数据以四字节为单位出现。

当数据帧的DLC大于0时,DATA1—DATA4必须存在;当数据帧的DLC大于4时,DATA5—DATA8必须存在。

由图2可以看出,一个CAN长度范围为8-16字节。

2.1.2.上行CAN帧格式:

下行数据流用于传输设备往PC传输CAN网络上的数据,其具体格式如图3所示。

图3上行数据帧格式

表2上行数据帧格式字典

名称

含义

TIME

接收到CAN的时间,单位1us,该时间从打开CAN成功开始或者使用过程中由用户重新启动,长度为48位(溢出时间大概为8.9年)

FS

帧信息域,包含了该帧描述信息

FF

扩展帧标志,1表示扩展帧,0表示标准帧

RTR

远程帧标志,1表示远程帧,0表示数据帧

DLC

数据长度,当RTR为1时,表示远程帧请求的数据长度,当RTR为0时,表示数据帧中的数据长度。

CAN帧中数据长度最大为8字节,所以当DLC大于8时,应当作为8来处理。

R

用于表明当前帧是设备接收到的帧还是设备发出的

1表示设备接收

0表示设备发出

IDindex

保留项

ID

CAN标识符,当FF为0时,标识符长度为11位;当FF为1时标识符长度为29位

DATA

数据域,该域中的数据以四字节为单位出现。

当数据帧的DLC大于0时,DATA1—DATA4必须存在;当数据帧的DLC大于4时,DATA5—DATA8必须存在。

由图3可以看出,一个CAN帧最大长度范围是12-20字节(DLC大于4且RTR不等于1时),最小长度为12字节(DLC为0或者RTR等于1时)。

2.2.数据报格式

数据报每次传输的最大长度为一个USB帧长度,可以用于向设备发送命令以及接收设备状态。

一个USB帧能且只能传输一个数据报。

图4一个USB帧中包含多个数据报

数据报包含报头和参数,其中报头的长度为四个字节,而参数的长度根据其由报头中的长度字段来指示,其具体格式如图5所示。

数据报的下行与上行格式相同,都是采用报头加数据的形式来传输。

图5数据报格式

表3数据报格式字典

名称

含义

CMD

命令,长度为16位

一般我们最高位为1表示设置命令,最后2位用于表示CAN端口号

响应命令时,需对主控请求的命令取反

Extern

扩展字段,长度16位

主机可在这里填充一些辅助信息

响应报文可在这里填充一些简单状态

DATA

数据区,用于存放命令参数或者状态值,0-60字节长度

数据报的交互有如下几种情况:

1、PC发送数据报,设备无需应答;

2、PC发送数据报,设备做出响应;如返回参数或者执行结果等;

3.端点定义

端点定义如表4所示。

表4系统端点功能定义

顺序

端点号

方向

功能

1

2

OUT

数据报

2

2

IN

数据报

3

5

OUT

CAN1发送数据流

4

5

IN

CAN1接收数据流

5

8

OUT

CAN2发送数据流

6

8

IN

CAN2接收数据流

4.数据报命令

本小节描述设备支持的所有命令,每一条命令都将描述数据报命令的各个字段,除了ID字段。

该字段的详细说明可见表3数据报格式字典。

4.1.立即发送CAN消息

命令字:

0X8000-0X8003,最后两位表示CAN端口号

扩展字段含义:

当前报文包含的CAN帧数量,1-3有效

数据长度:

16-48字节

数据:

1-3个CAN报文数据,格式同数据流中的CAN发送帧格式。

0-15字节存放第一个CAN报文

16-31字节存放第一个CAN报文(如果有)

32-47字节存放第一个CAN报文(如果有)

响应:

扩展字段:

发送成功的帧数量

数据字段:

4.2.设置CAN模块状态

命令字:

0X8010-0X8013,最后两位是CAN端口号

扩展字段:

无意义,填0

数据长度:

8字节

数据:

Data[0-3]对应MOD寄存器

Data[4-7]对应BTR寄存器

响应:

备注:

执行该命令会导致CAN端口复位,设备端会先将CAN进入状态再设置相应的值。

设置顺序为:

先复位,再设置BTR,最后设置MOD

4.3.获取CAN状态

命令字:

0X0010-0X0013,最后两位是CAN端口号

扩展字段含义:

无意义,填0

数据长度:

0

数据:

响应:

扩展字段含义:

无意义,填0

数据长度:

40

数据:

Data[0-3]对应MOD寄存器

Data[4-7]对应BTR寄存器

Data[8-11]对应ICR寄存器

Data[12-15]对应GSR寄存器

Data[16-19]表示CAN总线数据过载次数(由于CPU未能及时响应报文,硬件自动丢弃)

Data[20-23]表示CAN丢弃个数(因为USB缓冲区已满,导致无法继续处理,软件丢弃)

Data[24-27]表示控制器复位次数(因为错误而导致的复位)

Data[28-31]表示总线错误发生次数

Data[32-35]最后错误代码,0表示无错误

Data[36-37]物理层接口类型

Data[38-39]保留

4.4.设置CAN总线数据过载次数

由于CPU未能及时响应报文,而导致硬件自动丢弃的过载次数统计

命令字:

0X8010-0X8013,最后两位是CAN端口号

扩展字段含义:

无意义,填充0

长度:

4

数据:

需要设置的值

响应:

4.5.设置CAN丢弃个数

由于USB缓冲区已满,导致无法继续处理,软件主动丢弃的过载次数统计

命令字:

0X8020-0X8023,最后两位是CAN端口号

扩展字段含义:

无意义,填充0

长度:

4

数据:

需要设置的值

响应:

4.6.设置CAN控制器复位次数

该复位次数是指由于总线错误而导致的复位

命令字:

0X8030-0X8033,最后两位是CAN端口号

扩展字段含义:

无意义,填充0

长度:

4

数据:

需要设置的值

响应:

4.7.设置CAN总线错误报警发生次数

命令字:

0X8040-0X8043,最后两位是CAN端口号

扩展字段含义:

无意义,填充0

长度:

4

数据:

需要设置的值

响应:

4.8.设置CAN计数器时间

命令字:

0X8050-0X8053,最后两位是CAN端口号

扩展字段含义:

无意义,填充0

长度:

8

数据:

需要设置的值,注意计数器有效长度是6字节的,最前面两个字节保留

响应:

4.9.获取设备信息

该命令用于获取设备总体信息。

命令发起:

该命令由PC发起。

命令字:

0X0000

扩展字段含义:

长度:

0

数据:

响应:

必须做出响应,返回设备版本号。

命令字:

0X07

扩展字段含义:

长度:

16

数据:

Data[0]软件主版本(BCD编码)

Data[1]软件次版本(BCD编码)

Data[2]硬件主版本(BCD编码)

Data[3]硬件次版本(BCD编码)

Data[4-5]生产年份

Data[6]生产月份

Data[7]生产日期

Data[8-15]产品序列号

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2