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