[0001]
本公开总体上涉及网络通信系统。
背景技术:[0002]
网络装置被编程为根据通信协议在例如通信总线上进行通信。已经开发了多种通信协议并且所述多种通信协议目前在使用中。而且,可能会不时地引入新的通信协议。
技术实现要素:[0003]
公开了一种第一装置,所述第一装置包括计算机,所述计算机包括处理器和存储器,所述存储器包括指令,使得所述处理器被编程为:识别通信总线上的配置,所述配置包括以下各项中的一者且仅一者:(1)包括第二lin装置而不包括第二自定义装置的第一总线配置,(2)包括所述第二自定义装置而不包括lin装置的第二总线配置,以及(3)包括所述第二lin装置和所述第二自定义装置两者的第三总线配置,其中所述第二lin装置是被编程为从所述第一装置接收lin消息并对所述lin消息作出响应的双向通信装置,并且所述第二自定义装置是被编程为仅向所述第一装置传输消息的单向通信装置。所述处理器还被编程为:选择被指定用于与所识别的总线配置通信的操作模式;以及基于所述所选择的操作模式来控制所述第一装置的发送时间和接收时间。
[0004]
在所述第一装置中,为了识别所述通信总线配置,所述处理器还可被编程为:检测上电;以及在检测到所述上电之后以接收模式操作以在第一预定时间量内从所述第二自定义装置接收自定义消息。
[0005]
在所述第一装置中,所述处理器还可被编程为:将所述第一装置的操作设置为与第二lin装置通信,所述第二lin装置被编程为基于在检测到所述上电之后在所述第一预定时间量内未从所述第二自定义装置接收到所述自定义消息而从所述第一装置接收lin消息并对所述lin消息作出响应。
[0006]
在所述第一装置中,为了识别所述通信总线配置,所述处理器还可被编程为:于在所述第一预定时间量内从所述第二自定义装置接收到所述自定义消息后,将所述第一装置设置为与所述通信总线上的可能的第二lin装置通信。所述处理器还可被编程为:向所述可能的第二lin装置传输lin控制消息;以及在响应时间内监听来自所述通信总线上的所述可能的第二lin装置的对所述lin控制消息的响应。
[0007]
在所述第一装置中,所述处理器还可被编程为:于在所述响应时间内未接收到对所述lin控制消息的所述响应的情况下,将所述第一装置的操作设置为从所述第二自定义装置接收消息。
[0008]
在所述第一装置中,所述处理器还可被编程为:基于接收到对所述lin控制消息的所述响应,确定所述通信总线上的所述第二lin装置;以及将所述第一装置的操作设置为与所述第二lin装置和所述第二自定义装置两者通信。
[0009]
在所述第一装置中,所述处理器还可被编程为:检测所述通信总线上的数据冲突;
基于检测到所述数据冲突而更新所述第一预定时间量;以及存储所述更新后的第一预定时间量。
[0010]
在所述第一装置中,所述处理器还可被编程为:以所述接收模式操作以在所述更新后的第一预定时间量内从所述第二自定义装置接收所述自定义消息;于在所述更新后的第一预定时间内从所述第二自定义装置接收到所述自定义消息后,将所述第一装置设置为与所述通信总线上的可能的第二lin装置通信;向所述可能的第二lin装置传输lin控制消息;以及在响应时间内监听来自所述通信总线上的所述可能的第二lin装置的对所述控制消息的响应。
[0011]
还公开了一种第一装置,所述第一装置包括计算机,所述计算机包括处理器和存储器,所述存储器包括对所述处理器进行编程的指令,使得所述处理器被编程为:识别通信总线上的第二装置是以下各项中的一者且仅一者:(1)被编程为控制与所述第一装置的双向通信的校准装置,(2)被编程为控制与所述第一装置的双向通信的lin主装置,以及(3)被编程为仅从所述第一装置接收消息的自定义主装置;以及选择被指定用于与所述校准装置、所述lin主装置和所述自定义主装置中的所识别的一者通信的操作模式。
[0012]
在所述第一装置中,为了识别所述通信总线上的所述第二装置,所述处理器还可被编程为:检测上电;以及设置用于在所述通信总线上接收以下各项的通信速度:(1)来自所述校准装置的校准消息或(2)来自所述lin主装置的lin消息。
[0013]
在所述第一装置中,所述处理器还可被编程为:基于在第一预定时间量内接收到所述校准消息而选择被指定用于与所述校准装置通信的所述操作模式。
[0014]
在所述第一装置中,所述处理器还可被编程为:基于在第一预定时间量内接收到所述lin消息而选择被指定用于与所述lin主装置通信的所述操作模式。
[0015]
在所述第一装置中,所述处理器还可被编程为:基于在第一预定时间量内既未接收到所述校准消息也未接收到所述lin消息而启动第二计时器。
[0016]
在所述第一装置中,所述处理器还可被编程为:基于在第二预定时间量内接收到所述lin消息而选择被指定用于与所述lin主装置通信的所述操作模式。
[0017]
在所述第一装置中,所述处理器还可被编程为:基于在第二预定时间量内未接收到所述lin消息而选择被指定用于与所述自定义主装置通信的所述操作模式。
[0018]
在所述第一装置中,所述处理器还可被编程为:检测所述通信总线上的冲突;以及更新所述第一预定时间量和所述第二预定时间量中的至少一者。
[0019]
还公开了一种系统,所述系统包括:通信总线和第一装置,所述第一装置包括第一计算机,所述第一计算机包括第一处理器和第一存储器。所述第一存储器包括第一指令,使得所述第一处理器被编程为:识别所述通信总线上的配置,所述配置包括以下各项中的一者且仅一者:(1)包括第二lin装置而不包括第二自定义装置的第一总线配置,(2)包括所述第二自定义装置而不包括所述第二lin装置的第二总线配置,以及(3)包括所述第二lin装置和所述第二自定义装置两者的第三总线配置,其中所述第二lin装置是被编程为从所述第一装置接收lin消息并对所述lin消息作出响应的双向通信装置,并且所述第二自定义装置是被编程为仅向所述第一装置传输消息的单向通信装置;选择被指定用于与所识别的总线配置通信的操作模式;以及基于所述所选择的操作模式来控制所述第一装置的发送时间和接收时间。所述系统还包括第三装置,所述第三装置包括第二计算机,所述第二计算机包
括第二处理器和第二存储器。所述第二存储器包括对所述第二处理器进行编程的第二指令,使得所述第二处理器被编程为:识别所述通信总线上的第四装置是以下各项中的一者且仅一者:(1)被编程为控制与所述第三装置的双向通信的校准装置,(2)被编程为控制与所述第三装置的双向通信的lin主装置,以及(3)被编程为仅从所述第三装置接收消息的自定义主装置;以及选择被指定用于与所述校准装置、所述lin主装置和所述自定义主装置中的所识别的一者通信的操作模式,其中所述第四装置和所述第一装置可为相同的装置。
[0020]
在所述系统中,为了识别所述通信总线上的所述第二装置的类型,所述第一处理器还可被编程为:检测上电;在检测到所述上电之后以接收模式操作以在第一预定时间量内从所述第二装置接收自定义消息;在所述第一预定时间量之后确定未接收到自定义消息;将所述第一装置的操作设置为与第二lin装置通信,所述第二lin装置被编程为基于在检测到所述上电之后在所述第一预定时间量内未从第二自定义装置接收到所述自定义消息而从所述第一装置接收lin消息并对所述lin消息作出响应;以及在所述通信总线上传输所述lin消息。
[0021]
在所述系统中,为了识别所述通信总线上的所述第一装置的类型,所述第二处理器还可被编程为:检测所述上电;在所述上电之后在第二预定时间量内从所述lin主装置接收所述lin消息;以及基于在所述第二预定时间量内接收到所述lin消息而确定所述第一装置是lin主装置。
[0022]
在所述系统中,所述第二处理器还可被编程为:在接收到所述lin消息后向所述第一装置发送响应;并且所述第一处理器还可被编程为:在预定响应时间内接收所述响应;以及基于所述响应而确定所述第二装置是lin从属装置。
附图说明
[0023]
图1是示例性总线系统的图。
[0024]
图2a和图2b是用于使主装置选择操作模式的示例性过程的流程图。
[0025]
图3是用于主装置lin操作的示例性过程的流程图。
[0026]
图4是用于主装置混合操作的示例性过程的流程图。
[0027]
图5是用于主装置自定义操作的示例性过程的流程图。
[0028]
图6是示例性总线系统的图。
[0029]
图7a和图7b是用于使从属装置选择操作模式的示例性过程的流程图。
具体实施方式
[0030]
在汽车和其他联网系统中,一些网络装置可根据局域互连网(lin)标准(诸如lin 2.1)进行通信,而其他装置可利用基于通用异步接收器/发射器(uart)的通信。通常,系统内的通信总线将仅支持一种通信协议。也就是说,系统将包括用于联接lin网络装置的lin通信总线,以及用于联接uart网络装置的基于uart的通信总线。
[0031]
lin通信装置是双向通信装置,其中通信由称为主装置的第一装置发起,并且由称为从属装置的第二装置应答。在lin通信中,第一装置(主装置)可维持用于与通信总线上的一个或多个第二装置(从属装置)通信的时间表,称为lin时间表。在本上下文中,“在通信总线上”意指通信地联接到通信总线。
[0032]
基于uart的通信装置(在本文中有时称为自定义通信装置)是单向通信装置,其中第一装置(主装置)不时地从第二装置(从属装置)接收消息。自定义从属装置通常被编程为以规则的时间间隔(例如,每100或200毫秒)传输消息。第一装置持续以“接收模式”操作,并且在消息到达时接收消息。为了避免数据冲突,通常,在通信总线上仅部署单个自定义从属装置。作为示例,这种类型的通信通常用于从传感器收集数据。传感器测量和/或收集数据,并且经由自定义从属装置以规则的间隔将所测量或收集的传感器数据传输到主装置。
[0033]
被编程为识别通信总线配置并与通信总线上的其他装置适配的智能装置能够在单个通信总线上支持lin通信和自定义(基于uart的)通信两者。通信总线配置是通信总线上的装置的数量和类型。智能装置辨识由通信总线上的其他单协议(lin或自定义)装置使用的通信协议。基于在总线上识别的单协议装置的类型,智能装置选择被指定用于与lin装置通信的操作模式(lin模式)、与自定义装置通信的操作模式(自定义模式),或与lin装置和自定义装置两者通信的操作模式(混合模式)。如本文所使用的术语“单协议装置”意指在通信总线上仅支持单一类型的数据通信的网络装置。例如,单协议装置可能仅支持基于lin的通信或自定义通信。
[0034]
另外,为了支持系统校准和测试,一些智能装置(智能从属装置)可被编程为识别通信地联接到通信总线的校准装置。校准装置可根据lin、自定义或校准专有协议进行通信。校准装置通常在系统制造或测试期间联接到通信总线,以对连接到通信总线的一个或多个从属装置的操作进行校准或测试。在校准装置处于通信总线上的时间期间,主装置与通信总线断开,或以其他方式被禁用,使得它们不会干扰校准装置。在完成校准或测试后,校准装置与通信总线断开,并且可重新连接或重新启用主装置。一些智能装置(智能从属装置)除了辨识通信总线上的基于lin和自定义的通信之外,还能够选择被指定用于与校准装置进行校准通信的校准操作模式。
[0035]
主(网络)装置是控制通信总线上的通信流的输入/输出(i/o)装置。控制通信总线上的通信流包括控制通信总线何时能够用于通过主装置和从属装置传输和接收消息。通常,通信总线上仅存在一个主装置。在仅存在一个主装置和一个自定义从属装置(仅输出型从属装置)的情况下,主装置的角色缩减为仅从自定义从属装置接收通信,这是因为来自自定义从属装置的通信是自我发起的。
[0036]
从属装置可以是i/o装置或仅仅是输出装置。通信总线上可存在一个或多个从属装置。lin从属装置是双向通信装置。lin从属装置从主装置接收命令并对所述命令作出响应。lin从属装置仅被准许响应于来自主装置的命令而在通信总线上传输消息。自定义从属装置基于由自定义从属装置维持的时间表而在通信总线上传输数据。
[0037]
仅根据一种协议(lin或自定义)操作的主装置或从属装置在本文中可被称为单协议装置。
[0038]
智能网络装置的类型包括智能主装置和智能从属装置。智能主装置控制通信总线上的通信流,并且另外能够识别从属装置的类型(lin或自定义)并调整通信程序以适应所辨识的总线配置。总线配置是通信总线上的网络装置(单协议(lin或自定义)主装置、智能主装置、单协议(lin或自定义)从属装置,和/或智能从属装置)的数量和类型。智能从属装置检测通信总线上的主装置(lin或自定义)或校准装置的存在,并调整通信程序以适应总线配置。
[0039]
图1示出了包括示例性通信系统100的车辆50。通信系统100可在车辆50的一个或多个部件之间提供数据通信。
[0040]
通信系统100包括通信总线105、智能主装置110、零个或多个智能从属装置120以及零个或多个单协议(lin、自定义)从属装置130。智能主装置110、智能从属装置120和单协议从属装置130在通信总线105上被通信地联接,并且可统称为网络装置110、120、130。
[0041]
通信总线105是用于网络装置110、120、130之间的有线通信或无线通信的机构,并且通常包括物理地连接网络装置110、120、130的一根或多根线的集合。
[0042]
在一个示例中,通信系统100在车辆50中的计算机150、一个或多个致动器154与一个或多个传感器156之间提供通信。计算机150可经由网络152通信地联接到智能主装置110。在典型的示例中,计算机150可经由智能主装置110通过通信总线105向智能从属装置120和/或单协议从属装置130传输消息和/或从智能从属装置120和/或单协议从属装置130接收消息。来自计算机150的消息可包括用于控制致动器154的命令。由计算机150接收的消息可包括来自传感器156的数据。
[0043]
智能主装置110是包括计算机112和串行端口的硬件部件。计算机112包括一个或多个处理器和存储器,所述存储器包括用于对处理器进行编程的指令。计算机112被编程为控制通信总线105上的通信流。串行端口联接到通信总线105以发送和接收消息。
[0044]
在智能主装置110中的计算机112,计算机112另外被编程为识别通信总线105上的单协议从属装置130的类型(lin或自定义)并且调整通信程序以适应总线配置。
[0045]
智能从属装置120是包括计算机122和串行端口的硬件部件。计算机122包括一个或多个处理器和存储器,所述存储器包括用于对处理器进行编程的指令。针对在通信总线105上的通信而对计算机122进行编程。如下所述,计算机122被编程为确定是校准装置还是主装置(其可以是智能主装置110、lin主装置或自定义主装置)正在控制通信总线105。在通信总线105正由校准装置控制的情况下,计算机122被编程为利用校准协议进行通信。
[0046]
在通信总线正由主装置控制的情况下,计算机122还被编程为识别通信总线105上的主装置的类型(lin或自定义)并调整通信程序以适应主装置的类型。在这种情况下,计算机122首先假设主装置120是lin类型的主装置,并等待来自主装置110的lin消息。在接收到lin消息的情况下,计算机122将根据lin协议进行通信。如果在某一时间延迟之后,智能从属装置120的计算机122还未从主装置110接收到lin消息,则计算机122将假设主装置110是自定义类型的主装置并且将通过自定义协议进行通信。智能从属装置120的串行端口能够联接到通信总线105以发送和接收消息。在通信总线105上可包括一个或多个智能从属装置120。
[0047]
单协议从属装置130是包括计算机132的硬件部件。计算机132包括一个或多个处理器和存储器,所述存储器包括用于对处理器进行编程的指令。针对在通信总线105上进行通信而对计算机132进行编程。在单协议从属装置130是lin从属装置130的情况下,计算机132被编程为经由通信总线105从智能主装置110接收lin命令并对lin命令作出响应。在单协议从属装置130是自定义从属装置130的情况下,自定义从属装置130在通信总线105上仅传输自定义消息。计算机132通常被编程为遵循用于传输自定义消息的预定时间表。串行端口联接到通信总线105。在自定义从属装置130的情况下,串行端口能够向通信总线105发送消息。在lin从属装置130的情况下,串行端口能够向通信总线105发送消息并从通信总线
105接收消息。
[0048]
由于通信总线105上的潜在数据冲突,通常仅一个自定义从属装置130联接到通信总线105。如本文所使用的“数据冲突”是指两个或更多个网络装置同时在通信总线上发送(输出)消息,使得它们彼此干扰。数据总线上的数据冲突导致总线上的位(高状态或低状态)太长或太短,消息具有的位太多,消息具有的位太少和/或消息未通过校验和或在总线上执行以监视消息完整性的其他消息质量校验。
[0049]
智能从属装置120和单协议从属装置130通常通信地联接到相应电子部件,诸如致动器154或传感器156,并且可包括在所述电子部件中。例如,智能从属装置120或lin从属装置130可包括在车辆50的气候控制系统中,并且基于从智能主装置110接收的指令来控制致动器154,所述致动器154驱动马达以调整翼板或阀。作为另一示例,自定义从属装置130可通信地联接到车辆50中的传感器156,并且向智能主装置110提供传感器数据。
[0050]
计算机150包括诸如已知的处理器和存储器。存储器包括一种或多种形式的计算机可读介质,并且存储可由计算机150执行以用于执行各种操作(诸如控制致动器154和从传感器156接收数据)的指令。计算机150经由通信网络152通信地联接到智能主装置110。
[0051]
通信网络152是用于计算机150与车辆50的子系统之间的有线通信或无线通信的一个或多个机构。网络152可包括例如一根或多根通信总线和一个或多个通信网络。车辆通信总线的非限制性示例包括控制器局域网(can)总线、局域互连网(lin)总线和以太网。无线通信网络的非限制性示例包括蓝牙、蓝牙低功耗(ble)和wi-fi直连。尽管出于讨论的目的而单独地示出,但是通信系统100可包括在网络152中。计算机150可经由通信网络152利用各种装置(例如,车辆50中的致动器154;和传感器156)传输消息和/或接收消息。
[0052]
致动器154经由能够根据适当的控制信号来致动车辆50的各种子系统的电路、芯片或其他电子和或机械部件来实施。例如,对于车辆50,致动器154可用于控制车辆部件,诸如气候控制模块或电动座椅。在典型的示例中,致动器154可包括气候控制系统中的马达。计算机150可经由网络152和通信系统100向致动器154传输调整气候控制系统中的翼板或阀等的位置的命令。
[0053]
传感器156可包括诸如已知的用于向计算机150提供数据的多种装置。传感器156的非限制性示例包括温度传感器、压力传感器、旋转传感器、角度传感器、位置传感器和扭矩传感器。传感器156可包括针对与智能从属装置120和/或单协议从属装置130进行通信而被编程的计算机。在典型的应用中,传感器156可检测物理参数,诸如温度或压力,并且基于所感测的物理参数,经由通信系统和网络152向计算机150提供数据。
[0054]
图2a和图2b是用于使智能主装置110选择操作模式的示例性过程200的流程图。选择操作模式意味着检测通信总线105上的智能从属装置和单协议从属装置130的存在并且确定是lin从属装置130、自定义从属装置130还是lin从属装置和自定义从属装置130两者都在通信总线105上并选择适应所识别的单协议装置130的操作模式。在仅lin从属装置130处于通信总线上的情况下,智能主装置110选择lin操作。在仅自定义从属装置130处于通信总线105上的情况下,智能主装置110选择自定义操作。在lin从属装置和自定义从属装置130两者都处于通信总线105上的情况下,智能主装置选择混合操作。如上所述,智能从属装置120被编程为在通信总线105上未辨识出校准装置的情况下首先在通信总线105上采用lin操作。在这种情况下,智能从属装置120在上电之后等待一段时间以在通信总线105上接
收lin消息,使得智能主装置110能够将智能从属装置120辨识为以lin模式操作的从属装置。过程在框202中开始。
[0055]
在框202中,智能主装置110中的计算机112检测到主装置上电。主装置上电是指示通信总线105将开始操作的事件。例如,检测到主装置上电可包括检测到已向智能主装置110供电。作为另一示例,检测到主装置上电可包括检测到包括通信系统100的车辆50的接通事件。如本文所使用的接通和切断被广泛地定义为分别开启或关闭车辆50或车辆50的一部分的事件、动作或输入,并且可能不按字面涉及钥匙。在检测到主装置上电后,过程200在框204中继续。
[0056]
在框204中,计算机112将智能主装置110设置为检测通信总线105上的自定义从属装置130的存在。计算机112将智能主装置110中的串行端口的通信速度设置于“自定义速度”。自定义速度是由自定义从属装置130使用的通信速度。典型的自定义速度是2400波特、9600波特和19200波特,但是范围一般可为300波特到115200波特。自定义速度可以是基于预期在通信系统100中使用的自定义从属装置130的规范而被预编程到智能主装置110中(即,存储在存储器中)的参数。此外,计算机112设置智能主装置110以作为接收器操作。计算机112开始在通信总线105上监视来自自定义从属装置130的传输。过程200在框206中继续。
[0057]
在框206中,计算机112启动计时器。计时器跟踪计算机112在通信总线105上监视自定义传输(来自自定义从属装置130的传输)的时间量。过程200在框208中继续。
[0058]
在框208中,计算机112确定计算机112已经监视通信总线105的时间量是否大于第一预定时间。第一预定时间是本来在其间预期来自通信总线105上的自定义从属装置130的自定义传输的时间。可基于例如预期在通信系统100中使用的自定义从属装置130的规范而将所述第一预定时间存储在智能主装置110的存储器中。
[0059]
在时间量大于第一预定时间的情况下,过程200在框210中继续。在时间量小于或等于预定时间的情况下,过程在框212中继续。
[0060]
在框210中,计算机112基于在第一预定时间内未接收到任何自定义传输而调用过程300以发起lin操作。
[0061]
在框208之后的框212中,计算机112确定是否已经在通信总线105上接收到自定义传输。在尚未接收到自定义传输的情况下,过程200在框208中继续并继续监视通信总线105。在已经接收到自定义传输的情况下,计算机112确定自定义从属装置130处于通信总线105上。过程200在框214中继续。
[0062]
在框214中,计算机112确定来自自定义从属装置130的自定义传输的时间表。自定义从属装置130或以自定义模式操作的智能从属装置120将具有在连续传输的开始之间的固定周期时间以及固定的传输持续时间。计算机112可被编程为等待从自定义从属装置130接收至少两次传输。基于自定义从属装置130的连续传输的开始时间之间的时间量和传输的长度,计算机112能够确定自定义从属装置130何时将在通信总线105上进行传输和将不在通信总线105上进行传输的时间表。过程200在框216中继续。
[0063]
在框216中,计算机112将包括串行端口的智能主装置110设置于lin速度。典型的lin速度是9600波特和10417波特,但是范围一般是1000波特到20000波特。过程200在框218中继续。
[0064]
在框218中,基于如在框214中确定的来自自定义从属装置130的传输时间表,计算机112确定用于lin操作的可用时隙。用于lin操作的可用时隙是自定义从属装置130在其间不进行传输的时间段。过程在框220中继续。
[0065]
在框220中,在用于lin操作的可用时隙期间,计算机112在通信总线105上按预定义的lin时间表传输lin消息。lin消息可以是lin控制消息。lin控制消息可以是宣布存在以lin模式操作的主装置并向可能处于通信总线105上的lin从属装置130或智能从属装置120请求响应的消息。过程在框222中继续。
[0066]
在框222中,计算机112在通信总线105上监视对控制消息的响应。过程在框224中继续。
[0067]
在框224中,计算机112确定是否接收到对控制消息的响应。接收到响应指示至少一个lin从属装置130处于通信总线105上。在接收到响应的情况下,过程200在框226中继续。否则,过程200在框228中继续。
[0068]
在框226中,由于计算机112从lin从属装置130接收到至少一个lin响应并且从自定义从属装置130接收到至少一个自定义响应,因此计算机112调用过程400以针对智能主装置110发起混合操作。在混合操作中,计算机112将操作以从自定义从属装置130接收自定义响应,并且在可用时隙(避免与自定义响应冲突)中将以lin模式操作以利用lin从属装置130传输和接收消息。
[0069]
在框224之后的框228中,计算机112确定从发送控制消息以来的时间量是否超过预期响应时间。预期响应时间是在其间预期来自lin从属装置130的响应的时间。lin从属装置130(如果存在并被寻址)应在从计算机112接收到请求lin从属装置130作出响应的控制消息之后的预期时间内作出响应。预期时间(其可被称为响应字段持续时间)由实现方式特定的lin描述文件(ldf)和lin规范(诸如iso 17987或sae j2602)定义。在从发送控制消息以来的时间量超过预期响应时间的情况下,过程在框230中继续。否则,过程200在框222中继续,并且计算机112继续监视响应。
[0070]
在框230中,由于不存在由任何智能从属装置120或lin从属装置130传输的lin响应,因此计算机112调用过程500以针对智能主装置110发起自定义操作。
[0071]
图3是用于智能主装置110的lin操作的示例性过程300的图。过程300在框302中开始。
[0072]
在框302中,通过来自过程200的框208的调用来激活过程300。基于在框208中确定自定义从属装置130在第一预定时间内尚未发送消息,计算机112将智能主装置110置于lin操作中。lin操作也可称为lin模式。过程300在框304中继续。
[0073]
在框304中,计算机112将包括串行端口的智能主装置110设置于lin速度。
[0074]
接下来,在框306中,计算机将主装置设置为lin操作。在lin操作中,计算机112不时地(通常周期性地)向可能处于通信总线105上的lin从属装置130发送消息。所述消息可以是使联接到相应的lin从属装置130的致动器154和传感器156执行车辆50内的操作的命令。例如,计算机112可向lin从属装置130发送激活致动器154的命令。作为另一示例,智能主装置110可经由lin从属装置130向联接到lin从属装置130的传感器156请求数据。过程300在框308中继续。
[0075]
在框308中,计算机112确定过程结束事件是否已发生。过程结束事件是指示过程
正在或将要结束的诸如电信号,消息或参数变化的事件。计算机112可例如基于通信总线105上的消息、基于来自计算机150的消息、基于指示车辆50正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程300结束。否则,过程300在框310中继续。
[0076]
在框310中,计算机112确定在通信总线105上是否已发生数据冲突。例如,计算机112可辨识出在通信总线105上出现的意外的位状态。意外的位状态可包括长度不同的位序列,在某一时间段内的位太多或太少,总线状态(高或低)太短等。数据冲突可指示例如未由智能主装置110识别的自定义从属装置130处于通信总线105上。这可能因为自定义从属装置130未在第一预定时间之前进行传输而发生。作为另一示例,可在智能主装置上电(框205)之后将单协议从属装置130引入到通信总线105。作为又一示例,数据冲突可能是由于智能从属装置120由于与智能主装置110的错误通信(缺少消息接收)而开始以自定义模式操作。在计算机112确定发生数据冲突的情况下,过程300在框312中继续。否则,过程300在框306中继续,并且智能主装置110继续lin操作。
[0077]
在框312中,计算机112测量数据冲突的时序。例如,计算机112可测量从上电直到冲突发生的时间量,并且还可在检测到冲突后等待足够的时间以从自定义从属装置130接收至少两次传输来表征传输开始之间的固定周期时间以及那些传输的持续时间。过程300在框314中继续。
[0078]
在框314中,计算机112更新第一预定时间。首先,计算机112可增加第一预定时间以提供更大量的时间来识别通信总线105上的自定义从属装置130。
[0079]
计算机112可使用各种方法来更新第一预定时间的值。例如,计算机112可确定用以更新第一预定时间的值的修正值x。例如,对于第n次冲突检测,其中n是从上次主装置上电以来的数据冲突的次数,计算机112可将修正值x设置为固定修正值。可替代地,计算机112可将修正值x设置为伪随机数,所述伪随机数是:
[0080]
●
基于随机数生成器;
[0081]
●
基于由智能主装置110接收的数据而计算/解译;
[0082]
●
基于次数n;
[0083]
●
基于对过去和/或当前日期和时间的数学运算而计算;和/或
[0084]
●
基于根据产品零件号的数学运算而计算。
[0085]
以上示例列表无意进行限制。可组合使用上述示例中的一个或多个示例。此外,可使用用于基于系统数据来生成伪随机数的其他方法。
[0086]
然后可基于修正值x根据以下方法中的任何一种或多种方法来计算更新后的第一预定时间:
[0087]
●
新的第一预定时间=(前一第一预定时间)+(x)。
[0088]
这假设(x)>0。
[0089]
●
新的第一预定时间=(前一第一预定时间)^(x)。
[0090]
这假设(x)>1。
[0091]
●
新的第一预定时间=(前一第一预定时间)*(x)。
[0092]
这假设(x)>1。
[0093]
●
新的第一预定时间=(先前的第一预定时间的总和)+(x)。
[0094]
这假设(x)>0。
[0095]
基于伪随机数设置修正值x可具有防止智能主装置110锁定到第一预定时间序列中的益处,所述第一预定时间序列未针对通信总线配置的快速确定进行优化和/或未集中于总线配置的稳定确定。
[0096]
另外地或可替代地,计算机112可基于数据冲突的时序测量来更新第一预定时间的值。例如,计算机112可确定先前应用的第一预定时间不够长而无法检测通信总线105上的自定义从属装置130的存在。基于数据冲突的时序,计算机112可能能够确定或估计来自自定义从属装置130的预期传输的时序,并且将第一预定时间调整为基于(例如,长于)来自自定义从属装置130的预期传输之间的估计时序。
[0097]
通常,将使第一预定时间一直增加到数据冲突不再发生为止。在数据冲突之后首先使第一预定时间递减可能导致在通信总线105上检测到自定义从属装置130的可能性降低。为了避免第一预定时间的过多增加,计算机112可对x应用额外约束。例如,可将x限制为等于或低于第一修正值的值。作为另一示例,当x超过第一修正值时,计算机112可减小x的值,直到它低于第二修正值为止,其中第二修正值小于第一修正值。
[0098]
另外,为了增加同一通信总线105上的智能主装置110和智能从属装置120集中于lin通信的可能性,如下所述,可将智能主装置110的修正值x的值约束为不跟踪用于调整智能从属装置120中的阈值时序的修正值y。
[0099]
在如上所述确立第一预定时间之后,用于智能主装置110的计算机112可被编程为将更新后的第一预定时间保存在诸如eeprom的非易失性存储器中,使得在随后的主装置上电事件之后可获得所述第一预定时间。此外,为了优化第一预定时间,计算机112可被编程为在每次主装置上电之后使第一预定时间递减,以迭代地寻找刚好高于避免数据冲突的时间量的第一预定时间。过程300在框316中继续。
[0100]
在框316中,计算机112调用在框204处开始的过程200,并且开始监视通信总线105上的自定义从属装置130。
[0101]
图4是用于智能主装置110的混合操作的示例性过程400的图。在混合操作期间,智能主装置110控制通信总线105上的与至少一个lin从属装置120、130(一个或多个lin从属装置130和/或以lin模式操作的一个或多个智能从属装置120)以及一个自定义从属装置130的通信。混合操作也可称为混合模式。在过程400期间,计算机112可多次或基本上连续地监视通信总线105上的冲突,如参考过程300的框310所述。在检测到数据冲突的情况下,计算机112可调用在框204中开始的过程200。过程400在框402中开始。
[0102]
在框402中,计算机112将包括串行端口的智能主装置110设置或维持于lin速度。过程400在框404中继续。
[0103]
在框404中,计算机112将智能主装置110设置为lin操作。计算机112不时地向可在通信总线105上的lin从属装置130和以lin模式操作的智能从属装置120发送消息。所述消息可以是使联接到相应的lin从属装置130或智能从属装置120的致动器154和传感器156执行车辆50内的操作的命令。过程400在框406中继续。
[0104]
在框406中,计算机112确定过程结束事件是否已发生。计算机112可例如基于通信总线105上的消息、基于来自计算机150的消息、基于指示车辆50正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程400结束。否则,过程
400在框408中继续。
[0105]
在框408中,计算机112确定来自自定义从属装置130的安排的传输是否被安排在预定时间量内发生。预定时间量可以是例如比执行lin消息的一次额外交换所需的时间量小的时间量。在安排的传输被安排在预定时间量内发生的情况下,过程400在框410中继续。否则,过程400在框402中继续。
[0106]
在框410中,计算机112停止lin传输。
[0107]
接下来,在框412中,计算机112将包括串行端口的智能主装置110设置于自定义速度和接收模式。过程400在框414中继续。
[0108]
接下来,在框414中,计算机112监视通信总线105的来自自定义从属装置130的通信。在计算机112从自定义从属装置130接收到传输的情况下,计算机112处理传输。例如,计算机112可从自定义从属装置130接收到包括来自传感器156的数据的传输,并且计算机112可向计算机150提供数据。
[0109]
接下来,过程400在框416中继续。在框416中,计算机112确定过程结束事件是否已发生。计算机112可例如基于通信总线105上的消息、基于来自计算机150的消息、基于指示车辆50正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程400结束。否则,过程400在框418中继续。
[0110]
在框418中,计算机112确定用于从自定义从属装置130接收传输的自定义时隙是否在预定时间量内完毕或结束。所述预定时间量可包括例如在为自定义传输指定的时隙结束之前的缓冲时段。在自定义传输时间在预定时间内完毕或结束的情况下,过程400在框402中继续。否则,过程400在框414中继续。
[0111]
图5是用于智能主装置110的自定义操作的示例性过程500的图。自定义操作也可称为自定义模式。在自定义操作期间,智能主装置110被设置为从自定义从属装置130接收传输。在接收到传输后,智能主装置110例如通过向计算机150提供接收到的数据来处理传输。过程500在框502中开始。
[0112]
在框502中,计算机112接收来自过程200的框230的调用以设置智能主装置110的自定义操作。
[0113]
接下来,在框504中,计算机112将包括串行端口的智能主装置110设置于自定义速度。如上所述,自定义速度是用于从自定义从属装置130接收传输的速度。
[0114]
接下来,在框506中,计算机将智能主装置110设置为从自定义从属装置130接收传输。过程在框508中继续。
[0115]
在框508中,计算机112确定过程结束事件是否已发生。计算机112可例如基于通信总线105上的消息、基于来自计算机150的消息、基于指示车辆50正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程500结束。否则,过程500在框510中继续。
[0116]
在框510中,计算机112确定在通信总线105上是否已发生数据冲突。数据冲突可指示额外的自定义装置130处于通信总线105上,或者智能从属装置120已经开始以自定义模式操作。在计算机112确定发生数据冲突的情况下,过程500在框512中继续。否则,过程500在框506中继续,并且智能主装置110继续自定义操作。虽然在过程500中示出为单个框,但是计算机112可在过程500期间多次或基本上连续地监视通信总线105。
[0117]
图6是可包括在诸如上述车辆50的系统中的示例性通信系统600的图。通信系统600包括被编程为确定当前正在控制通信总线605的总线控制装置610的类型的智能从属装置620。通信系统600包括通信地联接在通信总线605上的总线控制装置610、一个或多个智能从属装置620和零个或多个单协议从属装置130。
[0118]
总线控制装置610包括计算机612。总线控制装置610可以是校准装置610或主装置610。
[0119]
在第一种情况下,总线控制装置610是校准装置610。校准装置610包括计算机612,所述计算机612包括一个或多个处理器和存储器,所述存储器包括用于校准通信总线605上的智能从属装置620和/或单协议从属装置130的指令。针对在通信总线605上进行通信而对计算机612进行编程。校准装置610可例如经由通信端口可移除地连接到通信总线605,以在相应的制造厂对智能从属装置620、单协议从属装置130以及经由智能从属装置620和单协议从属装置130连接到通信总线605的其他部件(例如,车辆部件)执行校准、执行测量、执行功能测试、执行质量控制数据收集等。校准装置610还包括用于将校准装置610联接到通信总线605并发送和接收消息的串行端口。
[0120]
在校准装置610连接到通信总线605的时间期间,校准装置610承担主装置610的角色。也就是说,校准装置610控制通信总线605上的通信流。
[0121]
在第二种情况下,总线控制装置610是主装置610。主装置610可以是lin主装置610、自定义主装置610或智能主装置610。lin主装置610仅以lin模式操作并且不能与自定义从属装置130通信。自定义主装置610仅以自定义模式操作并且不能与lin从属装置通信。智能主装置610如上面参考智能主装置110所述进行操作,并且可与智能从属装置620和单协议(lin或自定义)从属装置130通信。
[0122]
智能从属装置620包括计算机622。智能从属装置620和计算机622分别与参考通信系统100描述的智能从属装置620和计算机122相同或相似。针对在通信总线605上进行通信而对计算机622进行编程。计算机622还被编程为确定总线控制装置610是校准装置610还是主装置610。在总线控制装置610是主装置610的情况下,智能从属装置620还被编程为确定主装置610是lin主装置610、以lin模式操作的智能主装置610(其可作为lin主装置610出现)还是自定义主装置610。然后,计算机622将智能从属装置620配置为与所识别的校准装置610或主装置610通信。在主装置610是智能主装置610的情况下,智能从属装置620被编程为将智能主装置610辨识为lin主装置610,并且与智能主装置610建立基于lin的通信。智能从属装置620的串行端口能够联接到通信总线605以发送和接收消息。通信总线605上可包括一个或多个智能从属装置620。
[0123]
图7a和图7b是用于为通信总线605上的智能从属装置620选择操作模式的示例性过程700的图。选择操作模式意味着确定校准装置610当前是否正在通信总线605上执行校准,或主装置610当前是否正在通信总线605上操作。在校准装置610当前正在通信总线605上执行校准的情况下,智能从属装置620上的计算机622选择校准操作操作模式。在校准操作期间,智能从属装置620上的计算机622从校准装置610接收通信并对所述通信作出响应。校准操作在本文中也可称为校准模式。在计算机622确定没有在执行校准并且支持lin操作的智能主装置610处于通信总线605上的情况下,计算机选择lin操作。在计算机622确定没有在执行校准并且不存在支持lin操作的主装置610的情况下,计算机622选择自定义操作。
自定义操作也可称为自定义模式。过程700在框702中开始。
[0124]
在框702中,计算机622检测到智能从属装置上电。智能从属装置上电是指示通信总线605将开始操作的事件。例如,检测到智能从属装置上电可包括检测到已向智能从属装置620供电。作为另一示例,检测到智能从属装置上电可包括检测到车辆的接通或包括通信总线605的另一系统的开启。在检测到智能从属装置上电后,过程700在框704中继续。
[0125]
在框704中,如果主装置610将以某一校准速度传输任何lin消息,则计算机622将智能从属装置设置于该校准速度以能够接收校准并且还潜在地接收lin消息。计算机622开始针对来自校准装置610的传输和来自智能主装置610的lin传输而监视通信总线605。过程700在框706中继续。
[0126]
在框706中,计算机622启动计时器。计时器跟踪计算机622针对校准和/或lin传输而监视通信总线605的时间量。过程700在框708中继续。
[0127]
在框708中,计算机622确定是否已经接收到校准消息。计算机622可例如在校准速度与lin速度不同的情况下基于校准消息的速度而将所述消息识别为校准消息。另外地或可替代地,计算机622可基于内容,例如基于将传输消息的装置识别为校准装置610的识别符、基于消息中的校准命令、基于消息的长度等而将消息识别为校准消息。在计算机622确定已经接收到校准消息的情况下,过程700在框710中继续。否则,过程700在框714中继续。
[0128]
在框710中,计算机622将智能从属装置620设置或维持在校准操作中。过程700在框712中继续。
[0129]
在框712中,计算机622确定过程结束事件是否已发生或是否已经接收到退出校准消息。计算机622可例如基于通信总线605上的消息、基于指示包括通信总线605的车辆50系统正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,或者如果已经接收到退出校准模式消息,则过程700结束。否则,过程700在框714中继续。
[0130]
在框714中,计算机622确定是否已经接收到lin控制消息。lin控制消息指示通信总线605上存在主装置610。主装置610可以是lin(单协议)主装置610或以lin模式操作的智能主装置610。在已经接收到lin控制消息的情况下,过程700在框716中继续。否则,过程700在框720中继续。
[0131]
在框716中,计算机622将智能从属装置620设置或维持在lin操作中。过程700在框718中继续。
[0132]
在框718中,计算机622确定过程结束事件是否已发生。计算机622可例如基于通信总线605上的消息、基于指示包括通信总线605的车辆或其他系统正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程700结束。否则,过程700在框716中继续。
[0133]
在可在框714之后的框720中,计算机622确定计算机722已监视通信总线605的时间量是否大于第一预定时间。第一预定时间是本来在其间预期来自通信总线605上的可能的校准装置610的校准传输的时间。可基于例如可预期用于通信地联接到通信总线105的校准装置610的规范而将第一预定时间预编程到计算机622中(存储在计算机622的存储器中)。
[0134]
在时间量大于第一预定时间的情况下,过程700在框722中继续。在时间量小于或
等于预定时间的情况下,过程在框708中继续。
[0135]
在框722中,计算机722将智能从属装置620设置于lin速度和lin操作。用于智能从属装置620的lin操作意味着针对lin控制消息而监视通信总线605,所述lin控制消息广播在通信总线605上存在以lin模式操作的主装置610。过程700在框724中继续。
[0136]
在框724中,计算机622启动第二计时器。第二计时器测量在第一计时器达到第一预定时间(参见框720)之后直到当前时间已经过去的时间量。过程700在框726中继续。
[0137]
在框726中,计算机622确定是否已经接收到lin控制消息。在已经接收到lin控制消息的情况下,过程700在框716中继续。否则,过程700在框728中继续。
[0138]
在框728中,计算机622确定计算机622从第一预定时间到期以来已监视通信总线605的时间量是否大于第二预定时间。第二预定时间是在第一预定时间之后的额外时间,在所述额外时间内,智能从属装置620可从可正以lin速度而不是以校准速度操作的主装置610接收lin控制消息。可基于例如预期在通信总线605上使用的主装置610的规范而将第二预定时间预编程到计算机622中(存储在计算机622的存储器中)。
[0139]
在时间量大于第二预定时间的情况下,过程700在框730中继续。在时间量小于或等于第二预定时间的情况下,过程在框726中继续。
[0140]
在框730中,计算机622将智能从属装置620设置为用于自定义操作。也就是说,计算机622将智能从属装置620设置为以自定义速度并根据自定义传输时间表来传输消息。自定义传输时间表可被预编程到计算机622中(存储在计算机622的存储器中)。过程700在框732中继续。
[0141]
在框732中,计算机622确定过程结束事件是否已发生。计算机622可例如基于通信总线605上的消息、基于指示其中通信系统600正在操作的车辆或其他系统正在发生断电的电信号等而确定过程结束事件已发生。在检测到过程结束事件的情况下,过程700结束。否则,过程700在框734中继续。
[0142]
在框734中,计算机622确定在通信总线105上是否已发生数据冲突。在计算机622确定发生数据冲突的情况下,过程700在框736中继续。否则,过程700在框730中继续,并且智能从属装置620继续自定义操作。虽然在过程700中示出为单个框,但是计算机622可在过程700期间多次或基本上连续地监视通信总线605。
[0143]
在框736中,计算机622测量数据冲突的时序并且可测量额外的时序数据。过程700在框738中继续。
[0144]
在框738中,计算机622更新第一预定时间和/或第二预定时间的值。
[0145]
可采用各种方法来更新第一预定时间和/或第二预定时间。计算机622可确定用以更新第一预定时间的值的修正值y。例如,对于第n次冲突检测,其中n是从上次主装置上电以来的数据冲突的次数,计算机622可将修正值y设置为固定修正值。可替代地,计算机622可将修正值y设置为伪随机数,所述伪随机数是:
[0146]
●
基于随机数生成器;
[0147]
●
基于由智能主装置110接收的数据而计算/解释;
[0148]
●
基于次数n;
[0149]
●
基于对过去和/或当前日期和时间的数学运算而计算;和/或
[0150]
●
基于根据产品零件号的数学运算而计算。
[0151]
以上示例列表无意进行限制。可组合使用上述示例中的一个或多个示例。此外,可使用用于基于系统数据来生成伪随机数的其他方法。
[0152]
然后可基于修正值y根据以下方法中的任何一种或多种方法来计算更新后的第一预定时间和/或第二预定时间:
[0153]
●
新的第一预定时间和/或第二预定时间=(前一第一预定时间和/或第二预定时间)+(y)。
[0154]
这假设(y)>0。
[0155]
●
新的第一预定时间和/或第二预定时间=(前一第一预定时间和/或第二预定时间)^(y)。
[0156]
这假设(y)>1。
[0157]
●
新的第一预定时间和/或第二预定时间=(前一第一预定时间和/或第二预定时间)*(y)。
[0158]
这假设(x)>1。
[0159]
●
新的第一预定时间和/或第二预定时间=(先前的第一预定时间和/或第二预定时间的总和)+(y)。
[0160]
这假设(y)>0。
[0161]
基于伪随机数设置修正值y可具有防止智能从属装置620锁定到第一预定时间序列中的益处,所述第一预定时间序列未针对通信总线配置的快速确定进行优化和/或未集中于哪种类型的总线控制装置610正在通信总线605上操作的稳定确定。
[0162]
作为另一示例,计算机622可被编程为基于一个或多个数据冲突的时序来确定第一预定时间和/或第二预定时间。例如,计算机622可确定先前应用的第一预定时间不够长而无法检测校准装置610的存在和/或第二预定时间在与第一预定时间组合时不够长而无法检测以lin模式操作的主装置610的存在。基于数据冲突的时序,计算机622可能能够确定或估计来自校准装置610或以lin模式操作的主装置610的预期传输的时序。然后,计算机622可被编程为将第一预定时间设置为长于用于从校准装置610接收传输的预期时间,或者将第一预定时间和第二预定时间的总和设置为长于用于从以lin模式操作的主装置610接收lin传输的预期时间。
[0163]
计算机622通常将被编程为增加第一预定时间和/或第二预定时间,直到数据冲突不再发生为止。在数据冲突之后首先使第一预定时间和/或第二预定时间递减可能导致在通信总线605上检测到校准装置610或以lin模式操作的主装置610的可能性降低。为了避免第一预定时间和/或第二预定时间的过多增加,计算机622可对y应用额外约束。例如,可将y限制为等于或低于第一修正值的值。作为另一示例,当y超过第一修正值的值时,计算机622可减小y的值直到它低于第二修正值的值为止,其中第二修正值的值小于第一修正值的值。
[0164]
在如上所述确立第一预定时间和/或第二预定时间之后,用于智能从属装置620的计算机622可被编程为将更新后的第一预定时间保存在诸如eeprom的非易失性存储器中,使得在随后的上电事件之后可获得所述第一预定时间。此外,为了优化第一预定时间,计算机622可被编程为在每次上电之后使第一预定时间递减,以迭代地寻找刚好高于避免数据冲突的时间量的第一预定时间。过程700在框704中继续。
[0165]
如本文所使用,术语“基于”是指全部或部分地基于。
[0166]
一般地,所描述的计算系统和/或装置可采用多种计算机操作系统中的任一者,包括但绝不限于以下版本和/或变型:ford应用程序、applink/smart device link中间件、微软操作系统、微软操作系统、unix操作系统(例如,由加州红杉海岸的oracle公司发布的操作系统)、由纽约州阿蒙克市的international business machines发布的aix unix操作系统、linux操作系统、由加州库比蒂诺的苹果公司发布的mac osx和ios操作系统、由加拿大滑铁卢市的黑莓有限公司发布的blackberry os、由谷歌公司的开放手机联盟开发的android操作系统,或由qnx software systems提供的car信息娱乐平台,以及由百度公司提供的duer os。计算装置的示例包括但不限于车载计算机、计算机工作站、服务器、台式计算机、笔记本计算机、膝上型计算机或手持式计算机,或一些其他计算系统和/或装置。
[0167]
计算机和计算装置一般包括计算机可执行指令,其中所述指令可由一个或多个计算装置(诸如以上列出的那些计算装置)执行。计算机可执行指令可由使用多种编程语言和/或技术创建的计算机程序编译或解译,所述编程语言和/或技术包括但不限于单独或组合的java
tm
、c、c++、matlab、simulink、stateflow、visual basic、java script、perl、html、python等。这些应用中的一些可在虚拟机(诸如java虚拟机、dalvik虚拟机等)上编译和执行。一般地,处理器(例如,微处理器)例如从存储器、计算机可读介质等接收指令,并且执行这些指令,由此执行一个或多个过程,包括本文所述的过程中的一个或多个。此类指令和其他数据可使用多种计算机可读介质来存储和传输。计算装置中的文件通常是存储在计算机可读介质(诸如存储介质、随机存取存储器等)上的数据的集合。
[0168]
存储器可包括计算机可读介质(也称为处理器可读介质),所述计算机可读介质包括参与提供可由计算机(例如,由计算机的处理器)读取的数据(例如,指令)的任何非暂时性(例如,有形)介质。此类介质可呈许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质可包括例如光盘或磁盘以及其他持久性存储器。易失性介质可包括例如通常构成主存储器的动态随机存取存储器(dram)。此类指令可由一种或多种传输介质传输,所述传输介质包括同轴电缆、铜线和光纤,包括构成联接到ecu的处理器的系统总线的线。计算机可读介质的常见形式包括(例如)软磁盘、软盘、硬盘、磁带、任何其他磁性介质、cd-rom、dvd、任何其他光学介质、穿孔卡、纸带、带有孔图案的任何其他物理介质、ram、prom、eprom、快闪eeprom、任何其他存储器芯片或盒式磁带,或计算机可从中读取的任何其他介质。cd-rom和dvd是一次写入/多次读取(worm)装置的示例。
[0169]
数据库、数据存储库或本文所述的其他数据存储装置可包括用于存储、访问和检索各种数据的各种机构,包括分层数据库、文件系统中的文件集、呈专用格式的应用数据库、关系数据库管理系统(rdbms)等。每个此类数据存储装置大体包括在采用计算机操作系统(诸如以上所提到的那些操作系统中的一个操作系统)的计算装置内,并且经由网络以多种方式中的任一种或多种方式来访问。文件系统可为可从计算机操作系统访问的,并且可包括以各种格式存储的文件。rdbms除了用于创建、存储、编辑和执行已存储的程序的语言(诸如上述pl/sql语言)之外通常还采用结构化查询语言(sql)。
[0170]
在一些示例中,系统元件可被实施为一个或多个计算装置(例如,服务器、个人计算机等)上的、存储在与计算装置相关联的计算机可读介质(例如,磁盘、存储器等)上的计
算机可读指令(例如,软件)。计算机程序产品可包括存储在计算机可读介质上的用于执行本文所述的功能的此类指令。
[0171]
关于本文所述的介质、过程、系统、方法、启发等,应理解,虽然此类过程等的步骤已被描述为根据某一有序的顺序发生,但是可通过以与本文所述的次序不同的次序执行步骤来实践此类过程。还应理解,可同时执行某些步骤,可添加其他步骤,或可省略本文所述的某些步骤。换句话说,本文对过程的描述是出于说明某些实施例的目的而提供,而绝不应将其解释为对权利要求进行限制。
[0172]
因此,应理解,以上描述意图为说明性的而非限制性的。在阅读了以上描述后,除了所提供的示例之外的许多实施例和应用对于本领域技术人员来说将为显而易见的。不应参考以上描述来确定本发明的范围,而应改为参考所附权利要求连同此类权利要求有权得到的等效物的全部范围来确定本发明的范围。预期并期望本文所论述的技术未来将有所发展,并且所公开的系统和方法将并入此类未来实施例中。总之,应理解,本发明能够进行修改和变化,并且仅受所附权利要求限制。
[0173]
除非本文做出明确的相反指示,否则权利要求中使用的所有术语意图给出如本领域技术人员所理解的普通和一般的含义。具体地,除非权利要求明确地叙述相反的限制,否则使用诸如“一个”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一个或多个。
[0174]
根据本发明,提供了一种第一装置,所述第一装置具有:计算机,所述计算机包括处理器和存储器,所述存储器包括指令,使得所述处理器被编程为:识别通信总线上的配置,所述配置包括以下各项中的一者且仅一者:(1)包括第二lin装置而不包括第二自定义装置的第一总线配置,(2)包括所述第二自定义装置而不包括lin装置的第二总线配置,以及(3)包括所述第二lin装置和所述第二自定义装置两者的第三总线配置,其中所述第二lin装置是被编程为从所述第一装置接收lin消息并对所述lin消息作出响应的双向通信装置,并且所述第二自定义装置是被编程为仅向所述第一装置传输消息的单向通信装置;选择被指定用于与所识别的总线配置通信的操作模式;以及基于所述所选择的操作模式来控制所述第一装置的发送时间和接收时间。
[0175]
根据一个实施例,为了识别所述通信总线配置,所述处理器被编程为:检测上电;以及在检测到所述上电之后以接收模式操作以在第一预定时间量内从所述第二自定义装置接收自定义消息。
[0176]
根据一个实施例,所述处理器还被编程为:将所述第一装置的操作设置为与第二lin装置通信,所述第二lin装置被编程为基于在检测到所述上电之后在所述第一预定时间量内未从所述第二自定义装置接收到所述自定义消息而从所述第一装置接收lin消息并对所述lin消息作出响应。
[0177]
根据一个实施例,为了识别所述通信总线配置,所述处理器还被编程为:于在所述第一预定时间量内从所述第二自定义装置接收到所述自定义消息后,将所述第一装置设置为与所述通信总线上的可能的第二lin装置通信;向所述可能的第二lin装置传输lin控制消息;以及在响应时间内监听来自所述通信总线上的所述可能的第二lin装置的对所述lin控制消息的响应。
[0178]
根据一个实施例,所述处理器还被编程为:于在所述响应时间内未接收到对所述
lin控制消息的所述响应的情况下,将所述第一装置的操作设置为从所述第二自定义装置接收消息。
[0179]
根据一个实施例,所述处理器还被编程为:基于接收到对所述lin控制消息的所述响应,确定所述通信总线上的所述第二lin装置;以及将所述第一装置的操作设置为与所述第二lin装置和所述第二自定义装置两者通信。
[0180]
根据一个实施例,所述处理器还被编程为:检测所述通信总线上的数据冲突;基于检测到所述数据冲突而更新所述第一预定时间量;以及存储所述更新后的第一预定时间量。
[0181]
根据一个实施例,所述处理器还被编程为:以所述接收模式操作以在所述更新后的第一预定时间量内从所述第二自定义装置接收所述自定义消息;于在所述更新后的第一预定时间内从所述第二自定义装置接收到所述自定义消息后,将所述第一装置设置为与所述通信总线上的可能的第二lin装置通信;向所述可能的第二lin装置传输lin控制消息;以及在响应时间内监听来自所述通信总线上的所述可能的第二lin装置的对所述控制消息的响应。
[0182]
根据本发明,提供了一种第一装置,所述第一装置具有:计算机,所述计算机包括处理器和存储器,所述存储器包括对所述处理器进行编程的指令,使得所述处理器被编程为:识别通信总线上的第二装置是以下各项中的一者且仅一者:(1)被编程为控制与所述第一装置的双向通信的校准装置,(2)被编程为控制与所述第一装置的双向通信的lin主装置,以及(3)被编程为仅从所述第一装置接收消息的自定义主装置;以及选择被指定用于与所述校准装置、所述lin主装置和所述自定义主装置中的所识别的一者通信的操作模式。
[0183]
根据一个实施例,为了识别所述通信总线上的所述第二装置,所述处理器还被编程为:检测上电;以及设置用于在所述通信总线上接收以下各项的通信速度:(1)来自所述校准装置的校准消息或(2)来自所述lin主装置的lin消息。
[0184]
根据一个实施例,所述处理器还被编程为:基于在第一预定时间量内接收到所述校准消息而选择被指定用于与所述校准装置通信的所述操作模式。
[0185]
根据一个实施例,所述处理器还被编程为:基于在第一预定时间量内接收到所述lin消息而选择被指定用于与所述lin主装置通信的所述操作模式。
[0186]
根据一个实施例,所述处理器还被编程为:基于在第一预定时间量内既未接收到所述校准消息也未接收到所述lin消息而启动第二计时器。
[0187]
根据一个实施例,所述处理器还被编程为:基于在第二预定时间量内接收到所述lin消息而选择被指定用于与所述lin主装置通信的所述操作模式。
[0188]
根据一个实施例,所述处理器还被编程为:基于在第二预定时间量内未接收到所述lin消息而选择被指定用于与所述自定义主装置通信的所述操作模式。
[0189]
根据一个实施例,所述处理器还被编程为:检测所述通信总线上的冲突;以及更新所述第一预定时间量和所述第二预定时间量中的至少一者。
[0190]
根据本发明,提供了一种系统,所述系统具有:通信总线;第一装置,所述第一装置包括第一计算机,所述第一计算机包括第一处理器和第一存储器,所述第一存储器包括第一指令,使得所述第一处理器被编程为:识别所述通信总线上的配置,所述配置包括以下各项中的一者且仅一者:(1)包括第二lin装置而不包括第二自定义装置的第一总线配置,(2)
包括所述第二自定义装置而不包括所述第二lin装置的第二总线配置,以及(3)包括所述第二lin装置和所述第二自定义装置两者的第三总线配置,其中所述第二lin装置是被编程为从所述第一装置接收lin消息并对所述lin消息作出响应的双向通信装置,并且所述第二自定义装置是被编程为仅向所述第一装置传输消息的单向通信装置;选择被指定用于与所识别的总线配置通信的操作模式;以及基于所述所选择的操作模式来控制所述第一装置的发送时间和接收时间;以及第三装置,所述第三装置包括第二计算机,所述第二计算机包括第二处理器和第二存储器,所述第二存储器包括对所述第二处理器进行编程的第二指令,使得所述第二处理器被编程为:识别所述通信总线上的第四装置是以下各项中的一者且仅一者:(1)被编程为控制与所述第三装置的双向通信的校准装置,(2)被编程为控制与所述第三装置的双向通信的lin主装置,以及(3)被编程为仅从所述第三装置接收消息的自定义主装置;以及选择被指定用于与所述校准装置、所述lin主装置和所述自定义主装置中的所识别的一者通信的操作模式,其中所述第四装置和所述第一装置可为相同的装置。
[0191]
根据一个实施例,为了识别所述通信总线上的所述第二装置的类型,所述第一处理器还被编程为:检测上电;在检测到所述上电之后以接收模式操作以在第一预定时间量内从所述第二装置接收自定义消息;在所述第一预定时间量之后确定未接收到自定义消息;将所述第一装置的操作设置为与第二lin装置通信,所述第二lin装置被编程为基于在检测到所述上电之后在所述第一预定时间量内未从第二自定义装置接收到所述自定义消息而从所述第一装置接收lin消息并对所述lin消息作出响应;以及在所述通信总线上传输所述lin消息。
[0192]
根据一个实施例,为了识别所述通信总线上的所述第一装置,所述第二处理器还被编程为:检测所述上电;在所述上电之后在第二预定时间量内从所述lin主装置接收所述lin消息;以及基于在所述第二预定时间量内接收到所述lin消息而确定所述第一装置是lin主装置。
[0193]
根据一个实施例,所述第二处理器还被编程为:在接收到所述lin消息后向所述第一装置发送响应;并且进一步其中,所述第一处理器还被编程为:在预定响应时间内接收所述响应;以及基于所述响应而确定所述第二装置是lin从属装置。