跳转至内容
  • 25 主题
    36 帖子
    FrankieF
    v2.7.8

    Changes from v2.7.7 to v2.7.8:

    [feat]:upgrade patch tool to v3.8 [opt]:opt code generate process display [opt]:opt login logic [opt]:opt ghs support [opt]:add MC03 ghs support
  • 1k 主题
    6k 帖子
    车友车行

    环境
    SDK:1_4_0
    MCAL:2_2_0

    demo中为YTM32B1MD14 KEIL环境,MCAL部分功能安全模块移植到SDK
    移植模块:CorTst、RamTst、StkTst、EccTst
    MD14_Safty_KEIL.zip

  • Blog posts from individual members

    41 主题
    122 帖子
    limanjiangL

    1,采样点测试原理:
    中心思想是:对于指定位,将其缩短或增长,如果缩短或增长至 DUT 的采样点位置,则 DUT 将会发送错误帧。这个指定位的位置可以是一帧报文中的任何位置。但最好的位置是“隐形位”-> “显性位”-> “隐形位” 序列中的“显性位”,称此为最佳干扰位。这是由于重同步仅会发生在由隐形位变为显性位的跳变沿上, 一般来说在此处跳变沿将会位于同步段(Sync Segment)。
    dca5f322-259a-4b17-a3fe-718f40ef4d8b-image.png
    假设 DUT 会以 10ms 为周期向总线发送 ID 为 0x100 的 CAN 报文。VH6501 将在程序启动后,在 DUT 发送 报文的总线空闲间隙发送 ID 为 0x0 的干扰报文。VH6501 发送的所有报文,其【ACK Slot】位都为显性位“0”,为系统默认,无需额外特殊设置。每次干扰循环发送结束,微调干扰报文的【CRC Delimiter】位 长度,使其逐次缩短,并将后一位【ACK Slot】的长度增加。导致的结果为,后一位【ACK Slot = 0】前移。而一旦显性位电平由后往前,前移至 DUT 采样点位置,被 DUT 采到判定为高电平,则出现 Form Error, DUT 随即发送错误帧,并被 CANoe 捕获到(RxErr)。故 CANoe 测试逻辑通道(VH6501 所在通道)采样点须选取靠前位置(e.g. 50%),从而避免被 VH6501 本身先干扰到。另,每次干扰循环结束,VH6501 将 发送 30 次 ID 为 0x1 的正常报文,从而使 DUT 始终保持 Error Active 状态,因其主动错误帧容易辨认。
    4298de21-9731-486f-91b8-50a852580213-image.png
    1)∆𝑡𝑀𝑒𝑠𝐻𝑤指 VH6501 每次缩短或增长的步进长度。 VH6501 采用160M时钟频率,每个tick 6.25ns,单次可调整步长为1个tick。因此,∆𝑡𝑀𝑒𝑠𝐻𝑤=6.25ns。
    2)∆𝑡𝑇𝑄指 DUT 的 CAN 参数配置中一个 TQ 的时间长度。 上文中提到的采样点最佳干扰位置是“隐性位-显性位-隐性位”序列中的“显性位”,ISO 11898-1协议里规定重同步会使跳变沿落在同步段里,但是协议并未明确定义跳变沿具体落在同步段的位置,从同步段的开始到结束均可以,因此这会带来1个TQ的误差。所以由DUT自身带来最大误差为1个TQ,而TQ数量与DUT采用的时钟,预分频值以及传输波特率等都相关。
    当前CAN 时钟频率为20MHZ,预分频值为1,∆𝑡𝑇𝑄 = 𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 /𝐶𝐴𝑁 𝐶𝑙𝑜𝑐k=50ns;
    仲裁域波特率500K,位时间长度为2000ns,TQ总数为40;
    数据域波特率2M,位时间长度为500ns,TQ总数为10。
    ∆𝑡𝑅𝑒𝑐指总线上一个位的电平长度与 DUT 内部主控芯片 RxD 引脚上的一个位电平长度的时间差。
    6b010407-af50-424e-b905-f5a70bb02899-image.png
    在2M 波特率下,一个TQ 长度为50ns,位长度为500ns,∆𝑡𝑅𝑒𝑐 范围为-65ns 到+40ns, ∆𝑡𝑅𝑒𝑐需要被考虑进采样点测试的结果当中,为了方便计算∆𝑡𝑅𝑒𝑐取25ns。

    在仲裁域中,∆𝑡𝑀𝑒𝑠𝐻𝑤 带来的误差为6.25/2000=0.3125%;∆𝑡𝑇𝑄带来的误差为 50/2000=2.5%; ∆𝑡𝑅𝑒𝑐 带来的误差为25/2000=1.25%;
    在数据域中,∆𝑡𝑀𝑒𝑠𝐻𝑤 带来的误差为6.25/500=1.25%;∆𝑡𝑇𝑄带来的误差为 50/500=10%; ∆𝑡𝑅𝑒𝑐 带来的误差为25/500=5%;
    综上所述,在仲裁域中,总的误差为0.3125%+2.5%+1.25%=4.0625%,约等于4%,数据域中,总的误差为1.25%+10%+5%=16.25%。
    因此,若理论采样点为80%,而实际测试的结果,仲裁域在80%±4%,数据域在80%±16.25%范围内都是合理的。
    由上可知,由 VH6501 所带来的误差所占比例是很小的。而大部分是由于 CAN 协议本身所带来的误差,以及由于总线长度不同所带来的误差(尤其在CANFD 数据域测试中)。
    这些误差可以认为是合理且无法避免的,在实际测试验证中需要进行一定的考量。

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • Online Users