本文通过 LabVIEW 虚拟实验软件平台设计了一种利用 ATmega16 单片机进行数据采集、并通过 RS232 串行通信将数据传送给 PC 的简易虚拟示波器,用户可以在开发平台上对数据采集参数进行设置和调整,并对波形数据进行存储。系统摆脱了传统开发平台的限制,具有多通道、方便、灵活等特点,在数据采集、传感器监测等领域有重要应用。虚拟仪器基于 PC 技术发展起来,因而“继承”了以现成即用的 PC 技术为主导的最新商业技术的优点,包括性能出色的处理器和文件 I/O,使在数据导入磁盘的同时就能实时进行复杂的分析。为了实时、准确地测量输入波形的参数,本文采用自带 8 路 10 位 ADC 的单片机 ATmega16,结合简单的外围电路,即可将输入波形实时传送给 PC 机进行处理;通过 PC 机上由 LabVIEW 开发的上位机软件对波形进行显示和处理,从而达到简易虚拟示波器的效果。
数据采集电路设计
ATmega16 单片机是美国 Atmel 公司生产的基于增强型 AVR RISC 结构的低功耗 8 位 CMOS 微控制器。ATmega16 具有如下特点:16KB 的系统内可编程 Flash(具有同时读写的能力,即 RWW)、512B EEPROM、1KB SRAM、32 个通用 I/O 口线、32 个通用工作寄存器;用于边界扫描的 JTAG 接口,支持片内调试与编程;三个具有比较模式的灵活的定时器/计数器(T/C);片内/外中断;可编程串行 USART;有起始条件检测器的通用串行接口;8 路 10 位具有可选差分输入级、可编程增益(TQFP 封装)的 ADC;具有片内振荡器的可编程看门狗定时器;一个 SPI 串行端口;以及六个可以通过软件选择的省电模式。

图 2 采样电路原理图
本设计正是利用 ATmega16 的 8 路 10 位可编程增益的逐次比较型 ADC 及可编程异步串行接口的内部资源,从而简化了电路设计与编程的难度。采样电路的电路图如图 2 所示:ATmega16 只需结合简单的晶振电路和复位电路就可以完成本设计的需求,模拟信号通过 8 路模拟输入的任意端口输入即可,通过单片机内部程序控制,很容易将输入模拟量转化为数字量;单片机再通过串行接口传输给 PC 机,串行通信通过串行发送引脚 TXD(PD1)和串行接收引脚 RXD(PD0)连接串行通信接口电路,实现数据的串行传送与接收。
串口通信接口电路设计
本系统设计中通过 MAX232 连接单片机和 PC 机。ATmega16 具有异步串行通讯接口(UART),UART 是为能与计算机通讯的全双工异步系统。本系统采用 RS232 接口方式,由于 RS232 信号电平与 AVR 单片机信号电平(TTL 电平)不一致,因此在采用 RS232 标准时必须进行信号电平转换。在串行通信的接口电路中选用 MAX232 芯片作为信号电平转换芯片,实现 TTL 电平和 RS232 接口电平之间的转换,从而把 ATmega16 内部需要传送的数字信号准确无误地传输给 PC 机,供上位机软件读取并进行信号处理。
串行接口电路原理图如图 3 所示:TTL 电平引脚输入引脚 9、10,连接 ATmega16 的串行发送接口 TXD 和串行接收接口 RXD;通过电平转换为 RS232 电平,通过 7 脚和 8 脚连接串行接口的 2 脚和 3 脚;串行接口通过串行通信线连接采样模块的串行接口和 PC 机的串行接口。ATmega16 通过内部编程很方便地把数据传送给 PC 机。

图 3 串口通信接口电路图
多通道采样原理:由于 ATmega16 内部 ADC 为 8 选 1 数据通道,在具体实现某路数据采集时必须更改多工选择寄存器 ADMUX 的数值。为能随时更改通道,本设计采用主从方式,通过上位机发送给 ATmega16 的数值来改变通道:在 ATmega16 的串行接收中断中,通过判断接收的数值更改 ADMUX 的数值;同时,通过接收数值的编码也可用来改变 ADC 相邻两次转换之间的延时值,从而达到改变转换速率的效果。当需要采集双通道数值时,单片机内部 ADC 可采用分时复用的原则,同时将获得的 8 位数据加一个最高标志位扩展为 9 位数据,上位机通过对数据最高位的校验可以很方便地区分数据,并在显示界面上将双通道波形实时显示更新。
本文设计的虚拟示波器系统由单片机 ATmega16 和 MAX232 构成的下位机系统及由 LabVIEW 开发的上位机软件构成。系统充分利用 ATmega16 单片机的软硬件资源,方便快捷地实现数据采集,并通过 RS232 接口实现与上位 PC 机的连接;PC 机通过 LabVIEW 开发平台方便地实现数据的分析、处理、存储和打印输出,构成简易虚拟示波器。本系统具有电路简单、使用灵活方便等特点,因此能广泛应用于工业、农业、水文系统、环境监测等领域,实现现场勘测和数据采集。