图文详解CAN Log文件 - ASC文件格式
目录
1 CAN Log文件 -- ASC文件格式
1.1 Header
1.2 版本编号
1.3 经典CAN网络中的描述
1.3.1 经典CAN Standard标准帧的描述
1.3.2 经典CAN Extended扩展帧的描述
1.3.3 CAN Remote远程帧的描述
1.3.4 CAN Error错误帧的描述
1.4 CANFD网络中的描述
1.4.1 经典CAN Standard标准帧的描述
1.4.2 经典CAN Extended扩展帧的描述
1.4.3 CANFD Standard标准帧的描述
1.4.4 CANFD Extended扩展帧的描述
1.4.5 CAN Remote远程帧的描述
1.4.6 CAN Error错误帧的描述
1.5 换行
2 小结:如何分辨CAN Log文件中的“标准帧”和“扩展帧”
2.1 经典CAN网络中的标准帧和扩展帧
2.2 CANFD网络中的标准帧和扩展帧
结尾
优质博文推荐阅读(单击下方链接,即可跳转):
Vector工具链
CAN Matrix DBC
CAN Matrix Arxml
Vector提供了两种记录数据格式的格式规范:BLF和ASC。在Vector提供的CAN_LOG_TRIGGER_ASC_Format.pdf文件中,规定了CANoe/CANalyzer ASC记录中CAN、Log和Trigger event的格式。
1 CAN Log文件 -- ASC文件格式
1.1 Header
一个ASCII格式的日志文件以一个header开始。header包含关于日志文件的一般信息。
Format | date <WeekDay> <Month> <Date> <Fulltime> <Year> base <hex |dec> timestamps <absolute |relative> <”” |no> internal events logged |
Example | date Wed Apr 16 09:21:13.159 am 2014 base hex timestamps absolute internal events logged |
base:表示记录的数值是hex十六进制或dec十进制的符号。
timestamps:表示时间戳是absolute绝对写入测量的开始时间还是relative相对于前一个事件。
internal:events logged表示是否记录了内部事件。
1.2 版本编号
从CANalyzer/CANoe v7.0开始,版本号以注释的形式写在Header之后:
Format Since v7.0 | // version <major>.<minor>.<patch> |
Example | // version 8.2.1 |
<major>.<minor>表示CANalyzer/CANoe的版本号
<patch>表示CANalyzer/CANoe主版本中的修改版本(如服务包中的修改)。
1.3 经典CAN网络中的描述
该部分列出了CANoe/CANalyzer ASC记录中的所有CAN event。
1.3.1 经典CAN Standard标准帧的描述
Format since v8.0 | <Time> <Channel> <ID> <Dir> d <DLC> <D0> <D1>...<D8> Length = <MessageDuration> BitCount = <MessageLength> ID = <IDnum> <MessageFlags> |
Example | 0.003040 1 123 Tx d 2 00 00 Length = 768000 BitCount = 67 ID = 291 |
ID:表示CANID的十六进制值;
Length:表示发送/接收该Frame/Message占据总线的时间,单位纳秒;
BitCount:表示发送/接收该Frame/Message由多少各Bit构成;
IDnum:表示CANID的十进制值。
举例:
date Mon Apr 10 02:24:54.471 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.036886 CAN 1 Status:chip status error active0.036886 CAN 2 Status:chip status error active0.101317 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 5290.201267 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 5290.301361 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 5290.401419 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 529
1.3.2 经典CAN Extended扩展帧的描述
Format since v8.0 | <Time> <Channel> <ID>x <Dir> d <DLC> <D0> <D1>...<D8> Length = <MessageDuration> BitCount = <MessageLength> ID = <IDnum>x <MessageFlags> |
Example | 4.876870 1 54C5638x Tx d 8 00 00 00 00 00 00 00 00 Length = 1704000 BitCount = 145 ID = 88888888x |
与经典CAN标准帧的差异: ID和IDnum后带字符x。
举例:
date Mon Apr 10 02:28:37.439 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.021151 CAN 1 Status:chip status error active0.021151 CAN 2 Status:chip status error active0.101557 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x0.201483 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x0.301437 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x0.401151 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x
1.3.3 CAN Remote远程帧的描述
Format since v8.5 | <Time> <Channel> <ID> <Dir> r <DLC> Length = <MessageDuration> BitCount = <MessageLength> ID = <IDnum>x |
Example | 2.5010 1 200 Tx r 8 Length = 1704000 BitCount = 145 ID = 88888888x |
与经典CAN标准/扩展帧的差异:没有<D0> <D1>...<D8>。
举例:
date Mon Apr 10 02:31:19.810 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.041478 CAN 1 Status:chip status error active0.041478 CAN 2 Status:chip status error active0.101079 1 211 Tx r 8 Length = 88015 BitCount = 47 ID = 5290.101219 1 211x Tx r 8 Length = 134015 BitCount = 70 ID = 529x0.200845 1 211x Tx r 8 Length = 134015 BitCount = 70 ID = 529x0.200939 1 211 Tx r 8 Length = 88015 BitCount = 47 ID = 529
1.3.4 CAN Error错误帧的描述
CAN Error Frame | |
Format since v7.5 | Interfaces with CAN-Core: <Time> <Channel> ErrorFrame Flags = <flags> CodeExt = <codeExt> Code = <code> ID = <ID> DLC = <DLC> Position = <Position> Length = <Length> Flags: 定义参数Code, CodeExt, ID, DLC, Position和Length的有效性的Bit field。Bit含义: 0:SJA 1000 ECC是有效的 1:矢量CAN核心错误代码有效 2:矢量CAN核心错误位置有效 3:矢量CAN核心帧长度(ns)有效 Code: Vector CAN-Core的Bit含义: Bit 0-5: 0: Bit Error 1: Form Error 2: Stuff Error 3: Other Error 4: CRC Error 5: Ack-Del-Error 7: Ack-Error Bit 6-7: 0: RX-NAK-Error 1: TX-NAK-Error 2: RX-Error 3: TX-Error |
CodeExt:Extended error flags Bit 0-4:Segment (only SJA1000) Bit 5:Direction, 1=RX Bit 6-11:Error Code 0 Bit Error 1 Form Error 2 Stuff Error 3 Other Error 4 CRC Error 5 ACK- DEL Error 7 ACK Error Bit 12-13:Extended Direction 0 RX NAK 1 TX NAK 2 RX 3 TX Bit 14:1 =错误帧由应用程序发送 备注 1 只对带有Vector CAN-Core的接口有效(CANcardXLe, VN7600, VN16xx, VN89xx和其他)。 2 ID、DLC和data field的有效性取决于干扰的类型和位置。 例如: 如果信息在ID- field受到干扰,那么只有ID的第一个Bit可能有效,但DLC和data field无效。错误位置不是干扰的位置。 例如: 如果错误位置位于CRC-field,那么信息可能在任何其他field受到干扰,错误的CRC是该干扰的结果。 | |
Examples | 1.592186 2 ErrorFrame Flags = 0xe CodeExt = 0x20a2 Code = 0x82 ID = 0 DLC = 0 Position = 5 Length = 11300 |
CAN Error Event | |
Format | <Time> CAN <Channel> Status:<Error> <Time> CAN <Channel> Status:<Error> - TxErr: <TxCount> RxErr: <RxCount> TxCount: transmit error count寄存器的值 RxCount: receive error count寄存器的值 |
Example | 0.0006 CAN 2 Status:chip status error active 2137.317027 CAN 2 Status:chip status error active - TxErr: 8 RxErr: 0 |
举例:
date Mon Apr 10 02:33:32.536 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.014704 CAN 1 Status:chip status error active0.014704 CAN 2 Status:chip status error active0.100641 CAN 1 Status:chip status error active - TxErr: 8 RxErr: 00.100642 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.100901 CAN 1 Status:chip status error active - TxErr: 16 RxErr: 00.100902 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.101161 CAN 1 Status:chip status error active - TxErr: 24 RxErr: 00.101162 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.101421 CAN 1 Status:chip status error active - TxErr: 32 RxErr: 00.101422 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.101681 CAN 1 Status:chip status error active - TxErr: 40 RxErr: 00.101682 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.101941 CAN 1 Status:chip status error active - TxErr: 48 RxErr: 00.101942 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.102201 CAN 1 Status:chip status error active - TxErr: 56 RxErr: 00.102202 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.102461 CAN 1 Status:chip status error active - TxErr: 64 RxErr: 00.102462 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.102721 CAN 1 Status:chip status error active - TxErr: 72 RxErr: 00.102722 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.102981 CAN 1 Status:chip status error active - TxErr: 80 RxErr: 00.102982 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.103241 CAN 1 Status:chip status error active - TxErr: 88 RxErr: 00.103242 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.103501 CAN 1 Status:chip status warning level - TxErr: 96 RxErr: 00.103502 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.103761 CAN 1 Status:chip status warning level - TxErr: 104 RxErr: 00.103762 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.104021 CAN 1 Status:chip status warning level - TxErr: 112 RxErr: 00.104022 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.104281 CAN 1 Status:chip status warning level - TxErr: 120 RxErr: 00.104282 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 00.104541 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 00.104542 1 ErrorFrame Flags = 0xfffe CodeExt = 0x31d9 Code = 0xc7 ID = 0x211 DLC = 8 Position = 99 Length = 226015 Data = 0 0 0 0 0 0 0 01.014705 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 01.014705 CAN 2 Status:chip status error active2.014705 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 02.014705 CAN 2 Status:chip status error active3.014705 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 03.014705 CAN 2 Status:chip status error active4.014706 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 04.014706 CAN 2 Status:chip status error active5.014706 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 05.014706 CAN 2 Status:chip status error active
1.4 CANFD网络中的描述
该部分列出了CANoe/CANalyzer ASC记录中的所有经典CAN event和CAN FD channel上的CAN FD event。
1.4.1 经典CAN Standard标准帧的描述
Format since v8.1 | <Time> CANFD <Channel> <Dir> <ID> <SymbolicName> <BRS> <ESI> <DLC> <DataLength> <D1> … <D8> <MessageDuration> <MessageLength> <Flags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> |
Example | 0.105364 CANFD 1 Tx 1 0 0 1 1 01 112000 59 200040 39b5 46500250 460a0250 20011736 20010205 |
ID:表示CANID的十六进制值;
BRS:表示CANFD Frame的BRS位;
ESI:表示CANFD Frame的DEI位;
DLC:表示CANFD Frame的控制段DTC;
DataLength:message的有效长度,以字节为单位。
MessageDuration:表示发送/接收该Frame/Message占据总线的时间,单位纳秒;
MessageLength:表示发送/接收该Frame/Message由多少各Bit构成;
Flags:Bit含义
- Bit 0: Reserved, must be 0
- Bit 1: Reserved, for internal use
- Bit 2: 1=NERR (1=single wire on low speed CAN)
- Bit 3: 1=High voltage wake up
- Bit 4: 1=Remote frame (only CAN)
- Bit 5: Reserved, must be 0
- Bit 6: 1= Tx Acknowledge
- Bit 7: 1= Tx Request
- Bit 8: Reserved, must be 0
- Bit 9: SRR (CAN FD)
- Bit 10: R0
- Bit 11: R1
- Bit 12: FDF bit 0: CAN frame 1: CAN FD frame
- Bit 13: BRS bit (CAN FD)
- Bit 14: ESI bit (CAN FD)
- Bit 15: Reserved, must be 0
- Bit 16: Reserved, must be 0
- Bit 17: 1= Frame is part ofa burst
- Bit 18: Single shot mode: Frame could not be transmitted
- Bit 19: Single shot mode: If bit 18 set to 1, then this bit reports the reason.0 = arbitration lost 1=frame disturbed
- Bit 20: Reserved, for internal use
- Bit 21: Reserved, for internal use
- Bit 22 -31: Reserved, must be 0
CRC:message的校验和;
- Bit 0 – 20: CRC
- Bit 21 – 26: Reserved for internal use
- Bit 27 – 29: Stuff count field
- Bit 30: Stuff count field parity
- Bit 31: ISO format. 如果设置为1,那么该报文是CAN FD ISO格式,并且stuff count是有效的.
BitTimingConfArb和BitTimingConfData:指的是用于仲裁和数据段的bit timing参数。这些段可以解释为32位长的bit field。
- Bit 0-7: Quartz Frequency in kHz
- Bit 8-15: Prescaler
- Bit 16-23: BTL Cycles
- Bit 24-31: Sampling Point
BitTimingConfExtArb和BitTimingConfExtData:bit timing存储在该段中。如果bit timing不能以旧格式存储,那么<BitTimingConfArb>、<BitTimingConfData>将被设置为0。
- Bit 0 – 7: TSEG1-1
- Bit 8 – 15: TSEG2-1
- Bit 16 – 27: Prescaler
- Bit 28 – 31: Quartz Frequency (enumeration). Supported values: 0: 16 MHz, 1: 32 MHz, 2: 80 MHz
举例:
date Mon Apr 10 02:38:41.859 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.038849 CAN 1 Status:chip status error active0.038849 CAN 2 Status:chip status error active0.100980 CANFD 1 Tx 211 0 0 8 8 00 00 00 00 00 00 00 00 242015 124 200040 2a8f 50a00150 46280150 20001f7e 20000b1a0.200978 CANFD 1 Tx 211 0 0 8 8 00 00 00 00 00 00 00 00 242015 124 200040 2a8f 50a00150 46280150 20001f7e 20000b1a0.301134 CANFD 1 Tx 211 0 0 8 8 00 00 00 00 00 00 00 00 242015 124 200040 2a8f 50a00150 46280150 20001f7e 20000b1a0.400976 CANFD 1 Tx 211 0 0 8 8 00 00 00 00 00 00 00 00 242015 124 200040 2a8f 50a00150 46280150 20001f7e 20000b1a
1.4.2 经典CAN Extended扩展帧的描述
Format since v8.1 | <Time> CANFD <Channel> <Dir> <ID> <SymbolicName> <BRS> <ESI> <DLC> <DataLength> <D1> … <D8> <MessageDuration> <MessageLength> <Flags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> |
Example | 0.100995 CANFD 2 Rx 10001x 0 0 1 1 01 156000 82 200000 149a 46500250 460a0250 20011736 20010205 |
各字段的解释详见“1.4.1 经典CAN Standard标准帧的描述”。
举例:
date Mon Apr 10 02:42:26.030 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.035889 CAN 1 Status:chip status error active0.035889 CAN 2 Status:chip status error active0.100829 CANFD 1 Tx 211x 0 0 8 8 00 00 00 00 00 00 00 00 290015 148 200040 37b 50a00150 46280150 20001f7e 20000b1a0.200893 CANFD 1 Tx 211x 0 0 8 8 00 00 00 00 00 00 00 00 290015 148 200040 37b 50a00150 46280150 20001f7e 20000b1a0.300831 CANFD 1 Tx 211x 0 0 8 8 00 00 00 00 00 00 00 00 290015 148 200040 37b 50a00150 46280150 20001f7e 20000b1a0.400909 CANFD 1 Tx 211x 0 0 8 8 00 00 00 00 00 00 00 00 290015 148 200040 37b 50a00150 46280150 20001f7e 20000b1a
1.4.3 CANFD Standard标准帧的描述
Format since v8.1 | <Time> CANFD <Channel> <Dir> <ID> <SymbolicName> <BRS> <ESI> <DLC> <DataLength> <D1> … <D64> <MessageDuration> <MessageLength> <Flags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> |
Example | 0.151061 CANFD 1 Tx 2 0 0 2 2 02 03 150000 78 301040 10151 46500250 460a0250 20011736 20010205 |
各字段的解释详见“1.4.1 经典CAN Standard标准帧的描述”。
举例:
date Mon Apr 10 02:48:53.277 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.046804 CAN 1 Status:chip status error active0.046804 CAN 2 Status:chip status error active0.100836 CANFD 1 Tx 211 1 0 8 8 00 00 00 00 00 00 00 00 107015 139 303040 f801828f 50a00150 46280150 20001f7e 20000b1a0.200741 CANFD 1 Tx 211 1 0 8 8 00 00 00 00 00 00 00 00 107015 139 303040 f801828f 50a00150 46280150 20001f7e 20000b1a0.300714 CANFD 1 Tx 211 1 0 8 8 00 00 00 00 00 00 00 00 107015 139 303040 f801828f 50a00150 46280150 20001f7e 20000b1a0.400735 CANFD 1 Tx 211 1 0 8 8 00 00 00 00 00 00 00 00 107015 139 303040 f801828f 50a00150 46280150 20001f7e 20000b1a
1.4.4 CANFD Extended扩展帧的描述
Format since v8.1 | <Time> CANFD <Channel> <Dir> <ID> <SymbolicName> <BRS> <ESI> <DLC> <DataLength> <D1> … <D64> <MessageDuration> <MessageLength> <Flags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> |
Example | 0.105537 CANFD 2 Rx 10001x 0 0 1 1 01 174015 91 301000 bfd9 46500250 460a0250 20011736 20010205 |
各字段的解释详见“1.4.1 经典CAN Standard标准帧的描述”。
举例:
date Mon Apr 10 02:49:57.722 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.018020 CAN 1 Status:chip status error active0.018020 CAN 2 Status:chip status error active0.100571 CANFD 1 Tx 211x 1 0 8 8 00 00 00 00 00 00 00 00 151015 161 303040 80016b85 50a00150 46280150 20001f7e 20000b1a0.200634 CANFD 1 Tx 211x 1 0 8 8 00 00 00 00 00 00 00 00 151015 161 303040 80016b85 50a00150 46280150 20001f7e 20000b1a0.300783 CANFD 1 Tx 211x 1 0 8 8 00 00 00 00 00 00 00 00 151015 161 303040 80016b85 50a00150 46280150 20001f7e 20000b1a0.400604 CANFD 1 Tx 211x 1 0 8 8 00 00 00 00 00 00 00 00 151015 161 303040 80016b85 50a00150 46280150 20001f7e 20000b1a
1.4.5 CAN Remote远程帧的描述
Format | <Time> CANFD <Channel> <Dir> <ID> <SymbolicName> <BRS> <ESI> <DLC> <DataLength> <MessageDuration> <MessageLength> <Flags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> |
Example | 0.300981 CANFD 1 Tx 50005x 0 0 5 0 140000 73 200050 7a60 46500250 460a0250 20011736 20010205 |
各字段的解释详见“1.4.1 经典CAN Standard标准帧的描述”。
举例:
date Mon Apr 10 02:52:19.883 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.026889 CAN 1 Status:chip status error active0.026889 CAN 2 Status:chip status error active0.101047 CANFD 1 Tx 211 0 0 8 0 88015 47 200050 2c3a 50a00150 46280150 20001f7e 20000b1a0.101187 CANFD 1 Tx 211x 0 0 8 0 134015 70 220050 6a2a 50a00150 46280150 20001f7e 20000b1a0.201045 CANFD 1 Tx 211x 0 0 8 0 134015 70 200050 6a2a 50a00150 46280150 20001f7e 20000b1a0.201139 CANFD 1 Tx 211 0 0 8 0 88015 47 220050 2c3a 50a00150 46280150 20001f7e 20000b1a
1.4.6 CAN Error错误帧的描述
CAN FD Error Frame | |
Format | <Time> CANFD <Channel> <Dir> ErrorFrame <ErrorText> <flags> <code> <codeExt> <Phase> <Position> <ID> <BRS> <ESI> <DLC> <DataLength> <D1> … <D64> <MessageDuration> <extFlags> <CRC> <BitTimingConfArb> <BitTimingConfData> <BitTimingConfExtArb> <BitTimingConfExtData> <extFlags>: extFlags(Extended error flags): Bit 0:0: FDF is 0 (CAN Error Frame);1: FDF is 1 (CAN FD Error Frame) Bit 1:0: BRS is 0;1: BRS is 1 Bit 2:0: ESI is 0;1: ESI is 1 Bit 3:0: Error in Arbitration Phase;1: Error in Data Phase Bit 4:0: Error is on a CAN channel;1: Error is on a CAN FD channel all others:reserved, must be set to 0 |
Example: Classic CAN | 0.051203 CANFD 1 Rx ErrorFrame Stuff Error fffe 82 20a2 Arb.5 0 0 0 0 0 11984 10 0 46500250 460a0250 20011736 20010205 |
Example: CAN FD | 10.006898 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31ca Arb.556 44 0 0 f 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1331984 11 0 46500250 460a0250 20011736 20010205 |
各字段的解释详见“1.4.1 经典CAN Standard标准帧的描述”。
举例:
date Mon Apr 10 02:55:04.694 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.036456 CAN 1 Status:chip status error active0.036456 CAN 2 Status:chip status error active0.100770 CAN 1 Status:chip status error active - TxErr: 8 RxErr: 00.100770 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.100897 CAN 1 Status:chip status error active - TxErr: 16 RxErr: 00.100897 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101024 CAN 1 Status:chip status error active - TxErr: 24 RxErr: 00.101024 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101151 CAN 1 Status:chip status error active - TxErr: 32 RxErr: 00.101151 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101278 CAN 1 Status:chip status error active - TxErr: 40 RxErr: 00.101278 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101405 CAN 1 Status:chip status error active - TxErr: 48 RxErr: 00.101405 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101532 CAN 1 Status:chip status error active - TxErr: 56 RxErr: 00.101532 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101659 CAN 1 Status:chip status error active - TxErr: 64 RxErr: 00.101659 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101786 CAN 1 Status:chip status error active - TxErr: 72 RxErr: 00.101786 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.101913 CAN 1 Status:chip status error active - TxErr: 80 RxErr: 00.101913 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102040 CAN 1 Status:chip status error active - TxErr: 88 RxErr: 00.102040 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102167 CAN 1 Status:chip status warning level - TxErr: 96 RxErr: 00.102167 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102294 CAN 1 Status:chip status warning level - TxErr: 104 RxErr: 00.102294 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102421 CAN 1 Status:chip status warning level - TxErr: 112 RxErr: 00.102421 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102548 CAN 1 Status:chip status warning level - TxErr: 120 RxErr: 00.102548 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a0.102675 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 00.102675 CANFD 1 Tx ErrorFrame Not Acknowledge error, dominant error flag fffe c7 31da Arb. 109 211 1 0 8 8 00 00 00 00 00 00 00 00 93015 13 f8000000 50a00150 46280150 20001f7e 20000b1a1.036456 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 01.036456 CAN 2 Status:chip status error active2.036457 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 02.036457 CAN 2 Status:chip status error active3.036457 CAN 1 Status:chip status error passive - TxErr: 128 RxErr: 03.036457 CAN 2 Status:chip status error active
1.5 换行
换行是用CR+LF表示的编码。
2 小结:如何分辨CAN Log文件中的“标准帧”和“扩展帧”
2.1 经典CAN网络中的标准帧和扩展帧
经典CAN网络中的标准帧和扩展帧的差异:
- 经典CAN标准帧的ID和IDnum字段后不带字符x;
- 经典CAN扩展帧的ID和IDnum字段后带字符x。
举例:
date Mon Apr 10 04:24:18.233 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.028996 CAN 1 Status:chip status error active0.028996 CAN 2 Status:chip status error active0.101449 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 5290.101745 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x0.201469 1 211x Tx d 8 00 00 00 00 00 00 00 00 Length = 290015 BitCount = 148 ID = 529x0.201717 1 211 Tx d 8 00 00 00 00 00 00 00 00 Length = 242015 BitCount = 124 ID = 529
2.2 CANFD网络中的标准帧和扩展帧
CANFD网络中,可能同时存在:经典CAN标准帧,经典CAN扩展帧,CANFD标准帧,CANFD扩展帧。
- 经典CAN/CANFD标准帧的ID字段后不带字符x;
- 经典CAN/CANFD扩展帧的ID字段后带字符x;
- Flags字段的的Bit 12: FDF bit,其0表示经典CAN frame;1表示CAN FD frame。
举例:
date Mon Apr 10 03:28:33.279 pm 2023
base hex timestamps absolute
internal events logged
// version 11.0.00.008330 CAN 1 Status:chip status error active0.008330 CAN 2 Status:chip status error active0.100736 CANFD 1 Tx 211 1 0 8 8 00 00 00 00 00 00 00 00 107015 139 303040 f801828f 50a00150 46280150 20001f7e 20000b1a0.100893 CANFD 1 Tx 211x 1 0 8 8 00 00 00 00 00 00 00 00 151015 161 323040 80016b85 50a00150 46280150 20001f7e 20000b1a0.101141 CANFD 1 Tx 211 0 0 8 8 00 00 00 00 00 00 00 00 242015 124 220040 2a8f 50a00150 46280150 20001f7e 20000b1a0.101437 CANFD 1 Tx 211x 0 0 8 8 00 00 00 00 00 00 00 00 290015 148 220040 37b 50a00150 46280150 20001f7e 20000b1a
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。
相关文章:

图文详解CAN Log文件 - ASC文件格式
目录 1 CAN Log文件 -- ASC文件格式 1.1 Header 1.2 版本编号 1.3 经典CAN网络中的描述 1.3.1 经典CAN Standard标准帧的描述 1.3.2 经典CAN Extended扩展帧的描述 1.3.3 CAN Remote远程帧的描述 1.3.4 CAN Error错误帧的描述 1.4 CANFD网络中的描述 1.4.1 经典CAN S…...

网络编程套接字(一)
学习任务: 我们先来认识端口号,区分好主机IP和端口号的区别,以及涉及到进程PID和端口号的区别。 然后简单认识一下TCP协议和UDP协议,这两个协议都是传输层的。接着了解什么是网络字节序,它有什么作用。然后是网络编程的…...
Mysql数据库存储过程
1、参数分类 存储过程的参数类型可以是IN、OUT和INOUT。根据这点分类如下: 1、没有参数(无参数无返回) 2、仅仅带 IN 类型(有参数无返回) 3、仅仅带 OUT 类型(无参数有返回) 4、既带 IN 又带 O…...
当我开始学习人工智能:人工智能的学派及研究目标
上课真是不认真啊,现在都写不来了作业了,真的会谢 一、人工智能的学派及其争论 1.1 对人工智能方法的争论 三个学派 符号主义 认为人的认知基元是符号,认知过程即符号操作过程。 认为人是一个物理符号系统,计算机也是一个物理符…...

Html5钢琴块游戏制作与分享(音游可玩)
当年一款手机节奏音游,相信不少人都玩过或见过。最近也是将其做了出来分享给大家。 游戏的基本玩法:点击下落的黑色方块,弹奏音乐。(下落的速度会越来越快) 可以进行试玩,手机玩起来效果会更好些。 点击…...
MySQL数据库——数据库设计概念和数据库设计步骤
数据库设计就是根据业务系统的具体需求,结合我们所选用的数据库,建立好表结构及表与表之间的管理关系,为这个业务系统构造出最优秀的数据存储模型的过程。使之能有效的对应用的数据进行存储,并高效的对已经存储的数据进行访问。 …...

【云原生】Kubernetes(k8s)之Pod概念和使用
k8s之Pod概念和使用一、Pod简介1.1、Pod的阶段(状态)1.2、容器状态二、Pod的定义2.1、restartPolicy2.2、imagePullPolicy2.3、command2.4、args2.5、resources三、Pod的使用3.1、创建并访问Pod3.2、多个应用容器3.3、Init容器3.3.1、Init容器与普通容器…...

数组(九)-- LC[316][321][402] 去除重复字母
1 移掉 K 位数字 1.1 题目描述 题目链接:https://leetcode.cn/problems/remove-k-digits/ 1.2 思路分析 这道题让我们从一个字符串数字中删除 k 个数字,使得剩下的数最小。也就说,我们要保持原来的数字的相对位置不变。 以题目中的 num1432…...

ubuntu下Thrift安装
thrift是一种常用rpc框架,工作中经常会用到,本文记录一下其安装过程。 目录 1.下载软件包 1.1thrift下载 1.2libevent下载 1.3boost下载 2.安装(注意步骤) 2.1安装libevent 2.2安装boost 2.3安装与Python2.7版本对应的py…...

读懂AUTOSAR :DiagnosticLogAndTrace DLT(四)-- API解析
一、周期调用的函数:Dlt_TxFunction 根据参数DltGeneralTrafficShapingSupport,决定如何去发送DLT消息。如果为TRUE,那需要参考参数DltLogChannelTrafficShapingBandwidth为每个Log通道设置发送带宽;如果为FALSE,那么…...

【LeetCode】剑指 Offer 56. 数组中数字出现的次数 p275 -- Java Version
1. 题目介绍(56. 数组中数字出现的次数) 面试题56.:数组中数字出现的次数, 一共分为两小题: 题目一:数组中只出现一次的两个数字题目二:数组中唯一只出现一次的数字 2. 题目1:数组中…...

Zookeeper集群 + Fafka集群
目录 第一章Zookeeper 概述 1.1.Zookeeper 定义 1.2.Zookeeper 工作机制 1.3.Zookeeper 特点 1.4.Zookeeper 数据结构 1.5.Zookeeper 应用场景 1.6.Zookeeper 原理之选举机制 1.7.部署 Zookeeper 集群 总结 第二章消息队列概述 2.1消息队列需求原因 2.2消息队列的优…...
全国青少年电子信息智能创新大赛(复赛)python·模拟四卷
目录 一、编程题 答案解析如下: 下载文档打印做题: 全国青少年电子信息智能创新大赛(复赛)python模拟四卷 一、编程题 第一题:描述 班上有学生若干名,给出每名学生的年龄《整数),求班上所有学生的平均年龄,保留到小数点后两企 输入 第一行有一个整数n (1<= n...
Redis - 介绍与使用场景
简介 Redis 的全称是 Remote Dictionary Server,是一个使用 C 语言编写的、开源的(BSD 许可)高性能非关系型(NoSQL)的键值对数据库。 Redis 的数据是存储在内存中的,所以读写速度非常快,被广泛…...

Spark SQL实战(07)-Data Sources
1 概述 Spark SQL通过DataFrame接口支持对多种数据源进行操作。 DataFrame可使用关系型变换进行操作,也可用于创建临时视图。将DataFrame注册为临时视图可以让你对其数据运行SQL查询。 本节介绍使用Spark数据源加载和保存数据的一般方法,并进一步介绍…...
Django DRF - 权限Permissions
权限Permissions 权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。 在执行视图的dispatch()方法前,会先进行视图访问权限的判断在通过get_object()获取具体对象时,会进行对象访问权限的判断 1.提供的权限 AllowAny 允许所有用户IsAuth…...

二叉树(OJ)
单值二叉树(力扣) ---------------------------------------------------哆啦A梦的任意门------------------------------------------------------- 我们来看一下题目的具体要求: 既然我们都学了二叉树了,我们就应该学会如何去…...

mysql中增删改成的练习
文章目录一、表的创建1.student表的数据2、课程表的数据course3、学生成绩表的数据二、操作序列1、查询计算机系cs的全体学生学号、姓名和性别2、检索选修了课程号为2的学生号和姓名3、检索至少选修了三门课以上的学生号4、检索选修了全部课程的学生5、在原表的基础上创建一个视…...

谈一谈Java的ThreadLocal
目录 先说原理: 再上代码: 运行结果: 先说原理: ThreadLocal 是一个本地线程副本变量工具类,它可以在每个线程中创建一个副本变量,每个线程可以独立地修改自己的副本变量,而不会影响其他线程…...
边缘检测与阈值分割
Canny [1] Canny Edge Detection. https://docs.opencv.org/3.4/da/d22/tutorial_py_canny.html [2] OpenCV Edge Detection ( cv2.Canny ). https://pyimagesearch.com/2021/05/12/opencv-edge-detection-cv2-canny/ 由John F. Canny提出 1、由于边缘检测容易受噪声影响&…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...