background image

BMS 电池管理系统技术探析—协议篇 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

上海妙益电子科技发展有限公司 www.mewyeah.com 

上海市闸北区江场三路 56 号 2 楼    电话:(021)66319886,66319887  转 8801 传真:(021)51292527  邮编:200436 

帧标识由32比特也就是4字节组成,优先级(PRIORITY)3位;保留(R)1位;

页面(DP)1位;协议数据单元(PDU=PF+PS)16位2个字节;源地址(S
A)8位。另外有 3 部分内容固定的数据段:分别是起始(SOF)1位、代理远程请
求(SRR)1 位和扩展帧标志(IDE)1 位。 

除PDU外其他都好理解,而 J1939 的帧格式核心就在PDU上。说白了,就是P

DU决定了后面数据组成及代表的实际意义。 

PDU由PF(协议数据格式)和PS(协议数据细则)2部分组成。当PF小于

240时,PS代表目标地址(DA),这部分帧种类只有239种,SAE称这部分
协议帧单元为PDU1,PDU1属于稀有资源,所以一般留给重要点对点通信的数据,

SAE只定义了其中极少部分,大部分留着将来用(可是我们很多BMS协议,随意的
挥霍这部分资源,大量的消耗掉这方面的定义)。当PF大于或等于240时,PF连

同PS一道定义了帧的类别,SAE称这部分协议帧单元为PDU2,这部分的组合有
16X256=4096种,SAE将大部分的帧类别定义在这个区间。我们认为,我

们也应把BMS数据定义在这段范围内。 

3. 应用层 

应用层规定了实际的数据定义以及在网络中如何传输这些数据。理解 J1939 中的2

个名词是关键,他们是PGN和SPN。 

PGN中文叫做“成组报文编码”。我们知道,数据是以帧为单位发出去的,SA

E规定了每帧所包含的数据组合,并赋予这个组合一个数字编码,这就是PGN。SA

E规定PGN包含了ID中的保留位(R)、页码(DP)及PDU。在PGN和ID
之间显然存在一种特定的对应关系,很容易用软件的方法实现2者之间的相互转换。 

SPN中文称作“可疑参数编码”。J1939 里将每种数据都赋予一个编码,就是这

里所说的“可疑参数编码”。给数据编上号,在OBD诊断里非常有用,当你需要一个

数据时可以发一个“请求报文”包,包里就含有该数据的编码,相关的模块就会发出该
数据。另外模块发“诊断故障码(DTC)”时,也是靠SPN吗来表明数据身份的。 

为什么 J1939 中的参数要称作“可疑参数(Suspect Parameter)”呢?这是因为 J1939

参数定义来源于早期的诊断系统的数据定义。诊断系统中,在没确定那个参数出问题前,

参数都冠以“可疑”一词。跟司法系统的“嫌疑犯”一个意思。现在,J1939 数据根本不
局限于诊断之用,所以可疑一词称呼已经不适当,但习惯称呼仍被沿用下来。 

应用层规范还要对数据进行定义,J1939 中参数的定义非常合理、全面。参数一般分

为 3 类:模拟量、离散量、控制命令或状态。 

模拟量包含 5 种状态,用数据的最高字节来表示:有效(Valid,0~0XFA)、特殊标识

(Specific,0XFB)、预留标识(Reserved,0XFC~0XFD)、错误标识(Error,0XFE)、未知(NA,0XFF)。 

离散量有“断(OFF)”、“通(ON)”2种有效状态,还有“错误(ERRO

R)”、  “未知(NA)”,对应的二进制值分别是00、01、10、11。控制

命令或状态跟离散量类似,只不过 11 代表“不必响应(Not Request  )”或者说“无须
理会(Ignore it)”而非“状态未知(Not Available)”。