一种用于分布式控制系统的高速嵌入协议的生成方法与流程

文档序号:18266915发布日期:2019-07-27 09:14阅读:271来源:国知局
一种用于分布式控制系统的高速嵌入协议的生成方法与流程

相关申请

本申请是2013年3月15日提交的申请号为13/833238的美国申请的部分继续申请,其内容在此通过引用包含,尽管完全重写。

本发明涉及电子通信,更具体地涉及一种用于控制网络的高速协议。



背景技术:

电子设备通过各种各样的方式相互通信,通常基于给定的上下文的要求。一种这样的上下文是控制系统上下文。不像简单的通信系统,其中系统只允许通过该系统通信的设备之间进行通信,控制系统以明确控制在控制系统上连接以通信的模块为目的而通信。这样的系统允许其他应用运行在各种模块上。然而,分布式嵌入控制系统中的那些应用,应协调工作。

提供分组控制,大多数分布式嵌入式控制系统是建立在一个通信协议标准上,例如包括can(iso11898)、sercos、flexray、ethercat,有时甚至与其他系统之间使用ethernet。高层协议被嵌入在通信标准之上,以提供参与控制系统的的电子控制单元的应用之间数据交换的规则、时序规则、顺序规则以及类似的辅助交换信息的分布式应用之间的通信的规则。canopen、devicenet、sds、j1939以及nmea2000只是几个协议的例子,这些协议分层在can标准之上。甚至使用元协议(metaprotocols),像cankingdom,通过它可以为特定的分布式嵌入式控制系统,构建和优化更高层的协议。

每个协议标准都有自己的长处和短处。理想的通信有无限的带宽、没有延迟以及完整的数据完整性。可用的通信可选方案是费用不同于理想方案且必须找到的折中方案。例如,以太网具有大的带宽,但由于它的消息冲突处理具有不好的时效性。can具有高效的冲突解决方案,但具有低的带宽,无同步支持。sercos快速,但所有节点必须支持系统中要求最高的节点的通信要求。因此,当设计分布式嵌入控制系统时一大困难,是选择基本的通信系统,以满足给定系统的需要。另一个复杂化的因素是系统的不同部分通常有不同的需要。一些部分可能涉及高级反馈回路,高级反馈回路要求精确的时间同步和短的延时,而其他部分可能根本不是时间关键的,而是取决于事件的正确顺序。在另一个实例中,一个系统可能在运行时条件下使用低的带宽工作良好,但在维护模式下重新刷新(re-flashing)模块需要高的带宽。此外,行业需要大量的开发与分析工具以及精通所选择的通信协议找到正确折中方案的工程师。应用给定的技术以利用协议的好的特性并极小化它的缺点的方式,典型地需要基于所选择的协议以及相关工具、在设计和维护分布式嵌入式控制系统方面的长时间的实际工作经验。

在can系统的实例中,开发了canfd协议,尝试解决can议的数据带宽的限制。然而,该系统不是与以前的基于can的模块向下兼容的。因此,使用canfd协议的模块不能被安装到具有基于can的模块的控制网络,实现与那些模块的通信。另一个缺点是,canfd协议是基于模块的寻找一个给定的时间点,这就要求模块具有高度精确的时钟和处理器。具体来说,can-fd要求相对于一个边沿结合采样点的位置,从第一比特率切换到第二比特率。该解决方案要求从边沿到采样点以及第一比特率定义的采样点的共同的位置的时间段上的稳定的时钟。获得采样点的精确定义,限制了用于运行can-fd控制器的可能的时钟频率。此外,尽管通过以前的基于can的系统,速度被提高,最大消息长度仍然限制到64字节,这样的系统对于系统设计者来说缺乏灵活性。

此外,对于基于can的控制系统的当前用户,canfd可能呈现一些实现挑战。在另一个实例中,汽车工业使用基于can的模块,用于车辆中各种部件之间通信。考虑到汽车业务的性质,简单改变车辆系统中的一个模块是非常昂贵的。鉴于面临canfd模块与can模块集成的挑战,引入一个canfd模块,迫使汽车制造商要么将给定的车辆中的每一个模块改变为canfd(吸收许多倍的设计、制造以及测试每一个新模块的成本),要么分割车辆的通信总线为两根:一根运行can,另一根运行canfd。因此,需要一项技术,允许随着时间推移将canfd模块逐渐引入到,例如汽车行业中,预先建立的基于can的系统,以降低canfd模块可能面临的进入壁垒。



技术实现要素:

一般而言,根据这些不同的实施例,第二协议以一种方式嵌入到第一协议中,这种方式下支持第二协议的模块可能会意识到并使用的第一协议,而只支持第一协议的模块可能没有意识到第二协议。使用第二协议的模块的操作,不打扰未配置使用或理解第二协议的模块的操作。通过一种方法,使用第二协议发送的消息将被视为使用第一协议发送但没有必要理解的消息或视为需要特定响应。在另一种方法中,使用第二协议的模块可以被配置以在第一协议消息的传输期间由另一个模块发送消息,第二协议消息被触发在第一协议下发送的消息的预期方面。

在一个具体的实例中,第一协议可能是can协议,第二协议是将位嵌入到can协议的部分的协议。例如,can协议的位通常包括几个位份额,can协议操作是通过在特定的部分或单个位份额寻找特定的信号电平。通过一种方法,因此,第二协议可以在can信息包中包括发送附加信息,通过使用在定义的位份额以外的can信息包的传播段位的位份额。

第二协议信息被嵌入,这样第二次协议中的位的下降沿不会干扰只理解第一或can协议的模块的正常操作。这一点可以做到,例如,通过实现使用第一与第二协议的模块同步于消息包的一部分。使用这种方法,可以允许使用第二协议模块使用第一协议消息的消息控制,其携带第二协议消息以控制第二协议消息,从而增加了用单个第二协议消息发送的数据量。

这些教导是可扩展的,使得单个常见控制网络上的多个模块,可以在第一协议内使用多个不同类型的嵌入的协议。此外,使用第二协议的模块可以被安装到使用更老的模块的控制网络中,所述更老的模块被配置为只使用第一协议,因而在升级现有控制网络允许显著灵活性。

在汽车业的实施例中可以设想这样的好处。这里,新模块可以配置以使用can标准,如本文所述的第二协议,以及canfd协议来操作。这样的模块可以被引入其他稳定的基于can通信总线,并通过使用第二协议的提高通信速度。随着时间的推移,所有的老的can模块被替换之后,这些模块可以使用canfd协议进行通信,以提供一致、高速的通信环境。以这种方式,采纳使用canfd协议的模块可以立即进行,而没有随之而来关于将canfd模块合并入具有旧的can模块的通信总线的担忧。

这些和其他益处在对以下详细描述进行彻底的审阅和研究,可能变得更清晰。

附图说明

图1包括根据本发明的各种实施例配置的控制网络实例的框图;

图2包括can消息的示意图;

图3包括实例can时间份额的示意图;

图4包括实例can位的示意图;

图5包括根据本发明的各种实施例配置的,第二协议消息嵌入第一协议消息的部分,这里是can消息的传播段部分,的实施例的示意图,;

图6包括根据本发明的各种实施例配置的,第二协议消息嵌入第一协议基于can的消息的部分的另一个实施例的示意图;

图7包括根据本发明的各种实施例配置的,第二协议消息嵌入第一协议基于can的消息的部分的实施例的示意图,其传播段部分设置为显性;

图8包括根据本发明的各种实施例配置的,模块如何操作的实施例的示意图,其在第一协议基于can消息的一部分中使用第二协议消息,解释接收的具有信号失真的消息;

图9包括根据本发明的各种实施例配置的,第二模块如何操作实施例的示意图,其在第一协议基于can消息的一部分中使用第二协议消息的,解释图8的接收的具有不同的信号失真的消息;

图10包括根据本发明的各种实施例配置的,控制网络实例的框图;

图11包括根据本发明的各种实施例配置的,从一个模块发送的实例消息与被第二模块感知的消息的比较图;

图12包括根据本发明的各种实施例配置的,从一个模块发送的实例消息与第二模块以第二协议发送消息的比较图,第二模块发送消息以响应实例消息的接收,;

图13包括根据本发明的各种实施例配置的,从一个模块发送的实例消息与第二模块以第二协议发送消息的比较图,第二模块发送消息以响应实例消息的接收,;

图14包括根据本发明的各种实施例配置的,具有星形拓扑的控制网络实例的框图;

图15包括根据本发明的各种实施例配置的,通信设备实例的框图;

图16包括根据本发明的各种实施例配置的,几个发送的消息实例的原理图。

本领域技术人员将理解,图中的部件为简化和清楚被绘制,并且不一定按比例绘制。例如,一些图中的部件的尺寸和/或相关位置,相对于其他部件可能被夸大,有助于改善对本发明各种实施例的理解。另外,常见但公知的部件,该部件是有用的或在商业上可行的实施例中必要的,常常不被描述,以便不妨碍对各种实施例的观察。将进一步理解的是,某些动作和/或步骤可以被描述或描绘为以特定的顺序发生,而本领域的技术人员将理解,这样的关于顺序的特异性与实际上并不需要。还应当理解的是,这里所使用的术语与表达具有通常的技术含义,与如上所述的本领域技术人员理解的术语与表达相符,除非文中给出了不同的特定含义。

具体实施方式

现在参见附图,尤其是参见图1,将呈现一个与许多这些教导是兼容的说明性的系统。在图1中,控制网络1000示出了在总线1005上通信的各种设备,但这些教导可以适用于具有各种拓扑结构的任何一种的控制网络。通信设备装置1010可以被认为是控制网络1000的一个模块或节点,包括一个配置为按照控制网络的拓扑结构连接到控制网络1000的通信端口1012。通信设备装置1010还包括一个处理设备1014,可操作地连接到控制网络1000,以通过通信端口1012在控制网络1000上控制接收和发送通信。本领域技术人员会认识到并理解,这样的处理器可以包括一个固定的目的、硬连线的平台,或者可以包括部分或全部可编程的平台。所有这些架构选择都是本领域众所周知的,在这里不需要进一步描述。

通过一种方法,处理设备1014被配置为:在控制网络1000上根据第一协议传输消息包的过程中,传递第二消息,该第二消息使用第二协议被嵌入在消息包中。例如,处理设备1014被进一步配置为:为第一与第二协议,基于至少消息包的一部分,实现在控制网络1000上与第二通信设备1020、1030、1040、1050、1050和/或1060同步。在另一种方法中,处理设备1014支持第一与第二协议,使用这两种协议与通信设备1020和1050通信,通信设备1020和1050也支持第一和第二协议,而通信设备1030,1040与1060仅支持第一协议。本实施例中,按照第二协议的消息中的任何信息,将被仅运行第一协议且被其定义的通信设备1030、1040和1060解释为噪声,并被被忽略。

一个将第二协议消息嵌入第一协议消息的实施例,参照图2-10,在基于can的系统的上下文中进行说明。控制器局域网络(can)标准(国际标准组织(iso)11898)是一种常用的协议,用于分布式嵌入式控制系统,尽管这些一般性教导也可以被应用于其它协议。

在该实现中,支持can协议iso11898的模块,可以与在同一总线上支持第二协议的模块共存,通过放弃利用can的一个或多个特征。图2示出了can的一些主要特征。can设计为总线拓扑结构,使用两个电压等级工作,无电压101,表示值“一”,电压102表示值“零”。这种布置意味着零比一显性;换句话说,如果第一发射机发送一个一,同时第二发射机发送一个零,那么只能检测到零。空闲的总线可以看作一个一的连续的流。消息103以一个零比特位开始,帧起始(sof)104,随后是十一位(标准)或29位(扩展)的标识符105,加上2个协议位(共31位)以及远程传输请求(rtr)位106。sof与标识符消息部分构成仲裁域107,通过逐位仲裁解决总线冲突。从消息的其余部分108直到应答位(ack)109,总线上只有一个传送装置,由于其他传送装置被控制为不活跃以响应这些初始消息部分。特别是,在消息的仲裁部分之后,以rtr结束,只有一个传送装置将发送,而其他所有的通信单元将只按该协议接收位。消息的剩余部分108,以具有两个显性位的控制域110开始,一个四位数据长度代码(dlc)111表示随后的数据域112的长度,它可以不包含任何数据(dlc=0)或多达八字节(dlc=8)。换句话说,标准的can消息的数据域112可以从0到64位长。到目前为止,消息通过一个放在第十六位的crc域113的15位crc码检查,其中最后一位是crc定界符114。ack域115包括ack位109,隐性位、ack定界符116紧随其后。消息103的其余部分是包含七个连续隐性位的帧结束(eof)域117。三个隐性位,间歇118,必须在总线空闲用于新消息之前传送。

根据can规范(iso11898-1),一位构成时间份额。参考图3,标准的can消息的单个位份额被描述为:时间份额130,它是源于发送器/接收器的时钟的振荡器周期131的固定时间单位。时间周期131可能可选择地来自于一个单独的振荡器或时钟。可编程的、具有整数值的预分频器,范围至少从一至三十二,以定义时间份额为给定数量的最小时间份额。因此,从最小的时间份额开始,时间份额将具有长度:

时间份额=m*最小时间份额,

其中m为预分频器的值。

在操作中,因此,另一实例can位132,如图4所示,构成单个时间份额。第一时间份额是同步段133,随后是传播段134,其包括一个或多达至少八个时间份额。传播段被定义为一段时间,以确保一个信号波可以从发送器传播到总线的远端并返回,这也对应于控制网络上的最远的模块接收该信息并响应所需的时间量。因此,传播段长度被设置为允许can协议的位仲裁方面工作。can位132的最后部分包括相位段,相位段l135和相位段2136。相位段是对称的,每个具有一个或多达至少八个时间份额长。相位段占用系统中的不同节点之间的时间偏移。can位应是从4个到至少25个时间份额可编程。

can系统的所有时钟假定为不同步。当sof104被发送时,每个模块的时钟被同步到下降沿140,并且每一个模块统为传播段与相位段l指定的时间份额的数目。例如,接收的下降沿的模块的内部时钟,可在该内部时钟的精度范围内确定预期采样点的时序,即通过了解位在内部时钟中的定义,模块可以计算采样点相对于内部时钟的位置。在can中,典型地通过时间份额单位做到这一点,每个时间份额是若干本地时钟元素(localclockelement)。信号的电压在采样点141被测量。如果该电压仍然存在,模块决定一sof检测被检测,随后的电压变换(voltageshift)根据can规范被解码。如果在采样点141没有电压,下降沿被视为毛刺,并被忽略。该特征可以被看作是一个低通滤波器,滤除总线上的扰动,例如,由于波反射。这样的特征使得can在不良的布线安装中可靠与宽容。

在某些通信系统中,电压边沿可以辐射高频,从而引起电磁兼容性(emc)问题。为了减少这种问题,can规定位的不归零(nrz)解码,换句话说,值相同的连续位不产生任何边沿,相反,这些位由推算(deadreckoning)解码。各个模块的时钟仅被重新同步到下降沿,定义为从隐性(1)位到显性(0)位的过渡。can具有位填充规则:相同值的五个连续位序列之后,应插入相反值的填充位,以确保重新同步会发生。因此,在正常情况下至少十位后,一个重新同步会发生。can规范要求采样点在至少13位的相位段内。

关于can更详细的信息,可以查阅iso标准1898,以及文章“can位时序的配置”(theconfigurationofthecanbittiming),作者弗洛里安·哈特维希(florianhartwig)、阿明·巴斯默(arminbassemir)(罗伯特·博世有限公司,abt.k8/eis),在第六届国际can会议上提出,11月2至4日,都灵(意大利),由自动化中的can(cia)出版,numberg,德国,该材料通过引用其全部包含在本文中。

转到图5带宽问题的一个解决方案的实例,是修改第一协议,这里为can协议,在标准can信息的部分中嵌入第二高速协议。在这种方法中,一个控制网络模块的处理设备可以被配置以控制第二协议使用比第一协议的比特率更高的比特率,例如,控制第二协议使用比所述第一协议的比特率高整数倍的比特率。或者,第二协议的比特率也可以是比第一协议的比特率高非整数倍的比特率。例如,第一协议可以具有100位/秒的比特率,并且第二协议可以具有从400位/秒至6兆位/秒的任何比特率。比特率将是(在每一个第一协议位中的第二协议位的数量)/((传播段时间长度)×利用率)位/秒。第二协议的比特率仅受在第二协议控制逻辑中的时钟分辨率限制。在每个时间份额中位的数量可以是,例如每3个时间份额20个。在任何情况下,结果是,处理设备被配置以实现第二协议,通过在第一协议的单个位份额内增加位。换言之,一个can消息包可以由具有多个位份额的位定义,can消息包的数据由在一个位的定义的位份额处的信号电平定义,其中定义的位份额小于一个位的所有位份额。例如,一个标准can位使用定义的位份额,定义的位份额包括各个位的第一位份额与各个位的采样点位份额,其中第一位份额是一个同步段位。该样本点典型地是位的相位段l与相位段2之间的部分,如图4所示。剩余的未定义位份额可用于第二协议。因此,在一个实施例中,为嵌入第二协议,处理设备被配置以在can消息包内发送的附加信息,使用定义的位份额以外的can消息包的传播位的位份额,由使用标准can消息协议的节点检查。

在图5的实施例中,第二个协议消息被嵌入到can位的传播段中,can位在can消息中在在can消息的仲裁域后被发送。传播段仅在can消息的仲裁部分在节点之间交换期间使用。多于一个模块可以同时在仲裁期间传输,这可能会导致位时序波动或者位时序识别问题,这些问题由不同的模块在大约相同的时间通信引起,从而产生冲突,由仲裁来解决;和/或由一个或多个模块中的不良的时钟引起。仲裁周期之后,只有一个模块发送,总线上的位时序反映发送方的振荡器。如此配置,第二消息可以被嵌入这样的can位的传播段的时间份额中,而不考虑给控制网络上冲突噪声的损耗。另外,没有配置为以第二协议接收消息的模块,将不在这样的位的传播段期间寻找信号变化,这样,消息的该部分中的信号变化将不会不利地影响这样的模块。因此,处理设备被配置为以实现第二协议,通过在第一协议的单个位份额内增加位,根据第一协议测量为非特定电平。

更具体地,图5示出了一个实例can位,具有八个时间份额的传播段205,与两个各有一个时间份额的相位段203和204。该位以同步段202开始,其中任何电压变换201在这段时间内完成。位时间上的电压电平是由实线206表示。支持第二协议的模块,使用用于嵌入的高速位流的传播段,通过采样每个时间份额的电压值,并按照can规则解码该值,其中检测到的电压被解码为零,而无电压为一。只支持原有的can协议的模块将下降沿201解码为不同步或重新同步边沿,并忽略随后的电压变化。在采样点207电压电平是显性的,can模块将位正确地解码为零。支持第二协议的模块,解码采样点210至217如下:210=0;211=1;212=1;213=1;214=0;215=0;216=1;217=0。这里,该模块的处理设备被配置以对第一协议与第二协议的信号指示使用相同电压电平,尽管这不是必需的。的确,处理设备可能被配置以实现所述第二协议,通过在第一协议的单个比特份额内增加位,根据第一协议测量为非特定电平。此外,尽管所说明的第二协议位或采样点的宽度被表示为与第一协议采样点相同的宽度,其他时间长度不同于第一协议的采样点的时间长度是可能的。放置在传播段的第二协议位的数量,仅受限于物理层的性能与处理第二协议的控制器逻辑中的时钟分辨率。

图6示出了嵌入第二协议消息到整个第一协议基于can的消息的实施例。虚线300示出了总线上的电压电平,解释为以空闲总线开始的can。实线320示出了如上所述的嵌入到标准can消息的第二协议的电压电平。下降沿301表示起始帧(sof)位303。下降沿在同步段304中被检测,并且该位的值在采样点305通过支持原始can协议的模块被验证。它忽略任何额外的下降沿,例如初始边沿302之后的边沿322。在嵌入在can位中位序列321中,支持第二协议的模块会读出0111001。sof后的两个第一can位306和307,具有值11。位306的开始处的边沿308是上升沿,因此不影响can重新同步。嵌入的第二个协议在can位306中发送10001101,包括产生一个下降沿323。can模块将忽略该边沿以及随后的边沿324,因为它并不寻找在这些点处的边沿,不重新同步,因为它在采样点305采样显性电平。can模块将在点309处正确采样隐性电平,假设下一位307在点310开始,计算采样点311的位置。

然而,在这个实施例中,第二协议将产生距离位307假定的起始的310两个位份额的下降沿326,这将导致在can模块重新同步,并移动采样点一个位份额到312(因为这个例子中相位段在只有一个位份额长)。但在支持第二个协议的发送模块使用的can消息的错误位置,can模块仍然正确采样位值为1。在随后的can位313中下一个下降沿327,将移动can采样点到另一个时间份额,并进入了错误的位。那么它可能错误地采样由第二协议产生的显性电平,由314表示。

为了避免这种错误,用于第二协议下操作的模块的处理设备被配置以设置同步段位份额为显性,例如,在第一协议中隐性样本之后。这一规则的缺点是,与原来的can协议相比,将在can消息中引入更多的下降沿,但任何高速协议,类似地会产生额外的下降沿。在这种方法的一个实施例中,填充位用于第一协议,以确保至少每10位一个重新同步边沿。具有这个新的边沿生成器,重新同步会发生在每一个隐性位,且从来不超过6位。借助这样的结构,实例系统可以用公差少66%的时钟运行。这种方法的一个潜在缺点是,只有在所有消息都用同步段中额外的边沿发送好处才可以实现,并且如果消息按照第一协议发送该方法可能无效。这个特征也可用于在第一协议中将采样点移出传播段。通过具有仅为隐性位的第一协议的第一字节,有可能有八个边沿,其将采样点移动至少八个时间份额,移出传播段。这不会覆盖所有情况,因为传播段可以有八个以上的时间份额在传播段中。在大多数情况下,这应该是足够的,其他实现方式可以是可编程的,以覆盖在第一协议中使用的任何设置。

图7示出了与图6相同的消息,但应用了第二协议的新规则。预期的上升沿308现在被第二个协议的上升沿401代替,因为同步段402是显性的。第二协议可能已将上升沿始终移动到在403的相位段l,can模块仍然会在309正确采样。同步段404将产生一个下降沿405,其将重新同步can模块,can模块将在采样点410正确地采样1。使用这样的方法示出了一种方式,操作第二协议的模块的处理设备,可以被配置以为第一协议与第二协议实现在控制总线上与所述第二通信设备同步,基于包括一个按照can协议发送的位的消息包的相同部分。

返回参考图2,从仲裁域107到应答位115的部分108,包含第二个协议可以嵌入的86个can位。通过根据上述实施例实现的嵌入的协议,附加的86字节可以被添加到一个8字节的can消息。采用一种方法,嵌入的协议能够包括24位的循环冗余码(crc)之和。而且,这些位中的最后部分必须被保留,用于发生错误的crc和的情况下发送错误帧。如果一个24位crc和被认为对于来自嵌入的协议的89字节数据是足够的,一个八字节的can消息可以传送97字节的数据,增加一个can通信的带宽12倍。一种进一步的实施例的方式,处理设备被配置以使用一个can消息包的crc位作为所述can消息包的质量控制检查,并且使用定义的位份额以外的crc位的位份额用于can消息包内发送的附加信息的质量控制检查。在这种方式中,其中第二协议被实现,例如在上述图5的实施例中,使用位的传播段部分的位份额,不被原有的can协议使用,用于标准can协议crc位的相同的未使用的或未定义的位份额可以被用作错误检查信息,错误检查信息用于使用第二协议发送的信息。在一个这样的方法中,更长的crc域被选择,适合于嵌入的协议的更长的数据,例如,一个21位的crc。这对于只应通过使用第二协议的节点接收的消息更为有效。在一个这样实施例中,基本can消息的数据域应只包含隐性位,can填充位和cancrc位的外形是已知的先验,消息中位的总数不依赖于消息中的数据。然后,第二协议的crc尽可能被放置在can消息中远离sof的位置,例如距离帧结束位域末两位。如果crc不匹配,一个can错误标志可以在eof位之前的位被发送,触发系统中每一个的can节点拒绝该消息。实现一个规则,每一个can位的同步段具有各自位值相反的值,即隐性位的同步段是显性,反之亦然,会为嵌入的协议产生更多的同步边沿。多个同步边沿将允许嵌入的协议更高的比特率,更高的比特率也可以被用来改善第一协议的crc保护。由于crc的计算与填充位结合,第一协议的定义有一些不利因素。第二协议可以解决这种忧虑,通过使用crc计算的不同定义。通过以第二协议只添加一个额外的位,并将该位设置在传播段中,与第一协议的采样点的值相同,平行进行两次crc-计算,一次按照第一协议,另一次按照第二协议使用第二改进的crc。包括在第一协议的crc位的传播段中的第二协议crc,都将被并行发送。仅支持第一协议的单元,将不使用第二协议crc信息,并且不检测任何问题,但所有第二协议单元将平行检查两个crc,并生成错误帧,否则都是正确的。在另一种方法中,第一协议消息可以被重新发送,其全部在crc位的第二协议部分中,作为对接收到的第一协议消息的准确性的进一步检查。

在这个实施例中,被选择的11位份额的数量构成一个can位。十八个位份额可以选择嵌入两个字节到每个can位中。带宽因而可以增加24倍。can规范规定,一个位应可编程为至少25个位份额,这样带宽可以增加得更多,例如一位使用35或67个位份额。限制仅由时钟、收发器以及系统中使用的电缆的质量确定。如此配置,一个优点是,像can一样的协议可以逐渐增强,因为新的模块设计可以利用更多的调制解调器和复杂的部件,并且在系统中与传统模块仍然是完全向后兼容。

从上面的框架开始,许多修改的方法可以使用,以适合各种控制网络的设计需求。

在一个实施例中,专利号为7711880标题为“分布式控制与监督系统中消息的图示”(schematizingofmessagesindistributedcontrolandsupervisionsystem)的美国专利,其通过引用并入本文,介绍了以一种方式设计can系统的几种方法,这种方式中冲突被避免,例如通过组合消息调度与can冲突解决机制。cankingdom协议描述了如何从协议原语的建立一个协议。任何can系统具有有限数量的消息。假定这样的消息的数量在128到256的范围内,仲裁域可以限制到一个字节。rtr位can协议原语是可选的,可以不使用在本实施例中。此外,控制域中的两个保留位不使用,建立了系统特定的协议,传统的can模块不参与。在dlc域可以被修改,然后允许用于根据给定的需要,定义数据域的16个不同的长度。

如果这样的方法被用在一个给定的控制网络,那么网络上用于can消息的仲裁域107可通过嵌入的协议被使用。在这种方法中,用于操作第二协议的模块的处理设备被配置以为基于can的第一协议使用完整或部分碰撞规避,并在该消息包的仲裁部分嵌入第二消息的至少一部分。这将添加另外12或32个嵌入字节到can消息中,如上述实例中实现的,这样的109或129个数据字节可以包含在一次can传输中。

在另一个实例中,can通信的最大位速率被总线长度限制。专利号5696911标题为“用于消除故障和/或允许的高速传输的串行总线连接的装置,以及发射器和接收器单元被链接到后面”的美国专利,其通过引用并入本文,介绍了当一些模块可以被调成静音模式,更高的比特率如何被使用,因而不完全参与can错误保护过程。通过应用如上所述的嵌入的协议到这样的系统中,通信的带宽可以增加另一个数量级。

在另一个实例中,can可以被用作其他新协议的载波帧。一些can更高层协议不与canfd向后兼容,可能不能将高速协议整合到该标准中。一个这样的协议是众所周知的saej1939。这个问题的解决方案,包括分配几个特定的can识别符,其具有固定的can域,唯一目的是成为新的协议的载体帧。一个j1939帧的前三位被接收机忽略,用于形成7个发送优先级(j1939/21,5.2.1)。值011b(3)为控制消息保留,值110b用于所有其他信息、所有者、请求与ack消息。然后该值001可以被分配携带新的协议。随后的can位应该都是一(隐性),以提供一个具有所有can位的明确定义的框架,其包括canid、填充位、rtr位、控制位、hlp位、crc位和类似的已知的先验等。001后每一个can位,可用于嵌入新的协议。可替代地,如果低优先级将是优选的话,前五个can标识符位应该为11101,随后是携带新的协议的位。通过更早建议的同步段的修改,建议的解决方案对于嵌入的协议也给予最大重新同步的机会。关于同步,仲裁失败的模块,在错误的位置采样接收的位,因为它并没有在获胜模块的下降边沿硬同步,它在接收获胜节点的sof的下降边沿之前,已经开始了它的传输。然后,一些can标识符的第一隐性位可单独使用(即,未携带新协议的任何位),来强制接收节点重新同步足以获得它们的采样点的正确位置。

此外,第二协议可以以多种方式中的任何方式来实现。在上面实施例中,嵌入的协议具有nrz位编码,但它可能已经以另一种方式被编码,例如曼彻斯特或米勒编码。处理设备被配置为通过使用基于can的编码方法来实现第二协议的情况下,附加的优点是可以实现的,尤其是第一协议是基于can的。在这种情况下,系统可以逐步升级。一些can更高层的协议,只使用少数can标识符,并扩展该标识到一个或两个数据字节。cankingdom是在这样的协议的一个例子。它使用can标准。id0用于设置信息,每个节点有用于响应消息的canid。在这样的方法中,对于支持嵌入的协议的模块,控制网络的建立时间可以显著缩短,因为给模块的所有建立指令,可以被携带在一个消息中,对该指令的所有响应由该模块在另一个消息中发送。更具体地,用于该模块的处理设备被配置成接收一个建立消息,并从建立消息获得足以配置用于在总线上通信的第一协议的信息,以及足以配置用于在总线上通信的第二协议的信息。相同的建立消息被配置以允许配置为仅根据第一协议对自身进行配置以响应于接收到建立消息进行操作的设备。在一种方法中,操作第二协议的模块的处理设备可以被配置以在用于第一协议与第二协议的建立时间中,使用相同的软件模块配置自身。实质上在软件中没有任何变化,而将新的模块与传统模块混合不会产生任何问题。传统的模块将在每个消息中接收到一条指令(像今天一样),但新的模块会或得到一个消息中的一切。由于内容是由canid0和前两个字节定义的,在这两种情况下解码是相同的。

额外的效率可以用这种方式来实现,处理设备被配置以实现第二协议,通过与按照第一协议发送的消息包共享组中的至少一个,该组包括错误状态消息部分、初始化消息部分、应答消息部分、采样部分及它们的任意组合。在第一协议和第二协议都使用基于can的方法中,实现第二模块处理设备可以被配置为以实现第二协议,通过与按照can协议发送的消息包共享组中的至少一个,该组包括帧起始位、仲裁域、错误状态位、应答位、帧结束位及它们的任何组合。尽管应答位被所有模块发送,第二协议可以或不可以使用这个消息,来配置与一个应答模块进一步通信的模块。

对嵌入的协议的位编码的其他修改,可以被采用,其中can协议的位填充布局被省略。位填充无需用于上述第二协议,因为重新同步边沿之间的时间最长是五个连续的显性can位。每个can字节后crc和被计算,并放置在接下来的两个can位中。如果检测到crc不匹配,一个can错误帧被发送。在其它方法中,如果第一协议每10位需要重新同步,那么第二协议在时间等于10个第二协议位之后需要重新同步。如果重新同步发生在每一个同步段中,将有可能在传播段具有多至10位而无需重新同步,这将要求每个第一协议位被采样为隐性,以确保在每个同步段有一个隐性到显性的边沿。如果第二协议位的数量比这个数量多,将需要重新同步,并且一个实例方法是每五位包括一个填充位。或者通过固定的规则:每个第六位是填充位,填充位的极性与前一位的值相反。这里,可以假设时钟具有优于500ppm的公差,如j1939标准所描述的。这使得有可能保持第二协议位的采样在两个第一协议位上进行。如果时钟不好,可以实现一种机制,其确保在同步段中的重新同步,以确定第二协议序列的开始。一个这样的规则是:如果有一个显性第一协议位,就会有从隐性-显性对作为启动条件,并且如果有一个隐性第一协议位,就会有一个显性-隐性对作为传输段中第二协议位之前的开始条件。这种方法将使得所有接收器模块同步采样第二协议位。为保持同步,附加的填充位可能需要,与填充位之间的距离将设置为系统中使用的模块的振荡器的最大公差。

上述的教导是可扩展的,一个模块可以被配置以使用第三协议在控制网络上通信,在消息包在控制网络上按照第一协议传输的过程中,通过传递第三消息,该第三消息使用第三协议被嵌入在消息包中。在另一种方法中,不同的模块可以嵌入不同的协议。这些嵌入的协议不必遵循can任何设计规则。上面的实施例中的电压电平与用于can的电压电平是一样的,但它可以是不同的。因此,多种协议,为不同的目的进行优化,可以被嵌入。在can网络中节点的不同的组,可以使用不同的嵌入的协议。例如,用于一个模块的处理设备可以被配置以改变用于第二协议的编码方法为第二协议,以响应通信设备装置的操作模式的变化,操作模式包括,例如,维护模式、重新刷新模式、运行模式与睡眠模式等。第二协议的比特率也可以被修改。

而且,处理设备可以被配置以把第二协议应用到少于从通信设备装置发送的每一个第一协议消息。例如,在许多系统中,can带宽在运行条件的大部分时间是相当充足的。在这样的应用中,嵌入的协议将只用于一些特定的消息,其可能需要在第一协议上多次传输,一个实例是gps坐标。嵌入的协议,也可用于诊断。现在板载诊断(obd)是车辆中can通信的法定组成部分,在运行条件下要求一些消息交换。这造成带宽以及时序问题,因为obd的消息仅出现在进行诊断的检查时。通信模块被配置在车辆总线中操作,它的处理设备因而被配置以在使用第一协议发送消息的运行时间中,使用所述第二协议实现传输车辆板载诊断信息。如本文所述的嵌入式协议的这样的应用,将消除这种问题,因为obd的信息可以由嵌入式协议携带,既不会影响在运行条件下的时序,也不影响带宽。另一个实例是车辆系统被重新刷新。在本实施例中,模块的处理设备被配置以在总线上使用第二协议的设备的刷新操作中控制参与,以降低刷新操作期间系统延迟。

描述的方法的另一个好处是使用第二协议,有助于识别网络问题。例如,总线上的扰动包括常见的can问题,常常是很难找到和纠正。这种扰动包括波反射、时钟频率变化以及暂时扭曲,波反射由于沿总线阻抗的变化,时钟频率变化由于不同的节点上的温度变化,暂时扭曲由于外部源。通常,在一个系统中仅在一个节点的扰动,单单破坏一个can消息。失败边际典型地是未知的。因此,第二协议可用于处理这样的问题。例如,第二协议的高速采样能力可以被用来检测第一协议消息中的噪声。在第一协议消息的传播段中的噪声,可以表明使用第二协议中的困难,因为噪音可能在第二协议中导致位错误或crc-错误。

正如上面所述,嵌入的高速协议典型地只是偶尔需要。当该设备不使用嵌入的协议被用于通信,可用于物理层的几乎连续的质量检查。在这种方法中,用于一个模块的处理设备被配置以使用第二协议,为控制网络测试信号质量。通过一种方法,处理设备被配置以控制第二协议使用比第一协议的比特率更高的比特率,并确定嵌入在接收到的第一协议消息的第二协议位是否不同于期望的信号电平,与接收的第一协议消息的相应部分的信号电平相比,当接收的第一协议消息没有使用所述第二协议嵌入一个消息。换句话说,每个模块被设置为监听总线,总线空闲期间,没有零会被检测到。当一个can消息被发送,嵌入的协议中的字节的所有位,应具有与can位相同的值。

为了说明这一点,图8示出接收的can消息600的起始,can消息600从另一个模块发送,在隐性电平601和下降沿602处开始,表示sof。下降沿之后跟着三个反射603、604、605。最前面的两个解码为11,表明下降沿后的两个第一时间份额对于嵌入的协议是不安全的。图9示出了在更远反射点的另一个模块上的相同的消息。这里反射衰减到嵌入协议的安全电平。另一个扰动605被很容易检测到,它可以被看作是一个错误的同步边沿,或者如果出现在采样点导致位错误。支持但不使用嵌入式协议的模块,可以检测并记录这种扰动,这种扰动可以使can模块在错误的边沿重新同步和/或采样错误的位值。在各自的模块根据本地时钟,扰动以非常精确的时间被标记。然后,处理设备可以实现向比较器设备发送信息,该信息关于确定被嵌入所接收的第一协议信息中的所述第二协议位,是否不同于期望的信号电平,比较器设备被配置以比较该信息与来自控制网络上其他设备的相应的信息,以定位控制网络错误的来源。这可以实现,通过使用根据各自本地时钟记录的时间,转换到共同的时间,实例在专利号为8065052的美国专利中描述,该申请的内容通过引用包含在本文中。总线上的阻抗变化引起的扰动,可以与其他类型的扰动区分开来,由于在总线上波的传播速度是已知的,有可能在总线确定上阻抗紊乱的位置,通过关联扰动在各节点的时间戳与各节点间总线长度。

如果确定对于给定的控制网络,扰动主要发生在第一协议消息的特定部分,例如上述实施例中靠近边沿,嵌入的协议可以被修改,避免使用用于嵌入的第一协议的特定部分。在上述实施例中,第二协议可以被配置以避免在用于嵌入数据的传播段中使用一个或多个第一时间份额。更高层协议cankingdom表明:can位时序可以如何通过使用kingspage8被优化,相同的方法可用于指定嵌入的协议使用的时间份额。在另一个这样的方法中,整个嵌入的协议可以以一个系统特定的方式建立,通过应用cankingdom方法,仍然使用一般模块。

在进一步的质量检查中,用于第二协议计数的时钟可以用来检测本地时钟与控制网络上其他设备的时钟之间的差异。在这样的方法中,该模块典型地使用独立的计数器解码第一协议,例如can协议,和嵌入的第二控制。这里,处理装置被配置为以一种模式操作,其中没有期望嵌入的第二消息,当以这种模式操作时,其不重新同步用于第二协议的计数器,以响应接收一个接收到的第一协议消息的同步部分。那么处理设备对用于第二协议计数器的时钟周期计数,在接收到的第一协议消息的一部分上,以确定发送所接收的第一协议消息的模块的时钟频率。因此,与参与can通信平行地,一个节点可以容易地确定本地时钟频率与各自发送器的时钟频率之间的差,通过避免重新同步嵌入的协议的时钟,比较从仲裁的结束直到ack位的下降沿的时间,其由嵌入的协议的重新同步的can时钟和未重新同步的can时钟登记。附加的优点可以实现,通过结合当前的教导与美国专利号7934039和美国专利号7478234描述的技术,其每一个都通过引用整体并入本文。

第一协议内的第二协议的进一步的示例实现将参照图10-13进行说明。在本实施例中,can总线701具有连接在总线的701最左端的电子控制单元(ecu)702,与连接在总线的701最右侧端的第二ecu703。在这些的ecu702和703之间,更多的ecu704、705、70n被连接到总线701。第二ecu703根据can协议发送消息1100,消息1100的一部分如图11所示。根据can规范的消息1100的位序列11011被示出。更具体地,can消息1100的0位的同步段705和相位段1和2706被示出。下一个,can消息1100的1位的同步段707和相位段1和2708被示出。

其中第二ecu703被配置以如本文所述地根据第二协议操作,则ecu703将发送消息1120中位序列相同的信号。这里,同步段710被理解为一个显性位份额。在原始的can信息1100中,下一部分是隐性的,直到显性的phaseseg1和2711,随后是跟随零位第一个1位的显性的同步段712与隐性的相位段1和2713,其跟随原始的can信息1100的零位。零位之后的第二个1位由显性的同步段714开始。根据原有的can协议,传播段被计算以确定ecu702和703之间的信号的延迟,其被指定为八个位份额,表示为715。附加的九个位份额716被添加到该位的左边。在这个实施例中,第二协议被定义为一个字节,表示为一个字节位起始位份额,随后八个位份额。

ecu702被指示在特定的can信息中使用特定位,用于按照第二协议传送字节。本实施例中,段716示出了在原始的can协议消息110中,这些位从ecu703在何处被发送。为了说明总线上的时间延迟,以及尽管有时间延迟模块如何发送信息,图12和13示出了第一ecu702发送的1200、1300,由第二ecu703接收与发送的1220、1320。图12根据由第二ecu703感知的时间设置,而图13根据由第一ecu702感知的时间设置。来自第一ecu702的传输717以同步段710开始。它沿着can总线701传播并到达第二ecu703。当它由ecu702检测到,ecu702按照第二协议发送字节起始718,后跟位01101011。这示于图12,位01101011立即被发送,以响应接收到来自第一ecu702的同步段710。然后,第二ecu703按照第二协议发送第二字节01010101,以响应接收到来自第一ecu702的同步段712。来自第二ecu703的第二协议信号,传播回第一ecu702,但由于传播延迟,现在它被定位在由第一ecu702发送的原始can信号的第二部分715。710与718之间的时间差720,即ecu702与703之间的传播延迟,很容易地通过第一ecu702测量。

如此配置,按照第二协议来自不同的ecu的信号,不仅可以被嵌入到按照第一协议的一个且相同的消息中,而且ecu之间的传播延迟容易测量。各种具有不同质量的协议,可以通过结合这些教导与某些现有的教导,例如专利号7711880标题为“分布式控制与监督的系统化”(schematizingofmessagesindistributedcontrolandsupervision)的美国专利,美国专利号为7472216标题为“用于在控制器局域网络(can)产生不同频率的可变振荡器”(variableoscillatorforgeneratingdifferentfrequenciesinacontrollerareanetwork(can))的美国专利,美国专利号为7899936标题为“模块化系统中用于实现事件/参考事件的时间标记的设备”(deviceinamodularizedsystemforeffectingtime-stampingofevents/referenceevents)的美国专利,以及专利号为7478234标题为“分布式控制与监控系统”(distributedcontrolandmonitoringsystem)的美国专利,仅举几个例子,其每一个通过引用的方式以其整体并入本文。

这里描述的各种协议也可以应用在不同的控制网络拓扑结构。在图14所示的实施例中,基于can的控制网络1400具有星形拓扑,带有位于中心的有源集线器设备1410。有源集线器设备1410被配置以连接到控制网络1400的多个can通道1422、1424与1426,并作为can通道1422、1424与1426的两个或多个之间的网关。例如,有源集线器设备1410可以是连接以在多个can通道1422、1424和1426中的每一个上通信的ecu。在另一实施例中,有源集线器设备1410可以是在三种不同的总线之间仅通过软件映射消息或信息连接的三个独立的控制器。在又一个实施例中,有源集线器设备1410也可以是设计为不同的总线之间或多或少实时地传送消息的组合逻辑。

在一个示例实现中,这样的星型拓扑网络具有多个模块,多个模块1412、1414、1415、1416、1417的第一组被配置以使用第一和第二协议之间进行通信,如本文所描述,并被连接以在多个can通道中的第一can通道1422上通信。多个模块1430、1431、1432、1433的第二组被连接以在控制网络1400上进行通信,通过在第二can通道1424上使用第一协议而不是第二协议。多个模块1460、1462的第三组被连接以在多个can通道的第三can通道1426上通信,使用第一协议与第三协议,通过使用第一协议发送消息包,该消息包具有使用第三协议嵌入其中的基于第三协议的消息。第三协议可以与第二协议兼容,或不与第二协议兼容。这里,有源集线器设备1410配置以通过第一can通道1422使用第二协议接收消息,并通过第三can通道1426使用第三协议发送消息。

在另一个实施例中,其具有多个模块在给定的上下文中进行通信,被配置以使用一个嵌入的协议的多个模块可以被配置以接收一个即将到来的第一协议消息将被发送的信号,并且可以被配置以允许多个第二协议消息被嵌入即将到来消息的发送时间中。作为响应,多个模块可以配置自身,使得模块中的各个模块在即将到来的第一协议消息的某些部分中发送第二协议消息。从单个模块的观点来看,第一模块被配置为接收一个即将到来的第一协议消息将被发送的信号,并且配置自身以发送基于所述第二协议的消息,在即将到来的第一协议消息的第一定义部分的期间,第一定义部分小于整个即将到来的第一协议消息,以及接收来自另一个模块的第二协议消息,在即将到来的第一协议消息的第二定义部分,第二定义部分与第一定义部分不同。因此,多个基于第二协议模块可以在单个第一协议消息的过程中发送信息,当多个模块需要交换信息时,这可以大大降低通信延迟。

在这种方法的一个具体实施例中,一个“主节点”用给定canid和dlc发送一个基于can的消息,诸如,例如,1000位。然后,数据域用1形成图案。总线上会有十个块的图案,包括五个隐性位和1个显性位。十个隐性位中的每一个可以“不同”的方式被用于嵌入的协议。一个实施例可能是有如上面建议的嵌入的协议,其中每个can位可以按照嵌入的协议携带一个字节。在嵌入的协议中的信息的解码规则,由canid给定,与can高层协议方式相同。数据位被调度,使得第一组两个五位序列被保留,用于来自第一节点的第二协议传输,第二组两个五位序列被保留,用于来自第二节点的第二协议传输,第三个组两个五位序列被保留,用于来自第三节点的第二协议传输,依此类推。然后,每个模块可以在一个普通的can信息中发送八字节的数据和15位的crc和。以这种方式,来自这些第二协议节点的传输的延迟可显着减小。例如,来自五个节点的传输可以减小五次,这五个节点间的数据包之间的延迟是已知的先验,在这个实施例中达到高精度。不同的方案,可根据不同的需要应用。不仅数据域可以被使用,crc域的隐性位、crc定界符以及ack位后的隐性位也可以被使用。

在另外的可替代实施例中,以上描述的功能性或逻辑可以代码的形式被体现,代码可在单独的处理器电路中被执行。如果在软件中实现,每个功能块或逻辑可以表示一个代码模块、代码段或代码部分,其包括实现特定的逻辑功能的程序指令。程序指令可以源代码的形式实现,其包括用编程语言编写的人类可读语句,或机器代码,其包括由适当的执行系统识别的数字指令,例如计算机系统或其它系统中的处理器。机器代码可以从源代码转换。如果在硬件中实现,每个块可以表示一个电路或若干互相连接的电路,以实现特定的逻辑功能。因此,计算机可读介质(即非临时性或有形)可存储这样的指令,指令被配置引起所述处理设备执行操作指令,如本文所描述的。

使用硬件和软件组件,在can协议内实现第二协议的各种方式是可能的。在一种方法中,发送和接收数据包含两个独立的过程具有不同的本地时钟,除了仲裁,这是同时发送和接收的的混合。发送方会在一个时间将一位放入通信线。每一位的长度被定义为若干本地时钟周期。在大多数情况下,发送的每个位以本地时钟周期具有相同的长度,但该协议可以容纳以本地时钟周期具有不同的长度的不同位的混合。在一个实施例中,第二协议可以使用两个不同的位长,但另外的位长也是可能的。发送的每个位通常具有两个不同电平中的至少一个,但更多的电平是可能的。每一位的电平由协议定义。一些固定的与其它位取决于数据内容,例如,数字1可被发送作为一个位0和第二位1,数字0被发送作为一个位1和第二位0,这种模式被称为曼彻斯特编码。发送方将发送位流,以第一位开始并以最后一位结束,位流被包括形成消息的协议中。消息之间的时间被称为空闲总线,其可以是固定电平或不同电平的图案,表示空闲的通信总线。

在本实施例中,在解码通信线上的空闲图案时,接收器一般保持空闲。一个消息的开始将是与空闲图案不同的图案,该图案包括边沿(从一个电平切换到另一个电平)。协议定义了在每一个位中边沿如何相关于采样点的位置,其以本地时钟单元为单位跟随。如果接收方时钟具有与发送方时钟相同的速度,接收方将正确地采样整个消息的每一位。实际上,不可能有两个时钟在无限的时间中具有相同的速度。因此,一个系统或采用一个足够好的时钟,以保持采样点在消息内,或者消息被设计得足够短,以确保时钟不会偏离太多超出消息。哪一个解决方案都不是是理想的,因为通常可用的时钟不够准确,或消息可以变得太短。为了解决这个问题的,协议可以定义用于调整采样点的某些边沿。通常情况下,边沿被定义为两个位之间的电平变换。如果那些明确定义的边沿发生太早或太晚,接收方能够调节采样点相对于那些边沿的位置,以便更好地采样随后的位,直到有一个新的边沿,可用于下一次修正。在仲裁期间,模块应根据协议定义的边沿的接收,调整位的发送。时钟的精度由多少采样点可以在时间上改变并仍然在正确位中采样,结合由协议规则校正采样点的频率和多少给定。

转到图15,在can协议内使用第二协议的一个具体实施方式将被说明。不像以上描述的特定实现,其中单个处理设备将准备并发送(和接收)第一协议和第二协议消息,在一个组合can/第二协议消息中,两个或多个处理设备可以并行操作来处理组合消息的不同部分。这方面可以是可扩展的,其中不同处理设备被派给处理特定位份额或者给定的发送或接收消息的部分的任务。

更具体地,在图15所示的实施例中,通信设备装置1500包括通信端口1510,通信端口1510被配置以连接到控制网络1511。用于通信设备装置的处理装置包括:第一处理装置1500,其被配置以控制用于can通信仲裁的通信设备装置,并控制can消息包的通信。通信设备还包括:至少一个第二处理装置1505与1507,其被配置以控制附加信息的至少一部分的通信,在定义的位份额以外的位份额中的至少一个上。在图示的例子中,至少一个第二处理设备包括单独的处理设备1505与1507,每一个被配置以控制附加信息的至少一部分的通信,在定义的位份额以外的位份额的不同的一个上。更多或更少的处理设备可以被这样增加,不同的处理设备可以具有不同数量或特定的位份额,被分配用于分析或产生。

在这样的方法中,通信端口1510可操作地连接到第一处理设备1500,在控制网络1511上发送can消息包,至少一个第二处理装置1505在控制网络1511上发送附加信息。此外,通信端口1510被配置以连接到控制网络1511,接收在控制网络1511上传输的can消息包;以及可操作地连接以向第一处理设备1503提供接收到的can消息包,以读取can消息数据,向至少一个第二处理设备1505、1507提供接收到的can消息包,以读取can消息包中的附加信息。在图示的例子中,通信端口1510包括分离的接收(总线电平指示器)1513和发送1515部分,尽管其它配置将这些方面结合在一起是可能的。

图15还示出一个实例方法,为了实现设备的更精确的时钟,以实现读取以及第二数据嵌入在标准的can消息的各个位中的能力。在这个例子中,时间事件发生器1520可操作地连接到至少两个寄存器1532和1632。时间事件发生器1520以特定速率生成时间周期。寄存器1532和1632是单独的时间计数器1530和1630的一部分。至少两个的寄存器的第一寄存器1532,计数从时间事件发生器1520接收到的周期,以及响应于计数周期的第一数目,在输出端1533输出第一触发信号,并复位。至少两个的寄存器的第二寄存器1632,计数从时间事件发生器接收到的周期,以及响应于计数周期的第二数目,在输出端1633输出第二触发信号,并复位。

第一寄存器1532向第一处理设备1503提供第一触发信号,其中第一触发信号对应于用于can消息包采样时间。第二寄存器1632向至少第二处理设备1505中的至少一个提供第二触发信号,其中第二触发信号对应于在can消息包中发送的附加信息的采样时间。在这种方式中,寄存器1532和1632帮助处理设备跟踪,当感测接收的包中电压信号,或者当在发送的包中提供一种信号时。有时这些寄存器需要复位,以实现通信装置设备与控制网络1511上其他通信模块的重新同步。在一种方法中,一个复位装置1536检测帧起始,并且被连接以复位至少两个寄存器1532和1534,响应于检测帧起始。在图示的方法中,各个时间计数器1530和1630中每一个的复位装置1536、1636接收can位识别器模块1550提供的输出信号,响应于检测控制网络1511上的帧起始信号。尽管用于提供不同的采样速率的时间事件的不同的寄存器在不同的模块1530和1630中说明,在给定的实现中寄存器无需如此分开设置。

可以在时间的概念上下文中理解上述实施例。最通用的通信协议是基于物理秒,用于表示一位。例如,标准的can协议定义了它的位时间为“在位时间帧中执行的总线管理功能,例如如can节点同步行为、网络传输延迟补偿以及采样点定位,将由can协议ic的可编程位时序逻辑给定:a)标称比特率(br)给出每秒位的数目,在没有重新同步的条件下,由一个理想的发送器传送;b)标称位时间,tb=1/br”。

另一方面,时间可以被描述为由振荡器产生的位份额的计数。例如,标准的can协议定义了“位时间的编程”为“位时间的编程应使用以下时间段完成...a)时间份额,时间份额是源于振荡器周期的时间的固定单位。”

时间通常不是在通信协议中定义的,尽管一些通信协议被定义为事件触发或时间触发。本公开可以被理解为三个不同的时间概念。第一个是ntime(自然时间),这是每个人都经历每一天但没有人知道它是什么的时间概念。使用ntime,能够以具有过去和未来的维度记录与组织事件,并能够区分可预测和不可预测的事件。ntime在正常情况下,没有起始点,是连续的、不可逆的、不可阻挡的和无尽的。

第二个是ptime(物理时间),这是给自然建模时以物理定律描述ntime的时间的科学概念。ptime是连续的且可逆的,即基于物理定律任何模型可以在时间上可逆地运行。于是,模型将显示从开始到结束的任何点的状况,根据模型反之亦然。ptime具有一个基本单位,秒,这是单位制(si)国际系统中的七个基本单位的一个。

第三是ltime(本地时间或逻辑时间),这是由时间周期发生器产生的并由时间计数器测量的。两者的组合构成ltime时钟(ltc)。ltc是ltime域(ltd)的时间源。两个或更多个ltds可以彼此相关,和/或同步到其中的一个或备选到虚拟ltd。时间的概念的主要目的是:协调它们之间以及与ptime与ntime域之间的事件、状态与状态过渡的流。

一些ltime特征包括是有限的,具有一个定义的开始和结束。ltime可以停止并可以重新启动。ltime也可以非线性/线性方式与ptime和ntime相关。因此,时间周期发生器可以独立于ptime和ntime。

ltd典型地是由一个ltc定义,其中几个ltds各自的ltcs可能具有相同的时间周期发生器。多个ltds通过参考事件(re)保持同步。

再次参照图15的实施例,时间事件发生器1520包括振荡器1522,其输出时间事件1524到tc1526。can标准定义了“时间份额”,如下所示:“该时间份额应是源于振荡器周期的固定时间单元。存在可编程的、具有整数值的预分频器,范围至少从一至三十二。从最小的时间份额开始,时间份额将具有长度:时间份额=m*最小时间份额,其中m为预分频器的值。”

为了定义时间份额,tc1526包括一个寄存器1528,其为ltime设置限值。每次寄存器1528达到规定的限值时,它在其输出端发送一个时间份额事件1529,并复位。结果是时间周期事件流,即时间份额1525的流。时间事件发生器1520定义了一个ltd,可编程跨度为从1到32时间事件,可以按照can协议生成时间份额。ltc或时间事件发生器1520用作时间周期发生器,以时间事件馈送时间计数器1530。时间事件发生器1520和时间计数器1530形成另一个本地时间计数器1539。

时间计数器1530包括事件输入1537,它复位计数器1530以响应接收一个事件。在本实施例中,第一寄存器1532为从2至17可编程,并在输出端1533传输发送一个事件,当第一寄存器1532达到编程的值。第二寄存器1534为从1至8可编程,并在输出1535发送一个事件,并复位计数器1530,当计数器1530达到第一寄存器1532的编程的值加上第二寄存器1534的编程的值。按照can规范,can位最少由一个同步段时间份额、一个传播段时间份额、一个相位段1时间份额以及一个相位段2时间份额组成,即四个时间份额,最大长度是同步段加24个时间份额。第一寄存器1532可以被编程以覆盖同步段加传播段加相位段1,第二寄存器1534可以被编程以覆盖相位段2。本地时间计数器1539将计数代表一个can位的时间事件的数量,并产生相位段1之后的一个事件与相位段2之后的另一个事件。

这样的本地时间计数器1539能够支持can位识别器1550以及总线电平指示器1513。在图示的例子中,总线电平指示器1513有一个事件输入1514,从时间事件发生器1520接收时间事件1525。响应于接收来自事件生成器1520的时间事件,总线电平指示器1513采样can总线控制网络1511上的总线电压。如果电压被检测到,总线电平指示器1513发送一个电压事件信号1516至位识别器1550的事件输入端口1551。如果没有电压被检测到,总线电平指示器1513发送一个无电压事件信号1517至can位识别器114的事件输入端口1552。因此,在这种结构中,can位识别器1550在时间事件发生器1520生成的每个时间周期事件处,接收电压信号或者无电压事件信号。

在can位识别器1550包括事件逻辑设备1553和事件计数器1554,事件计数器1554计数时间事件1525的次数。事件逻辑设备1553可操作地耦合至输入端口1555,输入端口1555被连接以接收来自时间计数器的1530的第一寄存器1532的第一寄存器的事件,。当在can规范下操作时,一个位的值在相位段1的最后判定,在这种情况下,第一寄存器1532存储一个值,生成对于给定的can位对应于预期的采样点事件的第一寄存器事件。第一个寄存器事件触发can位识别器1550检测控制网络1511上在预期采样点事件的电压,响应于事件逻辑器件1553在输出端1556输出一个隐性位事件(对应于逻辑“1”),其响应于确定来自总线电平检测器1513的无电压事件。如果在采样点电压事件被检测到,事件逻辑设备1553在输出端1557输出一个显性位事件(对应于逻辑“零”),除非显性位事件是一个帧起始事件。在检测到十个或更多个连续隐性位(逻辑“1”)之后,一检测到逻辑“零”,帧起始事件发生。

事件逻辑设备1553还触发检测电压,以响应接收到来自一个帧起始寄存器1534的帧起始寄存器事件信号,在这个实施例中其可操作地连接到第一寄存器1532,并对开始计数时间编程,以响应接收到来自第一寄存器1532的事件。达到被编程到帧起始寄存器1534中的时间事件计数之后,通过输出1535它输出一个帧起始检查事件,到事件逻辑设备1553,以触发事件逻辑设备1553检查电压,该电压对应于跟随采样点读取的一位的帧起始,由第一寄存器1532触发。

一般而言,事件逻辑检测器1553被配置以不仅通过比较电压事件、采样点事件以及由计数器1554计数的时间周期时间的数目,识别隐性、显性和sof位。响应于检测帧起始事件,事件逻辑检测器1553在输出1558产生sof位事件信号。来自输出1556、1557和1558的这些信号,被协议逻辑单元(plu)1560接收,协议逻辑单元被配置以解码位流,位流按照can协议通过控制网络1511接收。

以下描述一个实例方式来编程图15的实例,以检测一个标准can位,例如如图16所示。接收的数据由控制网络1511上的电压电平1601定义。标准的can位具有下列部分:同步段1602为一个时间份额,传播段1604为八个时间份额,相位段11606为三个时间份额,以及相位段21608为三个时间份额,预分频器设置到十六,使得振荡器产生16最短的时间份额,构成单个位。因此,寄存器1528被设置为十六。第一寄存器1532被设置为十二,启动帧寄存器1534中设置为三。通过这些设置,can位识别器114可以触发重新同步,响应于检测到硬同步段,通过通知复位设备1536和1636。本地时间计数器1539定义了位的时间份额,第一个寄存器计数到第十二位份额,触发在采样点采样,并在采样点之后,帧起始寄存器计数到第三位份额,触发用于期待的下一位的帧起始的采样。这样被触发,事件逻辑检测器1553传送can位到can协议单元1560,can位在控制网络1511上被检测到。

更具体地,当接收到初始下降沿时,接收设备1500假定它是一个帧起始(sof)位的消息1652,进行硬同步,即复位时间份额计数器。在一个实施例中,硬同步发生在一个新消息的开始后的一个位中,sof1652可被称为位起始。十二个时间份额之后,到达采样点1607,采样点1607位于相位段11606的最后一个时间份额1653与相位段21608年第一个时间份额1654之间。电压电平在采样点1607或sp被采样。如果电压电平是显性,以电压线1601表示,则位被解码为sof,其中在时间份额1652的下降沿被认为是一个新的can位的开始。相反,如果隐性电平在采样点被检测到,以电压线1660、1670和1680表示,该位被忽略。例如,电压线1670表示下降到显性电平,但11个时间份额后上升到隐性电平,12个时间份额后再次下降到显性电平,15个时间份额后再次上升到隐性电平。由于接收器在采样点(sp)采样到隐性电平,该位作为一个sof位被忽略。

换句话说,图16示出另一种情况,其中由于can接收器可以在一个标准can位中采样两次,而忽略之间的任何电压电平转换,这些忽略的部分可以用于其它协议以更高的比特率传输位。在一个实施例中,第二协议可以在空闲can总线上用电压线路1680发送字节,如图所示。这里,发送设备使用与can系统相同的时间份额,但每个位份额表示一位。采样为隐性电平的份额被解码为1,采样为显性电平的时间份额被解码为0。该协议具有与can相同的空闲总线定义,但定义cansof的同步段作为帧起始(sof)。sof之后是11位的第一数据帧,后跟两个隐性位,两个隐性位在标准can采样点。这两个隐性位由标准can模块解码为隐性的,因此触发标准can模块忽略在sof处的初始下降沿。因此,标准的can模块认为控制网络总线是空闲的。两比特的第二数据帧跟着这两个隐性位,随后处于隐性电平的帧结束(eof)位。第一数据帧中的前四位是一个字节计数器,即,连续的15字节可以作为消息被发送。然后,电压轨道(voltagetrack)1680按照实例第二或嵌入的协议传输的电压电平的变化。在sof之后,字节计数器二进制数0100(十进制四)之后是二进制数11001000二进制(十进制200)。紧接着,下一个sof1685表示下一个序列的开始,其以一个字节计数器值0101二进制(十进制五)开始。

以这种方式,用于标准can通信的帧起始位可以使用以强制第二或嵌入更高频率的协议的序列之间的模块的重新同步,以减少传输错误,传输错误是由用于控制网络上的各种模块的同步不佳的时间事件发生器造成的。一般来说,在一种情况下,其中第二消息被嵌入一个第一协议的信息包内,并且接收设备调整采样点在所接收到的第一协议中的位置,以响应检测到所接收的第一协议位的限定部分中的一个过渡边,设备可以按照具有过渡边缘的第一协议发送一系列的位,以实现接收通信设备的采样点的移动,以提供第一协议位中额外的空间,在其中使用第二个协议嵌入第二消息。在这样的方法中,can协议是第一协议,如果跟随隐性位的同步段会被设置为显性电平,跨模块的振荡器精度问题将减小,因为所有的模块的时钟将在每一位被重新同步。can的重新同步与同步跳转宽度(sjw)规则就不需要了。控制网络的模块配置为只理解标准的can消息,将在最后一次重新同步后相位段1和相位段2之间的13个位份额采样。正如本实施例,新协议产生显性的同步段,这样原始的can控制器将重新同步至少每个第二隐性位,但仅在五个连续显性位后的第六位。无论如何,这个重新同步是13位要求的两倍那么快,从而保持各种模块充分地同步。

此外,原有的can模块可以被诱使移动它们的采样点,以允许can位中更多的空间以传输第二协议信息。例如,第二协议模块的处理设备,可以根据具有转换边沿的第一协议发送一系列位,通过发送一系列隐性位,下一位的sync_scg位份额是显性,以提供转换边沿实现采样点的移动。第二协议模块的处理设备还可以使用第二协议传输第二消息,,至少部分在使用can协议的位中,在同步段位份额与采样点以外的位的部分中,例如使用can消息包的传播段部分。过渡边不需要如can协议中所定义的具有同步段的整个宽度,而边沿可以具有足以被通信网络上的模块检测的长度。

要在每一个时间份额中检测电压电平,第二寄存器1630可以用特定的计数进行编程,触发或者事件逻辑检测器1553,或者第二处理设备1505,在为典型的can标准定义那些以外的位份额处采样电压。以这种方式,位可以以不同比特率被采样,从按照can规范解码总线上的电压电平,到使用ltime域其他嵌入的协议。该系统不要求使用物理时间或自然时间,其中连接到ntime是通过振荡器1522。振荡器1522可以由任何产生事件流的装置代替,例如检测转动齿轮的尖端的磁性拾取器(magneticpickup)。因此,can网络可以被建立,其中所有的ecu被连接到磁性拾取器,并且can消息将被正确地编码与解码,但每秒的比特率将随齿轮的转速变化。

如果本地振荡器被用作系统中时间周期发生器,由在系统内的各个ecu的各种时间周期发生器1520定义的时间份额的频率应同步。这可以使用两种方式完成,或者通过调整给定的振荡器的频率,或者通过至/从时间周期产生流1525增加或删除时间周期事件。两种方法都可以通过节点之间的反馈实现,通过控制网络1511和/或经由来自控制网络1511上的主节点的控制信号。

控制每一个时间份额的电压电平,可以提供嵌入第二个协议之外更多的好处。例如,can标准经常被为指责耗电。一种减少功率的方法,是仅在同步段与相位段1和2期间发送显性电平,因而与保持高电压电平相比,降低了传输功率。

如果在一个标准的can消息中采用第二个协议,某些优势可以通过指定新的协议实现,,通过设置rtr、r1和ro位全部为隐性电平。rtr位之后,所有can控制器被重新同步到发送节点,通过检测从隐性rtr位的下降沿,由此嵌入的第二协议可以在can消息中从那里嵌入数据。通过一种方法,r1、ro和dlc位可以被用来指示多少第二协议位将被嵌入每个can位。由于第二协议可以有其自己的时间份额的定义,它可能具有更高的分辨率,因而在can时间份额中具有多于一个嵌入的位。在一些方法中,只有一个额外的位被嵌入在标准的can位中,嵌入的附加位在同步段和相位段1之间的时间份额被采样,以最小化物理总线上波反射的影响,这在一些应用中可以增加数据错误率。

在传统的can通信系统中实现的具体注意事项

在传统can系统中,模块同步发生在同步段中的显性信号跟随一个隐性位。这是所有传统的can更好地调整采样点相对于此边沿的规则。在一般情况下,传统的can系统围绕采样点留出一个空间,以确认接收到信号,由于时序错误可能导致接收到的信号在采样点之前或之后一段时间。进行多次这样的重新同步,使用上述的第二协议进行通信的模块将已经证实:传统can采样点的位置,比使用sjw规则在传统can采样点之前和之后分配的时间精确得多,从而保证在传统can位中用于第二协议额外通信的空间。例如,如果影响传统can系统模块重新同步的更多个边沿产生,采样点可以移动到理论上正确的位置,在相位段l和相位段2中间,允许几乎所有的相位段l和相位段2可用于第二协议数据。总之,所有隐性位,其后是这个显性同步段,将调整用于传统can系统的采样点,并且该特征可以被第二通信协议模块使用,在传统can位中腾出空间用于第二协议通信。

在传统can中,可能具有10位的序列没有边沿,然而,如果这些位全部为隐性,且第二协议不发送显性信号以实现同步,第二协议将被限制可用于在发送第二协议数据的相位段的数量,由于实际的传统can采样点的位置的不确定性。相反,采样点频率的调整确认:对于第二协议的模块,传统的can采样点将使用相位段的一小部分,因而在相位段中采样点的位置之前腾出更多的可用空间,在其中第二协议数据可以被发送。在传统can模块已采样的隐性位后放置第二协议位,将导致边沿用于重新同步,这限制了在相位段中传统采样点之后发送第二协议数据的能力。

然而,当传统can系统采样一个信号,它将忽略采样点之后的任何边沿,这样第二协议模块可以在传统can采样点之后的第二相位段插入附加数据。因此,模块可以增加空间的量,在其中第二协议数据可被插入到一个传统can位中,通过平衡使用重新同步以确认传统can采样点的位置,与使用显性传统can采样,以允许插入第二协议位到传统can采样点之后。例如,在一系列重新同步之后的第一个显性传统can位,整个相位段的90%可用于第二协议通信。在第二个显性的传统can位,整个相位段的80%可用于第二协议通信,依此类推,直到第五个连续的显性的传统can位,其中整个相位段的50%可使用于除了所有的传播段。我们再次有了传统can的限制,它违反了具有超过五个连续具有相同的样本值的位的规则。第六位必须是隐性的,但在该位中,可能在所有的同步段和传播段以及40%的相位段1中放置高速位。在采样点之后,那么,该信号保持隐性的,没有任何边沿,直到跟随隐性位的显性的同步段开始,边沿调整采样点回到理论上正确的位置。上述循环然后重新启动,其中有可能边沿被检测到立刻放置高速位,并且高达整个相位段的90%。在实践中,同步段应该对于总线上的所有模块是必需的,以识别跟随隐性样本的显性边沿。如果显性同步段太短,一些传统的can节点可能无法识别重新同步信号。本实施例中,消息的crc部分将随着can帧中直到crc起始的不同位而改变。

在这种实现中,系统应确认第二协议的正确采样。在一个实例中,如果需要在传统can中每10位调整的采样点,以保持采样位置处于位中,该系统通常可以在第二协议中为高速位或多或少做同样的事。如果相位段是传统can位的20%,该位的大部分用于传播段,只有相位段需要补偿时钟偏差。因此,如果第一协议可以处理时钟偏差,超过十比特偏差比特的20%,则第二协议将处理一个流中的100比特,直到需要再同步,本实施例中,在通信是单向的,唯一需要的补偿是:由于高速比特没有使用传播段,发送者与接收节点之间的时钟偏差。通常情况下,正是具有最不准确的时钟的接收器,将确定物理层的性能。如果时钟性能更好,将有可能一列中有更多的位,在必须有一个边沿有可能重新同步之前,以使采样点更好定位于该位中。另一个极端是具有非常小的传播段(在通信总线,例如,具有很短的电缆和非常不稳定的时钟的情况下),其中传统can位的大部分用于相位段。在这种情况下,才有必要在第二协议中几乎每10位重新同步。

关于传统can(第一协议)比特率和所述第二协议的比特率之间的关系没有理论上的限制,因为唯一的限制是第二协议位不会导致传统can模块采样第二协议位,或使用第二协议位,在这种方式下它们将以错误的方式重新同步第一协议单元。作为一个例子,测试第二协议比特率是第一协议比特率的80000倍的通信。在这样的情况下,在每一个第一协议位中将会有大约40000个第二协议位(假定传播段约为第一协议位的50%)。在这种情况下,如果时钟要求每100位重新同步,重新同步第二协议至少400次。

在这些极端的数字下,第一位的非常精确的位置被用在第二协议中。即使在第一协议位中同步段中有了精确的显性边沿,第一协议位被分为十个时间份额,第二个协议位将不同步,已经有2.5%进入在同步段最后的同步段份额,并且第二协议接收方可以与发送方是40位相位之外。在这些情况下,第二协议以一个边沿开始,以确保随后在第二协议中的采样在正确的位置采样,并且第二协议中的重新同步应该发生在每100个第二协议位与一个第一协议位。

用can-fd额外同步的实施

虽然以上描述第二协议在第一协议中的实施,主要就添加位到传统can位内部而言,以上描述的第二协议的各方面可以被实现或结合其他的协议,例如can-fd协议,如论文“can使用灵活数据速率规范版本1.0”(发表于4月17日,2012年)中所描述的,该论文通过引用包含其全部到本文中。can-fd协议定义传输的第一部分,基本上遵循传统can协议的规则。这个初始传输部分之后,按照can-fd发送的消息可以切换到更高的比特率。can-fd使用一个边沿(扩展数据长度(edl)比特),位于标识符扩展标志(ide)比特与ro比特之间,定义can-fd更高速度部分的开始,其边沿也用作进入传输高速部分之前上一次同步。然而,高速传输部分的开始,被延迟到在比特率转换(brs)位进行的比特率切换,延迟可以导致在接收器的时钟关于高速部分采样点的偏差。缺乏置入can-fd协议的高速部分的重新同步,可导致需要更高质量的时钟,以及限制在协议的高速部分提高采样速度的能力,由此限制了总的可能的带宽。

如果以上描述的重新同步方法,关于第二协议在传统can系统中的实现,应用于can-fd的高速部分,一个can-fd方法具有更高的带宽,因为增加的在更高速度采样点的采样置。例如,通过在can-fd协议的高速部分的第一位(或只是在brs位之后)定义边沿,用于重新同步,接收方将非常正确地在第一位中采样,在一些数量的位之后位流中将有边沿,可用于重新同步采样点到在接收的位中的一个适当的位置。因此,发送模块的处理设备可发送一个跟随隐性信号的显性位,以定义消息的第二部分的起始点,这样修改的can-fd协议部分被定义为:由一个接收设备为第二高速部分调整采样点的位置,响应于检测所述边沿。例如,在can-fd中这个新的重新同步的边沿,可以位于can-fd的高速部分中,直接在brs位被采样之后,或作为brs位的结束/高速部分的开始,其中,在协议的较慢的部分,下一位较慢部分的位已经开始。在高速实现中同步相关的延迟基本上消除,由于第一个检测到的高速位的边沿定义了can-fd消息的高速部分的开始。该解决方案中唯一的缺点是:第一高速部分位定义为显性,以该位定义高速部分的开始。测试证明:如果该同步技术被应用到了can-fd协议,它至少可能具有为1的传统can位比80000can-fd位的比特率比例。

本领域技术人员认识到:关于上述实施例,不脱离本发明的范围可以进行各种各样的修改、更改与组合,并且这样的修改、更改与组合被视为落入发明概念的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1