new_friend 发表于 2007-10-27 10:22:55

CPLD应用:光栅旋转编码器的4倍频解码

CPLD应用:增量式光栅旋转编码器的4倍频解码

刚学了几天的CPLD,上传我的第一个应用,不知道实际工作情况如何,希望高手指点指点,谢谢

如果CLK时钟频率为25Mhz,则至少可以对输出频率2.5Mhz以下增量式光栅旋转编码器的进行4倍频解码

概念如下:

增量式光栅旋转编码器分辨率:2500p/r (常用伺服系统的编码器)
按工作时最大的输出频率为2.5Mhz计算,编码器可以工作到60000r/m,当然这样的旋转速度实际上是很难达到的,实际上的常用的伺服电机最大工作到5000r/m

CLK:倍频用时钟频率
A:编码器A相
B:编码器B相

CP:解码后的脉冲
DIR:旋转方向

仿真图片如下:
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_178480.PNG


Verilog hdl代码:

module decoder(CLK, A, B, CP, DIR);
        input CLK;
        input A;
        input B;
        output CP;
        output DIR;
       
        reg CP;
        reg DIR;
       
        wire a_xor_b;
        reg a_xor_b_temp;
        reg a_xor_b_counter;
       

        xor (a_xor_b, A, B);       
       
        always @(posedge CLK)
                begin               
                if(a_xor_b_temp != a_xor_b)
                        begin
                        CP = 1'b1;
                        a_xor_b_temp = a_xor_b;                       
                        a_xor_b_counter = 4'b0000;
                        end
                else
                        begin
                        a_xor_b_counter = a_xor_b_counter + 4'b0001;
                        if(a_xor_b_counter >= 4'b0010)               // 根据实际应用,可以改变a_xor_b_counter上限值来改变输出脉宽
                                begin
                                CP = 1'b0;
                                end                               
                        end
                end
       
        always @(posedge A) begin
                DIR = ~B;
        end

endmodule

armok 发表于 2007-10-27 11:17:55

是用什么仿真的? 晕,不会又是 proteus 吧,这东东想抛开也有点不容易呢。。

ilymy 发表于 2007-10-27 11:29:03

老大草木皆兵
proteus 还没这本事

new_friend 发表于 2007-10-27 11:30:29

用的是ALTERA的EPM240,开发环境用QuartusII,里面自带仿真的,但不能仿真Verilog HDL里的时延等等,那样需要用到第3方工具,ModelSim仿真对此很好,我正在下载modelsim,等好了后,再上些照片

armok 发表于 2007-10-27 11:35:17

new_friend , ilymy,

两位觉得有什么方法能超过 proteus 仿真? 如果可行的话,能否帮忙编写一个新手入门教程? 呵呵,我们可以成立一个专门的仿真讨论区,两位帮忙担任版主如何?

这样我们抵制 proteus 的行动就能坚持下去 :)

如果 proteus 是没有办法替代的,那可能我要妥协了。 ./emotion/em147.gif

machao 发表于 2007-10-27 11:52:42

阿莫,现在的仿真软件各自都有自己的特点和针对的目标,否则就不能在市场中生存的。

更专业的,功能强的,价格也高。而面向一般系统的,价格也就便宜点。就如同8位单片机一样,市场上有那么多的不同厂家的芯片,点亮一个LED肯定都行,但在一些特殊的地方,会不同的,各有各的长处,否则早就不存在了。以前,大家都只知道51,现在市场也细分了,随着工程技术人员水平的提高,会根据自己的需要,挑选适合自己使用的产品。

ilymy 发表于 2007-10-27 11:53:06

版主...我的水平还差的远

对于单片机,由于软件仿真与实际情况相差太多,所以很多人都不采用
对于模拟电路,我倒是推荐用软件仿真,确实很方便,而且也安全(相对于数字电路)
最好的一点是元件的参数调整很容易,而数字电路元件参数一般很少需要调整

仿真模拟电路有很多软件,这个就不多说了,网上很多的

armok 发表于 2007-10-27 13:28:54

【5楼】 machao ,

呵呵,我不是那么容易妥协的 :)proteus 的律师威胁过要关闭我们的网站,不是没有办法是不会向他们妥协。 当某一天我们成为国内最大的综合电子社区时, proteus 就会知道后悔了 :)

ilymy 能说说MCU仿真,及模拟仿真你推荐的软件?

ilymy 发表于 2007-10-27 13:59:29

其实我只用过几次multisim 10
他有个问题就是比如门电路单个的没有模型库,只能用整个的芯片

hillsea 发表于 2007-10-27 22:57:34

我用过一些软件,但都有很多问题,决大部分都是模拟库的问题,比如用Multism,我前几天想模拟一个由40106做的多谐振荡器,可是软件总提示错误。我想软件是将40106作成一个逻辑器件,没有将里面的基本电路做的和实际的一样,只是做了一个简单的逻辑。

trent5145 发表于 2011-6-30 01:03:23

mark

wxx116zh 发表于 2011-6-30 08:37:40

mark

whjforever 发表于 2011-12-23 18:20:52

mark
!

qinguodong1 发表于 2011-12-23 20:10:02

留个记号,备用

kenson 发表于 2012-3-8 16:48:18

mark

Tomas_Yung 发表于 2012-3-8 19:54:32

CPLD应用:光栅旋转编码器的4倍频解码 mark

dearterry30 发表于 2012-3-8 21:30:07

mark

g22261846 发表于 2012-3-8 21:37:11

QuartusII的仿真功能是很强大的,我上学的时候学了一点皮毛,考试后就还给老师了!

gujiamao_love 发表于 2013-4-16 13:13:54

感谢楼主哈。
页: [1]
查看完整版本: CPLD应用:光栅旋转编码器的4倍频解码