Segments in the Flexray cycle
Flexray按照时间可以按照下图来划分
一个大cycle下面分成了64个小cycle,64个小cycle里面分了四个段,静态段,动态段,符号串口和网络空闲段。
静态段严格按照TDMA(Time Division Multiple Access)方式,在已经规定好的段里面分了多个小的时间片段,每个时间片段定义了数据,到了这个时间片段必须要发送数据,严格按照时分多路访问机制。
动态段比静态段要灵活一点FTDMA(Flexible Time Division Multiple Access),动态段是一种比较灵活的访问机制,在动态段里面也划分了很多时间窗口,但在这些时间窗口里有两种选择,1. 可以选择在当前这个时间窗口是否发数据,2. 每个动态段时系窗口的数据长度是可以变化的,例如当前循环发20个字节的长度,下次可以发30个字节的长度。
符号窗口Symbol Window主要发一些测试符号。
NIT,network idle time网络空闲做一些时间同步的计算和调整,Flexray采用time trigger的方式,对网络上全局时间精度的要求是非常高的,每个结点都按照一张调度表去发送,前提是大家的时钟是要一致的,如果任意一个节点的时间有偏差的话,那么就不同步了,就会造成一些错误。
动态段和符号窗口都是optional的,意思就是在一个cycle里面可以没有动态段也可以没有符号窗口,但是静态段和NIT是必须要有的。
在后面的数据链路层还会对静态段进行展开作更为详细的介绍。
每个段的长度是由四个段长度加起来的,每个段的长度都在globle parameter里确定下来的,动态段长度确定下来后,里面动态slot是可变的