APP下载

基于Beaglebone Black 的绝对式编码器接口电路设计*

2021-03-24郑楚悦赵琛

数字技术与应用 2021年1期
关键词:开发板编码器串口

郑楚悦 赵琛

(国核电站运行服务技术有限公司,上海 200233)

0 引言

近年来,在工业控制系统中,编码器作为一种将运动信号转换为可以用来通讯、传输和储存数字信号的设备,在许多需要测量角度位置、旋转速度等场合得以广泛应用,诸如电机的转速测量、机床位置与起重机位移距离的测量等,这类非高速运动的设备都可用编码器进行速度、转角和位移测量[1-2]。

编码器以工作性质可分为增量型编码器和绝对值编码器。其中增量型编码器是由一个圆盘、电极组成,圆盘边缘有一圈明暗相间的刻度,将转角变化量以周期性电信号转换成计数脉冲的多少来测量,精度低,主要用于要求精度不高的仪器上[3-4]。而针对那些精度要求较高的行业,比如工业控制、精密仪器制造等,通常会选用绝对值编码器,因其启动速度快、位置绝对唯一、抗干扰、无需掉电记忆,在各工业系统领域得以广泛应用[5]。随着自动化控制系统越来越智能化,编码器也趋于小体积、低功耗、高品质方向发展[6]。绝对值编码器选用基于AM3358处理器的Beaglebone Black作为Linux嵌入式开发平台,将系统控制统一在Python语言的开源框架中,把需要测量的位置信息传输给主控制系统,然后通过主控制系统以SSI协议的输出方式发出控制信号。

1 工作原理描述

1.1 绝对值编码器原理及结构

考虑到过程中增量编码器不能记录断电前的位置信息,且部分增量编码器不能判断旋转方向,所以根据实际情况,选择光洋集团koyo trd-na1024nw-2302绝对型编码器,其分辨率为1024,价格比较便宜,该旋转编码器适用于检测角度和位置的场所,如机械、传送设备、电梯和伺服马达等,满足课题要求。绝对值编码器与增量编码器工作原理非常相似,它是一个带有若干个透明和不透明窗口的转动圆盘,用光接收器来收集间断的光束,光脉冲转换成电脉冲后,由电子输出电路进行处理[7],并将电脉冲发送出去,其结构如图1所示。图1表明4个同心圆的绝对型编码器的圆盘结构,可显示16个位置,从里层同心圆至外层同心圆依次对应二进制码高位至低位。图2所示为按格雷码排列,从图中可看出按自然二进制码排列的编码器读出的二进制码信号高低电平跳变次数多,信号间干扰大;按格雷码排列的编码器读出的二进制码信号高低电平跳变次数少,信号间干扰小。码盘输出采用NPN型集电极开路输出,可吸收1 6m A 以上电流,方便通过光耦隔离输出编码信号。绝对编码器码盘输出为格雷码,转换成二进制后供后续处理,其技术参数中给出的二进制位数就是同心圆的个数n,对应的测角分辨率为[8-9]。

1.2 SSI协议输出原理

绝对编码器主要是把需要测量的位置信息传输给主控制系统,然后通过主控制系统来发出控制信号[10]。以前的绝对值编码器大多采用反应速度较快并行输出,在位数不多的情况下可以适用,一旦位数越来越多,则并行输出就不适用了,因为总是出现数据不准确、错误等问题。比如在传输过程中,只要有一根数据线出现问题,就会影响最终传输的数据,从而影响到绝对值编码器的正常工作[11-12]。光洋koyo trd-na1024nw-2302编码器输出为同步串行信号,其绝对值位置由时钟信号触发,位置从最高位(MSB)开始输出与时钟信号同步的串行信号(RS422模式),如图3所示。当不发送数据时,时钟信号和数据位均保持高电平,在时钟信号的第一个下降沿,数据之间传输间隔Tp进行数据保存,从时钟信号上升沿开始,数据信号开始传送。单稳触发时间T m 把数据输出端拉至高电平,当检测到下一个时钟信号将继续发送数据。该编码器时钟和数据采用的是RS422标准,故时钟信号线分CLOCK与/CLOCK两部分,数据线也分DATA和/DATA 两部分。

图1 绝对编码器(自然二进制码)Fig.1 Absolute encoder(natural binary code)

图2 绝对编码器(格雷码)Fig.2 Absolute encoder(gray code)

图3 SSI 通信协议Fig.3 SSI communication protocol

1.3 接口控制模块工作原理

本设计搭载了AM3358处理器的Beaglebone Black开发板来采集绝对值编码器数据, 开发板集成了A R M Cortex-A8内核。Beaglebone Black开发板对伺服电机的转速调节通过向电机电子调速器发出P W M 信号来实现,而PWM信号是通过Beaglebone Black开发板的带宽脉冲调制功能的定时器产生的,在BeagleBone Black开发板的内核中,已包含P W M 驱动程序的源程序,通过人工编译内核即可生成相应的驱动程序文件[13]。系统供电电源集成了L M 2 5 9 6 S 和L M 7 8 M 0 5 两个稳压芯片,可分别为Beaglebone Black开发板、电机提供3.3V电源和12V电源,本文选用的电机为370型直流减速电机,额定电压12V。Beaglebone Black开发板GPIO引脚提供的电流和电压有限并不足以驱动电机转速调节,需通过TB6612驱动模块来驱动控制。koyo trd-na1024nw-2302绝对式编码器与电机共轴等速,当电机旋转时,光栅盘跟着旋转,并输出两路相位相差90°的脉冲信号,Beaglebone Black开发板采集脉冲数除以光栅盘光栅数得到当前伺服电机的转速,接口控制模块工作原理如图4所示。

2 绝对式编码器接口电路设计及编程

2.1 绝对式编码器信号采集编码设计

图4 接口控制模块工作原理框图Fig.4 Working principle block diagram of interface control module

图5 绝对式编码器的解码电路硬件结构框架Fig.5 Hardware architecture of absolute encoder decoding circuit

图6 编码器信号数据采集系统组成框图Fig.6 Block diagram of encoder signal data acquisition system

图7 MAX3160 芯片电路原理图Fig.7 Schematic diagram of MAX3160 chip circuit

由于光洋koyo trd-na1024nw-2302编码器以SSI协议进行数据信号的传输,其同步时钟信号与串行数据信号均为可远传的差分信号,需要在编码器与Be ag le bo ne Black开发板接口电路间加入信号处理电路。绝对式编码器的解码电路硬件结构框架如图5 所示,包括四个部分:(1)绝对式编码器接口;(2)用于减少信号传输通道,增强数据可靠性,进行数据差分转单端处理的绝对式编码器信号调理电路;(3)对编码器输出数据进行分离,转换成位置值和状态信息的编码器解码电路;(4)Beaglebone Black开发板编码器信号输入接口。其中,光电隔离电路能有效解决串入编码器侧的高电压造成的损害。

2.2 编码器信号采集接口电路

编码器数据信号采集的硬件电路主要包括光洋koyo trd-na1024nw-2302编码器、基准编码器与Beaglebone Black开发板等,Beaglebone Black开发板与上位机之间的通信采用USB转TTL的串口模块进行串口信号查看。硬件系统的组成如图6所示。

绝对式编码器有串行和并行两种数据输出方式,Beaglebone Black开发板可以直接采集其输出数据,RS232串口标准作为数据终端设备与数据通信设备进行二进制数据交换接口的技术标准,但与Beaglebone Black开发板的T T L 电平不兼容,需要一个电平转换模块,将标准RS232电平信号转为TTL电平信号,为了降低电路设计和测试的复杂度,选择了高性能多协议的可编程控制芯片MAX3160E,其电路原理图如图7所示。

2.3 接口软件设计

2.3.1 编码器数据采集软件

光洋koyo trd-na1024nw-2302绝对式编码器与Beaglebone Black开发板直接采用串口通信,采用一个完整的UAR T传输的数据帧格式,包括起始位、8 个数据位、校验位和停止位,如图8所示。Beaglebone Black开发板在采集编码器数据时,首先检测起始位,再按设定的波特率9600来逐位接收数据位,直到校验位和停止位接收完毕,一帧数据即传输完成串行至并行的转换。

2.3.2 接口信号软件

接口信号软件设计由两部分组成:一部分是一定周期脉冲型号的产生与绝对型编码器串行输出数据的读取;另一部分为格雷码向二进制的转换。

编码器时钟周期要求在1us~10us之间,本设计选取脉冲周期为8us。Beaglebone Black开发板的晶振频率为6M,脉冲产生和格雷码读取程序如下:

import Adafruit_BBIO.GPIO as GPIO

inputPin=['P8_3','P8_4','P8_5','P8_6','P8_11','P8_12','P8_13','P8_14','P8_15','P8_16']

dec_position=0

pin_state=[1]*10

a=5

from time import sleep

for i in range(0,len(inputPin)):

GPIO.setup(inputPin[i],GPIO.IN)

def read_input():

for j in range(0,len(inputPin)):

pin_state[j]=int(not(bool(inputPin[j])))

print "inputPin[%d] = %s"%(j,inputPin[j])

print "pin_state[%d]= %d"%(j,pin_state[j])

dec_position=pin_state[9]

for k in range(0,8):

dec_position=(dec_position<<1) | ((pin_state[k]) ^(dec_position & 1))

print dec_position

return

while(a):

read_input()

a=a-1

sleep(0.2)

图8 UART 接收器的数据帧格式Fig.8 Data frame format of UART receiver

sleep(0.05)

GPIO.cleanup

格雷码是一种无权码,因而很难用单个代码识别其所代表的数值。其中格雷码至二进制码的程序解码公式为,其中,G为格雷码,B为二进制码,n为编码器码盘同心圈数量,初始最高B n 用0 代替。格雷码可以减少代码在形成和传输过程发生的错误,编码器输出格雷码,然后经过硬件转换成译码显示和二进制码,组成反馈系统。图9为编程读取10 位串行格雷码角度量流程图在启动信号有效期间每个时钟信号的下降沿,顺序读出光洋koyo trdna1024nw-2302编码器10位格雷码角度值,进而再转换成自然二进制码则完成获取轴向转角的过程。

3 试验及分析

图9 编程读取10 位串行格雷码流程图Fig.9 Flow chart of reading 10 bit serial gray code by programming

表1 编码器同轴误差Tab.1 Encoder coaxial error

图10 串口通信波形显示Fig.10 Serial communication waveform display

实验装置主要由370型直流减速电机、电机驱动控制模块、koyo trd-na1024nw-2302绝对式编码器、基准编码器、Beaglebone Black开发板、计算机等组成。根据精密测量仪器设计中的阿贝原则,koyo trd-na1024nw-2302绝对式编码器与基准编码器的保持同一轴线,并与电机共轴等速。为验证编码器信号同轴误差数据,将主轴旋转一周等分为15份,再利用千分尺来测量每个位置的同轴误差,结果如表1所示。

绝对式编码器与基准编码器的误差值以m m 为单位,上表中15组同轴误差值的方差值σ=0.0046mm,误差信号极小,满足绝对式编码器接口电路设计要求。图10为采用Beaglebone Black开发板采集到的编码器信号,通过串口模块接入上位机的通信波形显示,从位置信号也可以看出输出的P W M 波形稳定,该编码器接口电路工作正常。

4 结语

绝对式编码器作为位移传感器在自动化控制领域中广泛应用,发展趋势呈现出高精度、高可靠性特点。本文基于Beaglebone Black开发板的绝对式编码器接口电路设计占用较少的资源,简单实用,功能电路实现良好,有效实现对编码器数据的采集、传输和处理,通过同轴误差和串口波形显示可以判断该设计性能良好,满足各项工作指标要求,对进一步开发自动化设备的精确稳定控制有较高的借鉴价值。

猜你喜欢

开发板编码器串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于FPGA的同步机轴角编码器
Microchip最新推出两款PIC32 Curiosity开发板
基于PRBS检测的8B/IOB编码器设计
浅析单片机开发板的设计与制作
USB接口的多串口数据并行接收方法探索
JESD204B接口协议中的8B10B编码器设计
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
多总线式光电编码器的设计与应用
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板