100KW短波发射机过荷取样数字化升级
2016-10-24国家新闻出版广电总局七二三台
国家新闻出版广电总局七二三台 梁 戈
100KW短波发射机过荷取样数字化升级
国家新闻出版广电总局七二三台梁戈
本文使用模数转换芯片MAX187,8路模拟量选择芯片CD4051和8951单片机,设计一套多路模拟信号采集、模数转换及显示系统,以便对发射机的过荷取样进校数字化升级。
模数转换;过荷取样;单片机
1.绪论
我台机房运行100KW短波发射机,在日常维护中,其末前过荷,高末帘栅过荷及高末阴流过荷是危害性很大的三种故障,严重时会造成元器件的损坏。基于此,本人设计此方案,对上述3信号进行数字化监控,在发生过荷时,将过荷电流值定量地抓捕,显示出来,为故障处理的分析判断提供依据。
2.硬件电路设计
本方案所使用的硬件设备主要有电流互感器,差分放大电路,模数转换芯片MAX187,8路模拟量选择芯片CD4051,8951单片机,LCM1602等等。电流互感器使用561台自动化自带的电流互感器。
2.1差分放大电路
从电流互感器送来的电信号是一组差分信号,其2条信号线容易受到发射机内部高频高压信号以及环境温度的影响造成失真。这些影响对2条信号线的影响是相同的,所以可以使用差分电路将干扰信号一并删除。此电路分2级,第一级是差动放大器,第二是增益放大器。电流互感器输出的模拟信号是0-5伏,经本电路处理后,输出的模拟信号即图2中IOUTX信号的范围是0-5伏。
2.2多通路模拟信号选择芯片CD4051
因为本方案要监测3个过荷电流信号,所以后续电路中AD芯片MAX187要对着3个信号分别进行模数转换,MAX187在每一时刻只能对一路模拟量进行转换,而现在有3路模拟量,如果每一路都配备一个MAX187,将使得成本上升。为此本方案选择多通路模拟信号选择芯片CD4051,对3路模拟信号进行循环选取,这样就保证了每路模拟信号都可以被检测到,而且每一时刻仅有一路被选中。CD4051与单片机的接口电路如图1所示。
图1 CD4051与单片机的接口电路
2.3模数转换
信号由CD4051芯片送到MAX187模数转换器,进行AD转换,将模拟量变成数字量。与单片机的接口电路如图1所示。MAX187的引脚1是电源接口,外接5伏电源,同时通过一个陶瓷电容和电解电容接地,起到稳压滤波的效果。引脚2作为模拟量的输入口, 与CD4051的输出脚相连,引脚3接地保证芯片正常工作,引脚4是电压参考端通过一个电解电容接地,当接通电源20ms后电解电容充电完毕,可以进行正常的模数转换,引脚5接地,引脚6是MAX187的输出端,与单片机的P34脚相连,引脚7是片选信号与单片机的P32脚相连,引脚8是时钟信号与单片机的P33脚相连。
3.软件设计
本方案中的软件设计主要包括以下部分:MAX187模数转换器的驱动程序,LCM1602液晶显示器的驱动程序,过荷信号的处理程序。下面列出这些程序的关键代码并解释。
3.1MAX187驱动程序
此程序是MAX187的驱动程序,完成模数转换,作为子函数被主函数调用,每调用一回就进行一次转换。
#include<reg52.h>
#include<intrins.h>
sbit bCS=P3^2;//设P32脚为片选信号
sbit bCLK=P3^3;//设P33脚为时钟信号
sbit bOUT=P3^4;//设P34脚为数字输出信号
unsigned int ReceiveData ()
{ unsigned char i; unsigned int RecData=0;
bSCLK=0; bCS=0; OutDelay(35); bSCLK=1; //时钟上升沿,芯片开始模数转换
for(i=0;i<13;i++) { RecData<<=1;
if(Clock()) RecData+=1; }//将MAX187的12位数据寄存器存满
bSCLK=1; OutDelay(1); bSCLK=0; OutDelay(1); bSCLK=1;
OutDelay(5); bCS=1; OutDelay(5);
bCS=1; bSCLK=1; bDOUT=1;//结束此次模数转换
return(RecData);}//将转换结果送到上级调用函数
3.2LCM1602驱动程序
下面的程序是液晶屏的程序,包含驱动程序和显示程序,分为几个小函数。
void write_com(uchar com)//发送控制字的子程序
{P2=com;//将单片机的P2口作为发送数据的端口
rs=0;lcden=0;delay(10);//rs位置0,表示此次传输控制字给LCM
lcden=1;delay(10);lcden=0;}//lcden产生上升沿,使得P2口的数据传给LCM
void write_date(uchar date) //发送待显示数据的子程序
{P2=date; //将单片机的P2口作为发送数据的端口
rs=1;lcden=0;delay(10); //rs位置1,表示此次传输待显示数据给LCM
lcden=1;delay(10);lcden=0;} //lcden产生上升沿,使得待显示的数据传给LCM
void init()//LCM的初始化程序,该函数会在主函数中被调用
{write_com(0x38);delay(20);
write_com(0x0f);delay(20);
write_com(0x06);delay(20);
write_com(0x01);delay(20);}
3.3CD4051的地址选择程序
void add(int i)//i表示要选择的通道,可以从1-8
{ int a,b,c;//定义a,b,c3个临时变量用于对i编码
add2=i/4; a=(int)(add2)*4; b=(int)(a)*2; c=(int)(i-a)*2;对i进行编码
add1=(int)c/4; add0=(i+2)%2;}//对地址位进行赋值
4.结语
本设计方案可以将瞬间过荷值有效抓捕,且测量结果精确到千分之一安培,误差比模拟采集系统降低1-2个数量级,为维护人员检查处理故障提供了可靠的数据,同时为今后抑制瞬间过荷值做出前期准备。