从零学习VH6501 —— Repetitions 干扰触发的次数配置

Posted 蚂蚁小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零学习VH6501 —— Repetitions 干扰触发的次数配置相关的知识,希望对你有一定的参考价值。

相关文章

系列用的CANoe演示工程我放在了Git上,不定时根据博客更新。

CANoe-Demn


前言

  • 测试软硬件环境:
    VH6501 CAN Disturbance Interface
    CANoe 11 SP2
    Win10 X64

  • 如下图这是整个VH6501能够用到的所有

本章节将继续讲解 Repetitions


文章目录


Class: CanDisturbanceTriggerRepetitions

这个类比较简单,它没有方法,只有四个参数,定义了当触发发生时,连续触发的次数

① 下面的这个脚本就是直接在总线上连续触发31帧格式错误报文

testcase TC_04()

    CanDisturbanceFrameTrigger frameTrigger;
    CanDisturbanceSequence     sequence;
     CanDisturbanceTriggerRepetitions repetitions;
    dword                       deviceID; 
    long                       valditiyMask;
    message 0x100              triggerMessage;
    long                       validityMask;
    long                        result;
    
    //clear the sequence
    sequence.Clear();
    deviceID = 1;
    //configure the message should be triggered
    
    //ID must standard ID and a CAN message must on the bus
    validityMask = @sysvar::CanDisturbance::Enums::ValidityMaskFlags::IDBase  
                   | @sysvar::CanDisturbance::Enums::ValidityMaskFlags::IDE 
                   | @sysvar::CanDisturbance::Enums::ValidityMaskFlags::FDF ;
    //validityMask = 0;
    frameTrigger.SetMessage(triggerMessage, deviceID, validityMask);

    frameTrigger.TriggerFieldType =   
            @sysvar::CanDisturbance::Enums::FieldType::AckDelimiter;
    frameTrigger.TriggerFieldOffset = 0;
    
    //configure a sequence 320 FPGA ticks long and send a recessive bit at the Ack slot
    //bit on the bus. 
    result = sequence.AppendToSequence(320, 'd');
  
    //Define 33 repetitions and one cycle with a 1 ms hold off time 
    repetitions.Cycles = 1;
    repetitions.HoldOffCycles = 1;//100ms
    repetitions.HoldOffRepetitions = 0;
    repetitions.Repetitions = 31;
  
    if(result == 1)
    
      result = canDisturbanceTriggerEnable(deviceID, frameTrigger, sequence,repetitions);
      if(result == 1)
      
        write("Trigger is enabled");
      
      else
      
        write("Enable trigger error Result =%d", result);
      
    


② 运行结果,可以看到连续触发了31错误报文。

repetitions.HoldOffRepetitions = 0;
repetitions.Repetitions = 31;//连续触发31帧格式错误报文


将上面脚本的代码换成如下的代码,对比观察下下面贴图的输出

repetitions.Cycles = 2;
repetitions.HoldOffCycles = 1000;//1000ms
repetitions.HoldOffRepetitions = 100;
repetitions.Repetitions = 5;


③ CanDisturbanceTriggerRepetitions 帮助文档的解释


总结

本章博客,讲解了VH6501的函数库中的Repetitions 类,可以设置触发 发生后的循环次数。
更全面的VH6501学习请参考帮助文档和官方示例
C:\\Users\\Public\\Documents\\Vector\\CANoe\\Sample Configurations 11.0.55\\CAN\\MoreExamples\\CANDisturbanceInterface

  • 要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
  • 如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。

以上是关于从零学习VH6501 —— Repetitions 干扰触发的次数配置的主要内容,如果未能解决你的问题,请参考以下文章

从零学习VH6501 —— 环境搭建

从零学习VH6501 —— Sequences 类的理解

从零学习VH6501 —— 采样点测试

从零学习VH6501 —— Trigger Configuration类干扰触发条件的设置

从零学习VH6501 —— Bus Off 的基本理解和测试用例设计

500K通讯速率下标称位宽度为320ticks