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

一种车辆单通道和多通道并行诊断方法及系统与流程

2022-02-21 04:24:51 来源:中国专利 TAG:


1.本发明属于车辆控制器诊断与软件升级技术领域,具体涉及车辆单通道和多通道并行诊断技术。


背景技术:

2.用户对汽车的智能化、互联化提出新的诊断相关需求,其中,包括ota和远程诊断功能;受限于can总线的速率限制,且目前的ota或远程诊断主要采用控制器串行处理模式,但是整个事件花费时间较长,用户体验并不好;采用诊断并行的方式能最大的利用can总线负载,缩短整体实现时间,可提供更好的用户体验,当上位机的载体为车内的控制器,硬件资源受到较大的限制,且被诊断或升级的控制器可能有因自身软硬件条件不允许诊断并行的情况和控制器都在一条总线上的情况。
3.公开号为cn104483960b的中国专利文献公开了名称为“一种汽车诊断通信模块数据收发并行处理的方法”的技术,该技术主要通过在诊断初始化过程中开启两个子线程或中断服务用上位机请求数据和总线交互,当上位机需要发送数据时,请求中断或子线程接收上位机数据,并置标志位,然后子线程或中断模块检车到数据标志位后将数据发送至总线,有数据待上传时,置标志位,然后由主线程或中断检测是否有数据上传,然后根据需求上传信息,数据交互的子线程处理数据是为根据诊断服务的适用通道id区分数据。该技术对载体硬件平台要求较高,需要使用子线程或中断服务且每次并行时均需要开辟子线程或增加中断服务,且必须在所有单个诊断应用完成后,不能适用于车辆网关或其他控制器内集成;该技术不能实现单一通道id内的整段数据并行。
4.公开号为cn103616886b的中国专利文献公开了名称为“一种实现多通路并行汽车诊断方法及汽车诊断设备”的技术,该技术通过汽车诊断设备的诊断端下发多个通路连接协议指令给汽车通信接口设备,然后汽车通信接口设备检查多个通路连接协议指令对应的通信协议类对象是否已构建,若否,则根据通路连接协议指令分别构件通信协议类对象,并记录通信协议类对象对应的汽车计算机系统的通路id,最后根据汽车计算机系统的通路id,诊断端分发诊断扫描指令给各汽车计算机系统,以实现汽车诊断设备与通路id对应的汽车计算机系统的交互,可实现多通路并行通信,与多个汽车计算机系统建立通信连接。该技术由于诊断服务与硬件通路直接建立对应关系,当出现同一硬件通路需要完成多个诊断需求时,不能完成同一硬件通路内的并行,且并行数量受到硬件通路数量的限制。


技术实现要素:

5.本发明的目的是提供一种车辆单通道和多通道并行诊断方法及系统,解决的技术问题:采用诊断并行的方式,充分利用can总线负载,缩短整体诊断时间,可提供好体验,但上位机的载体为车内控制器,硬件资源受到较大限制,且被诊断或升级的控制器因自身软硬件条件或同在一条总线上不允许诊断并行。
6.为解决上述技术问题,本发明采用的技术方案为:一种车辆单通道和多通道并行
诊断方法,包括以下步骤:a:诊断应用层从资源池中申请资源,其中,所述资源池经过下述流程生成:将诊断服务的组包和解包的部分根据诊断id和通道进行资源化处理,进而利用所述诊断服务的资源化建立所述资源池。
7.b:发送需要发送的报文至所述a中申请的资源,所述诊断应用层根据需求运行其他任务,查询资源接收状态;c: 发送所述报文至发送缓存;d:上传总线上收到的报文至所述资源池;e:解包所述d中的报文,当所述诊断应用层查询时返回解包之后的所述报文。
8.优选地,在所述a中,检查资源号是否小于资源数量,如果是,则继续判定当前资源的收发id与物理通道和申请值是否一致,如果是,则将资源信息写入当前资源,返回当前资源资源号;如果资源号不是小于资源数量,则检查是否有空闲资源,如果有,则将空闲资源与诊断服务绑定并返回资源号,如果没有,则返回资源申请失败。
9.优选地,在所述e之后,还包括f,当前诊断服务已经完成时,调用资源释放接口进行释放,并由所述诊断应用层确认释放。
10.优选地,在所述b中,所述诊断应用层将发送接收的id、发送报文数据、资源号及资源模式输入到发送接口中;检查通道发送条件是否满足,如果是,则检查通道有功能寻址是否正在发送,如果是,则资源发送标志置为队列状态,如果否,则资源发送标志置为等待发送,将数据、收发id和资源模式写入资源;如果通道发送条件不满足,则通道处于独享模式中,不支持数据发送。
11.优选地,在所述d及e中,检查资源接收是否完成,如果是,则检查接收是否为否定响应码78,如果是,则设置接收超时时间t,返回接收长度及数据,如果接收不是否定响应码78,则直接返回接收长度及数据;如果资源接收没有完成,则返回无接收数据。
12.优选地,在所述b、c及d中,涉及报文处理流程为:检查是否接收到驱动层报文有未处理,如果是,则检查任一资源的接收id及通道与报文的是否一致,如果是,则填充至资源报文接收缓存;如果没有接收到驱动层报文有未处理,则检查资源号是否小于资源数量,如果是,当前资源是否有缓存接收报文未处理,如是,则立即处理接收报文;如果资源号不是小于资源数量,则检查当前资源是否有发送任务,如果是,则数据组一帧报文,将报文填充至发送缓存。
13.优选地,
在所述c中,还包括通道发送条件检查,包括以下检查步骤:c1:检查资源号是否小于资源数量,如是,检查资源号与请求的资源号是否一致,若不一致,执行下一步;c2:检查资源通道与发送信息通道是否一致,若是,执行下一步;c3:检查发送资源状态是否为独享,如是,检查当前资源是否有发送或接收任务正在执行中,若是,返回通道发送条件检测未通过;c4:若发送资源状态不是独享,则检查当前资源是否处于独享中,若是,则返回通道发送条件检测未通过;c5:所述c1中,若资源号不是小于资源数量,则直接返回通道发送条件检测通过。
14.本发明还提供一辆车辆单通道和多通道并行诊断系统,包括:申请模块,用于诊断应用层从资源池中申请资源,其中,所述资源池经过下述流程生成;将诊断服务的组包和解包的部分根据诊断id和通道进行资源化处理,进而利用所述诊断服务的资源化建立所述资源池。
15.第一发送模块,用于发送需要发送的报文至所述申请模块中申请的资源,所述诊断应用层根据需求运行其他任务,查询资源接收状态;第二发送模块,用于发送所述第一发送模块中资源中的所述报文至发送缓存;上传模块,用于上传总线上收到的报文至所述资源池;解包模块,用于解包所述资源池中的资源内总线上收到的报文;返回模块,用于当所述诊断应用层查询时返回解包之后的所述报文。
16.优选地,在所述申请模块中,检查资源号是否小于资源数量,如果是,则继续判定当前资源的收发id与物理通道和申请值是否一致,如果是,则将资源信息写入当前资源,返回当前资源资源号;如果资源号不是小于资源数量,则检查是否有空闲资源,如果有,则将空闲资源与诊断服务绑定并返回资源号,如果没有,则返回资源申请失败。
17.优选地,当前诊断服务已经完成时,调用资源释放接口进行释放,并由所述诊断应用层确认释放,其中,所述当前诊断服务为当前单个诊断服务或当前全部诊断服务。
18.优选地,在所述第一发送模块中,所述诊断应用层将发送接收的id、发送报文数据、资源号及资源模式输入到发送接口中;检查通道发送条件是否满足,如果是,则检查通道有功能寻址是否正在发送,如果是,则资源发送标志置为队列状态,如果否,则资源发送标志置为等待发送,将数据、收发id和资源模式写入资源;如果通道发送条件不满足,则通道处于独享模式中,不支持数据发送。
19.优选地,在上传模块、解包模块及返回模块中,价差资源接收是否完成,如果是,则检查接收是否为否定响应码78,如果是,则设置接收超时时间t,返回接收长度及数据,如果接收不是否定响应码78,则直接返回接收长度及数据;如果资源接收没有完成,则返回无接收数据。
20.优选地,在第一发送模块、第二发送模块及上传模块中,涉及报文处理流程为:检查是否接收到驱动层报文有未处理,如果是,则检查任一资源的接收id及通道与报文的是否一致,如果是,则填充至资源报文接收缓存;如果没有接收到驱动层报文有未处理,则检查资源号是否小于资源数量,如果是,当前资源是否有缓存接收报文未处理,如是,则立即处理接收报文;如果资源号不是小于资源数量,则检查当前资源是否有发送任务,如果是,则数据组一帧报文,将报文填充至发送缓存。
21.优选地,在第二发送模块中,还包括通道发送条件检查,包括以下检查步骤:第一步,检查资源号是否小于资源数量,如是,检查资源号与请求的资源号是否一致,若不一致,执行下一步;第二步,检查资源通道与发送信息通道是否一致,若是,执行下一步;第三步,检查发送资源状态是否为独享,如是,检查当前资源是否有发送或接收任务认证执行中,若是,返回通道发送条件检测未通过;第四步,若发送资源状态不是独享,则检查当前资源是否处于独享中,若是,则返回通道发送条件检测未通过;第五步,在第一步中,若资源号不是小于资源数量,则直接返回通道发送条件检测通过。
22.通过采用上述技术方案,本发明可达到的有益技术效果陈述如下:第一,本发明代码循环运行,以分时复用的方式,实现了在单一进程处理多个诊断通道的诊断数据。
23.第二,在步骤a中,诊断应用层从资源池中申请资源,资源池的生成过程为:将诊断服务的组包和解包的部分根据诊断id和通道进行资源化处理,进而利用诊断服务的资源化建立资源池;本发明采取诊断应用层的数据资源化处理,与数据处理、数据发送拆分,通过资源动态分配,降低了对硬件或平台的要求。
24.第三,本发明利用对诊断对话的抽象处理,针对每个诊断对话进行资源分配与数据处理,而不依赖具体的数据通道,从而实现将资源与数据底层收发拆分,满足单一通道内的诊断并行,具体实现为:根据发送/接收的诊断id,判断待发送的数据或接收的数据应由哪个诊断对话资源进行处理。
25.第四,本发明提供独享共享模式,当某个资源被设置为独享时,该资源所使用的can通道只能由该资源独享,其他资源如果使用该条can通道进行报文收发,将被阻止,从而满足诊断服务要求不能并行的控制器对诊断通道独占的需求。
附图说明
26.图1为本发明的整体流程图;图2为本发明的资源申请与释放流程图;图3为本发明的诊断数据的收发流程图;图4为报文数据处理流程图;图5为本发明的共享与独享模式处理流程图。
具体实施方式
27.下面结合附图对本发明作进一步说明。
28.如图1所示,本发明提供了一种车辆单通道和多通道并行诊断方法。cantp处理层是整个流程中最核心的部分,其由两部分组成:其一,保存单个诊断对话中间状态及过程量的资源池;其二,cantp逻辑通用处理模块,程序运行时,其轮询各资源,根据各资源中诊断对话所处状态,遵循iso15765协议,对诊断报文进行通用化的逻辑处理。
29.一种车辆单通道和多通道并行诊断方法,包括以下步骤:a:诊断应用层从资源池中申请资源,其中,资源池经过下述流程生成:将诊断服务的组包和解包的部分根据诊断id和通道进行资源化处理,进而利用诊断服务的资源化建立资源池。
30.b:发送需要发送的报文至a中申请的资源,诊断应用层根据需求运行其他任务,查询资源接收状态;c: 发送报文至发送缓存;d:上传总线上收到的报文至资源池;e:解包d中的报文,当诊断应用层查询时返回解包之后的报文。
31.如图2所示,资源申请的流程为:第一步,判断资源号i是否小于资源数量,如果是,则判断当前资源的收发id与物理通道和申请值是否一致,如果是一致,则将资源信息写入当前资源,返回当前资源资源号。
32.第二步,如果当前资源的收发id与物理通道和申请值不一致,则继续判断下一个资源的收发id与物理通道和申请值是否一致,直到当当前资源的收发id与物理通道和申请值一致时,将资源信息写入当前资源,返回当前资源资源号。
33.第三步,如果资源号不是小于资源数量,则继而判断资源号n是否小于资源数量,如果是,则将资源信息写入当前资源,返回当前资源资源号。
34.具体地,第一步中的i和该n是为了表示两次轮询操作,只是跳出轮询的判断条件不一样。
35.第四步,如果n不是小于资源数量的,则直接返回申请失败。
36.另外,上述资源申请流程还可以表述为:第一步,使用循环变量i对所有资源库中的资源进行遍历,如果有资源的收发id与物理通道和申请者传入的收发id与物理通道一致,则跳出循环,将该资源号返回给申请者,资源申请流程结束。如果遍历完成后,没有资源的收发id与物理通道和申请者传入的收发id与物理通道一致,则进入第二步。
37.第二步,使用循环变量n,再次遍历资源库,判断资源库中,是否有资源为空闲状态,如果有,将新申请资源的收发id与物理通道信息写入此空闲资源号,并返回此资源号。如果遍历完成后,没有资源处于空闲状态,则返回申请失败。
38.如图2所示,当整个诊断服务或者单个诊断服务诊断完成后,诊断应用层会将申请的资源释放,释放的流程为:初始化报文id及通道,资源状态置为空闲。
39.如图3所示,通过资源池中的资源发送诊断数据,诊断数据的发送流程为:第一步,诊断应用层将发送接收id、资源号、发送数据、资源模式输入到发送接口中。
40.第二步,检查通道发送条件是否满足,如果满足,则检查通道是否有功能寻址正在发送,如果否,将资源发送标志置为等待发送,将数据、收发id和资源模式写入资源。
41.第三步,如果通道有功能寻址正在发送,将资源发送标志置为队列状态,则将数据、收发id和资源模式写入资源。
42.第四步,如果通道发送条件不满足,则通道处于独享模式中,不支持数据发送,稍后再试。
43.如图3所示,资源池中的资源接收被诊断控制器发送的响应报文,即接收诊断数据的流程为:第一步,首先检查资源接收是否完成,如果否,则返回无接收数据。
44.第二步,如果是,则继续判断接收是否为否定响应码78,如果否,则直接返回接收长度及数据。
45.第三步,如果接收时响应码78,则设置接收超时时间t,其中t为5s,然后返回接收长度及数据。
46.如图4所示,报文数据处理流程为:第一步,判断是否接收到驱动层报文有未处理,如果是则判断任一资源的接收id及通道与报文的是否一致,如果是,则填充至资源报文接收缓存。
47.第二步,如果任一资源的接收id及通道与报文不一致,则继续判断是否接收到驱动层报文有未处理。
48.第三步,如果没有接收到驱动层报文有未处理,则判断资源号是否小于资源数量,如果是,则判断当前资源是否有缓存接收报文未处理,如果有,则处理接收报文。
49.第四步,如果当前资源没有缓存接收报文未处理,则判断当前资源是否有发送任务,如果有,则将数据组一帧报文,将报文填充至发送缓存。
50.如图5所示,共享与独享模式处理流程为:在调用数据发送接口时,进入通道发送条件检测,并轮询所有通道。
51.第一步,首先判定当前资源号与请求的资源号是否一致,若是,则直接检查下一个资源,若否,则执行下一步。
52.第二步,判定资源通道与发送信息通道是否一致,若不一致,则检查下一个资源,若是,则执行下一步。
53.第三步,判定发送资源状态是否为独享,如果是,则判定当前资源(轮询的资源)是否有发送或接收任务正在执行中,如果是,则返回通道发送条件检测未通过,否则判定下一个资源。
54.第四步,若果发送资源状态不是独享,则检查当前资源(轮询的资源)是否处于独享中,若是,则返回通道发送条件检测未通过,否则检查下一个资源。
55.若所有资源检测完成后均为返回条件不满足,则返回条件满足。
56.本发明还提供一种车辆单通道和多通道并行诊断系统,包括:申请模块,用于诊断应用层从资源池中申请资源,其中,资源池经过下述流程生成;将诊断服务的组包和解包的部分根据诊断id和通道进行资源化处理,进而利用诊断服务的资源化建立资源池。
57.第一发送模块,用于发送需要发送的报文至申请模块中申请的资源,诊断应用层
根据需求运行其他任务,查询资源接收状态;第二发送模块,用于发送第一发送模块中资源中的报文至发送缓存;上传模块,用于上传总线上收到的报文至资源池;解包模块,用于解包资源池中的资源内总线上收到的报文;返回模块,用于当诊断应用层查询时返回解包之后的报文。
58.可选地,在申请模块中,检查资源号是否小于资源数量,如果是,则继续判定当前资源的收发id与物理通道和申请值是否一致,如果是,则将资源信息写入当前资源,返回当前资源资源号;如果资源号不是小于资源数量,则检查是否有空闲资源,如果有,则将空闲资源与诊断服务绑定并返回资源号,如果没有,则返回资源申请失败。
59.可选地,当前诊断服务已经完成时,调用资源释放接口进行释放,并由诊断应用层确认释放,其中,当前诊断服务为当前单个诊断服务或当前全部诊断服务。
60.可选地,在第一发送模块中,诊断应用层将发送接收的id、发送报文数据、资源号及资源模式输入到发送接口中;检查通道发送条件是否满足,如果是,则检查通道有功能寻址是否正在发送,如果是,则资源发送标志置为队列状态,如果否,则资源发送标志置为等待发送,将数据、收发id和资源模式写入资源;如果通道发送条件不满足,则通道处于独享模式中,不支持数据发送。
61.可选地,在上传模块、解包模块及返回模块中,价差资源接收是否完成,如果是,则检查接收是否为否定响应码78,如果是,则设置接收超时时间t,返回接收长度及数据,如果接收不是否定响应码78,则直接返回接收长度及数据;如果资源接收没有完成,则返回无接收数据。
62.可选地,在第一发送模块、第二发送模块及上传模块中,涉及报文处理流程为:检查是否接收到驱动层报文有未处理,如果是,则检查任一资源的接收id及通道与报文的是否一致,如果是,则填充至资源报文接收缓存;如果没有接收到驱动层报文有未处理,则检查资源号是否小于资源数量,如果是,当前资源是否有缓存接收报文未处理,如是,则立即处理接收报文;如果资源号不是小于资源数量,则检查当前资源是否有发送任务,如果是,则数据组一帧报文,将报文填充至发送缓存。
63.可选地,在第二发送模块中,还包括通道发送条件检查,包括以下检查步骤:第一步,检查资源号是否小于资源数量,如是,检查资源号与请求的资源号是否一致,若不一致,执行下一步;第二步,检查资源通道与发送信息通道是否一致,若是,执行下一步;第三步,检查发送资源状态是否为独享,如是,检查当前资源是否有发送或接收任务认证执行中,若是,返回通道发送条件检测未通过;第四步,若发送资源状态不是独享,则检查当前资源是否处于
独享中,若是,则返回通道发送条件检测未通过;第五步,在第一步中,若资源号不是小于资源数量,则直接返回通道发送条件检测通过。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献