基于CPLD 的辨向细分电路设计

作者: 应卓瑜,,梁 坚,邵 亮,叶秀清,,   发布日期:2006-10-11 13:55   查看数:0
中文摘要:

  辨向细分电路在工业控制中有重要的现实意义,根据电路的特点提出了一种用复杂可编程逻辑器件(CPLD)实现辨向细分电路的方法。CPLD 是一种具有丰富的可编程I/ O 引脚的可编程逻辑器件,具有在系统可编程、使用 方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。因此该方案具有成本低廉、设计灵活和保密性强等特点。

英文摘要:

   Quadrature Decoder/ Counter is very important in industrial control , this article puts forward implementation of Quadrature Decoder/ Counter based on Complex Programmable Logic Device (CPLD) . The CPLD has character-istices such as ISP and conveniently programmable. So this design has relatively low cost as well as high flexibility and confidentiality.


1  设计要求和总体方案
       系统中选用的旋转编码器的输出脉冲为360 个/ 转,旋转速度不超过1 200 r/ min ,该旋转编码器 除了输出A、B 两路信号外,还有一路Z 信号,它在 主轴旋转至0 度时输出一个过零脉冲。系统中使 用的微控制器是AT91M40800 ,它是一款不带内部 程序存储器的ARM7 内核微控制器, 只能外挂 flash。AT91M40800 的外部中断的触发方式是不可 编程的,只能为边沿出发,而且无论上升沿还是下 降沿都会触发中断。 辨向细分电路的设计要求是角度分辨率为1°; 能在主轴旋转至0°、90°、180°和270°时触发微控制 器的外部中断;允许微控制器通过外部总线读取角度值。
4  多余宏单元的利用
      本设计共使用了46 个宏单元,剩余的18 个宏 单元可以用来扩展IO 口,也可以用来给系统加密。 下面简要介绍一下加密的方法。 前面提到,AT91M40800 没有内部的程序存储 器,所有程序必须放在外部的Flash 中,这样,程序 就可以轻易地读取出来,而本辨向细分电路的正向 设计也不难,所以仿制一整套系统是很简单的事。 为了增加仿制的难度,可以在CPLD 中利用多余的 宏单元增加一个伪随机序列发生器[4 ] 。CPU 通过 3 个IO 口和其通信,这3 个IO 口分别是CLKpn、 RSTpn 和DATApn。CPU 中的程序先通过RSTpn 脚 对CPLD 中的伪随机序列发生器置初值,而后周期 性地翻转CLKpn 驱动伪随机序列发生器工作,每 一次发生出的数据通过DATApn 输入CPU。同时, CPU 内的程序用软件实现一个同样的伪随机序列 发生器,当DATApn 的值和该软件伪随机序列发生 器的输出不一致时,就认为系统是仿制的。
5  性能测试及结论
       本设计使用低成本的MAX3000A 系列CPLD 中的EPM3064A 实现了功能多样, 符合 AT91M40800 接口要求并且升级方便的辨向细分电 路,同时还利用CPLD 中的多余资源增加了系统的 保密功能。 实际测试中使用EPM3064A ,将计数器增加到 12 bit ,也一样可以在10 MHz 的系统时钟下正常工 作,旋转编码器每一圈产生360 个脉冲,那么系统 可以测量的最大转速达到1 666 r/ min。在转速固 定在1 200 r/ min 的情况下,即使旋转编码器一圈 产生5 000 个脉冲也能够胜任,这已经是相当高的 分辨率了。