完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
双沿中断缺陷 注:编码器测量原理来源 鲜浩,任爱芝,盛仲飚. 增量式编码器数据采集[J ] .华北工业学院学报,2003 ,24 (2) :142 - 143. 一、问题背景:增量式编码器精确计数1、正常情况下:编码器输出信号如下 当B相为高电平时,如果检测到A相有一个上升沿,则可说明波形从左向右运动,则令计数器加1;当B相为低电平时,如果检测到A相有一个上升沿,则可说明波形从右向左运动,则令计数器减1. 2、实际情况下:编码器输出信号如下 实际情况下:编码器输出信号如下 在B相的高电平期间,如编码器正好在A相的边沿位置来回旋转,而最终却没有产生角位移,这样会在B相高电平期间检测到无数个上升沿,会在计数器中加上很多次,这样,编码器并没有产生角位移,但却令相应的计数器加了很多次,从而引起了读数误差. 3、精确测量原理: 当A 相出现一个上升沿(即A 非相出现一个下降沿),若检测到B为高电平,则用软件令计数器加1;当A相出现一个下降沿,若检测到B为高电平,则用软件令计数器减1.这样,两个计数器之差,则对应了编码器实际的角位移,而其正负对应了旋转方向.设置单片机外部中断的触发方式为下降沿触发,当INTO产生断,判断B为高电平,则令计数器减1;当INT1产生中断,判断B为高电平,则令计数器加1. 即:检测 下降沿 A相 (B为高,计数有效,+1,正向) A非相(A上升沿)(B为低,计数无效,-1,反向) (编码器一个脉冲,必定有上升沿和下降沿,) 1、电平匹配 编码器输出脉冲(3600 , 0.1度),峰值为工作电压,12V; 控制器为CMOS电平,3.3V附近为高。 使用高速光耦 6N137 电平匹配,输入波形如下: 低速状况下: A+B 高速状况下(转速在 700 圈/分钟 50KHZ附近): A + B 2、计数程序及调试信息 中断处理函数如下 主程序工作频率:400M 为方便调试,只有外部中断EINT0( A相正 ),EINT1(A相 非,)工作,电机处于低速,消除串口打印延时误差 secureCRT 串口调试软件输出如下: 现象说明:在某个脉冲,MCU未能捕捉到 上升沿或下降沿,出现计数失步,累计误差严重。 在稳定转速下(脉冲=上升沿+下降沿),MCU捕捉边沿会出现错误。 猜测结论:ARM内核处理器,在捕捉同一周期,由同一脉冲转化而来的俩路边沿中断,会出现误差。 关于ARM9 外部中断细节资料很少,下图是 ARM嵌入式系统基础教程(周立功,北航,ARM7)关于边沿触发的讲解。
|
|
相关推荐
|
|
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
852 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2844 浏览 1 评论
867 浏览 0 评论
1710 浏览 1 评论
2758 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:47 , Processed in 0.406687 second(s), Total 40, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号