搜索
bottom↓
回复: 36

用CPLD实现的1x,2x,4x通用正交编码器解码模块。

[复制链接]

出0入0汤圆

发表于 2010-11-18 10:30:31 | 显示全部楼层 |阅读模式
近日学习CPLD,用到光电式正交编码器,看了些网上资料,消化一下。写了这个1x/2x/4x通用模块。模块占用5个宏单元,跟网上提供的基本一样,程序还算清晰。欢迎各位指点:

//==============================================================
// ENCODER
//==============================================================
module Encoder (clk, A, B, pulse, dir, x2, x4);

input     clk, A, B, x2, x4;
output    pulse, dir;

reg        A1, B1, reg_cp, tim_cp, dir, pulse;
wire    change = ({A1, B1} != {A, B});        // 发生状态变化时保持一个时钟周期'1'状态

always @ (posedge clk) begin
    {A1, B1} <= {A, B};        // 一个时钟后保存端口状态
   
    if (change)                // 改变状态时检测方向
        case ({A, B})
            2'b00: begin
                dir <= ({A1, B1} == 2'b01);
                reg_cp = x2 | x4;
            end
            2'b01: begin
                dir <= ({A1, B1} == 2'b11);
                reg_cp = x4;
            end
            2'b11: begin
                dir <= ({A1, B1} == 2'b10);
                reg_cp = 1'b1;
            end
            2'b10: begin
                dir <= ({A1, B1} == 2'b00);
                reg_cp = x4;
            end
        endcase
   
    tim_cp <= change & reg_cp;        // 使脉冲滞后方向一个时钟
    pulse  <= tim_cp;
end

endmodule

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-11-18 10:41:54 | 显示全部楼层

1倍频 (原文件名:1x.jpg)


2倍频 (原文件名:2x.jpg)


4倍频 (原文件名:4x.jpg)

出0入0汤圆

发表于 2010-11-18 10:48:47 | 显示全部楼层
写的很不错啊
编码器有抖动干扰的   也要做处理

出0入0汤圆

 楼主| 发表于 2010-11-18 11:00:53 | 显示全部楼层
在板子上测试过,没问题。板子用光耦隔离,也起到抗干扰作用。同时建议如EPM240等支持PIN施密特输入,设置为施密特输入,效果会好很多。这样程序上基本不用再做抗干扰处理了。

出0入0汤圆

发表于 2010-11-18 11:11:26 | 显示全部楼层
标记一下

出0入9汤圆

发表于 2010-11-18 16:12:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-18 16:28:33 | 显示全部楼层
请教下 1x,2x,4x 是什么意思呢?

出0入0汤圆

 楼主| 发表于 2010-11-18 17:03:10 | 显示全部楼层
1x,2x,4x 指倍频系数。如正常600线的编码器。1x时一圈接收600个脉冲,2x则为1200脉冲,4x为2400脉冲。

出0入0汤圆

发表于 2010-11-18 19:42:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-10 09:09:34 | 显示全部楼层
正交编码解码

出0入0汤圆

发表于 2011-10-10 13:10:10 | 显示全部楼层
楼主你好,我用EP2C8Q208C8芯片,不知道如何设置为施密特输入,请求你的帮助,谢谢!

出0入0汤圆

发表于 2011-10-10 14:28:48 | 显示全部楼层
前面加数字滤波就更好了。

出0入0汤圆

发表于 2011-11-9 10:11:50 | 显示全部楼层
辛苦了。。比较有用的资料

出0入0汤圆

发表于 2011-11-10 21:52:15 | 显示全部楼层

(原文件名:Unnamed.jpg)

效果还不错

出0入0汤圆

发表于 2011-11-11 08:49:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-11 09:16:16 | 显示全部楼层
mak

出0入0汤圆

发表于 2011-11-11 09:21:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-16 18:13:41 | 显示全部楼层
这个很早就做过了,两路信号正交,可以按编码信号得到4倍频,现在是想做到8X和16X

出0入0汤圆

发表于 2011-11-17 13:53:42 | 显示全部楼层
写的很好,值得借鉴,但是貌似没有做误码处理!

出0入0汤圆

 楼主| 发表于 2011-11-22 20:00:20 | 显示全部楼层
4x倍频是在硬件机制上实现的,是完全可靠的。如果做8x或16x只能利用软件倍频,不知道是否可行。

出0入0汤圆

发表于 2011-11-23 06:14:48 | 显示全部楼层
非常实用的资料,期待更高的倍频啊。

出0入4汤圆

发表于 2011-11-28 11:52:15 | 显示全部楼层
非常好啊!!!

出0入0汤圆

发表于 2011-12-19 14:10:54 | 显示全部楼层
是不是可以增加个wire [2:1] error = ({A1, B1} ^ {A, B});来检测下AB出错,如果从AB=00直接跳到AB=11或者AB=01跳到AB=10都报个错,这样在方向判断前再加上if ((change)&&(error!=2'b11)) 是不是更好呢?

出0入0汤圆

发表于 2012-2-7 19:14:37 | 显示全部楼层
楼主,能将2个输入按原来的样子4倍频吗?谢谢

出0入0汤圆

发表于 2012-2-12 15:00:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-12 15:32:51 | 显示全部楼层
mark 学习

出0入0汤圆

发表于 2012-2-13 14:05:34 | 显示全部楼层
mark 学习

出0入0汤圆

发表于 2012-4-12 14:25:08 | 显示全部楼层
学习了,谢谢

出0入0汤圆

发表于 2012-10-5 22:23:25 | 显示全部楼层
好 东西 今天才看到

出0入0汤圆

发表于 2012-10-8 17:29:29 | 显示全部楼层
谢谢
参考一下

出0入0汤圆

发表于 2013-1-2 22:32:22 | 显示全部楼层
记号,以后再看

出0入0汤圆

发表于 2013-1-22 19:08:11 | 显示全部楼层
好东西 标记一下

出0入0汤圆

发表于 2013-1-22 19:45:56 | 显示全部楼层
这个好,正在开发的东西可以参照一下!

出0入0汤圆

发表于 2014-2-13 16:47:46 | 显示全部楼层
你好,我正想要你这个编码器接口模块,QQ292747058

出0入0汤圆

发表于 2018-8-6 00:43:41 | 显示全部楼层
好贴,写得很好,谢谢分享。

出0入0汤圆

发表于 2018-8-6 10:50:45 | 显示全部楼层
清新怡人 发表于 2018-8-6 00:43
好贴,写得很好,谢谢分享。

最喜欢看挖坟贴

出0入0汤圆

发表于 2018-8-8 14:33:03 | 显示全部楼层
不错   谢谢分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表