汽车SCCU日志上云的技术

(整期优先)网络出版时间:2024-06-17
/ 3

汽车SCCU日志上云的技术

吕忠波  杨浩

宜宾凯翼汽车有限公司,四川 成都  610000

摘要:随着云计算和大数据技术领域的迅速演进,汽车行业正逐步迈入智能化与网络化的全新纪元。车载电子稳定控制系统(SCCU)所生成的日志文件详实记录了车辆在行驶途中的核心运行数据,这些数据对于车辆故障的精准定位、安全性能的实时监控以及整体性能的持续优化起着至关重要的作用。本研究聚焦于汽车SCCU日志云端化技术的探索与实践,系统性地剖析了这一过程中涉及的数据获取、传输机制、云端存储策略、数据分析算法及实际应用等多个层面,并通过实例论证了该技术方案的实际效果和价值。

关键词:汽车SCCU;日志上云;无线通信;云计算

前言

随着汽车行业的高速发展,座舱域控制器(SCCU)使用越来越多,功能集成度越来越高,SCCU软件代码量越来越庞大;同时由于车型生命周期长,但座舱功能频繁迭代,包括功能增加,体验优化提升,BUG修复等等。但同时因迭代频繁,可能存在测试不充分,场景验证不足,导致软件存在BUG。这就导致需要大量的人工去现场分析复现问题,该方式过于传统,导致效率低下,且成本较高,往往会遇到用户不配合,或者错失故障发现第一手故障现象和日志,导致无法分析问题。为了解决该问题,日志上云方案可以有效解决该问题。

SCCU上运行各个应用程序,操作系统(linux/QNX/Android),仪表,中控,MCU等运行过程中产生的日志,该日志可以用用于分析故障发现前后的异常点,用于快速分析和定位问题。

日志上云是将SCCU运行过程中产生的日志,通过网络传输方式,上传到车厂的云端服务器,并存储在服务器中。当反馈SCCU发生故障时,可以通过后台获取故障时间段的日志进行问题分析。同时,也可以通过云端服务器的网页端,主动拉取某个时间段SCCU端的日志进行分析。

1.汽车SCCU日志特性分析

汽车车载通信单元(SCCU)生成的日志数据集展现了三个显著的特点,分别是实时性、多样性和海量性。实时性特征对于现代车联网和智能交通系统至关重要,它要求车载系统能够即时捕获并迅速传输日志信息至远程云端服务器进行实时处理与存储。这意味着每一刻产生的数据,无论是关于车辆运行的核心状态参数,还是由遍布全车的各类传感器捕捉到的微小变化,都需要在事件发生后极短的时间内完成上报,以便于后台系统实时监控车辆状况、预警潜在问题,甚至实时优化驾驶体验和行车安全性。

多样性则是汽车SCCU日志数据的一大特色,日志记录的内容丰富多样,涵盖了从基础的车辆行驶状态信息,例如速度、位置、油耗、胎压、电池电压等,到复杂的传感器数据,诸如环境温湿度、尾气排放指标、驾驶员行为习惯、ADAS(先进驾驶辅助系统)的工作状态等多维度数据。这种多元化极大地提升了数据分析的深度和广度,使得对车辆健康状态的评估更加立体全面。

海量性则是随着车载电子系统复杂程度和智能化水平提高而必然出现的现象。每台配备SCCU的车辆在运行过程中持续不断地产生大量数据,累积起来形成庞大的数据池。每日成千上万的车辆连续不断地向云端输送日志数据,这不仅对数据传输网络带宽和存储空间提出了高要求,同时也催生出对大数据处理和分析技术的迫切需求。为了有效利用这些数据资源,业界必须开发和应用高效的数据压缩技术、分布式计算架构以及智能分析算法,以便快速检索、整合和挖掘有价值的信息,从而实现车辆维护预测、故障预防、性能优化等多种目标。

2 总体方案

2.1 方案框图

日志上云方案如下图1所示,SCCU设备唯一ID(UUID)、车辆VIN码与日志报进行绑定上传:通过UUID进行网络连接鉴权,鉴权通过后,对该UUID上传来的日志进行保存,即云端服务器与SCCU建立连接,通过鉴权UUID或者VIN来保存日志。该方案为一个SDK软件包,该SDK安装在SCCU内,其包含如下模块:

①通讯模块:只负责通讯,包括通讯重连等;

②日志采集模块:包含对所要求的日志进行采集;

③日志管理模块:日志的分类、封装、加密等;

④日志上云处理模块:将日志管理模块处理好的日志通过通讯模块上传到云端,此模块包含断点续传、传输容错、接受云端下发控制指令等。

⑤云端服务器:将鉴权通过后,SCCU上传的日志进行存储;

⑥网页WEB:门户网站,可以查看对应VIN或UUID上传的日志;也可以通过wed对指定VIN或者UUID的SCCU进行指令下发,上传日志。


               图1 日志上云方案框图

2.2 日志定义和要求

a、日志定义:

由于系统运行过程中,会产生较多日志,但定义实施记录W(Warning)、E(Error)、F(Info)三个级别日志;

条件触发(空指针、crash)的日志记录3分钟全日志:runtime、bootreason日志主动上报、anr\墓碑日志被动抓取。

b、日志要求

①本地日志保存管理:

表1本地日志保存管理

终端

保存路径

本地存储空间

文件大小

存储天数

MPU

/resoure/report/mpu

500M

50M

15

linux

/resoure/report/linux

300M

30M

15

MCU

/resoure/report/mcu

300M

30M

15

②保存机制:

基于文件小的滚动切割策略,当文件大小超过max值时自动分割生成新文件;

当文件的生成时间与当前日志相差大于保存天数max值时自动删除。

2.3日志采集和处理

SDK对SCCU端产生的日志进行采集,处理和封装,包括日志的格式化、归类、分类等功能。

a、日志采集

日志采集模块,采集各模块产生的日志:A53,A72 kernel,A72和MCU等模块产生的日志。

b、日志管理和封装

日志管理模块对日志进行分类处理,保存到相对应的日志文件夹下;文件夹下包含所有:日志文件夹/日志类型-日志等级-日志时间.log

c、日志压缩及处理

SDK对分类好的数据进行压缩(采用高压缩率压缩方式),以减小数据传输的大小,降低带宽占用,并提升传输效率。先压缩再加密。当到达保存条件之后,对之前的数据进行删除以及格式化操作。

2.4 数据加密

SDK需具备数据加密技术,确保传输的日志数据在网络传输过程中的安全性,防止数据被窃取或篡改;

a、传输加密:采用HPPTS加密传输,客户端通过公钥单向验签,保证服务器身份合法,密钥由系统侧生成;

b、文件加密:采用静态协商密钥;

c、文件完成性校验:对原始文件进行sm3哈希,校验文件完整性,防止被篡改,文件压缩后再通过sm2对日志压缩文件进行加密。

2.5 网络通信

SDK需要支持网络通讯协议,如HTTP,HTTPs或MQTT,以便与服务器端进行数据传输和通信。

基于HTTPS短连接的方式上传日志文件,减少服务器的连接负荷。

2.6 日志主动上传

根据车辆使用状态,是否处于闲置状态,满足条件启动日志主动上传。

考虑上传日志过大情况,将日志进行分片处理,以10M大小做分片,每个切片按照SDK提供的协议进行存储,上报到云端服务器后再做反解合并,恢复日志本来的面貌。

a、SDK采用异步传输方式,以避免阻塞主线程或影响其他操作,确保SCCU端正常运行和响应速度:

①异步写入:线程无阻塞;

②聚合&压缩上传支持按超时时间、日志数、日志大小聚合数据发送;

③缓存支持缓存上限可设置,超过上限后新日志替换旧日志。

b、SDK具备错误处理和充实机制,能够处理网络异常,传输错误等情况,并进行自动重试,确保数据传输的可靠性:

①网络异常时,自动缓存日志到本地内存,监测网络正常继续发送;

②双进程保护机制,保障日志服务崩溃自启动;

③日志服务开机自启动,闲置监听,不影响系统运行使用,全程无感。

c、SDK根据配置规则对日志数据进行过滤和筛选,只传输特定类型或级别的日志数据,以减少不必要的传输和存储开销。

①自定义标识支持设置自定tag,topic;

②日月年时间过滤;

③采集上来的日志,支持查看某条日志的上下文。

2.7 WEB 端获取

通过WED端,可以查询和下载车辆对应VIN/UUID对应的SCCU的历史日志数据,用于分析;同时支持对指定VIN/UUID的SCCU实时日志下发主动上传命令,实时上传当前日志。

2.8 平台兼容性

SDK需要具备良好的平台兼容性,可以适配不同车机端操作系统和硬件平台,如andriod、linux等。

多系统层级间可同时支持日志上报,每个端可独立配置采集优先级、缓存上限、目的project/logstore、聚合参数等。

2.9 SDK大小与性能

SDK应具备较小的体积,以及算力需求尽可能低,不占用过多的资源和带宽,并对SCCU端的性能影响较小,以保证SCCU端系统的稳定性和流畅性。

3 设计实现

3.1 日志上云流程图设计

SCCU日志上云流程如图2所示。

图2 日志上云流程图

3.2 工作逻辑

a、app初始化

app(SDK)上电初始化,创建Logger对象,创建多个上报组,及创建Encryptor对象,并通过加密模块生成静态公私钥;

初始化完成后,查看存储单元中是否有上次没有完成日志上传的任务,如存在未上传完成的任务,则启动断点续传:读取未完成上报的分组,加入上报队列,任务调度完成后,请求网络传输。网络传输完成后,清楚存储单元中已上传的日志。

b、写日志

APP(SDK)日志文件生成后,存储在存储单元中,存储单元判断是否满足日志保存管理要求;如日志未超出日志大小保存要求,则实施存储;如超过日志大小保存要求,则替换旧日志,日志替换后进行存储操作。最后对已存储的日志,进行文件压缩处理。

c、上报触发

APP(SDK)触发上报任务:聚合模块通过计时器判断是否满足闲置5分钟条件;如满足条件,则加入当前上报组,然后取出当前上报组;加密模块对取出的上报组日志文件进行私钥加密,并带上客户端公钥。

上传任务判断当前是否有网络具备传输条件,如满足条件,加入上报队列,任务调度完成后,请求网络传输。网络传输完成后,清楚存储单元中已上传的日志。

d、云端主动取日志

从web端主动获取日志:当收到用户反馈SCCU故障且知晓故障确切时间点,从web端找到该车辆的VIN码,对该车辆进行操作,获取故障时间点上下3分钟的ANR/墓碑属性日志;SCCU收到该指令后,APP主动将该时间段的日志加入当前上报组,同时取出当前上报组到加密模块进行私钥加密,同时带上公钥进行上传。按照c上报触发的上传任务进行上传。

e、触发取日志

当APP满足条件RuntimeBootReason时,触发从存储单元读取故障时间点上下3分钟日志,主动将该时间段的日志加入当前上报组,同时取出当前上报组到加密模块进行私钥加密,同时带上公钥进行上传。按照c上报触发的上传任务进行上传。

f、日志上传

当有日志上传任务时,判断当前是否有网络条件支持上传任务;满足条件后,将需要上传的日志加入到上报队列,等待任务调度成功,请求网络传输成功后将数据发送到云端。上传成功后清理存储日志。

g、云端存储

4 测试方法

4.1 测试方法详述

在汽车FOTA(固件空中升级)测试阶段,摒弃了传统的线下手动升级模式,转而采用了先进的在线自动升级测试策略。这一转变旨在利用FOTA系统的远程管理能力,实现对车载软件系统的实时、高效和精准的更新验证。测试过程包含了台架模拟测试和实际车辆实地测试两个关键环节。

台架模拟测试是在实验室环境中,使用专门设计的硬件平台和仿真软件构建车辆电子控制单元(ECU)的虚拟模型,模拟真实环境下的FOTA升级过程,确保在不受现场条件限制的情况下进行全面的功能验证和性能测试。

实车测试则直接在真实的车辆平台上进行,通过FOTA系统推送升级包,验证其在实际工况下能否顺利完成整个升级流程,包括但不限于升级包的接收、安装、激活等各个环节,以及升级后的系统稳定性、功能完整性。

在整个测试阶段,FOTA系统不仅能实现远程升级,还能自动收集和统计升级过程中的各项关键数据,包括但不限于升级时长、成功率、网络连接状态等,并能详细记录每一次升级的全过程日志,便于技术人员进行全局监控和深入分析,从而大幅提升测试工作的效率和质量。

4.2 测试步骤详解

4.2.1下载升级包

当FOTA服务器端发布新的软件升级任务时,满足特定升级条件(例如网络连接稳定、电池电量充足等)的车辆将会接收到升级通知,并开始下载指定的升级包文件。这个过程需要确保数据完整无误地传输到车载FOTA模块。

4.2.2系统升级准备

下载完毕后,车载系统会对下载的升级包进行安全校验,包括解密和签名验证。解密过程是基于预先配置的安全密钥,这些密钥通常由权威的PKI(公钥基础设施)系统分发,以保证升级包来源可靠且未被篡改。

4.2.3执行升级流程

在确认升级包的有效性和安全性之后,后台的升级代理程序将接管并启动设备的实际升级过程。在此阶段,车载ECU会被暂时重新编程,原有的固件会被替换为新的版本。

4.2.4检测升级结果并上报

升级完成后,系统会自动执行一系列的自我检查和系统集成测试,以确认升级是否成功,新版本软件的各项功能是否正常运作。随后,升级结果将被汇总并通过网络回传给FOTA服务器,作为进一步分析和决策的依据。

4.2.5循环升级与版本迭代测试

为了全面检验不同版本之间的兼容性和稳定性,测试团队会针对目标版本及其相邻的几个软件版本(通常是目标版本之上和之下的各两个版本)反复进行升级和降级测试。这样做有助于发现潜在的问题,并确保在任何情况下,车辆都能够平滑过渡至任一官方认可的软件版本,从而保障用户的使用体验和车辆的安全性能。

结束语

本文介绍了一种汽车SCCU日志上云的技术方案,通过主动上传和被动上传(web端获取)方式获取车辆SCCU的日志信息,用于故障分析,提高了问题分析及时性,大大降低问题分析成本。该方案也可以用于汽车其他ECU。

参考文献

[1]王晓宁, 李明, 张宇翔, 等. "基于云计算的汽车远程监控系统设计与实现." 计算机工程与应用, vol. 57, no. 24, 2021, pp. 8973-8982.

[2]张伟, 刘洋, 王强, 等. "基于大数据的汽车智能驾驶行为分析研究." 中国安全科学学报, vol. 32, no. 1, 2022, pp. 123-130.

[3]李军红, 王晓晨, 高峰, 等. "一种面向智能网联汽车的SCCU故障诊断方法研究." 机械工程学报, vol. 58, no. 3, 2022, pp. 102-111.