关于CANoe系统Real Time性能的个人理解和分析总结(一)

发布于:2022-11-14 ⋅ 阅读:(2365) ⋅ 点赞:(2)

文章目录

一、时间戳(Timestamp)

二、时钟同步(Time Synchronization)

三、实时性(Real Time)

1、扫描时间(Scan Time)

2、积分时间(Integration Time)

3、更新时间(Recalculation Time)

4、传输周期时间(Transfer Cycle Time)

5、延迟时间(Latency Time)

6、抖动(jitter)

7、实时内核(RT Kernel)


一、时间戳(Timestamp)

        各个interface modules上发生的每一个event,在时间维度上都对应一个时间点,这就是原始的时间戳。一个最小的测试系统包含的interface modules就是一个网络接口卡,例如VN1610。VN1610上的CAN收发器每收到一条message,VN1610就会记录下对应的时间点,这就是一个时间戳。

二、时钟同步(Time Synchronization)

        时间戳一般都与外部event相对应,但是最原始的时间戳,是在具备MCU的interface modules这个层面才能产生的,例如VN1610。VN1610上使用同一MCU的两个CAN收发器,如果在同一个时刻都收到了一条message,那么这两个event的时间戳是一致的,所以不涉及时钟同步的概念。

        如果测试系统复杂一些,同时用了两个VN1610,四个CAN收发器在同一时刻收到一条message,那么理论上这四个event的时间戳应该是一致的。但是由于这个四个时间戳由两个MCU分别产生,这两个MCU又都是各自运行的,分别有自己的时钟,那么他们之间一定会存在误差。在一些高精度的测试应用中,这样的误差会导致测试结果发生错误。通过一些方式,把两个VN1610的时钟同步起来,这就是时钟同步。

三、实时性(Real Time)

1、扫描时间(Scan Time)

        interface modules以高频率扫描信号(例如,在VT1004上,以250kSamples/s),每两次扫描间隔的时间称作Scan Time。

2、积分时间(Integration Time)

        interface modules扫描到的测量值是原始值,无法以原始形式传输给CANoe。interface modules预处理这些原始值,例如,它可以计算given time span上的平均值,称为CANoe中的integration time。

3、更新时间(Recalculation Time)

        上面的span time长短是可以调整的,也是滑移的。例如,一个integration time为10ms的平均值计算,每1ms使用过去10ms的time span重新计算一次。因此,10ms窗口每1ms在测量值上滑动一次,也就是重新计算一次,称为Recalculation Time。这个时间受限于interface modules的计算频率。

4、传输周期时间(Transfer Cycle Time)

        interface modules周期循环地向CANoe传送积分计算后的值,并使用它们更新相应系统变量。此传送周期时间称为transfer cycle time。这个transfer cycle time是可调整的,与Recalculation Time无关。Transfer Cycle Time相当于,User在CANoe中能感受到的系统变量更新频率。这个时间受限于interface modules与CANoe之间的通信速率。并且一般不会小于Recalculation Time,因为这样的高速性能没有实际意义。

5、延迟时间(Latency Time)

        当值从interface modules传送给CANoe时,也会传输值的时间戳(时间戳的时刻=积分计算时最后一个值的测量时刻)。CANoe拿到值的时刻会比值的时间戳要滞后,称作Latency Time。

6、抖动(jitter)

        延迟的大小取决于event发生的时刻,Latency Time最大时等于Recalculation Time + Transfer Cycle Time,最小时接近与0,这样的不确定性称作jitter。延迟和抖动会显著影响可用系统变量的数量,影响在CANoe中处理值之前的最大等待时间,而不会影响值的时间戳。

7、实时内核(RT Kernel)

        CANoe除了接收interface modules传送上来的数据流需要精度较高的时间戳之外,自身也需要精度较高的timer,例如周期性地向外发送Message。如果CPU能够分出来一个Kernel专门处理这些time-critical 的event,就不会有太多无关的进程干扰CANoe的Execution cycle,例如CANoe的Graphical user interface对Execution cycle的干扰。这样的专门Kernel称作RT Kernel。

        一个测试系统,如果能以更小的Scan Time扫描信号,更小的Recalculation Time进行计算,且这些时间的大小在每个周期都很稳定,还能对不同的interface modules进行Time Synchronization,那么每个event时间戳的精度就越高,event在时间这个维度上的确切性就越高,称作系统的实时性。


        版权声明:原创文章,转载和引用请注明出处与链接,侵权必究!

本文含有隐藏内容,请 开通VIP 后查看