编码器四倍频电路的单片机高速算法设计

上传人:jin****ng 文档编号:148503932 上传时间:2022-09-05 格式:DOC 页数:3 大小:113KB
返回 下载 相关 举报
编码器四倍频电路的单片机高速算法设计_第1页
第1页 / 共3页
编码器四倍频电路的单片机高速算法设计_第2页
第2页 / 共3页
编码器四倍频电路的单片机高速算法设计_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
编码器四倍频电路的单片机高速算法设计Fourfold Frequency Circuit Design of Encoder Based on MCU with Speedy Arithmetic 收稿日期:2007-10-16 作者简介:王子博(1986-)。男,辽宁大连人,大连理工大学电子信息工程学院学生【摘要】文章针对增量式光电编码器输出信号的倍频鉴向处理问题,介绍了一种用单片机设计的 编码器四 倍额电路。通过分析软件倍频鉴向的原理,详细介绍了一种新颖的高速处理算法。该设 计不仅电路简单,响应速度也比一般单片机设计方案大为提高。【关键词】编码器;四倍频;单片机;高速算法【引言】增量式光电编码器是一种高精度的角位置测量传感器,具有体积小、精度高、响应速度快、 性能稳定等优点,被广泛应用于数控机床、工业机器人等伺服控制系统中。对编码器输出信号的 处理,是测控系统要解决的常见问题。编码器通常有A相、B相、Z信号等三路输出信号。Z信号是一个代表零位的脉冲信号,可 用于调零、对位,一般不须作额外处理。 A、 B 相信号则包含了被测对象的旋转方向、旋转角度 等信息,通常要经过倍频鉴向处理之后再进行有效利用。编码器的A、B相输出信号如图1所示。A、B相信号是相位相差90的正交方波脉冲串,每 个脉冲代表被测对象旋转了一定的角度,A、B之间的相位关系则反映了被测对象的旋转方向。 当A相超前B相,转动方向为正转,当B相超前A相,则为反转。对A、B相信号典型的处理是: 将信号四倍频,并分离出正转脉冲P+与反转脉冲P-,再进行计数,最后得到被测对象的位置。 倍频鉴向有多种方法,并且各具特色。概括来讲,用数字电路方案的,速度高,但硬件复杂;用 单片机方案的,硬件较简单,但响应速度较低。本文提出的四倍频单片机设计方案,采用了独特 的高速算法,结合功能先进速度快的 AVR 系列的单片机,具有硬件电路简单,并且响应速度高的 双重优点。图1编码器的A、B相输出信号及倍频鉴向后的正、反转脉冲输出【倍频与鉴向原理】如图1所示,编码器正转时,AB相电平状态的变化顺序为:00-10-11-01-00;编码 器反转时,变化顺序为:00-01-11-10-00。用单片机编程实现倍频与鉴向时,一般算法是: 设定一个寄存器存放上次电平状态,一个寄存器存放本次电平状态,将两个寄存器进行比较,即 可判断是正转还是反转。正转时输出正向脉冲,或者进行加计数;反转时,输出反向脉冲,或者 进行减计数。再将本次电平状态存到上次电平状态寄存器中,为下次处理作准备。按此算法设计 的程序,由于判断比较指令较多,运行时间较长,因而导致总体的响应速度较低。为了克服这一 缺点,这里采用了利用先后两个电平状态组成一个地址向量,进行程序散转的方法。这就去掉了 繁琐的判断与比较,使运行时间大大缩短,从而使响应速度得到了提高。组成散转地址的方法是:将所有的前一个AB电平状态作为散转地址的高2位,所有后一个 AB电平状态作为散转地址的低2位,合在一起共4位,排列组合共有16种状态,或者说有16 个地址。每个地址都对应一种输出处理操作,见表1。其中 00-11, 01-10, 10-01, 11-00这 4种状态属于异常状态,是不应该出现的,程序处理时将其忽略。表1 AB相电平状态组合表前一个AB相电平状态(记为A0B0)000000000101后一个AB相电平状态(记为AiBi)000110110001组成散转地址向量(二/十六进制)处理内容0000000100100011010001010x000x010x020x030x040x05状态无变化,不处理输出反转脉冲P- 输出正转脉冲P+ 异常状态,不处理010110101010111111111011000110110001101101100111100010010x060x070x080x091010 0x0A1011 0x0B1100 0x0C11010x0D11100x0E1111 0x0F输出正转脉冲P+状态无变化,不处理 异常状态,不处理输出反转脉冲P- 输出反转脉冲P-异常状态,不处理状态无变化,不处理输出正转脉冲P+异常状态,不处理输出正转脉冲P+ 输出反转脉冲P-状态无变化,不处理除了要有好的算法之外,指令还要有一定技巧,才能使程序更精简。程序流程见图 2。图 2 中, 16 个散转目标地址的处理程序,都按表1 进行。虽然限于篇幅仅画出了 3 个,但不 影响理解。每个目标地址的处理内容虽然都要占用一段程序,指令的总数比较多,但程序执行速 度却加快很多。这种算法,实际上是采用了用程序容量来换取执行速度的思路。用AVR系列单片 机汇编语言。从头到尾任何一个流程(包括子程序返回指令)最长只需要12 条汇编指令,执行时 间不到2us,可见其处理速度是相当快的。【典型设计方案】对于检测控制一体的应用场合,例如用ATmega32等单片机实现位置检测,并完成定位输出 功能的,可以采用外部中断的方案。AB两相信号可分别接到单片机的两个外部中断输入口 INT0 与INT1上。中断方式设置为电平变化触发中断。即只要AB相电平状态发生变化,就会触发中 断。在中断程序中,采用上述高速算法进行处理。与上述不同的是,最后不需要输出正反转脉冲, 而是正转时位置量加1,反转时位置量减1。图2高速算法子程序流程图采用AVR系列8引脚的单片机的ATtiny13.结合上述高速算法,可构成硬件电路非常简单神出冲出 W特P-IE民的独立四倍频鉴向电路,见图3。图中的CD40106为施密特触发器,对信号进行整形处理,使整 个电路更可靠。如果省略,电路将更简单。图 3 ATtiny13 接线图由于ATtiny13单片机仅用于倍频鉴向,没有别的任务,因此可采用反复循环扫描AB相电平 状态的方式。ATtiny13的典型主频是9.6MHz,采用上述高速算法,利用汇编语言编程,完成一 次AB相电平状态扫描处理,只需不到2us的时间,相当于500KHZ的响应速度。而ATtiny13单 片机的价格约为5元,可见这是一个电路简单、成本低廉的设计方案。而ATtiny13本身是一款高 性能、高可靠的单片机,并且内含看门狗电路。 经实用验证,该电路工作可靠,性能优良,是一 款不可多得的优秀设计。【结束语】本文提出的高速算法,对任何一款单片机都是有效的。由于指令少速度快,即使对运行速度较慢的 51 系列单片机,也可以取得较好的效果。对采用单片机进行四倍频鉴向的设计,具有很好 的参考价值。参考文献】1许理、赵英俊.基于单片机的增量式光电编码嚣接口的设计(J).机械与电子,2006(12) :9-11. 2韩壮志、李伟、王田苗等.光电码盘四倍频分析(J).电子技术应用,2000(12):38-40.3王立锦、刘亚东、焦让等.磁旋转编码器四倍频电路分析与集成化设计J).电子器件, 2005(6):358-360.4Atmel Corporation. ATtiny13 数据手册(S). 1997.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!