首页 上一页 1 2 下一页 尾页

请教增量编码器丢码问题 点击:3966 | 回复:34



gdblessu

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-17 11:18:00
楼主
请教各位大虾,我用c51检测增量编码器为什么总会出现丢脉冲的现象



gdblessu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-19 13:43:00
21楼
to 笨鸟慢飞:
   240Khz是什么意思,“另外會產生丟脈衝還有一問題連做編碼器廠家都不清楚”你的意思是编码器本身问题,我的是三个omron全新的应该不是此问题。另外你说的抖动倒是有可能因为我是用手转动,你在应用的时候有没有类似的问题,你是怎样实现计数的呢?

笨鳥慢飛

  • 精华:3帖
  • 求助:3帖
  • 帖子:15帖 | 2548回
  • 年度积分:0
  • 历史总积分:4928
  • 注册:2005年10月16日
发表于:2006-07-19 14:30:00
22楼
編碼器沒有問題 而是應用的人有問題 銷售的人有問題 他們不懂
我也做控制器 也做編碼器 都是自行開發 市售的產品有些特性是不利於自有產品 因此針對某些配套 也會自行開發 像IC等
240Khz 是指編碼器訊號的回受
有些事情我不能說太多 畢竟這是我賴以維生 關鍵地方已經幫你點出來

gdblessu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-19 15:56:00
23楼
to 笨鸟慢飞:
  “編碼器訊號的回受”太专业,不太明白,麻烦能不能解释一下

笨鳥慢飛

  • 精华:3帖
  • 求助:3帖
  • 帖子:15帖 | 2548回
  • 年度积分:0
  • 历史总积分:4928
  • 注册:2005年10月16日
发表于:2006-07-19 16:28:00
24楼
你給我電話 021-62618187 蔡先生

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2006-07-19 17:52:00
25楼
既然计数的误差不是很大,应该是可以正确接收大部分的脉冲,那么,理论计算出来的执行周期也没有什么问题,不过,实际上的东西通常不是严格按照理论出现的。但是在单片机以外的部分,信号的变形A、B脉冲的相位偏差,都可能是在低速无影响而高速出问题的地方。

李劲松

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 448回
  • 年度积分:0
  • 历史总积分:585
  • 注册:2005年12月11日
发表于:2006-07-19 23:09:00
26楼
void int0() interrupt 0 using 1
{
  if(P1_7==1) //B相接P1_7用来判断方向
     gCounterA++;
  else
     gCounterA--;
设gCounterA为单字节数,翻译为汇编如下:
int0_interrupt:
  JNB P1.7 DEC_PROG
  INC gCounterA
  RETI
DEC_PROG:
  DEC gCounterA
  REIT
指令执行时间是4微秒,没有问题。
但你的程序不够完整,因为,你如何看到计数值的?还有,单字节的变量计数范围只有0-255,也就是你转了1.275圈的整数倍以后,计数值从0开始计起,你是如何知道计数值只有900多的?
你好像是在作试验。
以我的一点经验和认识看,如果你想把这个方案商品化,你的这个方法行不通。用单片机而不用计数器的经典方法是用电路将正交方波变换为C路和D路双脉冲,正转C输出脉冲,D为固定电平,反转C输出固定电平,D输出脉冲,C\D脉冲接P3.4,P3,5 ,2个定时器设置为计数器来计数的,程序中再加一些处理即可以读出计数值。这是批量生产的产品用的成熟方案

gdblessu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-20 11:18:00
27楼
我用的是双字节变量计数,计数值可以从变量观察窗口观察。你的方案不错,但我要用到三个编码器,只能用中断,现在问题有可能是估算有问题,我估算手转10r/s,我现在怀疑实际手转要远远高于这个值,不知各位对手转速度有什么概念

李劲松

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 448回
  • 年度积分:0
  • 历史总积分:585
  • 注册:2005年12月11日
发表于:2006-07-20 22:50:00
28楼
"双字节变量计数"
最基本的代码量如下:
int0_interrupt:
  PUSH ACC
  PUSH PSW
  JNB P1.7 DEC_PROG
  MOV A,gCounterA_L
  ADD A,#1
  MOV gCounterA_L,A
  MOV A,gCounterA_H
  ADDC A,#0
  MOV gCounterA_H,A
  POP PSW
  POP ACC
  RETI
DEC_PROG:
  CLR C
  MOV A,gCounterA_L
  SUBB A,#1
  MOV gCounterA_L,A
  MOV A,gCounterA_H
  SUBB A,#0
  MOV gCounter_H,A
  POP PSW
  POP ACC
  REIT
包括AJMP int0_interrupt在内,最大共20个机器周期,才10微秒。如果你用TIMER来扩展中断,最糟糕的情况是三个编码器方波跳变几乎同时发生,而CPU只有一个,中断只能顺序响应,CPU要在任一个轴的下一个跳变来的时候处理完三个中断。所以,中断处理时间最少=10+0.5+10+0.5+10=31.5微秒。理论上最大脉冲频率=30K,仍然支持151转/秒的速度。
以上只是理论分析,具体还要看你的中断程序如何编了,还有没有其他事情要做,如果你想要对时间控制准确,最好用汇编来编中断,编程偏重速度而不是代码长度。
几个问题,你能确定200线的编码器而且还不四倍频,能满足分辨率要求吗?对于长线传输引起的信号反射、引入的杂讯干扰你有很好的处理了吗?朝一个方向的运转超过了327转时UINT型变量溢出处理要在中断中进行的话,所支持的最大转速至少要除以3,=51转/秒。
如果客户要求分辨率提高一个数量级,那你……冷汗如雨下!
如果你试验研究一下,那倒没什么,顶多不成功,要是作商业化的产品,该方案还是舍弃罢!

gdblessu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-21 13:57:00
29楼
我用的是51系列的55WD,有三个中断,没有用到timer,327转溢出的问题也以解决,不过请问关于长线传输引起的信号反射,引入的杂讯你是怎么处理的

李劲松

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 448回
  • 年度积分:0
  • 历史总积分:585
  • 注册:2005年12月11日
发表于:2006-07-21 22:55:00
30楼
对于单端的编码器,接法参照如下:那里有图片。不同的是那个信号给驱动器,这个给单片机。
http://bbs.gongkong.com/detail.asp?id=317670
对于差分信号,采用26C32。匹配电阻为120左右,另在26C32两输入脚分别加一个5K上拉和下拉。
你的转速上去了吗?

gdblessu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2005年9月10日
发表于:2006-07-26 17:38:00
31楼
谢谢,现在在等片子来了测试一下,我估计是转速太快导致

kds

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 421回
  • 年度积分:0
  • 历史总积分:552
  • 注册:2006年3月09日
发表于:2006-07-31 12:26:00
32楼
第一次发现这种编码器技术方案,为什么不用硬件计数呢?

zdming

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 15回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2004年9月28日
发表于:2006-07-31 16:56:00
33楼
我的方法一定要试一下,然后告诉我结果。
A、B向脉冲对地各加一个瓷片103电容,如何?

风清扬西

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 740回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-07-31 19:15:00
34楼
你先用一台标准的计数器来记一下啊,如果正确,那就找你软件毛病把。

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页