单片机控制的双路有源滤波器设计
2 单片机硬件设计
MAX262芯片的编程输入总线比较简单,它包括2条数据线D0D1,4条地址线A0~A3,另外还有一条写允许控制线WR。单片机采用内部有4KB程序存储器的89C51。它与MAX262芯片构成的双路程序控制滤波器系统硬件配置原理框图如图1所示。
本系统采用6264芯片扩展数据存储器。由于74LS138译码器使用89C51 P2口的高三位进行地址译码,则6264的地址范围为0000H~1FFFH。
74LS138 译码器的输出Y2作为8279芯片的片选信号CS,其地址范围为4000H~5FFFH。经74LS373锁存后的地址线A0送到8279的A0地址输入端,所以选择5FFFH作为8279的命令口地址,5FFEH作为8279的数据口地址。89C51的晶振选用12MHz,其ALE信号经4分频后,得到频率为500kHz的信号送到8279的CLK输入端和为时钟信号。8279采用中断方式,占用89C51的外中断0。8279采用8个七段LED显示器,其ALE信号经4分频后,得到频率为500kHz的信号送到8279的CLK输入端作为时钟信号。8279采用中断方式,占用89C51的外中断0。 8279采用8个七段LED显示器,其键盘按照如下:10个数字键0~9,1个小数点键,5个功能键(即用于选择滤波器的类型,低通、带通、高通、全通和带阻滤波),1个回车键,其17个按键。
89C51的WR 控制信号和74LS138译码器的Y1输出信号相与后送到MAX262的WR写允许控制端,则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 MAX262的址A0~A3与数据D0D1的关系
滤波器A | 滤波器B | ||||||||||
数据位 | 地 址 | 数据位 | 地 址 | ||||||||
D0 | D1 | A3 | A2 | A1 | A0 | D0 | D1 | A3 | A2 | A1 | A0 |
M0A F0A F2A F4A Q0A Q2A Q4A Q6A | M1A F1A F3A F5A Q1A Q3A Q5A | 0 0 0 0 0 0 0 0 | 0 0 0 0 1 1 1 1 | 0 0 1 1 0 0 1 1 | 0 1 0 1 0 1 0 1 | M0B F0B F2B F4B Q0B Q2B Q4B Q6B | M1 F1B F3B F5B Q1B Q3B Q5B | 1 1 1 1 1 1 1 1 | 0 0 0 0 1 1 1 1 | 0 0 1 1 0 0 1 1 | 0 1 0 1 0 1 0 1 |
通过文献[1]给出的fCLK/f0与F0~F5的关系表格,得到本文根据fCLK/f0计算编程数据F0~F5的公式,即fCLK/f0与F0~F5的关系为:
fCLK/f0=40.84+1.57N1 (1)
或,N1为二进制数据F0~F5对应的十进制整数,范围为0~63共64级。
评论