可测量脉冲宽度的微控制器串行端口

2012-08-04 09:04:48来源: 21ic

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

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

图1

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

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

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

图2

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

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

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

关键字:测量脉冲  微控制器  串行端口

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0804/article_5598.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
测量脉冲
微控制器
串行端口

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved