LAN9253中文注释第七章

7.0 系统中断

7.1 中断系统概述

LAN9253 的系统中断为向量式可屏蔽中断,支持多中断源独立使能 / 禁用、中断状态单独查询与清零,中断输出引脚(IRQ)可配置极性和输出模式,适配不同主机的中断处理机制,同时中断可作为低功耗模式的唤醒源,实现功耗控制与事件响应的结合。

核心特性

  • 支持16 个独立可配置中断源,覆盖 EtherCAT、以太网 PHY、电源管理、主机接口、通用定时器等全功能模块;
  • 中断状态位为粘性位(置位后持续保持,需软件主动写 1 清零),避免短时间事件导致的中断丢失;
  • IRQ 引脚支持推挽 / 开漏输出模式 、高 / 低电平有效极性,开漏模式下可线或连接,适配多器件中断信号共享场景;
  • 提供独立的中断使能寄存器,可单独屏蔽某一中断源,不影响其他中断的正常触发;
  • 低功耗模式下,使能的中断可直接触发唤醒流程,器件自动恢复正常工作并响应中断;
  • 所有中断配置与状态均通过系统 CSR 寄存器实现,支持 HBI/SPI/SQI 直接访问,配置后立即生效。

7.2 中断源与分类

器件的 16 个中断源按功能模块分类,每个中断源对应独立的状态位和使能位,部分中断源为组合型(多个子事件触发同一中断位),子事件可通过对应功能模块的寄存器进一步识别。

所有中断源分为高优先级 和普通优先级,高优先级中断(如 EtherCAT 复位、硬件复位)将跳过屏蔽直接触发,普通优先级中断需使能后才可触发 IRQ 引脚。

7.2.1 中断源详细列表

下表为 16 个中断源的完整定义,包含对应功能、触发条件、优先级及关联章节,位序号与中断寄存器的位一一对应。

位序号 中断名称 功能归属 触发条件 优先级 关联章节
15 RESERVED 保留 无(写 0,读无定义) - -
14 ECAT_WDG_INT EtherCAT 同步管理器看门狗超时 / 触发 普通 11.0 EtherCAT
13 ECAT_FRAME_INT EtherCAT 接收到指向本器件的 EtherCAT 数据帧 / 命令帧 普通 11.0 EtherCAT
12 ECAT_RST_INT EtherCAT 检测到 EtherCAT 系统复位命令序列 高 6.2.2.7
11 PHY_B_INT 以太网 PHY PHY B 端口发生链路状态变化 / 错误(Link Up/Down、接收错误) 普通 10.0 以太网 PHY
10 PHY_A_INT 以太网 PHY PHY A 端口发生链路状态变化 / 错误(Link Up/Down、接收错误) 普通 10.0 以太网 PHY
9 WKE_INT 电源管理 检测到已使能的唤醒事件(除高优先级复位类) 普通 6.3.1
8 SPI_SQI_INT SPI/SQI 客户端 SPI/SQI 接口传输完成 / 错误 普通 9.0 SPI/SQI
7 HBI_INT 主机总线接口 HBI 接口传输完成 / 错误、总线超时 普通 8.0 HBI
6 GPT_INT 通用定时器 通用定时器计数达到预设值(定时溢出) 普通 14.0 定时器
5 EEPROM_INT EEPROM 接口 EEPROM 读 / 写 / 擦除操作完成 / 错误 普通 12.0 EEPROM
4 GPIO_INT 数字 I/O/GPIO 配置为中断模式的 GPIO 引脚检测到电平跳变(上升沿 / 下降沿) 普通 15.0 其他功能
3 RST_PIN_INT 硬件复位 RST# 引脚检测到低电平复位信号 高 6.2.2.6
2 PMT_ERR_INT 电源管理 电源管理模块检测到电压异常 / 低功耗模式进入 / 退出失败 高 6.3.0
1 SYS_ERR_INT 系统核心 器件内部总线错误 / 寄存器访问错误 / 配置带锁存错误 高 5.0 寄存器映射
0 INT_ALL 中断总控 所有中断源总触发位(任意使能的中断置位时,该位自动置 1) - 7.3 中断寄存器

7.2.2 高优先级中断规则

高优先级中断为不可屏蔽中断,满足以下特性:

  1. 无需在中断使能寄存器中置位,触发后直接置位对应状态位并驱动 IRQ 引脚;
  2. 低功耗模式下,高优先级中断将强制触发唤醒流程,不受功耗等级限制;
  3. 中断状态位仍需软件写 1 清零,清零前将持续驱动 IRQ 引脚。

7.2.3 组合型中断源识别

对于组合型中断源(如 PHY_INT、WKE_INT),单个中断位对应多个子事件,需通过以下方式识别具体触发事件:

  1. PHY_INT:读取 PHY A/B 的状态寄存器(PHY_STS_x),查询链路状态位、错误状态位;
  2. WKE_INT:读取唤醒事件状态寄存器(WKE_STS),查询具体唤醒源位;
  3. SYS_ERR_INT:读取硬件配置寄存器(HW_CFG)的错误状态位,识别配置带 / 总线错误类型;
  4. GPIO_INT:读取 GPIO 中断状态寄存器,查询具体触发中断的 GPIO 引脚。

7.2.4 中断触发方式

所有中断源的触发方式均为边沿触发 ,部分源支持上升沿 / 下降沿可配置 (如 GPIO_INT、PHY 链路变化),其余源为固定边沿触发(如定时器溢出为上升沿、错误事件为下降沿),具体配置见对应功能模块章节。

7.2.5 中断与低功耗的联动

低功耗模式下,中断系统的工作规则:

  1. 仅已使能的中断源对应的检测电路保持工作,未使能的中断源电路断电;
  2. 普通优先级中断触发后,先执行唤醒流程,器件就绪(READY=1)后再驱动 IRQ 引脚;
  3. 高优先级中断触发后,立即驱动 IRQ 引脚,同时并行执行唤醒流程;
  4. 唤醒完成后,中断状态位保持置位,直至软件清零,确保主机能识别中断源。

7.2.6 中断抑制

部分场景下可通过寄存器位临时抑制所有普通优先级中断,高优先级中断不受影响:

  • 置位中断配置寄存器(IRQ_CFG)的INT_MASK_ALL位,将屏蔽所有普通优先级中断的 IRQ 引脚驱动,状态位仍正常置位;
  • 该位为临时屏蔽位,清 0 后将立即检测所有置位的状态位,若有未清零的,将重新驱动 IRQ 引脚。

7.2.7 时钟输出测试模式

为便于系统级调试,可将25MHz 晶体时钟映射到 IRQ 引脚,实现时钟输出测试,规则如下:

  1. 置位中断配置寄存器(IRQ_CFG)的IRQ_CLK_TEST位,IRQ 引脚将输出 25MHz 时钟,中断功能暂时禁用;
  2. 清 0 该位后,IRQ 引脚立即恢复中断输出功能,未清零的中断状态位将重新驱动引脚;
  3. 测试模式下,IRQ 引脚为推挽输出、高电平有效,不受原有配置影响;
  4. 该模式仅适用于调试,正常工作时需清 0,避免中断功能失效。

7.3 中断寄存器

中断系统的所有配置、状态、使能均通过3 个核心寄存器实现,均为 32 位,偏移地址在兼容模式和 EtherCAT 直接映射模式下不同,复位后所有位恢复默认值(除高优先级中断状态位)。

寄存器列表:

  1. 中断配置寄存器(IRQ_CFG):配置 IRQ 引脚模式、极性,设置中断抑制 / 测试模式;
  2. 中断状态寄存器(INT_STS):指示各中断源的触发状态,粘性位,写 1 清零;
  3. 中断使能寄存器(INT_EN):单独使能 / 禁用各普通优先级中断源,高优先级中断无对应使能位。

7.3.1 中断配置寄存器(IRQ_CFG)

  • 兼容模式偏移地址:054h
  • EtherCAT 直接映射模式偏移地址:3054h
  • 位宽:32 位
  • 类型:R/W(部分位为 RO)
  • 核心功能:配置 IRQ 引脚的电气特性,设置中断全局抑制、时钟测试模式,无默认值的保留位写 0 读无定义。
位序号 位名称 功能描述 类型 默认值
31:8 RESERVED 保留位 RO -
7 IRQ_CLK_TEST 时钟输出测试模式:1=IRQ 引脚输出 25MHz 时钟,禁用中断;0 = 恢复中断功能 R/W 0b
6 INT_MASK_ALL 普通中断全局屏蔽:1 = 屏蔽所有普通优先级中断的 IRQ 驱动;0 = 正常触发 R/W 0b
5:4 RESERVED 保留位 RO -
3 IRQ_POLARITY IRQ 引脚极性:1 = 高电平有效;0 = 低电平有效 R/W 0b
2 IRQ_MODE IRQ 引脚输出模式:1 = 开漏输出(需外接上拉电阻);0 = 推挽输出 R/W 0b
1:0 RESERVED 保留位 RO -

注:开漏输出模式下,IRQ 引脚为线或兼容,多个器件的 IRQ 引脚可直接连接,外接 10kΩ 典型值上拉电阻至 VDDIO。

7.3.2 中断状态寄存器(INT_STS)

  • 兼容模式偏移地址:058h
  • EtherCAT 直接映射模式偏移地址:3058h
  • 位宽:32 位
  • 类型:RO/W1C(读仅查看状态,写 1 清零,写 0 无效,高优先级位强制置位)
  • 核心功能:指示各中断源的触发状态,任意中断源触发时,对应位置 1;位 0 为总触发位,自动随其他位置位 / 清零。
位序号 位名称 功能描述 清零方式 优先级
31:16 RESERVED 保留位(读 0,写无效) - -
15 RESERVED 保留位 - -
14 ECAT_WDG_INT EtherCAT 看门狗中断状态 W1C 普通
13 ECAT_FRAME_INT EtherCAT 帧接收中断状态 W1C 普通
12 ECAT_RST_INT EtherCAT 复位中断状态 W1C 高
11 PHY_B_INT PHY B 端口中断状态 W1C 普通
10 PHY_A_INT PHY A 端口中断状态 W1C 普通
9 WKE_INT 唤醒事件中断状态 W1C 普通
8 SPI_SQI_INT SPI/SQI 接口中断状态 W1C 普通
7 HBI_INT 主机总线接口中断状态 W1C 普通
6 GPT_INT 通用定时器中断状态 W1C 普通
5 EEPROM_INT EEPROM 接口中断状态 W1C 普通
4 GPIO_INT GPIO 引脚中断状态 W1C 普通
3 RST_PIN_INT RST# 引脚复位中断状态 W1C 高
2 PMT_ERR_INT 电源管理错误中断状态 W1C 高
1 SYS_ERR_INT 系统核心错误中断状态 W1C 高
0 INT_ALL 中断总触发位:1 = 任意使能 / 高优先级中断置位;0 = 所有中断位清零 自动清零 -
关键规则
  1. INT_ALL 位:为只读自动位,无需软件操作,所有其他中断位清零后,该位自动清 0;
  2. 清零顺序:建议先读取寄存器识别中断源,再对对应位写 1 清零,避免误清零未处理的中断;
  3. 高优先级位:即使中断全局屏蔽(INT_MASK_ALL=1),高优先级中断触发后仍会置位对应位,屏蔽解除后立即驱动 IRQ;
  4. 背对背访问:写入该寄存器后,需遵守 5.4 节时序要求,等待至少 180ns 再进行读操作,避免读取过时状态。

7.3.3 中断使能寄存器(INT_EN)

  • 兼容模式偏移地址:05Ch
  • EtherCAT 直接映射模式偏移地址:305Ch
  • 位宽:32 位
  • 类型:R/W(高优先级中断对应位为 RO,写 0 无效)
  • 核心功能:单独使能 / 禁用普通优先级中断源,1 = 使能(触发后驱动 IRQ),0 = 禁用(仅置位状态位,不驱动 IRQ);高优先级中断无使能位,强制使能。

表

位序号 位名称 功能描述 类型 默认值 优先级
31:16 RESERVED 保留位(写 0,读无定义) RO - -
15 RESERVED 保留位 RO - -
14 ECAT_WDG_EN EtherCAT 看门狗中断使能 R/W 0b 普通
13 ECAT_FRAME_EN EtherCAT 帧接收中断使能 R/W 0b 普通
12 RESERVED 对应 ECAT_RST_INT(高优先级,无使能位) RO 0b 高
11 PHY_B_EN PHY B 端口中断使能 R/W 0b 普通
10 PHY_A_EN PHY A 端口中断使能 R/W 0b 普通
9 WKE_EN 唤醒事件中断使能 R/W 0b 普通
8 SPI_SQI_EN SPI/SQI 接口中断使能 R/W 0b 普通
7 HBI_EN 主机总线接口中断使能 R/W 0b 普通
6 GPT_EN 通用定时器中断使能 R/W 0b 普通
5 EEPROM_EN EEPROM 接口中断使能 R/W 0b 普通
4 GPIO_EN GPIO 引脚中断使能 R/W 0b 普通
3 RESERVED 对应 RST_PIN_INT(高优先级,无使能位) RO 0b 高
2 RESERVED 对应 PMT_ERR_INT(高优先级,无使能位) RO 0b 高
1 RESERVED 对应 SYS_ERR_INT(高优先级,无使能位) RO 0b 高
0 INT_EN_ALL 普通中断总使能:1 = 使能所有已单独置位的普通中断;0 = 禁用所有普通中断 R/W 0b -
关键规则
  1. INT_EN_ALL 位 :为普通中断总控位,置 1 时所有单独使能的普通中断源生效,置 0 时直接禁用所有普通中断,优先级高于单独使能位;
  2. 高优先级对应位:位 12、3、2、1 为保留位,对应高优先级中断,写操作无效,读操作返回 0;
  3. 配置生效:寄存器写操作完成后,配置立即生效,无需额外操作;
  4. 背对背访问:写入该寄存器后,需遵守 5.4 节时序要求,等待至少 90ns 再进行读操作,避免读取过时配置。

7.4 IRQ 引脚电气特性

IRQ 引脚的电气特性由IRQ_CFG 寄存器的 IRQ_MODE 和 IRQ_POLARITY 位配置,不同配置下的电气参数遵循器件通用 I/O 引脚规范,核心参数如下(典型值,VDDIO=3.3V):

配置模式 输出高电平电压(V) 输出低电平电压(V) 灌电流(mA) 拉电流(mA) 上拉电阻(kΩ)*
推挽 - 低电平有效 2.8~3.3 0~0.5 ±8 ±8 无
推挽 - 高电平有效 2.8~3.3 0~0.5 ±8 ±8 无
开漏 - 低电平有效 高阻 0~0.5 8 0 外接 10(典型)
开漏 - 高电平有效 0~0.5 高阻 8 0 外接 10(典型)

* 注:开漏模式下,器件内部无内置上拉电阻,必须外接上拉电阻至 VDDIO,否则 IRQ 引脚将处于高阻状态,无法输出有效信号。

7.5 中断处理流程

器件的中断处理为硬件触发 + 软件清零 的标准流程,主机需按照固定步骤处理,避免中断丢失或重复触发,低功耗模式下需额外结合唤醒流程。

7.5.1 正常工作模式下的中断处理流程

  1. 中断触发:硬件检测到中断源事件,置位 INT_STS 对应状态位,若为使能的普通中断 / 高优先级中断,驱动 IRQ 引脚至有效电平;
  2. 主机响应:主机检测到 IRQ 引脚有效,进入中断服务程序(ISR);
  3. 中断源识别 :主机读取INT_STS 寄存器,根据置位的位识别具体中断源,组合型中断源需读取对应功能模块寄存器识别子事件;
  4. 事件处理:主机根据中断源执行对应处理逻辑(如处理 EtherCAT 帧、清除 PHY 错误、响应唤醒事件);
  5. 中断清零 :处理完成后,主机对 INT_STS 寄存器中对应置位的位写 1 清零,避免重复触发;
  6. 中断退出:所有置位的中断位清零后,INT_ALL 位自动清 0,IRQ 引脚恢复至无效电平,主机退出中断服务程序。

7.5.2 低功耗模式下的中断处理流程

  1. 中断触发与唤醒:硬件检测到使能的中断源,若为普通中断,先触发唤醒流程,器件自动恢复电源和时钟;若为高优先级中断,同时触发唤醒和 IRQ 驱动;
  2. 器件就绪:等待器件就绪(PMT_CTRL.READY=1),所有模块恢复正常工作;
  3. 后续步骤:执行 7.5.1 节的步骤 2-6,与正常工作模式一致。

7.5.3 中断处理注意事项

  1. 清零时机 :必须在事件处理完成后再清零中断位,若先清零再处理,处理过程中再次触发同一事件将导致中断丢失;
  2. 组合型中断:需先识别具体子事件并处理,再清零对应中断位,避免子事件未处理导致的功能异常;
  3. 高优先级中断:高优先级中断(如系统错误、电源异常)需优先处理,避免器件进入异常状态;
  4. IRQ 引脚线或:多器件线或连接时,某一器件清零中断后,IRQ 引脚可能仍为有效电平(其他器件有未处理中断),主机需通过轮询识别对应器件;
  5. 时序要求 :所有中断寄存器的读写操作,均需遵守 5.4 节背对背周期限制,避免读取过时数据或写入失效;
  6. 中断嵌套:器件本身不支持中断嵌套,主机需在处理完当前中断后,再响应新的中断。

7.6 中断系统使用建议

  1. 中断使能策略:仅使能系统需要的中断源,禁用无用中断,减少主机中断响应开销;
  2. 高优先级中断处理:为高优先级中断(如 SYS_ERR_INT、PMT_ERR_INT)设计独立的快速处理逻辑,避免器件异常扩大;
  3. IRQ 引脚配置 :多器件系统建议配置为开漏 + 低电平有效 ,外接 10kΩ 上拉电阻,实现线或共享;单器件系统建议配置为推挽 + 高电平有效,提高驱动能力;
  4. 低功耗中断配置:低功耗模式下,仅使能必要的唤醒 / 中断源(如 EtherCAT 帧、RST# 引脚),其余禁用,降低功耗;
  5. 调试与测试 :利用IRQ_CLK_TEST位实现时钟输出测试,验证晶体振荡器和时钟电路是否正常工作;
  6. 中断状态轮询 :若主机无中断响应功能,可通过轮询 INT_STS 寄存器的方式检测事件,建议轮询周期不大于 1ms,避免事件延迟。

7.7 中断系统总结

LAN9253 的中断系统为高度可编程、高可靠性的向量式可屏蔽中断,通过 16 个独立中断源实现全功能模块的事件响应,结合高 / 普通优先级划分、IRQ 引脚灵活配置,适配不同工业嵌入式系统的中断处理需求。

中断系统与电源管理深度联动,支持低功耗模式下的事件唤醒,兼顾了功耗控制与实时性;所有配置与状态均通过系统 CSR 寄存器实现,与主机接口(HBI/SPI/SQI)无缝兼容,简化了软件设计与系统集成。

同时,中断状态位的粘性特性、高优先级中断的不可屏蔽特性,确保了关键事件无丢失,提升了器件在工业现场复杂环境下的可靠性。

相关推荐
Li_RuiQi6 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
Li_RuiQi11 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu11 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇11 小时前
turtle 入门教程笔记
笔记
跨知易知识产权11 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理11 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生12 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈111112 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈111112 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡13 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节