术语介绍

  • CHI: Controller Host Interface 控制器主机接口
  • PE: Protocol Engine 协议引擎
  • CDC: Clock Domain Crosser 时钟域交叉器
  • POC:Protocol Operation Control 协议运行控制
  • FSP:The frame and symbol processing 帧和符号处理

FlexRay通信系统(FlexRay簇)由多个FlexRay节点和节点间互连的物理传输介质(FlexRay总线)构成。由于FlexRay通信不限于任何特定的物理拓扑,因此FlexRay簇可以基于各种物理拓扑,点对点连接、总线型拓扑、被动星型拓扑或主动星型拓扑均可。

为最大程度地降低故障风险,FlexRay规定了通信通道的冗余布局。两个通信通道的数据传输速率均可达到最高10 Mbit/s。此外也可使用冗余通道将数据传输速率增加至20 Mbit/s。每个FlexRay报文都可以单独选择利用冗余通道来提高容错或是提高传输速率。

FlexRay簇基于时间触发的通信架构,其核心是在分布式系统中静态、定时地触发动作。时间控制不仅可以实现确定性数据通信,还可以实现通信系统的可组合性以及容错性。

TDMA(Time Division Multiple Access,时分多路访问)用于实现时间触发的控制,这意味着FlexRay节点不像CAN节点那样以不受控制的方式访问总线来响应应用程序相关事件。FlexRay节点必须遵守精确定义的通信调度表,该调度表会在每个通信周期为每个FlexRay报文分配特定的时隙,规定所有FlexRay报文的发送时间。

“TDMA Principle”图中包含调度表信息,并给出了总线上的通信流。通信调度表基于由四个总线节点构成的通信系统,其中每个总线节点必须在特定时间传输两个报文。

flexray控制器

FlexRay控制器减轻了主机的通信任务负担。FlexRay控制器通过CHI(Controller Host Interface,控制器-主机接口)连接到主机。CHI提供了用户可配置的TX和RX报文缓冲区。其中,RX报文缓冲区还配有接收过滤器。同时,CHI中还设有状态寄存器和控制寄存器。

FlexRay控制器中包含多个通信组件:用于总线访问的MAC(Media Access Control,介质访问控制子层)组件、对从MAC获取的字节进行编码的编码组件和对FlexRay收发器接收的逻辑位流进行解码的解码组件。

此外,FSP(The frame and symbol processing,帧和符号处理)组件检查是否符合FlexRay簇的通信周期,并检查RX报文是否存在传输错误。时钟同步处理组件用于同步FlexRay节点。唤醒和启动组件负责唤醒和启动。

FlexRay控制器可以根据通信进程进入八种不同的状态。每个状态都有相应的通信行为,并由相应的通信组件控制。通信组件POC(Protocol Operation Control,协议运行控制)负责切换控制器状态。

被动拓扑

FlexRay通信不限于任何特定的物理拓扑,简单的点对点连接与总线型拓扑或星型拓扑一样可行。此外,系统设计人员可以选择单通道或双通道通信。

如果是点对点连接,则两个FlexRay节点直接互连。EPL(Electrical Physical Layer,电气物理层)规范规定线长不得超过24米。如果是三个FlexRay节点,节点间可以通过一个被动星型中心节点互连。

此类拓扑称为被动星型。即使在此类物理拓扑中,任意两个FlexRay节点之间的线长也不得超过24米。此外,根据EPL规范,被动星型中最多连接22个FlexRay节点。

如果有四个或以上数量的FlexRay节点,系统设计人员可以选择被动星型拓扑和总线型拓扑。在总线型拓扑中,FlexRay节点通过单独的支线连接到总线。“Line Topology with Redundant Bus”图显示了基于总线型拓扑的FlexRay簇,其中总线(即通信通道)设计为冗余的。这意味着可以同时通过通道A和通道B传输数据。

如果使用总线型拓扑,根据FlexRay规范,当FlexRay簇的通信通道的数据传输速率为10 Mbit/s时,任意两个FlexRay节点之间的最大距离不得超过24米。如果数据传输速率降低,则彼此相距最远的两个FlexRay节点之间的最大距离可以增大。根据FlexRay规范,一条线路最多连接22个FlexRay节点。

与被动星型拓扑一样,为保持信号完整性,总线型拓扑的支线数量和长度也会受到限制,尽管电磁兼容性方面可能会出现严重问题。

FlexRay节点

FlexRay节点是通过FlexRay接口连接到FlexRay总线的ECU 。FlexRay接口由一个通信控制器(即FlexRay控制器)和一到两个总线驱动器(即FlexRay收发器)构成,总线驱动器的具体数量取决于通道数。

FlexRay控制器执行FlexRay规范中定义的通信协议,主要任务包括组帧、总线访问、错误检测和处理、同步、休眠和唤醒FlexRay总线,以及对TX报文进行编码和对RX报文进行解码。

FlexRay控制器可以是主机的外设,即集成式FlexRay控制器。集成式FlexRay控制器的优势在于,主机与FlexRay控制器之间的通信更加简单快捷,但缺点是缺乏灵活性。另外一种较灵活的方案就是与主机分离的独立式FlexRay控制器。

FlexRay收发器将FlexRay控制器耦合到物理传输介质。FlexRay收发器的主要任务是转换信号:发送信息时,FlexRay收发器将逻辑信号转换为物理电平发送到总线上;接收信息时,FlexRay收发器将接收到的物理电平转换为逻辑信号。 图片说明