3.2 系统测量电路设计
以单片机为核心设计相位仪,如其晶振为24 MHz,单片机C/T的计数误差为1个机器周期为±0.5 μs,则绝对误差为360°x0.5 μs/50μs=3.6°,所以,当被测信号频率很高时很难满足测量要求。
本设计采用AVR单片机与FPGA相结合的方案,FPGA实现数据采集,将所测信号的频率和相位差所对应时间差转换为二进制数据传给单片机;单片机从FPGA获取数据,经过运算、转换等数据处理,将被测信号的频率和相位差在LCD上显示。
系统电原理图如图3所示。MCU采用ATMEL公司的AVR单片机ATmega128,具有先进的RISC结构,大多数指令在一个时钟周期内完成,有32个8位通用工作寄存器及外设控制寄存器,克服了一般单片机单一累加器数据处理带来的瓶颈。有128 KB的系统内可编程Flash,4 KB的EEPROM以及4 KB的内部SRAM,遵循JTAG标准的边界扫描功能,支持扩展的片内调试,可通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程。
FPGA采用ALTEm Cyclone系列的EP1C3T100,配置芯片为EPCS1,VHDL功能程序经过全编译会生成.SOF和.pof文件,配置的下载为Byte-Blaster II,[Mode]项选择“JTAG”为把.sof文件配置到FPGA芯片EP1C3T100中,用于调试;[Mode]项选择“Active Serial Programming”为把.pof文件下载到配置芯片EPCS1中,系统重新上电时正常运行。
LCD采用HTM12864,为128x64串行数据传送液晶显示器,背光灯通过光耦受到控制。
ATmega128和EP1C3T100设计各自的JTAG接口。图3绘出了ATmega128和EP1C3T100的接口D0~D19、EN、Dsel、LCN;ATmega128与HTM12864的接口RET、D/C、SCLK、DATA;EP1C3T100的输入信号FAin和FBin,66 MHz外部有源晶振,配置芯片EPCS1。4 系统软件的设计
4.1 FPGA数据采集VHDL程序设计
FPGA数据采集的VHDL程序设计是在Altera QuartuslI开发软件平台及实验开发系统上完成的。程序设计采用自顶向下(up-to-down)的设计方法。FPGA系统的模块构成如图4所示。采样信号发生模块完成时钟信号源的分频工作,得到CLK=20 MHz;待测信号采样模块在控制信号产生模块的周期闸门信号Tk和时间清零信号Tcr的作用下,输出待测信号周期和相位差数据;测量数据提取模块在鉴相信号JXc和计数提取信号Lad的作用下,并在输出使能信号EN和数据类型信号Dsel控制下分别输出周期和相位差数据,交MCU运算处理显示。