一种车载硬件抽象层中基于声明式注册的多源信号处理系统和方法与流程
本发明涉及车载信号处理,特别涉及一种车载硬件抽象层中基于声明式注册的多源信号处理系统和方法。
背景技术:
1、车载硬件抽象层(vehicle hardware abstraction layer, vhal)是 androidautomotive 操作系统中连接底层车辆通信链路与上层应用框架的核心中间层。其核心职能分为双向:上行方向将 can 总线、mcu 外设采集的车速、档位、空调状态等车辆信号,抽象为标准化的vehicleproperty属性,支撑上层应用订阅与查询;下行方向将上层下发的温度调节、灯光控制等指令,转换为 can 报文、mcu 协议帧下发至车身控制器,实现车辆控制。
2、现有技术中,原生 android vehiclehal(aosp 参考实现),android 开源项目(aosp)在android.hardware.automotive.vehicle@2.0中提供了标准 vhal 接口定义与参考实现,整体为单体架构:核心层为vehiclehal抽象类,仅暴露属性列表查询、属性读取、属性写入、属性订阅、取消订阅五类基础方法;
3、调度层为vehiclehalmanager,作为 hidl 接口与vehiclehal之间的代理层,承担批量缓存、权限校验、订阅管理等逻辑,所有上行事件通过单一回调onhalevent(vehiclepropvalueptr)上报,所有下行指令通过set()方法统一入口下发。
4、该方案定位为接口参考实现,未针对量产车辆多 ecu、多属性、多数据源的工程化场景设计,存在以下核心局限:1)数据源维度:仅支持 vhal 属性层数据处理,无 can 信号、can 整帧、mcu 结构化消息等多源数据的语义区分能力;2)扩展维度:所有属性处理逻辑耦合在vehiclehal唯一实现类中,新增属性需在同一文件中叠加分支逻辑,代码耦合度高;3)路由维度:采用属性到实现类的 1:1 映射机制,无精细化路由能力,内部仅能通过分支语句手动分发;4)状态维度:事件模型仅携带属性值与时间戳,无通信超时状态字段,底层 can 信号超时后,上层无法区分有效实时值与过期兜底值;5)下行维度:set()方法仅返回执行状态码,不支持延迟发送、多信号原子下发,也不支持 mcu 直通字节通道;6)协作维度:所有功能迭代均需修改同一核心文件,多人并行开发极易产生代码合并冲突。
5、现有技术中的硬编码分支扩展方案:行业内基于原生 vehiclehal 做功能扩展时,普遍采用硬编码实现方式:在onhalevent()回调中编写大量 switch-case/if-else分支,按属性 id 逐一匹配处理逻辑。随着功能模块迭代,核心处理函数代码体量持续膨胀,耦合度急剧升高,可维护性大幅下降;新增功能模块必须修改核心分发逻辑,多人员并行开发时冲突频发,协作效率低;下行属性设置无统一路由机制,各模块独立实现下行通道,架构碎片化严重。
6、现有技术中的单一can信号回调方案,该方案仅支持can总线解析后的单信号回调模式,每一个独立信号发生数值变化时,触发一次业务处理回调。但不支持整帧快照处理,同一can 帧内存在逻辑关联的多个信号,无法保证在同一时间切片内被同步处理,数据一致性不足;不支持多协议通道,无法适配mcu 通过spi、以太网等通道传输的protobuf 结构化消息等非can数据源;无统一超时状态传递机制,上层业务无法区分实时上报值与链路超时后的默认值,存在数据误用风险。
7、现有技术中的静态配置文件映射方案,该方案通过 json、xml 等静态配置文件定义车辆信号到属性的映射规则,由通用解析引擎根据配置自动完成数据转换。但表达能力有限,无法承载复杂状态机、延迟复位等业务逻辑;不支持跨数据源融合,同一属性无法适配多路不同来源的输入;无法实现动态超时判定、变化检测过滤等高级数据处理逻辑。
技术实现思路
1、针对现有技术中存在的不足,本发明提供了一种车载硬件抽象层中基于声明式注册的多源信号处理系统和方法,定义统一的属性处理器标准接口,通过声明式虚函数使各业务处理单元自主声明关注的数据源范围与负责处理的车辆属性;由属性桥接模块在初始化阶段自动构建单信号、整帧、消息键、属性四维哈希路由表,运行期基于路由表实现多源事件的 0 (1) 精准分发;同时配套四类标准化回调覆盖单信号变化、整帧快照、结构化消息、属性设置全场景,实现通信状态全链路透传、双通道下行统一调度、注册期一致性校验,在保证多源异构数据统一处理的同时,实现业务模块与框架层的完全解耦。
2、本发明的目的一方面是这样实现的:一种车载硬件抽象层中基于声明式注册的多源信号处理系统,包括通信适配模块、报文解析管理模块、事件分发模块、属性桥接模块、业务处理模块、属性上报模块和下行发送模块;
3、所述通信适配模块用于接收来自底层通信链路的原始数据并输出上行数据,以及接收下行发送指令并转换为对应链路的物理帧格式后下发;
4、所述报文解析管理模块用于基于通信矩阵配置生成报文解析规则,对原始can报文执行信号解析、数值换算及超时检测,并向下行方向提供信号组帧封装;
5、所述事件分发模块用于将多源解析结果封装为标准化事件结构体,通过异步队列或等效调度机制实现异步分发;
6、所述属性桥接模块用于业务处理单元的声明式注册管理、四维路由表构建与校验、运行期事件的分发,统筹全系统上下行数据流转;
7、所述业务处理模块用于承载具体业务逻辑,完成信号到车辆属性的转换、状态机维护、超时联动判定、下行指令拆解;所述业务处理模块由多个独立的业务处理单元组成,每个业务处理单元均实现统一的属性处理标准接口,该接口定义了多类声明式函数与业务回调函数;
8、所述属性上报模块用于将车辆属性结果转换为上层系统标准属性格式后统一上报;
9、所述下行发送模块用于统一调度多类型下行发送请求,支持 can 信号与结构化字节双通道下发,满足复杂控制场景的时序要求。
10、进一步的,所述通信适配模块包括链路适配单元、上行数据分发单元、下行数据封装单元;
11、所述链路适配单元用于持续接收来自底层链路的原始数据,实时识别数据类型;
12、所述上行数据分发单元用将原始 can 字节报文转发至报文解析管理模块进行信号解析;将 mcu 结构化消息封装为统一消息格式后送入事件分发模块;
13、所述下行数据封装单元用于接收下行发送模块输出的发送指令,转换为对应链路的物理帧格式后下发至底层控制器;
14、所述通信适配模块通过硬件驱动接口与底层通信通道进行对接作为底层输入端;底层输出端通过硬件驱动接口与底层车身控制器相连接;所述通信适配模块的上行输出端与报文解析管理模块和事件分发模块相连接;所述通信适配模块的下行输入端与下行发送模块。
15、进一步的,所述报文解析管理模块包括解析表生成单元、报文解析单元、信号封装单元、超时检测单元;
16、所述解析表生成单元用于在初始化阶段读取 dbc 等格式的通信矩阵配置,自动生成报文解析表与信号参数表;
17、所述报文解析单元用于在运行阶段对输入的原始 can 报文执行位解析与数值换算,输出各信号的实际物理值;
18、所述超时检测单元用于在运行阶段基于报文周期与接收时间戳,判定信号的正常、超时、超时恢复三类通信状态;并将所述通信状态标识注入单信号事件及整帧快照事件的状态字段;
19、所述信号封装单元用于接收信号发送请求,按照解析表规则完成信号组帧与编码,生成可下发的原始 can 报文。
20、所述报文解析管理模块的上行输入端与通信适配模块相连接,上行输出端与事件分发模块相连接;下行输入端与下行发送模块相连接,下行输出端回连至通信适配模块。
21、进一步的,所述事件分发模块位于报文解析管理模块与属性桥接模块之间,包括事件封装单元和异步队列调度单元;
22、所述事件封装单元用于接收上游输入的单信号变化、整帧快照、结构化消息三类数据,统一封装为携带数据标识、数值/载荷、通信状态、时间戳的标准化事件结构体;
23、所述异步队列调度单元用于根据数据来源和处理实时性,将不同来源事件送入一个或多个异步队列,并由事件分发线程或消息处理线程按序调度至属性桥接模块,从而隔离 can 报文解析与结构化消息处理;
24、所述事件分发模块的输入端分别对接报文解析管理模块、通信适配模块,输出端连接属性桥接模块。
25、进一步的,所述属性桥接模块包括注册管理单元、路由表存储单元及事件分发单元;
26、所述注册管理单元用于在初始化阶段接收业务处理单元的声明式注册信息并执行一致性校验;
27、所述路由表存储单元用于构建单信号路由表、整帧路由表、消息路由表及属性路由表;
28、所述事件分发单元用于在运行期根据事件类型匹配对应路由表并将事件分发至目标业务处理单元;
29、所述属性桥接模块的上行输入端与事件分发模块相连接,上行输出端分别与业务处理模块和属性上报模块相连接;所述属性桥接模块的下行输入端与上层车辆系统相连接,下行输出端与下行发送模块相连接。
30、进一步的,所述属性上报模块包括格式转换单元和统一上报单元;
31、所述格式转换单元用于接收属性桥接模块传入的内部属性结果,将内部数值格式、状态枚举转换为上层系统兼容的标准车辆属性接口格式;
32、所述统一上报单元通过同一出口触发上层属性变化通知;
33、所述属性上报模块的输入端与属性桥接模块相连接,输出端与上层车辆系统框架相连接。
34、进一步的,所述下行发送模块包括请求分类单元、多通道调度单元及时序控制单元;
35、所述请求分类单元用于区分can信号发送请求与结构化字节发送请求;
36、所述多通道调度单元用于将 can 信号请求转发至报文解析管理模块完成组帧后下发,将结构化字节请求直接通过通信适配模块下发至对应物理链路;
37、所述时序控制单元用于执行延迟发送、待执行指令取消及顺序发送中的至少一种调度行为;
38、所述下行发送模块的输入端对接属性桥接模块,输出端分别连接报文解析管理模块与通信适配模块。
39、本发明的目的另一方面是这样实现的:一种车载硬件抽象层中基于声明式注册的多源信号处理方法,包括以下步骤:
40、s1)初始化注册阶段:各业务处理单元通过属性处理标准接口向属性桥接模块提交声明式注册信息,所述声明式注册信息包括关注的单信号标识集合、整帧订阅配置、结构化消息键集合以及负责处理的车辆属性标识集合;所述属性桥接模块对所述声明式注册信息进行一致性校验,校验通过后自动构建单信号路由表、整帧路由表、消息路由表及属性路由表,并在系统启动前锁定注册入口;
41、s2)上行数据处理阶段:通信适配模块接收来自底层通信链路的原始数据,将原始can报文发送至报文解析管理模块,将mcu结构化消息发送至事件分发模块;
42、报文解析管理模块基于通信矩阵配置生成的解析规则,对原始can报文执行位解析与数值换算,并基于报文周期与接收时间戳判定各信号的通信状态,将通信状态注入对应的单信号事件或整帧快照事件的状态字段;
43、事件分发模块将单信号事件、整帧快照事件及结构化消息事件封装为标准化事件结构体,并在分发过程中完整保留所述状态字段,分发至所述属性桥接模块;
44、属性桥接模块根据事件类型匹配对应路由表,将携带状态字段的事件以0(1)时间复杂度分发至目标业务处理单元;
45、业务处理单元基于标准化事件结构体中的数据载荷执行信号到属性的转换、多信号聚合或结构化消息解析,并根据具体属性语义将所述通信状态转换为可用、不可用或错误属性状态,生成车辆属性结果,通过统一属性上报出口上报至上层车辆系统;
46、s3)下行数据处理阶段:属性桥接模块接收上层车辆系统的属性设置请求,通过属性路由表定位目标业务处理单元,触发属性设置回调;所述业务处理单元将属性设置请求拆解为一条或多条底层发送请求,所述底层发送请求包括can信号发送请求或结构化字节发送请求;下行发送模块对底层发送请求进行分类调度,通过对应物理链路完成下行指令下发。
47、进一步的,步骤s2)中所述整帧快照事件至少包含同一报文内多个信号的解析值、通信状态、值变化状态、状态变化状态、事件触发标记及时间戳信息;所述业务处理单元在单次回调中同步读取帧内多个信号,并基于时间戳及通信状态进行联合有效性判定。
48、进一步的,步骤s2)中所述业务处理单元内部内置有变更检测守卫机制,具体包括:对于由多个信号组合形成的聚合属性,业务处理单元维护上一轮上报的关键字段值与属性状态缓存;当新的整帧事件到达时,依次比较当前字段值与缓存值、当前通信状态与缓存状态;仅在字段值发生有效变化或通信状态发生切换时,才生成新的车辆属性结果并上报。与现有技术相比,本发明的有益效果在于:本发明通过声明式注册方式建立业务分发关系;业务处理单元声明其关注的单信号、整帧报文、结构化消息键和车辆属性集合,属性桥接模块在初始化阶段据此建立多类路由表。运行期事件到达后,系统直接按路由表找到对应业务处理单元,减少在核心流程中反复追加人工分支的需要。
49、本发明把多种输入来源统一为业务事件,包括单信号事件、整帧快照事件、结构化消息事件和车辆属性设置事件。不同来源经过统一桥接后进入同一类业务处理单元,再通过统一属性上报出口进入上层车辆系统。这样可以减少多套转换流程并存造成的状态不一致问题。本发明支持整帧快照级处理,整帧快照至少包含同一报文内多个信号的解析值、通信状态、值变化状态、状态变化状态、事件触发标记和时间戳等信息;在可选实施方式中,还可进一步携带原始字节或位长等辅助信息。业务处理单元可以基于同一时间点的帧内数据作出联合判断,特别适用于远程泊车、遥控服务、状态聚合等依赖多字段组合的场景。
50、本发明将通信状态随事件传递给业务处理单元,而不是在核心层对所有属性采用同一种固定转换。业务处理单元可根据属性语义,将超时、恢复、计数器异常等情况转换成对应的车辆属性状态。因此,本方案既能保留核心框架的通用性,也能满足不同属性对异常状态的差异化处理需求。
51、本发明支持属性下行请求转换为多种底层发送形式。对于按 can 信号发送的场景,一个上层属性可以被转换成一个或多个底层信号发送请求,并可表达立即发送、延迟发送、批量发送、替换挂起请求和发送顺序依赖等行为;对于结构化消息或原始字节直通场景,也可通过字节发送通道完成下行。
52、本发明在启动前完成核心对象创建、报文解析表注册、业务处理单元注册、上行上报通道连接、下行发送通道连接和可选通信链路回调连接;启动后锁定注册入口和关键回调入口。该方式使运行期分发关系保持稳定,降低运行中修改分发关系造成的不确定性。
53、本发明的报文解析基础由通信矩阵配置自动生成,报文标识、信号位置、信号长度、字节序、缩放系数、周期、超时和收发方向等信息来自统一配置,并在初始化时注册到解析管理模块。该方式减少人工手写位解析、长度换算和信号参数时可能产生的错误。
54、本发明将解析线程、事件分发线程和结构化消息处理线程分离;原始报文接收后先进入解析管理模块,解析完成后由事件分发机制通知业务处理单元;结构化消息进入独立消息处理流程后再按消息键分发。该方式减少耗时业务处理对底层接收解析流程的影响。
55、本发明将车辆属性配置声明与业务处理逻辑分层;属性配置层集中表达属性的访问方向、变化模式和初始值,业务处理层集中表达信号与属性之间的转换关系。
56、本发明支持单信号到属性的集中映射;对于空调功率、空调状态、电池预加热功率、转向角、续航里程、soc、低电量提醒、驾驶辅助提示等可由单个信号表达的属性,业务处理单元可在收到单信号事件后执行单位换算、状态设置和属性封装,再通过统一上报出口上报。该方式减少同类映射在多个位置重复实现。
57、本发明支持整帧多信号聚合为结构化属性;对于 road load、power efficiency、电池类型、电池信息、soc 系数、电池温度估算、adas 对象与车道信息等业务,同一帧内多个信号可在一次整帧事件中被读取、换算、检查并组装为一个或多个上层属性。该方式使上层收到的是更接近业务语义的属性,而不是零散的底层信号。
58、本发明使 timeout 状态参与属性状态生成;单信号事件和整帧快照均可携带通信状态,业务处理单元在生成属性时可以把非正常通信状态转换为错误状态,或者根据属性语义选择其他处理策略。这样既保留底层通信异常信息,又避免核心层对所有属性采用单一固定状态规则。
59、本发明可对需要聚合的帧级属性维护旧值和旧状态,当整帧事件到达后,业务处理单元不仅比较数值是否变化,还比较通信状态是否变化;在值和状态均未变化时,可不产生新的属性上报,在状态变化时即使数值不变也可上报。该方式有利于减少重复属性通知,同时保证异常恢复等状态变化能够被上层感知。
60、本发明支持一个上层属性转换为多条底层发送请求;对于电池热管理、驾驶模式设置、软件开关设置等业务,上层属性可能包含多个字段或一个业务命令,业务处理单元可将其拆分为多个底层信号发送请求,并按需要附带有效位、延迟复位或顺序发送要求。该方式使下行转换规则集中在属性所属业务域中,减少发送路径重复封装。
61、本发明已在多个业务形态中体现适用性:直连线状态消息可被解析为多个基础车辆属性;远程泊车整帧报文可基于请求位、显示标识、循环计数和校验字段进行联合判断;能耗、电池和驾驶辅助类业务可将单信号或整帧多信号转换为高层语义属性;驾驶模式和软件开关类业务可同时处理状态上报和设置下发。上述形态说明本方案并非只适用于单一属性或单一报文,而是适用于多源、多属性、多业务域的车载信号处理。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com