[汽车电子/车载以太网] 车载以太网的日志数据记录格式: pcap / blf / asc
概述:车载以太网的日志记录格式
CANoe 与 车载以太网常用的日志文件格式: ASC / BLF / PCAP
- 对于汽车工程师来说,德国
Vector公司推出的CANoe是最常用的开发环境之一。
CANoe的全称为CAN open environment,是一款能够实现网络和ECU开发、测试以及分析的全面工具。
其支持从需求分析到系统实施的总线网络开发的整个过程,其中包括模型的创建、仿真、测试、诊断和通信分析等。
其被广泛地应用于汽车、机械工程、轨道交通等领域。
随着车载以太网的兴起,CANoe也增加了对以太网的支持。
使用CANoe测试以太网时可以选择多种格式保存日志,最常用的为ASC、BLF以及PCAP。

图:混合了 CAN 和 以太网 的 ASC LOG 文件

图:使用 WireShark 打开 BLF文件格式的 以太网 SOME/IP 报文
ASC / BLF / PCAP 日志文件格式的区别
我们先来看看ASC、BLF和PCAP三种格式有什么区别:
ASCII日志文件 (ASC)
- 基于报文的读写格式
- 标准 ASCII 编码表示
- 用于与第三方程序进行数据交换或在文件中包含Trace数据
- 支持所有总线系统、系统变量、环境变量、内部事件、标记和注释的报文
Tips:由于读写性能较差、存储空间占用较大。因此,不建议在高数据速率下使用ASCII。
BLF日志文件
- 基于报文的读写格式
- 二进制日志格式
- 以二进制格式存储数据,在文件大小和读/写性能方面非常高效
- 支持所有总线系统、系统变量、环境变量、内部事件、标记和注释的报文
- 文件大小与压缩率
- BLF 文件:明显相比 pcap 文件小
- 文件压缩率:偏低,实测 85%-95% 的压缩率(压缩算法:zip / tar.gz / rar)
pcap的压缩优势(实测): 虽 pcap 文件比 blf 大 2倍,但压缩率较高(5%-10%)、pcap 压缩文件 比 blf 压缩文件小得多。
PCAP记录文件
- 基于报文的读写格式
- 二进制日志格式
- 用于存储通过网络发送的捕获数据的标准格式
PCAP仅支持以太网报文,不支持查看以太网其他事件(比如linkup)- 支持使用 Wireshark 做报文数据分析。
其他工具: TSMaster 等
- 文件大小与压缩率(参考 blf)
不支持所有其他总线系统、系统变量、内部事件等。
分析软件: CANoe
详细视图
通过
Trace窗口工具栏中的详细视图能够查看报文的详细信息,包括:
- Time: 从测试开始至捕获到这条报文的时间
- General: 报文的基础信息,例如:通道、端口等
- Ethernet: 数据链路层以太网帧头部信息
- IPv4: 网络层IP包头部信息
- UDP/TCP: 传输层的数据报/数据段头部信息
- DoIP: 应用层信息,此处以DoIP为例

差分视图
通过Trace窗口工具栏中的差分视图能够直观查看两条报文的时间间隔,便于分析。

分析过滤器
- 灵活运用Trace窗口工具栏中的分析过滤器可以简化繁杂的报文,分析过滤器分为Stop过滤器和Pass过滤器,可以分别过滤掉某些报文或只查看某些报文。

分析软件: WireShark(支持 pcap & blf)
- 虽然
BLF保存的总线信息最全面,但在查看日志时还是存在一些不便,只能通过导入CANoe的方式查看,若碰巧没有license且日志文件较大,还可能无法查看全部的报文信息。
例如: 无法直接打开日志文件
- Wireshark
3.6.0版本的发布解决了这一问题,从这一版本开始,Wireshark可支持BLF日志文件。


图:使用 WireShark 打开 BLF文件格式的 以太网 SOME/IP 报文
- 下面我们再来看看如何使用Wireshark分析以太网报文。
显示过滤器
- 使用过滤器是非常有必要的,通过过滤器可以在众多报文中快速定位,帮助我们找到需要的部分。
- 除显示过滤器外还有一种捕获过滤器,在捕获过程中进行过滤,以免捕获过多不必要的报文。该过滤器在“捕获”选项中进行设置。
- 通过过滤器可以进行协议、IP地址、端口等等的过滤。

报文列表
- 报文列表能够显示所有捕获到的报文,并直观地显示出报文的数量、捕获时间、源IP地址、目标IP地址、协议类型、报文长度和端口号等参数信息。
- 不同颜色的报文代表不同协议类型,便于查看,可以通过“视图”选项中的“着色规则”进行修改,自定义颜色。


报文详细信息
-
在报文的分析中,报文详细信息的内容最为重要,在这一部分中,我们能查看Wireshark解析出的报文中每一层的每一个字段。各层信息包括:
-
Frame: 物理层的数据帧概况,包括时间戳和帧的总长度等信息
-
Ethernet II: 数据链路层以太网帧头部信息
-
Internet Protocol Version 4: 网络层IP包头部信息
-
User Datagram Protocol/Transmission Control Protocol:传输层(UDP/TCP)的数据报/数据段头部信息
-
DoIP(ISO13400) Protocol: 应用层信息,此处以DoIP为例

16进制数据
- 此部分内容以16进制显示了报文的完整数据,可结合报文详细信息查看分析。

Z FAQ for 车载以太网( ASC / BLF / PCAP )
Q: 基于 CANoe 提取blf文件中的Eth数据为pcap文件

- 参考文献
Y 推荐文献
在Python中,可以使用
pyarx库来解析ARXML文件,这是一个用于处理AUTOSAR(Automotive Open System Architecture)文档的工具包。
然而,直接从ARXML获取PDU(Protocol Data Unit,数据单元)或特定信号值并在PCAP(Packet Capture)文件中搜索并非其默认功能。
通常,ARXML主要用于描述车辆电子系统的通信模型,而PCAP处理的是网络流量的实际记录。
为了实现这个需求,你需要结合两个步骤:
- ARXML 解析:首先,安装
pyarx库并导入必要的模块:
from pyarx.arxml import ARXMLReader
- PCAP 解析:
X 参考文献
ASC、BLF 以及 PCAP
文介绍了几种常见的总线数据Log文件类型,包括BLF、ASC和PCAP/PCAPNG文件,详细说明了它们的特点和用途。
在CANoe中,讨论了如何保存、导入和转换这些文件格式,特别强调了自动和手动保存的区别,以及在不同场景下选择适合的文件格式的重要性。
同时,文章提供了关于导入和转换Log文件的实用技巧,帮助测试和开发人员更有效地处理总线数据。
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号