微风 发表于 2014-10-25 00:32:31

使用STC的IAP15测10个增量式编码器的速度

这是很久就有的一些想法,只不过未实践过,大家看一下可行不:
M法测速(记取一个采样周期Tc内旋转编码器发出的脉冲个数M来算出转速n)的公式为:

采样周期Tc可以用一个定时器中断来实现,单片机对外唯一需要做的是捕获脉冲,而捕获脉冲的方法大体有:

(1)定时器的计数器模式,来一个脉冲计一个数(传统的51单片机都有Timer0、Timer1,STC89C52和IAP15F2K61S2均有Timer2,STC12系列没有Timer2。STM32的定时器有一大堆,不过可以直接配置为正交编码模式)。
(2)外部中断(一般都有INT0、INT1,有的有INT2、INT3等),如STC89C52有INT0、INT1,支持下降沿触发和低电平触发。IAPF2K61S2有INT0~4共5路外部中断,其中INT0和INT1支持上升沿或下降沿均可触发方式和仅下降沿触发方式、INT2、INT3和INT4仅支持下降沿触发模式。
(3)PCA (可编程计数器阵列Programmable Counter Array)脉冲捕获(STC12C5A有2路、STC12C56有4路、STC15F2K有3路。STM32的普通定时器即可实现脉冲捕获)。

使用IAP15F2K61S2的一个定时器做时基定时器测速,剩余的2个定时器计数器+5路外部中断+3路PCA=10路编码器测速,再占用10个IO口可以判断编码器旋转方向。其中INT0、INT1和3路PCA是可以上升沿下降沿均捕获,是可以编码器2倍频的。
那么问题来了:
这样,给10个编码器测速,合适么?

xiaobendan 发表于 2014-10-25 10:14:19

编码器测速哪家强?

xiaobendan 发表于 2014-10-25 10:16:06

10个啊,分辨率和转速多少?要是比较高,中断恐怕也忙不过来吧

cqb98 发表于 2014-10-25 10:27:30

delta/t
感觉可行,就是精度的话,取决于t

jumpjet 发表于 2014-10-25 10:45:15

这东西对成本不会太敏感的吧直接上stm32容易很多啊

lcw_swust 发表于 2014-10-25 16:49:30

如果频率不高,可以用普通IO口定时查询。

wxdjack 发表于 2014-10-27 17:21:18

{:curse:}{:curse:}{:curse:}{:curse:}
页: [1]
查看完整版本: 使用STC的IAP15测10个增量式编码器的速度