基于Nios II处理器的多功能计数器系统设计
2011-05-10邹宇,王承
邹 宇,王 承
(武汉理工大学 信息工程学院,武汉 430070)
0 引言
计数器作为一种测量工具在仪器仪表、通信和电路控制中有着广泛的应用。随着通信电子技术的飞速发展.计数器的应用领域得到了不断扩展.功能也进一步得到了加强。近年来,多功能计数器正在向数字化的领域过渡,其优点在于硬件简单、适应性强而且极大地提高了测量的精度、测量的范围与测量的内容,总体性能明显优于一般的模拟式测量。测量一个信号的频率、周期及两路同周期信号的相位差在工程上有着重要的意义,多功能计数器的设计与制作,涉及到单片机技术、信息存储技术、人机界面技术等多方面理论知识和实际制作技术,本文介绍了一种基于Nios II处理器多功能计数器。系统以FPGA为核心,通过对正弦信号进行滤波和放大,得到幅值合适的正弦波,然后利用迟滞电压比较器对正弦信号整形,得到标准的方波,再由FPGA对其频率、周期及相位差进行测量。Nios II处理器可以根据用户的需要来调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且避免处理器的更新换代。对于频率和周期的测量系统采用了高速现场可编程逻辑门阵列FPGA实现高速信号的高精度测量,能够很好的解决单片机受本身时钟频率和指令运算周期的限制造成的测频速度慢的问题。对于相位差的测量,通过在FPGA内部搭建鉴相器再利用脉冲计数的方法来实现,相对于数字鉴相技术实现相位测量方法而言,既提高了测量精度,整体来说又相对降低了布线难度。
1 多功能计数器系统结构组成分析
多功能计数器整体系统结构由待测信号放大模块、信号整形模块、FPGA模块、LCD显示模块构成。其中FPGA模块中内嵌了Nios处理系统、FPGA频率测量模块以及FPGA相位差测量模块。待测正弦波信号经信号放大模块放大后,得到幅值合适的正弦波波形,进入调理整形电路处理,由迟滞电压比较器整形处理得到标准的方波,再送入FPGA内部,Nios II处理系统控制频率测量及相位差测量模块对信号进行测量。Nios II系统获取频率测量及相位差测量模块的测量数据后进行数据处理,将处理得到的数据送到LCD1602显示,完成多功能计数器的频率、周期、相位差测量功能。具体的系统框图如图1所示。
图1 多功能计数器整体系统结构框图
1.1 系统硬件结构实现
1.1.1 信号调理整形电路
待测信号在进入FPGA系统进行分析之前,首先需要经过信号放大器进行放大来得到符合幅值要求的信号,信号放大器可采用高带宽电压反馈型运放OPA690。在运放的电源和地之间通过接104电容来消除电源纹波。为了使信号能很好的被电压比较器识别,可以通过改变接在运放的电阻值来改变信号的放大倍数。OPA690的增益带宽积为300MHz,这也就是说在放大3倍的前提下系统也能够通过100MHz的信号。
信号经放大电路放大后需由整形电路整形,由于输入信号的频率范围具有差异,在测量不同范围的频率时采用模拟通道选择器(MAX309)选择整形电路。电路中采用低频比较器LM311对1到200KHz的低频信号整形,通过高频比较器TL3116对200KHz以上的高频信号整形。采用双向二级管限幅,保护比较器。因为迟滞电压比较器具有较高的抗干扰性,所以系统采用迟滞电压比较器而不采用普通的过零电压比较器。再输出接施密特触发器74HC74整形,消除信号抖动。电路中施密特触发器74HC74均采用±3.3V供电,使信号能够直接输入FPGA。测相的两路信号经过整形时,要使产生的额外相差最小,必须保证两路通道参数的一致性,选用TI公司的双路比较器TLC372。具体的低频整形电路原理图和高频整形电路原理图分别如图2和如图3所示。
图2 低频整形电路原理图
图3 高频整形电路原理图
1.1.2 FPGA频率测量模块
频率测量模块由100MHZ标准时钟、计数控制器、计数器组成。计数控制器接收来自处理器的信号对计数器进行清零、允许计数等操作。在F_clear的下降沿对计数器进行清零;当F_en为高时计数器允许计数,否则禁止计数。通过检测F_flag信号的电平状态可以判断计数是否完成。
计数控制器与待测信号时钟同步,因而消除了对待测信号计数所产生的个字误差。在测量中,由于标准时钟计数器的启动和停止都是在标准时钟的上升沿触发的,因而可能会对标准时钟计数产生至多±1个字误差。在100MHz标准时钟下,采用等精度频率测产生的误差为1/100,000,000,测量范围为0~100MHz。周期通过频率计算得到且其与频率具有相同的精度。
1.1.3 FPGA相位差测量模块
相位差测量模块由鉴相器和计数器组成。其中鉴相器由一个异或门和D触发器组成。经整形后的两路同频信号经过异或门后输出一路方波,方波的高电平即为两路同频信号高电平之差,其与周期之比即为相位差。D触发的输出用来区别两路信号的先后。采用100MHz时钟信号对异或门输出方波的高电平进行计数,获得高电平时间。相位差
根据上述对于FPGA频率测量模块和相位差测量模块的分析,可以得到顶层文件图如图4所示。
图4 FPGA测频、测相位差部分顶层文件图
1.1.4 NIOS II处理系统
SOPC是Altera公司提出的片上系统解决方案。用户利用SOPC Builder可构建处理器软核及一些器件驱动。NIOS II是一款高性能32位软核CPU,它包括三种软核CPU:高性能软核、精简软核和标准软核。所有软核都是100%代码兼容,设计者可根据系统需要选择CPU来调整嵌入式系统的性能及成本。本系统中用来控制FPGA频率、相位差测量模块及处理显示本系统中的数据。具体软件操作过程中,LCD1602模块用于数据显示,SDRAM用来运行程序和存放数据,PIO口读取来自频率测量模块和相位差测量模块的数据。利用NIOS II处理器控制频率测量模块和相位差测量模块的运行和进行相关数据处理,并在LCD1602上显示,实现了片上系统。避免了传统的外挂单片机所带来的线路复杂和系统稳定性降低。
1.2 系统软件设计
系统软件在NIOS II编译软件中以C语言代码形式编写。系统开机启动后,系统自动初始化整个系统,然后进入系统主循环。主循环开始,先对计数器进行清零操作,清零结束后启动测量,计数器开始计数,当到达一定时间后,停止测量,不断检测标志位,标志位置位表示测量完成。当没有测量完成时,系统进入等待状态,等待测量完成。如果测量完成,通过读取计数模块的值并做数据处理后送到LCD1602显示。具体的软件流程图如图5所示。
图5 系统软件设计流程图
2 系统仿真
2.1 仿真模块说明和条件设置
对于频率测量部分控制要求:1) 将F_en置低,F_clear置高;2) 将F_clear置低;3) 将F_clear置高,F_en置高;4) 延时;5)将F_en置低;6) 检测F_flag电位,为低时读出计数值。由于相位测量部分会自动进行清零及计数操作,所以无须控制。
具体的仿真设置步骤:1)提供频率测量部分所需时序;2)将标准时钟设为50MHz(电路中使用了锁相环倍频至100MHz);3)将IN1(频率测量信号输入)端设置为 period 200ns 、offset 0ns、duty cycle 50% ;4)将IN2(相位差测量信号输入,与IN1共同完成相位差测量)端设置为 period 200ns 、offset 20ns、duty cycle 50% 。
上面过程中需要特别说明的是:1)时钟设置可以在0到100MHz间随意设置,此处仅举例而已。2)3、4两步设置被测频信号及同频相位差信号,频率此处设置为5MHz,相位差此处设置为36度且第一路信号相位超前。
2.2 仿真结果及分析
图6 系统仿真结果图
在仿真过后,进行了具体实物制作,得到了实物测频率、周期时的图片,具体实物测量结果图如图7所示。
图7 实物测量结果图
3 结束语
本文采用等精度测量的方法测量频率周期、鉴相器分辨出相位差后用100M时钟计数测频,相关指标都能很好的体现出系统高精度的特点。摒弃了传统的FPGA与单片机相结合的方案,实现了
片上多功能计数器系统,各种数据处理功能都可以在FPGA器件中完成,系统外围电路简单,测频的精度和稳定性都相对较高,也能够缩短测频时间。系统设计具有方式灵活、便于移植和修改、可升级等优势,拥有很好的应用前景。
[1] 康华光.电子技术基础[M].北京:高等教育出版社,2006.
[2] 潘松,黄继业.EDA技术与VHDL(第二版)[M].北京:清华大学出版社,2007.
[3] 黄智伟.全国大学生电子设计竞赛系统设计[M].北京:北京航空航天大学出版社,2006.
[4] 潘松,黄继业,曾筑.SOPC实用教程[M].北京:清华大学出版社,2005.
[5] 徐海军,叶卫东. FPGA在高性能数据采集系统中的应用[J].计算机技术与应用,2005,25(1).
[6] 郝统关,程明.基于FPGA NiosII的等精度频率计设计[J].电测与仪表,2009,2.