掌桥专利:专业的专利平台
掌桥专利
首页

基于Tbox远程控制的数据控制分离的车辆控制方法及系统

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及车联网及电动汽车的远程控制Tbox功能技术领域,具体地,涉及基于Tbox远程控制的数据控制分离的车辆控制方法及系统,更为具体地,涉及Tbox系统的实现的控制数据分离的实现方法及装置。

背景技术

随着车辆网技术的成熟,电动汽车的普及,Tbox已经成为电动汽车的标配,各个厂家电动汽车都需要Tbox功能,以及Tbox功能的从简单的车辆开门控制到能够对车辆各种状态及控制发展。Tbox软件规模也越来越大。传统的Tbox实现方法,都是业务流程和数据紧密结合的。导致每增加一项功能,类似代码都要重复实现,比如,已有车门控制模块,添加车窗控制时,相应的代码都需要重新编写,软件Code代码重复性高,测试任务重,bug修正不全面。

专利文献CN112468172B(申请号:202011282188.5)公开了一种车载网联终端TBOX,包括:通讯模块:进行与远程服务器间数据的实时传输;定位模块:连续获得定位实时数据;CAN数据通信模块:向车辆的电子控制系统ECU转发来自远程服务器的指令,采集车辆的电子控制系统ECU数据,并反馈至车载网联终端TBOX;第一获取单元,通过本地RTC时间为电子控制系统ECU数据匹配第一时间戳;第二获取单元,通过服务器时间为定位实时数据匹配第二时间戳;存储模块:用于对匹配完时间戳的电子控制系统ECU数据和定位实时数据进行存储。

本发明涉及一种Tbox实现方法,通过业务流程和数据流程分离的方式,来规避新功能增加,带来类似功能代码规模的急剧增加。尽可能的通过代码复用,来控制软件规模。同时,实现A汽车厂家的Tbox功能后,如果有新的汽车厂家有Tbox功能要求,同样的业务流程复用,通过数据部分(通讯协议解析替换)变更,只要对A软件做少量修改,就能适用不同厂家的Tbox功能。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种基于Tbox远程控制的数据控制分离的车辆控制方法及系统。

根据本发明提供的一种基于Tbox远程控制的数据控制分离的车辆控制方法,包括:

步骤S1:TBox远程控制数据接受模块从远程控制服务器接收车辆远程控制消息,并对接收到的车辆远程控制消息进行预处理,将预处理后的消息数据保存到远程控制数据列表D1;

步骤S2:车载命令做成控制模块从远程控制数据列表D1读取数据进行车控命令生成,并保存至车机控制命令对应的队列D2中;

步骤S3:车载命令发送模块从车机控制命令对应的队列D2获取车机命令,并通过远程控制服务器发送至车机;

步骤S4:Response处理模块获取车机状态D3,并将车机状态D3反馈至远程控制服务器;

步骤S5:等待车机反馈及定时检查车机状态模块定时检查发送的车机命令与车机状态是否一致,当一致时,则设置当前命令发送成功;当不一致时,则设置当前命令发送失败;

步骤S6:通过Response处理模块将检查结果发送至远程控制服务器。

优选地,所述步骤S1采用:

步骤S1.1:TBox远程控制数据接受模块对接收到的车辆远程控制消息进行解析,得到解析后的消息数据;

步骤S1.2:TBox远程控制数据接受模块对解析后的消息数据进行数据有效检查,得到有效的消息数据;

步骤S1.3:TBox远程控制数据接受模块对有效的消息数据进行去重处理,得到去重处理后的消息数据;

步骤S1.4:TBox远程控制数据接受模块对去重处理后的消息数据进行数据优先级设定。

优选地,所述步骤S2采用:

步骤S2.1:车载命令做成控制模块对远程控制数据列表D1进行数据清洗;

步骤S2.2:车载命令做成控制模块从远程控制数据列表D1中读取数据,并根据CAN协议生成各种车辆控制命令;

步骤S2.3:车载命令做成控制模块将生成的各种车辆控制命令存放至带优先级的车机控制命令对应的列表D2中。

优选地,所述步骤S3采用:车载命令发送模块根据生成的车机控制命令对应的列表D2,根据车控命令类型,创建多线程进行优先级车控命令的发送。

优选地,所述步骤S5采用:

步骤S5.1:车机状态实时上传至控制器局域网络上;

步骤S5.2:通过控制器局域网获取各车机控制命令以及各车机状态;

步骤S5.3:等待车机反馈及定时检查车机状态模块根据预设要求创建时间间隔t,当时间间隔t到达时,则进行状态检查;当车机状态与车机控制命令一致时,则设置当前命令发送成功,并保存当前结果;当车机状态与车机控制命令不一致时,则设置当前命令发送失败,并保存当前结果。

优选地,当车机控制命令对应的列表D2中存在多个车机命令时,则将多个车机命令发送至车机,直至车机控制命令对应的列表D2为空时,则触发步骤S4。

根据本发明提供的一种基于Tbox远程控制的数据控制分离的车辆控制系统,包括:

TBox远程控制数据接受模块:从远程控制服务器接收车辆远程控制消息,并对接收到的车辆远程控制消息进行预处理,将预处理后的消息数据保存到远程控制数据列表D1;

车载命令做成控制模块:从远程控制数据列表D1读取数据进行车控命令生成,并保存至车机控制命令对应的队列D2中;

车载命令发送模块:从车机控制命令对应的队列D2获取车机命令,并通过远程控制服务器发送至车机;

Response处理模块:获取车机状态D3,并将车机状态D3反馈至远程控制服务器;

等待车机反馈及定时检查车机状态模块:定时检查发送的车机命令与车机状态是否一致,当一致时,则设置当前命令发送成功;当不一致时,则设置当前命令发送失败;

反馈模块:通过Response处理模块将检查结果发送至远程控制服务器。

优选地,在所述TBox远程控制数据接受模块中:

模块M1.1:对接收到的车辆远程控制消息进行解析,得到解析后的消息数据;

模块M1.2:对解析后的消息数据进行数据有效检查,得到有效的消息数据;

模块M1.3:对有效的消息数据进行去重处理,得到去重处理后的消息数据;

模块M1.4:对去重处理后的消息数据进行数据优先级设定。

优选地,在所述车载命令做成控制模块中:

模块M2.1:对远程控制数据列表D1进行数据清洗;

模块M2.2:从远程控制数据列表D1中读取数据,并根据CAN协议生成各种车辆控制命令;

模块M2.3:将生成的各种车辆控制命令存放至带优先级的车机控制命令对应的列表D2中。

优选地,在所述车载命令发送模块中:根据生成的车机控制命令对应的列表D2,根据车控命令类型,创建多线程进行优先级车控命令的发送;

在所述等待车机反馈及定时检查车机状态模块中:

模块M5.1:车机状态实时上传至控制器局域网络上;

模块M5.2:通过控制器局域网获取各车机控制命令以及各车机状态;

模块M5.3:根据预设要求创建时间间隔t,当时间间隔t到达时,则进行状态检查;当车机状态与车机控制命令一致时,则设置当前命令发送成功,并保存当前结果;当车机状态与车机控制命令不一致时,则设置当前命令发送失败,并保存当前结果。

与现有技术相比,本发明具有如下的有益效果:

1、本发明解决了TBox远程控制系统,不同车控命令之间协议的差异以及不同车厂之间业务流程变化导致急剧增加的代码量,通过数据和业务流程的分离,实现各远程控制处理模块的复用,使系统更加简洁,易实现,易调试,易测试。

2、本发明通过定制业务模块应对各车厂流程差异和模块间的差异及定制数据模块来应对协议变化。解决投入人力过多的问题。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为基于Tbox远程控制的数据控制分离的车辆控制系统示意图。

图2为基于Tbox远程控制的数据控制分离的车辆控制方法流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

针对现有技术中的缺陷,本发明的目的是提供一种高度抽象可复用的数据和控制分离的Tbox车辆远程控制系统。同时软件中的数据和控制分析结合设计思想也可以应用于各种大型控制软件。

根据本发明提供的一种基于Tbox远程控制的数据控制分离的车辆控制方法,如图2所示,包括:

步骤S1:TBox远程控制数据接受模块从远程控制服务器接收车辆远程控制消息,并对接收到的车辆远程控制消息进行预处理,将预处理后的消息数据保存到远程控制数据列表D1;

所述步骤S1具体采用:TBox远程控制数据接受模块对接受的远控控制消息数据进行解析,主要处理规格书中远程控制服务器数据协议的解析,通过面向对象的方法,对远程控制消息数据协议解析封装为消息数据;

步骤S1.1:TBox远程控制数据接受模块对接收到的车辆远程控制消息进行解析,得到解析后的消息数据;

步骤S1.2:TBox远程控制数据接受模块对解析后的消息数据进行数据有效检查,得到有效的消息数据;

步骤S1.3:TBox远程控制数据接受模块对有效的消息数据进行去重处理,得到去重处理后的消息数据;

步骤S1.4:TBox远程控制数据接受模块对去重处理后的消息数据进行数据优先级设定。

步骤S2:车载命令做成控制模块从远程控制数据列表D1读取数据进行车控命令生成,并保存至车机控制命令对应的队列D2中;

所述步骤S2具体采用:车载命令做成控制模块对远程控制数据列表D1进一步处理,在车辆CAN协议解析基础上,做成车机控制命令,通过面向对象的方法,对车辆CAN协议解析基础上,封装车机控制命令数据;

当远程控制数据列表D1中没有数据时,则什么都不做;当有数据时,则进行包括:

步骤S2.1:车载命令做成控制模块对远程控制数据列表D1进行数据清洗;

步骤S2.2:车载命令做成控制模块从远程控制数据列表D1中读取数据,并根据CAN协议生成各种车辆控制命令;

步骤S2.3:车载命令做成控制模块将生成的各种车辆控制命令存放至带优先级的车机控制命令对应的列表D2中;

其中,提供进行符合CAN协议的编码方法。

更为具体地,当车机控制命令对应的列表D2中存在多个车机命令时,则将多个车机命令发送至车机,直至车机控制命令通过车载命令发送模块都发送至车机,对应的列表D2为空时,则触发步骤S4。

步骤S3:车载命令发送模块从车机控制命令对应的队列D2获取车机命令,并通过远程控制服务器发送至车机;

所述步骤S3具体采用:车载命令发送模块根据生成的车机控制命令对应的列表D2,根据车控命令类型,创建多线程进行优先级车控命令的发送。

步骤S4:Response处理模块获取车机状态D3,并将车机状态D3反馈至远程控制服务器;

所述车机状态D3具体包括:对车辆控制命令相关各状态监视,更新;以及提供车各控制命令和相应车辆状态查询;通过面向对象的方法,对车辆CAN协议解析基础上,封装车机控制命令相关的车辆状态。

步骤S5:等待车机反馈及定时检查车机状态模块定时检查发送的车机命令与车机状态是否一致,当一致时,则设置当前命令发送成功;当不一致时,则设置当前命令发送失败;

所述步骤S5具体采用:

步骤S5.1:车机状态实时上传至控制器局域网络上;

步骤S5.2:通过控制器局域网获取各车机控制命令以及各车机状态;

步骤S5.3:等待车机反馈及定时检查车机状态模块根据预设要求创建时间间隔t,当时间间隔t到达时,则进行状态检查;当车机状态与车机控制命令一致时,则设置当前命令发送成功,并保存当前结果;当车机状态与车机控制命令不一致时,则设置当前命令发送失败,并保存当前结果。

步骤S6:通过Response处理模块S4将检查结果发送至远程控制服务器。

进一步地,Response信息D4是对数据控制过程中,产生的错误进行记录,车控命令控制成功的结果记录;以及提供Response数据编码方法,供Response处理模块发送Response信息给服务器使用。

根据本发明提供的一种基于Tbox远程控制的数据控制分离的车辆控制系统,如图1所示,包括:

模块M1:TBox远程控制数据接受模块从远程控制服务器接收车辆远程控制消息,并对接收到的车辆远程控制消息进行预处理,将预处理后的消息数据保存到远程控制数据列表D1;

所述模块M1具体采用:TBox远程控制数据接受模块对接受的远控控制消息数据进行解析,主要处理规格书中远程控制服务器数据协议的解析,通过面向对象的方法,对远程控制消息数据协议解析封装为消息数据;

模块M1.1:TBox远程控制数据接受模块对接收到的车辆远程控制消息进行解析,得到解析后的消息数据;

模块M1.2:TBox远程控制数据接受模块对解析后的消息数据进行数据有效检查,得到有效的消息数据;

模块M1.3:TBox远程控制数据接受模块对有效的消息数据进行去重处理,得到去重处理后的消息数据;

模块M1.4:TBox远程控制数据接受模块对去重处理后的消息数据进行数据优先级设定。

模块M2:车载命令做成控制模块从远程控制数据列表D1读取数据进行车控命令生成,并保存至车机控制命令对应的队列D2中;

所述模块M2具体采用:车载命令做成控制模块对远程控制数据列表D1进一步处理,在车辆CAN协议解析基础上,做成车机控制命令,通过面向对象的方法,对车辆CAN协议解析基础上,封装车机控制命令数据;

当远程控制数据列表D1中没有数据时,则什么都不做;当有数据时,则进行包括:

模块M2.1:车载命令做成控制模块对远程控制数据列表D1进行数据清洗;

模块M2.2:车载命令做成控制模块从远程控制数据列表D1中读取数据,并根据CAN协议生成各种车辆控制命令;

模块M2.3:车载命令做成控制模块将生成的各种车辆控制命令存放至带优先级的车机控制命令对应的列表D2中;

其中,提供进行符合CAN协议的编码方法。

更为具体地,当车机控制命令对应的列表D2中存在多个车机命令时,则将多个车机命令发送至车机,直至车机控制命令通过车载命令发送模块都发送至车机,对应的列表D2为空时,则触发模块M4。

模块M3:车载命令发送模块从车机控制命令对应的队列D2获取车机命令,并通过远程控制服务器发送至车机;

所述模块M3具体采用:车载命令发送模块根据生成的车机控制命令对应的列表D2,根据车控命令类型,创建多线程进行优先级车控命令的发送。

模块M4:Response处理模块获取车机状态D3,并将车机状态D3反馈至远程控制服务器;

所述车机状态D3具体包括:对车辆控制命令相关各状态监视,更新;以及提供车各控制命令和相应车辆状态查询;通过面向对象的方法,对车辆CAN协议解析基础上,封装车机控制命令相关的车辆状态。

模块M5:等待车机反馈及定时检查车机状态模块定时检查发送的车机命令与车机状态是否一致,当一致时,则设置当前命令发送成功;当不一致时,则设置当前命令发送失败;

所述模块M5具体采用:

模块M5.1:车机状态实时上传至控制器局域网络上;

模块M5.2:通过控制器局域网获取各车机控制命令以及各车机状态;

模块M5.3:等待车机反馈及定时检查车机状态模块根据预设要求创建时间间隔t,当时间间隔t到达时,则进行状态检查;当车机状态与车机控制命令一致时,则设置当前命令发送成功,并保存当前结果;当车机状态与车机控制命令不一致时,则设置当前命令发送失败,并保存当前结果。

模块M6:通过Response处理模块S4将检查结果发送至远程控制服务器。

进一步地,Response信息D4是对数据控制过程中,产生的错误进行记录,车控命令控制成功的结果记录;以及提供Response数据编码方法,供Response处理模块发送Response信息给服务器使用。

实施例2是实施例1的优选例

本发明提供的一种数据和控制分离的Tbox车辆远程控制面向对象实现方法及系统。

一种数据和控制分离的Tbox车辆远程控制面向对象实现方法,包括:根据从服务器接收到车辆远程控制消息,数据保存到数据层,并启动业务层状态机;

数据层数据处理,包括:

步骤1:远程控制数据列表D1;

步骤2:车机控制命令对应的队列D2;

步骤3:车机状态D3;

步骤4:Response信息D4;

业务逻辑层,包括:

步骤5:车控命令做成控制模块S1;

步骤6:车机命令发送模块S2;

步骤7:等待车机反馈及定时检查车机状态模块S3;

步骤8:Response模块S4.

TBox远程控制数据接受模块接收到的远程控制消息,并把消息数据保存到D1远程控制数据列表,同时通知S1车载命令做成控制模块有消息到达;S1车载命令做成控制模块从D1远程控制数据列表读取数据进行车控命令生成,并保存到D2车机控制命令对应的队列中,同时通知S2车载命令发送模块,请求发送车控命令;S2车机命令发送模块从D2车机控制命令模块获取一条车机命令,通过CAN发送给车机,同时,通知S3等待车机反馈及定时检查车机状态模块;S3等待车机反馈及定时检查车机状态模块启动定时器(command Timeout时间设置),定时检查发送命令请求和车机状态,如果车机状态和发送命令一致,设置当前命令发送成功,结果保存D4 Result中,如果Timeout到达,也没有一致,设置当前命令发送失败结果保存D4 Result中。同时,检查D2车机控制命令是否为空,如果为空,进入S4Response处理模块;S4 Response处理模块根据收集的命令发送状态,发送D4 Response信息给远控控制服务器。

其中,S2,S3,S4根据车机控制命令队列生成不同的对象副本,在不同的线程中运行,来控制不同的车控命令业务处理;D1,D2,D3,D4数据的读写,通过信号互斥量来实现数据同步。

更为具体地采用:

从服务器接收到车辆远程控制消息,数据保存到数据层,并启动业务层状态机;

数据层负责协议解析,数据保存,提供数据处理方法,主要针对各种数据协议负责封装,通过面向对象的方法,来封装不同主机厂之间数据协议的差异,来实现数据处理。

主要通过如下数据处理类,来实现数据层的实现:

所述步骤1采用:

保存接受的远程控制消息;

提供数据有效检查方法;

提供数据去重方法;

提供数据优先级设定方法;

所述步骤2采用:

从远程控制数据列表D1根据远程控制协议生成各种车辆控制命令队列;

CAN命令数据生成方法;

所述步骤3采用:

从CAN上获取各车辆状态;

各控制命令和相应车辆状态是否一致的确认方法;

所述步骤4采用:

Response信息D4包括:保存各种车机控制命令处理结果;

针对各类车机控制命令,各个处理过程中结果进行记录保存,清除处理。

业务逻辑控制层,主要负责规格业务流程的控制以及数据流程的控制;

业务逻辑流程通过自动状态机的方式实现;针对不同主机厂Tbox业务流程的差异,使用面向对象的方式,通过封装抽象类,实现类以及组合的方式实现。主要定义下面四个状态类来实现:

所述步骤5采用:

远程控制数据列表D1中没有数据时,什么也不做;

远程控制数据列表D1中有数据时:

根据远程控制规格以及远程控制数据列表D1提供的方法对远程控制数据列表D1进行清洗;

根据远程控制规格使用D1清洗后的数据生成车控命令队列D2;

所述步骤6采用:

车机命令发送:

从车机控制命令对应的队列D2获取一条命令,并使用车机控制命令对应的队列的CAN命令生成方法处理后,发送到CAN上;

步骤7:等待车机反馈及定时检查车机状态模块:

通过车机状态D3提供的数据及方法对发送的车机命令进行检查;

根据规格要求创建Time,Time时间到达时进行状态检查;

检查成功或失败(Timeout)后,确认车机控制命令对应的队列D2相应车机命令队列中是否为空;

为空,触发步骤8;不为空,触发步骤7;

步骤8:Response模块:

按照当前Result结果,反馈给远程控制服务器。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

相关技术
  • 基于Tbox远程控制的数据控制分离的车辆控制方法及系统
  • 车辆远程控制系统、通信模块、车辆、服务器、车辆远程控制方法、车辆远程控制程序及存储介质
技术分类

06120114725150