范文一:可编程滤波器的设计
可编程滤波器的设计
摘要
本系统以51单片机和FPGA为核心,完成程控放大电路和程控滤波电路,同时设计完成
了简易幅频特性测试仪。单片机通过控制反馈网络的继电器来调节放大电路的增益,最大
能放大60db,倍数可调,采用高精度的电阻匹配,使其具有更好的精度。程控滤波电路采
用单片机控制CMOS 双二阶通用开关电容有源滤波器MAX262改变参数,使截止频率从1kHZ
到40khz可调,具有很高的精度,可达到1%。本系统还完成了简易的幅频检测装置,能对
目标系统进行一定精度下的幅频检测,并输出波形。从数据显示来看,本系统能执行可控
放大、滤波及幅频检测等任务,表现出极高的稳定性和可靠性,本系统完成了所有基本功
能和绝大部分发挥部分。
关键字 开关电容滤波 max262 程控放大
Abstract
The present system of 51 single-chip FPGA at the core and to complete the program and the program-controlled amplifier circuit filter at the same time completed the design simple amplitude test. Single-chip network by controlling the relay feedback to adjust amplifier gain, the largest magnification can 60db, a multiple adjustable using high-precision resistor matching, so that it will have better accuracy. Program-controlled filter circuit using CMOS single-chip control of dual-General second-order switched capacitor MAX262 active filter to change the parameters so that the cut-off frequency from 1kHZ to 40khz adjustable, high accuracy, up to 1%. The system also completed a simple increase frequency detection devices on the target system to a certain accuracy of detection increases the frequency and the output waveform. From the data, the system can be controlled implementation of the amplification, filtering and frequency of testing, and other pieces of the task, showing a very high stability and reliability of the system to complete all the basic functions of most of the play, and part of.
Keyword: filter capacitor max262
program-controlled switches to enlarge
- 1 -
目录:
第一章:MAX262芯片的介绍………………………1 第二章:滤波器电路………………………3 第二章:方案的论证和设计………………………5 第三章:程控滤波器的设计………………………5 第四章:幅频特性电路的设计………………………5 第五章:系统结构框图………………………5 第六章:单元模块设计………………………6
1( 可控放大电路的设计………………………6
2( 可控滤波器电路………………………6
3( 四阶椭圆型低通滤波器………………………7
4( 幅频特性电路………………………7 第七章:系统软件流程图………………………8
1. 单片机流程图………………………8
2. FPGA设计框图………………………8 第八章:系统测试………………………9
1(测试使用仪器………………………9
2. 系统整机调试………………………9
3. 用交流毫伏表测量四阶低通椭圆滤波器的通频
带………………………10
4. 简易幅频特性仪………………………10
- 2 -
第九章:总结………………………10
第十章:参考文献………………………11
附录………………………13
致辞………………………22
MAX262芯片的介绍:
在电子电路中,滤波器是不可或缺的部分,其中有源滤波器更为常用。一般有源滤波器由运算放大器和RC元件组成,对元器件的参数精度要求比较高,设计和调试也比较麻烦。美国Maxim公司生产的可编程滤波器芯片MAX262可以通过编程对各种低频信号实现低通、高通、带通、带阻以及全通滤波处理,且滤波的特性参数如中心频率、品质因数等,可通过编程进行设置,电路的外围器件也少。本文介绍MAX262的情况以及由它构成的程控滤波器电路。
1 MAX262芯片介绍
MAX262芯片是Maxim公司推出的双二阶通用开关电容有源滤波器,可通过微处理器精确控制滤波器的传递函数(包括设置中心频率、品质因数和工作方式)。它采用CMOS工艺制造,在不需外部元件的情况下就可以构成各种带通、低通、高通、陷波和全通滤波器。图1是它的引脚排列情况。
图1 MAX262引脚
V+ —— 正电源输入端。
V- —— 负电源输入端。
GND —— 模拟地。
CLKA —— 外接晶体振荡器和滤波器A 部分的时钟输入端,在滤波器内部,时钟频率被2分频。 CLKB —— 滤波器B部分的时钟输入端,同样在滤波器内部,时钟频率被2分频。
- 3 -
CLKOUT —— 晶体振荡器和R-C振荡的时钟输出端。
OSCOUT ——与晶体振荡器或R-C振荡器相连,用于自同步。
INA、INB —— 滤波器的信号输入端。
BPA、BPB—— 带通滤波器输出端。
LPA、LPB—— 低通滤波器输出端。
HPA、HPB—— 高通、带阻、全通滤波器输出端。
WR —— 写入有效输入端。接V+时,输人数据不起作用;接V-时,数据可通过逻辑接口进入一个可编程的内存之中,以完成滤波器的工作模式、f0及Q的设置。此外,还可以接收TTL电平信号,并上升沿锁存输人数据。
A0、A1、A2、A3 ——地址输人端,可用来完成对滤波器工作模式、f0和Q的相应设置。 D0、D1 ——数据输入端,可用来对f0和Q的相应位进行设置。
OP OUT —— MAX262的放大器输出端。
OP IN —— MAX262的放大器反向输入端。
图2是MAX262的内部结构。MAX262由2个二阶滤波器(A和B两部分)、2个可编程ROM 及逻辑接口组成。每个滤波器部分又包含2个级联的积分器和1个加法器。该电路的主要特性有:
1. 配有滤波器设计软件,可改善滤波特性,带有微处理器接口;
2. 可控制64个不同的中心频率f0、128个不同的品质因数Q及4种工作模式;
3. 对中心频率,f0和品质因数Q可独立编程;
4. 时钟频率与中心频率比值(fclk/f0)可达到1%(A级);
5. 中心频率f0的范围为75 kHz。
图2 MAX262内部结构
图3是控制数据输入时序。可在WR的下降沿经逻辑接口给滤波器A、B中的fclk/f0、Q及工作模式控制字分别赋予不同的值,从而实现各种功能的滤波。
- 4 -
图3 控制数据输入时序
2 电路原理及设计过程
2.1 硬件设计
图4是按上述要求设计的程控滤波器电路。
图4 滤波器电路
单片机选用AT89C52。AT89C52是一种低功耗、高性能的CMOS型8位微型计算机;有8 KB的Flash,256 B的RAM,32线I/O 口,3个16位定时器/计数器,6向量两级中断,1个双工串行口;具有片内自激振荡器和时钟电路等标准功能。此外,AT89C52设有静态逻辑,用于运行到零频率,并支持软件选择的节电运行方式和空闲方式,使CPU停止工作,而允许RAM、定时/计数器、串行VI和中断系统继续工作。在掉电方式下,片内振荡器停止工作。由于时钟被冻结,一切功能都停止,只有片内RAM 的内容被保存,直到硬件复位才恢复正常工作。该电路由芯片AT89C52的P1口来控制,由单片机的P1.0,P1.5口及P1.7将数据送入存储器54HC373存起来,再送入MAX262。通过设置相应的参数,可实现带宽为30,50 kHz的带通滤波。
抗干扰电路选用X25045芯片。X25045有三种功能:看门狗定时器、电压监测、E2PROM。看门狗电路在系统出现故障,程序“跑飞”时,会产生复位信号,使系统复位。电压监测可以保护系统免受低电压状态的影响。当VCC降到最小VCC转换点以下时,系统复位,一直到VCC返回且稳定为止。在滤波器输出中,显示器选用大连东方显示器材公司的EDM-1601。它是16列×1行的
- 5 -
液晶显示器组件,与CPU接口简单、功耗低、编程方便。键盘操作时可能会由于逻辑输入跃变而产生某些噪声。为避免出现这种情况,在输入的数字线接有逻辑门缓冲(图4中未画)。
2.2 软件部分
采用汇编语言编程,MAX262的地址A0,A3与数据D0D1的关系如表1所列。由表1可看出,每个滤波器的工作模式 中心频率 、品质因数Q值所需编程数据,均需分8次写入MAX262的内部寄存器才能完成设置。系统的主程序流程(单片机主程序)如图5所示。
图5 系统主程序流程
首先进行初始化,然后从片内RAM 中读取新设置标志位进行判断:如果不是,给MAX262芯片送入滤波器所需的初始化工作参数;如果是新设置,则根据新建中断服务程序获得的键位进行处理。进行新设置时,首先根据输入的键值完成对滤波器的选择,包括滤波器A和B的设置选择,以及相应滤波器的类型选择。然后,由Q值计算N并转换成二进制编程数据Q0,Q6送片内RAM,由输入的中心频率f0值计算N1。N为二进制数据Q0,Q6对应的十进制整数,范围为0,127,
- 6 -
共128级;N1为二进制数据F0,F5对应的十进制整数,范围为0,63,共64级。在获得MAX262
的工作参数后,根据表1将这些参数转换为8字节的编程数据。由AT89C52的P1口通过54HC373
送入MAX262。设置完成后,MAX262就按照当前所需求的中心频率、Q值和滤波器工作方式对
输入信号进行滤波处理。
二( 方案的论证和设计
1( 程控放大器的设计
(1)利用数字电位器,通过单片机改变负反馈的阻值,进而改变放大倍数,优点电
路结构简单,灵活;缺点是精度不够高。
(2)利用选择电路,选通某条支路,由于使用的是分立元件,匹配度高,可以使放
大倍数的精度大大提高,却也有电路复杂的缺点,由于本设计任务的精度要求,因而
选择此种方案。
2( 程控滤波器的设计
滤波器设计有很多种,但主要分为数字滤波电路和模拟滤波电路。
FIR数字滤波器。数字滤波器解决了模拟滤波器所无法克服的电压漂移,(1)(采用
温度漂移和噪声等问题,但由于计算量过大,且由于未系统学习过FIR,故不选用。
(2) 采用有源RC滤波电路,使用数字电位器控制电阻值,从而可以改变电路的滤波特性。特点电路简单灵活,缺点是精度不够,
(3)(采用专门的开关电容滤波集成芯片。MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通低通高通陷波和全通配置且不需外部器件,功能强大,易于掌控。故选用此种方案。
3( 幅频特性电路的设计
幅频特性是指幅度随频率的变化的关系;主要原理是控制扫描信号的频率变化,检测出幅度的变化;对于幅度的检测,传统方案是使用AD,将检测的数据传入控制器,由控制器对数据进行处理,然后DA输出。此种方案复杂,繁琐,精确度不高。现采用检测真有效值芯片LTC1966,LTC1966可以检测交流信号的真有效值具有高精确度,总误差小于0.25%。
三( 系统结构框图:
下图为本系统的主框图:
- 7 -
前滤波级
放单片机 电路 大输入 电时钟
路
FPGA
输出示波器 待测 有效值检DDS电路 测电路 输出
图1 系统电路框图
四( 单元模块设计
1( 可控放大电路的设计
放大电路可对输入信号进行不同倍数的放大,使信号以适当的幅值通过滤波电路。
通过电压跟随部分提高电路的输入电阻,控制部分通放大电路的组成框图如 图1 所示。
过对反馈部分的控制来实现对电路放大倍数的控制。
控制电路
信号输入
信号输出 电压 通路选择
跟随
图2 放大电路组成框图
通路选择采用继电器控制电路的导通,从而选取不同的放大倍数。
放大部分输入端电阻R选则100Ω,则反馈电阻Rf的
选择根据
Vo = - Ui × ( Rf / R24 )
从而可以选取0db—60db放大倍数下的反馈电
阻。为了使信号频率为40khz时,增益能够达到60db,,
集成运放的带宽增益积必须大于40M。
我们选择集成运放ths4052(带宽
增益积典型值为70MHZ)以满足带宽增益积的要求。
图3 反馈电路
实际电路模块见附录二。
2( 可控滤波器电路
- 8 -
输入通道 MAX 单片
机 262 时
钟 输出通道
图4 滤波器电路
滤波电路采用MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通、低通、高通、陷波和全通配置且不需外部器件。
由于内部参数的选择,采用由FPGA分频产生四时钟输入,单片机电路负责向MAX262输入控制信号和数据。
实际电路模块见附录二。
3( 四阶椭圆型低通滤波器
我们采用椭圆形归一化LPF的设计方法,电路图5
所示。我们选择带内起伏量为1.0db阻带频率为通
带频率的4.0倍。带内起伏量为1db时,阻带内有
一个限波点的椭圆型归一化LPF的设计数据如 表
1(见附录) 所示。
待设滤波器截止频率与基准滤波器截止频 图5 椭圆滤波电路
率的比值M为:
M = 50k / ( 1 / 2π ) = 314159 对基准滤波器的所有元件值除以M,得到截止频率已变换成待设计滤波器的截止频率160khz时的元件参数。
C1(new)= C1(old)/ M =6.31355μF
C2(new)= C2(old)/ M =156.258nF
L3(new)= L3(old)/ M =3.06374μH
待设滤波器的特征阻抗与基准频率器特征阻抗的比值K为:
K = 51Ω / 1Ω =51
将所有的电感元件值乘以 K ,将所有的电容值除以 K 。这样,便得到了待设计的特征阻抗为51Ω,且截止频率为50K的四阶椭圆滤波器。
C1(new)= C1(old)/ K =123.79 nF
C2(new)= C2(old)/ K =3.0639nF
L3(new)= L3(old)× K =156.25μH
实际电路模块见附录二。
4( 幅频特性电路
幅频检测电路基本原理是通过扫描不同频率,通过目标电路,然后检测幅值,显示输出幅值的过程。
扫描频率电路使用FPGA产生的DDS电路,基本输出为10HZ到200KHZ,利用单片机控制DDS的控制字产生步进为10KHZ的扫描频率。
- 9 -
幅值检测电路利用专用芯片LTC1966,LTC1966可以检测交流信号的真有效值具有高精确度,总误差小于0.25%
幅度检测电路见附录二。
三(系统软件流程图
1(单片机流程图:具体程序见附录;
初始化
等待键值Key
合理键值,
放大增放大增低通滤波扫频模高通滤波
益减小 益增大 器截止频式控制器截止频
率设定 输出 率设定
2(FPGA设计框图 :具体程序见框图;
频
率存储DDS输出数据 控寄存器 制器
字
控制信号 所需时钟输出
时钟分时钟输入
频 五( 系统测试:
- 10 -
1(测试使用仪器:pc机,数字示波器TDS1002,F10A型函数信号发生器,直流稳压源LPS-305,DF2172A交流毫伏表。
2(系统整机调试:
(1)程控放大器测试:
测试方案:输入电压振幅为10mv,调节放大倍数,分别测量输出电压。
表一 前级放大倍数测量 输入电压:6.9mv (有效值) 预测放大输出电压 输出电压 输出电压 输出电压 实际放误差 倍数 (100hz) (1khz) (10khz) (40khz) 大倍数
0db 7.19mv 7.19mv 7.19mv 7.19mv 1.042 1.03%
10db 22.2mv 22.2mv 22.2mv 22.2mv 3.217 1.80% 20db 69mv 6 9mv 69mv 69mv 10(0 0.00%
30db 220mv 220mv 220mv 220mv 31.88 0.88%
40db 662mv 650mv 640mv 624mv 91.3 8.70%
50db 2.09 2.09 2.05 1.92mv 290.5 8.12% 60db 6.70 6.60 6.40 4.40 8043 20%
经测得,在50db以下时,通带包含100 Hz—40khz,60db通带在100-37.5khz。增益
10dB步进可调,放大器输出电压无明显失真。
(2)程控滤波器设计
测试方法:跟据截至频率的定义,我们取通带电平下降到-3db的频率点,并分别测出信号频率为高通截止频率一半,低通截止频率二倍,放大电路增益为40dB时,总体电路的增益,电路数据使用交流毫伏表测量。
表二 低通特性 程控放大增益为40db
预测频率 实际频率 β( 2fc处系统总增益) 误差
1khz 996hz 29.97 0.40%
5khz 4.96khz 29.83 0.80%
10khz 10.02khz 29.83 0.20%
15khz 15.00khz 29.23 0.00%
20khz 20.01khz 29.23 0.05%
表三 高通特性 程控放大增益40db
预测频率 实际频率 β(0.5fc处系统总增益) 误差
1.16K 1khz 29.99 16.00%
5.00K 5khz 29.23 0.00%
- 11 -
10.02K 10khz 29.23 0.20%
15.04K 15khz 29.23 0.27%
19.90K 20khz 29.23 0.50%
(3)用交流毫伏表测量四阶低通椭圆滤波器的通频带。
在输入端接入函数信号发生器,保持输入信号的有效值为0.5v,改变信号的频率,测量输出信号的有效值。
表四 椭圆滤波测量数据 Vi = 0.5v
椭圆滤波器的截止频率为51KHz,带内起伏频率 Vo(v)
?1dB。 100Hz 0(500
前级放大电路的输出端接入椭圆滤波器,放1KHz 0(500
大电路的输入端接信号发生器,放大电路的增益10HHz 0(524
设为40dB,信号频率设为200KHz,分别用交流30KHz 0(708
毫伏表测量输入输出电压的有效值,测得输入电50KHz 0(362
压为0.695v,输出电压为0.795v。总电压增益小51KHz 0(355
于5dB。
(4)简易幅频特性仪
测试方案:将简易幅频特性仪通过一目标电路,将输出接示波器;
本设计任务中,我们完成了简易幅频特性仪的设计,性能达到了目标要求; 六( 总结:
我们很好完成了可控放大电路,可控滤波电路等基本要求,可控放大电路能在0db 到60 db可调,精度达到了我们的要求,可控滤波电路能选择高低通设置,并且在1khz到40khz可调,精度达到1%,此外,我们很好的发挥了四阶椭圆滤波器的设计和简易幅频特性仪,并和好达到设计要求。
采用单片机AT89C52完成对可编程滤波器MAX262的控制.能很好地实现有源滤波器的设计工作;这种程控滤波器具有使用灵活、调试容易及工作性能稳定等特点。它只要1片MAX262通过滤波器A和B的缀联就能很容易完成四阶滤波器电路的设计。另外,还可以通过对AT89C52的ALE信号进行倍频和分频,实现对MAX262的所有工作频率范围的覆盖。该电路稍加改动后,还可通过对不同参数和N值的设置,来实现全通、低通、高通、带阻等滤波器的设计。
七( 参考文献
- 12 -
1 蒋瑜, 陈循, 杨雪, 阮启明. 基于MAX262的程控滤波器的实现[J]. 电测与仪表 , 2000,(12) 2 邓重一. 基于可编程芯片MAX262的有源滤波器[J]. 单片机与嵌入式系统应用 , 2005,(05)
倪向东. 单片机控制的双路有源滤波器设计[J]. 电子技术应用 , 2002,(01) 3
4 张飞岭, 张永瑞, 谢延廷. 基于MAX262的可程控多频点带通滤波器的设计[J]. 电子科技 , 2007,(01) 5 马玲. 程控放大与程控滤波电路设计[J]. 电子工程师 , 1999,(08) . 6 菅维乐 ,姜威 ,李文明 ,孔勇. 可编程开关电容通用滤波器MAX260/261/262[J]. 国外电子元器件 , 2003,(03)
7 王楚,余道衡(电子线路原理[M](北京:北京大学出版社,1995
8 余永权(FLASH单片机原理及应用[M](北京:电子工业出版社,1997
9 席蔼勋(现代电子技术[M](北京:高等教育出版社(1999
10 周宇华(开关电容滤波器综述E1](电子科学技术,1983
11 刘强,郭文(MAXIM热门集成电路使用手册,北京:人民邮电出版社(1997
- 13 -
- 14 -
附录一:
表1 带内起伏量为1.0db时的元件值
阻带频率 C1(F) C2(F) L3(H) 2.0 1.85199 0.22590 0.85903 3.0 1.88408 0.18019 0.88428 4.0 1.95107 0.09023 0.93700 5.0 1.98346 0.04909 0.96250 6.0 1.99809 0.03096 0.97403
附录三:单片机c程序清单
#include #include #define uchar unsigned char #define uint unsigned int uchar code LF[20]={40,7,28,14,7,27,20,14,10,6,31,27,23,19,16,13,11,9,7,6}; uchar code HF[20]={63,27,60,40,27,60,48,39,32,26,62,59,53,47,42,38,34,30,27,25}; sbit con1 = P1^7; sbit con0 = P1^4; sbit WR0=P1^3; sbit a0=P3^0; sbit a1=P3^1; sbit a2=P3^3; sbit a3=P3^4; sbit a4=P3^5; sbit a5=P3^6; sbit a6=P3^7; uchar mod; // 模式 : 高通,低通,扫频 uchar key; // 键值 : uchar Ldat; // uchar Gdat; // uchar a; /* 函数: Delay(uint t) 功能: 延时 0.01-655.36 s 参数: t 类型 uint */ void Delay(uint t) - 1 - { do { TH0 = 0xDC; TL0 = 0x00; TR0 = 1; while ( !TF0 ); TF0 = 0; TR0 = 0; } while (--t); } void Init(); uchar Set_value(); void Load_date(uchar modd ,uchar datt); void saoping(); void read_key() interrupt 0 { key = ZLG7289_Key(); Delay(2); TR0=1; } void main() { Init(); ZLG7289_Init(4); while(1) { if(key == 14) { key =17; a++; if(a==7) { a=0; } ZLG7289_Hide(0x0f); ZLG7289_Download(1, 0, 0, 11); ZLG7289_Download(1, 1, 0, 13); ZLG7289_Download(1, 2, 0, 0); ZLG7289_Download(1, 3, 0, a); Delay(10); if(a==0) { a6=0;a5=0;a4=0;a3=0;a2=0;a1=0;a0=1;} if(a==1) { a6=0;a5=0;a4=0;a3=0;a2=0;a1=1;a0=0;} - 2 - if(a==2) { a6=0;a5=0;a4=0;a3=0;a2=1;a1=0;a0=0;} if(a==3) { a6=0;a5=0;a4=0;a3=1;a2=0;a1=0;a0=0;} if(a==4) { a6=0;a5=0;a4=1;a3=0;a2=0;a1=0;a0=0;} if(a==5) { a6=0;a5=1;a4=0;a3=0;a2=0;a1=0;a0=0;} if(a==6) { a6=1;a5=0;a4=0;a3=0;a2=0;a1=0;a0=0;} Delay(100); } if(key == 15) { key =17; a--; if(a==0xff) { a=6; } ZLG7289_Hide(0x0f); ZLG7289_Download(1, 0, 0, 11); ZLG7289_Download(1, 1, 0, 13); ZLG7289_Download(1, 2, 0, 0); ZLG7289_Download(1, 3, 0, a); Delay(10); if(a==6) { a6=1;a5=0;a4=0;a3=0;a2=0;a1=0;a0=0;} if(a==5) { a6=0;a5=1;a4=0;a3=0;a2=0;a1=0;a0=0;} if(a==4) { a6=0;a5=0;a4=1;a3=0;a2=0;a1=0;a0=0;} if(a==3) { a6=0;a5=0;a4=0;a3=1;a2=0;a1=0;a0=0;} if(a==2) { a6=0;a5=0;a4=0;a3=0;a2=1;a1=0;a0=0;} if(a==1) { a6=0;a5=0;a4=0;a3=0;a2=0;a1=1;a0=0;} if(a==0) { a6=0;a5=0;a4=0;a3=0;a2=0;a1=0;a0=1;} Delay(100); - 3 - } if(key == 11) //设置低通频率 { key=17; ZLG7289_Hide(0x73); ZLG7289_Download(0, 6, 0, 13); ZLG7289_Download(0, 5, 0, 14); ZLG7289_Download(1, 4, 0, 15); Ldat = Set_value(); Load_date(0,Ldat); } if(key == 12) //设置高通频率 { key=17; ZLG7289_Hide(0x73); ZLG7289_Download(0, 6, 0, 12); ZLG7289_Download(0, 5, 0, 14); ZLG7289_Download(1, 4, 0, 15); Gdat = Set_value(); Load_date(2,Gdat); } if(key == 13) //扫频开关 { ZLG7289_Hide(0x00); saoping(); } } } void Init() { IE = 0x81; IP = 0x01; TMOD = 0x01; key = 17; ZLG7289_Flash(0x00); Delay(100); ZLG7289_Flash(0xff); a=0; a0=0; - 4 - a1=1; a2=0; a3=0; a4=0; a5=0; a6=0; } uchar Set_value() { uchar a=0; ZLG7289_Download(1, 0, 0, 0); ZLG7289_Download(1, 1, 0, 0); ZLG7289_Flash(0xfc); Delay(200); while(key>9){} a = key; ZLG7289_Download(1, 0, 0, key); ZLG7289_Flash(0xfd); key = 17; while((key>2)||((key==2)&&(a>0))||((key==0)&&(a==0))){} a=key*10+a; if(a<3)>3)> { con1=0; con0=1; } else { if(a>10) { con1=0; con0=0; } else { if((a==3)||(a==4)||(a==5)) { con0=1; con1=1; } else - 5 - { con1=1; con0=0; } } } ZLG7289_Download(1, 1, 0, key); key = 17; ZLG7289_Flash(0xff); return(a); } void Load_date(uchar modd ,uchar datt) { uchar a[8]={0,0,0,0,0,0,0,0},k=0; uchar i=2; if(modd==0) { a[0]=0; a[1]=0; k=LF[datt-1]; for(;i<8;i++)>8;i++)> { a[i]=k>>(i-2)&0x01; } } if(modd==2) { a[0]=1; a[1]=0; k=HF[datt-1]; for(;i<8;i++)>8;i++)> { a[i]=k>>(i-2)&0x01; } } for(i=0,k=0;k<4;k++,i++)>4;k++,i++)> { P0 = a[i]*32+a[i++]*16+k; WR0=0; WR0=1; } - 6 - P0 = 0xf4; WR0 = 0; WR0 = 1; P0 = 0xe5; WR0 = 0; WR0 = 1; P0 = 0xe6; WR0 = 0; WR0 = 1; P0 = 0xe7; WR0 = 0; WR0= 1; } void saoping() { uint i,j; P2=0; for(i=0;i<20;i++)>20;i++)> { P2++; for(j=0;j<10000;j++)>10000;j++)> {_nop_();} } } - 7 - 附录四:VHDL程序清单 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity functin is port( clk: in std_logic; m: in std_logic_vector(7 downto 0); clk1: out std_logic; sin: out std_logic_vector(7 downto 0); co: out std_logic_vector(1 downto 0); con_in : in std_logic_vector(1 downto 0); clk_out: out std_logic ); end entity; architecture arc_functin of functin is component rom PORT ( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); nd component; e signal temp:std_logic_vector(7 downto 0); signal zl :std_logic_vector(10 downto 0); signal nn :std_logic; signal temp1:std_logic_vector(8 downto 0); signal con_temp:std_logic_vector(1 downto 0); signal ak0: std_logic; signal modd: std_logic_vector(8 downto 0); begin z:rom port map(temp,clk,sin); process(clk) begin if(clk'event and clk = '1') then nn <= not="" nn;="">=> end if; end process; clk1 <= nn;="">=> - 8 - process(clk) begin if(clk'event and clk='1') then zl <= zl="" +1="" ;="">=> if(m="00000000") then if(zl = "11110000000")then temp<=temp+1;>=temp+1;> zl <="00000000000";>="00000000000";> end if; elsif(zl="00000100110")then temp<=temp+m+m;>=temp+m+m;> zl <="00000000000";>="00000000000";> end if; end if; end process; process(con_in) begin if(clk'event and clk = '1') then con_temp <= con_in;="">=> end if; end process; process(con_temp) begin if (con_temp = "00") then modd<="000011001";>="000011001";> elsif (con_temp = "01") then modd<="000110010";>="000110010";> elsif (con_temp = "10") then modd<="011111010";>="011111010";> elsif (con_temp = "11") then modd<="001100100";>="001100100";> end if; end process; process(clk) begin if(clk'event and clk = '1') then temp1 <= temp1="" +="" 1;="">=> if(temp1 = modd ) then temp1 <= "000000000";="">=> ak0 <= not="" ak0;="">=> - 9 - end if; end if; end process; clk_out <= ak0;="">=> co <= "00";="">=> end architecture; 致辞:本学位论文是在导师陈根华的悉心指导下完成的,从论文的选题、构思,研究的开展以及结果分析都凝聚着导师巨大的心血和智慧。导师以宽广的胸襟、渊博的知识、严谨的治学态度、高瞻远瞩的学术眼光、开阔的学术视野、勇于创新的学术思想、对事业无私奉献的精神以及无穷的人格魅力,给我留下了极其深刻的印象,让我明白一位治学者应有的态度,研究者应有的品质。导师对课题的敏锐把握、对问题的独到见解以及深刻的洞察力给人启迪,必将使我受益终身。师恩浩瀚,溢于言表。 感谢第二指导老师谭老师以及其他各位老师为我的课题提供的支持和帮助。特别要感谭老师提供的无私的、最直接的帮助和指导性的意见,塑造了我踏实科研态度,培养了我开阔的科研思维以及指引了我系统的科研方法,受益终身。同时,还要由衷地感激我的同学,感谢我的室友是他们陪伴我度过了本科四年的美好时光,一路走来,欢声笑语,令我心无芥蒂,胸怀坦然。 最后,我要感谢我的父母,在江西求学近四载,家庭的重任由他们承担,承受巨大的压力和委屈;每当我研究上或生活中晨曦未露、步履维艰之际,他们都予以安慰、鼓励和资助。四年里,父亲是家庭的和睦的缔造者,是中流砥柱。感谢养育我、关心我、爱护我并对我寄予厚望的父母亲,我的人生中所有的巨大的或微不足道的成绩都与他们的关爱分不开。 - 10 - 可编程滤波器的设计 摘 要:在电子电路中,滤波器是不可或缺的部分,其中有源滤波器更为常用。一般有源滤波器由运算放大器和RC 元件组成,对元器件的参数精度要求比较高,设计和调试也比较麻烦。美国Maxim 公司生产的可编程滤波器芯片MAX262可以通过编程对各种低频信号实现低通、高通、带通、带阻以及全通滤波处理,且滤波的特性参数如中心频率、品质因数等,可通过编程进行设置,电路的外围器件也少。本文介绍MAX262的情况以及由它构成的程控滤波器电路。 关键词:编程 滤波器 设计 一、MAX262芯片介绍 MAX262芯片是Maxim 公司推出的双二阶通用开关电容有源滤波器,可通过微处理器精确控制滤波器的传递函数(包括设置中心频率、品质因数和工作方式)。它采用CMOS 工艺制造,在不需外部元件的情况下就可以构成各种带通、低通、高通、陷波和全通滤波器。 二、方案的论证和设计 程控放大器的设计 1. 利用数字电位器,通过单片机改变负反馈的阻值,进而改变放大倍数,优点电路结构简单,灵活;缺点是精度不够高。 2. 利用选择电路,选通某条支路,由于使用的是分立元件,匹配度高,可以使放大倍数的精度大大提高,却也有电路复杂的缺点,由于本设计任务的精度要求,因而选择此种方案。 三、程控滤波器的设计 滤波器设计有很多种,但主要分为数字滤波电路和模拟滤波电路。 1. 采用FIR 数字滤波器。数字滤波器解决了模拟滤波器所无法克服的电压漂移,温度漂移和噪声等问题,但由于计算量过大,且由于未系统学习过FIR ,故不选用。 2. 采用有源RC 滤波电路,使用数字电位器控制电阻值,从而可以改变电路的滤波特性。特点电路简单灵活,缺点是精度不够, 3. 采用专门的开关电容滤波集成芯片。MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通低通高通陷波和全通配置且不需外部器件,功能强大,易于掌控。故选用此种方案。 目录 1、课程设计目的……………………………………………………………………. 2 2、课程设计内容和要求…………………………………………………………...... 2 2.1、设计内容…………………………………………………………………………………….... 2 2.2、设计要求………………………………………………………………………………………. 2 3、设计方案………………………………………………………………………….. 2 3.1、设计思路……………………………………………………………………………………….. 2 3.2、工作原理及硬件框图………………………………………………………………3 3.3、硬件电路原理图……………………………………………………………………………….. 5 3.4、PCB 版图设计…………………………………………………………………………………... 6 4、课程设计总结…………………………………………………………………….. 8 5、参考文献………………………………………………………………………….. 9 1、课程设计目的 (1)掌握电子电路的一般设计方法和设计流程; (2)学习简单电路系统设计,掌握Protel99的使用方法; (3)掌握硬件电路设计的全过程。 2、课程设计内容和要求 2.1、设计内容: 设计—个可编程低通、高通和带通的有源滤波器。 2.2、设计要求: (1) 输入8位二进制代码01H-FFH 时,低通和高通的截止频率分别在50Hz -10KHZ 内连续可调。 (2)带通滤波器的中心频率在60Hz -8kHz 内连续可调。 (3)不要求品质因数。 3、 设计方案 3.1、设计思路 滤波器是一种能使有用频率信号通过而同时抑制(或衰减)无用频率信号的电子电路或装置。在工程上,常用它来进行信号处理,数据传送或抑制干扰等。目前一般用集成运放、R 、C 组成,常称为有源滤波器。 此次设计题目为“可编程有源滤波器”。可分为两部分进行设计:滤波器部分和程序控制部分。滤波器部分采用同相输入型状态可调有源滤波器电路,程控部分采用倒T 型电阻网络。 3.2、工作原理及硬件框图 图1 工作原理图 图3 集成运放UA741 (OFFSET N1和OFFSET N2为集成运放调整输入端,NC 为无用管脚) 图2 倒T 型电阻网络 如图1所示 令 R1=R2=R3=R4 R6=R7=Rf C1=C2=Cf 则 f=f(olp)=f(ohp)=f(obp)=1/2∏RfCf 因此,低通和高通滤波器的截止频率以及带通滤波器的截止频率只取决于Rf 和Cf 的值。用倒T 型电阻网络替换R6和R7。通过改变二进制代码来改变倒T 型电阻的等效阻值,就可以改变高通和低通滤波器的截止频率以及带通滤波器的中心频率。 输入的二进制数可用单刀双置开关表示,当输入二进制数在01H —FFH(即00000001—11111111) 之间变化时,电阻网络端口的等阻值在256R —R 之间变化。根据计算,选R=15K,Cf=1000PF,则 41 Hz ≦ f ≦ 10616 Hz 可见,频率f 符合“输入8位二进制代码01H-FFH 时,低通和高通的截止频率分别在50Hz -10KHZ 内连续可调,带通滤波器的中心频率在60Hz -8KHz 内连续可调”的要求。 图4 波形仿真图 3.3、硬件电路原理图 图5 硬件电路图 3.4、PCB 版图设计 图6 PCB 版图 图7 PCB 打印图 4、课程设计总结 刚拿到题目时因为对滤波器方面了解较少,感觉有些无从下手。经过对滤波器的仔细学习后,才对题目有了一定的了解。然后是对程序控制的设计,查阅大量资料后,明白了程控的基本原理。最初的想法是通过D\A转换器,将数字量转换为模拟量,用这个模拟量控制一个变容二极管,实现电容的变化,最终控制频率。但因对这方面缺乏了解和资料,且时间紧迫,故选用了现在的方案。 PCB 制作过程经历了很多困难,但通过长时间的上机实验和大量的练习,基本掌握了PROTEL99的使用方法,收获颇多。此次课程设计增强了自己的独立思考能力和实践能力,对以后的进一步学习起到很大的促进作用。 5、参考文献 (1)高鹏 . PROTELL99入门与提高 .北京:人民邮电出版社,2005 (2)童诗白.模拟电子技术基础.北京:高等教育出版社,2002 (3)张建华.数字电子技术.北京:机械工业出版社,2004 (4)陈汝全.电子技术常用器件应用手册.北京:机械工业出版社,2005 (5)毕满清.电子技术实验与课程设计.北京:机械工业出版社,2005 (6)潘永雄.电子线路CAD 实用教程.西安:西安电子科技大学出版社,2002 (7)张亚华.电子电路计算机辅助分析和辅助设计.北京:航空工业出版社,2004 第一章 绪论………………………………………………………………………………1 1.1 课题背景及意义……………………………………………………………………1 1.2 滤波器的发展………………………………………………………………………1 1.3 滤波器的分类………………………………………………………………………1 第二章 方案的设计和论证………………………………………………………………2 2.1 设计要求……………………………………………………………………………2 2.2 方案的设计…………………………………………………………………………2 2.2.1 程控放大器设计方案 ………………………………………………………2 2.2.2 低通和高通滤波器设计方案 ………………………………………………3 2.2.3 椭圆滤波器设计方案 ………………………………………………………3 第三章 单元模块设计……………………………………………………………………4 3.1 阻抗变换和放大器电路设计………………………………………………………4 3.2 低通和高通滤波器电路设计………………………………………………………5 3.3 椭圆滤波器电路设计………………………………………………………………7 第四章 软件设计…………………………………………………………………………8 4.1 开发软件介绍………………………………………………………………………8 4.2 程控放大软件设计…………………………………………………………………8 4.3 滤波程序设计………………………………………………………………………8 4.4 主程序清单…………………………………………………………………………9 第五章 系统仿真测试……………………………………………………………………10 5.1 系统整机测试………………………………………………………………………10 5.1.1 程控放大仿真和测试 ………………………………………………………10 5.1.2 程控滤波测试 ………………………………………………………………11 5.1.3 椭圆滤波测试 ………………………………………………………………11 5.2 误差分析……………………………………………………………………………12 第六章 结论………………………………………………………………………………13 致谢…………………………………………………………………………………………13 参考文献……………………………………………………………………………………14 英文摘要……………………………………………………………………………………15 附录一………………………………………………………………………………………17 附录二………………………………………………………………………………………18 可编程滤波器的设计 :本文介绍了一种可编程控制的滤波器,能够实现低通、高通和椭圆滤波。滤波器通带、截 止频率等参数可通过编程设置。硬件以单片机AT89C52为核心控制,放大器采用AD603,可以实现增益步进放大。滤波芯片采用可编程滤波器芯片MAX262实现,MAX262能够实现低通和高通滤波而不需要外围电路。本系统设计简单,能很好地实现滤波器的程控,使用方便,具有较高的性价比、 实用性和使用价值。 :放大器 滤波器 单片机 程控 2010届电子信息工程专业毕业设计(论文) 第一章 绪论 1.1 课题背景及意义 从广义上来说,凡是有能力进行信号处理的装置都可以称为滤波器,在近代电信设备和各类控 制系统中,滤波器应用极为广泛,从某种意义上来说滤波器的发展进程就代表了电子业的发展进程, 在所有的电子部件中,使用最多、技术最为复杂的要算滤波器了。滤波器的优劣直接决定产品的优 劣,所以,对滤波器的研究和生产历来为各国所重视。我国的电子行业还处于发展阶段,相对于发 达国家我们还有不小的差距,所以我们必须投入更大的努力改变这一现状。 随着滤波系统在各类电子装置中的普遍使用,普通的滤波器在工作时产生的误差,会影响整个 系统的精确度。低精度的滤波器在使用时会造成很多不良后果,世界各国纷纷对滤波器提出了不同 要求并制定了一系列的产品精度标准。只有满足产品标准,才能够进入市场。随着经济全球化的发 展,满足国际标准的产品才能获得进出的通行证。传统滤波器功能单一,调节精度不高,人机界面 不友好,而且经常跳变,使用麻烦。随着集成电路技术的发展,目前已有高阶专用的开关电容滤波 器芯片,但其价格高,电路噪声也不尽如人意,此外还存在信号混叠问题。 程控滤波系统是目前滤波器的不足提出的,数字化能够减少生产过程中的不确定因素和人为参 与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生 产效率和产品的可维护性。 1.2 滤波器的发展 1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。 20世纪50年代无源滤波器日趋成熟。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤 波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力, 其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。导致RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展,到70年代后期,上述几种滤波器的单片集成已被研制出来并得到应用。80年代,致力于各类新型滤波器的研究,努力提高性能并逐 渐扩大应用范围。90年代至现在主要致力于把各类滤波器应用于各类产品的开发和研制。当然,对 滤波器本身的研究仍在不断进行。 1.3 滤波器的分类 滤波器的种类很多,分类方法也不同。 从功能上分:低通、带通、高通、带阻。 从实现方法分:FIR、IIR。 从设计方法分:Chebyshev(切比雪夫),Butterworth(巴特沃斯)。 从处理信号分:经典滤波器、现代滤波器。 第 1 页 共 19 页 王余:可编程滤波器的设计 第二章 方案的设计和论证 2.1 设计要求 设计一个可编程控制的滤波器,并可以对输入的小信号进行放大。 (1)放大器输入正弦信号电压振幅为 10mV,电压增益为 40dB,增益 10dB 步进可调,通频带为 100Hz~40kHz,放大器输出电压无明显失真。 (2)滤波器可设置为低通滤波器, 其-3dB截止频率f在 1kHz~20kHz 范围内可调,调节的c频率步进为1kHz,2f处放大器与滤波器的总电压增益不大于30dB, RL=1kΩ。 c (3)滤波器可设置为高通滤波器, 其-3dB截止频率f在 1kHz~20kHz 范围内可调,调节的c频率步进为1kHz,0.5f处放大器与滤波器的总电压增益不大于30dB, RL=1kΩ。 c (4)电压增益与截止频率的误差均不大于10%。 (5)制作一个四阶椭圆型低通滤波器,带内起伏?1dB,-3dB 通带为 50kHz,要求放大器与低通滤波器在 200kHz 处的总电压增益小于 5dB,-3dB通带误差不大于 5%。 2.2 方案的设计 2.2.1 程控放大器设计方案 程控放大器的增益,一般有两种途径,一种是改变反相端的输入电阻,另一种是改变负反馈电 阻阻值。 方案一:采用模拟开关或继电器作为开关,构成梯形电阻网络,单片机控制继电器或模拟开关 的通断,从而改变放大器的增益。此方案的优点在于简单,缺点是电阻网络的匹配难以实现,调试 很困难。 方案二:用DAC的电阻网络,改变电阻的方法,电流输出型DAC内含R-2R电阻网络,可以作为运放的反馈电阻或输入电阻,在DAC输入数据的控制下,实现放大器增益的程控改变。该方 案的优点无需外接精密电阻,增益完全由输入的数字量决定,就可以对信号进行放大或衰减,使用 方便;缺点是信噪比较低,通频带较窄。 方案三:非易失性数字电位器改变电阻,克服了模拟电位器的主要缺点,无噪声,寿命长,阻 值可程控改变,设定阻值掉电记忆。该方案优点是增益范围宽,占用μP口少,成本低。通频带取决于运放的通频带。 第 2 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 方案四:采用程控放大芯片,单片机通过芯片的控制接口对芯片进行编程,实现增益的步进放图2-1 反馈放大器 大,而且可以设定其增益值。采用集成可变增益放大器AD603作增益控制,AD603是一款低噪声、精密控制的可变增益放大器,温度稳定性高,最大增益误差为0.5dB,满足题目要求的精度,其增益(dB)与控制电压(V)成线性关系,因此可以很方便地使用D/A输出电压控制放大器的增益。 在本题中,电压增益为40dB,增益10dB步进可调,通频带为100Hz~40kHz,放大器输出电压无明显失真。由于输入信号幅值很小,所以我们选用方案四。 2.2.2 低通和高通滤波器设计方案 滤波器设计有很多种,但主要分为数字滤波电路和模拟滤波电路。 方案一:以集成运放为核心的有源RC滤波电路或无源滤波网络,结构简单,所需元件较少,成 本低,且电路输入阻抗高、输出阻抗低,并有专门的设计仿真软件,可以在阻带实现很大的衰减。 但这种滤波器的阻容参数固定以后中心频率就不可以再调节,无法实现程控。 图2-2 无源和有源滤波网络 方案二:采用实时DSP或FPGA数字滤波技术。数字信号处理灵活性大,可以在不增加硬件成本 的基础上对信号进行有效滤波,但不适合高增益弱信号检测。要进行高效率的滤波,需要D、D/A 具有较高的转换速率,处理器具有较高的运算速度。 方案三:采用专门的开关电容滤波集成芯片。MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通低通高通陷波和全通配置且不需外部器件,功能强 大,易于掌控。故选用此种方案。 2.2.3 椭圆滤波器设计方案 方案一:采用椭圆形归一化LPF的设计方法,改设计方法能够满足题目的要求,而且电路结构 第 3 页 共 19 页 王余:可编程滤波器的设计 简单,容易实现。 方案二:利用运放借助现有的Filter解决软件,直接借助软件给出的电路,做适当的调整就 可以实现4阶低通椭圆滤波器。应用Matlab计算椭圆滤波函数的传递函数,建立电路网络,设计四 阶椭圆低通滤波器。 比较两个方案,考虑实现的难易程度,我们选择方案一。 第 4 页 共 19 页 王余:可编程滤波器的设计 本系统以52单片机作为主控单元,将设计任务分为放大器,低通滤波器,高通滤波器,椭圆 滤波器,人机接口单元等功能模块。 放大器用AD603组成两级串联的放大电路。单片机通过AD603的放大控制引脚控制放大器放大倍数。滤波器在单片机控制信号作用下在低通,高通,椭圆三种工作方式的切换。低通和高通滤波 电路采用模拟开关,单片机通过控制模拟开关的通断频率,来实现截止频率的调节。本系统还设计 了良好的人际交互接口,实现了键盘实时控制。如图3-1所示。 低通滤波 阻抗变换程控放大 高通滤波 电路 椭圆滤波 单片机 键盘 控制电路 图3-1 系统原理框图 3.1 阻抗变换和放大器电路设计 为输入缓冲和增益控制电路, 由于AD603的输入电阻只有100Ω,要满足输入电阻大要求,必须加入输入缓冲部分用以提高输入阻抗;另外前级电路对整个电路的噪声影响非常大,必须尽量 减少噪声。故采用高速低噪声AD811芯片作为前级放大,实现前级放大的同时起到了提高了输入阻 抗,抑制输入噪声作用。作前级跟随,同时在输入端加上二极管过压保护。输入部分先用电阻分压 衰减,再由低噪声高速运放AD811放大,整体上还是一个跟随器,二极管可以保护输入到AD811 的 电压峰峰值不超过其极限(2V),如图3-2。这样提高了输入阻抗,大大减小输入对电路的影响。 第 4 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 图3-2 前级 阻抗变换 AD603 它由无源输 入衰减器、 增益控制界面和固定增益放大器三部分组成。加在梯型网络输入端(VINP)的信号经衰减后,由 固定增益放大器输出,衰减量是由加在增益控制接口的电压决定。增益的调整与其自 身电压值无关,而仅与其差值VG有关,由于控制电压GPOS/GNEG端的输入电阻高达50MΩ,因而输入电流很小,致使片内控制电路对提供增益控制电压的外电路影响很小。 图3-3 AD603放大电路 3.2 低通和高通滤波器电路设计 第 5 页 共 19 页 王余:可编程滤波器的设计 滤波电路采用MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数 可构成各种带通、低通、高通、陷波和全通配置且不需外部器件。由于内部参数的选择,单片机电 路负责向MAX262输入控制信号和数据。 MAX262主要由放大器,积分器,电容切换网络(SCN)和工作模式选择器组成.积分器,电容切换网络(SCN)和工作模式选择器分别由编程数据M0M1,f~f和Q~Q控制.MAX262内部有两个二级0506 滤波器,滤波器A和B可以单独使用,也可级联成四阶滤波器使用.芯片的使用非常灵活,但它们均受同一组编程数据的控制。 MAX262芯片的工作频率为1Hz~140kHz.当时钟频率为4MHz,工作模式选择为模式3时,芯片可以对140kHz的输入信号进行滤波处理.其它工作模式的最高工作频率为100kHz. 滤波器A和B可以采用内部时钟,也可以采用外部时钟.外部时钟分别从芯片的引脚CLKA,CLKB引入,对外部时钟无占空比要求.如果要对更低频率的信号进行滤波处理,可采用MAX260芯片,它的工作频率为0.01Hz~7.5kHz.输入的低频信号可以直接送到MAX260芯片的输入端(即INA或INB引脚),输入信号的幅度范围为0V~+5V.。 MAX262芯片有三个编程参数:中心频率fFF,Q值和工作模式。中心频率由编程数据~控制,005共64个不同的二进制数据,每个数据对应一个时钟频率ffff与中心频率的比值/.在系统clk0clk0实现时,可以采用查表的方法获得编程数据. 工作模式由编程数据、控制,分别对应工作模MM01式1、2、3和4。 模式1可以实现低通,带通和带随滤波; 模式2基本与模式1相同,只是该模式可以获得最高的Q值; 模式3是唯一可以实现高通滤波的模式; 模式4才能实现全通滤波,它和模式3也可以实现低通和带通滤波。 编程参数f,Q值和工作模式确定以后,只要将相应的编程数据装入MAX262芯片内部的寄存器,0 滤波器的类型和频率特性也就确定了。 图3-4 MAX262连接原理图 第 6 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 3.3 四阶椭圆型低通滤波器 椭圆滤波器特点是幅值响应在通带和阻带内都是等波纹的,对于给定的阶数和给定的波纹要 求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽,就这点而言,椭圆滤波器是最优的,其振幅 平方函数为 122A(Ω),H(jΩ), (3.1) a21,εR(Ω,L)N 式中,RN(Ω,L)为雅可比椭圆函数,L是一个表示波纹性质的参量。 我们采用椭圆形归一化LPF的设计方法,电路图5所示。我们选择带内起伏量为1.0db阻带 频率为通带频率的4.0倍。带内起伏量为1db时,阻带内有一个限波点的椭圆型归一化LPF的设计数据如 表1(见附录一) 所示。待设滤波器截止频率与基准滤波器截止频率的比值M为: M = 50k / ( 1 / 2π ) = 3.14159 图3-5 椭圆滤波电路 对基准滤波器的所有元件值除以M,得到截止频率已变换成待设计滤波器的截止频率160khz时的元件参数。 C 1(new)= C1(old)/ M =6.31355μF C2(new)= C2(old)/ M =156.258nF L3(new)= L3(old)/ M =3.06374μH 待设滤波器的特征阻抗与基准频率器特征阻抗的比值K为: K = 51Ω / 1Ω =51 将所有的电感元件值乘以 K ,将所有的电容值除以 K 。这样,便得到了待设计的特征阻抗为51Ω,且截止频率为50K的四阶椭圆滤波器。 C1(new)= C1(old)/ K =123.79nF C2(new)= C2(old)/ K =3.0639nF L3(new)= L3(old)× K =156.25μH 第 7 页 共 19 页 王余:可编程滤波器的设计 第四章 软件设计 4.1 开发软件 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语 言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的 完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。 4.2 程控放大软件设计 当上电复位后单片机放大器进行初始化,如果键盘有键按下,则进入增益预置状态,键盘输入 完成后,单片机把得到的值通过D/A转换把控制电压加到AD603的增益控制端。 开始 键盘扫描 增益预置 D/A转换 AD603电压 控制端 结束 图4-1 程控放大流程图 4.3 滤波程序设计 上电初始化后,滤波器初始化,默认滤波器处于低通状态,等待滤波器模式选择,选中滤波器 模式后,就可以进行截止频率设置。 第 8 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 开始 键扫描 滤波模式选择 低通滤波高通滤波椭圆滤波 设定截止频率设定截止频率 返回 图4-2 程控滤波流程图 4.4 主程序清单 #include #include #include #define nop _nop_() #define uchar unsigned char #define uint unsigned int void main() { uchar i; f=20,q=30; for(i=0;i<=250;i++);>=250;i++);> for(i=0;i<=250;i++);>=250;i++);> Filter(1,f,q,1); while(1) { switch(key()) { case 0: break; case 1: if(f<63)>63)> f=f+1; else f=0; 第 9 页 共 19 页 王余:可编程滤波器的设计 Filter(1,f,q,1); break; case 2: if(f>0) f=f-1; else f=63; f=f+0.5; Filter(1,f,q,1); break; case 3: if(q<127)>127)> q++; else q=0; Filter(1,f,q,1); break; case 4: if(q>0) q--; else q=127; Filter(1,f,q,1); break; } } } 第五章 系统仿真测试 5.1.1 程控放大仿真和测试 测试方案:输入电压振幅为10mv,调节放大倍数,分别测量输出电压。 表一 前级放大倍数测量 预测放输出电压 输出电压 输出电压 输出电压 实际放误差 大倍数 (100hz) (1khz) (10khz) (40khz) 大倍数 0db 7.19mv 7.19mv 7.19mv 7.19mv 1.042 1.03% 10db 22.2mv 22.2mv 22.2mv 22.2mv 3.217 1.80% 20db 69mv 6 9mv 69mv 69mv 10.0 0.00% 30db 220mv 220mv 220mv 220mv 31.88 0.88% 40db 662mv 650mv 640mv 624mv 91.3 8.70% 50db 2.09 2.09 2.05 1.92mv 290.5 8.12% 60db 6.70 6.60 6.40 4.40 8043 20% 第 10 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 经测得,在50db以下时,通带包含100 Hz—40khz,60db通带在100-37.5khz。增益10dB步进可调,放大器输出电压无明显失真。 图5-1 放大器仿真 5.1.2 程控滤波测试 测试方法:根据截至频率的定义,我们取通带电平下降到-3db的频率点,并分别测出信号频率为高通截止频率一半,低通截止频率二倍,放大电路增益为40dB时,总体电路的增益,电路数据使用交流毫伏表测量。 表二 低通特性 程控放大增益为40db 预测频率 实际频率 β(2fc处系统总增益) 误差 1khz 996hz 29.97 0.40% 5khz 4.96khz 29.83 0.80% 10khz 10.02khz 29.83 0.20% 15khz 15.00khz 29.23 0.00% 20khz 20.01khz 29.23 0.05% 第 11 页 共 19 页 王余:可编程滤波器的设计 表三 高通特性 程控放大增益40db 预测频率 实际频率 β(0.5fc处系统总增益) 误差 1khz 1.16K 29.99 16.00% 5khz 5.00K 29.23 0.00% 10khz 10.02K 29.23 0.20% 15khz 15.04K 29.23 0.27% 20khz 19.90K 29.23 0.50% 5.1.3 椭圆滤波测试。 在输入端接入函数信号发生器,保持输入信号的有效值为0.5v,改变信号的频率,测量输出信号的有效值。 表四 椭圆滤波测量数据 Vi = 0.5v 频率 Vo(v) 100Hz 0.500 1KHz 0.500 10HHz 0.524 30KHz 0.708 50KHz 0.362 51KHz 0.355 椭圆滤波器的截止频率为51KHz,带内起伏?1dB。 前级放大电路的输出端接入椭圆滤波器,放大电路的输入端接信号发生器,放大电路的增益设 为40dB,信号频率设为200KHz,分别用交流毫伏表测量输入输出电压的有效值,测得输入电压为 0.695v,输出电压为0.795v。总电压增益小于5dB。 5.2 误差分析 通过对仿真得到的电路进行参数校正,本系统得到了很好的指标参数。但是仍然存在着对理论 分析的较大误差,基本有如下分析: (1)校准时使用F信号发生器产生20mV信号,信号的信噪比很差,噪声功率的干扰会造成误40 差的引入,同理幅频特性测试仪的信号源也是一样。 (2) 校准时使用的晶体管毫伏表本身是机械表,会造成相对较大的误差,同时读数时人眼也引入 的较大的误差。 (3)本题目中模拟电路相对较多,进行调试时会综合各方面对电路进行补偿,针对题目要求进行 平衡,也会造成一部分的误差。 (4)电源的使用往往是电路噪声引入的关键,尤其是小信号的测量 第 12 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 第六章 结 论 本系统以单片机为核心部件,利用单片机的控制功能并配合软件算法实现了,对放大电路和滤 波电路的控制功能,最终使本设计完成了要求的各项任务。在系统设计过程中,力求硬件线路简单, 充分发挥软件编程方便灵活的特点,满足了系统设计要求。 致谢语 经过近段时间的努力,在王老师的精心指导和帮助下我终于实现了题目给出的全部要求,同时 由于时间很紧张,系统还不是很完善,比如说很多图形的显示不是很人性化,虽然懂得椭圆滤波器 是几种滤波器的叠加结果但是没有充足的时间推演和制作,但是通过实践,我巩固了理论知识是我 最大的收获。 本文从拟定题目到定稿,历时数月。而今论文完成打印之时,我思绪万千,心情久久不能平静。 回忆我在重庆三峡学院应用技术学院学习的四年中,最令我难忘的是我的老师们,各位老师治学严 谨,学识渊博,品德高尚,平易近人,在我学习期间不仅传授了做学问的秘诀,还传授了做人的准 则。这些都将使我终生受益。无论是在理论学习阶段,还是在论文的选题、资料查询、开题、研究 和撰写的每一个环节,无不得到导师的悉心指导和帮助。借此机会我向导师表示衷心的感谢!同时, 我要感谢应用技术学院授课的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识, 并从他们身上学到了如何求知治学、如何为人处事。我也要感谢我的母校重庆三峡学院,是它提供 了良好的学习环境和生活环境,让我的大学生活丰富多姿,为我的人生留下精彩的一笔。另外,感 谢应技院2010届电子工程系全体同学的帮助和勉励。同窗之谊和手足之情,我将终生难忘! 第 13 页 共 19 页 王余:可编程滤波器的设计 [1] 蒋瑜, 陈循, 杨雪, 阮启明. 基于MAX262的程控滤波器的实现[J]. 电测与仪表, 2000 [2] 邓重一. 基于可编程芯片MAX262的有源滤波器[J]. 单片机与嵌入式系统应用 , 2005 [3] 倪向东. 单片机控制的双路有源滤波器设计[J]. 电子技术应用 , 2002,(01) [4] 张飞岭, 张永瑞. 基于MAX262的可程控多频点带通滤波器的设计[J]. 电子科技 , 2007 [5] 马玲. 程控放大与程控滤波电路设计[J]. 电子工程师 , 1999,(08) . [6] 菅维乐,姜威.可编程开关电容通用滤波器MAX260/261/262[J]. 国外电子元器件 , 2003 [7] 潘松,黄继业.EDA技术实用教程[M].北京:科学出版社.2002. [8] 第五届全国大学生电子设计竞赛获奖作品选编(2001)[M]. 北京:北京理工大学出版社.2003. [9] 张友汉.电子线路设计应用手册[M].福建:福建科学技术出版社.2000. [10] 张迎新.单片微型计算机原理、应用及接口技术[M].北京:国防工业出版社,2003. [11] 冯涛,王程.可编程逻辑器件开发技术[M].北京:电子工业出版社,2002. [12] 王振红,张斯伟.电子电路综合设计实例集萃[M].北京:化学工业出版社,2008. 第 14 页 共 19 页 2010届电子信息工程专业毕业设计(论文) Programmable Filter Design Wang Yu Grade 2006 Major in electronic information engineering School of Applied Tchnology Chongqing Three Gorges University Wanzhou Chongqing 404000 Abstract:This paper presents a programmable control of the filter can achieve low-pass, high pass and elliptical filter. Pass-band filter, cut-off frequency and other parameters can be programmed settings. AT89C52 microcontroller as the core hardware to control, amplifier using AD603, the gain can be achieved step amplification. Filter chip programmable filter chip MAX262 to achieve, MAX262 can achieve low-pass and high-pass filter without the need for external circuitry. The system design is simple and can achieve a good filter program-controlled, easy to use, has a high cost, practicality and value. Keywords:Amplifiers filter MCU program control 第 15 页 共 19 页 王余:可编程滤波器的设计 附录一 系统原理图 第 16 页 共 19 页 2010届电子信息工程专业毕业设计(论文) 附录二 单片机c程序清单 /**************************程控滤波函数***************************/ MCU --- MAX262 P0.3~P0.0 --- A3~A0 P0.5~P0.4 --- D1~D0 P1.0 --- WR /****************************************************************/ #include #include #include #define nop _nop_() #define uchar unsigned char #define uint unsigned int #define fclk 1.5 //2Mhz 即2000khz,和后面0.637恰好抵消小数部分 sbit WrMax261=P1^0; void Filter(uchar way,float f,float q,uchar whichone); void TransFilter(uchar ContrData); uchar Fn(float f); uchar Qn(float q); #define duankou P2 //定义4*4键盘端口 uchar code tempx[4]={0x7f,0xbf,0xdf,0xef}; uchar keyn; uchar f,q; /*---------控制方式way,中心频率f,品质因数q,滤波器选择whichone 0表示A,1 表示B--------*/ void Filter(uchar way,float f,float q,uchar whichone) { uchar i; uchar fn0; uchar qn0; uchar fn[3]; uchar qn[4]; fn0=Fn(f); fn[0]=fn0&0x03; fn[1]=(fn0&0x0c)>>2; fn[2]=(fn0&0x30)>>4; qn0=Qn(q); 第 17 页 共 19 页 王余:可编程滤波器的设计 qn[0]=qn0&0x03; qn[1]=(qn0&0x0c)>>2; qn[2]=(qn0&0x30)>>4; qn[3]=(qn0&0x40)>>6; way=way&0x03; whichone=whichone&0x01; TransFilter((way<><3));>3));> for(i=0;i<3;i++)>3;i++)> { TransFilter((fn[i]<><3));>3));> } for(i=0;i<4;i++)>4;i++)> { TransFilter((qn[i]<><3));>3));> } } uchar Fn(float f) //频率关键字 { uchar temp; // temp=fclk*637/f-26; //原本是*2/pi;即*0.637 fclk用M单位,f单位khz temp=f; return temp; } uchar Qn(float q) //品质因数关键字 { uchar temp; // temp=128-64/q; temp=q; return temp; } void TransFilter(uchar ContrData) //送关键字函数 { WrMax261=0; P0=ContrData; nop; nop; nop; nop; 第 18 页 共 19 页 2010届电子信息工程专业毕业设计(论文) WrMax261=1; nop; nop; } uchar key() { uchar i; duankou=0x0f; if(duankou!=0x0f) { for(i=0;i<250;i++)>250;i++)> if(duankou!=0x0f) { for(i=0;i<4;i++)>4;i++)> { duankou=tempx[i]; if((duankou&0x0f)!=0x0f) { switch(duankou&0x0f) { case 0x07: keyn=i*4+1; break; case 0x0b : keyn=i*4+2; break; case 0x0d: keyn=i*4+3; break; case 0x0e: keyn=i*4+4; } } } while(duankou!=0x0f) duankou=0x0f; return(keyn); } } return (0); } 第 19 页 共 19 页 基于 MAX260的低频微弱信号的模拟预处理 作者:左强 李建军 1、引言 微弱信号检测(Weak Signal Detection)是随着工程应用而不断发展的一门学科,是 利用电子学、 信息论和物理的方法, 分析噪声产生的原因和规律, 研究被测信号的特点与相 关性,采用一系列信号处理的方法,检测被噪声背景淹没的微弱信号[1]。强噪声背景下微 弱信号处理是现代信号处理技术中的一项综合技术和尖端领域,运用这种技术使得微弱量 (如弱光、小位移、微振动、弱声及微电流等)的检测成为可能,大大提高了微弱信号检测的 精度。 对信号的预滤波处理则成为了提高其准确度的关键要素, 本文就是基于这样的思想, 利 用 MAX260的特性来进行设计出具有良好效果的预滤波器。我相信,随着社会以及科技的发 展,在这方面的应用于开发必将在物理、化学、天文、生物、医学以及多种工程应用领域得 到广泛的应用,在国内外越来越得到重视。 2、模拟信号处理系统原理 我们假定接收到的信号已经通过频率转换变为基带信号。 为了防止未知的噪声信号使放 大器饱和, 我们通常进行多级放大。 先将输入的基带信号通过滤波器提取出我们感兴趣的频 段, 并抑制一定的噪声。 通过两级滤波放大, 已经将隐藏在噪声中的微弱信号变为适当幅度 的平稳信号,为后续的 A/D变换、LCD 显示等信号处理打下良好的基础。这个过程就构成了 信号滤波放大系统,原理框图如图 1所示: 图 1 模拟信号处理系统原理框图 3、器件的选择与应用 很多情况下我们要处理频率接近于零频的微弱信号,比如人体呼吸及心跳所产生的频率 (0.03Hz~3.3Hz) , 因此在选择滤波器件时, 要求该滤波器具有很低的中心频率范围以及陡 峭的过渡带,这就对器件提出了很高的要求。 4、可编程开关电容滤波器 MAX260 MAX260是美国 Maxim 公司推出的 CMOS 双二阶通用开关电容有源滤波器, 可以采用微处 理器控制其精确滤波器函数,无需外围元件即可构成多种带通、低通、高通、带阻、全通滤 波器,其内部含有两个二阶滤波单元,每个单元中心频率、Q 值、滤波器工作模式均可由程 序设置。MAX260比 MAX261和 MAX262有较好的偏移与直流特性。具有如下特点:微处理器 接口、64步中心频率控制、128步品质因数控制、独立的中心频率和品质因数编程、保证时 钟频率 f0对比值精度为 1%、 单+5V或±5V电源电压工作以及 0.01Hz 到 7.5kHz 的中心频率 范围。并且与数字滤波器相比,处理速度快、整体结构简单。芯片的内部结构如图 2所示: 图 2 滤波器框图(一个二阶组) 其芯片主要由放大器、积分器、电容切换网络(SCN)和工作模式选择器组成。积分器、 电容切换网络和工作模式选择器分别由编程数据 M0,M1、 F0~F5和 Q0~Q6控制。 每片 MAX260包括两个二阶开关电容有源滤波器, 每个二阶组使用两个串联的积分器和一个求和运算放大 器。每个二阶滤波器组件有四种工作方式及各自的时钟输入和独立的 f0和 Q 控制。每个二 阶组的中心频率是由其输入的时钟频率和六位编程代码决定的,Q 值由七位代码控制。 MAX260系列滤波器中,内部采样速率为输入速率的一半。MAX260使用了 MAX261或 MAX262中不具有的自动调零电路,这可以提供更好的 DC 特性,并通过牺牲高端频率和信号带宽提 供改进的低频特性。故可很好的用于低频信号的滤波处理。 图 3为一个带通滤波器。该滤波器由低通滤波器和高通滤波器设计组成。其参数信号 (CLKA、CLKB、A1~A0、D3~D0、 ) 图 3 带通滤波器 5、高精度斩波稳零运算放大器 TLC2652 斩波稳零型运算放大器提供了一种解决微弱信号放大问题的廉价方案。TLC2652和 TLC2652A 是德州仪器公司使用先进的 LinCMOSTM 工艺生产的高精度斩波稳零运算放大器。 图 4 TLC2652的 8引脚封装图 图 5 TLC2652的简化框图 在 TLC2652中, 内部时钟使放大器以 450Hz 的频率校零。 在 8引脚封装的芯片中, 这个 频率是不可调的。 这时, 电路中的负反馈电阻要选的大些, 以使箝位发挥作用时电路的增益 下降得更多。当然,使用 CLAMP 后,电路的输出幅度会略有减小。斩波稳零的工作方式使 TLC2652具有优异的直流特性,失调电压及其漂移、共模电压、低频噪声、电源电压变化等 对运算放大器的影响被降低到了最小。 低频信号经过两个放大器放大, 电路可以获得极高的 增益, 这在需要精密高增益放大的电路中是十分有用的。 由于使用了 LinCMOSTM 工艺和低噪 声的 MOSFET,输入噪声被大大减小。TLC2652非常适合用于微弱信号的放大。 从理论上讲, 为了尽量展宽电路的频带, 斩波频率 fc 应越高越好, 但 fc 的提高又会造 成严重的尖峰效应,使斩波器漂移增大,所以通常 fc≤10kHz。这就是导致斩波稳零运算放 大器频带窄的原因。TLC2652的过载恢复时间是比较短的(30ms左右) ,如要进一步减小恢 复时间,可以使用电路的 CLAMP 引脚。TLC2652在作直流微信号放大时,为了进一步减小交 流干扰, 可以在输出端加接一个低通滤波器, 以滤除输出电压中的交流分量, 使输出电平更 加稳定。图 6为 TLC2652 典型正相放大电路。 图 6 TLC2652典型正相放大电路 在元件的选择中需要特别注意的是, 电路中的两个记忆电容 C3和 C4必须使用绝缘电阻 很高的优质电容器。例如,聚酯薄膜电容器、聚苯乙烯电容器、聚丙烯电容器等可以作为记 忆电容器, 容量可以从 0.1μF至 1μF中选择, 电容的一端接到 C3或 C4引脚, 另一端接至 VDD-或 C RETURN 引脚。在一些斩波稳零运算放大器中把记忆电容接至 VDD-引脚会增加噪 声,而 TLC2652则没有这种问题。TLC2652是高精度放大器,往往在输入电压为微伏量级的 情况下高增益工作。 要保证放大器的精度, 需要注意以下两个方面:一是负反馈电阻必须有 足够的精度, 并且电路的闭环增益不能太大; 二是必须提高印制板的质量, 防止印制板表面 的漏电流。 结束语: 强杂波背景下低频微弱信号处理是信号处理领域的难点同时也是热点。 在处理完模拟预 滤波后还需要注意在进行后续处理(如进行 A/D转换)时,放大器采用直接耦合方式,加隔 直电容会衰减有用的极低频率成分。实验结果表明可编程开关电容滤波器 MAX260以及高精 度斩波稳零运算放大器 TLC2652可以很好的实现低频微弱信号的滤波放大处理。 低频微弱信 号的模拟预处理在信号处理过程中起到了非常重要的作用, 各种性能优良的测量仪器不断推 出,大大提高了微弱信号检测的精度。 参考文献: [1曾庆勇.微弱信号检测.杭州:浙江大学出版社,1996,p1-83 [2]Wiener,N.Extrapolation.Interpolation and Smoothing of Stationary Time Series. Wiley,New York,1949 [3]MAXIM Integrated Products ins.,Microprocessor Programmable Universal Active Filters MAX260/261/262 Data Sheet [4]Texas Instruments Incorporated,TLC2652/TLC2652A/TLC2652YData Sheet范文二:可编程滤波器的设计
范文三:可编程有源滤波器
范文四:可编程滤波器的设计
范文五:基于可编程开关电容滤波器MAX260的