如何设计基于ARM的旋转编码器采集模块?
扫描二维码
随时随地手机看文章
0 引言
随着工业生产自动化水平的提高,各种传感器的应用也越来越多。旋转编码器作为速度和位移反馈的传感器,主要应用于数控机床、高精度的闭环调速系统、伺服电动机、异步电动机、步进电动机、电梯曳引机、电梯门机乃至机械轴等需要对运动速度和位移信息反馈的自动化控制场合,以保证机械的高精度稳定运转,进而提高生产效率和保障安全运营。
本文针对旋转编码器在工业现场中的应用,基于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,以提高信号传输的稳定性。
3.2 旋转编码器采集部分
旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的抖动,从而引发误计数现象,在这种情况下就不能对波形进行正确计数,本系统通过一个单稳态触发器来消除旋转编码器输出脉冲信号的抖动。图2为旋转编码器采集电路中的一路。
分析电路可知,当旋转编码器正转时,F1输出脉冲序列,当旋转编码器反转时,R1输出脉冲序列闭,电路仿真波形见图3。
3.3 CAN总线通讯部分
LPC1768处理器支持CAN 2.0B规范,兼容IS011898-1标准,基于此,本文选取飞利浦半导体公司生产的PCA82C250芯片作为CAN总线收发器,通讯匹配电阻选取120 ,i1,CAN收发器电路见图4。
3.4 电源部分
LPC1768工作电压为3. 3 V,而CAN收发器及旋转编码器采集电路部分电压为5 V,所以先使用MC33063将输人电压降到5V,供相关电路使用,然后再通过LM1117-3.3V将5V电压降到3.3V,作为处理器工作电压。电源电路见图5。
4 软件设计
系统采用RealView MDK-ARM V4.10为开发平台,以C语言为主要开发语言,程序主要分三个部分:旋转编码器采集部分采用中断方式,通过LPC1768的定时捕获单元来完成对输人脉冲信号的计数工作;CAN通讯部分也采用中断方式监听来自DPU或者其他控制主机传来的命令,然后执行相应的数据传送任务;而主程序则通过一定的时间调度算法,完成旋转编码器转动方向的判断、角速度的计算以及设置相应的指示灯状态、处理CAN通讯过程中出现的异常状况、喂狗等操作。主程序流程图见图6。[!--empirenews.page--]
5 结论
本文设计完成的旋转编码器采集模块,适用于各类工业控制现场,具有较广的应用前景。经实验室初步验证并应用于某工业现场测试,该模块对旋转编码器输人信号处理结果满足用户要求,并且能够可靠地与现场控制系统进行通讯,工作性能稳定,具有很强的抗千扰能力和很高的安全性。