TTCAN搬砖式介绍

1、介绍

标准,ISO/WD11898-4“道路车辆控制器区域网络(CAN)第四部分:时间触发通信,“很难阅读和理解,因为它是一个标准的特定类型的调度可以消息,一个本地时钟和全局时间,所有节点在一个或多个CAN网络。我将尝试用一种简单的方式来解释这个标准,从时钟开始,然后移动到时间触发器,最后讨论调度的指导规则。对于那些熟悉 CanKingdom的人来说,最重要的任务是理解时钟,因为这是在 CanKingdom系统中使用的基本特性。我对TTCAN的描述可能会给人留下这样的印象,即它描述了如何在硅中实现它。然而,情况可能不是这样的,因为复杂的标准可以用不同的方式来描述,从而导致不同的架构,所有这些都会产生相同的结果。我希望我的评论能给硅的设计师们一些想法,使其成为一个覆盖比TTCAN更广泛的市场的实现。

2、时间

TTCAN中的时间概念是一个线性的有限时间。时间主节点™定期传输同步消息或在事件中传输同步消息,所有节点使用此消息计算传输和接收消息的时间隙。公共时间从同步消息开始,到最后一个时隙结束。TTCAN有两个层次:
1级,每个节点中的时钟独立运行,由总线上的位时间时钟。
2级,其中每个节点中的时钟与TM时钟同步,时间单元是一个1秒的可编程分数。这里的共同时间被称为“全局时间”
虽然根据标准,时间是线性的和有限的,但任何支持TTCAN级2的芯片都将能够保持一个循环时间
TTCAN中的时间以NTUs(网络时间单位)为单位进行测量。NTU的标称值是可编程的,但真实值由时间主程序保持。时间主在一个时间消息中传输他的时钟的值,在标准中称为参考消息,时间主控器时钟的值在时间消息的帧开始(SOF)位的采样点处被捕获。

如图时钟的值在时间消息的采样点被捕获

在这里插入图片描述
每个节点捕获引用消息在其采样点的SOF位处的本地时间。应该注意的是,它们的捕获时间比主捕获时间要晚,这取决于传播延迟和它们的位定时寄存器设置。然而,这种延迟可以被认为是静态的,并由应用程序来处理。TTCAN的标准忽略了这个延迟。

3、TTCAN时钟

3.1 概述
TTCAN标准是针对特定类型的时间表和特定类型的实现而编写的。为了更广泛地使用这个概念,最好是看看TTCAN,时钟在中心,并在它周围支持硬件和软件。图2显示了一个时钟支持该标准所需的基本特性。
在这里插入图片描述
心脏是一个振荡器和计数器,可以调整到全局时间。有两种方法来实现同步的本地时间到全局时间:要么本地时间源调整全局时间的阶段和值或本地时间保持和任何引用全局时间是在使用之前重新计算。图2中的“全局时间校正”表示这两种方法。
与时间计数器关联的是一个捕获寄存器。这捕获每个SOF的采样点的计数器值,并使捕获的值可用于时间戳单元。此单元将接收时间作为额外的字节添加到每个接收到的消息中。甚至所传输的信息也会被发射机接收。它还可以捕获外部事件时的计数器值,并使应用程序可使用这些值。
消息构建单元将所选传输消息的被捕获的时间值添加为完全相同的消息的数据字段中的第一字节。
与每个传输或接收的CANId相关联的是一个时间窗口。对于传输消息,传输使能单元控制传输功能。当时间计数器达到“打开”值时,它将启用消息的传输,而当时间计数器达到“关闭”值时,它将禁用传输
3.2 Level 1
TTCAN1级时钟至少是一个16位计数器的计数器。时间是线性的,第一个历元从零开始,参考消息周期为0。一个新的时期从下一个参考消息的零开始。一个纪元的长度由时间主控通过传输开始下一个纪元的参考消息来控制。该标准允许在重新开始时代1的时间之前,设置1、2、4、8、16、32或64个时代。因此,时间需要两个计数器,一个历元计数器和一个“历元时间”计数器。一个时代在标准中被称为“基本循环”。
在这里插入图片描述
3.3 Level 2
TTCAN2级时钟至少是一个19位计数器,其中三个最小显著的位代表NTU的一部分。该标准允许另外6个最重要位和另外4个最重要位,以一个29位计数器结束。可选的六个最重要的位是可编程的,以设置计数器的环绕。

在这里插入图片描述
3.4 Scheduling primitives
与每个计划信封(CANId)相关联的是两个在时钟上工作的掩码过滤器。它们可以按位编程为0、1,或者根本不在乎。这些面具只包括时钟的NTU计数部分。它们合并在一起,将在允许传输或预期接收消息时形成一个时间窗口。
对于传输消息,一个是在CC中触发传输启用位,另一个是禁用同一位。对于一个接收窗口,相关的CANId可以被编程为“不在乎,接受任何消息。传输消息的时间窗口与帧的开始符的出现有关。消息的传输允许在时间窗口期间开始,即,如果SOF出现在打开时间或之后,但在关闭时间之前,则被认为是正确的。如果SOF出现在打开时间或之后,并且在关闭时间之前完成了接收,包括本地接受过滤,则认为接收消息是正确的。因此,对于同一消息,传输和接收时间窗口是不同的。
在这里插入图片描述
外部事件单元捕获在外部事件中发生的时间。除了时间标记事件之外,该功能还可以用于通过将捕获的时间添加到时间窗口来设置消息调度的偏移量。
3.5时钟同步消息
TTCAN对时间消息有以下规则:
1时间消息发送形式时间主控器[TM]
2有8层次TMTTCAN系统
3特定可以Id,三个最低位000,用于时间消息从最高优先级TM和低优先级的TM使用以下可以Id的优先级
因此,TM同步消息(参考消息)被链接到一个特定的CAN标识符。接下来的7个CAN身份证是为潜在的时间大师保留的。任何接收到这七个id之一的TTCAN芯片都将把该消息视为一个有效的参考消息。
参考信息的格式如下:
在这里插入图片描述
如果参考消息在传输过程中被干扰,应立即更新和重新传输。(注:此程序在大多数定时调度系统中绝对是不可接受的!)
最后一次连续时间消息位L表示这是一个线性全局时间内的最后一次时间消息,并且下一次时间消息将是一个新历元的开始。为了实现一个循环时间,永远不会设置L。L在TTCAN标准中被称为Next_is_Gap。
如果TM在全局时间中做了偏移变化,但没有进行任何相位调整,即没有对NTU的长度进行任何修正,则设置全局时间不连续位D。根据该标准,D位设置不得有两个连续的时间消息。然而,没有为这个函数定义故障过程,我怀疑这个机制的价值。
3.6时钟汇总
我们现在已经通过了CAN控制器的时钟,它提供了以下功能:
1.一个计数器,最小16位,具有可选择性的可编程的重要位和可选择性的不重要位,连接到振荡器。
2.一个捕获寄存器,由SOF采样点以及外部和时间事件触发。
3.一个时间掩码,在CC上设置传输启用位激活。
4.一个时间掩码,在CC上设置发射启用位被动。
5.一种时间掩码,当时钟达到匹配值时生成一个事件。
6.一种存储所接收到的消息
7的捕获时间的设备。将捕获的时间添加到选定传输消息的数据字段中的第一个字节的设备。
8.一种通过从时间主服务器接收到的消息将本地时间调整为全局时间的设备。
9.一个应用程序监视程序

4、调度协助

我们现在有了一个具有一些基本特性的时钟,我们需要一个协议引擎来满足TTCAN规范。
在这里插入图片描述
协议引擎有一些可见的接口。TTCAN标准已经指定了一组适合TTCAN计划的强制性接口。其中一些是非常通用的,另一些是高度特定于矩阵时间表,但也有一些缺失,这将很高兴看到。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值