SAEJ1939学习笔记转.docx
《SAEJ1939学习笔记转.docx》由会员分享,可在线阅读,更多相关《SAEJ1939学习笔记转.docx(19页珍藏版)》请在冰豆网上搜索。
SAEJ1939学习笔记转
转自
SAEJ1939学习笔记
(一)
1.总线布局
2.差分信号线
J1939通讯传输的是一系列的“1”或“0”。
1代表在J1939(+)与J1939(-)之间是高电压差。
0代表在J1939(+)与J1939(-)之间是低电压差
250K波特率时,在J1939高、低导线间的电压从0到1每秒变化250K次是可能的。
用一个高频示波器可以看到此电压变化。
3.ISO标准对应
–Layer1– J1939/11:
物理层,物理介质,总线的设计, 长度,节点,等等.
–Layer2– J1939/21:
数据层,定义分类PGN信息/传输协议.
–Layer3– J1939/31:
网络层,定义不同网络互连之间的转换技术。
–Layer7– J1939/71:
应用层,信息分享、解析。
J1939/73:
应用层,故障信息。
4.术语
SPN–特定参数–特定参数对应的,例如:
SPN190= 发动机转速
SPN513=% 扭矩
PGN –参数组–总线上的信息被以“组”的形式广播,例如:
PGN61444=发动机控制器#1(EEC1)
PGN61444=SPN190,SPN513,等等.
发动机转速和扭矩百分比都属于PGN61444参数组。
优先级–告诉ECM接收的信息的重要性:
0= 最重要
6= 最不重要
例如:
如果变速箱用优先级3请求发动机升速,而牵引控制器用优先级0请求发动机降速,最终发动机会选择降速。
源地址和目的地址–指示信息是从哪一个控制器发出,或发送到哪一个控制器。
00h–发动机控制器--主机
01h–发动机控制器--辅机
03h–变速箱
5.CAN标准帧和扩展帧
标准帧只有11位的标识符(ID)
扩展帧有11+18=29位标识符(ID)
以后均以扩展帧作介绍。
6.协议数据单元(PDU)
标识符+数据域=协议数据单元(PDU)。
7.参数组编号(PGN)
PGN(ParameterGroupNumber)参数组编号:
参数组编号唯一标识一个参数组,在通讯过程中起到“索引”的作用,表征报文的容和用途,确定报文的类型和传播数据需要的帧数目。
可以理解为同类(或者有共同特征的设备)参数的集合的索引。
SAEJ1939中的格式规定如下:
pgn61443–ElectronicEngineController#2–EEC2–
TransmissionRepetitionRate:
50ms ->信息发送周期
DataLength:
8Bytes ->数据域长度(CAN扩展帧中的数据域)
DataPage:
0 ->数据页(PGN中的数据页DP)
PDUFormat:
240 ->PDU格式(PDU1(<240)和PDU2(240~255))(CAN格式中的PF)
PDUSpecific:
3 ->PDU特定域(PF<240,DA,240≤PF≤255,组扩展)
DefaultPriority:
3 ->优先级
ParameterGroupNumber:
61443(00F00316) ->PGN
BitStartPosition/Byte Length SPNDescription SPN(对应的SPN号) ->数据域分布
1.1 2bits AcceleratorPedalLowIdleSwitch 558 ->1.1表示第一个字节第一位
1.3 2bits AcceleratorPedalKickdownSwitch 559 ->2bits表示该SPN对应的数据长度
1.5 2bits RoadSpeedLimit 1437
2 1byte AcceleratorPedalPosition 91
3 1byte PercentLoadatCurrentSpeed 92
4 1byte RemoteAccelerator 974
8.特定参数号(SPN)
spn91–AcceleratorPedalPosition– Theratioofactualacceleratorpedalpositiontomaximumpedalposition. AlthoughitisusedasaninputtodeterminetransmissionandASRalgorithmsaboutdriver’sactions.
DataLength:
1Bytes ->SPN号对应的数据的长度
Resolution:
0.4%/bit,0offset ->计算方式(见下)
DataRange:
0to100% ->数据围(涉及偏移量计算)
Type:
Measured
SuspectParameterNumber:
91 ->SPN号
ParameterGroupNumber:
[61443] ->隶属的PGN号
由SPN数据(CAN格式中的读出的数据)计算实际的数据方法:
如下是一个实际的 J1939信息
0.10001 OCF00300x Rx d8 7DC3 C02DFFFFFFFF
转换步骤:
十六进制转成十进制
乘以转换系数
加上偏置
举例:
查询PGN:
SPN110如下:
SPN175:
SAEJ1939学习笔记
(二)
特殊的J1939信息(车辆控制)
>pgn0-TSC1
>pgn65226-DM1
>pgn60160&pgn60471–TP.BAM
pgn0-TSC1 扭矩/速度控制
TSC1 允许三种方式控制发动机:
- 扭矩控制 (0%->100%)
- 速度控制 (低怠速 ->高怠速)
- 扭矩/速度限制(两者之中的低者)
例如:
1、变速箱在换档时会利用此命令控制发动机转速;
2、车辆控制器利用此命令控制发动机转速;
3、牵引控制器利用此命令控制发动机的扭矩来防止车辆打滑
pgn0-Torque/SpeedControl#1-TSC1-
TransmissionRepetitionRate:
whenactive;10mstoengine,50mstoretarder
DataLength:
8bytes
DataPage:
0
PDUFormat:
0
PDUSpecific:
DA
DefaultPriority:
3
ParameterGroupNumber:
0(00000016 )
BitStartPosition/Bytes LengthSPNDescription SPN
1.1 2bits OverrideControlMode 695
1.3 2bits RequestedSpeedControlConditions 696
1.5 2bits OverrideControlModePriority 897
2-3 2bytes RequestedSpeed/SpeedLimit 898
4 1byte RequestedTorque/TorqueLimit 518
数据域举例如下:
相应SPN介绍
SPN695 - OverrideControlMode
00–Overridedisable
01–SpeedControl–GovernstoadesiredSpeed
10–TorqueControl–MaintainsadesiredTorquevalue
11–Speed/TorqueLimitControl–Controlstothelowestvalue.
SPN897 -OverrideControlModePriority
00–HighestPriority
01–HighPriority
10–MediumPriority
11–LowPriority
SPN696- RequestedSpeedControlConditions
Basedonthesebits(bits4,3inbyte1)uptoFour(4)differentASGgainsets canbeappliedDYNAMICALLY.
00 =Gainset 1
01 =Gainset2
10 =Gainset 3
11 =Gainset 4
ThiscanbeasignificantadvantagewhentheTSC1isbeingusedinspeedcontroltoaccomplishtheapplication’sintendedfunction.
Ex:
Improveloadpickupduringloadedoperationsandthenswitchtodifferentgainsetforstabilityduringlightloading.
spn898- RequestedSpeed/SpeedLimit -
Thisistheenginespeedwhichtheengineisexpectedtooperateatifthespeedcontrolmodeisactiveortheenginespeedwhichtheengineisnotexpectedtoexceedifthespeedlimitmodeisactive.
DataLength:
2bytes
Resolution:
0.125rpm/bit,0offset
DataRange:
0to8,031.875rpm
Type:
Status
SuspectParameterNumber:
898
ParameterGroupNumber:
[0] ->PGNNofrompreviousslide
AsthisisanSPN,don’tforgettoByteSwapwhenconvertinghence 01000000 00111000 swappedis 00110
Toconvertinformation
-CovertBinarytoDecimal
-MultiplybyResolution
-AddOffset
Hence:
00111000 01000000=3840h
ConverttoDec:
3840h =14400Dec
Multiplyby0.125:
14400x0.125=1800
Add0:
1800+0=1800
Result:
1800rpm
spn518-RequestedTorque/TorqueLimit - Thisistheenginetorqueatwhichtheengineisexpectedtooperateifthetorquecontrolmodeisactiveortheenginetorquewhichtheengineisnotexpectedtoexceedifthetorquelimitmodeisactive.
DataLength:
1byte
Resolution:
1%/bit,-125%offset
DataRange:
-125to125%
OperatingRange:
0to125%enginetorquerequests
Type:
Status
SuspectParameterNumber:
518
ParameterGroupNumber:
[0] ->PGNNofrompreviousslide
Hence:
10010110=96h
ConverttoDec:
96h =150Dec
Multiplyby1:
150x1=150
Add-125:
150-125=25
Result:
25%TQ
SAEJ1939学习笔记(三)
J1939故障代码种类
J1939由几个不同的诊断信息:
–诊断信息1-DM1–现行故障代码
–诊断信息2-DM2–非现行故障代码
–诊断信息3-DM3–清除非现行故障代码
通常地,用户会用DM1信息来读取现行故障码。
DM1信息是 PGN65226 or FECAh。
相关的信息请参考J1939-73标准。
PGN65226
pgn65226–ActiveDiagnosticTroubleCodes–DM1
TransmissionRepetitionRate:
WhenafaultgoesActive/Inactive&1swhileactive.
DataLength:
Variable
Datapage:
0
PDUFormat:
254
PDUSpecific:
202
DefaultPriority:
6
ParameterGroupNumber:
65226(00FECA16)
Byte:
1 LampStatus
Byte:
2 Reserved
Bytes:
3–5 SPNandFMI
Byte:
6Bit:
8 SPNConversion
Byte:
6Bits:
1–7 OccurrenceCount
注意:
1.参考文件中例子字节和我引用的例子字节的描述序列均为:
12345678...(字节)。
2.参考文件中例子字节和我引用的例子字节的描述位序列均为:
87654321(位),即第一个数描述为第8位,依次递减,最小序号为1。
如上例中,字节6的描述第8位则为第1个数。
注:
当实际需要计算的时候,或者其他应用的时候,仍然在前的为高位,并不需要做位调整,只是称呼不同而已。
3.J1939字节排序为小端模式,即为高字节在后,低字节在前(多字节),所以实际计算的时候,如在数据域表示为8AA1,则实际的计算数据应为A18A。
(所有数据(不论多少个字节)都是最后一个字节为最高字节,这和16位或32为单片机有出入)(特殊情况例外,如下例的SPN)
Byte1–LampStatus
§Bits1–2 ProtectionLamp 保护灯状态
§Bits3–4 AmberWarningLamp 琥珀色警告灯状态
§Bits5–6 RedStopLamp 红色停止灯状态
§Bits7–8 MalfunctionIndicatorLamp 故障指示灯状态
Bytes3-5
该19位的数字是用于识别报告的诊断项目。
SPN用于多种目的,专用于诊断的有:
(1)用于识别可修复的失效最小子系统;
(2)用于识别子系统或集成部件可能并无严重故障,但存在运行不正常;(3)识别一个将要告知的专门事件或情况;以及(4)用于报告部件和非标准的故障模式。
可疑参数与参数组中相关参数或与诊断项目一一对应,但并不是参数组中的参数本身。
可疑参数编号与发送故障诊断信息的控制模块的地址编码无关,然而,有必要通过控制模块的地址编码来确定故障诊断信息是由网络上的哪个控制器来执行诊断的。
初始的511个SPN是预置SPN,并将使用与在SAEJ1587中使用的参数标志符(PID)完全相同的编号。
也就是在报告加速踏板故障时,该参数标志符在SAEJ1587中定义为PID91,而SPN的编号就定义为SPN91。
所有其他的SPN将从512开始继续编号,且每加一作为一个新的赋值。
生产厂可自定义可疑参数,编号自520192至524287, 多达4096个。
该FMI定义了为SPN所识别的子系统中发现的故障类型。
注意,该故障可能不是电子故障,但相反可能是需要报告给设备技术员甚至操作员的子系统故障或条件,这些条件包括需要报告的系统事件或状态。
FMI、SPN为预留的和发生次数域组合已知的诊断故障代码。
如果另外的故障模式是必需的,FMI将由CATARC来赋值。
数据长度:
5位
分辨率:
1FMI/位
数据围:
0~31
类型:
状态
可疑参数编号:
1215
-《商用车控制系统局域网络(CAN总线)通讯协议,第6部分:
应用层—诊断》
TheSuspectParameterNumber(SPN)isconvertedintodecimaldependingontheConversionBit(6.8).
Byte6,Bit8:
tellsuswhichmethodisusedinterprettheSPN。
All Mid-RangeandHeavyDuty willhavea‘0’inthispositionhenceConversionMethod0(J1939Version4)。
All HighHorsePower willhavea‘1’inthispositionhenceConversionMethod1(J1939Version1)。
UsedbyMid-RangeandHeavyDuty(QSB,QSC,QSM,QSX):
SPN=000 00000010 01110101=629