随着车联网与5G技术的融合以及车辆智能化的发展,车联网的数据采集需求呈现爆发式增长。

传统的车辆数据采集主要用于车辆的远程监测和故障诊断。随着车辆应用的丰富和智能化水平的提高,车辆数据采集逐渐应用到更多的场景,如研发用数据采集、数据统计和分析、规则引擎与报警系统、车辆实时控制等。

为什么需要灵活数采

为什么需要灵活数采

现有的数据采集方案往往通过车载数据采集终端(T-BOX)固件中的采集功能或自行编写的采集程序进行车辆数据采集。通常采集程序所采集到的车身信息是固定且直接固化在车载终端上的。在智能车联网时代之前,采集的数据种类少、全量采集压力不大,这种做法是可行的。

随着车联网技术的发展,车辆整车网络构成也越来越复杂,可采集的车身信息多样化,全量采集数据量过大而且浪费宝贵的带宽资源,因此需要根据TSP应用的需求按需进行采集。此外,不同车型的汽车通常会有不同的数据,例如CAN总线的数据在不同车型上会有不同的DBC文件*。固定采集程序很难升级,必须重新编写,并OTA升级采集程序。

总的来讲,固定采集程序存在以下问题:

  • 采集的数据固定,无法灵活变更采集的项目。实际上随着车联网的发展,数据采集项目将根据应用呈现更多变化,固定的采集方式无法满足经常变动的真实需求。
  • 采集信息解析配置固定,无法匹配新的车型或总线数据变化。例如,采集CAN总线数据的采集程序,无法变更DBC文件以匹配总线数据的变化。
  • 扩展不易,新的传感器或总线协议需要重新开发。

因此,业界迫切需要一种灵活的、支持弱网情况的数据采集方案。

*注:DBC(Data Base CAN)文件是由德国Victor公司发布的,它被用来描述单一CAN网络中各逻辑节点信息,依据该文件可以开发出监视和分析CAN网络中所有逻辑节点的运行状态。

如何实现灵活数采

如何实现灵活数采

针对固定数采程序缺陷,我们需要一个灵活数据采集引擎,并具备以下能力:

  • 灵活数据埋点配置和规则,并可热更新和热启停数据采集规则。
  • 多数据源对接和解析能力,例如CAN总线、HTTP信号等。
  • 灵活配置数据源解析的能力。以CAN总线为例,应当支持DBC文件的灵活加载和更新。
  • 采集数据灵活分发的能力。可根据业务创建规则,将一部分数据本地保存,一部分数据回传云端。
  • 弱网工况下,采集数据高效回传的能力。
  • 足够轻量高效,从而可以运行在多种车型,包括车机资源受限的车型上。

基于大量的车联网用户案例和经验,EMQ推出了基于eKuiper与EMQX的车云系统方案,实现了一套易部署可移植的车联网灵活数采方案。方案架构如下图所示。

在该方案中,我们采用开源边缘流式处理引擎eKuiper实现车载终端上的灵活数据采集功能,采用大规模分布式物联网MQTT消息服务器EMQX实现采集数据的连接、移动和处理以及车云一体的控制指令交互。在之前的车联网文章中,我们已经详细介绍了基于EMQX的车联网消息平台的架构设计,本文不再赘述。接下来,本文将以eKuiper为例,介绍如何实现车联网灵活数采。

灵活数采方案剖析

灵活数采方案剖析

LF Edgee Kuiper(简称eKuiper)是开源的超轻量数据分析和流式计算引擎。eKuiper兼容性强,可适配X86和ARM等多种CPU架构的车机终端。软件较轻量且可裁剪,核心包和初始运行内存在10MB级别,支持高吞吐低时延的各种数据处理和计算。在方案中,以部署于车机端的eKuiper为核心,可以实现近实时的灵活数据采集和处理转发等功能。

eKuiper具备了数据流的接入、处理和流转能力。南向部分,eKuiper支持接入各种协议的数据流,例如CAN总线、MQTT协议、Socket(TCP或UDP)和DDS等。接入的数据可以在引擎内部根据用户定义的规则,进行数据的采集、转换、过滤和分析等数据处理工作,之后再将采集或处理的结果发送到各种北向的目的地中,例如存到本地的文件、数据库中以便后续车载应用使用;或是通过HTTP/MQTT等协议发送到云端或TSP应用端进行处理。

在灵活数采的场景中,假设eKuiper已部署到车机中,要完成一个数采任务,一般只需要两个步骤:

  1. 接入数据流
  2. 建立采集规则

在eKuiper中,这两个步骤无需编写代码,可使用SQL语句或者可视化Flow编辑器进行配置。

数据流接入

CAN(Controller Area Network)是最常见的车联网总线网络。本文以接入和解析CAN数据为例,介绍eKuiper如何实现车载数据流的接入。

在eKuiper中提供了CAN数据源,其中主要实现了两个能力:

  1. 连接协议
  2. 根据DBC解码CAN报文

连接协议支持

若eKuiper可以直接连接CAN总线,则可通过CAN协议建立到车载总线的连接,获取总线数据。出于安全的原因,eKuiper也经常被部署到与总线隔离的硬件上。例如,eKuiper部署在MPU中;而在MCU中部署CAN总线连接应用,通过TCP、UDP或者MQTT协议等,将报文透传出来。eKuiper同样支持通过这些协议进行连接,获取总线数据报文。

接入扩展

随着汽车智能化程度的提高,车载的传感器和数据总线的数量和种类越来越多。eKuiper提供了扩展机制,用户可以编写插件实现新的协议或私有协议的接入和解析。安装后的插件遵循使用逻辑,应用开发人员可以与使用原有的数据流类型相同的方法创建数据流。

车云一体规则管理

规则构思完成后,需要进行动态下发和管理。EMQ提供了车云一体的规则管理控制台,用户可以在里面进行规则的编写、下发和状态管理。管理控制台可以在云端集中管理多个车机边缘节点。

规则编写

管理控制台上提供了规则编写的图形界面。如下图所示,用户可以在界面上填入规则的ID、SQL和动作等。提交后,规则即可下发到对应车机节点。

我们也将提供规则编写的可视化Flow编辑器界面。用户可采用拖拽的方式编写自己的业务规则。

规则管理

eKuiper中的规则都是可灵活管理的。规则可以热添加、热更新和热启停。在管理控制台中,用户可以查看规则的运行状态,进行规则的修改、启停、删除等操作。

云端集中管理

  • 通过云端可集中管理在车辆边缘端上的数据分析应用。
  • 大规模在线车辆支持:基于EMQX Enterprise,百万级别在线车辆支持
  • 车辆在线自动更新应用:支持离线车辆应用更新、升级;车辆在线后自动更新应用,并报告状态
  • 车辆离线后状态查询支持:车辆离线状态下可获取应用部署的最后状态
  • HTTP Rest API服务接口支持:同步HTTP接口,接入前端应用(web&mobile)
更多可能

更多可能

eKuiper作为一个通用的流式计算引擎,除了实现数据采集之外,还可以实现很多边缘计算功能,充分利用车载终端算力。例如,eKuiper可支持下列功能:

  • 数据变换和格式化,例如将传输信号由整型转换回浮点型,或者将信号格式化为目标系统要求的格式。
  • 数据分析,例如计算一段时间内的平均值等统计值。
  • SOA服务调用,实现场景联动,例如根据车内温度自动开关空调。
  • AI/ML算法集成,例如根据采集到的信号识别用户的充电意图等。

更多功能欢迎读者们自行探索。

总结

总结

车联网软硬件技术大发展的浪潮下,传统的固定数据采集方案难以应对层出不穷的采集需求。通过本文介绍的基于eKuiper与EMQX的车云系统方案,可实现端到端的灵活数据采集需求。eKuiper采用基于文本型业务处理应用下发,避免复杂OTA升级,帮助车联网企业实现灵活的数据采集以及高效的车云数据协同。