重庆工学院电子工程系 刘小康 彭东林 重庆大学机械传动国家重点实验室 张兴红 陈锡候
摘 要 : 本文详细介绍了EPM7128SLC84在智能时栅位移传感器中的应用,给出了基于CPLD的智能时栅位移传感器的数字电路设计和数据采集与预处理软件设计。
引言
智能时栅位移传感器是在文献[1]提出的时空坐标转换理论和文献[2] 提出的“场式运动坐标系”思想指导下,根据智能传感器的特点和设计方法,研制开发的一种全新的位移传感器。“以时间测量空间”的设计原理和思想新颖、独特,已获国家专利。与光栅等传统栅式位移传感器相比,具有制造工艺简单、结构简单、抗干扰能力强、成本低、智能化程度高等显著优势,具有很好的市场前景和竞争力。
智能时栅位移传感器的工作原理是:用于拾取信号的动、定测头置于一旋转磁场内,旋转磁场是由按时间120°均分的三相交流电流接到按空间120°均分的三相线圈绕组中产生的。当旋转磁场相继掠动过动、定测头导线时,根据右手定则,将分别感应出电势。这两路信号的相位差反映了两测头所处的空间位置差,相位差再通过时钟插补反映出来,实现以时间测量空间。
基于CPLD的数字信号处理电路
智能时栅位移传感器内部基于CPLD的数字信号处理电路如图1所示。电路采用双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的上、下沿至采样时刻的相位差信号。图2中Fai_OUT1、Fai_OUT2信号表示插入高频细分脉冲信号后的相位差信号,高频时钟脉冲由CLK端输入,通过2路带允许端的20位同步计数器分别对插入的细分脉冲进行计数。每一个脉冲所代表的角度大小由脉冲当量计量电路来确定,用于计算脉冲当量的Ti_OUT1信号由DI_INPUT信号二分频得到。
EPM7128SLC84输出信号INT0_OUT与副MCU第12脚P3.2相连,每一脉冲下降沿触发副MCU中断一次。通过对图2中各信号逻辑时序的分析,可以看出:动、定测头方波信号频率为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所示。程序设计中采用了前面介绍的软件分频技术,流程图中φ代表不受预处理电路中整形芯片门限电压影响的准确相位角。
结语
EPM7128SLC84在智能时栅位移传感器数字电路设计中取得了很好的应用效果,实现了硬件设计软件化,使用可编程逻辑器件技术避免了复杂的PCB布线,带来不仅在成本、开发周期、可靠性等方面的优势,而且大大增强了硬件模块的柔性,通过编程来很方便地修改硬件电路结构,功耗也大大降低。但在使用CPLD器件时也发现了一些问题,如EPM7128SLC84对信号毛刺很敏感,因此,对信号的前置处理和电路设计提出了更高要求。■
参考文献
1. 彭东林、刘成康、谭为民,‘时空坐标转换理论与时栅位移传感器研究,’仪器仪表学报,2000.4.
2. 彭东林、张兴红、刘小康,‘场式时栅位移传感器研究,’仪器仪表学报,2002.