ICS 35.200
L60/69
中国指挥与控制学会团体标准
T/CICC 02001-20 19
CAN总线模块驱动软件应用编程接口
API for CAN Bus Module Driver Software
2020-1-19发布 2020-1-30 实施
中国指挥与控制学会 发布
全国团体标准信息平台
T/CICC 02001-2019
I 目 次
前 言 .............................................................................. II
1 范围 ............................................................................. 1
2 规范性引用文件 ................................................................... 1
3 术语和定义 ....................................................................... 1
4 要求 ............................................................................. 2
5 应用编程接口 ..................................................................... 6
6 典型接口应用流程 ................................................................. 9
附录A (资料性附录) 接口典型应用流程编程示例 ....................................... 11
全国团体标准信息平台
T/CICC 02001-2019
II 前 言
本标准按照GB/T 1.1- 2009《标准化工作导则 第 1部分:标准的结构和编写》的规则起草。
本标准附录A 为资料性附录。
本标准由中国指挥与控制学会 提出并归口 。
本标准起草单位: 中国船舶重工 集团公司第七一六研究所、航天发射技术研究所、上海航天电子通
讯设备研究所。
本标准主要起草人: 王维兴、 尹加豹、 朱涛、李向阳、史云鹏、李格 。
全国团体标准信息平台
T/CICC 02001-2019
1 CAN总线模块驱动软件应用编程接口
1 范围
本标准规定了CAN总线模块驱动 软件与应用软件之间的编程接口 以及代码编写要求, 提供了CAN 总线
模块驱动软件 的典型接口应用流程及示例代码。
本标准适用于指挥控制、通信、工业控制等领域内配置 CAN总线模块的计算机系统的研制、测评、
使用和维护。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 28169- 2011 嵌入式软件 C语言编码规范
3 术语和定义
下列术语和定义适用于本文件 。
3.1
RTRremote t ransmission request
远程发送请求,一种不带数据的特殊消息帧。
3.2
CAN总线模块 CAN bus module
符合PCI总线规范且支持CAN2.0B协议标准的CAN 总线接口模块。
3.3
CAN消息帧CAN message frame
CAN总线通信时的基本数据单元,由消息 ID、消息帧标志、有效数据长度、具体数据等元素组成。
3.4
接收滤波器 receiving filter
对总线上的CAN 消息帧进行筛选以决定是否接收此消息帧的一种逻辑运算方法。
3.5
单滤波single filtering
接收滤波器只设置一种比较规则,收到的帧符合规则就接收。
3.6
双滤波 double filtering
全国团体标准信息平台
T/CICC 02001-2019
2 接收滤波器设置两种滤波规则,收到的帧符合任意一个规则就接收。
4 要求
4.1 运行环境
配置有CAN总线模块的计算机系统。
4.2 软件开发语言
软件开发语言:C语言 。
4.3 使用要求
4.3.1 接口返回值约定
CAN总线模块驱动软件 接口返回值分为两种类型,并 遵循以下约定 :
a) 返回状态类型:
OK 函数执行成功。
ERROR 函数执行失败。
其中OK和ERROR使用操作系统缺省定义。
b) 返回数值类型:
>=0 表示函数执行成功,返回具体数值。
<0 表示函数执行失败, 分以下三 种
-1 执行失败;
-2 参数非法;
-3 执行超时。
4.3.2 数据结构约定
CAN总线模块驱动软件数据结构包括设备句柄、CAN 消息帧及通道配置等,定义为:
a) 设备句柄定义为:
#define HANDLE int
b) CAN消息帧结构体 定义为:
typedefstruct _tagCAN_PACKET{
unsigned long dwCanId; /* CAN 消息帧ID */
unsigned short wRtr; /* 消息帧标志, 本消息是否是远程帧 */
unsigned short wLen; /* 有效数据长度 */
unsigned char aData[8]; /* 具体数据 */
unsigned long dwTime; /* 时戳 */
unsigned long dwReserved; /* 保留数据域 */
}CAN_PACKET;
全国团体标准信息平台
T/CICC 02001-2019
3 c) 通道配置结构体 定义为:
typedefstruct _tagPORT_STRUCT{
unsigned char ucMode; /* 当前通道工作模式 */
unsigned char ucFilterMode; /* 接收滤波模式 */
unsigned longdwAccCode; /* 接收代码滤波器设置值 */
unsigned longdwAccMask; /* 接收屏蔽码设置值 */
unsigned charucBaudrate; /* 通道波特率索引值 */
unsigned char ucBrp, ucTseg1,ucTseg2; /* 特殊配置波特率时,波特率因子取值 */
unsigned charucSjw, ucSam; /* 特殊配置波特率时,总线时序设置值 */
}PORT_STRUCT;
[GB/T 28169 -2011,定义 4.7,定义4.8]
4.3.3 通信波特率索引表
CAN总线模块 常见波特率 共八个,约定见表1。
表1 波特率 约定
索引值 波特率值(kbps) 波特率因子1 波特率因子2
1 5 0xbf 0x1c
2 50 0x09 0x1c
3 100 0x04 0x1c
4 125 0x03 0x1c
5 250 0x01 0x1c
6 500 0x00 0x1c
7 800 0x00 0x16
8 1000 0x00 0x14
注:应用编程时只需要在进行端口配置时指定波特率对应的索引值即可 。
4.3.4 接收滤波器设置约定
接收滤波模式分为单滤波和双滤波,接收到的消息又分为标准帧和扩展帧消息,接收滤波器的设置
共有四种情况,下面分别进行约定。为方便描述,将接收屏蔽码4 个字节从高位到低位简写为
AMR0/AMR1/ARM2/AMR3,将接收验收码4个字节从高位到低位简写为ACR0/ACR1/ACR2/ACR3。 所有未使用的
位可以设为任何值。 设置约定为:
a) 单滤波、标准 消息帧的接收滤波器设置
在此模式下,接收消息结构中 CAN_ID的bit0~bit10 共11位、RTR 标志bit0共1位和数据中的
全国团体标准信息平台
T/CICC 02001-2019
4 前两个字节 data[0]、 data[1]共 16位参与滤波。 数据的前 2个字节由于参与滤波, 不能用于传递信息。
未使用的位可以设置为任何值。 单滤波、 标准消息帧设置时接收码、屏蔽码与消息帧的对应关系如图 1
所示。
ACR0 ACR3 ACR1 ACR2
AMR0 AMR3 AMR1 AMR2未使用
未使用bit
31bit
0接收验
收码
接收屏
蔽码bit
31bit
0
CAN_ID
Data[1] Data[0]
参与滤波
的消息数
据位
图1 单滤波、标准帧情况下的接收滤波器设置
b) 单滤波、扩展 消息帧的接收滤波器设置
在此模式下,接收消息帧中 CAN_ID的bit0~bit28共29位和RTR标
T-CICC 02001—2019 CAN总线模块驱动软件应用编程接口
文档预览
中文文档
16 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思安 于 2022-12-20 17:30:46上传分享