一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向服务的汽车域控制器数据转发系统及方法与流程

2022-11-30 10:45:25 来源:中国专利 TAG:
1.本发明属于汽车电子软件领域,尤其涉及一种面向服务的汽车域控制器数据转发系统及方法。
背景技术
::2.随着互联网在汽车领域的快速发展,汽车产品在提供更丰富的高级自动驾驶/辅助驾驶功能的同时,更趋向提升用户体验,例如,快速的功能更新升级,提供个性化、人性化、差异化的功能与服务等。功能越多则需要更多的传感器(sensor)、执行器(actuator)及电子电气控制单元ecu来实现,而数量庞大的传感器(sensor)、执行器(actuator)以及电子电气控制单元ecu的接入,使得汽车电子电气架构ee变得非常复杂和臃肿,而且大量的功能需要多个电子电气控制单元ecu之间的协调工作来实现,使得当前“domain”架构下电子电气控制单元ecu之间基于信号点对点通讯(signal-oriented)将会变得异常复杂,且不具备灵活性和扩展性,微小的功能改动都会引起整车通讯矩阵的改动;而且“domain”架构是基于传统can、lin等媒介进行点对点通讯(signal-oriented),使得本来就有限的网络带宽变得不堪重负,同时也迫使汽车电子软件的开发工作不得不偏移到如何在有限的网络带宽下提高数据传输效率以及解决数据延迟等问题,同时使得汽车电子软件逻辑复杂、开发难度大、不便移植和维护。可见,当前面向信号的传统软件架构方法已经不适合生产发展需要。3.近几年,为了解决“domain”架构的种种弊端,引入了新一代汽车电子电气架构“zonal”,“zonal”架构以车载以太网为骨干串联数个ecu在局部区域中形成一个或几个百兆局域网,再加上对tsn的支持,困扰汽车电子软件的通讯带宽问题和数据延迟问题迎刃而解,从而为可以实现面向服务的软件架构方法(soa)提供了硬件保证。4.但同时也引入了采用“domain”架构下电子电气控制单元ecu之间基于信号点对点通讯(signal-oriented)的汽车开放系统架构(autosar)堆栈和应用程序等软件生态系统不兼容“zonal”架构下面向服务的软件架构方法(soa)的问题,于是解决软件通讯兼容问题是“zonal”架构下绕不开的技术痛点。5.本发明针新一代汽车电子电气架构“zonal”,设计一种面向服务的汽车域控制器数据转发系统及方法,来解决面向服务的软件架构方法(soa)和末端传感器(sensor)、执行器(actuator)、ecu等之间点对点通讯(signal-oriented)的兼容问题。技术实现要素:6.为解决现有技术中存在的不足,本发明的目的在于,提供一种面向服务的汽车域控制器数据转发系统及方法。7.为实现本发明的目的,本发明所采用的技术方案是:8.一种面向服务的汽车域控制器数据转发系统,通过域控制器实现中央控制域和末端之间的通信;域控制器上设置包括apps应用层、数据转发模块、数据转换模块、数据更新模块、vss-table数据表、dbc-table数据表、数据存储模块、数据同步模块;9.域控制器向中央控制域订阅面向服务的ddstopic,apps应用层用户程序创建任务,在任务中根据ddstopic的配置文件创建ddssub,ddssub接收中央控制域发来的数据并解析出有效的vss数据,传递给数据转换模块和数据更新模块;数据更新模块收到vss数据后,根据数据来源更新vss-table数据表中的对应项并把相应的数据项状态更改为updating,同时触发一个事件通知数据存储模块vss-table有数据更新;数据转换模块接收到vss数据后,执行查表快速匹配的方法进行vss到dbc的数据转换;数据转发模块根据路由表配置信息选择合适的通道把dbc数据转发给指定的末端;10.同时,域控制器数据转发模块实时监控末端总线上的数据,当有数据需要接收时,触发硬实时中断,在中断服务程序中读取dbc数据;然后数据转换模块执行查表快速匹配的方法把dbc数据转换成vss数据,传递给数据更新模块;数据更新模块收到vss数据后,根据数据来源更新vss-table数据表中的对应项并把相应的项数据状态更改为normal,同时触发一个事件通知数据存储模块vss-table有数据更新;数据同步模块周期性的从vss-table中读取数据并打包成符合ddstopic定义的数据格式,通过ddspub把数据同步给中央控制域。11.进一步地,数据存储模块的数据保存方法包括全量保存和差分保存;系统上电或重启时,域控制器读取数据存储模块中的数据初始化本地vss-table,并在中央控制域启动完成后把vss-table同步给中央控制域。12.进一步地,域控制器向中央控制域订阅面向服务的ddstopic,并构造一个事件对象来通知侦听器订阅的ddstopic是否接收到中央控制域发来的数据。13.进一步地,数据转换模块进行vss到dbc的数据转换,转化完成后把dbc数据放入que_v2d队列,数据转发模块周期性的监测que_v2d队列的状态,如果不为空,表示有新的dbc数据需要转发,则执行转发程序;首先从队列中取出dbc数据,然后根据路由表配置信息选择合适的通道把dbc数据转发给指定的末端,转发成功后回头继续从队列取数、继续转发,直到队列que_v2d为空。14.进一步地,在中断服务程序中读取dbc数据时,把数据放入与之相对应的数据输入队列queiq中,数据转化模块被事件触发唤醒后,从数据输入队列queiq中读取数据,执行查表快速匹配的方法进行dbc到vss的数据转换。15.一种面向服务的汽车域控制器数据转发方法,基于所述的系统,通过域控制器实现中央控制域和末端之间的数据转发,包括将面向服务的中央控制域vss数据转发为dbc数据并转发给末端,以及将末端的dbc数据转换为面向服务的vss数据并转发给中央控制域。16.进一步地,vss数据转化为dbc数据的过程,包括以下模块:参数配置表、v2d数据转发模块、报文解析模块、v2d数据转换模块、v2d数据更新模块、vss-table数据表、数据存储模块;17.域控制器的apps应用层用户程序创建任务,在任务中根据ddstopic的配置文件创建ddssub,当订阅的ddstopic接收到报文数据后,启动报文解析模块从中解析出有效的vss数据;并传递给v2d数据转换模块和v2d数据更新模块;18.v2d数据更新模块收到数据后,判别数据的来源并做有效性校验,根据数据来源更新vss-table数据表中的对应项,并且把此数据项状态更新为updating;同时触发一个事件通知数据存储模块vss-table有数据更新;19.v2d数据转换模块接受到vss数据后,执行查表dbc-table快速匹配的方法进行vss到dbc的数据转换;v2d数据转发模块根据路由表配置信息选择合适的通道把dbc数据转发给指定的末端。20.进一步地,参数配置表定义vss-table中信号以及vss-table和dbc-table的对应关系、配置ddstopic参数、非易失性存储器逻辑扇区划分、数据存储方式;同时对软件模块中的参数进行缺省定义。21.进一步地,dbc数据转化为vss数据的过程,包括以下模块:d2v数据转发模块、d2v数据转换模块、d2v数据更新模块、dbc-table数据表、数据存储模块、数据同步模块、报文解析模块;22.d2v数据转发模块实时监测末端总线上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务程序中读取dbc数据;d2v数据转化模块被事件触发唤醒后,执行查表dbc-table)快速匹配的方法进行dbc数据到vss数据的转换,转换完成后把vss数据传递给d2v数据更新模块;23.d2v数据更新模块收到vss数据后,判别数据的来源并做有效性校验,根据数据来源更新vss-table数据表中的对应项,并把相应的数据项状态更改为normal;同时并触发一个事件通知数据存储模块vss-table有数据更新;24.数据同步模块周期性的从vss-table中读取数据并由报文解析模块把vss数据打包成符合ddstopic定义的报文格式,通过数据转发模块中的ddspub把数据同步给中央控制域。25.进一步地,报文格式包括报头和数据;报头包括magic、seqno.、packsum和number;数据包括name、data、type、unit、status。26.本发明的有益效果在于,与现有技术相比,本发明可以解决新一代“zonal”架构下面向服务的软件架构方法(soa)和常规末端传感器(sensor)、执行器(actuator)、ecu等汽车开放系统架构堆栈和应用程序等软件生态系统的兼容问题。27.本发明可根据产品需求和使用场景,通过软件配置参数、vss-table数据表和路由表的方式部署不同的数据转发规则,28.本发明既解决了新技术与已有成熟软件生态系统不兼容的技术痛点,又在生产实践中提高了工作效率。附图说明29.图1是本发明所述的面向服务的汽车域控制器数据转发系统示意图;30.图2是本发明所述的面向服务的汽车域控制器数据转发方法示意图;31.图3是报文格式示意图。具体实施方式32.下面结合附图和实施例对本发明的技术方案作进一步的说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本技术的保护范围。33.本发明主要是设计一种面向服务的汽车域控制器数据转发系统及方法,来解决面向服务的软件架构方法(soa)和末端传感器(sensor)、执行器(actuator)、ecu等之间点对点通讯(signal-oriented)兼容问题。34.本发明所述的面向服务的数据转发系统设置于域控制器zcu,在“zonal”架构中连接汽车末端传感器、执行器和中央控制域(ccu)之间的桥梁,这样可以分离ccu和汽车末端传感器、执行器的直接联系,使得ccu侧的软件只需专心业务层面的逻辑实现,至于数据转换、数据分发及控制等交由本发明所述的域控制器zcu来实现,这样可以最大限度的兼容“domain”架构下基于点对点通讯(signal-oriented)的ecu、sensor和actuator等设备及软件。35.本发明包括两种数据转发方法:面向服务的vss(vehicleservicesignal)数据转dbc(databasecan)数据,以及dbc转vss。为了描述方便,本发明中的dbc数据泛指适配常规汽车电子电器架构中的ecu、sensor、actuator等can报文数据库,但本发明数据转发方法不只适用于can,也可以是lin及其它等。36.如图1所示,本发明所述的面向服务的汽车域控制器数据转发系统,包括数据转发模块、数据转换模块、vss-table数据表、dbc-table数据表、数据存储模块、数据同步模块、apps应用层和操作系统等。其中,操作系统分为大型操作系统linux/qnx和微型嵌入式实时操作系统rtos,在本实施例中ccu侧运行的是linux/qnx,在zcu侧运行的是autosar。37.域控制器zcu向中央控制域ccu订阅面向服务的ddstopic,域控制器zcu的ddssub接受到来自ccu的ddstopic后解析出真实有效的vss数据,同步更新本地vss-table数据表并且把此数据项状态更新为updating,表示此项数据正在更新中,尚未完成更新(更通俗的讲就是ccu发给末端sensor、actuator或ecu的指令是否已执行结束尚未可知)。与此同时把vss数据转化成对应的dbc数据,然后经预先配置的路由表信息把dbc转发给末端sensor、actuator或ecu等,dbc转发完成后zcu等待末端sensor、actuator或ecu等的反馈信息,至此,vss到dbc的数据转换过程完成。38.域控制器zcu实时监测跟末端sensor、actuator或ecu等相连的can/lin总线上的数据变化情况,当有数据需要接收时,触发硬实时中断,在中断服务程序中读取dbc数据,然后把dbc数据转换成vss数据,同步更新本地vss-table数据表并且把此数据项状态更新为normal,表示此项数据已完成更新(更通俗的讲就是ccu发给末端sensor、actuator或ecu的指令已执行结束并且返回了执行结果及状态)。zcu中的数据同步模块周期性的从vss-table中读取数据并打包成符合ddstopic定义的数据格式,然后通过ddspub把数据同步给ccu,至此则完成dbc转vss。39.zcu和ccu之间通过ddspub的数据传输方式实时的同步着同一个vss-table,始终保持着数据及状态的一致性,这在汽车控制领域至关重要。另外,为了达到本地数据持久化,在zcu侧还有数据存储模块实时监测着vss-table的变化,一旦有数据变化,会把vss-table保存到非易失性存储器中,数据存储模块有数据全量保存和差分保存两种方法,具体使用哪种由配置文件决定。在系统上电或重启时,zcu会读取非易失性存储器中的数据初始化本地vss-table,并在ccu启动完成后把vss-table同步给ccu。40.本发明可根据产品需求和使用场景,通过软件配置参数、vss-table数据表和路由表的方式部署不同的数据转发规则。41.如图2所示,本发明所述的数据转发方法有两种:vss转dbc以及dbc转vss。42.其中,vss转dbc的核心算法及步骤如下:header(报头)和vssmsgstruct(数据)。57.报头header由四部分组成:magic(4byte)、seqno.(2byte)、packsum(2byte)和number(2byte)。具体的,magic表示魔法字,如0x5953585a表示ddsmessage中的数据为vss数据,起数据类型识别和特征识别的作用。packsum为ddsmessage的总包数,在有些应用场景中,发送的数据量比较大,需要分包多次发送。seqno.为报文的序列号,从0开始标记,这个字段的作用:一是为了区分相邻几个报文的顺序,尤其是报文内容有严格的顺序要求时避免数据错位或者漏掉报文;二是配合packsum对ddsmessage包进行拆包和组包的算法需要。number标识本次数据包中有多少条vssstruct数据。本实施例中为了减少拆包和组包的算法复杂度,不允许一条vssstruct数据跨包分两次发送。但本发明也可以实现一条vssstruct数据跨包分两次或多次发送。58.数据vssstruct包括name(名字)、data(信号值)、type(信号类型)、unit(信号单位)、status(vss的状态),其中status有updating和normal两种状态,updating表示数据正在更新,尚未完成;normal表示数据更新完成。59.报文解析模块解析出vss数据后传递给v2d(vsstodbc)数据转换模块和v2d数据更新模块,数据更新模块收到数据后,判别数据的来源并做有效性校验,根据数据来源更新vss-table数据表中的对应项,并且把此数据项状态更新为updating,表示此项数据正在更新中,尚未完成更新。更通俗的讲就是ccu发给末端sensor、actuator或ecu的指令是否已执行结束尚未可知。同时触发一个事件通知数据存储模块vss-table有数据更新。60.v2d数据转换模块接受到vss数据后,执行查表(dbc-table)快速匹配的方法进行vss到dbc的数据转换,转化完成后把dbc数据放入que_v2d队列,至此完成本次数据转换工作。在此特别说明的是,本发明执行查表快速匹配的方法进行数据转换是为了提高软件执行效率和弱化算法复杂度,另外对于不同的车型和应用场景只要更换vss-table和dbc-table就可以快速移植,但这并不代表本专利不能使用其它算法进行数据转换工作。61.v2d数据转发模块周期性的监测que_v2d队列的状态,如果不为空,表示有新的dbc数据需要转发,则执行转发程序;首先从队列中取出dbc数据,然后根据pdur路由表配置信息选择合适的通道(can/lin等)把dbc转发给指定的sensor、actuator或者ecu,转发成功后回头继续从队列取数、继续转发,直到队列que_v2d为空。至此,vss到dbc的数据转换完成。62.具体地,dbc转vss方法由d2v数据转发模块、d2v数据转换模块、d2v数据更新模块、dbc-table数据表、数据存储模块、数据同步模块、报文解析模块、v2d数据转发模块中的ddspub等组成。具体工作原理如下:63.d2v数据转发模块中can/linrecv实时监测can/lin总线上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务程序中读取数据,并把数据放入与之相对应的数据输入队列que(iq)中,并触发一个事件通知d2v数据转化模块有新数据需要处理,然后再次回头继续监测can/lin总线上的数据变化,依次循环往复。64.d2v数据转化模块被事件触发唤醒后,从队列que(iq)读取数据,执行查表(dbc-table)快速匹配的方法进行dbc到vss的数据转换,转换完成后把vss数据传递给数据更新模块。转换完成后回头继续从队列que(iq)取数、继续转换,直到队列que(iq)为空,则进入睡眠模式,直到有新的事件触发唤醒,则继续进行数据转换工作。65.d2v数据更新模块收到数据后,判别数据的来源并做有效性校验,根据数据来源更新vss-table数据表中的对应项,并把相应的数据项状态更改为normal,表示此项数据已完成更新,更通俗的讲就是ccu发给末端sensor、actuator或ecu的指令已执行结束并且返回了执行结果及状态。同时并触发一个事件通知数据存储模块vss-table有数据更新。66.数据存储模块被事件唤醒后,把vss-table数据表保存到非易失性存储器中实现持久化功能。本发明所述的数据存储有数据全量保存和差分保存两种方法,具体使用那种由配置文件决定。在系统上电或重启时,zcu会读取非易失性存储器中的数据初始化vss-table,并在ccu启动完成后把vss-table同步给ccu。67.数据同步模块周期性的从vss-table中读取数据并由报文解析模块按照图3所示的报文协议把vss-table数据打包成符合ddstopic定义的数据格式,然后通过ddspub把数据同步给ccu,至此则完成dbc转vss。68.本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献