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或更高后仍然适用,只需对软件作少量改动即可。
通过以上分析,不难看出:CPLD逻辑功能仿真波形为硬件电路和程序的正确设计与优化提供了依据,具有逻辑分析仪的功能,为设计者带来了方便,这充分体现了采用CPLD设计数字电路的优点。
总 线收发三态控制电路实现副MCU在读取φ1、φ2和Ti时分时复用20位数据总线D19~D0。副MCU每读一个数据,先通过使能端EN让计数器停止计 数,再通过RD端打开三态门读取数据,读完数据后关闭三态门,并通过CLR端将计数器清零,为下一次读取数据做准备。副MCU对采集到的数据进行预处理 后,送给主MCU。图1中,副MCU的P3.0脚与主MCU的P2.0脚相连是为了实现数据传输过程中2块MCU间的通信握手,数据准备就绪后,主MCU 打开三态总线缓冲74LS244,从P0口读取数据。
数据采集与预处理软件设计
如前所述,数据采集与预处理在副MCU中断0服务程序内完成,程序流程图如图3所示。程序设计中采用了前面介绍的软件分频技术,流程图中φ代表不受预处理电路中整形芯片门限电压影响的准确相位角。
结束语
PM7128SLC84 在智能时栅位移传感器数字电路设计中取得了很好的应用效果,实现了硬件设计软件化,使用可编程逻辑器件技术避免了复杂的PCB布线,带来不仅在成本、开发 周期、可靠性等方面的优势,而且大大增强了硬件模块的柔性,通过编程来很方便地修改硬件电路结构,功耗也大大降低。但在使用CPLD器件时也发现了一些问 题,如EPM7128SLC84对信号毛刺很敏感,因此,对信号的前置处理和电路设计提出了更高要求。