APP下载

基于ARM的低速光电编码器仿真接口设计*

2015-12-16郑均辉王启明

微处理机 2015年4期
关键词:数码管编码器信号

郑均辉,王启明

(平顶山学院计算机科学与技术学院,平顶山467000)

基于ARM的低速光电编码器仿真接口设计*

郑均辉,王启明

(平顶山学院计算机科学与技术学院,平顶山467000)

编码器可以把角位移,直线位移等机械信号转换成电信号,它主要用来侦测机械运动的速度、位置、角度、距离、计数等。以NXP的LPC2136 ARM处理器为核心,通过对光电编码器的正交信号分析,利用UART通信技术实现对电机转向及精确定位的数字化显示,为编码器应用在低速的自动智能控制领域提供了一个很好的解决方案。测试证实本设计对光电编码器的计数与标准记测器的计数值在低速旋转条件下非常准确。

编码器;ARM处理器;信号分析;UART通信;低速智能控制;电机控制

1 引 言

在工业控制领域通常需要用正交编码器对各种角度、速度、位移等进行精确测量[1]。目前,在一些高级ARM处理器中已经集成了编码器接口[2],如使用Cortex-M3内核的STM32F系列、周立功的LM3S601/608微控制器等[3]。但是在实际控制中为了节约成本,需要使用价格比较低的微控制器,而这些却没有编码器接口,因此就需要通过普通的控制器来仿真编码器接口以满足应用需求。

在此主要研究NXP(恩智普)公司的LPC2136处理器在低速转动中模拟光电编码器接口显示编码器正反转,并且对其转动定位进行标注,记录转动圈数。重点介绍如何对编码器进行精确控制,并对获得的数据进行分析处理,得到准确直观的数字化显示结果,把数据通过GPIO模拟SPI方式发送到七段码显示,同时通过UART口把数据送到PC在串口助手显示。这种技术可应用在工业控制精度要求相对较高的地方,比如发动机的转速测量控制、应用在轮胎平衡机上准确定位轮胎的不平衡点、煤矿架空乘人装置准确定位出事地点等自动化控制应用中。

2 光电编码器

编码器(encoder)作为传感产品的一大重要分支,能将信号或数据编制并转换为可用以通信、传输和存储之形式的设备[4]。编码器最重要的应用就是定位[5],目前其已经越来越广泛地被应用于各种工控场合。如机床工具、航空航天、铁道交通、新能源及港口机械等行业,都在使用着大量的编码器产品[6]。

光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成[7]。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔[8]。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。光电编码器的正反转判断信号如图1所示。A、B两相信号是相差1/4周期,如果A提前B1/4周期则表明顺时针旋转,若B提前A1/4周期则表明逆时针旋转。

图1 光电编码器信号示意图

3 系统设计与实现

3.1 硬件系统接口设计

采用型号为JVH-10BM-E5的光电编码器,有A、B、Z三条信号线,在它内部光栅盘共有100个栅格,即每旋转3.6°就能发出一个沿变信号。硬件电路中使用了LPC2136中的P0.16、P0.17、P0.18引脚分别连接光电编码器的信号线A、B、Z。使用其GPIO口P0.2、P0.3、P0.4来模拟SPI总线对数码管的数据传输显示,各个数码管之间共阴极显示,通过P0.6-P0.13控制数码管段位,用74HC595模拟SPI来选通控制哪一个显示。硬件系统原理如图2所示。

图2 硬件系统原理框架

3.2 硬件系统原理

LPC2136微控制器是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S CPU,带有256kB嵌入式高速Flash存储器。其内部具有2个32位可编程定时/计数器,均具有4路捕获、4路比较匹配并输出电路。定时器对外设时钟(Pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其他动作(输出高/底电平、反转或者无动作)。4个捕获输入,用于在输入信号发生跳变时捕获定时器值并产生中断。

设计使用12MHz外部晶振,通过LPC2136定时器1的捕获功能来获取光电编码器信号A、Z的信号,通过配置P0.10的CAP1.0捕获A信号的下降沿从而产生中断。光电编码器在正向旋转时,信号A的波形比信号B的波形提前90°。通过对A、B信号序列研究发现,当在信号A下降沿到来那一刻,如果信号B是高电平,则能判断光电编码器是在顺时针旋转,反之,则能判断光电编码器是逆时针旋转。因此,把LPC2136的P0.17设置成GPIO的输入模式连接光电编码器的信号B端,通过检测信号A下降沿产生中断的那一刻信号B的高低电平就能判断出编码器的正反转,通过4个数码管与上位机同步显示。

数码管显示时使用SPI接口的串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI等三条线来发送数据给74HC595使其不断刷新,刷新频率小于24Hz的时候会使人感觉发光闪烁,因此,刷新每个数码管的时间间隔不能大于10ms,刷新频率越高显示亮度越大。

UART是一种通用串行数据总线,一般使用三条线,GND、RxD和TxD用于异步通信。该总线双向通信,可以实现全双工传输和接收。在本次嵌入式设计中,UART0用来与PC进行通信,波特率设为9600bps,8个数据位,1个停止位。UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。

3.3 软件系统设计

软件设计流程如图3所示。

图3 MCU主流程

设计使用ADS1.2开发环境,EasyJtag在线调试下载工具,使用串口助手来接收LPC2136发送过来的编码器数据。首先对LPC2136进行初始化,配置IO口P0.17、P0.18引脚为数据输入,配置UART0波特率为9600bps,采用查询方式来获取接收或发送完成时状态。定时器1的P0.10为下降沿捕获端口。模拟SPI时定义P0.2为CLK时钟信号,P0.3为DATA数据信号,发送一字节数据循环8次,P0.4 LATCH锁存信号,等接收到8位数据后通过锁存信号不断复位或置位进行位接收字节接收发送,通过不断扫描来点亮数码管。在使用IO模拟SPI时序发送数据时需要一定的时钟周期来延时,由于数码管动态显示需要不断刷新,故延时函数需调用点亮数码管的语句,否则,多处使用延时函数数码管就会产生闪烁。

程序初始化之后开始在捕获中断程序中设置变量flag_int=0xaa,主函数不断循环,当判断到flag_ int为0xaa后,来判断P0.10的电平即正交编码器B信号的输出电平,如果为高,则编码器顺时针旋转,编码器位置计数(程序中使用变量count)值加1;如果P0.10的电平为低,则编码器逆时针旋转,编码器位置计数值减1。由于使用的光电编码器旋转一周计数值为100,故在count=100时,需对count清零,同时对光电编码器的旋转圈数加1。

正交编码器低速仿真接口设计的主要算法如下。

4 结束语

详细介绍了编码器的工作原理、LPC2136 MCU的部分外设功能以及在低速状态下如何通过普通单片机来模拟正交编码器接口的硬件设计与软件设计流程。通过单片机来模拟正交编码器的设计为编码器大范围地应用在低速自动智能控制领域提供了一个很好的解决方案。在测试过程中,把编码器信号同时输入到创思杰ZN96系列智能记测器进行对比,证实本设计对光电编码器的计数与标准记测器计数值在低速旋转条件下非常准确。由于系统没有对实际应用中的各种机械干扰信号进行滤波,故在实际应用中必定受机械振动干扰,产生较多的毛刺干扰信号可能使正交编码器仿真接口出现部分误差,因此就需要在工业应用中进一步增加硬件滤波或者软件滤波消除误差。同时,如何在滤波成本与滤波性能之间取得较好的性价比,也需要进一步探索研究。

[1] 贺玲玲.一种用旋转电子编码器检测绝对角度位置的方法与实现[J].重庆工商大学学报(自然科学版),2009,26(5):472-476.He Lingling.Method of electronic rotary encoder detects the absolute angular position and implementation[J].Chongqing Technology and Business University(Natural Science),2009,26(5):472-476.

[2] 王明顺,沈谋全.虚拟编码器设计与转速测量[J].仪器仪表学报,2008,29(6):1300-1305. Wang Mingshun,Shen Mouquan.Virtual encoder design and speedmeasurement[J].JournalofScientific Instrument,2008,29(6):1300-1305.

[3] 蔡尚峰.自动控制理论[M].北京:机械工业出版社,1980.Cai Shangfeng.Theory of automatic control[M].Beijing:Mechanical Industry Press,1980.

[4] 权超健,刘献礼.光电编码器输出信号自动调试技术研究[J].测控技术,2014,33(3):38-42.Quan Chaojian,Liu Xianli.Optical encoder output signal automatic debugging technology research[J].measurement and control technology,2014,33(3):38-42.

[5] 王裕琛.译码器编码器数字选择器电子开关电源分册[M].北京:科学技术文献出版社,2006.Wang Yuchen.Decoder encoder digital electronic switching power supply selector[M].Beijing:Science Press,2006.

[6] 王淑红.测控电路与器件[M].北京:清华大学出版社,2006.Wang Shuhong.Devices of measurement and control circuits[M].Beijing:Tsinghua University Press,2006.

[7] 周化仁,潘学盈,王宗信.检测与转换技术[M].北京:中国矿业大学出版社,1989.Zhou Huaren,Pan Xueying,Wang zongxin.Detection and conversiontechnology[M].Beijing:ChinaMining University Press,1989.

[8] 谢剑英.微型计算机控制技术[M].北京:国防工业出版社,1985.Xie Jianying.Microcomputer control technology[M].Beijing:National Defense Industry Press,1985.

Design on Low Speed Photoelectric Encoder Simulation Interface Base on ARM

Zheng Junhui,Wang Qiming
(College of Computer Science and Technology,Pingdingshan University,Pingdingshan 467002,China)

Angular displacement,linear displacement and other mechanical signals can be translated into electrical signals by encoder which is mainly used to detect the speed of mechanical motion,position,angle,distance,count,etc.The paper analyzes the quadrature signal of optical encoder,using LPC2136 ARM MCU of NXP semiconductors as the core and UART communication technology to realize the motor steering and precise positioning digital display,and provides a good solution for the encoder in the field of low-speed automatic intelligent control.The test results show that the count values of the photoelectric encoder counts and standard chronograph in the conditions of low-speed rotation are extremely exact.

Encoder;ARM processor;Signal analysis;UART communication;Low-speed intelligent control;Motor control

10.3969/j.issn.1002-2279.2015.04.022

TP391.8

A

1002-2279(2015)04-0085-04

河南省科技攻关基金(122102210258)

郑均辉(1981-),男,四川省叙永县人,讲师,硕士研究生,主研方向:单片机开发,人工智能等。

2015-01-04

猜你喜欢

数码管编码器信号
信号
完形填空二则
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
基于FPGA的同步机轴角编码器
基于FPGA的多功能信号发生器的设计
基于PRBS检测的8B/IOB编码器设计
基于LabVIEW的力加载信号采集与PID控制