网站首页  词典首页

请输入您要查询的论文:

 

标题 基于LPC2136单片机的光电编码仿真接口设计
范文 郑均辉++甘泉
摘 要: 在低速状态下经LPC2136普通单片机利用UART通信技术,通过对光电编码器的正交信号分析,来模拟正交编码器的硬件设计与软件设计,实现对电机转向及精确定位的数字化显示,为编码器应用在低速的自动智能控制领域提供了一个很好的解决方案。测试证实该设计对光电编码器的计数与标准记测器的计数值在低速旋转条件下非常准确。
关键词: 光电编码; LPC2136; 接口设计; UART通信技术
中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2015)10?0042?03
0 引 言
在工业控制精度要求相对较高的领域,比如发动机的转速测量控制等自动化控制应用中,通常需要用正交编码器对各种位移、速度、角度等进行精确测量[1]。目前,在一些高级ARM处理器中,如Cortex?M3内核的STM32F系列、周立功的LM3S601/608微控制器[2]等已经集成了编码器接口。但是在实际工作中出于成本的考虑,需要使用价格比较低的微控制器,而它们的缺陷是没有编码器接口,因此就需要通过常规的控制器来仿真编码器接口以满足应用需求。
本文以NXP公司的LPC2136处理器为对象,研究其在低速转动中模拟光电编码器接口显示编码器正反转,记录转动圈数,对其转动定位进行标注,然后完成对JVH?10BM?E5光电编码器的精确控制,将获得的数据进行分析处理后通过GPIO模拟SPI方式发送到7段码显示,得到准确直观的数字化显示结果,同时通过UART口把数据送到PC在串口助手显示。
1 光电编码器简介
编码器(Encoder)作为传感产品的一大重要分支[3],能将信号或数据编制并转换为可用以通信、传输和存储之形式的设备。编码器最重要的应用就是定位,目前其已经越来越广泛地被应用于各种工控场合[4]。如机床工具、航空航天、铁道交通、新能源及港口机械等行业,都在使用着大量的编码器产品[5]。而光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔[6]。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。光电编码器的正反转判断信号如图1所示。A、B两相信号是相差[14]周期,如果A提前[B 14]周期则表明顺时针旋转,若B提前[A 14]周期则表明逆时针旋转。
2 硬件系统设计
LPC2136微控制器是一个基于支持实时仿真和嵌入式跟踪的16/32 位ARM7TDMI?S CPU,带有256 KB嵌入的高速FLASH存储器。其内部具有2个32位可编程定时/计数器,均具有4路捕获、4路比较匹配并输出电路。定时器对外设时钟(Pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其他动作(输出高/底电平、反转或者无动作)。4个捕获输入,用于在输入信号发生跳变时捕获定时器值并产生中断。

图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 硬件系统原理框架
设计使用12 MHz外部晶振,通过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等3条线来发送数据给74HC595使其不断刷新,刷新频率小于24 Hz的时候会使人感觉发光闪烁,因此,刷新每个数码管的时间间隔不能大于10 ms,刷新频率越高显示亮度越大。
UART是一种通用串行数据总线,一般使用3条线,GND、RxD和TxD用于异步通信。该总线双向通信,可以实现全双工传输和接收。在本次嵌入式设计中,UART0用来与PC进行通信,波特率设为9 600 b/s,8个数据位,1个停止位。UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。


3 软件系统设计
设计使用ADS1.2开发环境,EasyJtag在线调试下载工具,使用串口助手来接收LPC2136发送过来的编码器数据。首先对LPC2136进行初始化,配置I/O口P0.17、P0.18引脚为数据输入, 配置UART0波特率为9 600 b/s,采用查询方式来获取接收或发送完成时状态。定时器1的P0.10为下降沿捕获端口。模拟SPI时定义P0.2为CLK时钟信号,P0.3为DATA数据信号,发送1 B数据循环8次,P0.4 LATCH锁存信号,等接收到8位数据后通过锁存信号不断复位或置位进行位接收字节接收发送,通过不断扫描来点亮数码管。在使用I/O模拟SPI时序发送数据时需要一定的时钟周期来延时,由于数码管动态显示需要不断刷新,故延时函数需调用点亮数码管的语句,否则,多处使用延时函数数码管就会产生闪烁。软件设计流程如图3所示。
程序初始化之后开在捕获中断程序中设置变量flag_int = 0xaa,在主函数不断循环当判断到flag_int为0xaa后来判断P0.10的电平即正交编码器B信号的输出电平,如果为高,则编码器顺时针旋转,编码器位置计数(程序中使用变量count)值加1;如果P0.10的电平为低,则编码器逆时针旋转,编码器位置计数值减1。由于使用的光电编码器旋转一周计数值为100,故在count=100时,需对count清零,同时对光电编码器的旋转圈数加1。

图3 MCU主流程图
正交编码器低速仿真接口设计的主要算法如下。
void __irq Timer1_CapInt (void) //下降沿捕获中断函数
{
T1IR = 1 << 4; //清除CAP1.0中断标志
flag_int=0xaa;
VICVectAddr = 0x00; // 向量中断处理结束
}
if(flag_int==0xaa)
//判断正反转及对光电编码器的转动角度计数
{
if(((IO0PIN&0x00000400)==0x00000400))
//P0.10为高正转
{
flag_int=0x00;
count++; //记录转动的位置
if(count==0x65) //360°记100个数
count=0;
UART0_SendByte (count); //串口助手显示
}
else if(((IO0PIN&0x00000200)==0x00000000))
{
flag_int=0x00;
count??;
if(count==0xff)
count=0x64;
UART0_SendByte (count);
}
}
If(count==0x64) //输出编码器Z轴信号即编码器旋转圈数
{
Encoder_Cycle ++;
UART0_SendByte(Encoder_Cycle);
}
4 结 语
本文介绍了编码器的工作原理、LPC2136 MCU的部分外设功能以及在低速状态下如何通过普通单片机来模拟正交编码器接口的硬件设计与软件设计的流程。通过单片机来模拟正交编码器的设计为编码器应用在低速的自动智能控制领域提供了一个很好的解决方案。把编码器信号同时输入到创思杰ZN96系列智能记测器进行对比测试,证实本设计对光电编码器的计数与标准记测器计数值在低速旋转条件下非常准确。由于系统没有对实际应用中的各种机械干扰信号进行滤波,因此就需要在工业应用中进一步增加硬件滤波或者软件滤波消除误差。同时,如何在滤波成本与滤波性能之间取得较好的性价比,也需要进一步探索研究。
参考文献
[1] 蔡尚峰.自动控制理论[M].北京:机械工业出版社,1980.
[2] 贺玲玲.一种用旋转电子编码器检测绝对角度位置的方法与实现[J].重庆工商大学学报:自然科学版,2009,26(5):472?476.
[3] 王明顺,沈谋全.虚拟编码器设计与转速测量[J].仪器仪表学报,2008,29(6):1300?1305.
[4] 权超健,刘献礼.光电编码器输出信号自动调试技术研究[J].测控技术,2014,33(3):38?42.
[5] 周化仁,潘学盈,王宗信.检测与转换技术[M].北京:中国矿业大学出版社,1989.
[6] 谢剑英.微型计算机控制技术[M].北京:国防工业出版社, 1985.
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 23:54:25