This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS3137:执行 CAN 环回测试

Guru**** 2322270 points
Other Parts Discussed in Thread: HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/580256/tms570ls3137-implement-of-can-loopback-test

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

你好。

我想执行 CAN 环回测试、并在社区中搜索类似的问题。

我找到了这个thread.https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/257078/907180#907180

我在该线程中看到了源代码(3005.dca.zip)、因此我是指。

我有疑问。

(1)此源代码在 安全手册(SPNU499B)中实现为"24.14.4回路与静音模式组合"?

(2) "IFX[2];"是什么 意思?  我认为、IFX[0]=用于 RX 的缓冲器、而 IFX[1]=用于 TX 的缓冲器。

      在 IFX[0]中的某些数据之后,比较 IFX[1]和 IFX[2]的值是否相同?

最好的雷加

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arriy、

    在回答您的问题之前、我需要深入了解您链接的参考代码。 我将在星期一查看这些内容、 然后再返回给您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arriy、

    [引用 USER="Arriy]1) 此源代码在安全手册(SPNU499B)中实现为“24.14.4回路与静音模式组合”?[/引用]

    我不认为本示例中使用了静默模式。

    [引用 user="Arriy"]

    (2) "IFX[2];"是什么 意思?  我认为、IFX[0]=用于 RX 的缓冲器、而 IFX[1]=用于 TX 的缓冲器。

          在 IFX[0]中的某些数据之后,比较 IFX[1]和 IFX[2]的值是否相同?

    [/报价]

    在该 funcion 中检查测试通过/失败:

    unsigned int CAN_TestVerify ()
    {
    /*读取接收邮箱*/
    unsigned int 错误;
    #ifdefDEVICE_MODEL
    寄存器 DCAN * ptr =(DCAN *) DCAN 1;
    #else
    寄存器 DCAN * ptr =&e_DCAN 1_ST;
    #endif
    
    
    0
    
    ptr ->IFX[0].IF1REQ_UN.IF1REQ_1.1REQ1-UN.IF1REQ_INP1.1UN.IFQ_1.1UN.IFQ_INP1.1UN.IFQ_1.1UN.IFQ_1.1REQ_1.1UN.IFQ_IFQ1UN.IFQ_1.1REQ1.1UN.IFQ1.1REQ_1.1UN.IFQ_1.1REQ_1.1UN.IFQ1.1REQ1.1UN.IFQ_1.1REQ_1.IFQ1.1UN.IFQ1.1UN.IFQ_IF1.IFQ1.1UN.IFQ_1.1REQ1.1IFQ1.1UN.IF1.1UN.IFQ_1.1IFQ1.
    
    
    
    
    PTR->IFX[0].IF1REQ_UN.IF1REQ_UN.IF1REQ_B1=1
    ;PTR->IFX[0].IF1REQ_UN.IF1REQ_ST.DATA_B1 =1;PTR-0x_IF1REQ_UN.IFQ_UN.IF1REQ=0]+0xIF1REQ_UN.IFQ_UN.IF1REQ_UN.IFQ=0=0=0=0_IF1REQ_UN.IFQ_UN.IF1REQ_UN.IFQ_UN.IFQ_UN.IF1REQ_UN.IFQ_UN.IFQ_0=0=0=0=0=0_IF1REQ_UN.IFQ_UN.IF1REQ_UN.IFQ_UN.IFQ_UN.IF1REQ_UN.IFQ_UN.IFQ_UN.IFQ_UN.IFQ_UN.IF1REPA箱
    
    
    
    
    
    
    
    
    
    
    
    返回(错误);
    } 

    将 IFX0的内容与 DCAN TxData[0]和 DCAN TXData[1]的内容进行比较。 我没有看到任何对 IFX[2]的引用?

    但是、有3个 IFx 寄存器。 通常、IFX3用于访问所有 CAN 消息、作为唯一与中断相关联的消息。 出于此测试目的、不需要它。

    此外、您应该谨慎使用一些较旧的示例。 在这种情况下、该示例不是从 halcogen 生成的、因此在工程中使用该示例可能会有风险。 当然、您/您的公司必须独立验证它、以确保它满足器件和应用需求。 我强烈建议只使用 SAFERTI 诊断库代码或 Halcogen 生成的代码、因为 TI 提供的 CSP 稍后可以支持这些代码、或者至少您知道代码示例是根据 IEC61508开发的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck。
    感谢您的代码检查。

    我看到、该代码太旧、不是源自 HALCoGen、引用它很危险。
    此代码是否执行假定为 CAN 环回测试的处理?
    (假定处理= DCAN TxData[0]和 DCAN TXData[1]的比较)


    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一般来说、该测试采用环回测试。 我认为它不考虑任何误差条件。 即、如果您可能需要对其进行增强、以提供额外的错误条件检查、例如引入 CRC 错误或其他错误检查。 如果您在传输冗余或信息冗余技术等消息机制之外使用、也应检查这些机制。 最好是实际使用您的接收处理程序、因为它会实时使用应用程序。 即、保持用于测试的代码与用于应用的代码相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Arriy、

    同样、如果我的帖子充分解答了您的问题、请使用绿色的"验证答案"按钮告知我们、以便我们可以关闭主题。