当前位置:文档之家› 基于FPGA和STM32的数据采集系统设计

基于FPGA和STM32的数据采集系统设计

基于FPGA和STM32的数据采集系统设计
基于FPGA和STM32的数据采集系统设计

1 绪论

1.1虚拟仪器的背景

现在客户对于测试的需求越来越大。随着创新的步伐越来越快,希望更多具有竞争力的新产品更快投入市场的压力也越来越大。消费者的期望在不断地增高。以电子市场为例,消费者要求不同的功能可以更低的成本在一个更小的空间得到集成。近年来经济的低迷并没有阻止革新的需要,但是却要求使用更少资源。满足这些需要是商业成功的一个因素——能够快速、一贯并且最可靠地满足这些需要的公司一定能在竞争中占有决定性的优势。所有这些条件都驱使着对新的验证、检验和生产测试技术的高要求。一个能与创新保持同步的测试平台不是可有可无的,而是必需的。这个平台必须包含具有足够适应能力的快速测试开发工具以在整个产品开发流程中使用。产品快速上市和高效生产产品的需要要求有高吞吐量的测试技术。为了测试消费者所要求的复杂多功能产品需要精确的同步测量能力,而且随着公司不断地创新以提供有竞争力的产品,测试系统必须能够进行快速调整以满足新的测试需求。

虚拟仪器是应对这些挑战的一种革新性的解决方案。它将快速软件开发和模块化、灵活的硬件结合在一起从而创建用户定义的测试系统。

模拟式仪器是指针式的,它基于电磁原理进行测量;数字式仪器则适应了快速响应和高精度的要求,将对模拟信号的测量转化成为对数字信号的测量来显示测量结果;智能化仪器仪表则运用了微处理器芯片,通过将程序固化在ROM中以及将测量结果储存在RAM中自动完成各种测量功能。它的功能模块全部都是以硬件(或固化的软件)的形式存在,相对虚拟仪器而言,无论是开发还是应用,都缺乏灵活性。第四代虚拟示波器,它是现代计算机技术、通信技术和测量技术相结合的产物,是传统仪器观念的一次巨大变革。

虚拟示波器的出现改变了原有的示波器的整体设计思路,用软代替了硬件。将传统仪器由硬件实现的数据分析与显示功能能,改由功能强大的微型计算机来完成信号的处理和波形的显示,利用软件技术在屏幕上设计出方便、逼真的仪器面板,进行各种信号的处理、加工和分析,用各种不同方式(如数据、图形、图表等)表示测量结果,完成各种规模的测量任务。并具有存储、再现、分析、处理波形等特点,而且体积小,耗电少的功能。

1.2 虚拟仪器的发展现状

虚拟仪器技术目前在国外发展很快,以美国国家仪器公司(NI公司)为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。在美国虚拟仪器系统及其图形编程语言,已作为各大学理工科学生的一门必修课程。美国的斯福坦大学的机械工程系要求三、四年级的学生在实验时应用虚拟仪器进行数据采集和实验控制。当今虚拟仪器的系统开发采用的总线包括传统的RS232串行总线、GPIB通用接口总线、VXI总线,以及已经被PC机广泛采用的USB串行总线和IEEE1394总线(即Fire wire,也叫做火线)。世界各国的公司,特别是美国NI公司,为使虚拟仪器能够适应上述各种总线的配置,开发了

大量的软件以及适应要求的硬件(插件),可以灵活的组建不同复杂程度的虚拟仪器自动检测系统。传统仪器有复杂的工艺问题和知识产权问题,发达国家的传统仪器市场已具有相当规模。而虚拟仪器是一个全新的领域,大力发展虚拟仪器技术可以略过传统仪器的发展阶段,迅速进入虚拟仪器发展阶段,与国外大公司处于同一起跑线,形成跨越式发展。目前,虚拟仪器技术在中国越来越受到人们重视,研究高潮方兴未艾,应用范围越来越广,虚拟仪器技术必然会有突飞猛进的发展。

1.3 选题目的和意义

1.3.1 选题目的

(1)培养毕业生综合运用所学专业知识解决实际问题的能力;

(2)使毕业生初步掌握开展科学研究的工作步骤和基本方法;

(3)培养毕业生正确表达技术路线和研究成果的能力(写作和口头表达);

(4)初步培养毕业生探索科学技术前沿问题的兴趣;

(5)掌握虚拟示波器开发过程

1.3.2 选题意义

传统示波器是由仪器厂家设定并定义好功能的一个封闭结构,它有特定的输入输出和仪器操作面板,具有波形显示、参数测量等功能。当要实现更多的测量功能时,就要配置更多的仪器,这给用户的使用带来很多的不便,并且传统示波器的测量精度比较低,无法满足高精度的测量要求,而且传统的示波器缺乏相应的计算机接口,配合数据采集及数据处理比较困难。此外传统示波器比较庞大,制造成本比较高,这就增加了测量系

统的开发成本。

虚拟示波器的出现改变了原有的示波器的整体设计思路,用软件代替了硬件。将传统仪器由硬件实现的数据分析与显示功能能,改由功能强大的微型计算机来完成信号的处理和波形的显示,利用软件技术在屏幕上设计出方便、逼真的仪器面板,进行各种信号的处理、加工和分析,用各种不同方式(如数据、图形、图表等)表示测量结果,完成各种规模的测量任务。并具有存储、再现、分析、处理波形等特点,而且体积小,耗电少的功能。

虚拟示波器携带方便,应用灵活,可以根据自己的应用重新更新仪器的功能。利用虚拟示波器所做的任何测量,都是归结为对电压的测量。虚拟示波器可以测量各种波形的电压幅度,既可以测量直流电压和正弦电压,又可以测量脉冲或非正弦电压的幅度。更有用的是它可以测量一个脉冲电压波形各部分的电压幅值,如上冲量或顶部下降量等。这是其他任何电压测量仪器都不能比拟的。虚拟示波器可以测量信号的频率。通过采集的信号进行存储后,利用处理器对数据提取并处理,计算出信号的频率以及周期等。

1.4 论述内容

设计一种基于FPGA和STM32的虚拟数据采集系统,实现现场数据的采集、传输和存储。数据采集和处理过程主要由三部分构成:(1)由前级放大电路进行信号的调理,对数据衰减或放大来满足AD转换的要求;(2) AD转换部分由80MHz的AD转换芯片进行模拟到数字信号的转换;(3)控制和数据处理部分采用两种方案:①由FPGA控制,采用Verilog HDL语言设计FIFO缓冲数据区和FIFO、AD转换的时钟分频电路,通过USB 芯片CH372将采集数据传输给上位机进行进一步处理,另外还有前级放大倍数的控制和AC/DC选择也可以由FPGA控制,FPGA接受上位机传来的指令分析判断后输出相应的放大倍数控制电平和AC/DC选择电平;②在STM32中实现数据处理、传输以及放大倍数和AC/DC的选择,并在PC机中开发上层数据管理软件,实现数据的显示、存储并能给单片机和FPGA发送指令。电路设计方法简单、可靠性高,能满足实际应用的要求。

2 系统方案设计

2.1 虚拟示波器设计要求

(1)分析虚拟示波器的国内外发展概况与发展趋势,并对现有的几种虚拟示波器的优缺点进行分析,确定本课题所研究系统的技术类型,为课题的进一步研究工作奠定基础;

(2)分析当前流行虚拟示波器方案优缺点的基础上,确定系统的总体设计方案,掌握虚拟示波器的原理;

(3)在系统总体设计方案的基础上,通过调研,了解目前市场上各种芯片的性能,根据实际市场供需状况综合考虑性能、价格等因素,选择满足实际系统需要的各种芯片,进行系统硬件部分的具体设计,主要包括电源模块、前级处理模块以及主控模块的电路原理图设计;

(4)设计虚拟示波器单片机和FPGA的软件。在系统硬件平台的基础上,进行系统软件部分的设计,应用KEIL开发工具进行单片机STM32的程序设计及优化,应用quartus Ⅱ开发工具进行FPGA模块的程序设计;

(5)系统测试与分析,对系统测试;

2.2 实验原理及设计基本思路

2.2.1 工作原理

虚拟示波器的出现改变了原有的示波器的整体设计思路,用软代替了硬件。将传统仪器由硬件实现的数据分析与显示功能能,改由功能强大的微型计算机来完成信号的处理和波形的显示,利用软件技术在屏幕上设计出方便、逼真的仪器面板,进行各种信号的处理、加工和分析,用各种不同方式(如数据、图形、图表等)表示测量结果。

一个典型的虚拟示波器原理框图如图2.1所示,它的工作过程一般分为存储和显示两个阶段,在存储工作阶段,模拟输入信号先经过适当的放大或衰减,然后经过取样和量化两个过程的数字化处理,将模拟信号转化成数字化信号,最后,数字化信号在逻辑控制电路的控制下一次写入到FIFO中,FIFO缓存器是用FPGA芯片采用硬件编程语言编写异步FIFO缓存器,工作频率比专用FIFO芯片高许多,并且性能稳定。FIFO采用8Bit 数据宽度。对于高频信号和脉冲信号应用FIFO存储工作模式,低频信号用实时工作模式。

虚拟示波器对模拟量进行实时取样。实时取样是对一个周期内的信号的不同点取样,它与取样示波器的跨周期取样是不同的。N个取样点得到的数字量分别存储于地址号为OOH.0NH的N个FIFO存储单元中,这样,采样点所存储的地址信息即表示了采样点的时间信息。在显示时依序取出采样离散化数据,再通过数据处理,送上位机进行波形显示。将数字存储技术和微处理器用于取样示波器,可以构成存储取样示波器。

示波器的采样频率和满足AD转换要求的模拟信号的调理由上位机软件发出指令来控制。

图 2.1 设计总框图

2.2.2 设计基本思路

采集的模拟信号从BNC接口的探头进入,再通过模拟开关进行AC/DC和阻容衰减倍数的选择,选择合适的缩放比后进入跟随放大器使前后级阻抗匹配,以至于模拟信号能无大量丢失的传输到下一级压控运算放大器,进一步对模拟信号缩放调理,其输出信号再加上电平调节电路送来的直流分量使完全的适合AD转化电压要求。这部分的设计很重要,它制约着示波器的最大工作带宽,通过广泛的挑选芯片、精心的设计和实验使示波器的带宽达到15MHz左右。进入AD转换器输出数字信号,选择8Bit数据精度,80MHz 转换速率的高速AD转换器得到较高的测量频率。

因为采用高达80MHz转换速率的AD转换器,然而单片机的处理速度远远不如AD转换的速度,所以对AD频率进行控制的同时还需要缓存器对采集的数据暂时缓存配合单片机进行数据处理。由于专用分频集成芯片和FIFO缓存搭建出来的电路频率不够高,抗干扰能力低,可靠性和灵活性差再加上成本的考虑,电路的性能和最高频率不能达到

需求,因此采用FPGA对时钟进行分频控制AD转换的频率和FIFO缓存的频率,且FIFO 是通过硬件编程语言在FPGA内部烧写的逻辑缓存器。硬件描述语言编写的代码烧写到FPGA芯片内形成实实在在的逻辑电路,不仅频率高而且抗干扰能力很强。

STM32单片机进行数据处理,软件触发和放大倍数以及AC/DC选择将处理好的数据传输给上位机显示出波形。STM32单片机和FPGA的控制指令由上位机软件通过操控得到,控制数据采集。

2.3 单片机的选型

论文的虚拟示波器由于使用FPGA设计的大容量FIFO并且FPGA的工作频率可以做的很高,因此对单片机的性能要求不高,所需的IO端口数量也不多,一般的普通单片机就能完成所需的工作。示波器通过哪种接口向上位机传输数据最方便是个值得考虑的问题。由于现在绝大部分上位机都带有USB接口,USB接口的发展已经很成熟,传输速率较高,抗干扰能力强等优点,我选择一款带有USB接口的单片机,即STM32单片机,具有性能高、成本低、功耗低等优点。

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex.M3内核。Cortex.M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。谭军举例说,在工控领域,用户要求具有更快的中断速度,Cortex.M3采用了Tail.Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。单片机的另外一个特点是调试工具非常便宜,不象ARM的仿真器动辄几千上万。针对这个特点,Cortex.M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex.M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。

按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。此单片机有一个USB 2.0全速接口。

考虑到所需IO端口的数量不多,外设功能也较少的因素,我选用了一款引脚数量

较少,外设资源足够用的STM32F103C8T6单片机。STM32F103C8T6是中等容量的STM32产品,它基于ARM的Cortex.M3?内核,具有64K片上闪存以及一系列丰富的外设接口。支持任意用于调试ARM芯片的调试器,例如Segger的JLink,Keil(ARM)的ULink等。如图 2.2所示。

图2.2 STM32F103C8T6最小系统板

2.4 FPGA的选型

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

考虑到AD转换器需要的最高频率和FIFO容量的大小,我选用了ALTERA公司的性能不算高、价格合适的一款FPGA芯片,即Cyclone系列中的EP1C3144C8N。EP1C3144C8N 内核电压1.5,IO电压3.3 ,最高频率402MHz, TQFP144封装可编程阵列场。Cyclone 系列FPGA芯片0.13μ层铜SRAM全过程,以及密度高达20060逻辑单元(字)并且高达288Bit的RAM以及时钟功能(像锁相环锁相环)和专用双数据率(DDR)DDR SDRAM接口和内存(内存要求快速循环FCRAM),旋风设备是成本有效的解决方案的应用程序数据

的路径旋风设备支持不同的I / O标准,包括LVDS数据速率640每秒(Mbps), 66和33MHz,32位和64 .外围组件互连(PCI),外围接口与支持ASSP和ASIC器件Altera 公司的低成本也提供新配置设备配置串行到Cyclone芯片。如图2.3所示。

图2.3 ALTERA公司的EP1C3T144C8N芯片

2.5 信号采集处理部分的方案确定

AD转换部分需要8位的最高达到80MHz的转换速率。AD转换芯片输出的数字信号高电平不能高于+3.6V,且输出的低电平和高电平符合FPGA和单片机的正常工作标准。选用AD公司ADS831型A/D转换器,它是一款单通道、3.3V供电、80Mbit/s采样频率的模数转换器芯片。此款AD转换器的数字信号输出电平有5V和3V两种选择,满足设计的要求。

对于阻抗变换,选择ADI公司的高性能FET输入单电压反馈的双路放大器AD8066芯片,构成跟随器来实现阻抗变换。AD8066具有5 V至24 V的宽电源电压范围,可采用单电源供电,带宽为145 MHz,适合各种应用。此外,这些放大器还具有轨到轨输出,使其功能更加多样化。成本很低,并且这些器件能提供出色的整体性能。此放大器的差分增益和相位误差分别为0.02%和0.02°,0.1 dB平坦度为7 MHz。此外,此器件具有180 V/μs高压摆率、出色的失真性能、极高的共模抑制(?100 dB)和低输入失调电压。

进一步信号调理部分选择了ADI公司的AD603芯片。AD603是一款低噪声、电压控制型放大器,主要用于射频(RF)和中频(IF)自动增益控制(AGC)系统。它提供精确的引脚可选增益,90 MHz带宽时增益范围为.11 dB至+31 dB,9 MHz带宽时增益范围为+9 dB 至+51 dB。用一个外部电阻便可获得任何中间增益范围。折合到输入的噪声谱密度仅为1.3 nV/√Hz,采用推荐的±5 V电源时功耗为125mW。因此,非常适合本系统的设计指标并且容易控制放大倍数。

2.6 输出显示部分

运用上位机进行波形显示。由于完成一个功能类似的大型应用软件,熟练的LabVIEW

程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。经过搜集各类上位机软件的资料并考虑到时间的限制,最终选择了LabVIEW(Laboratory Virtual Instrument Engineering Workbench)。

LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW 集成了与满足 GPIB、VXI、RS.232和 RS.485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。LabVIEW[1] 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

2.7 系统电源

本课题的电源需要提供四种电压:+5V,.5V,+3.3V,+1.5V,还需要较大的功率输出。+5V和.5V电源为运算放大器和模拟开关提供电压和电流,电流要求大概300mA左右。+3.3V电源为FPGA和单片机供电,所需电流大概300mA左右。+1.5V电源为FPGA提供电压和所需电流。因此,经过查询资料,最终选择了AMS1117系列的稳压芯片和小功率极性反转电源转换器ICL7660。

AMS1117系列稳压器有多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V。在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。1.5V, 1.8V, 2.5V, 2.85V, 3.3V 和5.0V 输出电流1A 工作压差低至1V 线荷载调节:0.2% Max。负载调节:0.4% Max。可选SOT.223,TO.252和SO.8封装。它的初始误差 (%) ±1.5 压差 (V) 1.3。

ICL7660的静态电流典型值为170μA,输入电压范围为1.5.10V,(Intersil公司ICL7660A输入电压范围为1.5.12)工作频率为10 kHz只需外接10 kHz的小体积电容,只需外接10μF的小体积电容效率高达98%合输出功率可达700mW(以DIP封装为例),符合输出100mA的要求。

选用封装类型 SOT.223的AMS1117.5.0,AMS1117.3.3,AMS1117.1.5。由于ICL7660的最大输出电流100mA,设计要求最大电流在300mA左右,因此,选用三片ICL7660并联提供.5V电压。电源部分电路如图2.4。

图2.4 电源电路图

3 方案设计的具体实现

根据为满足工程测量中使用便携并且成本低廉的要求,设计出一款高性能、高采样速率、带宽很宽的单通道虚拟示波器。硬件方面做了两种方案完成此设计:一种是STM32用作控制器、数据及命令收发器,FPGA只负责时钟分频和数据缓存;另一种是FPGA既作控制器,也负责时钟的分频和数据的缓存,同时与USB芯片CH372实现数据及命令的收发。

3.1 数据采集与信号处理电路

本部分的电路设计如图3.1所示。

图3.1 数据采集与信号处理电路

3.1.1 衰减电路、AC/DC选择及阻抗匹配电路

本系统的测量电压的范围可达到±95V,采用示波器探头和电路板上分压的方法将输入信号先进行2:1或19:1衰减,衰减电路要求输入阻抗高,同时在示波器的整个通频带内衰减的分压比均匀不变。要达到这个要求,仅简单的电阻分压是达不到目的的。因为在下一级输入及引线都存在分布电容,这个分布电容的存在对于被测信号的高频分量有严重的衰减,会造成信号的高频分量的失真,因此,必须使用阻容补偿分压电路,

然后再通过后续电路处理以满足A/D 转换器的输入电压范围要求。

阻容分压电路:Cw1、Cw2为补偿电容,对于衰减倍数K 为2:1时,调节Cw1、Cw2,当满足R18Cw1=(Cw2//C64)(R25+R21),此时满足: K = 2521182521R R R R R +++ = 6421

642C Cw Cw C Cw +++。

衰减倍数(Am )的计算:

当K 选择为2:1时,有K = 252118

2521R R R R R +++ ;

当K 选择为19:1时,有K = 2518

2521R R R R ++。

AC/DC 电路通过电阻和电容串联组成AC 通路。AC/DC 选择和衰减倍数的选择用模拟开关CD4053实现。CD4053/CC4053是三2通道数字控制模拟开关,有三个独立的数字控制输入端A 、B 、C 和INH 输入,具有低导通阻抗和低的截止漏电流。幅值为4.5~20V 的数字信号可控制峰.峰值至20V 的数字信号。例如若VDD =+5,VSS =0,VEE =.13.5V ,则0~5V 的数字信号可控制.13.5~4.5V 的模拟信号。这些开关电路在整个VDD.VSS 和VDD -VEE 电源范围内具有极低的静态功耗,与控制信号的逻辑状态无关。通道选择输入端决定了哪个通道被连接。

当INH 输入端=“1”时,所有通道截止。控制输入为高电平时,“0”通道被选,反之,“1”通道被选。电源电压为5V 芯片且温度为25.85℃时的最大模拟信号输入到输出的延时时间是15ns 左右,通道选择到模拟输出信号的最大延时时间是93ns 左右。 此部分的电路如图3.2所示。

图3.2 衰减电路、AC/DC选择及阻抗匹配电路

被测信号通过通用探头和分压器得到的输出信号,由于输出阻抗较高,需要经过阻抗变换成为低的输出阻抗,以保持信号的完整性。同时,对于一个系统来讲,过载是不可避免的,在过载情况下,如果没有保护,器件很容易损坏。因此,系统中设计了由二极管和电阻构成的过载保护电路,将输入信号限制在±4.8V的范围之间。输入保护及阻抗变换电路如图3.3所示。

图3.3 输入保护及阻抗变换电路

3.1.2 增益调节电路

经过阻抗变换的信号,还要通过增益调节,增益调节芯片选用的是一款电压控制放

大倍数的高性能AD603芯片。增益调节电路包括放大电路、直流分量调节电路和直流分量控制增益倍数的电路。在能使输入到A/D 转换器的电压满足A/D 的输入电压要求,采用模拟开关和宽带精密放大器配合,由模拟开关选通不同的接入电阻值,从而实现不同的放大倍数,达到程控放大的目的。增益调节电路如图3.4所示。

图3.4 增益调节电路

增益调节AD603电路的分析:2脚为差分电压参考固定端,即输入电压为固定值U2,U2 = 27280280

R R R * Vcc 。1脚为控制放大倍数电压端,即1脚的输入电压是可变电压U1,由PWM 输出电压控制。增益放大倍数由U3 = U1.U2 决定。设计AD603的增益,当7脚VOUT 和5脚FDBK 两管脚的连接不同时,其放大器的增益范围也不一样。可设置位三种形式。

模式一:将7脚VOUT 与5脚FDBK 短路,即为宽频带模式(90MHz 宽频带),AD603的增益设置为.11.07dB~+31.07dB.

模式二:7脚VOUT 与5脚FDBK 之间外接一个电阻REXT ,FDBK 与COMN 端之间接一个5.6uF 的电容频率补偿。根据放大器的增益关系式,选取合适的REXT ,可获得所需要的模式一与模式三之间的增益值。当REXT=2.15千欧时,增益范围为.1~+41dB 。 模式三:7脚VOUT 与5脚FDBK 之间开路,FDBK 对COMN 连接一个18uF 的电容用于扩展频率响应,该模式为高增益模式,其增益范围为+8.92~+51.07dB ,带宽为9MHz. 在以上三种模式中,增益G (dB )与控制电压U3的关系。当U3在.500mV~+500mV

范围内以40dB/V (既25mV/dB )进行线性增益控制,增益G(dB)与控制电压U3之间的关系为:GdB=40*U3+Goi (i=1,2,3),其中VG=VGPOS.VGNEG (单位为伏特),Goi 分别为三种不同模式的增益常量:GO1=10dB ,GO2=10~30dB (由REXT 决定,当REXT=2.15千欧时,GO2=20dB ),GO3=30dB 。

当U3<.500mV 或U3>+500mV 时,增益(dB )与控制电压VG 之间不满足线性关系,当U3=.526mV 时,Gmin(dB)=U3.42.14;U3=+526mV 时,Gmax (dB )=GF 。

根据设计要求,论文采用的是模式一,即宽频带模式,增益设置为.11.07dB~+31.07dB 。增益与控制电压U3的关系为GdB=40*U3+10。

3.1.3 阻抗匹配、直流调节及增益调节控制电路

增益倍数调节和直流分量输出都是采用PWM 控制方法。PWM 信号由控制器输出,再经过低通滤波器输入到运算放大器LM6172组成的阻抗匹配电路,输出到增益调节控制端和直流分量控制端。增益倍数调节电路如图3.5所示。

图3.5 增益倍数控制电路 直流分量电路选用LM6172运算放大器组成跟随电路,控制电路输出PWM 控制信号,输入到LM6172的跟随输入端,其输入端由低通滤波电路组成,最终输出符合要求的直流电平。由设计图加上运算放大器的“虚短、虚断”的特性,输入信号Vi 加入直流分量Ui 再经过AD8066跟随输出Vo ,它们之间的关系为:Vo =

24025240*25*R R R Vi R Ui ++。根据关系式可看出输入信号被缩减到

240

25240R R R +倍。直流分量调节电路如图3.6所示。

图3.6直流分量调节电路

3.1.4 A/D转换电路

AD831模数转换器采用内部参考电压工作方式,输出数字电压高电平3V,模拟供电电压+5V,并采用了模拟地和数字地隔离的措施,增强系统的工作稳定性。如图3.7所示。

图3.7 AD转换电路

3.2 STM32部分的主控电路

3.2.1 STM32的USART接口

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行

数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。论文应用USART接口的半双工单线通信方式实现数据和命令的收发。

3.2.2 STM32的USB接口

USB模块为PC主机和微控制器所实现的功能之间提供了符合USB规范的通信连接。PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问。此外,STM32可以通过USB电源加上AMS1117.3.3的稳压芯片获得+3.3V的供电电压。USB可提供最大电流500mA的+5V电压电源,能满足STM32的工作需求。如图3.8所示。

图3.8 USB接口电路

3.2.3 STM32的主控应用电路

STM32单片机选用8MHz的外部无源晶振,通过内部的PLL电路可倍频到72MHz的工作频率。它的BOOT0和BOOT1引脚控制启动模式,可以通过BOOT[1:0]引脚选择三种不同启动模式。如图表1所示。

论文的硬件电路设计BOOT1引脚接地,即BOOT1恒为0,BOOT0引脚有0和1两种选择。在使用ISP方式下载程序时将BOOT0脚接高电平,即BOOT0脚为0,再按下复位键,即可完成程序的下载。在完成程序下载后BOOT0脚可以作为普通I/O端口使用。STM32

的主控应用电路如图3.9所示。

STM32主要负责读FIFO缓存中的数据,然后传输给上位机,同时接受上位机传来的命令,分析命令做出相应的控制。控制部分主要有:对PWM1、PWM2的输出占空比控制来调节直流分量大小和增益大小;对FIFO缓存和AD转换器的频率控制,通过STM32发出改变频率脉冲给FPGA的频率控制接口来改变它们的时钟频率。例如当STM32接受到改变PWM1或PWM2占空比大小命令式时,STM32调节PWM值一次,反复调节找到合适的值(PWM设置了2个数组,分别设置了6个不同的值);当FPGA接受到改变频率脉冲式,控制器改变一次FIFO和AD的频率,如此循环改变选择合适的频率值(有8种不同的频率选择值,3位的频率选择寄存器不断加1变化来选择合适的值)。

表1 启动模式

启动模式选择引脚

启动模式说明

BOOT1BOOT0

X 0 主闪存存储器主闪存存储器被选为启动区域

0 1 系统存储器系统存储器被选为启动区域

1 1 内置SRAM 内置SRAM被选为启动区域

图3.9 STM32主控电路图

3.3 FPGA部分的主控电路

3.3.1 FPGA的硬件电路设计

FPGA的电路设计采用两种程序下载方式:JTAG和AS两种方式。JTAG下载方式是将编译后生成的sof文件通过JTAG口直接下载到FPGA内,一般是临时调试用的,掉电后下载数据将丢失;AS下载一般是将编译后生成的pof文件下载到prom(flash)里,掉电数据不会丢失,重新上电prom会自动加载程序到FPGA。AS下载方式选用的prom为EPCS1N型号,是1Mbit的flash存储设备,+3.3V供电电压的8脚贴片封装的存储器,常用于Stratix? II FPGAs和Cyclone series FPGAs的AS配置方案。FPGA芯片选择的是EP1C3T144C8N,其内部资源足够本次设计的使用。FPGA内部资源介绍在第二章2.4节。

FPGA的硬件电路设计如图3.10所示。

图3.10 FPGA硬件电路设计

3.3.2 FPGA的内部逻辑电路

FPGA的内部逻辑电路有时钟分频电路,异步FIFO缓存模块,串口发送和接收模块,两路PWM输出模块,异步FIFO控制模块。50MHz的时钟信号进入分频电路模块得到两路分频后的信号,一路给AD转换器,另一路给内部的异步FIFO模块。分频电路共提供FIFO 写时钟8种频率,有:50MHz,25MHz,12.5MHz,5MHz,6.25MHz,1.25MHz,500KHz,250KHz;由于ADS831的最低工作频率在500KHz以上,所以分频电路提供给AD转换器的时钟频率为7种。UART模块的发送负责将接收到的FIFO数据发送到上位机,接收模块负责接受上位机的命令,此部分还包括对接收到的命令的分析,并做出相应的控制,主要有对PWM模块输出信号的控制和前级处理部分模拟开关的控制。异步FIFO模块是调用Altera的官方固件库得到,性能比自己编写的要好很多。分频逻辑电路由Quartus II软件自带的基本分频器件单元74390组合得到不同需求的频率。内部逻辑顶层电路如

图3.11所示,分频电路如图3.12所示。

相关主题
文本预览
相关文档 最新文档