基于AVR单片机的数据采集系统设计
- 格式:pdf
- 大小:65.26 KB
- 文档页数:2
本文介绍了一套基于Matlab环境下的AVR单片机数据采集系统,其特点是成本低,采集数据速度快,实时性好。本采集系统使用了带有10位分辨率AD的微型处理器,接口电路采用USB接口,DA输出电路采用spi
关键词:摘要:李向江樊京(南阳理工学院南阳473004)基于AVR
单片机的数据采集系统设计信息技术与网络服务
本文介绍了一套基于Matlab环境下的AVR单片机数据采集系统。使用AVR系列的单片机中的ATmega16作为微控制器,提高了系统运行速度。同时它内部带有8通道独立的10位精度A/D接口,工作于降噪声模式,增强了抗干扰能力并降低了成本。信号采集结果通过USB接口直接送入matlab的工作空间并使用matlab的GUI界面显示,便于信号的分析与处理。1整体硬件方案框图基于AVR单片机的数据采集系统工作原理结构图如下图1所示。进行数据采集时其工作流程为:被测信号经过运放进行1:1放大后,从模拟信号输入通道输入,送到ATmega16的ADC模块,ADC模块内嵌在AVR单片机内部,可以通过编程实现ADC转换;转换结束以后把结果发送到PDIUSBD12的数据缓冲区中;当PDIUSBD12接收到上位机发出的读数据请求时,就把数据发送到PC机端;而DAC部分就是当接收到上机发来的DAC转换请求命令和转换数据时,ATmega16就会启动,控制DA芯片TLV5617,开始进行DAC转换。其中系统中ADC电路含4路输入,DAC电路含2路输出,且ADC的前两路输入增益可通过反馈电阻值来调节。ADDAAVR数据来集板USB传输操作系统(CPC机)Matlab显示面板图1基于AVR数据采集系统结框图2USB接口电路USB接口电路主要是完成上位机和数据采集设备之间的数据传输功能。它的最大速度能达到12Mb/s,数据的传输决定权完全由上位机来控制。本次设计使用的是Philip公司的USB芯片PDIUSBD12。当上位发出模数转换、数模转换、I/O输入输出或是一次性完成数模转换和模数转换的命令时,设备就会执行相关的应用程序进行工作,并把结果发送到PDIUSBD12的缓冲区中保存。当上位机发出读取数据的命令请求后,PDIUSBD12就会把缓存区中的数据以帧的形式传输到Matlab应用软件中,以便于数据处理。在USB接口设计中,设计的难点在于驱动程序的设计。目前,开发USB驱动程序使用的工具有Windriver、DDK、DriverStudio。其中利用DDK开发驱动程序要求开发者阅读大量的DDK(DriverDevelopmentKit)文档,深入了解操作系统的内核工作机制,因此要很长的周期。WinD-river是一套入门比较容易的驱动程序开发软件。它改变了传统驱动程序开发的方法与思路,极大地简化了驱动程序的编制,可以在应用软件开发人员熟悉的VB、VC下开发出专业的驱动程序。本次设计就是采用windriver完成的USB驱动程序的设计。3Matlab图形界面及接口设计Matlab强大的科学计算与可视化功能,简单易用的开放式可扩展环境以及多达30多个面向不同领域而扩展的工具箱(Toolbox)支持,使得Matlab在许多学科领域中成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台。但是,驱动程序一般是用VC设计的,要想将此数据进一步导入Matlab处理,需要设计VC和Matlab的接口程序。将Matlab程序编译成MEX文件。在Matlab中可调用的C或Fortran语言程序称为MEX文件。Matlab可以直接把MEX文件视为它的内建函数进行调用。MEX文件是动态链接的子例程,Matlab解释器可以自动载入并执行它。本次设计采用MEX文件的方法将数据导入Matlab。图形用户界面是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。虚拟示波器利用Matlab的图形用户界面显示采集的数据。这样,既可以利用VC速度快的特点作后台采集,又能利用Matlab的强大功能,这对于作数据分析的科研工作者具有很大意义。本次虚拟示波器界面实现了历史数据记录、超前滞后触发、量程选择等功能。4系统性能测试在AVR单片机内部ADC转换中,ADC采样理论值:ADC=(Vin*1024)/Vref。其中,Vin表示选定输入引脚上的电压,Vref表示选定的参考电源的电压。0x000表示引脚的电压为模拟地,0x03ff表示输入引脚电压为参考电压值减去一个LSB。为了测试系统的精度,可以将DA的输出通道与AD的输入通道形成一个闭环采集,即从DAC的0通道发送一个数据输出,然后用一根导线把DAC0和ADC0连接起来,把数值又从ADC0中转换回来。测试结果如表1所示。表1闭环精度测试结果测试号输出值输入数值10x00000x000020x0001
0x000130x00ff0x00fe40x01ff0x01fc50x03ff0x03fc接口的DA输出芯片。数据采集USBAVRMatlab2006年第19期