历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2020年10月12日 | 基于ARM的旋转编码器采集模块设计

发布者:快乐行者 来源: elecfans关键字:ARM  旋转编码器  采集模块 手机看文章 扫描二维码
随时随地手机看文章

  随着工业生产自动化水平的提高,各种传感器的应用也越来越多。旋转编码器作为速度和位移反馈的传感器,主要应用于数控机床、高精度的闭环调速系统、伺服电动机、异步电动机、步进电动机、电梯曳引机、电梯门机乃至机械轴等需要对运动速度和位移信息反馈的自动化控制场合,以保证机械的高精度稳定运转,进而提高生产效率和保障安全运营。


  本文针对旋转编码器在工业现场中的应用,基于LPCI768硬件平台,设计出一种旋转编码器采集模块,该模块内部具有高精度分析、整形、解码电路,可同时对2路编码器输入信号进行分析、解码。经过处理的旋转信号通过高性能处理器进行采集及数字滤波。旋转编码器同时还对2路编码器信号进行角速度计算,最终模块通过CAN总线将采集到的旋转位置值以及角速度值发送到DPU(分散处理单元),以供工业现场使用。


  1 旋转编码器

  旋转编码器是一种测量转动部件运动情况的传感器,是将旋转的机械位移量转换为电气信号,对该信号进行处理后检测位置、速度等的传感器。所谓编码,其实就是将旋转角度的信息转换为单片机可读的电信号的过程。旋转编码器根据工作原理可以分为接触式、光电式和电磁式三种}根据输出信号的形式又可以分为增量式和绝对值两种,其中增量式编码器是工业中最常用的编码器。


  增量编码器包括码盘、发光元件、接收元件和信号处理部分。当轴旋转时带动码盘旋转,这样刻线处透光,问隔处不透光,透过的光被接收元件接收并输入到信号处理部分,产生脉冲信号输出,输出信号一般包括A、B两相(相位差90°),有些编码器每转一圈还会输出一个零位脉冲Z,作为机械参考零位。当主轴以顺时针方向旋转时,A通道信号位于B通道之前;当主轴逆时针旋转时,A通道信号则位于B通道之后,从而可以由此判断主轴是正转还是反转。


  2 CAN总线

  CAN总线(Controller Area Network),即控制器局域网,是国际上应用最广泛的现场总线之一。CAN总线最初是德国Bosch公司于1983年为汽车应用而开发的,它是一种能有效支持分布式控制和实时控制的串行通讯网络,属于现场总线(Field Bus)的范畴n]。随着CAN总线的不断完善和发展,它目前已被国际化标准组织采纳为国际标准。


  CAN总线是一种多主方式的串行通讯总线,基本设计规范要求有较高的位速率和高抗干扰性,而且能够检测出产生的任何错误。信号传输距离达到10 km时,仍然可提供高达5kb/s的数据传输速率。CAN协议经lSO标准化后有IS011898标准和IS011519标准两种。它们两者的区别在于对物理层的定义不同。ISOll898是通信速度为125 kb/s---1 Mb/s的CAN高速通信标准,而ISOll519是通信速度为125 kb/s以下的CAN低速通信标准。


  3 硬件设计

  根据系统功能需求,本文选用NXP公司生产的LPCI768处理器,该处理器是一款基于ARMCortex--M3内核的32位处理器,它具有3流水线和哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线,同时还包含一个支持随机跣转的内部预取指单元,工作频率可达100MHz。LPCI768处理器的外设组件包含高达512 kB的Flash存储器、64 kB的数据存储器、4个通用定时器、8通道的12位ADC、10位DAC、电机控制PWM、4个UART、2条CAN通道、带独立电池供电的超低功耗RTC和多达70个的通用I/0管脚.图1为旋转编码器采集模块总体框图。


  3.1 CPU部分

  由芯片手册可知,LPCI768可以选择内部RC振荡器或者主振荡器作为系统时钟源,而由于内部RC振荡器精度无法满足CAN总线通讯的要求,而主振荡器可以工作的频率范围为1 MHz~25 MHz,故选取12 MHz的晶振加上22 pF的电容构成Pierce振荡器,作为主振荡器的时钟源。由于本系统未使用芯片的A/D模块,故VDDA可以跟VDD一起连接到3.3V,每对VDD、GND引脚间需连接一个0.1uF的去耦电容。同时JTAG及通讯引脚均通过10k的上拉电阻连接到VDD,以提高信号传输的稳定性。

  基于ARM的旋转编码器采集模块设计

  3.2 旋转编码器采集部分

  旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的抖动,从而引发误计数现象,在这种情况下就不能对波形进行正确计数,本系统通过一个单稳态触发器来消除旋转编码器输出脉冲信号的抖动。图2为旋转编码器采集电路中的一路。

  基于ARM的旋转编码器采集模块设计

  分析电路可知,当旋转编码器正转时,F1输出脉冲序列,当旋转编码器反转时,R1输出脉冲序列闭,电路仿真波形见图3。

  基于ARM的旋转编码器采集模块设计

  3.3 CAN总线通讯部分

  LPC1768处理器支持CAN 2.0B规范,兼容IS011898-1标准,基于此,本文选取飞利浦半导体公司生产的PCA82C250芯片作为CAN总线收发器,通讯匹配电阻选取120 ,i1,CAN收发器电路见图4。

  基于ARM的旋转编码器采集模块设计

  3.4 电源部分

  LPC1768工作电压为3. 3 V,而CAN收发器及旋转编码器采集电路部分电压为5 V,所以先使用MC33063将输人电压降到5V,供相关电路使用,然后再通过LM1117-3.3V将5V电压降到3.3V,作为处理器工作电压。电源电路见图5。

  基于ARM的旋转编码器采集模块设计

  4 软件设计

  系统采用RealView MDK-ARM V4.10为开发平台,以C语言为主要开发语言,程序主要分三个部分:旋转编码器采集部分采用中断方式,通过LPC1768的定时捕获单元来完成对输人脉冲信号的计数工作;CAN通讯部分也采用中断方式监听来自DPU或者其他控制主机传来的命令,然后执行相应的数据传送任务;而主程序则通过一定的时间调度算法,完成旋转编码器转动方向的判断、角速度的计算以及设置相应的指示灯状态、处理CAN通讯过程中出现的异常状况、喂狗等操作。主程序流程图见图6。

  基于ARM的旋转编码器采集模块设计

  5 结论

  本文设计完成的旋转编码器采集模块,适用于各类工业控制现场,具有较广的应用前景。经实验室初步验证并应用于某工业现场测试,该模块对旋转编码器输人信号处理结果满足用户要求,并且能够可靠地与现场控制系统进行通讯,工作性能稳定,具有很强的抗千扰能力和很高的安全性。

关键字:ARM  旋转编码器  采集模块 引用地址:基于ARM的旋转编码器采集模块设计

上一篇:详析单片机、ARM、FPGA嵌入式的特点及区别
下一篇:指纹识别系统电路设计图

推荐阅读

first_drv.c驱动源码:#include "linux/device.h"#include "linux/module.h"#include "linux/kernel.h"#include "linux/fs.h"#include "linux/init.h"#include "linux/delay.h"#include "asm/uaccess.h"#include "asm/irq.h"#include "asm/io.h"static struct class *firstdrv_class;volatile unsigned long *gpj2con = NULL;volatile u...
中国储能网讯:琅琊山下,清流河畔,安徽省滁州市的国家产城融合示范区——中新苏滁高新技术产业开发区从一片原野间拔地而起。开发区是长江经济带省际协调推进的重要项目,自2012年4月启动建设以来,累计引进高端装备制造、新能源、新材料、电子信息、营养健康等领域的企业200多家,用电需求量大,综合能源服务市场开发颇具潜力。 国网安徽省电力有限公...
随着“AI+IoT”技术的应用落地,消费者对智能设备需求旺盛,推动智能音箱、智能家电等智能设备呈现高速增长,使得智能家居迈入黄金发展时代。人工智能技术的广泛落地,让消费者对单一的家电产品提出了更高的要求,更加注重全屋智能家居产品带来的互动性。同时,当智能家居产品融入日常生活,消费市场对产品真正的互联互通与家居全场景智能化的需求也更加凸...
10月10日,雷曼光电发布业绩预告,预计2021年前三季度归属于上市公司股东的净利润为4100万元-5100万元,同比增长6478.95%-8083.57%。据悉,雷曼光电深耕超高清显示且引领基于 COB 技术的 Micro LED 产品创新,最新自主创新研发的 Micro LED 私人巨幕影院成为公司超高清显示产品走入消费 C 端的里程碑,标志着该公司初步形成专业显示、商业显示、...

史海拾趣

问答坊 | AI 解惑

应网友要求,上传个人珍藏资料—Ledit

有网友反映说想要学Ledit,但有找不到资料,在这里特奉献珍藏的资料,一步步教你学习Ledit的,需要的网友快下吧,记得回帖哦!…

查看全部问答∨

protel 中焊盘通孔类型如何设置?

protel 中焊盘通孔类型如何设置? 要把通孔圆形的改为矩形的,怎么办?…

查看全部问答∨

给新入职的坛友一定建议

多主动,多奉献。多积累,多沉淀。不要看眼前得失,要看长远!…

查看全部问答∨

转让《STM32系列ARMCortex-M3微控制器原理与实践》

STM32系列ARM Cortex-M3微控制器原理与实践(内附光盘1张) http://auction1.taobao.com/auction/item_detail-0db1-64c9c6b2dfc9b04e4f3f858051b094fc.jhtml…

查看全部问答∨

32位无符号除法器

在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。对于这种情 ...…

查看全部问答∨

如何把F2812片内FLASH的程序搬移到RAM里

在RAM里运行速度明显的快于flash运行速度。想把如何把F2812片内FLASH的程序搬移到RAM里,谁有相关的流程和例程?万分感谢!…

查看全部问答∨

求助LOAD.out文件出错

板子是自己做的 仿真器没问题 好着呢  硬件设计也没问题 因为前几块板子都没问题 新做的一个板子 连接没问题 但烧写LOAD .OUT 文件是提示 DAta Verification failed at address 0x6460 Please verufy ttarget memory and memory map ...…

查看全部问答∨

我的毕业设计:基于STC12C的摄像传感器驱动

如期把源码贴上,之前还计划做存储的,现在只能放弃,因为没时间了。要出去找工作了,呵呵!…

查看全部问答∨

如何对多个IO口同时赋值?

请问,对于不同的IO,比如GPIOA1,A2,A3 ,B1,B2,B3,C1,C2 可不可以用结构体对这非连续的八个IO口写到一组里面,然后向对这一组IO口的值同时赋值?或者对这一组IO口的值同时读取值?多谢!…

查看全部问答∨

stm8 实现录音功能

如题,我想做一个stm8 实现录音功能 的小玩意,主芯片是STM8S系列,音频文件存放在SD卡中。我想知道怎样将音频通过stm8存储在SD卡,然后播放出来…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved