随着电力电子市场需求与日俱增,为了缩短电力电子硬件设计的开发时间,本文设计开发了DSP56F803通用板作为各种电力电子应用的硬件开发平台。
为了增强它的应用灵活性,该通用板在扩展出DSP主要功能模块的同时,通过采用复杂可编程逻辑器件XC95XL144实现各种保护逻辑以及输入输出口的扩展功能.DSP和CPLD综合利用作为通用板的核心是本文设计的主要特色。
引言
近年来,电力电子技术飞速发展,电力电子控制装置也广泛应用于各种领域。例如:不停电电源、开关电源、机车辅助电源、蓄电池充电放电、电子模拟负载、电力机车、电传动内燃机车等。此外,在有些国家,例如丹麦、德国、美国等,电力电子控制并网逆变器已经逐步应用于太阳能发电以及风能发电装置与电力系统的连接。
为了与电力电子技术的迅速发展同步,同时提高电力电子硬件开发的模块化,缩短硬件开发的时间,本文设计开发了DSP56F803通用板作为各种电力电子应用的硬件开发平台。此外,复杂可编程逻辑器件CPLD具有可编程性强和应用灵活的特点,可以极大的降低系统开发成本和缩短开发周期。为了提高该通用板的应用灵活性,本文采用Xilinx公司的高性能低电压的复杂可编程逻辑器件CPLDXC95XL144实现了各种保护逻辑以及四组输入输出口的扩展,DSP56F803和XC95XL144的综合应用作为通用板的核心部分是本文设计的主要特色。
1设计思想
本文设计通用板遵循的主要原则是在满足功能尽量全面的同时提高抗干扰能力和应用灵活性,这样可以大大的降低电力电子应用的硬件开发成本,缩短开发时间,提高应用稳定性。本文设计的通用板综合使用DSP和CPLD作为核心部分,开发了丰富灵活的外围电路。本文首先基于XilinxFoudaTIon3.li软件用硬件描述语言VHDL编程进行仿真综合,最后,本文采用了Xlinx公司的XC95XL144高性能的可编程逻辑器件CPLD实现了各种保护逻辑以及四组输入输出口的扩展。
设计DSP通用板时首先考虑是应该扩展的功能模块。
1、脉宽调制技术已经广泛应用于各种电力电子控制场合,因此首先扩展了脉宽调制模块PWM的输出。DSP56800系列的PWM的频率和占空比可以连续变化,这样可以实现无级变频调速。
2、电力电子控制必然要采样各种电压、电流信号,因此,本文扩展了DSP的8路12位模数转换模块ADC。
3、目前大部分的电力电子控制需要进行DSP与DSP或DSP与PC机的通信,因此本文扩展了异步串行通信模块SCI,为了提高抗干扰能力,增长传输距离,实现远程监控,本文采用RS-485差分通信。
4、越来越多的电力电子装置是并网运行的,因此需要检测电网的过零点和周期,本文扩展了定时器模块TIMER,它的接口可用于各种信号的过零点和周期检测。
5、电力电子应用一般只需要记录少量的故障数据,因此本文仅扩展了64K铁电非易失性存储器FM24CL64,它读写只需要两根线,而且读写没有延时。
6、一般的系统都会有时钟,记录故障时同时记录故障发生的时刻,以备分析故障数据。本文扩展了实时时钟X1226,它和FM24CL64共用时钟线和读写信号线,只是两个器件的物理地址不同。
7、最后,本文还扩展了电源监测和硬件看门狗芯片MAX706RESA。
DSP56F803和XC95XL144的接口主要包括电力电子主电路检测到的过压、过流保护信号通过CPLD的逻辑操作后触发DSP外中断或PWM出错保护引脚PWMFAULT来实现保护功能;利用低位地址线和低位数据线来扩展输入输出口。
DSP56F803外设模块的子程序的编写采用EmbeddedSDK,因为它提供各种外设模块的驱动程序和接口,即使不需要熟悉DSP的内部硬件结构也可以方便的使用。对于DSP56F803对XC95XL144的读写操作,本文根据DSP56800系列汇编指令集,开发自己的SDK软件包。
2硬件设计
印制电路板(PCB)的抗干扰设计与具体电路有着密切的联系,在设计通用板的硬件时,本文充分考虑了抗干扰设计的要求。为了提高通用板的稳定性以及抗干扰能力,本文设计了高速四层板,中间两层分别铺电源和地,上下两个表面走信号线。为了提高电源和地的抗干扰能力,数字电源和模拟电源之间以及数字地和模拟地之间使用磁珠相连,模拟地和模拟电源以及数字地和数字电源之间连接电容。为了消除公共阻抗耦合,每个芯片的关键部位都配置了容量适当的去藕电容。
图一:DSP通用版硬件结构图
2.1核心芯片介绍
2.1核心芯片介绍
XC95XL144是Xilinx公司推出的一款高性能低电压的可编程逻辑器件,它共有100个引脚,内部集成了3200个典型可用门,有144个逻辑单元,74个可用I/O口,可单独配置为输入、输出及双向工作方式,3个全局时钟及3个全局使能端和1个全局清除端,它支持3.3V和2.5V电压工作,其传输延时仅为5ns。同时,XC95XL144支持在线编程,程序通过JTAG接口下载,使用简单方便。
2.2DSP56F803通用板主要功能模块的设计
2.2.1脉宽调制模块PWM。
PWM模块主要用于电力电子变流器开关器件的控制以及各种电机控制。模块有六路输出通道,它们可以根据需求在软件中被配置成3对互补对;2对互补对和2路独立通道;1对互补对和4路独立通道;6路独立通道。在互补操作方式下,允许可编程死区时间的插入,以防止上下桥臂的贯穿短路。PWM的频率和占空比连续可调,通过电流传感器的输出波形扭曲校正和独立得顶、底输出引脚极性控制,可以实现无级变频。
2.2.2模数转换模块ADC。
ADC可以用于采样各种电流、电压、转速等信号。ADC包括8路输入通道和两个独立的采样保持电路,转换精度为12位。转换过程可以被同步信号触发,也可以被控制寄存器的START位写操作触发。输入模式可以分为单边输入和差分输入。
2.2.3串行通信模块SCI。
SCI是全双工异步通讯接口,使用标准不归零NRZ数据格式,可编程选择8位或9位数据格式,功能独立的SCI发送器和接收器以及中断请求。虽然大多数PC机都采用RS-232接口,但是它的传输距离只有50英尺左右,通用板采用RS-485差分通信,提高抗干扰能力,最大传输距离可以达到4000英尺以上,适用于远程监控。这样PC机或其它DSP板就可以通过隔离的485与通用板进行通信了。
2.2.4定时器模块TIMER。
定时器的两个主要功能:定时触发一定的事件;记录两个外部事件之间所经历的内部时钟周期数,也就是得到外部事件的时间周期。因此接口可用于各种信号的过零点检测,用于并网运行的各种装置时,可以检测电网的过零点和周期。
2.2.5由于电力电子一般只需要故障数据,本文就没有通过总线外扩存储器,只通过两个通用输入/输出口扩展了64K铁电非易失性存储器FM24CL64。FM24CL64是8192x8bit的结构,允许连续读写和随机读写,读写没有延迟,高可靠性的铁电物质,存储时间长到45年。本文还扩展了实时时钟X1226,这样在记录故障数据的同时记录故障发生的时间,以便分析故障时使用。X1226带有两个报警器和512字节的电可擦除只读寄存器,内部集成晶振补偿电路和电池后备,编程可以控制PHZ/IRQ引脚输出报警信号或与时钟频率相关的三种不同频率的信号。
2.2.6为了防止电源低电压,本文采用了电源电压监测芯片MAX706RESA,它检测电路在上电和电源电压低时都发出复位信号使整个系统复位,同时还具有看门狗定时器功能,在1.6s内DSP的WDI引脚电平不翻转,就会给DSP发一个可靠复位信号,增强了抗干扰能力。
2.3DSP56F803与XC95XL144的接口的设计
本文在安排XC95XL144引脚时遵循的主要原则是电气特性相似的同一组输入输出口尽量放在同一个宏单元,排列顺序根据布线方便为原则。通用板DSP56F803与XC95XL144的接口包括:数据选择线DS、低位数据线D0-D7、低位地址线A0-A3以及A6作为XC95XL144的复位控制端、六路PWM输出信号以及三路出错保护引脚PWMFAULTA0-PWMFAULTA2、外中断IRQA和IRQB。这里只介绍一下XC95XL144的通用功能,其它具体的功能要根据具体的电力电子应用需求来修改VHDL语言程序。
DSP56F803的地址线A6模式设置为通用输入输出口,作为XC95XL144的复位控制RESET,当RESET置低时,XC95XL144复位,输出口置为低电平(高电平有效)。DSP56F803的六路PWM输出作为XC95XL144的输入与它连接,对应有六个输出口,可对它们进行一定的逻辑操作后输出,这样可应用于更广泛的控制场合。电力电子主电路部分的过压、过流信号输入到CPLD,经过一定的逻辑,触发DSP外中断IRQA、IRQB或PWM出错保护引脚PWMFAULT来实现保护功能。DSP56F803的数据选择线DS连在XC95XL144,与低位地址线配合,控制4组每组8路输入输出口的读写操作。在使用输入输出口时一般都确定了具体是输入还是输出,因此本文设计时为提高稳定性,确定其中两组输入口和两组输出口。
3软件设计
对于DSP56800系列产品,Motorola提供两种软件开发工具:一个是Codewarrior集成开发环境,是一种可靠的用语交叉汇编、交叉C编译、链接和调试的开发工具。Metrowerks公司属Motorola,它的Codewarrior集成开发环境包含了一个可视化的工程创建和管理系统,对源代码文件和库进行全面的管理,降低了工程的复杂性。另外一种是软件开发工具EmbeddedSDK,它并不是DSP开发必需的,但是它可以大大的减轻开发工作的难度,加快开发的速度。对于DSP外设的各模块的子程序的编写采用EmbeddedSDK很容易掌握,这里就不详细介绍了。
对于CPLD,本文首先采用XilinxFoudaTIon3.li软件编译仿真。通过低位地址选择和地位数据线实现对两组输入、输出口控制部分的源程序如下:
PROCESS(RD,RESET)//读进程
BEGIN
IF(RESET=‘1’)THEN//复位信号
internal_bus_in《=“ZZZZZZZZ”;//内部总线信号
ELSIF(RD=‘0’)THEN
IF(A0=‘0’ANDA1=‘0’)THEN//地址选择
internal_bus_in《=IOA;
ELSIF(A1=‘0’ANDA0=‘1’)THEN
internal_bus_in《=IOB;
ENDIF;
ELSE
internal_bus_in《=“ZZZZZZZZ”;
ENDIF;
D《=internal_bus_in;
ENDPROCESS;
PROCESS(WRR,RESET)//写进程
BEGIN
IF(RESET=‘1’)THEN
IOC《=“00000000”;
IOD《=“00000000”;
ELSIF(WR‘EVENTANDWR=’1‘)THEN
IF(A0=’0‘ANDA1=’0‘)THEN
IOC《=D;
ELSIF(A1=’0‘ANDA0=’1‘)THEN
IOD《=D;
ENDIF;
ENDIF;
ENDPROCESS;
在进行DSP和CPLD综合调试时,针对DSP56F803对XC95XL144输入输出口的读写,本文根据DSP56800系列汇编指令集,开发了对CPLDI/O读写操作的SDK软件包,对相应的I
/O口读写只需简单的调用软件包程序。
4结束语
本文设计的基于电力电子应用平台的DSP通用板,DSP的各外设扩展功能模块已经在DSP56800的软件开发工具EmbeddedSDK基础上,通过编写一些小程序调试完毕。XC95XL144在XilinxFoudation3.li软件仿真通过后,进行综合试验,然后烧入芯片进行实验,并根据实际运行情况,对程序进行了改进。本文作者创新点是开发了DSP对CPLD四组I/O口读写操作的SDK软件包并完成了DSP和CPLD的综合调试,提高了通用板的灵活性。