STC12C5412单片机在语音示波器中的应用
2009-02-17
作者:谭进怀, 陈立万
摘 要: 以STC12C5412AD单片机作为核心器件,完成了语音示波器的设计方案。该方案实现了包括电压、周期的识别、切换和测量过程自动化,引入语音电路,实现信号测量结果语音报数。
关键词: 单片机;示波器;语音报数
目前,单片机技术的发展与广泛应用,促使传统的仪器仪表引进了微计算机技术,从而在原理、功能、精度及自动化等方面发生了革命性的变化,形成了一种新型的智能化仪器。在现代检测技术领域中,示波器是高校实验室和科研院所中使用相当频繁的测量仪器之一。但是,目前普遍使用的模拟示波器,其偏转灵敏度、扫描速度的确定都是人工操作,电压值、周期值都必须通过人眼观测和人工计算才能得到,测量结果有一定的误差。对此,本文采用STC12C5412AD单片机为控制核心,实现信号电压幅值、周期值的自动识别与切换,测量过程实现自动化;引人ISD2560语音电路,测量结果不需人工换算,可语音报数。
1 语音示波器硬件电路设计
语音示波器硬件电路框图如图1所示。主要由衰减电路、语音电路、单片机控制电路等组成。
1.1示波器衰减电路
示波器衰减电路由两级幅值衰减电路、源极跟随放大电路和幅值选择电路组成,其原理电路如图2所示。
电路默认将模拟转换器CD4052置于最高档衰减。输入信号电压Vi,经最高档衰减后的电压Vo送到有效值变换电路,变换所得的直流电压送到比较电路(比较芯片采用LM311)。首先判断其电压是否高于设定的参考电压,如果高于参考电压,LM311输出高电平“1”,送到单片机P1.1口,单片机发出切换指令,通过P1.5~P1.7口去控制CD4052的片选A、B端,切换到次大衰减档;再判断是否满足测量要求,如果不满足就将继续切换,直到信号的幅值低于参考电压。此时,LM311输出一低电平“0”,送至单片机P1.1口,单片机发出停止切换指令,CD4052的A、B端不变(即不再切换),电路就在该档位进行测量[1]。
1.2 语音报数电路
为了实现直接读数,减小测量误差,利用单片机所具有的计算功能,结合语音处理技术,通过语音电路,将测量结果直接读出。语音电路以ISD2560语音芯片为核心器件,接入少量外围元件就可组成语音电路[2],其电路如图3所示。
语音报数电路ISD2560易于与微机接口,能进行分段寻址。分析所有可能的测量结果,设计出语音元素(电压、周期、频率)和对应的地址(010H、020H、030H)分配等,通过图3所示电路,分别录制语音元素,这些信息存储于ISD2560非易失性存储单元NMC中。测量数据经过单片机软件处理后,单片机发出语音地址和放音控制指令,并同存储在语音芯片内部的语音地址进行比较,当两者相匹配时,最后通过语音电路及扬声器报出测量结果。
1.3 单片机控制电路及工作原理
单片机控制电路如图4所示,包括单片机、信号处理电路、整形电路及电源等。
单片机选用STC12C5412AD,单片机控制电路[3]通过对输入信号幅度的控制,满足有效值变换器AD736最大输入电压为200mV的要求。经有效值变换电路得到与其有效值对应的直流信号,在单片机的控制下,该信号通过10位A/D转换器转换成数字信号送单片机内部电路。经软件处理后的结果送至语音电路,实现信号幅值测量直接读数。单片机定时器T1输入端所接收信号为TTL电平,所以输入信号必须经六反相器(斯密特触发器)74HC14整形、累加器74HC196十分频后送单片机处理。最后送至语音电路,报出所测信号的周期或频率。
在单片机的控制下完成信号幅值、周期测量后,通过标准串行总线通信接口RS232,进行PC机与单片机之间的通信,实现测量结果的记录、分析及处理。通过接口也可将数据直接送到各种打印机和绘图仪。电平转换芯片采用MAX232。AD736、LM311采用±15V和+5V供电,其余IC选用+5V的电源。
2 软件设计
本系统的软件部分主要包括信号幅值测量模块、周期测量模块、语音报数的实现模块。由于系统主要功能的实现是通过系统内部自动操作完成各模块的功能,因此,将主模块和其他功能模块相结合,实现测量过程自动化及测量结果语音报数的控制。主程序流程图如图5所示。
2.1 信号幅值测量模块
被测信号幅值是任意的,考虑到示波器输入信号幅值可能达到最大值,因此初始测量时,电路处于最大档衰减,即衰减1 000倍。衰减后的信号经有效值电路AD736变换为直流信号送至比较器LM311。通过比较后由单片机控制其衰减倍数,直到比较器输出为低电平“0”送至单片机P1.1口,最后单片机发出停止切换指令,并进入测量阶段。此时,单片机发出控制指令,控制内部A/D转换器启动转换,从而实现10位A/D模数转换。调用幅值处理程序,完成信号幅值测量。
2.2 信号周期测量模块
输入信号经反相器74HC14整形后变为方波信号,送到单片机定时器T1并进行计数。当信号频率为10Hz~99Hz时,单片机P2口接至示波器扫描电路,P2.0~P2.2输出000,并进行扫描速度切换;同理,信号频率分别为100Hz~999Hz、1kHz~9.999kHz、10kHz~99.999kHz、100kHz~999.999kHz、1MHz~9.99999MHz,单片机P2口P2.0~P2.2分别输出001、010、011、100、101,最后送至扫描电路分别进行扫描速率切换,调用周期处理程序,完成信号周期测量。
2.3 自动检测算法
系统上电后,由MCU将测量档位确定在最大衰减档位。此时信号电压经过衰减电路衰减后送有效值转换电路,并将交流信号转换成有效值信号。有效值信号分为两路,一路至单片机P1.0端口;另一路至比较电路。比较电路将有效值和参考电压Vref相比较,如果输出高电平“1”,说明此时没有达到合适的测量档位,P1.1端口则出现高电平“1”,单片机检测到高电平,电路将继续进行降低档量程切换。档位从高到低,每切换一个档位就把转换后的有效值和参考电压进行比较,直到出现低电平“0”为止。单片机检测到低电平,电路就锁定在该测量档位,此时读取电压值,并进行测量处理[4]。
2.4 语音报数的实现
电路所采集到的信号数据通过单片机分析处理后,首先实现电压幅值和频率的自动识别及切换;再利用单片机的计算功能,对所采集到的数据进行分析比较,即按照预先所设计的指标,对数据单独进行处理;测量结果作为数据地址,通过单片机P2口P2.3~P2.7接至语音电路ISD2560接口A4~A8端。语音电路接收到测量数据地址,在语音地址中通过寻址,最后报出相应地址数据所对应的电压幅值和周期值。
3 实际应用及分析
用幅值衰减电路取代模拟示波器衰减电路(原电路复杂,成本高),保持示波器60dB放大倍数不变;将单片机与示波器扫描电路相连,实现扫描电路切换控制,示波器CRT读出,满足屏上显示2~3个周期波形观测的要求。在标准信号发生器提供频率分别为10Hz、100Hz、1kHz、10kHz、100kHz、1MHz、10MHz时,幅值分别为10mV、50mV、100mV、500mV、1V、5V、10V正弦信号。用该示波器对其进行测量,幅值测量精度为±0.5%,频率测量精度优于±0.02%,完全达到了设计要求。
本文所论述的语音示波器,利用单片机软、硬件资源,实现了示波器灵敏度、扫描速度自动选择与切换;信号电压幅值、周期值自动识别与切换,测量过程自动化;不需“人工”计算,测量结果直接“显示”。测试结果表明,该电路具有测量稳定、快速、精度较高的特点;同时,该项技术在检测技术领域具有一定的应用前景。
参考文献
[1] 林占江.电子测量技术[M].北京:电子工业出版社,2003.
[2] 蔡莲红,黄德智,蔡锐.现代语音技术基础与应用[M].北京:清华大学出版社,2003.
[3] 何立民. MCS-51系列单片机应用系统设计[M]. 北京:航空航天大学出版社,2001.
[4] 许宜生,丁振荣.自动检测仪器仪表电子电路设计[M].北京:电子工业出版社,2001.