采用电力电子应用平台DSP通用板的设计原理
2.2 DSP56F803通用板主要功能模块的设计
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.3 DSP56F803与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集成开发环境包含了一个可视化的工程创建和管理系统,对源代码文件和库进行全面的管理,降低了工程的复杂性。另外一种是软件开发工具Embedded SDK,它并不是DSP开发必需的,但是它可以大大的减轻开发工作的难度,加快开发的速度。对于DSP外设的各模块的子程序的编写采用Embedded SDK很容易掌握,这里就不详细介绍了。
对于CPLD,本文首先采用Xilinx Foudation3.li软件编译仿真。通过低位地址选择和地位数据线实现对两组输入、输出口控制部分的源程序如下:
PROCESS(RD,RESET) //读进程
BEGIN
IF(RESET=’1’ )THEN //复位信号
internal_bus_in="ZZZZZZZZ";//内部总线信号
ELSIF( RD=’0’)THEN
IF(A0=’0’ AND A1=’0’)THEN //地址选择
internal_bus_in=IOA;
ELSIF( A1=’0’ AND A0=’1’)THEN
internal_bus_in=IOB;
END IF;
ELSE
internal_bus_in="ZZZZZZZZ";
END IF;
D=internal_bus_in;
END PROCESS;
PROCESS(WRR,RESET) //写进程
BEGIN
IF(RESET=’1’) THEN
IOC="00000000";
IOD="00000000";
ELSIF( WR’EVENT AND WR=’1’) THEN
IF( A0=’0’ AND A1=’0’) THEN
IOC=D;
ELSIF(A1=’0’ AND A0=’1’) THEN
IOD=D;
END IF;
END IF;
END PROCESS;
在进行DSP和CPLD综合调试时,针对DSP56F803对XC95XL144输入输出口的读写,本文根据DSP56800系列汇编指令集,开发了对CPLD I/O 读写操作的SDK软件包,对相应的I/O口读写只需简单的调用软件包程序。
4 结束语
本文设计的基于电力电子应用平台的DSP通用板,DSP的各外设扩展功能模块已经在DSP56800的软件开发工具Embedded SDK基础上,通过编写一些小程序调试完毕。XC95XL144在Xilinx Foudation 3.li软件仿真通过后,进行综合试验,然后烧入芯片进行实验,并根据实际运行情况,对程序进行了改进。本文作者创新点是开发了DSP对CPLD 四组I/O口读写操作的SDK软件包并完成了DSP和CPLD的综合调试,提高了通用板的灵活性。
评论