欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【回眸】Aurix TC397 IST 以太网 UDP 相关开发

【回眸】Aurix TC397 IST 以太网 UDP 相关开发

2025/8/4 7:11:14 来源:https://blog.csdn.net/tianbutian_/article/details/136745608  浏览:    关键词:【回眸】Aurix TC397 IST 以太网 UDP 相关开发

前言

关于移植IST功能至 Infineon TC397上主要涉及到UDP发送报文及接收。IST是安全诊断相关的工作

Nvidia IST介绍

Orin系列芯片会提供一种机制来检测由系统内测(IST)所产生的永久的故障,IST 应该在 Orin-x 功能安全系统中使用期间被启动。IST 需要以特定的规则来配置零部件的软硬件。IST 可以配置来执行一个在单 Orin-x 或者 Orin-x 外加一个 dGPU 的模式组成智驾系统。整个错误(Failsafe)处理机制如下:

①当系统无错误时,标准的电源时序会通过特定的 I/O 端或总线(CAN/Flexray/Ethernet PHYs) 唤醒整个系统。这也包含启动所有 SC7 断电域,然后是支持从内存恢复的操作系统 DRIVE OS,以结束正在运行的活动状态。其中,启动的快慢取决于内存的自恢复能力。

②当 SC7 模块失效或 Timeout 时会产生相应的失效时序,芯片内部错误、温度异常导致的宕机、低压/过压等都是这些失效模式之一。整体来说,如果芯片处于失效状态时,实际是首先唤醒 MCU 后,通过内部检测机制确认是否进入 SC7 。已经 timeout 或故障时,需要控制 VRS-10 关闭所有的 SC7 电源轨,只留下唤醒 PHY 线处于低电压供电状态。MCU 最终会将PMIC 模块至于待机状态后将MCU 关闭。

此外,系统内测程序 ITS 还需要检测 Orin 是否长期维持在低功耗状态 SC7下,如果是,则系统将会退出该低功耗SC7模式。并且在下一个系统自检过程中判断是否有重新进入低功耗SC7模式的需求。

对于IST系统内侧应用而言,NVIDIA Orin 专门配置了相应的IST管理器来实现如下一些功能子项:

①提供一个用于设置IST配置的接口。将用户应用程序设置的配置与NVIDIA DRIVE Orin通信™ 以太网上的软件(IST客户端)(用于钥匙打开/关闭Orin IST)。

②提供一个用于读取IST结果的接口。提供接口,平台电源管理器可以使用这些接口查询是否必须执行Keyon/KeyOff IST,并查询IST是否已完成。

③在引导过程中,决定NVIDIA Orin应处于IST模式还是正常模式。

④通过GPIO断言触发IST,监控NVIDIA Orin上IST的执行,并通过超时检测IST卡住的场景。

⑤提供一个中止IST执行的接口。

⑥检测并处理以下硬件错误情况。

在某些情况下,IST的执行会受阻,且该阻塞会由基于GPT的硬件计时器检测到,该计时器具有可配置的超时。与 DRIVE Orin的通信™ SoC由具有可配置超时的软件计时器进行监控。这取决于MCU和Orin之间的活动以太网(VLAN200)连接。客户应用程序应使用NvMCU_ISTManager提供的接口,在每个电源循环期间设置有效的IST配置。这是使用串行控制台Shell命令完成的。

IST开发(自下而上)

从底层开始介绍开发思路。

函数1:shellIST_set_ist_config

函数原型:boolean shellIST_set_ist_config(pchar args, void *data,IfxStdIf_DPipe *io)

先需要一个config IST的值,经过阅读手册,可以看到应该设置为0x0或者0x1

注意这里需要接收输入值,所以是有输入参数的,同时也要进行参数检测,检测传入的参数是否符合要求。

另外,在设置成功后还需要告诉用户 IST设置的值是多少。

函数2:shellIST_get_ist_config

函数原型:boolean shellIST_get_ist_config(pchar args, void *data,IfxStdIf_DPipe *io)

它支持两种操作模式:

  1. 显示帮助信息:当用户输入 ? 时,提供命令语法和使用说明。
  2. 返回当前配置值:直接获取并输出 IST 的配置状态。

详细逻辑分析
  1. 参数解析与帮助处理

    • 输入参数
      • args: 指向命令参数的指针(如用户输入的额外选项)。
      • data: 未使用的上下文数据指针(保留参数)。
      • io: 输入输出管道,用于发送响应或日志。
    • 关键步骤
      • 通过 Ifx_Shell_matchToken(&args, "?") 检查用户是否输入了 ? 参数。
      • 如果匹配成功:
        • 向 io 输出命令语法提示:Syntax : get_ist_configure(no parameter)
        • 补充说明命令用途:get IST setting value
        • 返回 TRUE,终止后续逻辑。
  2. 获取并返回配置值

    • 无 ? 参数时的操作
      • 调用 ist_get_ist_cfg() 获取当前 IST 配置值,存储在 cfgValue 中。
      • 通过 IfxStdIf_DPipe_print 将配置值以十六进制格式输出到 io,例如:IST setting value is 0x1
      • 返回 TRUE,表示命令执行成功。
步骤条件/操作输出内容
1检查 args 是否包含 ?输出命令语法和使用说明
2若无 ?,调用 ist_get_ist_cfg获取当前配置值并通过 io 输出

函数3:shellIST_get_ist_info

函数原型:boolean shellIST_get_ist_info(pchar args, void *data, IfxStdIf_DPipe *io)

特性描述
参数无关性仅检查是否存在 ? 参数,不依赖其他输入内容。
简单流程逻辑分支清晰:帮助信息优先于功能执行。
固定响应无论操作是否成功,均返回 TRUE,可能掩盖潜在错误(如 ist_get_ist_info 失败)。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词