教你用最简单的方法实现强大的多功能手持仪,提供完整软硬件解决方案
- UID
- 1023230
|
教你用最简单的方法实现强大的多功能手持仪,提供完整软硬件解决方案
一、项目概述
1.1 引言
爱特梅尔半导体是世界上高级半导体产品设计、制造和行销的领先者,产品包括了微处理器、可编程逻辑器件、非易失性存储器、安全芯片、混合信号及RF射频集成电路。ATMEL主要应用于高增长的电子设备市场,如通讯、计算、消费类产品、安全产品、汽车电子和工业应用。
1.2 项目背景/选题动机
随着电子技术的发展和电路结构的不断创新变化,对电路测量的要求也变得更高,在电子制作中会发现对很多参数的测量已经不是一块万用表能胜任的了,比如单片机 某I/O口的输出波形或制作放大器测其频率响应等等,所以示波器自然而然的和万用表一样变成了电子工程和爱好者的必备工具,但是,示波器又很昂贵,所以我 们就想发挥我们的聪明才智和所学的知识制作一台使用的示波器,并且尽量使功能多样,并且想着节能环保,将以往按键形式的改为触屏的,还附加其他的功能。
二、需求分析
2.1 功能要求
1)双通道示波器: 显示输入信号的波形、频率、幅值。
2)万用表:可测量参数:
DCV:直流电压;
ACV:交流电压、
DCA:直流电流、
R:电阻、
UF:二极管的正向导通电压、
hFE:三极管放大倍数。
3)信号发生器:产生方波、锯齿波、正弦波、三角波等信号波形;信号的频率和幅度可调。
2.2 性能要求
- 示波器:
- 通道数:2
- 带宽:60MHz
- 垂直灵敏度:不小于10mV-5V/div
- 最大输入电压:50Vpp
- 输入阻抗:1MΩ
- 水平时基范围:不小于500ns-50ms/div
- 显示:彩色液晶
- 耦合方式:AC/DC
2)数字万用表:
- 直流电压量程:200mV ;2V;20V;200V ----精度:±0.5%
- 交流电压量程:
200mV -----精度:±1.2%
2V;20V;200V----精度:±1.0%
- 直流电流量程:
2mA;20 mA ------精度:±0.5%
200 mA ------精度:±1.5%
10A ------精度:±2.0%
- 交流电流量程:
2mA;20 mA ------精度:±1.0%
200 mA ------精度:±2.0%
10A ------精度:±3.0%
200Ω;2KΩ;20KΩ;200KΩ;2MΩ;------精度:±0.5%
3)函数信号发生器:
- 频率范围:1Hz~50MHz
- 频率精确度:±0.5 Hz
- 信号谐波失真(50Ω匹配负载,1Vp-p输出时):
- 小于20kHz:-60dBc
- 20kHz~1MHz:-50dBc
- 1MHz~10MHz:-40dBc
- 10MHz~50MHz:-30dBc
- 输出幅度范围:2mV~2Vrms(开路),或1 mV~1 Vrms(50Ω负载)
- 输出阻抗: 50Ω
- 稳幅特性(频幅平坦度):10Hz~10MHz±0.5dB 1Hz~50MHz±1dB
- 三、方案设计
3.1示波器
3.1.1系统功能实现原理
数字示波器首先对模拟信号进行高速采样获得相应的数字数据并存储。用数字信号处理技术对采样得到的数字信号进行相关处理与运算,从而获得所需的各种信号参 数。根据得到的信号参数绘制信号波形,并可对被测信号进行实时的、瞬态的分析,以方便使用者了解信号质量,快速准确地进行故障的诊断。测量开始时,操作者 可通过操作界面选定测量类型、测量参数及测量范围;微处理器自动将测量设置解释到采样电路,并启动数据采集;采集完成后,由微处理器对采样数据按测量设置 进行处理,提取所需要的测量参数,并将结果送显示部件。
系统硬件结构框图
3.1.2 电路设计
程控放大部分:
程控放大器的作用是对输入信号进行衰减或放大调整,使输出信号电压在 AD转换器输入电压要求范围内,达到最好的测量与观察效果,所以程控放大器电路在规定带宽内的增益一定要平坦,故对运算放大器的要求比较高。
开关用继电器控制,H代表吸合,L代表未吸合。
电压灵敏度与 S1~S4 的关系表:
放大倍数 灵敏度 S1 S2 S3 S4
0.1 2V H L L L
0.2 1V H L H L
0.4 0.5V L H L L
1 0.2V L L L L
2 0.1V L L H L
4 50mV L H L H
10 20mV L L L H
20 10mV L L H H
高速A/D转换和数据存储:
由程控放大电路调整后的信号分成两路,有一路进入A/D转换电路进行采样,采样所得的数据由 74LVC574 锁存缓冲后送入存储器。
时钟电路:
时钟产生电路为 AD转换器提供一系列的采样时钟信号,分别为 600Hz、 6kHz、 60kHz、600kHz、3MHz、6MHz、30MHz 和 60MHz,共 8种,分别对应着不同的水平水平扫速。
基准时钟为60MHz,通过多路选择器和分屏器实现。
主控MCU:
由一片AVR单片机作为主控芯片,进行数据的处理并控制程控放大器和时钟产生器,并将数据送屏幕显示。
3.1.3 系统预计实现结果
采样速率: 600Sa/s, 6kSa/s, 60kSa/s, 600kSa/s, 3MSa/s, 6MSa/s, 30MSa/s, 60MSa/s
水平水平扫速:500ns、1μs、5μs、10μs、50μs、500μs、5ms、50ms
垂 直电压灵敏度: 10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0.2V/div, 0.5V/div, 1V/div, 2V/div,5V/div
3.1.4系统软件流程
3.2函数信号发生器
3.2.1函数信号发生器简介
函数发生器又称波形发生器。它能产生某些特定的周期性时间函数波形(主要是正弦波、方波、三角波、锯齿波和脉冲波等)信号。频率范围可从几毫赫甚至几微赫的超低频直到几十兆赫。除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测量领域。图2为产生上述波形的方法之一,将积分电路与某种带有回滞特性的阈值开关电路(如施米特触 发器)相连成环路,积分器能将方波积分成三角波。施米特电路又能使三角波上升到某一阈值或下降到另一阈值时发生跃变而形成方波,频率除能随积分器中的RC 值的变化而改变外,还能用外加电压控制两个阈值而改变。将三角波另行加到由很多不同偏置二极管组成的整形网络,形成许多不同斜度的折线段,便可形成正弦 波。另一种构成方式是用频率合成器产生正弦波,再对它多次放大、削波而形成方波,再将方波积分成三角波和正、负斜率的锯齿波等。对这些函数发生器的频率都 可电控、程控、锁定和扫频,仪器除工作于连续波状态外,还能按键控、门控或触发等方式工作。
3.2.2方案设计与选择
方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法 来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。
3.2.3设计原理
我们做的信号发生器只需用到外部中断和PWM脉宽调制波两项技术便可以实现,Atmel多数单片机都支持这两项技术,由于主控芯片还未定,故该信号发生器暂时假定采用的控制芯片为Atmega16。
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。Atmega16单片机本身就是一个完整 的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通 讯接口等,,只要将Atmega16再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信 号发生器构成原理框图如图3.1所示:
信号发生器原理框图
Atmega16是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。
3.2.4设计思想
1、利用单片机产生方波、锯齿波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。
2、将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为:T=T/256。
3、正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:
Y=(A/2sint)+A/2 (其中A=VREF)
那么对应着存放在计算机里的这一点的数据为:
4、一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1--TAB4为起始地址的存储器中。
3.2.5设计功能
根据系统操作界面的菜单提示选择信号发生器输出的波形。分别有正弦波、方波、三角波。
在系统操作界面可以调节输出波形的频率和幅值。频率范围:10~1000Hz,输出波形幅度为:0~5V。
3.2.6硬件设计
硬件原理框图
3.2.7软件设计
本文中子程序的调用是通过操作界面菜单选项的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。主程序的流程图如下图所示
主程序的流程图
在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结 束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。下图为各波形子程序的流程图。如图所示,在中断服务子程序开始后,通过判断 来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换器 将数据转换成模拟信号,形成所需波形信号。
程序运行流程图
3.3数字万用表
3.3.1数字万用表简介
特点: 分辨力强、准确度高(±0.5%~ ± 0.03%) 测试功能完善、测量速率快、显示直观、耗电省、过载能力强、便于携带。
测量参数:DCV:直流电压、ACV:交流电压、DCA:直流电流、R:电阻、UF:二极管的正向导通电压、hFE:三极管放大倍数
3.3.2原理图
3.3.3功能电路
1、功能量程的选择:通过操作界面选择万用表模式,并选择相应的档位和量程。
参数转换电路:
ICL7106:三位半LCD/LED显示A/D转换器.
AD转换原理
从上式可知:被测电压只与基准电压及计数值有关,而这两者的准确度都可以做得较高,所以数字万用表的测量准确度较高
测量 DCV、 ACV、 DCA、 hFE时UREF=100mV,测量二极管正向压降时UREF=1V
测量R时,UREF不一定为100mV
5LCD显示 在液晶屏幕上显示出所测参数的物理量
6、直流电流转换电路(I→〈200mV电压)
以200mA档为例
UIN = 1Ω ×100mA= = 100mV
7、直流电压转换电路
8、交流电压转换电路(以200V档为例)
9、电阻转换电路(以20k挡为例)
若RX= RREF则N2=1000,把小数点点在百位即可
10、二极管正负极测量电路
11、 三极管放大倍数测量
Ic=βIb ——> <200mV直流电压——> A/D转换
3.4 LCD触摸屏
3.4.1 LCD触摸屏参数
- 显示屏幕尺寸 2.8inch
- 屏幕点阵 240 * 320
- 屏幕色彩 65K色
- 接口标准 intel80(D0-D15,ADDR0,nWR,nRD,nCS,)接口,支持MCU51(74F373扩展),ARM
- 驱动IC:HX8347
- 工作电压2.5~3.6,背光电流80mA
- 可以支持2.8inch可视面积,3.0inch手写触摸膜
- 屏幕尺寸 50(W) * 69.2(H) * 4.0(T) 带触摸膜
3.4.2 触摸屏实现功能
我们采用的液晶屏主要用于显示功能,其次,该液晶屏还带触摸功能,还可以作为输入,对系统进行控制。
3.4.3 硬件实现
由于该液晶屏已经自带转接线,只要从AVR主控芯片把引脚扩展出来,另外再为液晶屏搭个驱动电路驱动液晶屏,便可以对液晶屏进行控制了。(具体硬件电路需等官方提供了开发套件之后方好确定下来)
3.4.4 软件部分
液晶屏主要是用来显示示波器的输出,同时作为输入对示波器进行各项功能的选择,故我们把显示屏软体部分分成了两个部分:一是输出的显示,二是输入的检测。
输出的显示:根据示波器所处的模式,显示相应的输出,如果示波器处于波形检测模式,则在输出屏幕上显示检测到的波形;如果示波器处于万用表工作模式下,则输出屏幕上显示测到的电压,电流,电阻等物理量的数值。
输入检测:由于该液晶屏带触摸功能,故可以把输入按键放到液晶屏上,实现触摸按键功能。
下图是多功能示波器的初步界面设计方案:(以下设计仅为初步设想,最终界面需根据具体功能进一步改善)
(多功能示波器界面图)
3.5太阳能充电器
为了绿色环保,我们将使用太阳能来提供所需的能源。
6V200MA 太阳能电池板
仪器使用2节5号充电电池供电。
充电器功能:
1、给充电电池充电;
2、给手机充电;
3、充电完成自动断电,避免过冲。
充电器输出电压:5V或1.2V
充电器输出电流:350mA
3.6 SD外部存储
3.6.1 外部存储简介
由 于示波器是一种精密的测量仪器,数据量比较大,很多时候用户不仅需要实时地观测数据,事后还需要对数据进行处理和分析,这就要求要有一个较大的数据存储空 间,由于单片机自带的ROM一般不会太大,而且很不方便与PC机进行数据传输,因而我们决定采用外部SD卡对数据进行存储。
3.6.2 SD外部存储原理
SD 有两种操作模式:SD 卡模式,SPI 模式。SD 卡模式不介绍。一般用SPI 模式操作。我们这里采用SPI模式对SD卡进行存取数据。
在SPI模式下,用单片机的4个控制I/O口分别模拟MOSI、MISO、CS、CLK即可实现数据的存取,电路简单,如下图所示:
SD卡原理图
3.6.3 SD卡驱动
通用驱动为:
(1)初始化SPI接口,使用低速模式
(2)延时至少74clock
(3)发送CMD0,需要返回0x01,进入Idle 状态
(4)循环发送CMD55+ACMD41,直到返回0x00,进入Ready 状态
(5)设置读写block 大小为512byte
(6)把SPI 设置为高速模式
3.6.4 软件程序
下面为SD卡存取数据需要用到的主要几个函数
void SPI_Init(void){…}
void SPI_Send_Byte(byte Data){…}
void SPI_Receive_Byte(byte Data){…}
|
|
|
|
|
|