摘 要:介绍一种用PIC系列单片机控制的滤波器系统,着重介绍了智能控制系统的组成和工作原理,并给出了软件设计流程。
关键词:PIC16F876单片机;驱动器;滤波器
1.概述
在射频电路里经常需要滤除谐波干扰,尤其是在较宽频带范围内进行谐波滤波时,往往需要滤波网络较多,并根据扫频过程的不同频段,使用相应的滤波网络。本文介绍了一种用PIC系列微控制器对滤波器系统进行智能控制的实用电路系统。它借助于单片机的结构简单,造价低廉,易于操作等特点,可以实现灵活的滤波网络控制操作。非常适合于需要分段滤除谐波以及各种低通、高通、带通滤波网络切换的场合。其控制机理也可以用于调谐电路对回路里的器件进行控制。
2.系统设计
滤波网络智能控制系统的电路原理框图如图1所示。
图1滤波网络智能控制系统原理框图
由图1可知,滤波网络智能控制系统主要由数据指令终端接口、滤波网络控制器、驱动电路、数字开关和多路滤波器组成,该系统可以通过数据指令终端接口,接收来自主控端对智能滤网络系统的命令,控制器进行指令发布,由滤波网络控制器进行不同滤波网络使用控制。在该系统中,滤波网络控制器和驱动电路的设计与是该系统的核心与关键。
3.工作原理
图2控制器的工作原理
滤波网络智能控制系统的工作原理如图2所示,整个电路采用美国Microchip公司生产的PIC16f876、电可擦性用户可编程(OPT)单片机作为滤波网络控制核心部件,同时组合数字开关电路、驱动电路、状态检测、串口通讯等技术,在PIC单片机控制下,实现对电路的高通、低通、带通和分段滤波等操作。
工作时接收终端操作指令(也可以在单片机中内置几种工作模式),将整个扫频过程分8段,单片机控制多路驱动器分段驱动模拟开关的导通和断开,进而控制各个滤波器分段工作,使通过滤波网络的射频输出保持有用信号,滤除谐波分量。
图2中U3、U4(CD4051)是一个单刀八掷的模拟开关,用以完成滤波网络的转换。由于U3,U4,开关切换的驱动电压要求达到5 V以上,而单片机的高电平仅为3~5 V,达不到驱动电压,所以要采用一个驱动器(UCN5841)才能实现由单片机控制的模拟开关切换。驱动电路由两片有锁存功能的驱动电路UCN5841 (U2)实现,用于将由单片机发出的控制信号锁存并传输给U3,U4,实现程控;U3的工作过程如下:它的INH脚通过驱动电路接收来自单片机(U1)的控制信息,A、B、C脚通过驱动器接收来自单片机的数据信号,经译码输出8位二进制代码OUT7~OUT0。通过OUT7~OUT0分别将IN端接通到滤波网络的射频信号输入端。U4和U3的工作过程一样是用来切换分段滤波器的另一端;本系统设计的电路结构能控制的滤波器网络最多可以达8组,每条对应一组5阶考尔滤波器。
软件设计共分5个部分:上行串口通讯程序、同步信号检测、参数计算、驱动控制、状态检测。
3.1滤波网络控制器
滤波网络智能控制的核心电路是滤波网络控制器,由单片机担任,本单片机电路采用PIC系列来组成。各部分控制部分软件运行的硬件环境主要由PIC微处理器组成。通过运行内部程序完成以下主要任务:
* 通过串口接收终端命令
* 将终端发来由用户设置的运行命令,转换成相应的控制参数
* 通过对驱动电路的控制,完成分段滤波器的切换。
* 检测滤波网络状态并上传至终端。
3.1.1 PIC单片机结构特点
PIC16F877A单片机内部有8K*14的FLASH程序存储器和512字的RAM数据存储器:为宽字单周期指令、哈佛双总线和RISC结构,指令精简,其数据总线是8位,指令总线则是14位。因此具有很高的指令速度,2.5~6.0V低工作电压、低功耗。芯片内含有A/D、内部EEPROM存储器、比较输出、捕捉输入、PWM输出、I2C和SPI接口、集成了异步串行通信(USART)接口模块、功能强大的I/O性能、支持中断处理(14个中断源)、2级子程序堆栈、可编程的特殊外围接口特性、8K FLASH程序存储器读写等多种功能。且具有保密保护,使系统具有最高的处理效率和突出性能。内部串行接口USART,可以定义三种工作方式:全双工异步、半双工同步主控和半双工同步从动方式。适合同单片机外部扩展独立的外设部件进行串行通信。
3.1.2 管脚说明
PIC16C73是28脚双列直插式大规模集成芯片。各引脚功能如下:
OSC1/CLKIN:为晶体振荡器输入引脚。
OSC2/CLKOUT:振荡信号输入和输出端。振荡方式有阻容、晶体、陶瓷等多种方式,本系统采用晶体芯片,指令周期为0.26μs。
MCLR/Vpp:芯片复位/编程电压输入脚,复位时,低电平有效。
RA0/AN0~RA5/AN4/SS:复用引脚,RA0~RA5为双向数据线;本系统用作状态检测端口。
RB0~RB7:B口双向数据信号线,其引脚含有可控的弱上拉电阻。本系统选作输出控制端口。
RC0~RC7:为C口双向数据信号线,均为多功能复用引脚。本系统中RC6/作为异步发送数据线;RC7作为异步接收数据线。
VDD和VSS:电源和地。
4.软件编程
4.1 串口编程软件
本系统用单片机控制Modem完成串行异步/同步通信,PIC通过异步串口发送AT(请求)命令来实现对Modem控制进行串行通信,与Modem接口按RS-232标准设计。USART模块在单片机的RX引脚上接收,在TX引脚上发送,串行信息的编码方式采用1位起始位、8位数据位和1位停止位。工作时接收终端操作指令,通过该软件可以方便地实现对频率划分、扫频模式、定时等参数的设定,以及设备状态的检测与上传。在较低速率的线路上实现了数据的实时传输,收到了很好的效果。只要将电路上的RS232口与PC机串口相连,就可实现通信。
利用Visual Basic中的Mscomm控件进行串口通信软件的设计非常简单。PC端数据接收通过Oncomm事件来实现,当接收缓冲区的数据达到rthreshold属性设定值时,就会触发Oncomm事件,在中断程序中读出接收缓冲区中的数据,将收到的字符型数据转换成字符串后便送到各个文本框显示。数据发送时,首先读出文本框内字符串,再将其转换成字符型数据,最后通过单击“发送”按钮,将数据送到发送缓冲区中,从而将数据从串口发送出去。
要实现系统的正常数据传输,正确设置PIC异步串口USART至关重要。在此,以异步接收方式为例,编写程序应遵循以下几个步骤:
(1) 选择合适的波特率,并将其写入SPBRG寄存器
(2) 工作于异步方式时设置SY
NC=0,SPEN=1
(3) 如需中断功能,断屏蔽GIE和PEIE置1,同时置屏蔽寄存器的RCIE=1;
(4) 如需接收9位数据,置接收状态和控制寄存器的RX9=1;
(5) 置接收状态和控制寄存器的CREN=1,激活接收器;
(6) 判断是否在接收过程中发生了错误;
(7) 读RCREG寄存器中已经收到的数据;
(8) 如果发生了接收错误,通过置CREN=0以清除错误标志。下面给出了串口的初始化程序:
bsf STATUS,RP0 ;选择存储体1bcf STATUS,RP1bsf TRISC,7 ;设置RC7脚为输入状态
bcf TRISC,6 ;设置RC6脚为输出状态movlw 25H ;设置波特率movwf SPBRG
movlw 20H ;设定8位发送/接收movwf TXSTA ;设定异步方式。低速方式
bsf PIE1,TXI ;使能发送器中断bsf PIE1,RCIE ;使能接收器中断
bcf STATUS,RP0 ;选择存储体0movlw 0x90 ;设定8位接收,使能接收器
movwf RCSTA ;使能串口
3 系统控制软件及工作过程
系统的软件流程如图3所示。
下面以8段滤波器为例说明系统的工作过程:
滤波网络控制器通过串口接收终端命令,当控制器收到数据终端发来的工作指令,根据指令进行频率范围(波段)计算,并转换出相应的下行控制命令;通过模拟串口发送到下行驱动器U2锁存起来,当检测到同步信号时,选择相应的滤波模式启动驱动器对模拟开关输出端口进行控制,进而接通对应的滤波器网络实现对滤波网络的选通连接,如:扫频频率从波段1开始扫频,此时接通f1低通滤波器,其他滤波器断开;扫频频率到波段2时接通f2低通滤波器,其他滤波器断开;扫到波段3时接通f3低通滤波器等。
4.结论
该系统具有结构简单,操作方便的特点,经反复测试,运行正常。此外,该系统也可改造成控制其它开关量的调谐控制系统,满足不同的需求。