利用填充样式和随后用信息重写来补足数据段的方法和装置 以及总线系统 现有技术
本发明涉及一种按照独立权利要求前序部分所述的、用于补足总线系统上传输数据的段的方法和装置,以及涉及按照独立权利要求前序部分的总线系统。
近年来,在制造现代汽车时或在机械制造中、尤其在机床领域中以及在自动化领域中,借助于通信系统、总线系统的控制设备、传感器和激励器的网络化现象急剧增多。在此,可以获得由多个控制设备上的功能分配而产生的最佳协同作用效果。在此说的是分布式系统。越来越多地通过总线或总线系统来进行不同站之间地通信。总线系统上的通信业务、访问和接收机制以及差错处理都通过协议来调节。
CAN(控制器局域网络)作为汽车领域中的协议而建立。这是由事件控制的协议,也就是说通过事件来启动例如发送消息的协议活动,这些事件自身具有位于通信系统之外的起因。通过基于优先级的位判断来解决对通信系统或总线系统的唯一的访问。其前提是,为每个消息分配明确的优先级。CAN协议非常灵活。因此可以毫无问题地添加其他的节点和消息,只要还存在多余的优先级。
这种由事件控制的自发的通信的一个替代方法是纯时间控制的方法。总线上的所有通信活动都是严格周期性的。只通过对整个总线系统来说有效的时间进程来触发例如发送消息的协议活动。对媒介的访问基于时间范围或时间段的分配,在该时间范围或时间段中发送者具有排他的发送权。如果事先释放相应的时间段,那么可以添加新节点。这种情况迫使在开始运转之前就确定消息顺序,其中制定时间表,其必须满足消息在重复率、冗余、最终期限等等方面的要求。
除了由事件控制的方法和纯时间控制的方法之外,还公开了由时间控制的CAN方法、所谓的TTCAN(时间触发CAN)。其满足上述的对由时间控制的通信的要求以及对一定灵活性的要求。TTCAN通过为特定通信用户的周期性消息而在所谓排他的时间窗或时间段内建立通信基本周期以及为多个通信用户的自发消息而在所谓判断时间窗或时间段内建立通信基本周期来满足上述要求。
除了所述的总线系统之外,还公开了大量用于连接分布式系统中的用户的总线或通信系统。在已提到的以及其他的总线系统中,例如可以以灵活性为背景,分别通过在规定用于数据传输的段中所传输的比特总数来选择时间段或规定用于数据传输的段的宽度。然而,如果尤其是在设计时选择或预定数据段或较短的段或时间段的宽度,那么由于所选择的比特总数或所选择的宽度也确定了其中所发送的消息的长度。这意味着,较长的消息必须被分配到多个这样的段上或较短的消息必须被补足,以便在段中达到比特总数。这称为补丁。在US5,598,579中描述了针对总线系统的这种对段中所缺少的数据的补足。同样地,在US 6,349,348 B1中说明了补丁,即当数据量小于预定的大小时,用填充样式来补足缺少的数据。
然而,在此首先例如在存储器或缓冲器中复制原来的数据内容,接着用补丁样式或填充样式来补充,以获得预定的比特总数或段的总量。然而,在此可能出现下列差错类型:
-由于后来补入了填充样式,消息内容被部分重写,将产生错误的消息内容或数据内容。
-消息或数据内容被全部重写,其中也将产生错误的数据内容或消息内容。
-此外,原来的消息长度、也就是数据比特数被补充超过了允许的长度,其中其他的消息内容或数据内容产生未定义的内容,这也导致错误的消息内容或数据内容。
因此表明,所述的现有技术不能在每个方面都提供最佳的结果,由此产生了以下任务,即改善这种情况,尤其是控制所述的差错源和差错类型。
本发明的优点
本发明示出了一种用于补足总线系统上传输数据的段的方法和装置,其中该段具有预定的二进制信息总数、尤其是字节总数并且在该段中传输数据,其中在传输包含少于段的预定总数的二进制信息、尤其是字节的数据时,通过具有相应数量的二进制信息、尤其是字节的填充样式补足该数据所缺少的二进制信息、尤其是字节,以达到段的总数,其中首先将填充样式写入该段中,该填充样式的二进制信息数、尤其是字节数对应于段的总数,紧接着将所述数据的二进制信息、尤其是字节写入相同的段中,其中该填充样式的各个二进制信息、尤其是字节由数据的二进制信息、尤其是字节所重写。因此,可以有利地避免上述差错源,因为用正常的数据重写填充样式,而不是相反地。
关于按照本发明的总线系统,有利地是,在缓冲存储器中将填充样式的二进制信息、尤其是字节和数据的二进制信息、尤其是字节写入段中,然后在访问和接收机制的范畴内、即在规定的时间点上将该段从缓冲存储器传输到总线系统上。
在此,有利地是,该总线系统是由时间控制的总线系统,其中该段直接对应于总线系统上的时间段,其中在相应的时间段中传输数据。在此,按照本发明的总线系统将通信基本周期分成静态段和动态段,其中尤其在静态段中,可以在设计时通过自由选择来预定段的比特总数。
其他的优点和有利的扩展方案由说明书以及权利要求的特征给出。
附图
下面根据在附图中所示的图来详细讲述本发明。
其中:
图1示出了具有至少一个用户以及具有用于执行本发明方法的工具的分布式系统、即网络系统或总线系统,
图2示出了按照本发明的通信基本周期的一个例子,该通信基本周期具有用于数据传输的相互连接的段。
实施例的说明
图1示出了具有第一用户101、第二用户102和第三用户103的总线系统100、即分布式系统。因为通过用户自身或其中所包含的计算单元或控制单元以及通过分离的控制单元例如可以实现到总线控制器的通信,该总线控制器被置于用户的内部或外部,所以下面使用的概念“总线系统”和“分布式系统”意义相同。也就是说,总线系统不仅可以是与用于保持或实现通信的控制单元的纯粹的通信连接,而且可以是与所连接的用户的通信连接,该用户在其侧实现通信,以及总线系统可以是由两个变形方案形成的混合系统。
因此,利用用户101至103还示出了用户结构的三个变形方案,其中可以立即看出通过组合而产生的其他变形方案,而为了清楚起见没有示出,同样也可以使用这些变形方案。用户101示出了到总线100的接口104和处理单元113,该处理单元包含缓冲存储器107以及控制单元或微型计算机或处理器110,在第一个例子中该处理单元与接口单元104分开表示。也就是说,例如在用户中对通信进行控制。用户102又示出了接口单元105,但这次其包含缓冲存储器108。因此处理单元114不包含缓冲存储器,而只包含控制单元111,也就是说这里可以通过用户自身来实现控制,其中在接口单元105中实现缓冲。在此,接口单元104或105同样可以位于用户的内部或外部。作为其他的例子,用户103示出了接口单元106,其除了缓冲存储器109之外同样还包含处理单元、尤其是像总线控制器112一样的控制单元。因此,在这种情况下,通过该接口单元106来处理或控制整个通信。在此,该接口单元106也可以布置在用户103的内部或外部。在此,处理单元、尤其是110和111除了控制通信之外还可以处理其他的任务。
在图1中示例性地示出的总线系统中,同样示例性地在按照图2的通信基本周期的范畴内进行通信。在图2中用S1至S10示出了用于数据传输的不同段、尤其是时间段、即时隙。在总线系统或相应的总线协议的示例性的规范中,通信基本周期的静态段或整个通信基本周期被划分为用于数据传输的N个时间单位或时间段、尤其是段、时隙,其被规定用于发送消息、即数据。在此,尤其通过标记、即所谓的帧ID可以明确地分配用户或总线节点和各个消息、即数据内容以及段、即时隙S1至S10。在此,在设计通信时,可以自由地选择段宽度,其中然而由于所选择的宽度、即可以在这样的段中传输的比特总数,也选择了在静态段的所有段中其中所发送的消息的长度。也就是说,在我们的例子中,示出了从T1至T29的具有10个段或时隙的静态段,其中段的总持续时间对应于时隙S1至S10的长度以及所属的段中间空隙、即所谓的帧间空隙。
此外,这里示出了具有16个字节的段S1至S10的长度,例如在第一段S1中选择了T1至T17。因为帧间空隙可以是任意的,尤其可以是0,所以在本例子中只有承载数据的段才称作段。但是,段的持续时间其实是承载数据的段加上所属的帧间空隙、此处为S1+IG1,紧接着是下一个段。这意味着,较长的消息、尤其是在本例子中大于16个字节的消息必须通过较高的应用层分配到多个段上,如在消息分段的范畴内例如通过FTCom层在OSEK时间内实现该分配。较短的消息、这里尤其是短于16个字节的消息必须通过规范、即协议规定而扩展或补充到最大可能的消息长度、例如此处为16个字节,也就是说补足缺少的字节、即已经提到过的补丁。也就是说尤其以二进制信息、即比特或字节的形式传输消息,其中可任意地选择消息段的大小、此处为16个字节。
因此,在这里所取的例子中,对通信基本周期进行所选择的分割,即分成10个段或时隙。在此,一个时隙的持续时间是16字节消息的长度加上所属的帧间空隙IG。由于以下可能性,即帧间空隙可以是0,所以在本例子中,段和数据段是等同的,并且用S1表示。因此,通信基本周期由以下部分组成:10×16字节,加上帧间空隙,另加这里用T29至30所表示的不允许发送消息的时间段、即所谓的网络空闲时间NIT。这是可选择的,但是以此作为总线协议可能的特性而示出。在该通信基本周期中,例如从只包含一个静态段的设计出发。为了清楚起见,没有示出可能在静态段和网络空闲时间之间、即在T29处的动态段。
用户103例如是汽车中一个简单的角度传感器,其只需发送2个字节宽的消息。因此,尤其由于成本的原因,其所属的消息存储器也只被定制、指定和实现为该数据宽度。但是,该角度传感器也必须按照规范、即总线协议在所介绍的总线系统上工作,并且在分配给它的段、即它的发送时隙中发送16字节的消息。这在此处例如是段S1加上所属的帧间空隙IG1。这意味着,在发送前不久,在发送缓冲器或发送存储器中存储原来所设置的例如2个字节、即从T1至T3的消息、即字节S11、S12和S13,其中必须为该数据内容、即传感器值补足或扩展其他的14个字节。在此,按照以前的方法,通常在帧内的左边或右边、即在最高有效位MSB处或在最低有效位LSB处存储字节,这使按照以前的方法进行进一步的补足变得简单。所使用的填充字节、例如在本例子中从S14到S116的字节称为补丁字节或者称为补丁样式或填充样式。即所选择的明确地表明补丁样式或填充样式的符号段、例如以16进制表示的0xFF。在现有情况下,尤其在发送存储器或发送缓冲器109中,用带负的符号、即最高有效位MSB(被设置用于负数)的16进制编码形式表示的传感器值0x8005被补充为0x80/05/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF,该传感器值例如对应于角度信息-0.5度。
如果如上所述按照以前的方法在发送缓冲器109中复制原来的数据内容,之后补充补丁样式,那么在差错情况下可能导致错误的补足。
A)在此,例如消息内容被部分重写。在本例子中也就是产生例如0x80/0F/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF的错误的消息内容。也就是说,在此产生的错误的消息内容之后被错误地作为传感器信息而传输,并且在发送时所计算的CRC、即循环冗余检验不能发现该差错。应用中的合理性测试也许能够发现该差错,但是这具有很大的不可靠性。
B)此外,消息内容也可能被完全重写,于是导致0xFF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF,由此又将产生错误的消息内容。在发送时所计算的循环冗余检验不能发现该差错,并且应用中的合理性测试也不能揭示该差错。
C)此外,消息长度可能被补充而超过允许的长度。在此数据内容或消息内容产生未定义的内容。例如0x80/05/77/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF/FF,也就是说这里还产生错误的消息内容。循环冗余检验计算只在16个字节上进行并且不能发现该差错。尽管合理性测试能够发现该差错,但是只有当在应用中超过原来的消息、即超过2个字节被检验时才能发现。
为了解决上述问题,本发明建议,在每个发送过程之前,用填充样式或补丁样式来补足、更确切地说填满段、尤其是发送缓冲器。在此,当然必须遵循预定的消息或数据宽度、此处例如为16个字节。这意味着,现在用填充样式或补丁样式、即字节S11至S116来补足传感器103的发送时隙或段S1。直到现在才在该段中、尤其是在发送缓冲器中的正确位置上复制消息内容、此处为2个字节的传感器值,并且在这些位置上补丁或填充样式被重写。因此,一方面避免了上述的差错情况A至C。另一方面,可以为数据内容、即最初需发送的传感器值预定任意的位置,因为首先写入填充样式并且稍后不再需要用补丁范围内的字节来补足。
因此,通过所述的本发明的简单方法,通过简单的措施、尤其通过设计可以排除高的差错可靠性,其中不危及协议过程的效率。