中文摘要:
辨向细分电路在工业控制中有重要的现实意义,根据电路的特点提出了一种用复杂可编程逻辑器件(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 个脉冲也能够胜任,这已经是相当高的
分辨率了。