这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 基于FPGA的高速数字隔离型串行ADC应用

共2条 1/1 1 跳转至

基于FPGA的高速数字隔离型串行ADC应用

菜鸟
2008-08-29 12:15:12     打赏
 1.引言

  目前,逆变器在很多领域有着越来越广泛地应用。对逆变器的研究具有十分重要的意义和广阔的工程应用前景。常见逆变技术的控制方法大致分为开环控制的载波调制方法和闭环控制的跟踪控制方法。跟踪控制方法属于闭环控制,闭环反馈中的检测环节需要与高压主电路相互隔离,避免高压侧电磁噪声对控制电路的窜扰。高性能的跟踪型逆变器对反馈量的实时性要求很高,因此要求反馈环节具有高速隔离传输模拟信号的能力。

  目前,最常用的隔离技术可以分为线性隔离和数字隔离。线性隔离器存在温度漂移、线性度差,鲁棒性弱的问题,很难满足宽频带高精度的隔离传输要求。在现代跟踪控制用逆变器领域中大多采用数字化控制,如果在高压侧将模拟量变成数字量,再通过高速隔离芯片传输数字量,则既避免了模拟量隔离传输所存在的问题,又满足数字化控制的要求。因此,本文研究设计了一种基于高速隔离芯片的高速串行隔离型ADC。该数字隔离型ADC频带宽,延时小,稳定性高并且电路结构简单。利用FPGA作为控制器,很好地实现了模数转换和隔离传输。

  2.隔离模块基本工作原理

  2.1 工程背景介绍

  如图(1)所示为基于RC检测的跟踪控制原理框图。FPGA通过高速隔离芯片控制高速串行ADC,将电容电压实时地转换成数字量,通过隔离芯片把数字量读回到FPAG。通过这个高速隔离型ADC,即图(1)中虚线框中的部分,实时采样跟踪电压波形,根据特定的跟踪控制算法产生相应的SPWM控制信号驱动半桥主电路。假设逆变单元的开关频率为10KHz,最小占空比为10%,按照香农定理ADC采样频率至少为200KHz,在工程应用中一般留有7~10倍余量,所以高速ADC的采样频率应该在1MHz左右。MAX1072为10位单极型串行ADC,可以实现1.8MHz采样频率。可见MAX1072在采样频率和输出精度方面均满足跟踪控制的要求。同时,采用串行ADC控制引脚少,占用控制器I/O端口少,所需隔离芯片少,电路结构简单可靠性高。隔离芯片采用ISO721D,其传输带宽可达150MHz。

  2.2 高速数字隔离型ADC实现原理

  本论文主要研究高速隔离型ADC的实现方案,即图(1)中虚线框内的部分。此部分原理示意图如图(2)所示。图中由FPGA产生两路输出信号分别为Clk1和Sta1。Clk1经过隔离芯片输出信号Clk作为串行ADCMax1072的时钟信号其频率为24MHz。Sta1经过隔离芯片输出信号Sta作为ADC的启动控制信号其频率为1.5MHz。ADC的转换结果为Data信号,经隔离芯片输出Data1信号送回FPGA。

  各信号相位关系如图(3)所示。其中,信号A,B,C,Dclk依次为Clk,Sta,Data和FPGA内部移位寄存器的时钟信号,实现将每一位串行数据进行存储。信号B的下降沿启动ADC进行转换,t0~t1时间段内为ADC转换时间,第四个Clk上升沿输出数字量的最高位,经4nS后稳定。依次在每个时钟信号Clk的上升沿产生数字量的下一位,在每个Dclk的上升沿将串行数据锁存在移位寄存器中。在LSB之后还有两位无效位分别为S1和S0。启动信号延时3个Clk,再进行下一次启动。

  图(4)为利用FPGA实现的控制隔离型ADC的软核原理描述图。FPGA产生一路频率为24MHz的Clk,信号经过隔离芯片即为图(3)中的信号A,此信号直接输出作为Max1072的时钟信号。Clk1同时也作为启动信号的时钟信号。利用一个16进制计数器对Clk1进行计数产生信号Sta1经过隔离芯片即为图(3)中的信号B。Sta1高电平维持3个Clk1低电平维持13个Clk1。所以Sta1的工作频率为1.5MHz,占空比为12.5%。由Sta1信号的下降沿启动另外一个13进制计数器计数,产生信号经隔离芯片即为如图(3)中所示的信号Dclk。此信号作为移位寄存器的时钟信号,将10位串行数据依次移入寄存器。最后一个时钟信号启动锁存器将串行数据转换成为并行数据锁存在输出端供FPAG内部进行跟踪控制算法使用。

3.实验结果

  如图(5)所示,为FPGA控制Max1072的时序实验波形图参考基准电压为2.5V。图中信号Sta,Clk,Dclk分别对应图(3)中信号A,B,D。从实验结果可见Max1072的时钟频率为24MHz,启动转换信号频率为1.5MHz,与ADC时序要求完全吻合。 
图(6)为隔离前后两路信号的比较情况。波形S为输入模拟信号,频率为10KHz。为调试方便外接了刷新频率为1MHz的双极型DAC。经ADC隔离采样再通过DAC将数字量转换成为模拟量即图(6)中波形P。可见数字隔离型ADC工作正常,初步验证了该方案的可行性。

  图(7)为加入隔离模块后的跟踪控制原理性实验的跟踪波形。高压侧电磁干扰对控制电路的影响有很大程度地减弱。这为实现高性能的逆变单元提供了可能性。

4.结论与展望

  通过实验验证了本文设计的基于高速串行模数转换器Max1072和高速隔离芯片ISO721D的数字化隔离方案的可行性。利用FPGA作为控制器初步验证了隔离模块控制时序的正确性,为跟踪型逆变单元的检测环节提供了隔离方案,有效的抑制了高压侧对控制电路的噪声窜扰。但是,由于所选DAC的性能偏低,因此没有进行更高频率信号的测试。这将在以后的工作中进一步验证和完善。




关键词: 基于     高速     数字     隔离型     串行     应用     控制     跟踪         

菜鸟
2008-08-29 12:26:31     打赏
2楼
由于获取图像的工具或手段的影响,使获取图像无法完全体现原始图像的全部信息。因此,对图像进行预处理就显得非常重要。预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征。

  通常根据预处理目的的不同,把预处理技术归为图像增强技术和图像分割技术两类。图像对比度处理是空间域图像增强的一种方法。由于图像灰度范围狭窄会使图像的对比度不理想,可用对比度增强技术来调整图像灰度值的动态范围。

  图像处理通常采用软件或者DSP(数字信号处理器)来实现。如果利用软件实现,运行时会耗费较多的PC资源,而且算法越复杂时耗费的资源就越多,对于需要高速处理的情况就不适用了;而如果采用DSP来实现,提高并行性的同时指令执行速度必然会提高,较高的指令速度可能导致系统设计复杂化,并增加功耗和成本。新一代的FPGA集成了CPU或DSP内核,可以在一片FPGA上进行软硬件协同设计,为实现SOPC提供了强大的硬件支持。本文介绍的是利用FPGA并行处理和计算能力,以Altera FPGA Stratix EP1S40为系统控制的核心实现的SOPC。

  系统硬件平台

  采用基于PCI总线的FPGA开发平台,结构如图1所示。板上主要硬件资源有:PCI桥、FPGA、SRAM和SDRAM等其他外设。

图1 基于PCI总线的FPGA开发平台

  PCI桥采用PCI9656桥接芯片实现,用来连接PCI总线与32位/50MHz的板级局部总线;FPGA包括41 250个逻辑单元,14个DSP模块,112个嵌入式乘法器,4个增强型PLL(锁相环)和4个快速型PLL等逻辑资源;SDRAM用来存储图像数据。Avalon总线模块完成整个片上可编程系统组件之间的互连。Avalon总线是SOPC设计中连接片上处理器和其他IP模块的一种简单总线协议,规定了主、从构件之间的端口连接以及通信时序关系,SOPC Builder来完成整个系统(包括Avalon)模块的生成和集成。丰富的板级资源可以满足图像的高速预处理需求。

  系统工作原理

  设计采用DMA方式快速传输图像数据,这样数据的传输和处理可以并行起来,使得系统的运行效率大为提高。PC与PCI板卡之间建立软件环境,在该环境下利用DMA通道把图像数据从主机通过PCI总线、PCI桥、板级局部总线和Avalon总线传到SDRAM存储起来,然后送入算法逻辑模块进行处理,处理完成后再把图像数据存储到SDRAM中,最后再用DMA通道把图像处理结果传送回主机。

  建立片上系统中的关键模块

  本文设计的图像对比度增强系统是建立在Stratix EP1S40基础上的SOPC。该设计在Quartus II 5.0中利用SOPC Builder将系统的工作频率设为50MHz,器件系列设为Stratix,调用已经建立的IP模块和算法逻辑模块,并设置各个模块的时钟和基地址,配置生成片上系统。根据任务要求,SOPC结构框图如图2所示。

图2 SOPC结构框图

  图2中,Avalon总线接口分为主(Master)和从(Slave)两类,前者具有相接的Avalon总线的控制权,后者是被动的。自定制的Avalon从外设根据对Avalon总线操作方式的不同分为两类:一类是Avalon从(Slave)外设,只是作为Avalon总线的一个从元件来处理;另一类是Avalon流模式从(Streaming Slave)外设,需要使用Avalon总线的流传输模式,外设的设计更复杂。
● 板级局部总线与Avalon总线桥之间的通信模块

  在板级局部总线与FPGA内部Avalon总线桥之间建立通信模块。由于SOPC内部各模块之间的逻辑连接是由Avalon总线完成的,所以可以从主机通过PCI总线和板级局部总线访问SOPC组件。该模块作为Avalon总线的一个主控接口,对其他Avalon从外设和Avalon流模式从外设进行访问和控制。

  ● 控制模块

  控制模块的工作时钟独立于系统时钟,如图3所示。包括两个模块的设计:(1)用于对SDRAM存储资源做合理分配的流模式存储管理器模块,它作为Avalon流模式从外设,读写端口的数量可配置,这些读写端口可以以流传输模式把图像数据读出或写入SDRAM。(2)存储器控制模块,它作为Avalon总线的另一主控接口,对作为Avalon总线从控接口的SDRAM控制器进行控制。

图3 控制模块

  ● 图像对比度增强算法及VHDL实现

  在图像对比度处理方法中,可以设计出不同的转换函数。本系统是针对锯齿形函数转换设计的,锯齿形转换可以把几段较窄灰度区间拉伸到较宽的灰度范围内,这种处理可以把灰度变化较平缓的区域也较鲜明地显示出来,从而增强图像中感兴趣的特征。

  该设计对一帧3008×2000像素、数据宽度为8位的灰度图像进行处理,图像共有2000行、3008列像素点,行和列均从0开始计起。在系统时钟上升沿、行有效信号与数据有效信号均有效时,把图像数据读入进来,对其做相应处理。每个系统时钟上升沿读入一个图像数据,在第N行像素点处理完后,第N+1行有效信号与数据有效信号必须同时有效才能继续处理,在对第1999行、3007列像素点处理完毕后,行有效信号与数据有效信号置为无效,此时整帧图像处理完毕。算法逻辑模块中需要帧有效计数器和行有效计数器各一个,分别用来对帧和行进行计数,还需要一个像素计数器对某行像素做计数统计。由于该算法逻辑模块是基于SOPC技术,能够在SOPC Builder工具中作为自定制模块调用,需设置两个寄存器,分别是帧有效计数寄存器和行有效计数寄存器,它们根据Avalon总线地址的不同,同时作为Avalon总线的读或写寄存器,从而使自定义模块可以和Avalon总线进行通信。每输入一个像素点判断其灰度值满足设置的哪个区间范围并做相应转换,从而实现一帧图像的对比度增强处理。根据算法需求,采用VHDL语言对算法逻辑建模,并以Avalon总线从外设的方式在SOPC Builder 中调用。VHDL实现如下。

  entity enhancement is

  port (iLVAL : in std_logic;

  iDVAL : in std_logic;

  iFVAL : in std_logic := '1';

  iCLK : in std_logic;

  iDATA : in std_logic_vector(7 downto 0);

  oLVAL : out std_logic; oDVAL : out std_logic;

  oFVAL : out std_logic;

  oDATA : out std_logic_vector (7 downto 0)

  );

  end enhancement;

  这里iFVAL被置为“1”,说明是对一帧图像进行处理;iDATA与oDATA是图像输入、输出二进制数据,宽度为8位。
图像预处理系统的实现

  用标准化硬件描述语言VHDL建立FPGA模块实现。按照自顶向下的设计方法生成各设计阶层,将设计任务分解为不同的功能元件,每个元件具有专门定义的输入输出端口并执行各自的逻辑功能。该SOPC设计通过以下步骤实现。

  (1)利用SOPC Builder工具编译生成用户自定制模块,调用已建立的IP模块并设置参数,配置生成片上系统;

  (2)在顶层VHDL文件中调用模块并示例化,进行信号连接;

  (3)对整个系统进行管脚等约束设置,全编译并进行行为和时序验证;

  (4)下载和硬件调试完成。

  结束语

  该系统对实验室在光线较弱情况下所拍的一帧3008×2000灰度图像进行对比度增强处理,处理前后如图4、5所示。在SOPC系统时钟为50MHz时,对于输入大小为3008×2000像素点的灰度图像,每一帧的处理时间为T=(1/(50×106))×3008×2000=0.120 32s。

图4 原图像

图5 处理后图像

  而在3GHz Pentium 4、256MB内存的PC上通过Matlab用代码实现则需0.9850s。该设计采用FPGA实现图像预处理系统,与利用软件处理图像的方法比较起来,可以更快速地实现对图像的预处理。同时系统构成灵活,设计中模块的可重复开发性降低了生产成本、缩短了生产周期,提高了工作效率。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]