本申请是2014年5月26日提交的美国申请No.14/287,154的接续案,而美国申请No.14/287,154是2013年8月13日提交的美国申请No.13/965,342的部分接续案,而美国申请No.13/965,342又是2013年3月15日提交的美国专利申请No.13/833,238的部分接续案,这些申请的内容通过引用被全部重写在本文中。
技术领域
本发明总体涉及电子通信,更具体地涉及用于控制网络的高速协议。
背景技术:
电子设备通常基于给定环境的要求以各种方式相互进行通信。其中的一种是控制系统的环境。不同于仅允许在系统上的设备之间进行通信的简单通信系统,控制系统通信的目的是为了对被连接以通过该控制系统进行通信的模块进行显式控制。随后这种系统允许其他应用程序在上述各种模块上运行。分布式嵌入式控制系统中的那些应用程序却能够协调地工作。
为了提供这种群控制,大多数分布式嵌入式控制系统都是围绕通信协议标准建立的,例子包括CAN(ISO 11898)、SERCOS、FlexRay、EtherCAT,以及有时甚至以太网。较高层次协议被嵌入在通信标准之上,以提供参与控制网络的电子控制单元上的参与应用程序之间的数据交换的规则、定时规则、顺序规则,等等,以促进正在交换信息的分布式应用程序之间的通信。CANopen、DeviceNet、SDS、J1939,以及NMEA 2000只是层叠在CAN标准上面的协议的几个例子。甚至使用诸如CanKingdom之类的元协议,通过这些元协议,可以针对特定的分布式嵌入式控制系统构建并优化较高层次协议。
每一协议标准都具有其自己的长处和弱点。理想的通信具有无限带宽、无延迟、以及完整的数据完整性。可用的通信方案离理想的通信相距甚远,必须找到折中的方案。例如,以太网的带宽大,但是,由于其对消息冲突情况的处理能力差,因此,时效性较差。CAN具有高效的冲突解决能力,但是带宽低,并且没有同步支持。SERCOS速度快,但是,所有节点都必须支持系统中的要求最苛刻的节点的通信要求。相应地,设计分布式嵌入式控制系统时的一个大的难点是选择适合给定系统的需求的基本通信系统。另一复杂点是系统的不同的部分常常具有不同的需求。某些部分可能涉及要求准确的时间同步和短的延迟的高级的反馈循环,而其他部分可能对时间要求根本不是特别苛刻,相反依赖于正确的事件序列。在另一示例中,系统可能在运行时情况下与低带宽的通信协议配合得很好,但将需要高带宽以用于维护模式下的刷新模块。此外,行业还要求许多开发和分析工具和精通选择的通信协议的若干工程师来发现正确的折中方案。为以利用一种协议的好的属性并最小化其短板的方式应用给定技术,通常基于选择的协议以及其相关联的工具,要求在设计和维护分布式嵌入式控制系统方面有很长时间的实践经验。
在CAN系统的示例中,开发了CANFD协议以便解决CAN协议的数据带宽限制。然而,此系统不与以前的基于CAN的模块向后兼容。相应地,使用CANFD协议的模块不能被安装到具有基于CAN的模块的控制网络中,并且不能与那些模块进行通信。另一短板是,CANFD协议基于模块查找给定设定的时间点,这要求模块具有高度准确的时钟和处理器。具体而言,CAN-FD要求相对于一条边沿,与采样点位置组合地,从第一位速率切换到第二位速率。此解决方案要求在从边沿到采样点以及第一位速率的定义中的采样点的共同的位置的时间内有稳定的时钟。获得采样点的精确定义限制了可以被用来运行CAN-FD控制器的可能的时钟频率。此外,虽然速度相对于以前的基于CAN的系统提高了,但是,最大消息长度仍仅限于64字节。这样的系统对于系统设计人员而言,缺乏灵活性。
此外,CANFD还可能会对于基于CAN的控制系统的当前用户带来某些实现挑战。在一个示例中,汽车行业使用基于CAN的模块来在车辆中的各种元件之间进行通信。考虑到汽车业务的本质,简单地更换车辆的系统中的一个模块都会非常贵。考虑到面对CANFD模块与CAN模块的集成的挑战,引入一个CANFD模块将会迫使一个汽车制造厂要么将给定车辆中的每个模块都更换为CANFD(并承担许多倍的成本来设计、建立、以及测试每个新模块),要么将车辆的通信总线拆分为两个:一个运行CAN,另一个运行CANFD。如此,需要一种可以允许随着时间的推移,诸如在汽车行业,向之前建立的基于CAN的系统,逐步引入CANFD模块的技术,以降低否则可能面向CANFD模块的进入壁垒。
技术实现要素:
一般而言,根据这些各实施例,第二协议被以这样的方式嵌入到第一协议中,以便支持第二协议的模块可以觉察到第一协议并使用第一协议,而只支持第一协议的模块可以不觉察到第二协议。使用第二协议的模块的操作不会干扰未配置为使用第二协议或理解第二协议的模块的操作。根据一种方法,使用第二协议发送的消息将被视为使用第一协议发送的消息,但不具有理解所需的消息,或被视为需要特定响应。在另一种方法中,使用第二协议的模块可以被配置成在由其他模块进行的第一协议消息的传输过程中发送消息,第二协议消息由根据第一协议发送的消息的期望的方面触发的。
在一个特定示例中,第一协议可以是CAN协议,而第二协议是将位嵌入到CAN协议的某些部分的协议。例如,CAN协议的位通常包括多个比特量子,而CAN协议通过查找特定部分处的特定信号电平,或单个位的比特量子,来进行操作。因此,根据一种方法,第二协议可包括使用CAN消息数据包的除已定义的比特量子以外的Prop-Seg位的比特量子,在CAN消息数据包内发送额外的信息。
第二协议信息被如此嵌入,以便第二协议中的位的下降沿将不会干扰只理解第一协议或CAN协议的模块的正常操作。这可以,例如,通过与消息数据包的一部分一起使用第一协议和第二协议两者,来执行模块的同步来完成。使用此方法可以允许使用第二协议的模块使用正在传输第二协议消息的第一协议消息的消息传送控制,来控制第二协议消息,由此,增大了利用单一第二协议消息可以传输的数据量。
这些原理是可扩展的,以便单一通用控制网络上的多个模块可以使用第一协议内的多种不同种类的嵌入式协议。此外,使用第二协议的模块还可以被安装到使用被配置成只使用第一协议的较旧的模块的控制网络中,由此,有升级现有的控制网络的某些部分的相当的灵活性。
在汽车行业的环境中的实现示例中可以预想这样的优点。这里,新模块可以被配置成使用CAN标准,如此处所描述的第二协议,以及CANFD协议来进行操作。这样的模块可以被引入到否则稳定的基于CAN的通信总线中,并通过使用第二协议,提高通信速度。随着时间的推移,在所有旧CAN模块都被替换之后,模块可以使用CANFD协议进行通信,以提供一致的,高速通信环境。如此,采用使用CANFD协议的模块可以立即进行,而不会有涉及将CANFD模块合并到具有旧的CAN模块的通信总线的附带的顾虑。
在对下面的详细描述进行了彻底的阅读和研究之后,这些及其他优点可以变得更清楚。
附图说明
图1包括根据本发明的各实施例配置的示例控制网络的框图;
图2包括CAN消息的示意图;
图3包括示例CAN时间量子的示意图;
图4包括示例CAN位的示意图;
图5包括根据本发明的各实施例的配置的,在第一协议消息的一部分(这里是CAN消息的Prop_Seg部分)中嵌入第二协议消息的示例的示意图;
图6包括根据本发明的各实施例的配置的,在基于CAN的第一协议消息的一部分中嵌入第二协议消息的另一示例的示意图;
图7包括根据本发明的各实施例的配置的,在基于CAN的第一协议消息的一部分中嵌入第二协议消息的一个示例的示意图,Sync_Seg部分被设置为占优势的;
图8包括根据本发明的各实施例配置的,在基于CAN的第一协议消息的一部分内使用第二协议消息来进行操作的模块如何可以解释带有信号失真的接收到的消息的示例的示意图;
图9包括根据本发明的各实施例配置的,在基于CAN的第一协议消息内使用第二协议消息操作的第二模块如何可以解释带有不同的信号失真的图8的接收到的消息;
图10包括根据本发明的各实施例配置的示例控制网络的框图;
图11包括根据本发明的各实施例配置的从一个模块发送的示例消息以及该消息如何被第二模块感觉的图解的比较;
图12包括根据本发明的各实施例配置的从一个模块发送的示例消息和第二模块如何响应于接收到该示例消息用第二协议传输消息的图解的比较;
图13包括根据本发明的各实施例配置的从一个模块发送的示例消息和第二模块如何响应于接收到该示例消息用第二协议传输消息的图解的比较;
图14包括根据本发明的各实施例配置的具有星形拓扑的示例控制网络的框图;
图15包括根据本发明的各实施例配置的示例通信设备的框图;
图16包括根据本发明的各实施例配置的发送的多个示例消息的图解;
图17包括根据本发明的各实施例配置的CAN位和扩展的CAN位的图解,一些部分被突出显示,以示出在哪里可实现CAN-EF;
图18包括两个模块A和B之间的通信的时间线,示出了传播延迟;
图19包括在CAN传输过程中两个CAN-EF模块A和B传输同步脉冲的时间线;
图20示出了在隐性位之后具有占优势的同步段的CAN传输;
图21示出了在图20的CAN传输内的哪里可以发送CAN-EF嵌入位;
图22示出了CAN传输的采样点(SP)和同步跳转宽度(SJW)范围;
图23示出了根据本发明的各实施例的CAN传输的已修改的采样点(SP)和同步跳转宽度(SJW)范围;
图24示出了根据本发明的各实施例配置的隐性位的序列的传输,其中,六个位中有五个具有同步边沿;
图25示出了根据本发明的各实施例配置的位时间(BT)中的各种CAN-EF参数的关系;
图26示出了在仲裁序列之后两个模块A和B之间的通信的可能的状态;
图27示出了最后一个CAN位的颠倒以在隐性位和占优势的位之后强制同步边沿,连同最坏情况位填充情况;
图28示出了根据本发明的各实施例配置的嵌入在CAN位和扩展的CAN位内的示例CAN-EF帧格式;
图29示出了在CAN传输内在哪里可以发送CAN-EF嵌入位;
图30示出了根据本发明的各实施例配置的使用两个CAN字节的80个CAN-EF位的示例传输;
图31示出了根据本发明的各实施例的传输序列,其中,传输的CRC DELIM部分强制填充违规;
图32示出了带有初始同步脉冲的两位周期;
图33示出了传输设备和接收设备之间的传播延迟;
图34示出了图33中所示出的传播延迟内的同步不确定性;
图35示出了根据本发明的各实施例配置的广播数据覆盖层;
图36示出了根据本发明的各实施例配置的双向协议中的广播数据覆盖层的操作。
精通技术的人员将理解,图中的元素是简明而清晰地显示的,不一定是按比例绘制的。例如,图中的某些元件的尺寸和/或相对定位可以相对于其他元件而放大,以帮助改善对本发明的各实施例的理解。此外,常常未描绘在市场上可行的实施例中有用或需要的常见的但是很好理解的元件,以便促进对这些各实施例的不太干扰的理解。进一步理解,可以按特定发生顺序描述或描绘某些动作和/或步骤,而所属领域的技术人员将理解,相对于序列的这样的特殊性不是实际必需的。还可以理解,此处所使用的术语和表达具有本技术领域的专业人给予如上文所阐述的这样的术语和表达的普通的技术意义,此处以别的方式阐述了不同的特定的含义的情况除外。
具体实施方式
现在参考图形,具体而言,参考图1,现在将呈现与这些原理中的许多兼容的说明性系统。在图1中,示出了具有通过总线1005进行通信的各种设备的控制网络1000,但是,这些原理可以应用于具有各种拓扑中的任何一种拓扑的控制网络。通信设备装置1010可以被视为控制网络1000上的模块或节点,并包括被配置成根据控制网络的拓扑连接到控制网络1000的通信端口1012。通信设备装置1010还包括处理设备1014,该处理设备1014可操作地连接到控制网络1000,以控制经由通信端口1012,通过控制网络1000接收和发送通信。所属领域的技术人员将认识到并理解,这样的处理器可以包括固定目的硬线连接的平台,或者还可以包括部分地或完全地可编程的平台。所有这些架构选项都是在业界已知的并被理解的,并不需要进一步的描述。
根据一种方法,处理设备1014被配置成,在根据第一协议,通过控制网络1000的消息数据包的传输过程中,使用第二协议,传递嵌入在消息数据包内的第二消息。例如,处理设备1014进一步被配置成基于消息数据包的至少一部分,对于第一协议和第二协议,通过控制网络1000,与第二通信设备1020,1030,1040,1050,和/或1060执行同步。在另一种方法中,处理设备1014支持第一协议和第二协议两者,并当与通信设备1020和1050进行通信时使用两个协议,通信设备1020和1050也支持第一协议和第二协议两者,而通信设备1030,1040,以及1060只支持第一协议。在此示例中,根据第二协议的消息中的任何信息都将被只运行第一协议并如第一协议所定义的通信设备1030,1040,以及1060解释为噪声,并将被忽略。
将在基于CAN的系统的上下文中,参考图2-10来描述在第一协议消息中嵌入第二协议的示例实现。控制器区域网络(CAN)标准(国际标准化组织(ISO)11898)是分布式嵌入式控制系统的通常使用的协议,虽然这些一般性的原理可以应用在其他协议上。
在此实现中,支持CAN协议ISO 11898的模块可以通过放弃利用CAN的一个或多个特征,在同一个总线上与支持第二协议的模块共存。图2示出了CAN的某些主要特征。CAN被设计用于总线拓扑,并适用于两个电压级别,无电压101,表示值“1”,以及表示值“0”的电压102。此安排暗示,零比1占优势;换言之,如果第一传输器传输1而第二传输器同时传输零,那么,只能检测到零。空闲总线可以被视为1的连续流。消息103以零位,帧起点(SOF)104开始,接下来是11(标准)或29(扩展)加2协议位(总计31位)的标识符105,以及远程传输请求(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字段113,最后一个位是CRC定界符114。ACK字段115包含ACK位109,接下来是隐性位,ACK定界符116。消息103的剩余部分是帧的末尾(EOF)字段117,包含七个连续的隐性位。三个隐性位,间歇118,必须在总线空闲无新消息之前传递。
根据CAN规范(ISO 11898-1),位由时间量子构成。参考图3,标准CAN消息的单一比特量子被描绘成时间量子130,这是从传输器/接收器的时钟的振荡器周期131推导出的时间的固定单位。可以可另选地从单独的振荡器或时钟派生时间滴答声131。带有整数值的可编程预定标器从至少1到32变动,以将时间量子定义为给定数量的最小时间量子。相应地,以最小时间量子开始,时间量子应该具有下列长度:
时间量子=m x最小时间量子
其中,m是预定标器的值。
因此,在操作中,如图4所示的另一示例CAN位132由单个时间量子构成。第一时间量子是Sync_Seg 133,接下来是Prop_Seg(传播段)134,包括1个多至至少八个时间量子。根据一段时间,定义传播段,以确保信号波可以从传输器传播到总线的远端并返回,这也将对应于控制网络上的最远的模块接收到消息并作出响应所需的时间量。相应地,Prop_Seg长度被设置为允许CAN协议的位仲裁方面起作用。CAN位132的最后的部分包括相位段,Phase_Seg1 135和Phase_Seg2 136。相位段是对称的,每一相位段都具有一个或最多至少八个时间量子长。相位段占据在系统中的不同的节点之间的传输斜移。然后,CAN位应该是从4到至少25个时间量子可编程的。
假设CAN系统中的所有时钟都是不同步的。当传输SOF 104时,使每一模块的时钟与下降沿140同步,而每一模块都计数为Prop_Seg和Phase_Seg1指定的时间量子的数量。例如,接收下降沿的模块的内部时钟可以确定该内部时钟的分辨率内的期望的采样点定时;即,通过知道内部时钟中的位的定义,模块可以计算采样点相对于内部时钟的位置。在CAN中,这通常由时间量子单元来实现,其中,每一时间量子都是本地时钟元件的数量。在采样点141测量信号的电压。如果电压仍存在,则模块判断检测到SOF,并根据CAN规范,解码下面的电压位移。如果在采样点141没有电压,则下降沿被视为技术故障并被忽略。此特征可以被视为低通滤波器,过滤掉总线上的,例如,由于电波反射而造成的干扰。这样的特征使CAN可靠并在差的布线安装中容错性强。
电压边沿会在某些通信系统中辐射高频率,由此导致电磁兼容性(EMC)问题。为减少这样的问题,CAN指定位的不归零(NRZ)解码,换言之,相同值的连续的位不会生成任何边沿;相反,位通过航位推算法来解码。单个模块的时钟只在被定义为从隐性(1)位到占优势的(0)位的过渡的下降沿再同步。CAN具有位填充规则,在相同值的五个连续的位的序列之后,应该插入相反的值的填充位,以确保将发生再同步。如此,在正常情况下,再同步将至少在十个位之后发生。CAN规范要求采样点在相位段内保持达至少13位。
有关CAN的比较详细的信息可以在ISO标准1898以及Florian Hartwig和ArminBassemir((Robert Bosch GmbH,Abt.K8/EIS)在11月2日到4日在意大利图林市召开的第六届国际CAN会议中演讲的文章“The Configuration ofthe CAN Bit Timing”(CAN位定时的配置)中找到,该文由CAN in Automation(CiA)(德国Nürnberg)出版,这些材料完整地包括在本文中作为参考。
转向图5,对带宽问题的一个示例解决方案是修改第一协议,这里是CAN协议,以将第二高速协议嵌入到标准CAN消息的某些部分。在这样的方法中,控制网络模块的处理设备可以被配置成控制第二协议以使用高于第一协议的位速率的位速率,例如,以控制第二协议使用高于第一协议的位速率的某一整数倍的位速率。可另选地,第二协议位速率还可以具有拥有高于第一协议的非整数倍的速率。例如,第一协议可以具有100位/秒的位速率,而第二协议可以具有从400位/秒到6Mbit/秒间的任何数字的位速率。位速率将是(每个第一协议位中的第二协议位的数量)/((propsegment时间长度)x利用率)位/秒。第二协议中的位的速率只由第二协议控制逻辑中的时钟分辨率来限制。每一时间量子中的位的数量可以,例如,是20每3个时间量子。在任何情况下,效果是,处理设备被配置成通过在第一协议的单个比特量子内部添加位,来实现第二协议。换言之,CAN消息数据包可以由具有多个比特量子的位进行定义,而CAN消息数据包的数据由在位的已定义的比特量子的信号电平进行定义,其中,已定义的比特量子小于位的每一个比特量子。例如,标准CAN位使用已定义的比特量子,包括相应的位的第一比特量子(该第一比特量子是Sync_Seg位),以及相应的位的采样点比特量子。该采样点通常在位的Phase_Seg1和Phase_Seg2部分之间,如图4所示。有剩余的,未定义的比特量子可用于第二协议中。如此,在一个示例中,为嵌入第二协议,处理设备被配置成使用除由节点使用标准CAN消息协议检查的已定义的比特量子以外的CAN消息数据包的Prop-Seg位的比特量子,在CAN消息数据包内发送额外的信息。
在图5示例中,第二协议消息被嵌入在在CAN消息中传输的CAN位的Prop_Seg中,在CAN消息的仲裁字段之后。传播段只在节点之间的CAN消息交换的仲裁部分有用。一个以上的模块会在仲裁时段内同时传输,这可能会导致由不同的模块在大约相同时间进行通信导致的波动的位定时或位定时识别问题,由此,产生了要由仲裁解决和/或由模块中的一个或多个中的坏的时钟解决的冲突。在仲裁时段之后,只有一个模块传输,总线上的位定时反映传输器的振荡器。如此配置,第二消息可以被嵌入在这样的CAN位的Prop_Seg的时间量子中,没有被丢失到控制网络上的冲突噪声中的顾虑。此外,未配置为以第二协议接收消息的模块将不会在这样的位的Prop_Seg过程中寻找信号变化,以致于消息的此部分的信号变化将不会不利地影响这样的模块。相应地,处理设备被配置成通过在未根据第一协议测得为特定级别的第一协议的单个比特量子内部添加位,来实现第二协议。
更具体而言,图5示出了带有八个时间量子的传播段205和两个相位段203和204的示例CAN位,每一相位段203和204都是一个时间量子。位以Sync_Seg 202开始,其中,在此时间,执行任何电压位移201。通过粗线206描绘了位时间内的电压级别。支持第二协议的模块将通过采样每一时间量子的电压值,来为嵌入的高速位流使用Prop_Seg,并根据CAN规则,解码该值,其中,感应到的电压被解码为零,无电压被解码为1。只支持原始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。在Sync_Seg 304中检测到下降沿,并由支持原始CAN协议的模块在采样点305确认位的值。它忽略任何额外的下降沿,诸如在初始边沿302之后的边沿322。支持第二协议的模块将读取嵌入在CAN位中的位序列321中的0 111 0 0 1 0。在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移动采样点达一个比特量子(因为此示例的Phase_Seg只有一个比特量子长)。CAN模块仍将正确地采样位值为1,但是,在支持第二协议的传输模块所使用的CAN消息中的假的位置处。后面的CAN位313中的下一下降沿327将把CAN采样点移动另一时间量子,并进入错误的位中。然后,它可能会错误地采样由第二协议所生成的占优势的级别,如由314所指示的。
为避免此错误,根据第二协议操作的模块的处理设备被配置成将Sync_Seg比特量子设置为占优势的,例如,在第一协议中的隐性的样本之后。此规则的缺点是,与原始CAN协议相比,它将在CAN消息中引入更多下降沿,但是,任何高速协议将类似地产生额外的下降沿。在此方法的一个示例中,在第一协议中,使用填充位来至少每隔10个位地获得一个再同步边沿。利用此新边沿生成器,再同步将在每个隐性位上发生,并决不会在大于6个位之后发生。利用这样的安排,示例系统能够与小于66%的容差的时钟一起运行。这样的方法的一个潜在缺点是,优点只能在利用同步段中的此额外的边沿发送所有消息的地方实现,并且,如果根据第一协议来发送消息,此方法可能不起作用。此特征还可以用于将第一协议中的采样点移动到传播段之外。通过在第一协议中具有只带有隐性位的第一字节,可以具有将把采样点移动到传播段之外至少八个时间量子的八个边沿。这将不会覆盖所有情况,因为传播段可能会在传播段中具有大于八个时间量子。在大多数情况下,这应该够多,其他实现可以被编程为覆盖第一协议中所使用的任何设置。
图7示出了与图6相同的消息,但是,应用了第二协议的新规则。预期的上升沿308现在被替换为第二协议的上升沿401,因为Sync_Seg 402是占优势的。第二协议可能已经在403一直将上升沿移动到Phase_Seg1,在309,CAN模块仍将正确地采样。Sync_Seg 404将生成将再同步CAN模块的下降沿405,它们将在采样点410,正确地采样1。通过使用这样的方法,示出了操作第二协议的模块的处理设备可以被配置成通过控制网络,对于第一协议和第二协议两者,基于包括根据CAN协议发送的消息数据包的消息数据包的相同部分,执行与第二通信设备的同步的一种方式。
回头参考图2,从仲裁字段107到确认位115的部分108包含86个CAN位,在那里,可以嵌入第二协议。利用根据上文的示例实现的嵌入的协议,可以向8字节CAN消息中添加额外的86字节。在一种方法中,嵌入的协议可包括某些24位的循环冗余码(CRC)总和。此外,这些位中的最后一个位还必须被预留,用于在有故障CRC总和的情况下,传输错误帧。如果24位CRC总和被认为对于来自嵌入的协议的89字节数据足够,那么,八字节CAN消息可以传输97字节的数据,将CAN通信的带宽提高12倍。根据另一个示例方法,处理设备被配置成使用CAN消息数据包的CRC位,作为对于CAN消息数据包的质量控制检查,并使用CRC位的用于标准CAN消息的已定义的比特量子以外的比特量子,用于对于在CAN消息数据包内使用第二协议发送额外的信息的质量控制检查。如此,在实现第二协议的情况下,诸如在上文的图5的使用未被原始CAN协议所使用的位的Prop_Seg部分的比特量子的示例中,标准CAN消息的CRC位的该相同未使用的或未定义的比特量子可以被用作使用第二协议发送的信息的错误检查信息。在一种这样的方法中,选择适用于嵌入的协议的比较长的数据的比较长的CRC字段,例如,21位CRC。对于应该只由使用第二协议的节点接收的消息,这会更有效率。在一个这样的示例中,基本CAN消息的数据字段应该只包含隐性位,其中,CAN填充位和CAN CRC位的出现是先验地已知的,并且消息中的位的总数独立于消息中的数据。然后,尽可能将第二协议的CRC放得与CAN消息中的SOF距离远一些,诸如帧的末尾位旁边的末尾两个位。在CRC不匹配的情况下,可以在EOF位之前的位中发送CAN错误标记,以触发系统中的每个CAN节点拒绝消息。实现每一CAN位的Sync_Seg都具有相应的位值的相反的值的规则,即,隐性位的Sync_Seg占优势,反之亦然,将为嵌入的协议创建更多同步侧翼。更多同步侧翼将允许嵌入的协议的较高位速率,该较高位速率还可以用于改善对第一协议的CRC保护。由于在填充位的组合中计算CRC,第一协议的定义具有某些缺点。第二协议可以通过使用CRC计算的不同的定义,来解决此顾虑。通过在第二协议中只添加一个额外的位并在传播段中将此位设置为与第一协议的采样点的值相同,并行地进行两个CRC计算,一个根据第一协议,另一个使用第二改善的CRC,根据第二协议。通过在第一协议CRC位的传播段中包括第二协议CRC,两者都将并行地发送。只支持第一协议的单元将不会使用第二协议CRC信息,将不会检测到任何问题,但是,所有第二协议单元都将并行地检查两个CRC;并生成错误帧;如果不,两者都是正确的。在再一种方法中,第一协议消息可以在CRC位的第二协议部分内全部重发,以充当对接收到的第一协议消息的准确度的进一步的检查。
在该示例中,选择11比特量子的量来构成CAN位。可以选择十八个比特量子来在每一CAN位中嵌入两个字节。然后,带宽可以提高24倍。CAN规范陈述,位应该可编程到至少25比特量子,如此,带宽可以提高得更多,诸如通过为一个位使用35或67比特量子。限制仅仅由时钟、收发器,以及使用中的系统的电缆的质量来施加。如此配置,一个优点是,诸如CAN之类的协议可以随着新的模块设计可以利用更现代的并且先进的组件,逐步增强,并且在带有旧式模块的系统中仍完全向后兼容。
从上述框架开始,许多修改的方法可以被用来满足各种控制网络设计需要。
在一个示例中,标题为“Schematizing of messages in distributed control and supervision system”并且以引用的方式并入本文中的美国专利No.7,711,880描述了以避免冲突的方式(诸如通过组合消息的调度和CAN冲突解决机制)设计CAN系统的多种方式。CanKingdom协议描述如何从协议基元建立协议。任何CAN系统都具有数量有限的消息。假设这样的消息的数量在128和256之间的范围内,仲裁字段可以仅限于一个字节。RTR位CAN协议基元是可选的,在此示例中可以不使用。此外,在创建了系统特定的协议并且旧式CAN模块不参与的情况下,控制字段中的两个预留的位没有贡献。可以修改DLC字段,然后,允许根据给定需要,定义数据字段的16个不同的长度。
如果这样的方法用于给定控制网络中,那么,该网络上的CAN消息的仲裁字段107可以被嵌入的协议使用。在此方法中,操作第二协议的模块的处理设备被配置成使用用于基于CAN的第一协议的完整的或部分冲突避免,并将第二消息的至少一部分嵌入到消息数据包的仲裁部分。这将向如在上文的示例中实现的CAN消息添加另外的12或32个嵌入的字节,以便109或129个数据字节可以包括在一个CAN传输中。
在另一示例中,CAN通信的最大位速率由总线长度限制。标题为“Arrangement for eliminating malfunction and/or permitting high-speed transmission in a serial bus connection,and transmitter and receiver units linked to the latter”并以引用的方式并入本文中的美国专利No.5,696,911描述了当某些模块可以转换为无声模式,并如此,不完全参与CAN差错防护措施时,如何可以使用较高位速率。通过将如上文所描述的嵌入的协议应用到这样的系统中,通信的带宽可以提高另一数量级。
在再一个示例中,可以使用CAN作为其他新协议的输送帧。某些CAN较高层次协议不与CAN-FD向后兼容,并可能不能将高速协议集成到标准中。一种这样的协议是已知的SAE J1939。对此问题的解决方案包括指定几个特定的CAN标识符,带有固定CAN字段,用于唯一的目的,即,新协议的输送帧。J1939帧的开头三个位被接收器忽略,并用于形成七个传输优先级级别(J1939/21,5.2.1)。值011b(3)为控制消息预留,而值110b为所有其他信息性,专有的,请求和ACK消息预留。那么,值001可以被指定传输新协议。后面的CAN位应该全部都是1(隐性的),以提供定义明确的帧,所有CAN位都包括CAN id、填充位、RTR位、控制位、HLP位、CRC位等等先验地已知的东西。然后,001之后的每个CAN位都可以用于嵌入新协议。可另选地,如果低优先级级别将是首选的,那么,开头五个CAN标识符位应该是11101,接下来是传输新协议的1。建议的解决方案还通过前面建议的Sync_Seg修改,为嵌入的协议提供最大的再同步机会。至于同步,丢失了仲裁的模块会在错误的位置采样接收到的位,因为它不会在获胜的模块的下降侧翼进行硬同步,诸如在快要接收到获胜的节点的SOF的下降侧翼之前它可能已经启动了其传输的情况下。然后,CAN标识符中的开头隐性位中的某些可以单独使用(即,不携带新协议的任何位),以强制接收方节点重新充分地同步,以获得它们的采样点的正确位置。
此外,还可以以各种方式中的任何一种来实现第二协议。在上文的示例中,嵌入的协议具有NRZ位编码,但是,可以以另一种方式对它进行编码,诸如曼彻斯特或密勒编码。在处理设备被配置成通过使用基于CAN的编码方法来实现第二协议的情况下,还可以实现额外的优点,特别是在第一协议是基于CAN的情况下。在这样的情况下,系统可以被逐步升级。某些CAN较高层次协议只使用几个CAN标识符,并将标识扩展到数据字节的一个或两个。CanKingdom是这样的协议的一个示例。它使用CANJStd.ID 0用于设置消息,每一个节点都具有一个CAN ID,用于响应消息。在这样的方法中,对于支持嵌入的协议的模块,控制网络的设置时间可以大大地缩短,因为向模块的所有设置指令都可以在一个消息中携带,对指令的所有响应都由模块在另一消息中发送。更具体而言,模块的处理设备被配置成接收设置消息,并从设置消息导出足以配置第一协议用于通过总线进行通信的信息,以及足以配置第二协议用于通过总线进行通信的信息。该同一个设置消息被配置成允许被配置成只根据第一协议操作的设备响应于接收到设置消息而配置其本身。在一种方法中,操作第二协议的模块的处理设备可以被配置成使用相同软件模块来在第一协议和第二协议两者的设置时间配置其本身。几乎不需要对软件进行任何更改,将新模块与旧式模块混合将不会产生任何问题。旧式模块将在每一消息中接收一个指令(至今),但是,新模块将在一个消息中获得一切。由于内容由CAN id 0和头两个字节进行定义,因此,在两种情况下,解码将相同。
如此,在处理设备被配置成通过共享包括下列各项的组中的至少一项来实现第二协议的情况下,可以实现额外的效率:错误状态消息部分、初始化消息部分、确认消息部分、采样部分,以及其与根据第一协议发送的消息数据包的任何组合。在第一协议和第二协议两者都使用基于CAN的方法的情况下,实现第二模块的处理设备可以被配置成通过共享包括下列各项的的组中的至少一项来实现第二协议:帧起点位、仲裁字段、错误状态位、确认位、帧结束位、以及其与根据CAN协议发送的消息数据包的任何组合。虽然确认位由所有模块传输,但是,第二协议可以使用或可以不使用此消息来配置一个模块用于与确认模块的进一步的通信。
在省略了CAN协议的位填充安排的情况下,可以用于对嵌入的协议的位编码的额外的修改。上文所描述的第二协议不需要位填充,因为再同步边沿之间的最长的时间是五个连续的占优势的CAN位。在每一CAN字节之后计算CRC总和,并将其置于接下来两个CAN位中。如果检测到CRC不匹配,则传输CAN错误帧。在其他方法中,如果第一协议需要每隔10位再同步,那么,第二协议将需要在等于10个第二协议位的时间段之后再同步。如果每个同步段都发生再同步,则在传播段中可以最多具有10个位,无需再同步,这将要求每个第一协议位都被采样为隐性的以保证,在每个同步段中都会有隐性到占优势的边沿。如果第二协议位的数量超过此,则将需要再同步,一种示例方式是每隔五个位包括一个填充位,或通过固定这样的一个规律:每个第六个位都是填充位,极性被颠倒为前一位的值。这里,可以假设,时钟具有好于如J1939标准所描述的500ppm的容差。这将使得通过两个第一协议位对次要协议位的采样成为可能。如果时钟不好,则可以实现一种将确保同步段中的再同步以定义次要协议序列的启动的机制。一个这样的规则是,如果有占优势的第一协议位,则将会有隐性-占优势的对作为开始情况,如果有隐性的第一协议位,则在传播段中的次要协议位前面将会有占优势的-隐性的对作为开始情况。此方法将使得所有接收器模块同步,以采样次要协议位。为保持同步,可能需要额外的填充-位,并且,填充-位之间的距离将设置系统中所使用的模块中的振荡器的最大容差。
上述原理是可扩展的,一个模块可以被配置成通过控制网络进行通信,在通过控制网络根据第一协议传输消息数据包的过程中,第三消息使用第三协议,嵌入在消息数据包内。在另一种方法中,不同的模块可以嵌入不同的协议。这些嵌入的协议不必遵循CAN的任何设计规则。上文的示例中的电压级别与CAN的相同,但是,它也可以不同。如此,可以嵌入大量的为不同的目的优化的协议。CAN网络中的不同的节点组可以使用不同的嵌入的协议。例如,一个模块的处理设备可以被配置成响应于通信设备装置的操作模式的变化,更换第二协议的编码方法,这样的模式包括,例如,维护模式、刷新模式、运行模式、睡眠模式,等等。也可以修改第二协议的位速率。
此外,处理设备还可以被配置成将第二协议应用到少于从通信设备装置发送的每个第一协议消息。例如,在许多系统中,CAN带宽对于在运行时情况的大部分时间完全足够。在这样的应用中,嵌入的协议将只用于可能要求通过第一协议进行多次传输的某些特定的消息,一个示例是GPS坐标。嵌入的协议也可以用于诊断。现在,机载诊断(OBD)是车辆中的CAN通信的立法规定的部分,要求在运行时情况下进行某些消息交换。这会产生带宽以及定时问题,因为OBD消息只出现在执行诊断检查时。在通信模块被配置成在车辆总线中操作的情况下,如此,其处理设备可以被配置成在使用第一协议进行消息的运行时发送过程中,使用第二协议,执行车辆机载诊断信息的传输。如此处所描述的嵌入的协议的这样的应用将消除问题,因为OBD信息可以由嵌入的协议传输,在运行时情况下,将既不会影响定时也不会影响带宽。另一示例是在车辆系统被re-flashed的情况下。在此示例中,模块的处理设备被配置成控制总线上设备使用第二协议的flashing操作的参与,减少flashing操作过程中的系统延迟。
所描述的方法的再一个好处是使用第二协议来帮助识别网络问题。例如,总线上的干扰包括常常会难以发现和纠正的常见的CAN问题。这样的困扰包括由于沿着总线的阻抗位移导致的波反射,由于跨不同的节点的温度变化导致的时钟频率变动,以及由于外部源导致的临时失真。一个系统中的只有一个节点上的困扰常常会独自毁坏CAN消息。故障的余量通常是未知的。如此,可以使用第二协议来解决这样的问题。例如,可以使用第二协议的高速采样能力来检测第一协议消息中的噪声。第一协议消息中的传播段中的噪声可以表示在使用次要协议时的困难,因为噪声可能会导致次要协议中的位错误或CRC错误。
如上所述,嵌入的高速协议通常只有有时候才需要。当未用于使用嵌入的协议来进行通信时,设备可以用于对物理层的几乎连续的质量检查。在此方法中,一个模块的处理设备被配置成使用第二协议来测试控制网络的信号质量。根据一种方法,处理设备被配置成控制第二协议使用高于第一协议的位速率的位速率,并与当接收到的第一协议消息没有使用第二协议嵌入的消息时,对于接收到的第一协议消息的对应的部分预期的信号电平相比,判断嵌入在接收到的第一协议消息中的第二协议位是否不同于期望的信号电平。换言之,每一模块都被设置为监听总线,在空闲总线过程中,不应该检测到零。当传输CAN消息时,嵌入的协议中的字节中的所有位都应该与CAN位具有相同值。
为说明这一点,图8示出了从另一模块发送的接收到的CAN消息600的开始,从隐性级别601和下降沿602开始,表示SOF。下降沿后面有三个反射603,604,605。开头两个1被解码为11,表示下降沿之后的开头两个时间量子对于嵌入的协议不安全。图9示出了与反射点较远的另一模块上的相同消息。这里,反射被阻尼到对于嵌入的协议而言安全的级别。检测到另一干扰605,该干扰605可以轻松地被视为假再同步边沿,或者,如果出现在采样点,则会导致位错误。支持,但不使用嵌入的协议的模块可以检测并记录可能会使CAN模块在假边沿再同步和/或采样错误的位值的这样的干扰。根据相应的模块上的本地时钟,干扰将被非常准确地进行时间标记。然后,处理设备可以将关于判断嵌入在接收到的第一协议消息中的第二协议位是否不同于期望的信号电平的信息发送到比较器设备,该比较器设备被配置成将该信息与来自控制网络上的其他设备的对应的信息进行比较,以定位控制网络错误的源。这可以通过使用根据相应的本地时钟记录的并被置换为共同时间的时间来实现,其示例在美国专利No.8,065,052中描述,该专利的内容被整体结合在本文中,作为参考。可以将由总线上的阻抗变化所引起的干扰与其他类型的干扰区别开来,并且,因为总线中的波传播速度是已知的,还可以通过关联相应的节点上的干扰的时间戳和相应的节点之间的总线长度,来确定总线中的阻抗异常的位置。
如果判断对于给定控制网络,干扰主要发生在第一协议消息的特定部分,诸如在上文的示例中接近于边沿,则可以修改嵌入的协议以阻止使用第一协议的那些特定部分来嵌入。在上面的示例中,第二协议可以被配置成避免使用Prop_Seg中的开头的时间量子中的一个或多个来嵌入数据。较高层次协议CanKingdom演示了如何可以通过使用Kings Page 8,来优化CAN位定时,该相同方法可以被用来指定应该由嵌入的协议使用的时间量子。在另一这样的方法中,可以通过应用CanKingdom方法,仍使用一般性的模块,以系统特定的方式,设置整个嵌入的协议。
在进一步的质量检查中,用于依赖第二协议的时钟可以被用来检测本地时钟和控制网络上的另一设备的时钟之间的差异。在这样的方法中,模块通常使用单独的计数器来解码第一协议,诸如CAN协议,以及嵌入的第二协议。这里,处理设备被配置成在不预期嵌入的第二消息的模式下操作,当在该模式下操作时,不响应于接收到已接收到的第一协议消息的同步部分,而再同步第二协议的计数器。然后,处理设备通过接收到的第一协议消息的一部分,计数第二协议的计数器的时钟滴答声,以确定传输了接收到的第一协议消息的模块的时钟速率。如此,与参与CAN通信并行地,节点可以通过避免再同步嵌入的协议的时钟(通过比较从仲裁字段的结束直到ACK位的下降沿的时间,如由再同步的CAN时钟以及嵌入的协议的未再同步的时钟记录的),轻松地确定本地时钟频率和相应的传输器的时钟频率之间的差异。通过组合当前原理与根据美国专利号7,934,039和美国专利号7,478,234所描述的技术,可以实现额外的优点,这些专利中的每一个专利的全部内容都以引用的方式并入本文中。
将参考图10-13描述第二协议在第一协议内部的另一个示例实现。在此示例中,CAN总线701具有连接在总线701的最左端的电子控制单元(ECU)702和连接在总线701的最右端的第二ECU 703。在这些ECU 702和703中间,有更多ECU 704,705,70n连接到总线701。第二ECU 703根据CAN协议传输消息1100,其一部分在图11中示出。示出了根据CAN规范的消息1100的位序列1 1 0 1 1。更具体而言,示出了CAN消息1100的0位的Sync_Seg 705和Phase_Seg 1和2 706。接下来,示出了CAN消息1100的第二1位的Sync_Seg 707和Phase_Seg 1和2 708。
在如此处所描述的第二ECU 703被配置成根据第二协议操作的情况下,ECU 703将以信号通知相同位序列,如消息1120中所示。这里,Sync_Seg 710被理解为一个占优势的比特量子。下一部分是隐性的,直到占优势的Phase_Seg 1和2 711,接下来是跟随原始CAN消息1100中的零位之后的第一1位的占优势的Sync_Seg 712和隐性的Phase_Seg 1和2 713。零位之后的第二1位由占优势的Sync_Seg 714启动。根据原始CAN协议,计算出Prop_Seg,以确定ECU 702和703之间的信号延迟,这被指定为八比特量子,示为715。向位的左边添加额外的九比特量子716。此示例中的第二协议被定义为一个字节,表示为一个“字节的开始”比特量子,接下来是八比特量子。
指示ECU 702使用特定的CAN消息中的特定的位,用于根据第二协议来传输字节。在此示例中,段716示出了在原始CAN协议消息110中,这些位是从ECU 703传输的。为示出总线上的时间延迟以及尽管时间延迟,模块如何发送信息,图12和13示出了由第一ECU 702发送1200,1300了什么,以及由第二ECU 703接收并传输1220,1320了什么。图12是根据由第二ECU 703感觉到的时间配置的,而图13是根据由第一ECU 702感觉到的时间配置的。从第一ECU 702的传输717以Sync_Seg 710开始。它沿着CAN总线701传播,并到达第二ECU 703。当它由ECU 702检测到时,ECU 702传输字节的开始718,接下来是根据第二协议的位01101011。这在图12中示出,其中,位01101011是响应于从第一ECU 702接收到Sync_Seg 710而立即传输的。然后,第二ECU 703响应于从第一ECU 702接收到Sync_Seg 712,根据第二协议,传输第二字节01010101。来自第二ECU 703的此第二协议信号传播回到第一ECU 702,但是,由于传播延迟,它现在位于由第一ECU 702传输的原始CAN信号的第二部分715。710和718之间的时间差,即,然后,由第一ECU 702轻松地测量ECU 702和703之间的传播延迟。
如此配置,不仅来自不同的ECU的根据第二协议的信号可以嵌入在根据第一协议的同一个消息中,而且还可以轻松地测量ECU之间的传播延迟。可以通过组合这些原理与那些某些以前的原理,诸如由标题为“Schematizing Of Messages In Distributed Control And Supervision”的美国专利号7,711,880,标题为“Variable Oscillator For Generating Different Frequencies In A Controller Area Network(CAN)”的美国专利号7,472,216,标题为“Device In A Modularized System For Effecting Time-Stamping Of Events/Reference Events”的美国专利号7,899,936,以及标题为“Distributed Control And Monitoring System”的美国专利号7,478,234中所描述的那些,创建带有不同的质量的多种多样的协议,这些专利中的每个专利的全部内容都以引用的方式并入本文中。
此处所描述的各种协议还可以应用在不同的控制网络拓扑中。在图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,发送消息。
在具有在给定环境中进行通信的多个模块的另一示例中,被配置成使用嵌入的协议的多个模块可以被配置成接收将发送即将到来的第一协议消息的信号,并被配置成允许多个第二协议消息在即将到来的消息的传输时间内被嵌入。作为响应,多个模块可以配置其本身,以便模块中的单个模块在即将到来的第一协议消息的某些部分期间,发送第二协议消息。从单一模块的观点来看,第一模块被配置成接收将发送即将到来的第一协议消息的信号,并配置其本身在即将到来的第一协议消息的第一定义的部分(该部分小于即将到来的第一协议消息的全部)期间,基于第二协议,发送消息,并在即将到来的第一协议消息的不同于第一定义的部分的第二定义的部分期间,从另一模块接收第二协议消息。相应地,多个基于第二协议的模块可以在单一第一协议消息的过程中发送信息,当多个模块需要交换信息时,这会大大地缩小通信延迟。
在这样的方法的一个具体示例中,一个“主控节点”传输基于带有给定CAN ID和DLC,诸如,例如,1000位的CAN的消息。然后,数据字段带有1的模式。在总线上,将会有包含五个隐性位和一个占优势的位的十个块的模式。十个隐性位中的每一个都可以以不同的方式用于嵌入的协议。一个示例可以是具有嵌入的协议,如上文建议的,其中,每一CAN位都可以根据嵌入的协议,传输字节。嵌入的协议中的信息的解码规则由CAN ID以大体上与CAN较高层次协议相同的方式给出。然后,调度数据位,以便头两个五位序列为从第一节点的第二协议传输预留,第二两个五位序列为从第二节点的第二协议传输预留,第三两个五位序列为从第三节点的第二协议传输预留,以此类推。然后,每一模块都可以发送八个字节的数据和15位CRC总和,如在普通CAN消息中那样。如此,从这些第二协议节点的传输的延迟可以显著地缩小。例如,从五个节点的传输可以缩小五倍,而在这些五个节点之中数据包之间的延迟在此示例中是达某一高精度地先验地已知的。可以根据不同的需要,应用不同的方案。不仅数据字段可以使用,而且CRC字段中的隐性位,CRC定界符和ACK位之后的隐性位也可以使用。
在额外的替换实施例中,本文所描述的功能或逻辑可以以可以在单独的处理器电路中执行的代码的形式具体化。如果以软件具体化,则功能或逻辑的每一块都可以表示包括程序指令以实现指定的逻辑功能的代码的模块、段,或部分。程序指令可以以源代码(源代码包括以编程语言编写的人可读取的语句)或机器代码(机器代码包括可被诸如计算机系统或其他系统中的处理器之类的合适的执行系统识别的数值指令)的形式具体化。机器代码可以从源代码转换而来。如果以硬件具体化,则每一块都可以表示电路或许多互连的电路以实现指定的逻辑功能。相应地,计算机可读介质(是非瞬时的或有形的)可以存储这样的被配置成导致处理设备执行如此处所描述的操作的指令。本领域技术人员将理解包括场可编程门阵列(FPGA)、微控制器等等的硬件方法。
一般而言,当今的电子器件非常复杂,并且是动态的,在什么是软件什么是硬件之间没有非常清楚的线。例如,软件将要求某种支持硬件来进行信息存储,并且,基本上每个软件指令都将依赖于MCU核中的将从指令返回预期结果的某种硬件。还可以反过来说,因为硬件的设计依赖于某种软件以及描述要生产的硬件的文档。还可以根据很难改动的图纸将硬件固定到硬件门阵列设备,而在硬件门阵列中,基本硬件是固定的,但可以通过使用内部基本结构的不同的连接来修改最后的硬件功能。当今可用的最灵活的解决方案是上文所提及的FPGA,该设备不需要在交货之前完全定型。相反,可以在安装在产品上时,在基本结构之间进行内部连接。FPGA中的连接通过将可编程值设置为某一值来进行,在二进制系统中,它将被设置为0或1。最常见的解决方案是使用RAM技术来存储连接模式。这样的解决方案的缺点是,当断电时,设备将丢失连接,每当重新通电时,需要重新配置设备。在SRAM中配置的优点是,在任何时间都可以对设备进行重新编程。某些较新的设备甚至提供只重新编程设备的一部分的可能性。某些设备使用闪存来配置FPGA中的连接。这种做法的优点是,一旦电源稳定,设备就可能工作正常。缺点是,在大多数情况下,与RAM相比,编程一个闪存要花比较长的时间。某些较旧的设备使用熔合技术来编程FPGA。这样的解决方案的缺点是,当一旦您编程了单元中的设备,则将来不可能改变连接。这不会是100%正确,因为在大多数情况下,开始时连接具有二进制值1或0,您可以改变它们的默认值,但是,您不能再将它们切换回。
使用硬件和软件组件来在CAN协议内部实现第二协议的各种方式都是可以的。在一种方法中,数据的发送和接收包括两个独立过程,带有两个不同的本地时钟,仲裁除外,这是同时发送和接收的混合物。发送器一次将一个位放置到通信线中。每一个位的长度都被定义为许多本地时钟周期。在大多数情况下,发送的每一个位在本地时钟周期具有相同长度,但是,协议可以适应不同的位与本地时钟周期中的不同的长度的混合物。在一个示例中,第二协议可以使用两个不同的位长度,但是额外的位长度也是可以的。发送的每一位一般将具有两种不同级别中的至少一种,但是,更多级别也是可以的。每一位的级别都由协议进行定义。某些固定的及其他位将取决于数据内容,例如,数字1可以被作为一个位0和第二位1发送,而数字0作为一个位1和第二位0发送,这样的模式叫做曼彻斯特编码。发送器将发送一个位流,以形成消息的协议中所包括的第一位开始,并以最后一个位结束。消息之间的时间叫做空闲总线,并可以是固定级别或表示空闲通信总线的不同级别的模式。
在此示例中,当解码通信线上的空闲模式时,接收器一般保持空闲。消息的开始将是不同于空闲模式的模式,此模式包括边沿(从一个级别切换到另一级别)。协议定义此边沿与以本地时钟单元为单位跟随的每一个位中的采样点的位置如何相关。如果接收器时钟具有与发送器时钟相同的速度,则接收器将通过消息正确地采样每一个位。实际上,具有将在无限的时间内具有相同速度的两个时钟是很难的,甚至是不可能的。相应地,系统要么使用足够好以将采样点保持在消息内的时钟,要么消息被设计成足够短以保证在消息的持续时间内时钟将不会偏离太多。两个解决方案都不理想,因为常常可用的时钟不足够准确或消息会变得太短。为解决此问题,协议可以定义用于调整采样点的某些边沿。通常,边沿被定义为两个位之间的级别位移。如果那些定义明确的边沿发生得太早或太迟,则接收器可能能够调整采样点相对于那些边沿的位置,以获得位于后面的位中的更好的采样,直到有一个可以用于下一校正的新边沿。在仲裁期间,模块应该根据如协议所定义的边沿的接收,来调整位的发送。时钟的精度由采样点可以在时间方面的变化程度并且仍在正确的位内采样,以及采样点将被协议规则校正的频度和程度组合地给出。
转向图15,将描述在CAN协议内部使用第二协议的特定的实现。与上文所描述的单一处理设备将在组合的CAN/第二协议消息中准备并发送(和接收)第一协议和第二协议消息两者的特定的实现不同,两个或更多处理设备可以并行地工作,以处理组合的消息的不同的部分。此方面可以是可扩展的,其中,不同的处理设备负责处理给定发送或接收的消息的特定的比特量子或部分。
更具体而言,在图15的示例中,通信设备装置1500包括被配置成连接到控制网络1511的通信端口1510。通信设备装置的处理设备包括第一处理设备1500,该第一处理设备1500被配置成控制通信设备装置进行CAN通信仲裁,并控制CAN消息数据包的通信。处理设备还包括至少一个第二处理设备1505和1507,它们被配置成在除已定义的比特量子以外的至少一个比特量子内控制额外的信息的至少一部分的通信。在所示示例中,至少一个第二处理设备包括单独的处理设备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计数从时间事件生成器1520接收到的滴答声,并响应于计数第二数量的滴答声,在输出端1633输出第二触发信号,并复位。
第一寄存器1532将第一触发信号提供到第一处理设备1503,其中,第一触发信号对应于CAN消息数据包的采样时间。第二寄存器1632将第二触发信号提供到至少第二处理设备1505中的至少一个,其中,第二触发信号对应于在CAN消息数据包内发送的额外的信息的采样时间。如此,寄存器1532和1632帮助处理设备跟踪何时感应接收到的数据包中的电压信号或何时在发送的数据包中提供信号。有时,这些寄存器需要复位,以实行通信设备装置与控制网络1511上的其他通信模块的再同步。在一种方法中,复位设备1536感应帧起点,并响应于感应到帧起点,连接,以复位至少两个寄存器1532和1534。在所示出的方法中,相应的时间计数器1530和1630中的每一个时间计数器的复位设备1536,1636都响应于感应到控制网络1511上的帧起点信号,接收从CAN位识别器模块1550提供的输出信号。虽然在不同的模块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)的时间源。两个或更多LTD可以与彼此相关联和/或同步到它们中的一个或者可另选地同步到虚拟LTD。此时间概念的主要目的是协调事件流、状态流,其本身之间的状态的过渡以及与PTime和NTime域两者协调。
某些LTime特征包括是有限的,带有已定义的开始和结束。LTime是可停止的,并可以重新启动。LTime还可以以非线性方式/线性方式与PTime和NTime相关。相应地,时间滴答声生成器可以独立于PTime和NTime。
LTD通常由一个LTC进行定义,其中,多个LTD的相应的LTC可以具有相同时间滴答声生成器。多个LTD可以通过参考事件(RE)来同步。
再次参考图15的示例,时间事件生成器1520包括向TC 1526输出时间事件1524的振荡器1522。CAN标准按如下方式定义“时间量子”:“时间量子应该是从振荡器周期推导出的固定时间单位。应该存在可编程预定标器,带有至少从1到32的整数值。从最小时间量子开始,时间量子应该具有下列长度:时间量子=m*最小时间量子,其中,m是预定标器的值。”
为定义时间量子,TC 1526包括为LTime设置限制的寄存器1528。每当寄存器1528到达其定义的限制时,它就在其输出端1529传输时间量子事件,并复位其本身。结果是时间滴答声事件的流,即,时间量子1525的流。时间事件生成器1520定义可编程以从1横跨到32个时间事件的LTD,其根据CAN协议,可以生成时间量子。LTC或时间事件生成器1520充当时间滴答声生成器,并将时间事件馈送给时间计数器1530。时间事件生成器1520和时间计数器1530形成另一本地时间计数器1539。
时间计数器1530包括响应于接收到某一事件而复位计数器1530的事件输入端1537。此示例中的第一寄存器1532从2到17可编程,并当第一寄存器1532到达编程的值时,在输出端1533传输一个事件。第二寄存器1534从1到8可编程,当计数器1530到达第一寄存器1532的编程的值加第二寄存器1534的编程的值时,复位计数器1530。根据CAN规范,一个CAN位至少由一个Sync_Seg时间量子、一个Prop_Seg时间量子、一个Phase_Seg 1时间量子,以及一个Phase_Seg 2时间量子构成,即,四个时间量子,最大长度是Sync_Seg加24时间量子。第一寄存器1532可以被编程为覆盖Sync_Seg加Prop_Seg加Phase_Seg 1,而第二寄存器1534可以被编程为覆盖Phase_Seg 2。本地时间计数器1539将计数表示CAN位的时间事件的数量,并在Phase_Seg 1之后生成一个事件,在Phase_Seg 2之后生成另一个。
这样的本地时间计数器1539能够支持CAN位识别器1550以及总线级别指示器1513。在所示示例中,总线级别指示器1513具有从时间事件生成器1520接收时间事件1525的事件输入端1514。响应于从时间事件生成器1520接收到时间事件,总线级别指示器1513在CAN总线控制网络1511上采样总线电压。如果检测到电压,则总线级别指示器1513向位识别器1550的事件输入端口1551传输电压事件信号1516。如果没有检测到电压,则总线级别指示器1513向CAN位识别器114上的事件输入端口1552发送无电压事件信号1517。因此,在此安排中,CAN位识别器1550在由时间事件生成器1520所生成的每一时间滴答声事件时接收电压信号或者无电压事件信号。
CAN位识别器1550包括事件逻辑设备1553和计数时间事件1525的事件计数器1554。事件逻辑设备1553可操作地耦合到输入端口1555,该输入端口1555连接以从时间计数器1530的第一寄存器1532接收第一寄存器事件。当根据CAN规范操作时,在Phase_Seg 1结束时确定位的值,在这样的情况下,第一寄存器1532存储生成对应于给定CAN位的期望的采样点事件的第一寄存器事件的值。第一寄存器事件触发CAN位识别器1550以在期望的采样点事件时,检测控制网络1511上的电压,响应于该期望的采样点事件,响应于判断无来自总线电平检测器1513的电压事件,事件逻辑设备1553在输出端1556,输出隐性位事件(对应于逻辑“1”)。如果在采样点检测到电压事件,则事件逻辑设备1553在输出端1557,输出占优势的位事件(对应于逻辑“零”),除非占优势的位事件是帧起点事件。在检测到十个或更多连续的隐性位(逻辑“1”)之后,在检测到逻辑“0”时,发生帧起点事件。
事件逻辑设备1553还响应于从帧起点寄存器1534接收到帧起点寄存器事件信号,被触发,以检测电压,在此示例中,帧起点寄存器1534可操作地连接到第一寄存器1532,并被编程为响应于从第一寄存器1532接收到事件,开始计数时间事件。在到达被编程到帧起点寄存器1534中的时间事件计数之后,它通过输出端1535,向事件逻辑设备1553输出帧起点检查事件,以触发事件逻辑设备1553以在由第一寄存器1532触发的采样点读取之后,检查对应于位的帧起点的电压。
一般而言,事件逻辑检测器1553被配置成不仅通过比较电压事件、采样点事件,以及由计数器1554计数的时间滴答声事件的数量,识别隐性的,占优势的,以及SOF位。响应于检测到帧起点事件,事件逻辑检测器1553在输出端1558生成SOF位事件信号。来自输出端1556,以及1557,以及1558的这些信号由协议逻辑单元(PLU)1560接收,该协议逻辑单元1560被配置成根据CAN协议,解码通过控制网络1511接收到的位流。
下面描述了编程图15的示例以感应标准CAN位(诸如图16中所示出的那种)的一种示例方式。要接收的此数据由控制网络1511上的1601电压级别进行定义。这里,标准CAN位具有下列部分:Sync_Seg 1602是一个时间量子,Prop_Seg 1604是八个时间量子,Phase_Seg 1 1606是三个时间量子,而Phase Seg_2 1608是三个时间量子,预定标器被设置为十六,以便振荡器生成十六个最小时间量子以构建单一位。相应地,寄存器1528被设置为十六。第一寄存器1532被设置为十二,而帧起点寄存器1534被设置为三。利用这些设置,CAN位识别器114可以响应于检测到硬Sync_Seg,触发再同步,如此通知复位设备1536和1636。本地时间计数器1539定义位的时间量子,而第一寄存器计数到第十二比特量子触发在采样点的采样,帧起点寄存器在采样点之后计数到第三比特量子,以触发期望的下一位的帧起点的采样。如此被触发,事件逻辑检测器1553将在控制网络1511上检测到的CAN位输送到CAN协议单元1560。
更具体而言,当接收到初始下降沿时,接收设备1500假设它是消息的帧起点(SOF)位1652,并进行硬同步,即,复位时间量子的计数器。在在新消息的开始之后的一个位中发生硬同步的示例中,SOF 1652可被称为位的开始。在十二个时间量子之后,到达采样点1607,该采样点1607位于Phase_Seg 1 1606的最后一个时间量子1653和Phase_Seg 2 1608的第一时间量子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具有相同的空闲总线的定义,但是,将CAN SOF的Sync_Seg定义为帧起点(sof)。在sof之后,是十一个位的第一数据帧,接下来是,标准CAN采样点中的两个隐性的位。两个隐性的位被标准CAN模块解码为隐性的,因此,触发标准CAN模块忽略sof处的初始下降沿。相应地,标准CAN模块将控制网络总线视为空闲。两个位的第二数据帧在两个隐性的位之后,接下来是隐性的级别的帧结束(eof)位。第一数据帧中的开头四个位是字节计数器,即,十五个连续的字节可以被作为消息来传输。然后,电压轨迹1680示出了根据示例第二协议或嵌入的协议的传输的电压级别位移。在sof之后,字节计数器二进制数0100(十进制四)后面有二进制数11001000二进制(十进制200)。紧随其后,下一sof 1685表示下一序列的开始,从0101二进制(十进制五)的字节计数器值开始。
如此,标准CAN通信的帧起点位可以被用来在第二协议或嵌入的较高频率协议的序列之间强制模块的再同步,以减少由控制网络上的各种模块的同步得较差的时间事件生成器所引起的传输错误。一般而言,在第二消息被嵌入在第一协议的消息数据包内并且接收设备响应于感应到接收到的第一协议位的定义的部分内的过渡边沿,调整采样点在接收到的第一协议位内的位置的情况下,设备可以根据具有过渡边沿的第一协议,传输一系列位,以实行接收通信设备的采样点的移动,以在第一协议位内提供额外的空间,用于使用第二协议在其中嵌入第二消息。在其中CAN协议是第一协议的这样的方法中,如果隐性位之后的Sync_Seg将被设置为占优势的级别,因为所有模块的时钟将在每一位再同步,因此,跨模块的振荡器精确度问题将缩小。将不会需要CAN的再同步和同步跳转宽度(SJW)规则。被配置成只理解标准CAN消息的控制网络上的模块将在最后一次再同步之后在Phase_Seg 1和Phase_Seg 2内采样十三个比特量子。由于示例新协议生成占优势的Sync_Seg,因此,这样的原始CAN控制器将至少每隔一个隐性位再同步,但是,只在五个连续的占优势的位之后的第六位。无论如何,此同步的速度是十三个位要求的两倍,由此使各种模块充分同步。
此外,还可以哄骗原始CAN模块移动它们的采样点,以允许在CAN位内有更多空间用以传输第二协议信息。例如,第二协议模块的处理设备可以通过发送一系列隐性位,根据具有过渡边沿的第一协议,传输一系列位,其中,之后的位的Sync_Seg比特量子是占优势的,以提供过渡边沿以实行采样点的移动。第二协议模块的处理设备还可以使用至少部分地在使用CAN协议传输的位内的第二协议,在位的除Sync_Seg比特量子和采样点以外的部分,诸如使用CAN消息数据包的Prop_Seg部分,传输第二消息。过渡边沿不必具有如在CAN协议内定义的Sync_Seg的全宽度;相反,边沿可以具有足以被通信网络上的模块检测到的长度。
为在每一时间量子检测电压级别,第二寄存器1630可以被编程有特定计数,以触发事件逻辑检测器1553或者第二处理设备1505以在除为典型的CAN标准定义的那些以外的比特量子,采样电压。如此,除使用LTime域的其他嵌入的协议之外,可以根据CAN规范,从在总线上解码电压级别,以不同的位速率,采样位。系统不要求使用物理时间或其中到NTime的连接是通过振荡器1522进行的自然的时间。振荡器1522可以被替换为生成事件流的任何东西,诸如感应转动的嵌齿轮尖端的电磁式拾取器。相应地,可以建立这样一种CAN网络:其中,所有ECU都连接到电磁式拾取器,并将正确地编码和解码CAN消息,但是,每秒钟位速率将随着嵌齿轮的rpm变化而变化。
如果本地振荡器被用作系统中的时间滴答声生成器,则由系统内的相应的ECU处的各种时间滴答声生成器1520所定义的时间量子的频率应该是同步的。这可以以两种方式来完成,要么通过调整给定振荡器的频率,要么通过添加或删除往返于时间滴答声生成流1525的时间滴答声事件。无论哪一种方法都可以通过控制网络1511上的节点之间的反馈来实行和/或通过来自控制网络1511上的主控节点的控制信号来实行。
控制每一时间量子的电压级别可以提供超出嵌入第二协议以外的进一步的优点。例如,CAN标准常常被指责功耗大。降低功率的一种方式将是只在Sync_Seg和Phase Seg 1和2期间传输占优势的级别,如此,与使电压级别保持高相比,降低了传输功率。
如果在标准CAN消息内使用第二协议,则可以通过指出新协议(通过将所有RTR,r1,和r0位设置为隐性的级别),实现某些优点。在RTR位之后,所有CAN控制器都通过感应来自隐性的RTR位的下降沿,被再同步到传输节点,从而嵌入的第二协议可以从那里开始将数据嵌入在CAN消息中。根据一种方法,r1,r0,以及DLC位可以被用来指出多少第二协议位将被嵌入在每一CAN位内。由于第二协议可以具有其自己的时间量子定义,因此,可以具有较高分辨率,如此,在一个CAN时间量子内有一个以上的嵌入的位。在某些方法中,只有一个额外的位被嵌入在标准CAN位中,在Sync_Seg和Phase_Seg 1时间量子之间采样该嵌入的额外的位,以最小化波反射对物理总线的影响,在某些应用中,这些影响会提高数据错误速率。
对于在旧式CAN通信系统中的实现的特定的考虑
在旧式CAN系统中,模块的再同步发生在同步-段中的占优势的信号跟随隐性的位之后之处。这是所有旧式CAN较好地相对于此边沿来调整采样点的规则。一般而言,旧式CAN系统在采样点周围留下一个空间保持打开,以确认收到信号,因为定时的错误可能会导致信号的接收在采样点之前或之后的某个时间发生。通过多次实行这样的再同步,上文所描述的使用第二协议进行通信的模块将比使用SJW规则分配的在旧式CAN采样点之前和之后的通常的时间准确得多地确认旧式CAN采样点的位置,由此保证在旧式CAN位内有用于第二协议通信的额外的空间。例如,如果产生实行旧式CAN系统模块的再同步的更多边沿,则可以将采样点移到Phase-Segment1和Phase-Segment2之间的理论上正确的位置,允许几乎所有的Phase-Segment1和Phase-Segment2都可用于第二协议数据。简而言之,后面跟着此占优势的Sync-Seg的所有隐性的位都将调整旧式CAN系统的采样点,并且,此特征可以被第二通信协议模块用来在旧式CAN位内产生额外的空间,用于第二协议通信。
在旧式CAN中,可以具有没有边沿的十个位的序列,然而,如果那些位全部都是隐性的,并且第二协议不发送占优势的信号,以实行再同步,则由于实际旧式CAN采样点的位置的不确定性,第二协议将在可用于发送第二协议数据的相位段的量方面受限制。相反,对采样点的频繁的调整对于第二协议模块确认,旧式CAN采样点将只使用相位-段的小部分,由此,使采样点的位置之前的相位段中的更多可用的空间可以用于发送第二协议数据。在旧式CAN模块采样了隐性的位之后,放置第二协议位将导致边沿用于再同步,这会限制在旧式CAN采样点之后在相位段中发送第二协议数据的能力。
然而,当旧式CAN系统采样占优势的信号时,它将忽略采样点之后的任何边沿,以便第二协议模块可以将另外的数据插入到第二相位段中,旧式CAN采样点之后。相应地,模块可以通过平衡为确认旧式CAN采样点位置的再同步的使用与为允许第二协议位插入在旧式CAN采样点之后的占优势的旧式CAN样本的使用,增大第二协议数据可以被插入到旧式CAN位中的空间的量。例如,在一系列再同步之后,在第一占优势的旧式CAN位中,整个相位段的90%也可以可用于第二协议通信。在第二占优势的旧式CAN位中,整个相位段的80%也可以可用于第二协议通信,依次类推,直到第五连续的占优势的旧式CAN位,在那里,除所有传播段之外,还可以使用整个相位段的50%。我们在旧式CAN方面再次具有局限性,这不符合具有五个以上的带有相同样本值的连续的位的规则。第六位必须是隐性的,但是,在此位中,可以将高速位放置在所有同步段和传播段中,以及40%的相位段1中。在采样点之后,信号保持隐性的,并且没有任何边沿,直到跟随隐性的位之后的占优势的同步段的开始,该边沿将采样点调整回理论上正确的位置。然后,上述周期重新启动,此时,一旦检测到边沿以及最多90%的整个相位段,就可以放置高速位。在实践中,同步段应该刚好总线上的所有模块识别隐性的样本之后的占优势的边沿所需的那么长。如果占优势的同步段太短,则某些旧式CAN节点可能不能识别再同步的信号。在此示例实现中,消息的CRC部分将随着CAN帧中的不同的位变化而变化,直到CRC的开始。
在此实现中,系统应该确认对第二协议的正确的采样。在一个示例中,如果您需要在旧式CAN中每隔十个位调整采样点,以保留在位内的样本位置,则系统可以或多或少地在第二协议中为高速位一样经常地做这件事。如果相位段是旧式CAN位的20%,则位的大部分用于传播段,只有相位段才是补偿时钟偏差所需要的。因此,因为高速位没有使用传播段,在通信是单向的并且所需的唯一补偿是发送方节点和接收方节点之间的时钟偏差的示例中,如果第一协议可以利用20%的位来在十个位内处理时钟偏差,那么,第二协议将处理流中的100位,直到需要再同步。通常,是带有不太准确的时钟的接收器将设置物理层的性能。如果时钟性能更好,则将可以在需要具有可以再同步以使采样点更好地位于位中的边沿之前在行中具有更多位。另一极端将是具有非常小的传播段(在通信总线,例如,具有短的电缆和非常不稳定的时钟的情况下),此时,旧式CAN位的大部分用于相位段。在此情况下,在次要协议中,将需要几乎每隔10个位再同步。
对于旧式CAN(第一协议)位速率和第二协议位速率之间的关系没有理论限制,因为唯一限制是,第二协议位不会导致旧式CAN模块采样第二协议位或以这样的方式来使用第二协议位,以致于它们将以错误的方式再同步第一协议单元。作为示例,我们测试了第二协议位速率是第一协议位速率的80,000倍的情况下的通信。在这样的情况下,每个第一协议位中将会有大约40,000第二协议位(假设传播段大约是第一协议位的50%)。在这样的情况下,如果时钟要求每100位再同步,则我们会再同步第二协议至少400次。
在那些极端数字情况下,在第二协议中使用第一位的非常精确的位置。即使您在被分成十个时间量子的第一协议位中具有精确的占优势的边沿,第二协议位也将会在同步段结束时进入同步段量子之内不同步达2.5%,并且,第二协议接收器可能会与发送器有40位的相位差。在这些情况下,第二协议以一个边沿开始,以保证第二协议中的下面的采样在正确的位置采样,第二协议中的再同步应该每100第二协议位发生,并且与第一协议位一起发生。
与CAN-FD的额外的同步的实现
虽然上文主要是通过在旧式CAN位内部添加位来描述第二协议在第一协议内的实现的,但是,上文所描述的第二协议的某些方面可以被实现到诸如CAN-FD协议之类的其他协议中或与这些相结合,如文章“CAN with Flexible Data-Rate Specification版本1.0(2012年4月17日发行)”所描述,该文章此处以引用的方式全部并入本文中。CAN-FD协议定义基本上遵循旧式CAN协议的规则的传输的第一部分。在此初始传输部分之后,根据CAN-FD发送的消息可以切换到较高位速率。CAN-FD使用标识符扩展标志(IDE)位和r0位之间的定义CAN-FD较高速度部分的开始的边沿(扩展的数据长度(EDL)位,该边沿还被用作在进入传输的高速部分之前的最后一次同步。然而,高速传输部分的开始被延迟,直到位速率开关(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位对80,000CAN-FD位的位速率比。
CAN嵌入格式的特定的实现和可选使用
将描述应用在传统的或扩展格式的CAN中的上文的第二协议的特定的实现。这里,第二协议被称为CAN-嵌入高速格式或CAN-EF。在此实现中,施加在CAN总线系统中的严格的要求提供了用于将辅助数据传输机制嵌入到CAN帧中的基础。
一般而言,并如图17所示,一个CAN帧(无论是CAN基础帧1710还是CAN扩展帧1720)分别被分成两个双向周期1712,1714和1722,1724,意味着,一个以上的模块积极地进行通信并交换信息。单向相位1716或1726位于两个双向周期1712,1714和1722,1724中间或在它们之间。换言之,在帧中的这一点,只有传输模块在总线上才是活动的,而剩余通信模块处于只听模式。第一双向相位1712,1722是如上文所描述的以RTR位结束的仲裁字段。从CAN基础格式帧1710中的IDE或从CAN扩展格式帧1720中的R1直到并包括CRC定界符的帧周期是单向通信的时间。
在单向通信中,当接收器完全与传输器时,传播段没有用途。嵌入的协议使用此事实来在传播段中发送替代的协议,如上文所描述的。在没有仲裁的情况下,可以从IDE/R1位使用完整传播段。
仲裁偏移和系统同步
在仲裁过程中,当两个单元处于电缆长度极限时,任何两个节点之间的时间差异可以大到一个传播延迟。为说明仲裁情况,图19示出了单元A早于单元B一个传播延迟地传输。当单元B赢得仲裁时,发生最坏情况。两个单元在此情况下进入单向相位,带有最大偏移距,整个传播段都用于补偿。在最坏情况下,CAN帧数据序列可能会导致每十个位给出一个占优势的边沿的最低量同步信息,刚好补偿允许的频率偏移。在此情况下,如果发生仲裁,帧的可以用于第二协议嵌入的帧的部分的大小由传播延迟限制。
如果多个单元在相同绝对时间开始,则由仲裁所产生的同步偏移可以缩小因素2。同步脉冲是在总线空闲期间发送的足够短未作为帧起点检测到的占优势的脉冲。图19示出了被配置成根据CAN-EF方法传输的正在传输同步脉冲的两个通信单元。两个单元都在相同绝对时间开始。来自单元A或B的下降沿将在一个传播延迟内到达总线上的所有单元。在仲裁结束时,最大差异将是一个传播延迟和由给定单元的时钟中的不确定性添加的差异的总和。
在传输开始之前发送的同步脉冲保证了,所有CAN单元将被同步到单元A和B,并且,仲裁以同步的单元开始。
为实现同步,可以使用定时参考。例如,单元(A或B)中的一个可以被设置为充当定时参考并传输定时参考脉冲。为实现绝对时间,必须估计从参考单元到所有其他单元的传播延迟。
CAN同步
接收器中的再同步是为每个隐性到占优势的边沿执行的,只要遵循对于CAN的相关的同步规则:1)只允许两个采样点之间的单一同步,2)只使用隐性的样本位之后的同步边沿,以及,3)只有隐性的到占优势的边沿用于同步。传输占优势的位的节点不应该同步到隐性的到占优势的边沿,带有正相位错误。其他同步规则不适用于CAN单向相位。这些规则给出下列结论:1)没有占优势的样本之后的边沿将被视为同步边沿,以及2)将只使用隐性的样本之后的第一边沿。
满足CAN同步
为能够将传播段用于嵌入的数据传输,必须阻止CAN接收器在此区域执行假同步。如果接收到占优势的CAN位,此情况自动地遵循CAN同步规则。然而,当接收到隐性的位时,必须强制接收器在同步段同步,以避免丢失到传输器的同步。此行为通过传输占优势的同步段来处理。此方法确保带有正确的CAN定时的下降沿跟随每个隐性的位之后。根据CAN规范,应该忽略直到下一采样点的所有边沿。
此方法的一个副作用是,在嵌入的帧期间CAN定时改善,因为同步边沿之间的最长的时间从10位缩小到6位,这又导致CAN要求的60%的同步跳转宽度(SJW)要求。
示例:传播段中的嵌入的帧,无仲裁
当满足如紧上文所描述的CAN同步时,传播段2102可以用于嵌入的数据,如图21所示。没有在此嵌入的帧中创建的边沿应该能够改变CAN帧同步。
图22中所示出的相位段1的定义在单向相位改变。接收端处的采样在从相位段1到相位段2的过渡之前在区域SJW+SP内,采样点之前,以及在从相位段1到相位段2的过渡之后的在SJW区域内。采样点SP字段是由SYNC量子添加的不确定性。取决于较短的最大同步延迟,SJW可以低到完整CAN SJW的60%。于是,在单向相位期间(参见图23),所产生的相位段1要求将是
tps1=1+0.6SJW
使用下面的不等式来计算SJW的可使用的值,以便时钟容差要求不由SJW确定,其中,PS是相位段长度,BT是位时间,通常表达为量子的数量。
假设相位段2等于相位段1,假设处理延迟小于或等于PS1。
那么,帧的嵌入的格式部分期间,要求的相位段1是:
还可以相对于已知时钟容差来表示要求的相位段长度,其中,df是时钟的频率偏移:
SJW>20BT·df
tps1=1+12BT·df
随着时钟容差改善,从额定采样点所需的余量趋近于一个时间量子。
仲裁之后的同步
在仲裁的情况下,帧的可以用于嵌入的帧的部分大大地由传播延迟限制。可以引入强制更多同步的占优势的边沿,以更多地改善同步之前的时间。实现此的一种方法将是发送交替的隐性/占优势的位以每隔一个位创建占优势的边沿。
通过使用前一部分所描述的方法,可以在隐性的位序列中创建占优势的边沿。如果相反发送隐性的位的序列,则六个位中的五个将具有如图24所示的同步边沿。每个同步边沿将缩小偏移达SJW时间量子,但是对于每一个位,由于单元之间的频率偏移,添加了某个时间偏移。对于一个位,时间量子数目上的平均改善至少是:
然后,可以以占优势的边沿的速率增大嵌入的帧的长度,并可以使用嵌入的数据通道中的最大的。
此外,通过应用较大的SJW设置,改善了嵌入的帧之前的同步的性能。如果系统中的最大传播延迟是已知的,则可以使用占优势的边沿的所需的数量作为配置参数,以缩短开始嵌入的帧区域之前的时间。
如果时钟容差是未知的,则可以根据SJW来计算最坏情况并将其表达为:
该方法依赖于足够大以发送嵌入的同步段的定时余量。
当在仲裁之后建立了到CAN-EF单元的同步时,直到系统中的最早的采样点的整个帧都可以用于嵌入的数据。为最大化效率,最早的采样点(ESP)由总线上的带有最短的tseg1-0.6tsjw的单元确定。
tsync适用于带有最长的时间量子的CAN单元以保证正确的采样和同步。为嵌入部分的数据位留下的时间是
tbitnbits=tesp-tsync
在带宽限制的情况下,优选地,带宽受限制的嵌入的CAN帧中的所有部分都是相等的长度。在此情况下,所有嵌入的样本都将具有与帧的CAN部分的相等的定时要求。
在时钟容差受限的情况下,每个CAN-EF位的开始处的同步段将嵌入的帧同步间隔从10CAN位改善到小于2CAN位。CAN定时还将从SJW改善到0.6SJW。因此,保证嵌入部分比CAN部分具有更好的同步,因此,可以被设置为较高位速率。另外,改善的带宽性能还可以通过缩短嵌入的位来实现。嵌入的字段越短,再同步就越快地完成,并且,全速率嵌入是可能的。
在最大仲裁偏移的情况下,同步脉冲在没有将它扩展到相位段的情况下不能被传输。在使用同步脉冲方法之前,必须首先到达足够的再同步。切换CAN位的数据阶段的第一部分可以被用来实现必需的同步。
嵌入的帧的特征在于下列参数:
CAN和嵌入的帧定时(图25中所示出的)之间的下列关系也适用。
只有早了或晚了tesjw的同步边沿将用于同步。调整tsync长度,以便甚至在最坏的情况占优势的-隐性的-占优势的过渡中接收到的值至少是一个时间量子。短隐性的脉冲通过带有对于隐性的值的活动占优势的驱动和上拉的CAN总线特征来缩短。接收器过滤还可能引入由接收器检测到的脉冲的缩短。
定时余量是当考虑了传播延迟时传播段的残余部分。图26中的情况是仲裁之后的可能的状态。定时余量内部的部分之后的数据的每一变动可以被解释为CAN错误。
位填充
嵌入的字段中的定时需要比CAN位中的采样更准确的时间。如果同步段位始终作为最后一个CAN样本的颠倒值传输,则此定时改善可以没有任何协议成本地实现,如图27所示。此方法将给出隐性的样本之后的必需的边沿。最迟将在占优势的CAN位之后一个CAN位周期中生成同步边沿。带有错误的极性的填充位将生成填充错误。
嵌入的帧的最坏情况振荡器容差要求由下列公式给出:
为实现上述方法,确定几个其他参数。首先,计数来自最后一个同步边沿的CAN位的数量。对于在RTR位之前检测到的同步边沿,计数器被复位为零,因为RTR位中的同步边沿只能由传输器生成,同步边沿算作是定时偏移校正。计数器的值是时钟漂移位的数量(ncdb)。ncdb与最坏情况累积的时钟偏移成正比。
接下来,计数来自RTR位并包括RTR位的占优势的同步边沿的数量(nse)。每一同步边沿都增大定时余量达至少最小tsjw。
使用下列公式来计算可以被用来发送嵌入的数据的总时间余量,tmtot:
tmtot=tmmin+nse*sjwmin-ncdb*sjwmin/10
其中,可以用sjwmin/10代替现实已知最大时钟漂移。
当tmtot小于tsync时,传输带有交替的隐性的和占优势的值的CAN位,以获得必需的净空。如果tmtot大于或等于tsync,则从tmtot中减去tsync,并发送同步段。
当tmtot大于或等于tbit时,从tmtot中减去tbit,并发送嵌入的位。为每一新位计算新tmtot,并重新启动判断过程,直到所有嵌入的位容纳在一个位周期内。
当到达同步时,CAN EF位的CAN位字段可以被用来传输数据包数据信息。填充位将与诊断消息位一起发送,直到发送了由DLC给出的数量的CAN位。数据部分始终以嵌入的DLC(EDLC)开始,并以嵌入的CRC(ECRC)结束。
此方法将是精确的,并将动态地适用于总线上的数据。此外,取决于距离最后一次同步的时间,此方法还考虑可能小于SJW的相位段的现实要求。
嵌入的帧格式
前一节描述了如何在普通CAN位中嵌入CAN EF数据位。在本节,将参考图28和29来描述嵌入的数据部分的帧格式。嵌入的CAN帧,是作为一个序列,使用可用的嵌入的时隙和CAN位时隙来发送的。在实践中,嵌入的帧的实际开始取决于EF总线参数。
嵌入的帧的开始(ESOF)如同CAN FD帧一样,通过发送隐性的R0或R1位来发出信号。使用帧起点字段来区别嵌入的CAN帧与普通CAN帧,以及与嵌入的帧的再同步相位进行区别。接收到隐性的R0/R1的CAN EF单元将在下一隐性的到占优势的边沿进行硬同步。如果同步余量足够大,则同步将在ESOF位之后立即完成。隐性的ESOF信号表明,帧是CAN EF帧,但是,嵌入的帧的现实的开始被延迟,直到实现足够的同步。同步要求与CAN单元以及CAN EF单元两者都相关。
嵌入的数据长度代码(EDLC)是在ESOF之后的开头6个位。EDLC允许0-64字节的数据的嵌入的数据包。EDLC计数在CAN位定时发送的嵌入的位以及数据位。在同步期间以及在同步之后以及直至CRC定界符并包括CRC定界符,使用每一可用的位发送嵌入的数据帧(EDATA)。当不再有数据包数据留下要发送时,作为填充,发送诊断位。
图30示出了使用两个CAN字节发送的80CAN EF位。开始处的向上的倾斜是在仲裁偏移补偿期间使用尽可能多的位的设计的一部分。
在帧结束时,以与数据位相同的方式,传输嵌入的CRC(ECRC)。ECRC在帧中的发送器和接收器两者商定的某一时间启动,ECRC应该最迟在CRC定界符中完全地传输。
在嵌入的相位,CAN传输器逻辑将保持与帧同步,但是,将不会在总线上传输,并且它将不会检测到总线错误。嵌入的发射器和接收器异步运行,以补偿接收器/传输器循环延迟。传输的数据以FIFO存储,以与接收到的数据进行比较以检测总线错误。
在此示例中,不最大限度地使用所有可用的嵌入的帧位,相反,为实现起来简单,协议已经接近CAN协议。CAN填充位,以及DLC,DATA,CRC,以及CRC定界符CAN字段中的额外的嵌入的字段也可以用于数据传输。在某些配置中,有相当大的额外的位数量可以用于数据。填充位的发生不轻松地可预测,此通道中的位的最大数量将随着传输的数据而变化。另外,最佳努力通道也可以用于发送诊断消息,包括,例如,错误计数器值、错误被动的标志、使用的总线参数,发送器ID、发送器能力,以及技术故障计数。如果每一消息前面都有消息标识符,则EF单元可以按需或应变化向最佳努力通道添加诊断消息。
当前方案使用CAN位用于数据传输。如果使用CAN位值来控制数据字段的填充,则可以发送其他备选的帧格式。示例包括在CAN通道中发送最小数量的填充位,以及在CAN通道中发送最大数量的填充位,其中,CRC中的填充位的数量仍可能难以控制。
另一可选配置是只针对匹配过滤器的ID发送确认。此方法可以保证,有效的单元接收到数据包。
对于较高速度的纯的EF模式
为能够实现更好的性能,可以在其中可以放弃CAN兼容性限制的环境中实现CAN-EF协议。可以在此环境中改变各种属性以实现更有效率的协议,包括,例如,下列各项中的一项或多项:具有可变的ID长度、使高优先级消息短、删除IDE位、删除远程传输请求,具有高速数据字段,以及缩短帧结束字段。CAN的某些重要属性被保留,包括:仲裁、错误帧,以及对帧同步方法的修改的方法。
为实现更有效率的位格式,仍插入填充位,并带有仲裁位间隔,但是,不在数据中的插入间隔(tcan=0)以实现CAN兼容性。预期tcan大于tbit,因为与用于嵌入的协议的小于2CAN位相比,CAN最坏情况再同步间隔是6CAN位。额外的余量可以可能允许一个以上的嵌入的位替换位周期的CAN位分配的部分。利用硬同步来处理仲裁之后的同步偏移,结果,可以立即使用所有嵌入的时隙。
带有相对好的时钟容差的系统可以通过增大嵌入的位的数量,来增大填充位之间的距离。此方法将降低与填充位相关联的开销。结果,数据流会被误解为错误帧或者总线空闲,将不会检测到错误帧,因为没有填充位被改写。在此情况下,必须使用对于错误帧和帧同步的替代机制。
CAN兼容性所产生的较大的性能的损失之一是ID字段的长度。这可以通过引入可变长度ID字段来改善。给较短的身份指定高优先级消息和最常见的消息。
可以使用在某些情况下短得多的新帧格式。下面的表示出了新帧。
ID字段具有可变长度nbits=2k,其中,k在0和15之间。TERMINAL字段始终是两个占优势的位。八位DLC允许数据包中的0到255字节的数据。当ID字段的大小被设置为0并且在数据字段中无数据传输时,发送6仲裁位和35高速位的最小数据包大小。
使用2位符号来编码ID字段。00被用作终结符,并且只能被用作ID的最后符号。01,10,11用于仲裁中。最短的代码获胜。最高可能的优先级ID是00。下面是四个示例单元ID:
Unit a:01 10 10 0*1 11 11 00
Unit b:01 10 1*1 00
Unit c:*11 11 11 11 11 11 11 11 00
Unit d:01 10 10 00
星号标记单元丢失仲裁并且变为接收器的点。在8位之后单元d获胜,并结束序列。利用此方法,所有可能的ID值中的25%会丢失,但是,丢失的ID编号可以通过添加一个额外的ID位来补偿。
如果保留了来自CAN FD的数据包限制,则新协议使用小于CAN FD的23个仲裁位,在此情况下,多了一个HS位。对于比较长的ID字段,差异缩小。
协议之间的填充位的比率是数据相关的。嵌入的格式为每一个CAN位使用一个填充位。当为每一个CAN位使用8个嵌入的位时,嵌入的格式每八个位具有一个填充位。如果数据都是1或所有都是零,CAN FD协议每五个位使用一个填充位。
超负荷帧不能只与一个ACK定界符位一起使用,如果需要此功能,则应该添加间歇位。
为协议扩展预留了至少一个位。预留的位应该被设计为向前兼容。如果检测到比所支持的更新的协议,则单元应该进入听模式,并等待向后兼容的再同步序列。
帧结束字段具有多个功能。第一,EOF字段可以检测误解了DLC字段并且仍在接收数据的单元或当传输EOF时正在接收数据的单元。EOF字段足够长,以创建填充错误。EOF字段也可以允许新单元再同步到总线。
尝试同步到总线通信的单元将具有两种情况要处理。第一,空闲总线被11个隐性的位的时间段识别,如在CAN中那样。其次,如果总线是活动的,则必须检测CRC DELIM位。CRC DELIM被设计成使再同步可能。寻找同步的单元将把位同步设置到下降沿。CRC DELIM被保留为隐性足够长足以生成填充位违规,如图31所示。高速占优势的位和填充违规的组合是CRC DELIM字段的唯一的组合。在检测到实际填充错误的情况下,ACK和ACK DELIM两者处的位位置将被改写,单元将再同步到错误帧的末尾。
CRC DELIM字段中的固定形式填充违规被用作数据结尾字段标记。误解DLC并且仍正在发送数据的单元将在此时生成填充错误。当传输器仍在数据字段中时,到达CRC DELIM的单元将生成固定形式错误。
错误帧以CAN位速率,作为六个符号发送,如在CAN中那样,错误帧定界符除外。删除了错误帧定界符。错误帧应该由匹配CRC定界符、ACK时隙,以及ACK定界符的序列结束,但是没有第一占优势的边沿。此序列在ACK时隙提供再同步边沿,导致紧随ACK定界符之后的帧起点的好的同步。常规CAN协议的RTR字段替换为匹配响应缓冲器的ID掩码。
空闲位通信协议
在总线空闲期间,每个下降沿都将被CAN接收器用来执行硬同步。如果导致边沿的占优势的总线事件比位的传播段短,则它将不会被视为帧起点位。可以使用一个专用的协调器模块来在占优势的边沿和传播段的结束之间的时段发送信息。利用足够的带宽和传播段的长度,可以在这期间发送多个位的信息。专用的协调器可以是通信网络上的任何模块(诸如此处所描述的那些,具有被配置成控制其活动的处理设备和被配置成允许在网络上进行通信的通信端口),但是,优选地,它将位于总线的物理中点处,以缩短到网络上的通信模块的最长的距离。简要参考图10,专用协调器可以是位于所示出的总线701的中间的模块705。
专用协调器可以以下列方式中的一种或多种来使用:支持自动波特、分发总线参数设置,连接到总线的任何单元都可以立即获得正确的总线参数设置,分发时间,发送调度信息(设置当前最小优先级、掩码,等等)、发送信标,捕获诊断信息和发送诊断信息,进行总线信号质量测量,以及延迟测量。如果给所有节点都指定了唯一身份,则协调器可以一次指向一个节点。空闲位通信将是非侵入性的最佳努力通道。协调器可以向特定的节点发送请求,然后,该节点可以被允许发送其响应。帧起点情况将延迟帧,直到数据包被发送,总线回到空闲状态。即使协调器是不能作为常规通信概念接受的解决方案,此概念作为测试设备的一部分也可以是有用的。
在另一种应用中,在仲裁期间,第一采样点将移到传播段是可能的;为移动采样点,可以在同步段传输隐性的到占优势的边沿,以保证,在传播段具有采样点的那些接收器将采样点移动到传播段之外,如由CAN协议规则规定的。如果专用协调器被置于物理介质的中间,则在空闲相位期间发送占优势的同步段将强制使用CAN协议的单元被同步到此模式。通过具有此同步,所有单元都在25%的传播段内开始发送。可以以两种不同的方式使用此行为。它可以被用来保证,第一协议采样点决不会移动50%以上进入传播段之内,由此,允许在至少50%的传播段内开始发送嵌入的位,无需等待许多边沿以将第一采样点从段中移出。另一使用将是延长使用第一协议的通信系统中的电缆长度。通过具有从位于物理介质的中间的单元发送的空闲相位同步,与通常适用于根据第一协议(CAN)的系统的规则相比,将可以在CAN系统中的最远的单元之间具有双倍延迟。在此系统中,仍可以使用如上文所描述的嵌入的位;然而,利用扩展的电缆长度,可以在仲裁之后,第一协议采样点可以位于传播段的任何一部分,由此要求同步-段中的许多隐性的到占优势的边沿,以保证嵌入的第二协议位将不会命中第一协议采样点。
可以使用空闲位通信方法来确定在总线上使用的最坏情况总线参数。由占优势的同步脉冲启动扫描,该扫描延长,直到检测到错误帧。当在一个接收器的采样点采样占优势的同步脉冲时,生成错误帧。同步脉冲的长度是总线上的最大可使用的传播段的测量。
图32示出了带有初始同步脉冲的两位周期。实际采样将在额定采样点周围的不确定性时段内。当同步脉冲足够长足以进入采样间隔时,将确定实际设置。此时,将检测到假的帧起点,生成错误帧。
空闲位通信原理不只在空闲总线期间起作用,而且在某些情况下也用于每个隐性的位中。这一点的最简单的用途将是同步脉冲覆盖层。可以使用同步脉冲覆盖层来将总线上的所有单元同步到一个协调同步脉冲传输器。同步脉冲在每一个位时间间隔内,在每一个位的开始处,作为占优势的脉冲发送。同步脉冲必须足够短,不会被总线段上的任何接收器作为占优势的位检测到。同步脉冲间隔必须比总线上的任何接收器的最短的位时间短或相等,以强制所有单元保持与协调器同步。同步脉冲也在总线空闲时间段内发送,以保证所有单元都硬同步到同步单元。如果满足以上全部要求,则总线上的所有单元将保持与协调器同步。
此方法的优点将是,与标准CAN总线的10个位周期相比,同步边沿之间的位周期的最大数量将是6个位周期。也可以使用同步脉冲来收集有关总线上的节点的位置的某些信息。当所有单元都保持与协调器同步时,当单元传输隐性的位之后的占优势的位时,可以估计协调器和节点之间的距离。
图33的上部的时间线示出了协调器的接收器处的总线。当同步脉冲在总线上传输时,协调器接收其自己的同步脉冲。下面的时间线示出了从传输器发送的数据。在此情况下,传输器被示为与同步脉冲完美同步,因此,它将在同步脉冲到达的准确时间发送占优势的位。将正好在同步脉冲的开始之后的两个传播延迟在协调器处检测到占优势的位。
图34示出了同步不确定性,其中,传输器处的同步将在其同步段内漂移,传播延迟包括传输器的收发器延迟。如果有可以与传输器的身份相关的足够样本可用,则可以利用统计方法删除同步错误。收发器延迟将添加未删除的不确定性。
在总线空闲时段内,协调器可以广播最佳努力消息。消息中的每一个位都以同步脉冲开始,可以使用可用的传播段的其余部分来发送信息。广播的消息将不会干扰CAN总线通信,但是,广播的消息其本身将在每个CAN协议占优势的位处被销毁。广播数据覆盖层将与同步脉冲覆盖层具有相同基础属性,并附加了额外的数据段。同步脉冲的长度必须足够长,以被总线段上的每个CAN控制器安全地检测到。
如果可以使用唯一寻址方案,则可以使用广播数据覆盖层来支持双向协议。地址在一个或多个广播位中发送,来自单一寻址的单元的响应跟随可配置的延迟。唯一地址可能是系统中所使用的CAN标识符,只有为特定的标识符配置的设备才会作出响应。一个示例用法将是从被检测表现为不正确的带有特定的标识符的单元获得诊断信息。图35示出了协调器发送带有11位唯一标识符的空闲消息以及在足够的延迟之后作出响应,单元发送标识符。可以从空闲位的序列构建广播和响应协议。
如此配置,通过使用空闲位通信,可以在CAN协议上面实现完整的最佳努力协议。协议将不会干扰正在进行的CAN协议事务,它将可能通过提供同步边沿,来改善总线定时。
除被用作空闲总线,高速通信选项,之外,嵌入的格式还可以用于诊断。例如,也可以使用如上文所描述的模式来检查物理介质1511中的通信介质的最大性能,如图15所示。有无数的CAN总线已经安装在小汽车、卡车和机器中,它们利用额定位速率工作得十分好。最常见的位速率在125到500kbit/s之间。一些较高,高达1Mbit/s,而某些低到20kbBit/s。在那些系统中的许多系统中,可以使用较高位速率,但是,可以在多大程度上增大位速率而不会发生问题是不确定的。在CAN-FD中,在采样点进行位速率切换,这使得切换有点复杂,因为在距离位速率切换的位置的近距离内没有边沿。为将位速率切换定位在与CAN-FD方法中的相同位置,在几乎两个位上执行位速率切换。第一,根据第一协议的隐性的位后面有占优势的位。根据隐性的位然后是占优势的位的序列,边沿会导致同步-段。此边沿具有两个功能。第一,边沿测量从边沿被发送到由图15中的1515指出的部分时起直到它被接收回逻辑(作为图15中的来自1513的输出)的内部延迟。当此延迟已知时,可以检查每一个位都被接收,带有在通信介质上发出的相同值。这是根据协议检测并处理错误所必需的。此边沿的第二用途是定位设备从额定位速率切换到较高位速率的采样点。此切换不能在此位中进行,因为此位是被预留以指出未来定义的协议的额定位。跟随此预留的位的位叫做BRS-位(位速率切换位),当您到达额定位中的采样点时,有到较高位速率的切换。此解决方案给出了以灵活的方式进行精确测量的小问题。第一,它将从边沿几乎传递到额定位,直到到达采样点。在此时间内,时间发散,因为不同的单元具有带有不同的速度的时钟。总线上的单元还应该具有类似的时间量子,因为当添加从边沿到采样点的时间量子时您获得的时间必须相同以保证,您在所有模块中的相同时间实例进行切换。在没有非常好的时钟的情况下,将难以在额定位速率和高位速率之间具有超过20倍的比率。在诊断情况下,我们愿意获得尽可能高的精度。
通过在同步段中的边沿切换到高位,将可以进行带有只由边沿中的抖动以及逻辑可以多快地采样从总线接收到的级别限制的精度的切换。解决方案还将取决于采样点的位置。利用此自由,将可以设置独立于额定位速率的较高位速率。对于测试,可以使EF协议位短一些,并且在每一阶跃短一个时钟周期。在当今可用的低成本FPGA逻辑中,可以具有100MHz时钟,每一阶跃可以小至10纳秒。利用比较贵的设备,将可以具有接近于1GHz的时钟,分辨率将高达1纳秒。同时,相移逻辑比当今使用的基本时钟更快八倍地采样。基本模式与如图2所示的相同,其中,额定位速率用于所有位,标记为108的部分的位除外。
本领域技术人员将认识到,在不偏离本发明的范围的情况下,可以对于上文所描述的实施例作出各种修改、改变,以及组合,这样的修改、改变,以及组合将被视为在发明构思的范围内。