专利名称:使用发送缓冲器和流量整形实现的消息防丢失的制作方法
技术领域:
本发明的实施例总体上涉及车辆内的控制器局域网系统。
背景技术:
控制器局域网(CAN)是一种车辆总线标准,用来允许电子控制单元(ECU)与其它装置在没有中央计算机或主机的情况下相互通信。车辆系统和子系统具有大量ECU,它们控制致动器或从传感装置接收车辆运行数据。CAN系统是异步广播串行总线,该总线串行地传递消息。因此,同一时刻在通信总线上只传递一个消息。当预备向通信总线上传送消息时, 总线控制器控制总线上的消息转移。如果多个传送器同时开始一个以上的消息传输,就传送更占优势的消息。这称为仲裁过程。具有最高优先级的消息将赢得这个仲裁,并且以较低优先级传送的消息将检测到这种状况并等待。在不同的情形中,可通过CAN系统内连续的不同节点处理这些消息。在这样的情形中,向第一节点提供消息并且在不同时刻处理这些消息。当在相应节点完成对相应消息的处理时,沿着通信总线传递其至下一节点进行另外的处理。同时,在第一节点处理接下来的消息并且随后继续沿着通信总线将其传递至下一节点进行另外的处理。由于处理消息期间的固有延时或对通信总线的争用,消息可能在通信过程中丢失,因为没有中央计算机或主机确保每个消息得到保存且不遗漏。在这样的情况中,消息内容可能会丢失,因为被另一消息值盖写。而且,如果发送单元的缓冲空间有限,并且如果在发送单元仍然在缓冲器中保存前一消息的同时发送下一消息进行传输,那么,当前发送的消息将丢失,因为在发送缓冲器处存在争用。因此,需要确保消息得到CAN系统的适当处理,而不丢失消息。
发明内容
一个实施例的优点是排队在通信总线上等待传输的发送缓冲器中的消息的存储和消息从发送缓冲器转移给总线控制器的时间间隔,该存储和时间间隔降低了由节点接收侧的争用所引起的消息从CAN系统遗失的可能性。由抖动、有限的CAN控制器缓冲器大小和异步时钟引起的传输延迟的结果是传送的消息之间的争用,能够利用发送缓冲器和表明存储消息可以在通信总线上传送的时刻的计时器功能来避免这种争用。—个实施例设想一种用于车辆的分布嵌入式实时控制器局域网系统。在控制器局域网系统内,通信总线传送消息。多个节点形成通过通信总线可通信地连接的多个通信端点。每个节点包括用于生成车辆运行数据的至少一个应用部件和与该至少一个应用部件通信的电子控制单元。该电子控制单元生成包含车辆运行数据的消息。该电子控制单元在事件触发模式中用于启动向通信总线的消息传输。该电子控制单元包括用于存储生成的消息的发送缓冲器和与该电子控制单元对接的总线控制器。总线控制器管理消息往返于通信总线的转移。消息向通信总线上的转移由总线控制器间断执行。当存储在总线控制器的存储器内的前一消息等待在通信总线上传输时,总线控制器不能用于从电子控制单元接收消息。当该存储器空闲时,总线控制器可用于从电子控制单元接收消息。当总线控制器不可用时,发送缓冲器存储从电子控制单元收到的消息。电子控制单元进一步包括流量整形模块(traffic shaping module),其用于可选择地延迟消息向总线控制器的转移。—个实施例设想一种在车辆的分布嵌入式实时控制器局域网系统内的节点之间传送消息的方法。控制器局域网系统包括通信总线和用于控制消息在通信总线上的传输的总线控制器,其中消息向通信总线上的转移由总线控制器间断执行。控制器局域网系统进一步包括多个节点,它们形成通过通信总线可通信地连接的多个通信端点。每个节点包括至少一个应用部件、电子控制单元、发送缓冲器、接收缓冲器和至少一个总线控制器。该电子控制单元从至少一个应用部件接收车辆运行数据并且生成包含车辆运行数据的消息用于在通信总线上传输。该电子控制单元在事件触发模式中用于启动通信总线上消息向下一相应节点的传输。响应于总线控制器不可用,消息被存储在发送缓冲器中。当存储在总线控制器的存储器内的前一消息等待在通信总线上传输时,总线控制器不能用于从电子控制单元接收下一消息。当该存储器空闲时,总线控制器可用于从电子控制单元接收消息。确定存储在总线控制器中的前一消息何时成功地在通信总线上传送。响应于存储在总线控制器中的前一消息成功地在通信总线上传送,将流量整形标志置“O”。将流量整形标志置“O”表明消息不能转移给总线控制器。确定何时经过了预定时间期限。响应于经过了预定时间期限,设置流量整形标志,用于表明消息能够转移给总线控制器。响应于设置流量整形标志, 将消息从发送缓冲器转移给总线控制器。方案I. 一种用于车辆的分布嵌入式实时控制器局域网系统,包括
用于在所述控制器局域网系统内传送消息的通信总线;
形成通过所述通信总线可通信地连接的多个通信端点的多个节点,其中每个节点包
括
用于生成车辆运行数据的至少一个应用部件;
与所述至少一个应用部件通信的电子控制单元,所述电子控制单元生成包含所述车辆运行数据的消息,所述电子控制单元在事件触发模式中用于启动所述消息向所述通信总线的传输,所述电子控制单元包括用于存储所生成的消息的发送缓冲器;
与所述电子控制单元对接的总线控制器,所述总线控制器管理消息往返于所述通信总线的转移,消息向所述通信总线上的转移由所述总线控制器间断执行,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;
其中,当所述总线控制器不可用时,所述发送缓冲器存储从所述电子控制单元收到的消息,其中所述电子控制单元进一步包括流量整形模块,该流量整形模块用于可选择地延迟消息向所述总线控制器的转移。方案2.如方案I所述的系统,其中,所述发送缓冲器由相应节点内的多个应用部件共享。方案3.如方案I所述的系统,其中,入队任务模块管理从所述电子控制单元向所述发送缓冲器的消息转移,其中所述入队任务模块确定所述发送缓冲器内是否有可用的空闲单元,并且其中响应于所述发送缓冲器内有可用的空闲单元,将所述消息存储在所述空闲单元中。
方案4.如方案3所述的系统,其中,所述发送缓冲器包括用于保存所述存储消息的优先级排序的发送消息链表,其中所述入队任务模块将所述消息加到所述发送消息链表中。方案5.如方案4所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器中的存储消息,并且其中所述入队任务模块将所述消息加到所述发送消息链表中。方案6.如方案5所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器内的最旧的存储消息。方案7.如方案5所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器内的具有最低优先级的消息。方案8.如方案5所述的系统,其中,当所述总线控制器成功地在所述通信总线上传送相应消息时,所述流量整形模块启动计时器,其中所述计时器计算下一消息转移给所述总线控制器之前的预定时间期限。方案9.如方案8所述的系统,其中,出队任务模块管理从所述发送缓冲器向所述总线控制器的下一消息的转移,其中所述出队任务模块确定所述预定时间期限是否已经经过,并且其中响应于所述预定时间期限的经过,所述出队任务模块将在所述发送缓冲器中排队的所述下一消息转移给所述总线控制器。方案10.如方案9所述的系统,其中,从所述发送缓冲器转移给所述总线控制器的所述下一消息是存储在所述发送缓冲器中的最旧的消息。方案11.如方案9所述的系统,其中,从所述发送缓冲器转移给所述总线控制器的所述下一消息是存储在所述发送缓冲器中的具有最高优先级的消息。方案12. —种在车辆的分布嵌入式实时控制器局域网系统内的节点之间传送消息的方法,所述控制器局域网系统包括通信总线和用于控制消息在所述通信总线上的传输的总线控制器,其中所述消息向所述通信总线上的转移由所述总线控制器间断执行,所述控制器局域网系统进一步包括形成通过所述通信总线可通信地连接的多个通信端点的多个节点,每个节点包括至少一个应用部件、电子控制单元、发送缓冲器、接收缓冲器和至少一个总线控制器,所述方法包括如下步骤
所述电子控制单元从所述至少一个应用部件接收车辆运行数据并且生成包含所述车辆运行数据的消息用于在所述通信总线上传输,所述电子控制单元在事件触发模式中用于启动所述通信总线上消息向下一相应节点的传输;
响应于所述总线控制器不能用于接收消息,将所述消息存储在所述发送缓冲器中,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收下一消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;
确定存储在所述总线控制器中的前一消息何时成功地在所述通信总线上传送;
确定存储在所述总线控制器中的所述前一消息成功传输之后何时经过了预定时间期限;以及
在经过了所述预定时间期限之后,从所述发送缓冲器转移下一消息给所述总线控制器;以及在所述通信总线上传送所述消息。方案13.如方案12所述的方法,其中,当所述总线控制器不可用时,启动用于管理从所述电子控制单元向所述发送缓冲器的消息转移的入队任务模块,其中所述入队任务模块确定所述发送缓冲器内是否有可用的空闲单元,其中响应于所述发送缓冲器内有可用的空闲单元,所述相应的消息被存储在所述空闲单元中。方案14.如方案13所述的方法,其中,所述发送缓冲器包括用于保存所述存储消息的优先级排序的发送消息链表,其中响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器中的存储消息,其中所述入队任务模块将所述相应的消息加到所述空闲单元中。方案15.如方案14所述的方法,其中,响应于所述发送缓冲器内没有可用的空闲单元,删除所述发送缓冲器内的最旧的存储消息。方案16.如方案14所述的方法,其中,响应于所述发送缓冲器内没有可用的空闲单元,删除所述发送缓冲器内的具有最低优先级的消息。方案17.如方案13所述的方法,其中,从所述发送缓冲器转移给所述总线控制器的下一消息是所述接收缓冲器中的最旧的存储消息。方案18.如方案13所述的方法,其中,从所述发送缓冲器转移给所述总线控制器的下一消息是所述接收缓冲器中的具有最高优先级的消息。方案19. 一种在车辆的分布嵌入式实时控制器局域网系统内的节点之间传送消息的方法,所述控制器局域网系统包括通信总线、用于控制消息在所述通信总线上的传输的总线控制器,其中所述消息向所述通信总线上的转移由所述总线控制器间断执行,所述控制器局域网系统进一步包括形成通过所述通信总线可通信地连接的多个通信端点的多个节点,每个节点包括至少一个应用部件、电子控制单元、发送缓冲器、接收缓冲器和至少一个总线控制器,所述方法包括如下步骤
所述电子控制单元从所述至少一个应用部件接收车辆运行数据并且生成包含所述车辆运行数据的消息用于在所述通信总线上传输,所述电子控制单元在事件触发模式中用于启动所述通信总线上消息向下一相应节点的传输;
响应于所述总线控制器不可用,将所述消息存储在所述发送缓冲器中,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收下一消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;
确定存储在所述总线控制器中的所述前一消息何时成功地在所述通信总线上传送;
响应于存储在所述总线控制器中的所述前一消息成功地在所述通信总线上传送,将流量整形标志置“0”,其中将流量整形标志置“O”表明所述消息不能转移给所述总线控制器; 确定何时经过了预定时间期限;
响应于所述预定时间期限的经过,设置所述流量整形标志以表明所述消息能够转移给所述总线控制器;以及
响应于所述流量整形标志的设置,从所述发送缓冲器转移所述消息给所述总线控制器。
图
图
图
图
图
图
图
I是控制器局域网系统的示意图。
2是时间线,图解了控制器局域网系统中的数据消息处理。
3是时间线,图解了控制器局域网系统的缓冲技术。
4是根据本发明实施例的发送缓冲器的缓冲技术的流程图。 5是根据本发明实施例的发送缓冲器的入队任务的流程图。 6是根据本发明实施例的发送缓冲器的出队任务的流程图。 7是根据本发明实施例的流量整形管理程序的流程图。
具体实施例方式图I示出的是控制器局域网(CAN)系统10。CAN系统10包括多个电子控制单元 (E⑶)12-18,它们与允许这些E⑶彼此通信的通信总线20连接。多个E⑶12-18中的每个都与一个或多个传感器、致动器或控制装置(这个群体在下文称作应用部件)连接并且总体上分别由22-28代表。这些应用部件不直接连接到通信总线20,而是通过相应的ECU连接。这些应用部件还可以是ECU中的软件部件。单个控制特征可以覆盖多个应用部件,并且涉及从源头到目的E⑶经由连接到同一通信总线的一个或多个中间处理/控制E⑶的控制信号。对本发明来说,应当理解,CAN系统是本领域已知的,并且ECU、应用装置、CAN控制器和收发器称为节点并且这里将不再详细论述它们的结构的细节。在图I中,在通信总线20上串联地传送消息给每个E⑶12-18然后给应用部件 22-28。每个节点NI、N2、N3和N4在传送每个消息给下一相应的节点之前处理每个消息。 图2中图示了消息组中的五个消息dl-d5。消息dl-d5都连续地传送给第一节点NI。在第一节点NI处,定期处理每个消息并且然后相应地将其传送至第二节点N2进行另外的处理。 时间线30代表消息dl-d5输入给第一节点NI时的相应时间。时间线32代表消息dl-d5 提供给总线控制器(下文称为总线控制器)用于经由通信总线传输给第二节点N2时的相应时间。每个节点将具有至少一个总线控制器用于控制消息往返于通信总线的传送。由于通信总线上的争用,消息可能不会立即加到总线控制器上。如果存在争用,那么消息可能丢失。图2图解了消息丢失的一个例子。在第一节点NI处理第一消息dl然后在通信总线上将其传送至第二节点N2。时间线34图解了在第二节点N2收到消息dl时的时间。在第二节点N2处理第一消息dl然后将其提供给总线控制器用于在通信总线上传输。消息d2 成功地在通信总线上传送并且被第二节点N2收到,如时间线32图解的。在消息d2到达节点N2之前,节点N2上应用部件的第二执行需要输入,如38所示,在这种情况下,重新使用第一消息dl,如图2中的虚线36所示。在线34上的节点N2上的应用部件的第二执行与第三执行之间,两个输入消息d2和d3到达节点N2,如图2中的线32所示。因为每个节点的典型的缓冲器大小仅仅能够容纳一个消息,消息d2在能够被节点N2上的应用部件使用之前将被消息d3盖写。因此,节点N2上应用部件的第三执行将使用消息d3,并且消息d2将丢失。图2进一步示出了,由于接收缓冲器处的争用,消息dl被反复地重新使用,消息d3 和d4也丢失了。从第四节点N4输出的处理过的消息包括dl-dl-dl-dl-d5。数据消息d2、d3、d4丢失了,归因于可能是抖动、有限缓冲器或异步时钟的直接后果的消息盖写。为了减少由总线控制器处或通信总线上的争用引起的消息丢失,在每个节点采用基于软件的发送缓冲器。CAN控制器硬件包括用于数据传输和接收的硬件缓冲单元(CAN信箱区)。因此,本文描述的实施例涉及基于软件的缓冲策略,而不影响实际的CAN控制器硬件缓冲器使用。节点内相应的ECU将包括被相应节点上的全部应用部件共享的发送缓冲器。 例如,对于图2中描绘的节点N1-N4,N1中的全部应用部件使用公用发送缓冲器,N2中的全部应用部件使用公用发送缓冲器,N3中的全部应用部件使用公用发送缓冲器,而N4中的全部应用部件也使用公用发送缓冲器。图3图解了用于防止消息丢失的发送缓冲器的使用。如图3所示,以时间线40上示出的时间周期传送消息dl-d5至第一节点NI。时间线41代表传送出消息至总线控制器时的时间。时间线42代表在通信总线上传送出消息和第二节点N2收到时的时间。发送缓冲器44集成在第一节点NI的E⑶内并且被第一节点NI上的全部应用部件共享。发送缓冲器45集成在第二节点N2的ECU内并且被第二节点N2上的全部应用部件共享。发送缓冲器44临时存储消息,直到(I)总线控制器预备接受在通信总线上传输的下一消息,和(2)从传送前一消息开始经过了预定时间期限。等待通信总线上传送前一消息之后的预定时间期限经过确保了给下一节点的接收单元提供足够时间量来接收和处理消息。 在相应节点的接收侧,接收装置和应用部件都间断地执行。因此,总线控制器以一定时间间隔及时传送消息,以确保给了应用部件充足时间来读取前一消息中的输入数据,所以在接收下一消息之前可以清除前一消息。因此,即使总线控制器空闲并且可用于接收消息,来自消息组dl-d5的消息不能转移给控制器,直到在总线控制器证实前一消息成功地在通信总线上传送之后经过了预定时间期限。在图3中,在时间线41上,消息d2被示出为由总线控制器在通信总线上传送。消息d3转移给第一节点NI进行处理并且可用于转移给总线控制器,总体如时间线41上的46 所示。然而,在总线控制器记录了表明消息d2成功地在通信总线上传送的证实消息之后开始的预定时间期限还没有经过。因此,可用于在时刻46转移的消息d3保存在发送缓冲器 44中,直到预定时间期限已经经过,如时刻48标识的。在时刻48,消息转移给总线控制器用于在通信总线上传输。每个E⑶执行流量整形程序(traffic shaping routine),其基于计时器功能确定何时经过了预定时间期限,这表明消息何时可以转移给总线控制器。图4图解了发送缓冲器管理技术的流程图的宽泛概况,该技术用于从相应节点的应用部件转移消息给总线控制器。在框50处,应用部件处理车辆运行数据并且转移数据给节点内的E⑶,用于生成并且在通信总线上传送消息。在框51处,启动发送缓冲器入队任务。在框52处,相应的消息被存储在发送缓冲器的相应单元中。在框53处,启动发送缓冲器出队任务。在框54处, 消息转移给总线控制器用于在通信总线上传输。给总线控制器的消息的缓冲进程由入队任务模块和出队任务模块管理。当由于总线控制器的存储器被占用而使ECU不能传送消息给总线控制器时,执行入队任务。当总线控制器不可用时,入队任务模块提供程序将消息加到发送缓冲器的相应单元中。发送缓冲器包括多个缓冲单元。将发送缓冲器内的每个缓冲单元当作独立的存储块,并且不同缓冲单元中的消息在发送消息链表中被排序。发送消息链表优先考虑缓冲单
9元的顺序。应用部件提供车辆运行数据给ECU。入队任务模块将包含车辆运行数据的消息加到发送缓冲器中。ECU的入队任务模块保存每个缓冲单元的二进制标志。当对应的缓冲单元空闲时,二进制标志设为I。当对应的缓冲单元被占用时,二进制标志设为O。当入队任务模块需要增加新消息给发送缓冲器时,首先检查每个缓冲单元中的二进制标志的状态。如果二进制标志表明存在空闲的缓冲单元(即二进制标志设为1),那么将输入新消息到该缓冲单元中并且相应的缓冲单元被加到发送消息链表的末端。相应的缓冲单元的标志从I变到O。如果不存在可用的空闲缓冲单元,那么,能够采用不同的删除策略来容纳新消息,例如,首先删除最旧的消息或者首先删除最低优先级的消息。出队任务用来按顺序从发送缓冲器转移消息给总线控制器。在从总线控制器收到证实消息之后并且在设置流量计时器标志之后,触发出队任务。也就是说,在执行出队任务时,只在确定总线控制器可用之后并且在从总线控制器成功地在通信总线上传送前一消息开始经过了预定时间期限之后,才从发送缓冲器转移消息给总线控制器。如果满足转移消息的条件,那么将转移消息给总线控制器并且将删除发送缓冲器中的相应的消息;否则,该消息将留在发送缓冲器中直到满足那些条件。一旦消息在通信总线上成功传输,总线控制器将生成被E⑶接收的证实消息。流量整形模块会将流量整形标志置“O”并且将启动流量整形计时器。一旦计时器到时间了, 这个消息组的流量整形标志就被设置为表明这个组dl-d5内的任一消息能够被出队任务发送给总线控制器。当E⑶收到证实消息时并且当流量整形标志被设置(即流量整形计时器到时间) 时,执行出队任务。各种出队策略可用于确定选择发送缓冲器中的哪个消息转移给通信控制器。出队策略可包括首先删除最旧的消息或者首先删除最高优先级的消息。图5图解了如图4的框51处标识的启动的发送缓冲器入队任务模块的详细过程。 在框60处,启动发送缓冲器入队算法。在框61处,确定发送缓冲器中是否有空闲的缓冲单元可用。这个确定是基于任一缓冲单元是否具有表明空闲单元状态的二进制标志。如果确定缓冲单元是空闲的,那么程序继续到框63。如果确定发送缓冲器中没有可用的空闲缓冲单元,那么程序继续到框62。在框62处,按照删除策略删除发送缓冲单元中当前存储的消息(例如,首先删除最旧的消息或者首先删除最低优先级的消息)。在框63处,新消息存储在空闲的缓冲单元中。缓冲单元的二进制标志设为1,并且该缓冲单元被加到发送消息链表中。在框64处,对于相应的转移任务,入队算法结束。图6图解了如图4的框53处标识的启动的发送缓冲器出队任务的详细过程。在框70处,启动发送缓冲器出队算法。在框71处,确定总线控制器是否可用于接受消息。如果确定总线控制器不可用,那么程序继续到框74。如果确定总线控制器缓冲器可用来接受消息,那么程序继续到框72。在框72处,确定是否设置流量整形标志。如果确定流量整形标志被置“0”,那么程序结束。如果确定流量整形标志被设置,那么程序继续到框73。在框73处,按照出队过程策略从发送缓冲器移除消息并且将其转移给总线控制器(例如,首先使最旧的消息出队或者首先使最高优先级的消息出队)。
在框74处,对于相应的转移任务,出队算法结束。图7图解了流量整形程序的流程图。在框80处,启动流量整形程序。在框81处, 确定是否向总线控制器发送消息。如果确定最近已经由E⑶针对这个消息组向总线控制器发送消息,那么程序继续到框85。在框85处,流量整形标志被置“O”。程序继续到框87。 如果确定最近没有向总线控制器发送消息,那么程序继续到框82。在框82处,确定是否从总线控制器收到了表明总线控制器内存储的前一消息成功地在通信总线上传送的证实消息。如果收到证实消息,那么程序继续到框86。在框86处, 开始这个消息组的流量整形时间。程序然后继续到框87。如果确定没有收到证实消息,那么程序继续到框83。在框83处,确定流量整形计时器是否到时间了。如果流量整形计时器没有到时间,那么程序继续到框87。如果确定流量整形计时器到时间了,那么程序继续到框84。在框84处,设置流量整形标志,并且它触发用于转移消息给总线控制器的出队任务。程序继续到框87。在框87处,结束这个任务的流量整形程序。尽管已经详细描述了本发明的某些实施例,但是本领域技术人员将认识到用于实施由所附权利要求限定的本发明的各种替代设计和实施例。
权利要求
1.一种用于车辆的分布嵌入式实时控制器局域网系统,包括用于在所述控制器局域网系统内传送消息的通信总线;形成通过所述通信总线可通信地连接的多个通信端点的多个节点,其中每个节点包括用于生成车辆运行数据的至少一个应用部件;与所述至少一个应用部件通信的电子控制单元,所述电子控制单元生成包含所述车辆运行数据的消息,所述电子控制单元在事件触发模式中用于启动所述消息向所述通信总线的传输,所述电子控制单元包括用于存储所生成的消息的发送缓冲器;与所述电子控制单元对接的总线控制器,所述总线控制器管理消息往返于所述通信总线的转移,消息向所述通信总线上的转移由所述总线控制器间断执行,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;其中,当所述总线控制器不可用时,所述发送缓冲器存储从所述电子控制单元收到的消息,其中所述电子控制单元进一步包括流量整形模块,该流量整形模块用于可选择地延迟消息向所述总线控制器的转移。
2.如权利要求I所述的系统,其中,所述发送缓冲器由相应节点内的多个应用部件共享。
3.如权利要求I所述的系统,其中,入队任务模块管理从所述电子控制单元向所述发送缓冲器的消息转移,其中所述入队任务模块确定所述发送缓冲器内是否有可用的空闲单元,并且其中响应于所述发送缓冲器内有可用的空闲单元,将所述消息存储在所述空闲单元中。
4.如权利要求3所述的系统,其中,所述发送缓冲器包括用于保存所述存储消息的优先级排序的发送消息链表,其中所述入队任务模块将所述消息加到所述发送消息链表中。
5.如权利要求4所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器中的存储消息,并且其中所述入队任务模块将所述消息加到所述发送消息链表中。
6.如权利要求5所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器内的最旧的存储消息。
7.如权利要求5所述的系统,其中,响应于所述发送缓冲器内没有可用的空闲单元,所述入队任务模块删除所述发送缓冲器内的具有最低优先级的消息。
8.如权利要求5所述的系统,其中,当所述总线控制器成功地在所述通信总线上传送相应消息时,所述流量整形模块启动计时器,其中所述计时器计算下一消息转移给所述总线控制器之前的预定时间期限。
9.一种在车辆的分布嵌入式实时控制器局域网系统内的节点之间传送消息的方法,所述控制器局域网系统包括通信总线和用于控制消息在所述通信总线上的传输的总线控制器,其中所述消息向所述通信总线上的转移由所述总线控制器间断执行,所述控制器局域网系统进一步包括形成通过所述通信总线可通信地连接的多个通信端点的多个节点,每个节点包括至少一个应用部件、电子控制单元、发送缓冲器、接收缓冲器和至少一个总线控制器,所述方法包括如下步骤所述电子控制单元从所述至少一个应用部件接收车辆运行数据并且生成包含所述车辆运行数据的消息用于在所述通信总线上传输,所述电子控制单元在事件触发模式中用于启动所述通信总线上消息向下一相应节点的传输;响应于所述总线控制器不能用于接收消息,将所述消息存储在所述发送缓冲器中,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收下一消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;确定存储在所述总线控制器中的前一消息何时成功地在所述通信总线上传送;确定存储在所述总线控制器中的所述前一消息成功传输之后何时经过了预定时间期限;以及在经过了所述预定时间期限之后,从所述发送缓冲器转移下一消息给所述总线控制器;以及在所述通信总线上传送所述消息。
10.一种在车辆的分布嵌入式实时控制器局域网系统内的节点之间传送消息的方法, 所述控制器局域网系统包括通信总线、用于控制消息在所述通信总线上的传输的总线控制器,其中所述消息向所述通信总线上的转移由所述总线控制器间断执行,所述控制器局域网系统进一步包括形成通过所述通信总线可通信地连接的多个通信端点的多个节点,每个节点包括至少一个应用部件、电子控制单元、发送缓冲器、接收缓冲器和至少一个总线控制器,所述方法包括如下步骤所述电子控制单元从所述至少一个应用部件接收车辆运行数据并且生成包含所述车辆运行数据的消息用于在所述通信总线上传输,所述电子控制单元在事件触发模式中用于启动所述通信总线上消息向下一相应节点的传输;响应于所述总线控制器不可用,将所述消息存储在所述发送缓冲器中,当存储在所述总线控制器的存储器内的前一消息等待在所述通信总线上传输时,所述总线控制器不能用于从所述电子控制单元接收下一消息,并且其中当所述存储器空闲时,所述总线控制器可用于从所述电子控制单元接收消息;确定存储在所述总线控制器中的所述前一消息何时成功地在所述通信总线上传送;响应于存储在所述总线控制器中的所述前一消息成功地在所述通信总线上传送,将流量整形标志置“0”,其中将流量整形标志置“0”表明所述消息不能转移给所述总线控制器; 确定何时经过了预定时间期限;响应于所述预定时间期限的经过,设置所述流量整形标志以表明所述消息能够转移给所述总线控制器;以及响应于所述流量整形标志的设置,从所述发送缓冲器转移所述消息给所述总线控制器。
全文摘要
本发明涉及使用发送缓冲器和流量整形实现的消息防丢失,具体提供一种车辆的分布嵌入式实时控制器局域网系统,该系统包括ECU,其在事件触发模式中用于启动消息向通信总线的传输。每个ECU包括用于存储所生成的消息的发送缓冲器。总线控制器与ECU对接并且管理消息往返于通信总线的转移。消息向通信总线上的转移由总线控制器间断执行。当存储在总线控制器的存储器内的前一消息等待在通信总线上传输时,总线控制器不能用于从ECU接收消息。当该存储器空闲时,总线控制器可用于从ECU接收消息。当总线控制器不可用时,发送缓冲器存储从电子控制单元收到的消息。ECU进一步包括流量整形模块,其用于可选择地延迟消息向总线控制器的转移。
文档编号H04L12/40GK102594658SQ201210002828
公开日2012年7月18日 申请日期2012年1月6日 优先权日2011年1月6日
发明者S.梅农, S.蒋 申请人:通用汽车环球科技运作有限责任公司