基于DSP的跟踪频率变化的交流有样技术
电路,D2稳压二极管使比较器的输出为0~5V,将模拟信号转换成数字信号送入DSP的捕获器输入端CAP1和不可屏蔽中断端NMI。
(3)A/D转换器和DSP的接口电路
电路原理如图3所示。ADC芯片采样14位的MAX125。TMS320F240的定时比较器输出端T3CMP接MAX125的启动转换器CONVST;MAX125转换结束产生中断,通过INT脚接DSP的XINT1脚向DSP申请中断,DSP在中断程序中读取转换结果。DSP对MAX125的操作是通过端口访问完成的,MAX125的片选端CS4接译码器的一个输出端,译码器的输入和使能端由DSP的地址线和I/O信号LS控制。
每隔一个采样周期(T/N)T3CMP端输出一个下降沿脉冲,启动MAX125进行一次A/D转换。采样间隔会根据电网频率的变化自动调整。
4软件设计
下面给出几个程序函数。具体数据处理的函数因系统功能不同而异,限于篇幅这里不作讨论。
(1)定时器、捕获器初始化程序:
voidinit_TimerCapturet()
{*T2CNT=0;/*计数寄存器初始化*/
*T3CNT=0;
*T3CMP=1000;
*T2PER=30000;
T3PER=4000;/T2PER、T3PER会在NMI中断程序中根据电量频率的变化作出相应的调整*/
*CAPCON=0XBC55;/*设置捕获器*/
*GPTCON=0X186A;
*T2CON=0X17CA;/*方式2,分频系数为128*/
*T3CON=0X10CA;/*方式2,分频系数为1*/
*NMI_CR=0X64;/*设置不可屏蔽中断*/
}
(2)ADC转换结束中断响应程序
>voidc_int1()
{inti;/*其余为全局或静态变量*/
/*程序中读取ADC的转换结果*/
if(AChanel==1)/*读A组3路的转换结果*/
{outport(0x01,0x03);/*输出MAX125的控制字*/
inport(0x01,&ADC_Data[0]);
inport(0x01,&ADC_Data[1]);
inport(0x01,&ADC_Data[2]);
AChanel=0;
}
else
{/*如上读取B组3路的转换结果*/
}
/*将14位的结果转换为16位的(初码存放)*/
for(i=1;i<6;i++)
ADC_Data[i]=ADC_Data[i]<<2/4;
}
(3)不可屏蔽中断的中断程序
voidc_i 《基于DSP的跟踪频率变化的交流有样技术(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142015.html
(3)A/D转换器和DSP的接口电路
电路原理如图3所示。ADC芯片采样14位的MAX125。TMS320F240的定时比较器输出端T3CMP接MAX125的启动转换器CONVST;MAX125转换结束产生中断,通过INT脚接DSP的XINT1脚向DSP申请中断,DSP在中断程序中读取转换结果。DSP对MAX125的操作是通过端口访问完成的,MAX125的片选端CS4接译码器的一个输出端,译码器的输入和使能端由DSP的地址线和I/O信号LS控制。
每隔一个采样周期(T/N)T3CMP端输出一个下降沿脉冲,启动MAX125进行一次A/D转换。采样间隔会根据电网频率的变化自动调整。
4软件设计
下面给出几个程序函数。具体数据处理的函数因系统功能不同而异,限于篇幅这里不作讨论。
(1)定时器、捕获器初始化程序:
voidinit_TimerCapturet()
{*T2CNT=0;/*计数寄存器初始化*/
*T3CNT=0;
*T3CMP=1000;
*T2PER=30000;
T3PER=4000;/T2PER、T3PER会在NMI中断程序中根据电量频率的变化作出相应的调整*/
*CAPCON=0XBC55;/*设置捕获器*/
*GPTCON=0X186A;
*T2CON=0X17CA;/*方式2,分频系数为128*/
*T3CON=0X10CA;/*方式2,分频系数为1*/
*NMI_CR=0X64;/*设置不可屏蔽中断*/
}
(2)ADC转换结束中断响应程序
>voidc_int1()
{inti;/*其余为全局或静态变量*/
/*程序中读取ADC的转换结果*/
if(AChanel==1)/*读A组3路的转换结果*/
{outport(0x01,0x03);/*输出MAX125的控制字*/
inport(0x01,&ADC_Data[0]);
inport(0x01,&ADC_Data[1]);
inport(0x01,&ADC_Data[2]);
AChanel=0;
}
else
{/*如上读取B组3路的转换结果*/
}
/*将14位的结果转换为16位的(初码存放)*/
for(i=1;i<6;i++)
ADC_Data[i]=ADC_Data[i]<<2/4;
}
(3)不可屏蔽中断的中断程序
voidc_i 《基于DSP的跟踪频率变化的交流有样技术(第3页)》