24V系统-CAN通讯协议说明书
(内部文件)
1. 目的 (2)
2. 范围 (2)
3. 网络拓扑 (3)
3.1模块地址表: (3)
4. 报文格式 (4)
4.1 状态信息报文 (4)
4.1.1 开关量消息组1 (4)
4.1.2 开关量消息组2 (6)
4.1.3 各种数值量消息 (7)
4.1.4 故障消息 (8)
4.1.5 仪表指示灯消息组1 (10)
4.1.6 仪表指示灯消息组2 (11)
4.2 控制类报文 (11)
4.3 网络管理类报文 (14)
4.3.1 系统休眠消息 (14)
4.3.2 系统唤醒消息 (14)
4.3.3模块重启通知消息 (14)
4.3.4请求模块重启消息 (15)
4.3.5请求模块软件版本消息 (15)
4.3.6 请求模块硬件版本消息 (16)
4.3.7 模块网络心跳消息 (17)
4.3.8网络时钟消息 (17)
4.4 其他报文 (18)
4.4.1应答消息 (18)
5. 仪表相关报文 (18)
1.目的
24V网关和车身控制系统(以下简称24系统)是基于CAN网连结而成的,CAN网络是整个系统的基础。所以很有必要详细说明下该系统中的CAN网络协议,这也是编写本文档的主旨。本文档仅供内部开发人员使用,包括NCM组和仪表组。
2.范围
本文编写的范围仅仅限于24V系统中采用的基于CAN的J1939应用协议的报文格
式,不适用所有的网关和车身控制系统。本文档并不是介绍CAN网络和J1939应用协议文档,而了解文档中设计的J1939协议关联的术语,请参看相关的技术文档。
3.网络拓扑
24V系统的详细介绍详见其他相关文档,如系统概要设计,详细设计等,在这里简单介绍一下系统的网络拓扑图,使读者有一个简单直白的了解,以便于更好的理解文档中涉及的CAN网络和J1939协议。
总所周知,CAN协议早在80年代就已经由德国的博世公司开发应用于汽车电子领域了,到了1991年,Philips Semiconductors公司制定发布了CAN技术规范2.0版本,分为A和B两部分,2.0A部分给出了CAN报文的标准格式,2.0B部分为扩展部分。J1939协议有SAE组织(美国汽车工程协会)于2000年提出的,基于CAN的2.0B规范。
3.1模块地址表:
模块名地址值
0x70 NCM
0x71 ICM
4.报文格式
下表为J1939协议报文单元的具体格式:
24V系统中的涉及众多的报文,为了方便读者更方便的找到自己所需要的报文格式,本文按照功能分类进行一一叙述。
分为3大类报文:
1.状态信息报文。
2.控制命令报文。
3.网络管理报文。
4.1 状态信息报文
状态信息报文有自己单独PF值,其PF值为0xFF,它主要有以下几种类型的报文,由报文中的PS值来定义不同类型的报文。PS值的取值范围可以参考数据结构
enum em_pf_stateinfo_msg
状态信息报文定义说明
状态报文的发送特点是定期发送,接收者无需对其进行应答。
4.1.1 开关量消息组1
数据域
(注:1-0 表示该自己的第1位和第0位两位,用两位来表示一个开关的值)
其中,开关量在报文中的表示如下(两个bit)
4.1.2 开关量消息组2
数据域
4.1.3 各种数值量消息
4.1.4 故障消息
一般输出设备ID说明表格,参见数据类型enum emOutputID
4.1.5 仪表指示灯消息组1
(注:1-0 表示该自己的第1位和第0位两位,用两位来表示一个指示灯的值)
其中,指示灯在报文中的表示如下(两个bit)
4.1.6 仪表指示灯消息组2
后续字节可扩展。
4.2 控制类报文
控制类报文的PF值为0xFE,它主要用于控制BCM上的输出设备,由报文中的PS值来定义不同类型的报文。
需要特别强调的一点是,仪表对控制类消息不需要进行处理,可以直接过滤此类消息。
仪表不能依赖于这里的消息定义,因为将来有可能会改掉。
注:此消息的应答消息数据域的BYTE[1], BYTE[2], BYTE[3], BYTE[4] 都为0xFF
4.3 网络管理类报文
网络管理报文主要用来进行网络系统时钟的同步,休眠,唤醒,支持上位机功能等,他的PF在系统中被定义为0xFD,PS值来定义不同类型的报文。
4.3.1 系统休眠消息
注:此消息的应答消息数据域的BYTE[1], BYTE[2], BYTE[3], BYTE[4] 都为0xFF
4.3.2 系统唤醒消息
注:此消息的应答消息数据域的BYTE[1], BYTE[2], BYTE[3], BYTE[4] 都为0xFF
4.3.3模块重启通知消息
注:此消息的应答消息数据域的BYTE[1], BYTE[2], BYTE[3], BYTE[4] 都为0xFF 4.3.4请求模块重启消息
注:此消息为上位机请求某个模块进行重启,属于调试范围的一个消息
注:接收者必须校验数据域的值,以确保发送者所发送的报文是请求重启报文。
4.3.5请求模块软件版本消息
数据域
应答消息数据域,其他字节参见应答消息
注:此消息为上位机请求某个模块的软件版本,属于调试范围的一个消息4.3.6 请求模块硬件版本消息