论坛风格切换切换到宽版
  • 10181阅读
  • 27回复

51单片机检测光电旋转编码器每周实际脉冲数 [复制链接]

上一主题 下一主题
离线BG4VEO
发帖
68
只看该作者 20楼 发表于: 2006-10-07
'
没见过ssi接口增量型/
'
噢,可能是我记错了,明天上班翻出来看看。
离线ba1ka
发帖
1044
只看该作者 21楼 发表于: 2006-10-07
太快了用单片机处理不过来,中断后较复杂的服务处理就会影响整体的速度.正如bg4xcr说的快速的码盘处理器是用用硬件做的.简单的可以用ttl搭,复杂的路数多的用cpld.可以处理上万线的码盘,如果加上4倍频,相当于4万线的码盘.这类在运动控制器中的应用还只是一般水平.
离线ba1ka
发帖
1044
只看该作者 22楼 发表于: 2006-10-07
如果只是业余玩玩要求不是太高,可以用一片小资源的mcu 专门处理码盘,由主mcu发硬中断与小mcu并行交换数据,这样就快多了.小mcu只做计数处理,没几条指令,把码盘信号a或b做成沿触发中断,并设为最高优先级.
离线BG4XCR
发帖
33381
只看该作者 23楼 发表于: 2006-10-07
最好最廉价的方案。我最多在一个系统上用过4个mcu做协处理器。
离线ba1ka
发帖
1044
只看该作者 24楼 发表于: 2006-10-07
高!可我的领导总是接受不来我这种对于多芯片分布嵌入的思路,他对mcu的认识还是过去cpu的概念,居然还为mcu设计个总线,恨不得一个mcu干所有的事.没办法只能不理他各干个的.
离线BG4XCR
发帖
33381
只看该作者 25楼 发表于: 2006-10-07
其实多mcu用的才是真正的总线,类似现在的计算机,其实现在的计算机每个设备都是带cpu的,软设备很少。
在线BG4UVR
发帖
11288
只看该作者 26楼 发表于: 2006-10-10
问题在于,即使你使用两个硬件中断来分别检测A/B信号,一般的MCU(如51系列)也只能处理A、B信号的下沿。而这种处理方式,本身就造成了编码器在1/4 个 脉冲 周期内抖动时的误计数。

消除这种误计数的唯一方法,就是分别检测A、B信号的上沿和下沿。无奈51CPU用中断方式看来是不可以了,用软件方式,资源开销实在太大。看来要从根本上解决这种测量误差,只能通过使用硬件电路或者更高档次的MCU。

前些天一直在搞这东西。通过几天的研究,得出的结论是:

1、某些廉价的编码器,在特定的情况下,存在信号边沿抖动问题(即使轴未转动)。
2、在所有其他硬件(包括机械部分)和软件完全不变的情况下,改用优质编码器,没有这种不稳定问题。
3、此种下降沿抖动,是一种非稳定状态。即还没发现出现此抖动状态所需要的特定原因。
4、因为是不稳定状态,依我现在能力,尚无法用合适的方法对此种问题进行准确的定量测量。
5、可以确定此问题不是电磁干扰所引起的。

(初步认为,这个问题的产生,和厂商在编码器内部使用的抗抖动电路设计及光栅部分机械部件的精度有关。)
离线ba1ka
发帖
1044
只看该作者 27楼 发表于: 2006-10-11
要求高买好的,如果是用于角位移测量当然应该买好的。