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所示。
设计过程中使用ICCAVR编译器编写单片机控制程序,可以使用atoi函数将ASCII码格式步数转化为整型数据。
单片机对上位机通信主要是使用两个字节数据发送手轮状态信息和行程开关状态信息。单片机在接收到查询命令后,将两字节状态信息返回给上位机,每次执行步进电机命令后也需要向上位机发送状态信息,将执行结果返回给上位机。其定义如表2所示。
4 结束语
文中基于AVR单片机设计了一套轮胎模具内径测量系统,可以接收电子手轮和上位机信息分时控制多路步进电机并能控制光栅尺读数。
该系统设备经过安装后,选取标准钢板作为测试目标,在垂直方向选定若干个测试点,结果证明其测量误差在2μm以内。然后选取子午线轮胎模具作为测试目标,与人工测量数据进行对比,测量误差在4 μm以内,达到设计要求。