当前位置: 首页 > news >正文

【回眸】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 失败)。

 

相关文章:

  • 观成科技:摩诃草组织Spyder下载器流量特征分析
  • SpringCloud——负载均衡
  • Mediamtx与FFmpeg远程与本地推拉流使用
  • 信息系统项目管理工程师备考计算类真题讲解七
  • 【晶振】晶振的工作原理及其与单片机关系
  • 【C语言】C语言中的联合体与枚举类型
  • 网站高可用架构设计基础——高可用策略和架构原则
  • 关于nginx,负载均衡是什么?它能给我们的业务带来什么?怎么去配置它?
  • Spring Boot + MyBatis-Plus 的现代开发模式
  • uniapp跨平台开发---switchTab:fail page `/undefined` is not found
  • HTML邮件背景图兼容 Outlook
  • HTML响应式网页设计与跨平台适配
  • 基于RFID的智能家居系统设计与实现
  • C++:函数重载
  • 【Python Web开发】02-Socket网络编程02
  • 从零到精通:全面解析人工智能的核心技术与发展趋势
  • 矩阵运营的限流问题本质上是平台与创作者之间的流量博弈
  • 高德MCP制作旅游攻略
  • NLP高频面试题(五十三)——深度学习正则化详解
  • Vue: el-select选项中如何显示label之外的其他信息
  • 印控克什米尔恐袭引爆印巴新一轮外交摩擦,地区安全风险骤增
  • 上海汽车贸易有限公司原总经理王璟接受监察调查
  • 最高法:侵犯著作权罪中的“复制发行”不包括单纯发行行为
  • “两高”发布侵犯知产犯罪司法解释:降低部分犯罪入罪门槛
  • 外交部否认中美就关税问题进行磋商谈判
  • 温氏股份一季度归母净利润20.01亿元,同比扭亏为盈