首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
可测量脉冲宽度的微控制器串行端口
来源:本站整理  作者:佚名  2011-04-19 08:22:32



     很多工业与 仪表 系统都需要测量脉冲输入的持续时间,如转速 传感器 、外部系统的门控与选通脉冲,以及PWM(脉冲宽度调制)输入的频率等。设计者是采用片上 定时器 和边沿驱动的中断。但是,如果这些元件不可用,可以用片上的串行同步 接收器 做这类测量。

  可以根据需要的时序精度,设定串行接收器的波特率。接收器每8 bit后中断 微控制器 。可以在应用程序中插入脉冲宽度采集例程,用于读取ISR(中断服务例程)接收到的字节。它会统计和累加接收到的0和1字节,以测量出进入脉冲的持续时间(图1)。


  算法测量a的是两个连续上升沿之间的持续时间。当微控制器收到一个既不是0xff也不是0x00的字节时,就检测到了一个上升沿或下降沿。如果一个字节小于0x80H (100 000b),则该字节表示一个上升沿。如果字节等于或大于该值,则该字节表示一个下降沿。

  前上升沿将位 计数器 重置为上升沿字节中拖尾1的个数,方法是将向右移位。位计数器在每个字节来到时加8,也包括标志下降沿的那个字节。当计数器接收到后上升沿(由下一个上升沿字节标志,它大于0x80H但小于00H)时,它再次统计该字节中领先0的个数,并将此数加到累加位计数器上。此时的累加位计数与脉冲链的时间周期相关,其因数等于波特率。

  图2表示一个200Hz的脉冲链,两个上升沿之间的时间为5ms。波特率为256kbaud。在一个测量周期内,假设前上升沿的标志为 0011 1111b。微控制器将其向右移位,统计拖尾1的数目,位计数器初始化为6。这个计数对应的时间约为23.43 μs。


  接下来,上升沿字节前的每个字节都使位计数器加8。简单计算表明,共有159字节,即 1272 位。此时,计算的总位数为 1278 位,包括在第一个上升沿字节中收到的6个1。

  现在,脉冲链遇到了拖尾的上升沿字节,其值为0011 1111b。做这个计数时,需要将0左移,统计为两个位。两上升沿之间的总位数就是1280bit。在256 kbaud速率下,这个数字精确地对应于5 ms或200 Hz。

  可以根据自己的应用需求,对这种位计数概念作修改。如果只需要测量低周期的脉冲,需要探测一个下降沿,并累计位数,直到遇见一个上升沿。可以将这种概念用于读取进入的PWM信号,方法是读取一个已知进入脉冲频率的高周期。

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:120,328.10000 毫秒