FPGA/ASIC技术
摘要:介绍了远距离测温器的结构组成和工作原理,设计了基于FPGA的远距离测温器数控系统的数据采集与控制系统,使用Altera公司的Cyclonell系列的FPGA实现了包括数据采集、数据通信等控制功能,着重叙述了硬件与软件的实现方法。该数控系统具有测量精度高,低功耗等特点。
关键词:远距离测温;FPGA;数据采集与控制系统;NiosⅡ
引言
远距离测温器是一种被动式的温度遥感器,可用于远距离探测物体的温度,在科学研究和工业生产中发挥了重要作用。由于在使用时人们对测温器的测量范围、灵敏度要求很高,同时由于当今遥感仪器的设计越来越趋于低功耗高密度及小型化,因此,要求测温器的数据处理与控制系统具有高可靠性、高分辨率、实时性、体积小等特点。由于FPGA的功能强大,逻辑速度快,可以用多种接口电平与外界通信,可以方便的更新程序以实现多种功能,所以本文采用Altera公司的CycloneⅡ系列的FPGA为核心进行远距离测温器的数控系统设计,实现了系统的多功能和小型化。
1 系统结构
远距离测温器的结构框图如图1所示。由红外线探测头、光电转换单元、放大电路、数据采集电路和数据处理与控制系统等功能模块组成。红外探测头用于搜集物体发射出的红外光线,将有用信号传输至较远且适合人操作的地方,最后使用数据处理和控制系统进行控制。
数据处理与控制系统接收计算机传输的指令,控制系统运行。系统通电后,红外接收天线接收的光信号模拟量经过远距离传输,信号放大后经过A/D模数转换后再送入数据处理和控制系统,由数据处理与控制系统进行数据采集和存储、与计算机的数据通信、工作状态控制。数据处理与控制系统在远距离测温器中处于重要的位置。
数据采集、数据处理与控制系统电路由FPGA及其外围电路、数据采集系统、电平转换电路、总线接口电路等部分组成,如图2所示。
FPGA根据系统本身的时序和计算机送入的控制指令,控制数据采集电路完成数据的采集。同时,FPGA内部的可配置软处理核NiosⅡ系统将根据计算机中提供的校准值来修正由前端模拟电路引起的偏差,并由此生成实际误差很小的曲线方程。校准工作完毕后,整个系统既可脱离计算机方便地用于远距离的温度测量,也可以用于联机对物体温度的实时检测,采集到的大量数据提供给计算机作分析用。
数控系统采用Altera公司的CycloneⅡ系列FPGA中的EP2C8为核心进行设计。CycloneⅡ器件采用90 nm、低K值电介质工艺,通过使硅片面积最小化,可以在单芯片上支持复杂的数字系统。众多可由用户自行定义的I/O管脚有利于系统进行外部扩展。其配置PROM采用Altera公司提供的16 MB的EPCS4串行配置PROM,该配置器件具备在系统编程(ISP)能力和多次编程能力,具有包括ISP和FLASH存储器访问接口等特性。
数据采集电路采用AD公司的模数转换器AD7675,该芯片只需要提供+5 V工作电源,典型功耗为15 mW,芯片转换速度为100 KSPS,可选并行或串行采样数据输出,对外可选+5 V或+3.3 V接口电平。被测模拟信号电压输入范围为-2.5~+2.5 V,可以做到最高16位不失码。
2 硬件电路设计
2.1 电源控制电路
由于整个电路系统涉及模拟和数字部分多种芯片的运作,A/D采样芯片和FPGA芯片均需要两种以上的电源供电,所以选取合适的电压转换器非常重要。电源控制电路选用Linear公司的线形电源模块来提供A/D芯片所需要的+3.3V,+2.5V电压和FPGA所需要的+3.3V和+1.2V电压,为了提高信号质量,模拟和数字部分的+3.3 V电压分别由不同的电源转换模块提供。
2.2 数据采集电路
数据采集电路主要由AD7675组成,由于其输出I/O部分采用+3.3 V供电,故其所有的数据输出管脚和输入控制信号不需要进行电平转换,可以直接与FPGA的I/O管脚相连。A/D芯片的转换速率为100KSPS,选择16 b双极性补码输出,最高位表示符号位。硬件电路如图3所示。采集到的数据送入FPGA的寄存器,再传送到计算机中,供数据分析用。
AD7675的模拟信号输入部分选用AD公司的AD8021运算放大器实现模拟输入信号的单端到差分信号的转换。电源进入电源管脚前应就近安装钽电容进行滤波,以减小电源上的杂波干扰,提高信号质量。AD7675支持并行和串行两种数据输出方式,本系统选择并行16 b补码采样数据输出,与此相关的一些控制信号,如BYTESWAP,OB,SER/PAR需要被置为低电平。而其它RESET和数据输出I/O管脚接入FPGA,由FPGA控制。
2.3 FPGA与计算机接口电路
FPGA通过串行通信接口与外接计算机实现通信。本文选用MAX232实现LVTTL与EIA的电平转换,可方便的完成FPGA与计算机之间的RS 232通信。
2.4 数字控制单元设计
该测温器的软件设计主要分为两个部分,一是FPGA的相关程序设计,其主要功能包括:A/D数据采集控制、串口数据通信控制、LCD的读写控制以及PROM的烧录等;二是计算机中的相关程序,主要功能包括数值运算、标定FPGA和将采集到的数据存储以供分析等。在整个FPGA的设计上,由Altera公司开发的基于SoPC的NiosⅡ处理器及其软件开发包SoPC Builder可以方便地将所需要的IP核、存储器、接口控制器等简单而又快速的集成到FPGA中去,从而缩短设计周期。FPGA内部功能模块如图4所示。
FPGA的核心控制系统是由1 400~1 800 LE构成的,运行起来可以到达86DMIPSD的f型NiosⅡCPU。除了CPU外,数控系统主要还包括一个标志NiosⅡ系统的系统ID核;一个提供JTAG串行异步收发器的IP核,用于在线调试FPGA的程序;一个可以实现任何标准RS 232标准波特率的UART核,用在控制电路调试成功后在单机工作状态下与外接计算机通信;两组并行输入、输出PIO核,分别对A/D采样电路进行控制和读取A/D采样后得到的数据;两个LCD控制器IP核;一个用于运行程序的片内ROM;一个提供系统时钟的pll;一个EPCS串行配置器件控制器IP核。如图5所示。
系统生成的原理图如图6所示。
3 系统开发测试
系统构建好之后,需要进一步的测试才能确保其正常测温。系统的开发测试流程如图7所示。
上电后首先观测系统的主要硬件是否正常工作,将在NiosⅡIDE中生成的SOF文件下载到FPGA中,完成NiosⅡ系统的下载和初始化。然后将NiosⅡ软件通过JTAG口下载到目标系统中。系统正常工作后,由远端计算机通过串口对A/D进行初始化,采集数据。计算机接收到A/D采样数据后,就可以对测温器进行标定,通过数据处理计算出用于标定各台测温器的校准方程。
标定过程如下,将测温器红外接收探测头对准热源,热源产生准确的温度。为了测量准确,对于同一个温度点,采用多次测量取平均值的方法。由计算机通过串口通信记录下多次A/D采样的值与对应的温度值。从低温开始到较高的温度,由计算机通过串口通信记录下A/D采样值。当记录下的数值达到可以反映各温度段变化的情况时,就可以让计算机采用合适的数据拟合方法生成反映该测温器测量特性的曲线方程。计算机将方程系数传送给NiosⅡ系统,完成对整个测温器的校准。
最后检查FPGA中NiosⅡ处理器能否通过LCD控制器与LCD正常通信、LCD能否正常显示字符;NiosⅡ软处理器可否与PROM实现正常的读写。调试成功后为了节约资源可将JTAG调试去掉,然后将正确的程序烧录到EPCS4中。这时所设计的程序即可脱离计算机及NiosⅡIDE独立运行。
完成了整个开发过程的测温器即可正常使用,对标定温度范围内的温度进行测量。脱机测量时,由定时器产生对A/D采样时所需的时钟脉冲,NiosⅡ系统的两组PIO,分别控制A/D的控制信号和将A/D采样值读入NiosⅡ系统。在使用时,仍然采用多次测量取平均值的方法来得到A/D采样值,然后根据拟合方程,即可得到对应的温度值,然后NiosⅡ系统控制LCD控制器的R/W,RS和DB0~DB7,将对应的温度值显示在LCD上。而当需要联机使用时,NiosⅡ系统通过串口将存储在内部的A/D采样值和对应的温度值发送到计算机中,形成文件供分析用。
4 结语
整个数控系统共计占用3 700多个LE,99 200个存储器比特。为整个测温器提供了稳定可靠的数据处理平台,可为更高级别的功能扩展提供一定的参考,具有很广的应用前景。
全部0条评论
快来发表一下你的评论吧 !