kaiyun官方注册
您所在的位置: 首页> 模拟设计> 业界动态> 单片机控制的双路有源滤波器设计

单片机控制的双路有源滤波器设计

2009-04-30
作者:倪向东

摘 要:用单片机对可编程滤波器芯片MAX262进行程序控制,可以同时对两路输入信号进行二阶低通、高通、带通带阻以及全通滤波处理,滤波器的中心频率在15kHz~50kHz频率范围内实现64级程控调节,其Q值在0.5~64范围实现128级程控调节。

关键词:MAX262 单片机 滤波器

在工业自动化的许多领域都要使用滤波器。一般有源滤波器均由运算放大器和RC元件组成,对元器件的参数精度要求比较高,设计和调试都比较麻烦。美信公司(MAXIM)生产的可编程滤波器芯片MAX262可以通过编程对各种低频信号实现低通、高通、带通、带阻以及全通滤波处理,而且滤波的特性参数如中心频率、品质因数等也可以通过编程进行设置。

有源滤波器一般通过改变RC网络的参数来改变频率特性,采用运算放大器和可切换元件参数的RC网络,可以用同一电路组成各种频率特性的滤波器。美信公司的可编程滤波器芯片采用编程数据来完成RC网络的切换。

1 MAX262芯片介绍

(1)内部结构

MAX262主要由放大器、积分器、电容切换网络(SCN)和工作模式选择器组成。积分器、电容切换网络(SCN)和工作模式选择器分别由编程数据M0M1,F0~F5和Q0~Q6控制。MAX262内部有两个二阶滤波器,滤波器A和B可以单独使用,也可级联成四阶滤波器使用。芯片的使用非常灵活,但它们均受同一组编程数据的控制。

MAX262芯片的工作频率为1Hz~140kHz。当时钟频率为4MHz,工作模式选择为模式3时,芯片可以对140kHz的输入信号进行滤波处理。其它工作模式的最高工作频率为100kHz。滤波器A和B可以采用内部时钟,也可以采用外部时钟。外部时钟分别从芯片的引脚CLKA、CLKB引入,对外部时钟无占空比要求。如果要对更低频率的信号进行滤波处理,可采用MAX260芯片,它的工作频率为0.01Hz~7.5kHz。输入的低频信号可以直接送到MAX260芯片的输入端(即INA或INB引脚),输入信号的幅度范围为0V~+5V。

(2)编程参数

MAX262芯片有三个编程参数:中心频率f0、Q值和工作模式。

中心频率由编程数据F0~F5控制,共64个不同的二进制数据,每个数据对应一个时钟频率fCLK与中心频率f0的比值fCLK/f0。在文献[1]的表2中给出了MAX262芯片的fCLK/f0与编程数据F0~F5的对应关系。在系统实现时,可以采用查表的方法获得编程数据。本文采用计算的方法来形成编程数据F0~F5

Q值由编程数据Q0~Q7控制,共128个不同的二进制数据,每个数据对应一个不同的Q值,最小的Q值为0.5,最大的Q值为64(如果芯片工作在模式2则可达90.5)。在文献[1]的表3中给出了编程数据Q0~Q7与Q值的对应关系。

工作模式由编程数据M0M1控制,分别对应工作模式1、2、3和4。模式1可以实现低通、带通和带阻滤波;模式2基本与模式1相同,只是该模式可以获得最高的Q值;模式3是唯一可以实现高通滤波的模式;而只有模式4才能实现全通滤波,它和模式3也可以实现低通和带通滤波。

编程参数f0、Q值和工作模式确定以后,只要将相应的编程数据装入MAX262芯片内部的寄存器,滤波器的类型和频率特性也就确定了。

2 单片机硬件设计

MAX262芯片的编程输入总线比较简单,它包括2条数据线D0D1,4条地址线A0~A3,另外还有一条写允许控制线。单片机采用内部有4KB程序存储器的89C51。它与MAX262芯片构成的双路程序控制滤波器系统硬件配置原理框图如图1所示。

本系统采用6264芯片扩展数据存储器。由于74LS138译码器使用89C51 P2口的高三位进行地址译码,则6264的地址范围为0000H~1FFFH。

74LS138译码器的输出Y2作为 8279芯片的片选信号,其地址范围为4000H~5FFFH。经74LS373锁存后的地址线A0送到8279的A0地址输入端,所以选择5FFFH作为8279的命令口地址,5FFEH作为8279的数据口地址。89C51的晶振选用12MHz,其ALE信号经4分频后,得到频率为500kHz的信号送到8279的CLK输入端作为时钟信号。8279采用中断方式,占用89C51的外中断0。8279采用8个七段LED显示器,其键盘按键如下:10个数字键0~9,1个小数点键,5个功能键(即用于选择滤波器的类型,低通、带通、高通、全通和带阻滤波),1个回车键,共17个按键。

89C51的控制信号和74LS138译码器的Y1输出信号相与后送到MAX262的写允许控制端,则MAX262的地址范围为2000H~3FFFH。MAX262的地址线AX(即A0~A3)和数据线DX(即D0D1)连接到89C51的P0口低六位,即A0~A3、D0D1分别连接到P0.0~P0.5。89C51的ALE信号送到MAX262的CLKA和CLKB引脚作为时钟信号,即MAX262的外部时钟频率为2MHz,所以程控滤波器能处理的输入信号频率范围为15kHz~50kHz,通过改变编程数据F0~F5实现64级中心频率调节。

本系统选用模式1实现低通、带通和带阻滤波,模式3实现高通滤波,模式4实现全通滤波。其中,滤波器A和B的高通、带阻和全通滤波输出端分别共用MAX262的HPA、HPB引脚。需要处理的低频输入信号分别由MAX262的INA和INB引脚输入,滤波器A和滤波器B的三个输出端分别连接到模拟开关4052的输入端,然后由4052的输出端输出滤波处理后的信号,即图1中的OUTA和OUTB两路输出信号。4052的地址A1、A0由89C51的P1.1、P1.0控制,实现对滤波器类型的选择。

3 系统软件实现方法

(1)编程数据获得方法

MAX262的地址A0~A3与数据D0D1的关系见表1。由表1可见每个滤波器的工作模式、中心频率、Q值所需编程数据均需要分8次写入MAX262的内部寄存器才能完成设置。

通过文献[1]给出的fCLK/f0与F0~F5的关系表格,得到本文根据fCLK/f0计算编程数据F0~F5的公式,即fCLK/f0与F0~F5的关系为:

fCLK/f0=40.84+1.57N1(1)

或,N1=(fCLK/f0-40.84)/1.57 (2)

其中,N1为二进制数据F0~F5对应的十进制整数,范围为0~63共64级。

同样,对应滤波器的Q值也不采用查表的方法,而是通过计算来获得Q值的编程数据Q0~Q7。Q值与Q0~Q7的关系为:

Q=64/(128-N2) (3)

或, N2=64(2-1/Q) (4)

其中,N2为二进制数据Q0~Q6对应的十进制整数,范围为0~127共128级。

(2)系统程序流程

本系统的单片机主程序框图见图2。首先进行初始化,包括对8279的初始化,然后从片内RAM中读取新设置标志位进行判断。如果不是则给MAX262芯片送入滤波器所需的初始工作参数;是新设置则根据键中断服务程序获得的键值进行处理。

进行新设置时,首先根据输入的键值完成对滤波器的选择,包括滤波器A和B的设置选择以及相应滤波器的类型选择;然后根据式(4),由输入的Q值计算N2并转换为二进制编程数据Q0~Q6送片内RAM;同时根据式(2),由输入的中心频率f0值计算N1并转换为二进制编程数据F0~F5送片内RAM。在获得MAX262的工作参数后,根据表1将这些参数转换为8字节的编程数据,由89C51的P0口送到MAX262。

设置完成后,MAX262就按照当前所要求的中心频率和Q值对输入信号进行滤波处理。

最后调用显示子程序,在LED数码管上显示当前滤波器的工作参数,即中心频率和Q值。

本文采用单片机89C51来完成对可编程滤波器MAX262的控制,很好地实现了有源滤波器的设计工作。而且这种程控滤波器具有使用灵活、调试容易的特点,一片MAX262就能完成对两路输入信号进行二阶滤波的处理。

如果需要四阶滤波可以很容易通过滤波器A和B的级联来实现。另外还可以通过对89C51的ALE信号进行倍频和分频实现MAX262的所有工作频率范围。

参考文献

1 钟福元.可编程滤波器的原理及应用.实用电子文摘,1994;(3)

2 陈光东,赵性初.单片微型计算机原理与接口技术.武汉:华中理工大学出版社,1993

3 钟福元.采用PC机键盘控制的程控“变声器”.实用电子文摘,1994;(3)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。
Baidu
map