随着电力电子技术的飞速发展,电力电子装置的应用日益广泛,引起的谐波污染问题也越来越受到人们的关注。为了提高电能质量,抑制谐波污染,一条基本思路就是装设谐波补偿装置[1]。由于传统的LC滤波器易受电网阻抗和运行状态影响,容易与系统产生并联谐振而且只能补偿固定频率谐波,所以有源电力滤波器已经成为谐波补偿的一种新的发展趋势。有源电力滤波器能够对不同频率的谐波和变化的无功功率进行补偿,同时为了满足谐波检测的实时性、准确性要求,多采用以高速数字信号处理见长的DSP作为系统CPU。但是DSP只有两个I/O口,与多个外围器件的接口扩展受到限制,所以本文采用CPLD设计了DSP系统的组合逻辑电路,实现与外围器件的接口扩展和时序配合,并在QuartusⅡ波形编辑器中完成了系统的时序分析。
1 系统总体设计
本系统是并联有源电力滤波器,主要治理电流谐波,采用上、下位机的设计形式。下位机控制电路以TMS320C5416 DSP为核心,实现现场数据采集,谐波的实时检测与补偿、无功功率补偿和简单的数据显示功能;上位机采用工控机并利用Visual C++和SQL Server集成开发软件,实现电网数据的存储和进一步分析处理。系统总体框图如图1所示。
下位机硬件电路主要包括A/D转换模块、DSP数据处理模块、CPLD逻辑控制模块、存储器扩展模块、人机交互模块和异步通信模块。DSP选用 TMS320C5416,它是一款16位定点DSP,功耗仅为0.32 mV/MIPS,速度高达160 MIPS[2]。A/D转换器采用TLV1571芯片,是一种10位并行A/D转换器,是TI公司专为DSP配套设计的,具有速度高、功耗低、接口简单等特点[3]。异步串行通信芯片选用TL16V750,它将从DSP接收的并行数据转化成串行数据传给上位机,实现上、下位机的通信。
下位机基本工作原理如下:当A/D转换器完成模数转换时,给DSP一个中断信号,DSP读取转换后的数据并存储,然后在内部运用瞬时无功功率理论计算出补偿电流的指令信号,再利用该信号和实际的补偿电流设计滞环比较器,产生PWM信号控制主电路中IGBT的通断,从而生成合适的补偿电流回馈给电网。如果键盘有键按下,DSP接收键盘的中断请求转到中断服务子程序对键盘进行扫描,并将相关结果在LCD上显示出来。
2 CPLD逻辑电路设计
CPLD,即复杂可编程逻辑器件,具有应用灵活、运行速度快、集成度高、功能强大、支持在线编程、设计周期短、开发成本低、能够减小系统体积等优点[4]。作为下位机的组合逻辑控制中心,本系统采用altera公司的EPM3128 CPLD芯片,主要完成存储器的扩展控制、外围器件的读写控制(如AD、UART、键盘等)、DSP的中断管理(包括AD采样终端、键盘中断、UART通信中断)、人机接口控制和串行通信控制。开发平台使用QuartusⅡ5.0,可支持原理图、VHDL、Verilog HDL以及AHDL等多种输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[5]。硬件描述语言采用VHDL,其功能强大,可移植性好,并且具有向ASIC移植的能力。
2.1 存储器的扩展控制
TMS320C5416共有16 KB的内部ROM,64 KB的片内DARAM和64 KB的片内SARAM[6],但有23条地址线,支持8 MB的存储空间寻址,同时考虑到存储的数据量较大,也为了方便以后系统升级,仍需扩展外部存储器。外部程序存储器选择体积小、功耗低、电可擦写的 Flash存储器Am29LV400B,该芯片读取周期短,工作电压可分为满负荷2.7 V~3.6 V和可调节3.0 V~3.6 V两种,可直接与3.3 V的DSP相连,简化了接口电路。外部数据存储器选用CY7C1041B-15,它的读取时间只需15 ns,插入等待周期少。Am29LV400B和CY7C1041B-15存储空间都是512 KB,与DSP接口如图2所示。
在连线时,将DSP的15位低地址线A0~A14直接与SRAM和Flash的A0~A14相连,DSP的A16与外存储器的A15相连,A17与外存储器的A16相连,A18与外存储器的A17相连,这样省去DSP的A15地址线,就将SRAM 和Flash分别分成32 KB长的块。以Flash为例,若A15=1,Flash的0000H~7FFFH对应于DSP的8000H~FFFFH,Flash的 8000H~FFFFH对应于DSP的18000H~1FFFFH,Flash的10000H~1FFFFH对应于DSP的28000H~2FFFFH,以此类推。分页用I/O口控制,这样存储器片选的CPLD实现只需如下两个语句:
flash_ce<=′0′ when(dsp_ds=′0′)and dsp_addH1(15)=′1′else′1′;
sram_ce<= ′0′ when(dsp_ds=′0′)and dsp_addH1(15)=′0′ else′1′;
SRAM定位到0X0000~0X7FFF,Flash定位到0X8000~0XFFFF,以便进行自举加载。
and dsp_addH1(15)=′0′ and dsp_addH1(14)=′1′else′1′;
由于TLV1571接口电平与DSP不匹配,故使用三态门双向总线收发器74LV164245做电平转换器。本模块使用两片 74ALV164245,A/D控制信号与键盘控制信号共用一片,该电平转换器直接将DIR接高电平,OE接低电平,信号传输由A到B。A/D传输的数据单用一片,便于控制A/D数据的传输方向。控制信号DIR和OE由CPLD译码产生,如下:
dsp_data_dir<=not dsp_rw;
dsp_data_oe<=′0′when(dsp_iostrb=′0′ and(dsp_is=′0′)
and dsp_addL="1111" anddsp_addH1(15)=′0′and
dsp_addH1(14) =′1′) else ′1′;
2.3 人机接口控制
人机接口主要包括一个4×4矩阵式键盘和液晶显示两部分,与CPLD接口如图4所示。键盘的主要功能是完成显示页面选择和查询参数设置。键盘控制使用 CH452芯片,该芯片内置去抖动电路,提供按键释放标志位,可供查询按键按下与释放。CH452通过高速的4线接口与CPLD相连。在键盘扫描期间,当有键按下时,DOUT引脚产生低电平有效中断信号,该信号经CPLD译码后触发DSP的外部中断INT2,DSP通过串行接口读取按键代码,然后转到中断服务子程序执行相关操作。另外为了保证键盘扫描的正确性,一般要选择较低频的时钟。若DSP外接20 MHz的晶振,内部时钟电路输出最低频率为5 MHz,而CH452最高频率为2 MHz,因此CPLD需将DSP输出时钟分频后加到CH452芯片的DCLK引脚。分频实现如下:
if rising_edge(clkin) then if counter=N then counter<=0;clk<=not clk;
else counter<=counter+1; end if; end if; end process;clkout<=clk;
液晶显示器因具有显示信息丰富、功耗低、体积小、重量轻等优点而得到广泛应用。本系统选用 LCM12864ZK中文液晶显示模块,内含ST7920驱动控制器,提供串行/并行两用接口。本系统采用并行接口,即PSB引脚输入高电平。D0~D7 直接接DSP数据总线,是复位信号,R/W为读写信号,1为读信号,0时写入,E是读写数据启始脚,RS选择寄存器,0为选择指令寄存器,1为数据寄存器。对液晶进行操作时,经CPLD译码,首先选通指令寄存器写入相应代码,再选通数据寄存器进行数据读写操作。部分译码程序如下:
lcd_psb <= ′1′; --1 并行总线 0 串行总线
lcd_rs <= dsp_addL(0);--选择寄存器
lcd_rw <= dsp_rw;
lcd_e <= ′1′ when ( dsp_iostrb=′0′ and (dsp_addL = "0001" or dsp_addL = "0000") and dsp_addH1(15) =′1′ and dsp_addH1(14) = ′1′) else ′0′;
3 CPLD时序仿真
为了验证设计模块逻辑功能的正确性,需要对设计进行仿真。CPLD仿真验证可以有多种方式,本文选择用QuartusⅡ自带的波形编辑器进行逻辑时序仿真。本设计中各外围器件的片选、读写、键盘扫描时钟的分频等关键信号仿真波形如图6所示。
从图中可以看出,各片选信号、读写信号满足设计要求,例如,在IS=0,地址为0x4000~0x4007时选通UART,时钟信号CLKIN经八分频输出CLKOUT等,都满足设计要求,所以本系统设计的逻辑电路是可以实现的。
为了抑制谐波污染,提高电能质量,设计了一种基于DSP的并联型有源电力滤波器。该滤波器由上位机和下位机组成,上位机使用工控机,下位机以DSP系统为核心,并采用CPLD对外围电路进行接口扩展。本文重点分析了CPLD与外围器件的接口问题,并以QuartusⅡ开发平台为基础,用VHDL硬件编程语言描述了组合逻辑电路的实现。在波形编辑器中得出有效的时序分析结果,结果表明该设计是可行的。
全部回复(1 )
只看楼主 我来说两句 抢板凳