FlexRay主要用于安全和时间要求严格的汽车应用。在FlexRay簇中使用静态通信周期,并将时隙分配给FlexRay节点,可实现平稳的确定性通信流。然而,有故障的FlexRay节点可能会在未分配给它们的时隙内进行未经授权的传输,从而破坏这种确定性通信。总线监控器则可以防止这种情况发生。
每一个FlexRay收发器都会配备一个总线监控器。只有在符合通信调度表的情况下,总线监控器才会允许FlexRay收发器将从FlexRay控制器接收的数据发送到总线上。
总线监控器的功能仅限于静态段的通信。在动态通信段内,没有此类保护,因为只有当事件发生时,FlexRay节点才会发送报文。只能完全允许FlexRay节点在动态通信段中发送,或者完全禁止其发送。
总线监控器必须知道通信调度表和FlexRay簇中的时间。在理想情况下,总线监控器不依赖FlexRay控制器生成的本地时基,而是独立于FlexRay控制器生成自己的时基。这是总线监控器确保FlexRay节点只在自己的时隙中发送数据的唯一方法,因为该方法除了检查时隙本身之外,还可以检测到FlexRay控制器时钟的所有错误。
但这意味着总线监控器必须配备与FlexRay控制器几乎相同的功能,使其具有相似的复杂度,这将增加FlexRay通信的成本。因此,尽管总线监控器可以确保时隙正确性,但至今为止还未在实际应用中使用过任何本地总线监控器。最早定义本地总线监控器相关功能的规范为2.0.9版,至今仍是一个初步性规范。
2.0.9版中的中央总线监控器规范也是初步性规范,并且尚未实现任何中央总线监控器。此处的概念涉及主动星型节点中的总线监控器。在通信周期内,当某个分支上连接的FlexRay节点具有发送权时,中央总线监控器会激活该通信分支,从而防止信号冲突。