首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
机械测量中旋转编码器与单片机的通用接口
来源:本站整理  作者:佚名  2009-04-03 11:01:56



  上述接口方法是利用了S12单片机的ECT模块的外部输入捕捉/输出比较工作方式。单片机也仅仅使用外部输入捕捉的来处理旋转编码器数据,只要将旋转编码器的A相(或B相)接至外部输入捕捉口IOC1(IOC0~IOC7任意一个都可以),程序如下:

  用PT1(IOC1)通道作为速度脉冲信号输入,ECT模块初始化步骤如下:

  1)设置TIOS寄存器,设置PT1通道为输入;

  2)设置TCTL4寄存器,使得上升沿和下降沿(任何沿)均能得到捕捉;

  3)设置ICOVW_NOVW寄存器,保护脉冲累加器的数据;

  4)置位ICPAR_PA1EN,使能脉冲累加器。设置此寄存器之后,脉冲累加器开始计数;

  5)通过读取PACN1寄存器,即可以获取当前的脉冲累加值。

  初始化程序为:

  void ECT_initial(void) //ECT初始化

  {

  DDRT_DDRT1=0; //置PT1(IOC1)脚为输入

  TIOS_IOS0=0;

  TIOS_IOS1=0; //通道1为输入捕捉

  TCTL4=0b00001101; //通道1为任何沿捕捉

  TSCR1_TEN=1; //计数器1使能

  ICOVW_NOVW1 = 1; //保护

  ICPAR_PA1EN = 1; //脉冲累加器使能

  }

  在每一控制周期开始时,MC9S12DG128读取脉冲累加器中的数值(average[5]),然后与前5个控制周期的脉冲累加器值求和(all_speed)再求平均值,做为当前速度反馈值(speed)。程序流程图如图3所示。

             

                               图3 直流电机测速流程图

  计数速度的测试

  采用以下两种方法对电机测速部分进行测试:

  1)让智能车在赛道上行驶,每20ms将赛车当前速度值通过SCI串口发送到上位机上,并利用串口调试器进行监控。对正好在一圈当中赛车行驶的速度值进行累加求和,再乘以20ms,得到的总行驶距离约为27m,而模拟赛道总长约为26m,两者的相对误差不到4%。这说明,速度传感器测量基本准确。

  2)直流电机空载运行时,改变脉冲捕捉方式,在上升沿、下降沿和任何沿捕捉方式间进行切换。不改变驱动电机占空比设置,理想情况下,单位时间内捕捉的脉冲数满足:上升沿获取下的脉冲数=下降沿获取下的脉冲数=任何沿获取下的脉冲数/2。在脉冲捕捉方式不变的情况下,改变PWM信号占空比(即改变速度给定值),检测的速度值与占空比近似成线性比例关系。以上间接说明脉冲检测的可靠性。


上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:198,320.30000 毫秒