现在的位置: 首页CPLD介绍及应用正文

CPLD在时栅位移传感器中的应用

基于CPLD的数字信号处理电路

  智能时栅位移传感器内部基于CPLD的数字信号处理电路。电路采用双MCU+CPLD结构设计,内部嵌入主从式两块单片机,副MCU负责数据采集与预处理工作,主MCU通过接口电路与外界实现数据交换。动、定测头感应到的微弱信号
经放大、自动增益控制、滤波和整形等预处理电路后,得到供数字电路处理的方波信号。两路方波信号送入CPLD进行处理,CPLD包括双路比相器、脉冲当量计量电路、计数电路、总线收发三态控制电路等4个功能模块。

  CPLD芯片选用Altera公司的MAX7000S系列器件EPM7128SLC84,它有128个逻辑宏单元,逻辑门数为2500门,在MAX+PLUSII软件环境下,采用VHDL和原理图输入相结合的方法进行设计。设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、布局、布线、延时仿真生成配置文件,最后以4引脚的JTAG接口方式通过ByteBlaster下载电缆对CPLD进行在线编程(ISP),完成结构功能配置,实现其硬件功能,制成专用芯片。为了避免器件内的设计被他人复制和取出,可通过对MAX7128S内部的一个保密位编程,对设计进行加密。当对器件重新编程时,保密位连同其它的编程数据均能擦除和重写。

  动、定测头方波信号分别从DO_INPUT和DI_INPUT端输入CPLD,采样信号INT0_OUT由定测头信号DI_INPUT反相得到,通过双路比相器获取动测头信号DO_INPUT的上、下沿至采样时刻的相位差信号。Fai_OUT1、Fai_OUT2信号表示插入高频细分脉冲信号后的相位差信号,高频时钟脉冲由CLK端输入,通过2路带允许端的20位同步计数器分别对插入的细分脉冲进行计数。每一个脉冲所代表的角度大小由脉冲当量计量电路来确定,用于计算脉冲当量的Ti_OUT1信号由DI_INPUT信号二分频得到。

  EPM7128SLC84输出信号INT0_OUT与副MCU第12脚P3.2相连,每一脉冲下降沿触发副MCU中断一次。通过对各信号逻辑时序的分析,可以看出:动、定测头方波信号频率为50Hz,为保证时栅位移传感器能正常工作,MCU必须每20ms中断一次(若信号频率为400Hz,中断时间间隔为2.5ms),也就是说MCU用于处理数据的时间只有20ms。MCU做多字节除法、乘法运算时,运行时间较长,且用于单片机与计算机间数据通信的时间就至少需要10ms,因此20ms时间MCU无法处理完全部工作。处理时间不够就会导致死机,传感器无法工作,实践也证明了这一点。
解决这一问题的方法通常是采取硬件分频,信号分频后,相应周期加倍,供MCU处理数据的时间加长。但在本设计中,无论是将动、定测头方波信号同时分频或仅将引起MCU中断的信号分频,均无法保证同时采集到正确的3个数据。

  基于此,本文提出采用“软件分频”来解决这一问题,这也是采用双MCU的关键原因之一。中断信号INT0_OUT每20ms触发副MCU中断一次,每4次中断采集一次数据,前面3次中断时副MCU通过程序判断中断次数而进行相应处理,为第4次中断时采集数据作准备,第4次中断时在中断服务程序中采集数据,包括φ1、φ2和Ti等3个参数。其中,φ1、φ2和Ti分别代表一个信号周期内插入Fai_OUT1、Fai_OUT2和Ti_OUT1中的时钟脉冲个数。副MCU对数据进行预处理后,通过P3.1脚触发主MCU中断,接收副MCU传送的数据,这样,主MCU每80ms中断一次,供主MCU处理数据的时间增加为80ms,相当于4分频,但并没有改变各信号时序。这一思想在信号频率提高到400Hz或更高后仍然适用,只需对软件作少量改动即可。

在线咨询