基于AVR单片机的轮胎模具内径测量系统

时间:2012-09-02来源:网络

步进电机脉冲的产生由定时器1和定时器2实现,ATmega16控制器接收到上位机的命令后,首先获取需要转动的步数,然后根据相应命令打开相应定时器的计数功能。控制程序中用定时器1控制二路脉冲输出,定时器2控制一路脉冲输出,从而完成3路电机的控制。
定时器2使用CTC模式,匹配中断使能。通过匹配中断,在OCR2端口可以输出脉冲,通过设定寄存器OCR2寄存器的值可以改变输山脉冲频率。定时器1使用相位与频率修正模式,在不同串口命令下分别设置ICR1、OCR1A和OCR1B寄存器的值并打开不同的匹配中断,从而可以分别在OC1A和OC1B端口输出匹配脉冲。其输出频率控制和定时器2原理一样,只是还需要改变计数上限值ICR1。由于3路电机不同时运动,因此每次只有一个定时器处于打开状态,其余则需要关闭。
在程序运行中,设置了一个全局变量保存电机运行的步数。在收到上位机的命令后,控制程序首先将该步数写入片内EEPROM中再执行。由于EEPROM数据掉电不丢失,因此系统掉电后复位时可以从EEPROM中取出数据然后执行下一次操作。
3.2 手轮微调控制
手轮的作用主要是实现微调设备找到合适的测量点。电子手轮一共有两路脉冲输出,两路脉冲相位差决定了手轮的旋转方向。手轮的控制采用定时器0,使用计数模式。定时器0没置为CTC模式,上升沿触发,OCR0为1,计数初始值为0,中断使能。当外部上升沿触发时计数到1时触发中断,在中断子程序里面根据手轮状态产生相应的脉冲输出。
在手轮中断子程序中,首先将计数器自动清零等待下一个手轮脉冲。然后判断正反信号和手轮档位状态,ATmega16根据状态信息通过延时方法产生一定数量的脉冲控制步进电机。手轮状态共有Z、Y、X 3个方向,X1、X10、X100 3个档位。若手轮在X档位则在相应端口(该端口同时也是定时器脉冲输出口)输出一定数目的脉冲。改变延时的大小可以改变输出频率,但是由于延时输出脉冲的最大频率决定于晶振,因此输出脉冲受到一定影响。延迟方法产生的脉冲不能精确控制步进电机的步进角度,但是可以用于微调。
手轮的正反信号通过D触发器来判断。将手轮脉冲A作为CLK信号,脉冲B为CP信号,复位端和置位端接高电平。当手轮正转时脉冲A脉冲与脉冲B的相位差为正90度,D触发器输出高电平;若反转A脉冲与B脉冲的相位差为负90度,输出低电平。
3.3 串口模块
上位机和单片机主要采用UART异步通信,收发按字节处理。单片机接收上位机命令时采用UART查询方法实现数据接收。其通信格式为:起始字+控制字节+步数+结束字,数据使用国际通用标准ASCII码格式,如表1所示。

h.JPG


设计过程中使用ICCAVR编译器编写单片机控制程序,可以使用atoi函数将ASCII码格式步数转化为整型数据。

i.JPG


单片机对上位机通信主要是使用两个字节数据发送手轮状态信息和行程开关状态信息。单片机在接收到查询命令后,将两字节状态信息返回给上位机,每次执行步进电机命令后也需要向上位机发送状态信息,将执行结果返回给上位机。其定义如表2所示。

4 结束语
文中基于AVR单片机设计了一套轮胎模具内径测量系统,可以接收电子手轮和上位机信息分时控制多路步进电机并能控制光栅尺读数。
该系统设备经过安装后,选取标准钢板作为测试目标,在垂直方向选定若干个测试点,结果证明其测量误差在2μm以内。然后选取子午线轮胎模具作为测试目标,与人工测量数据进行对比,测量误差在4 μm以内,达到设计要求。

1 2 3

关键词: 测量 系统 模具 轮胎 AVR 单片机 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版