基于瑞萨MCU了解接口热插拔机制

前言:最近由于需要分析问题代码的缘故,也是用到了热插拔功能,原先也是对这个概念含混不清,应用一遍之后才算是清楚的知道了其含义。本篇博客就简单的介绍一下热插拔功能,以瑞萨的MCU应用来作为举例。


1,什么是热插拔

先引用一下百度百科里面的广义上的定义

热插拔 (Hot Swap) 即带电插拔,指的是在不关闭系统电源的情况下,将模块、板卡插入或拔出系统而不影响系统的正常工作,从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力等。对于大功率模块化电源系统而言,热插拔技术可在维持整个电源系统电压的情况下,更换发生故障电源模块,并保证模块化电源系统中其他电源模块正常运作。

热插拔最早出现在服务器领域,是为了提高服务器易用性而提出的。在我们平时用的电脑中一般都有USB接口,这种接口就能够实现热插拔。如果没有热插拔功能,即使磁盘损坏不会造成数据的丢失,用户仍然需要暂时关闭系统,以便能够对硬盘进行更换。

其实在我们使用电脑的过程中不知不觉间就使用了热插拔功能,比如在电脑运行的过程中插上或者拔掉U盘,而不是说必须得在关机的状态下才可以执行这个动作。

2,MCU应用中的热插拔

MCU本质上作为一个计算设备,算是一个超低配的微型计算平台。"麻雀虽小,五脏俱全",其包含了常用的通信协议外设接口,有时候为了定位问题或者分析故障的原因也需要热插拔的功能,这个需要MCU厂商配套开发的IDE里面集成。

比如有时候搭载某一款MCU的设备,在运行的过程中需要定位问题代码,这个时候就需要连接调试器进行DEBUG调试定位问题代码的位置

其实对于MCU而言,热插拔通常指两类场景

I/O 信号热插拔(Hot-Plug I/O)

系统通电时,外接模块的信号线(GPIO、CAN、LIN、SPI、UART)被插入或拔出,不会烧坏 MCU 引脚,也不会导致 MCU 复位或锁死。

电源热插拔(Hot-Swap)

MCU 的电源侧支持带电插拔(如 ECU 更换、车载模块带电连接),不产生:

  • 冲击电流(inrush current)

  • 反向电流

  • 欠压复位故障

  • ESD/Latch-up 损坏

而对于瑞萨MCU而言,也有大量需要热插拔功能的场景

瑞萨芯片的 I/O 通常具备:

  • ESD 保护二极管(防 ±8kV 或更高 ESD)

  • 过压钳位(Clamping)

  • Latch-up 抑制结构

  • 输入过驱动(over-drive)保护

  • I/O 失电容忍(Power-off Tolerance)

例如 RH850 F1x 的 I/O 允许:

  • 输入电压高于 VDD(带限制电流)

  • 引脚在 MCU 未上电时接受信号 不会导致反灌电流

3,瑞萨MCU热插拔应用

一般这个功能是在IDE中集成,比如瑞萨的CS+里面的就有这个功能,当然这需要E2调试器。

操作时,需要先在电脑端连接热插拔的仿真器,然后点击下面的热插拔的功能键,出现一个OK键的时候在插到带电运行的板子上面,然后点击OK,就会定位到正在运行程序的代码地址位置。

可能会有小伙伴还是不知道这个功能有什么具体的用处,很简单,当搭载MCU的产品出现了一个BUG,但是不容易定位这个问题代码的位置,这个时候就可以在BUG复现的时候插上调试器,然后定位问题代码,因为IDE里面会有光标进行指引。

相关推荐
yrx0203075 小时前
串口空闲中断+DMA接收+环形缓冲区 && 串口DMA发送+环形缓冲区
stm32·单片机
LCG元6 小时前
STM32实战:基于STM32F103的4G模块(EC20)HTTP通信
stm32·嵌入式硬件·http
送外卖的CV工程师7 小时前
STM32+Makefile编译+OpenOCD 烧录调试
stm32·单片机·嵌入式硬件·makefile·调试·烧录·openocd
豆包公子7 小时前
程序流监控:AUTOSAR CP 功能安全在裸机 MCU 上的实现(理论篇)
运维·单片机·嵌入式硬件·安全·车载系统·autosar
编程之升级打怪8 小时前
单片机SPI硬件接口的要点
嵌入式硬件
Aaron_dw9 小时前
PHY Eye Monitor 全栈技术说明书
嵌入式硬件
NQBJT11 小时前
嵌入式从零开始(第十二篇):调试与工具链 —— 从 IDE 到逻辑分析仪
ide·stm32·单片机·嵌入式硬件·c#
广州灵眸科技有限公司12 小时前
瑞芯微(EASY EAI)RV1126B 网络摄像头方案
开发语言·网络·科技·嵌入式硬件·物联网
豆包公子12 小时前
程序流监控 —— AUTOSAR CP 功能安全在裸机 MCU 上的实现:实践篇
单片机·嵌入式硬件·学习
cici1587412 小时前
C# 五子棋小游戏源码(人机对战)
开发语言·单片机·c#