嵌入式控制器可重新配置的处理器间通信的机构和装置的制造方法_2

文档序号:9547148阅读:来源:国知局
14所述的方法,其进一步包括重新配置控制器以通过改变至 少一个发送表和接收表的内容来改变处理器间通信。
[0026] 本发明的额外特征将从结合附图进行的以下描述和随附权利要求变得显而易见。
【附图说明】
[0027] 图Ia至Ic示出具有可运行实体的控制器,所述可运行实体根据两个不同的配置 以配置在第一和第二处理器上; 图2是每个处理器的一部分的说明性消息缓冲区; 图3是发送处理器的一部分的功能的流程图; 图4是将消息发送到发送芯/处理器的缓冲区的任务的流程图; 图5是复制发送到接收芯/处理器的缓冲区的消息的功能的流程图; 图6是将消息中的信号数据复制到适当的变量的任务的流程图; 图7是四个可运行实体RU R2、R3和R4彼此如何通信的实例的图示; 图8是包括分布在三个芯/处理器之间的可运行实体RU R2、R3和R4的控制器的图 示;以及 图9是包括分布在两个芯/处理器之间的可运行实体RU R2、R3和R4的控制器的图 不。
【具体实施方式】
[0028] 本发明的针对用于重新配置处理器间通信的系统和方法的实施例的以下论述实 质上仅是示例性的,而决不意欲限制本发明或其应用或使用。
[0029] 图Ia示出控制器10,诸如车辆上的控制器,其包括可运行实体34、36和38。图Ib 和Ic示出根据两个不同配置分别布置在处理器30和32上的可运行实体34、36和38。图 Ia示出在可运行实体34、36和38之间如何共享数据信号。如图Ia中所示,可运行实体34 在线路40上将信号数据发送到可运行实体36,并且还在线路42上将信号数据发送到可运 行实体38。可运行实体36在线路44上将信号数据发送到可运行实体38。可运行实体34 可以是例如车辆传感器输入数据。可运行实体36可以是车辆路径预测过滤器,并且可运行 实体38可以是碰撞可能性检测过程。
[0030] 图Ib示出分布在处理器30和32上的可运行实体34、36和38。根据此配置,在通 信链路50 (诸如总线)上发送两个消息52和54。图Ic示出以不同方式分布在处理器30 和32上的可运行实体34、36和38,从而使得仅需要在通信链路50上发送一个消息。因此, 改变可运行实体(诸如可运行实体34、36和38)的配置可能是希望的以优化处理器(诸如处 理器30和32)的总处理能力以及有效地使用通信链路50的带宽以及控制器10的存储器。
[0031] 为了建立重新配置处理器间通信的方式,使用以静态消息结构编码的协议、用于 消息存储的环形缓冲区和基础设施服务,如以下详细描述。在消息结构中建立具有减少的 内务操作的用于发送和接收消息的协议,即,该协议是与网络协议不同的高级协议。用于发 送和接收消息的协议能够支持基于消费者对带宽和总处理能力优化的需要的多个消息速 率,这与现有的固定速率解决方案不同,因为如上所述,这些解决方案不必要地消耗额外带 宽和总处理能力。因此,如本文所描述的用于发送和接收消息的协议实现稳健通信并且允 许各种诊断和容错策略的实施。用于发送和接收消息的协议的消息结构包括指示消息开始 的前导字节,本文称为_sync。_sync用来在标题破坏的情况下识别新消息。消息结构还包 括系统范围的独特编码信号/动作,本文称为」d,其具有被挑选以在发送位置与目的地之 间传输的预定速率,下文更详细描述。发送位置(本文称为_src)是接收信号/消息的芯/ 处理器。消息结构中还包括消息滚动计数,本文称为_cnt,其是每个_id、_src、_dst特有 的具体消息结构的序列号。例如,_cnt可以代表多个消息的数据包,从而使得从数据包中 间丢失的消息被检测到,如下文进一步论述。
[0032] 用于发送和接收消息的协议的消息结构还包括关于消息的长度(本文称为_size) 的信息。_size被静态地确定并且用来确保消息的正确接收,因为_size指示消息何时将结 束或者预期结束。标题数据破坏的检测(本文称为_hdr_chksum)也是协议的消息结构的一 部分。验证消息中的数据来自相同源、去往相同目的地、以相同速率(本文称为_data)也是 消息结构的一部分。另外,消息结构包括本文称为_data_checksum的内容,其由接收信号 的芯/处理器(诸如处理器32)用来检测数据破坏。如果检测到数据破坏,则用以下描述的 方式丢弃数据以节省存储空间。
表1。
[0033] 表1示出在发送芯/处理器(诸如处理器30)的发送表中如何组织信号数据。每 个处理器包括发送表和接收表,如下文更详细描述。表1的每行包括」d、_dst、_size和 具有变量参考和位置的变量列表。在消息中静态地组织数据,其中消息中的信号的位置是 固定的并且在配置时进行确定。如表1中所示,消息ml被发送到芯/接收处理器p2、具有 5的计数和10的大小。用于ml的变量序列是VI、随后是V3、随后是V8。表1中的第二消 息m2也被发送到接收芯/处理器p2、具有3的计数和10的大小,以及VI、随后是V2、随后 是V8的变量序列。第三消息(在表1中示为m3)被发送到接收芯/处理器p3、具有1的计 数和8的大小,以及V3、随后是V4的变量序列。
表2。
[0034] 表2示出接收芯/处理器(诸如处理器32)的接收表。表2的每行包括」d、_SrC、 _size和具有变量参考和位置的变量列表。如上所述,」d、_src和_size用来在存在标题 破坏的情况下正确地接收消息。例如,消息ml的大小预期为10,因此如果实际大小不为10, 则丢弃消息,如下文进一步论述。表1中的消息ml被预期匹配表2中的消息ml。使用表1 和2的行中的信息,接收芯/处理器32能够确定接收到的消息是否正确,即,是否已经被破 坏。如上所述,每个芯/处理器维持两个表,一个用于发送并且一个用于接收。两个表都是 在部署时产生,即,在设计时产生,并且消息结构的计数_cnt在接收侧使用以确定消息是 否将被丢弃。
[0035] 图2示出消息缓冲区60和62,它们是每个芯/处理器(诸如处理器30和32)的 一部分。消息缓冲区60是用来在处理所发送的消息之前通过跨(例如)总线传递消息来存 储所发送的消息的发送缓冲区,如下文更详细描述。缓冲区62是用来在处理所接收的消息 之前存储所接收的消息的接收缓冲区,如下文详细描述。缓冲区60和62中的每一个是环 形缓冲区,其中缓冲区60和62中的每一个包括两个指示符。第一指示符64指向写入缓冲 区的位置并且另一个指示符66指向读取缓冲区的位置。为了确定发送缓冲区60需要的大 小,使用以下方程:
其中^__!是用于发送缓冲区的所分配的大小,_海热_意为产生将被传输的 数据的所有可能速率的总和,爾意为所有可能目的地处理器/芯的总和,并且
是包括标题和数据的消息的大小。
[0036] 使用方程(1),算法计算大小_size或者每个消息的长度以确保发送缓冲区60能 够保持其预期在每个Tx_task之间(即,在将数据通信写入到缓冲区30的每个写入命令任 务之间)接收的所有数据通信。例如,缓冲区60可以被预期从可运行实体Rl接收20个数 据通信,并且从可运行实体R2接收1个数据通信。如果每个数据通信的大小是1并且消息 标题的大小是10,则缓冲区大小可以被计算为20*(10+1) + (10+1) = 231。类似地,为了 确定接收缓冲区32需要的大小,使用以下方程:
其中是用于接收缓冲区的所分配的大小,_每?凝意为产生数据通信的 所有可能速率的总和,并且W ewe意为所有来自不同的源处理器的消息的总和,并且
;是包括标题和数据的消息的大小。
[0037] 方程(2)是用来计算大小_size或者每个消息的长度以确保环形缓冲区32能够 保持其预期在每个Rx_task之间(例如,在从缓冲区30获取事物以放在总线50上的每个读 取命令任务之间)接收的所有数据通信。使用指示符66以读取并且使用指示符64以写入, 下文详细描述的函数在写入索引开始(即,在指示符64开始)顺序地写入数据。在发送的消 息的最高速率下调用下文详细描述的单独的任务函数,以从发送缓冲区62的读取指示符 66读取将被发送的消息、将消息公式化并且以下文描述的方式将消息发送到通信链路(例 如总线)。在接收侧,在消息到达时调用下文详细描述的中断服务,以使得中断服务检查消 息标题并将其与在接收表(诸如表2)中可获得的信息相比较。有效消息被放入接收缓冲区 62中,并且在接收的消息的最高速率下调用的接收任务将消息的信号数据解包并用下文更 详细描述的方式将信号数据复制到适当的变量。使用以上描述的方程(1)和(2)计算缓冲 区60和62的大小
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1