当前位置:首页 > 工业控制 > 工业控制
[导读]外部脉冲明明到了,计数却偶尔少一次,这类故障常被误判成传感器抖动。单片机中断链路如果把屏蔽窗口、标志位和优先级混在一起处理,真实边沿很容易在软件忙碌时消失。

外部脉冲明明到了,计数却偶尔少一次,这类故障常被误判成传感器抖动。单片机中断链路如果把屏蔽窗口、标志位和优先级混在一起处理,真实边沿很容易在软件忙碌时消失。

中断屏蔽窗口首先决定事件能否及时进入处理路径。关中断保护共享变量是常见做法,但若把通信解析、数组复制或 Flash 操作也包在同一段临界区里,外部边沿就只能排队等待。很多片上外设只锁存一个待处理标志,连续两个边沿在服务前到来时,第二个边沿未必能被独立计数。于是系统在低频测试下正常,在高速编码器、流量计或窄脉冲捕获场景里开始少数。问题本质不是 CPU 算不过来,而是最长不可打断时间超过了事件最小间隔。

压缩屏蔽窗口比盲目提高主频更有效。共享状态能用原子位操作就不要整段关中断,能把数据先搬到环形缓冲就不要在中断里做完整协议判断。对必须临界保护的寄存器更新,也要让保护范围只覆盖真正不能被打断的几条指令。单片机项目里还应单独记录最长 ISR 执行时间和最长关中断时间,因为平均响应很漂亮并不能证明不会漏掉最短边沿。

边沿锁存和清标志顺序是另一条失效路径。某些外设要求先读状态再写一清零,某些要求先读数据寄存器才能释放标志;如果顺序反了,刚到的新边沿可能被旧标志的清除动作一起抹掉。更隐蔽的是,多个中断源共享同一个向量时,软件只处理了第一个源就退出,剩余源需要等下一轮触发才被发现。若此时优先级又被高频定时器抢占,低频但关键的边沿就会在时间线上被拖得很长。

优先级排序不能只按功能重要性,还要按事件不可丢失性和服务时限来排。高速捕获、过流保护和通信接收这类缓冲深度很浅的事件,应优先获得短而确定的服务;耗时计算、日志打印和协议重组则适合放到后台任务。若两个中断共享数据,优先级还要避免低优先级持有状态时被高优先级反复打断,造成清标志和读数据之间的竞态。输入捕获能交给硬件 FIFO 或 DMA 时,应优先让硬件先存证,再由后台慢慢消费。单片机中断设计的目标不是让所有事件都抢得更凶,而是让最容易丢的事件先被安全落袋里。

排查漏边时,最好在输入脚、ISR 入口、清标志前后和应用消费点同时打点。若输入边沿存在而 ISR 没进,问题多半在屏蔽或优先级;若 ISR 进了但计数没变,就要查标志位顺序和共享变量原子性。还要故意制造最高通信负载和最长临界区,让边沿落在最差时间点上,而不是只测空闲状态。输入端若有毛刺滤波,也要确认滤波宽度没有把合法窄脉冲一起吞掉,尤其要覆盖最小脉宽样本和最高边沿频率。用逻辑分析仪把这些点串起来,比单看代码更容易还原真实竞争窗口。

因此,中断可靠性不是响应越快越好,而是最坏路径不能越过事件间隔。把屏蔽窗口收窄,再把标志位处理顺序固定,边沿才不会在忙碌时被吃掉。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在嵌入式产品的全生命周期里,STM32的Flash就像设备内部的“数字保险柜”,既存放着工程师熬夜写出来的核心固件代码,也保存着设备运行过程中积累的关键校准参数、用户配置数据。

关键字: STM32单片机 单片机

ATMEGA8是Atmel公司(现已被Microchip收购)推出的8位AVR架构单片机,自问世以来就凭借高性能、低功耗、高性价比的特点,成为嵌入式入门开发、小型控制项目的首选芯片,至今仍是电子爱好者和工业小型控制场景的...

关键字: 单片机 电源

TI 大学计划深耕校企合作三十载,依托实验室、赛事与课程改革,协同高校培育电子信息领域创新人才。

关键字: AI 智能汽车 单片机

PWM 波形偶尔抖一下,后级电机或电源环路就可能把它放大成噪声和发热。单片机定时器虽然能自动翻转引脚,但更新时刻和死区配置不对,输出并不会天然稳定。

关键字: 单片机 PWM 定时器

I2C 偶发不响应时,复位主控往往只能暂时恢复,因为总线状态可能已经被外部器件留在半截事务里。单片机若没有处理 SDA 锁低和上拉边界,软件重新初始化也未必能重新拿回总线。

关键字: 单片机 I2C SDA

参数偶尔丢失或升级后配置变乱,常常不是存储单元突然坏了,而是写入流程没有尊重 Flash 的物理边界。单片机内部 Flash 若把擦写粒度和掉电窗口处理得太粗,少量配置也会被写成高风险操作。

关键字: 单片机 Flash 掉电保护

ADC 数值缓慢漂移时,问题未必在传感器,也未必靠平均就能消掉。单片机内部转换器如果没有满足采样保持和参考回流条件,软件读到的只是前端妥协后的电压。

关键字: 单片机 ADC 传感器

看门狗本该抓住死机,却常在现场变成莫名重启的来源。单片机系统如果没有把喂狗条件和最坏执行时间绑定,复位既可能误触发,也可能在真正卡死时失效。

关键字: 单片机 看门狗 复位

设备偶发重启时,很多人先怀疑程序跑飞,其实更常见的是电源刚好落在不稳定边界。单片机若没有把欠压复位和上电延时配成一条完整启动链,复位脚会比软件更早暴露问题。

关键字: 单片机 复位 晶振

计时偏差通常不是某个 delay 写错,而是时间基准从源头就不稳定。单片机定时若同时受晶振误差、分频取整和同步延迟影响,软件看到的一秒就可能不是硬件世界的一秒。

关键字: 单片机 计时偏差 晶振
关闭