基于STM32单片机的多路数据采集系统设计.docx
《基于STM32单片机的多路数据采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于STM32单片机的多路数据采集系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于STM32单片机的多路数据采集系统设计
基于STM32单片机的多路数据采集系统设计
TheDesignOfMulti-channelDataAcquisitionSystemBasedOnSTM32
中国地质大学(北京)
指导教师
王猛、张启升
组员:
李金泽1010102124
梁迪1010102110
张永1010102120
2013.3.31
摘要
本文是基于ARMCortex-M3的STM32系列嵌入式微控制器的应用实践,介绍了基于STM32单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。
本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。
数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机STM32来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。
该系统从机负责数据采集并应答主机的命令。
输入数据是由现场模拟信号产生器产生,8路被测电压再通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据传输到上位机,由上位机负责数据的接受、处理和显示,并用LCD数码显示器来显示所采集的结果。
软件部分应用KeiluVision4通过C++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。
关键词:
数据采集89C52单片机ADC0809KeiluVision4
Abstract
ThisarticleisanapplicationofSTM32seriesembeddedARMcontrollerbasedonCortex-M3anditdescribesthehardwaredesignandsoftwaredesignofthedataonwhichbasedonsignal-chipmicrocomputer.Thedatacollectionsystemisthelinkbetweenthedigitaldomainandanalogdomain.Ithasanveryimportantfunction.Theintroductivepointofthistextisadatatocollectthesystem.Thehardwareofthesystemfocusesonsignal-chipmicrocomputer.Datacollectionandcommunicationcontrolusemodulardesign.Thedatacollectedtocontrolwithcorrespondencetoadoptamachine8051tocarryout.Thepartofhardware’scoreisSTM32,isalsoincludesA/Dconversionmodule,displaymodule,andtheserialinterface.Slavemachineisresponsiblefordataacquisitionandansweringthehostmachine.8roadsweremeasuredtheelectricvoltagetopasstheingeneralusemold-fewconversionofADC0809,therealizationcarriesontheconversionthatimitatestomeasurethenumeraltomeasuretowardsthedatathatcollect.Thensendthedatatothehostmachine.thehostmachineisresponsiblefordataanddisplay,LEDdigitaldisplayisresponsibledisplaythedata.ThesoftwareispartlyprogrammedwithC++oftheKeiluVision4.Thesoftwarecanrealizethefunctionofmonitoringandcontrollingthewholesystem.Itdesignsmuchprogramlikedata-acquisitiontreatment,data-displayanddata-communicationect.
Keyword:
dataacquisitionAT89C52ADC0809KeiluVision4
第一章绪论
1.1研究背景及其目的意义
近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。
数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非成熟人员进行操作,并且测试任务是由测试设备高速自动控制完成的。
由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。
大概在60年代后期,国内外就有成套的数据采集设备和系统多属于专用的系统。
20世纪70年代后期,随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集系统。
由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因而获得了惊人的发展。
从70年代起,数据采集系统发展过程中逐渐分为两类,一类是实验室数据采集系统,一类是工业现场数据采集系统。
20世纪80年代随着计算机的普及应用,数据采集系统得到了很大的发展,开始出现了通用的数据采集与自动测试系统。
该阶段的数据采集系统主要有两类,一类以仪表仪器和采集器、通用接口总线和计算机组成。
这类系统主要应用于实验室,在工业生产现场也有一定的应用。
第二类以数据采集卡、标准总线和计算机构成,这一类在工业现场应用较多。
20世纪80年代后期,数据采集发生了很大的变化,工业计算机、单片机和大规模集成电路的组合,用软件管理,是系统的成本减低,体积变小,功能成倍增加,数据处理能力大大加强。
20世纪90年代至今,在国际上技术先进的国家,数据采集系统已成功的运用到军事、航空电子设备及宇航技术、工业等领域。
由于集成电路制造技术的不断提高,出现了高性能、高可靠的单片机数据采集系统(DAS)。
数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。
该阶段的数据采集系统采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速组成一个新的系统。
尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。
相较于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。
这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。
1.2国内外研究现状
数据采集系统是通过采集传感器输出的模拟信号并转换成数字信号,并进行分析、处理、传输、显示、存储和显示。
它起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前社会的发展主流方向。
各种领域都用到了数据采集,在石油勘探、科学实验、飞机飞行、地震数据采集领域已经得到应用。
我国的数字地震观测系统主要采用TDE-124C型TDE-224C型地震数据采集系统。
近年来,又成功研制了动态范围更大、线性度更高、兼容性更强、低功耗可靠性的TDE-324C型地震数据采集系统。
该数据采集对拾震计输出的电信号模拟放大后送至A/D数字化,A/D采用同时采样,采样数据经DSP数字滤波处理后,变成数字地震信号。
该数据采集系统具备24位A/D转化位数,采样率有50HZ、100HZ、200HZ。
由美国PASCO公司生产的“科学工作室”是将数据采集应用于物理实验的崭新系统,它由3部分组成:
(1)传感器:
利用先进的传感技术可实时采集技术可实时采集物理实验中各物理量的数据;
(2)计算机接口:
将来自传感器的数据信号输入计算机,采样速率最高为25万次/S;(3)软件:
中文及英文的应用软件。
受需求牵引,新一代机载数据采集系统为满足飞行实验应用也在快速地发展。
如爱尔兰ACRA公司2000年研发推出的新一代KAM500机载数据采集系统到了2006年。
本系统采用16位(A/D)模拟数字变换,总采样率达500K/S,同步时间为+/-250ns,可以利用方式组成高达1000通道的大容量的分布式采集系统。
1.3该课题研究的主要内容内容
数据采集技术是信息科学的重要分支之一,它研究信息数据的采集、存储、处理以及控制等问题。
它是对传感器信号的测量与处理,以微型计算机等高技术为基础而形成的一门综合应用技术。
数据采集也是从一个或多个信号获取对象信息的过程。
随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。
数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。
尽管现在以微机为核心的可编程数据采集与处理技术作为数据采集技术的发展方向得到了迅速的发展,并且适于通用微机(如IBMPC系列)使用的板卡级数据采集产品也已大量出现,组成一个数据采集系统简单到只需要一块数据采集卡,把它插在微机的扩展槽内,并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响,因为单片机功能强大、抗干扰能力强、可靠性高、灵活性好、开发容易等优点,使得基于单片机为核心的数据采集系统在许多领域得到了广泛的应用.
传统的基于单片机的数据采集系统由于没有上位机的支持,不管采用什么样的数据存储器,它的存储容量都是有限的,所以不得不对存储的历史数据进行覆盖刷新,这样不利于用户对数据进行整体分析,因而也不能对生产过程的状况进行准确的把握。
本系统采用下位机负责模拟数据的采集,从单片机负责采集八路数据,并应答主机发送的命令,上位机即主机是负责处理接受过来的数字量的处理及显示,主机和从机之间用RS-232进行通信。
这样用户可以在上位机上编写各种程序对文件中的数据进行有效查询和分析,有利于工业过程的长期正常运行和检查。
该系统采用的是STM32单片机,此芯片功能比较强大,能够满足设计要求。
第二章数据产生
2.1现场模拟信号产生器
自制一电压转换电路,利用可变电阻改变振荡频率,使频率在200Hz~2kHz范围变化产生方波,再经频率电压变换后输出相应1~5V直流电压(200Hz对应1V,2kHz对应5V)。
2.2基于LM331的电压频率转换
LM331是美国NS公司生产的性能价格比高、外围电路简单、可单电源供电、低功耗的集成电路。
LM331动态范围宽达100dB,工作频率低到0.1Hz时尚有较好的线性度,数字分辨率达12位。
LM331的输出驱动器采用集电极开路形式,因此可通过选择逻辑电流和外接电阻来灵活改变输出脉冲的逻辑电平,以适配TTL、DTL和CMOS等不同逻辑电路。
LM331可工作在4.0V~40V之间,输出可高达40V,而且可以防止VCC短路。
输出频率计算:
该转换电路线性良好,抗干扰能力强,输出范围在10Hz~10kHz以上,有利于提高系统的测量范围。
电路如图2.1所示
图2.1电压频率转换电路
2.3基于LM331的频率电压转换
LM331用作FVC时的原理框如图2.2所示.
图2.2
此时,
脚是输出端(恒流源输出),
脚为输入端(输入脉冲链),
脚接比较电平.电路如图2.3所示
图2.3频率电压转化电路
第三章数据采集
3.1数据采集系统
数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集技术广泛引用在各个领域。
70年代初,随着计算机技术及大规模集成电路的发展,特别是微处理器及高速A/D转换器的出现,数据采集系统结构发生了重大变革。
原来由小规模集成的数字逻辑电路及硬件程序控制器组成的采集系统被微处理器控制的采集系统所代替。
由微处理器去完成程序控制,数据处理及大部分逻辑操作,使系统的灵活性和可靠性大大地提高,系统硬件成本和系统的重建费用大大地降低。
在该系统中需要将模拟量转换为数据量,而A/D是将模拟量转换为数字量的器件,他需要考虑的指标有:
分辨率、转换时间、转换误差等等。
而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑控制,数据传输等一系列的任务。
在该系统中采用的是STM32系列的单片机。
而数据的显示则采用的是LCD数码管,该器件比较简单,在生活中接触也较多。
数据采集系统一般由信号调理电路,多路切换电路,采样保持电路,A/D,单片机等组成。
完成毕业设计所需要的系统框图如图3.1所示:
图3.1系统框图
3.2方案
3.2.1A/D模数转换的选择
A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。
位数越高其分辨率就越高,价格也就越贵。
A/D转换器型号很多,而其转换时间和转换误差也各不相同。
(1)逐渐逼近式A/D转换器:
它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。
(2)双积分A/D转换器:
它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。
(3)并行式A/D转换器:
它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。
鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的是逐渐逼近式A/D转换器——ADC0809.
3.2.2单片机的选择
单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。
此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还有可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。
单片机要使用特定的组译和编译软件编译程序,在用keiluvision4把程序下载到单片机内。
而本设计选用的是STM32F103.
3.2.3显示部分
LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。
3.2.4八路数据采集器
数据采集器第1路输入自制1~5V直流电压,第2~7路分别输入来自直流源的5,4,3,2,1,0V直流电压(各路输入可由分压器产生,不要求精度),第8路备用。
将各路模拟信号分别转换成8位二进制数字信号,再经并/串变换电路,用串行码送入传输线路。
第四章硬件部分
4.1主机部分
该系统是一个主从式多路数据采集系统,主机和从机均用单片机实现,它的主机部分负责数据处理和显示。
它由STM32、ADC0809和LCD12864显示器组成。
4.1.1单片机
关于STM32
1.简介
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。
2.STM32F103性能特点
内核:
ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz。
单周期乘法和硬件除法。
存储器:
片上集成32-512KB的Flash存储器。
6-64KB的SRAM存储器。
时钟、复位和电源管理:
2.0-3.6V的电源供电和I/O接口的驱动电压。
POR、PDR和可编程的电压探测器(PVD)。
4-16MHz的晶振。
内嵌出厂前调校的8MHzRC振荡电路。
内部40kHz的RC振荡电路。
用于CPU时钟的PLL。
带校准用于RTC的32kHz的晶振。
低功耗:
3种低功耗模式:
休眠,停止,待机模式。
为RTC和备份寄存器供电的VBAT。
调试模式:
串行调试(SWD)和JTAG接口。
DMA:
12通道DMA控制器。
支持的外设:
定时器,ADC,DAC,SPI,IIC和USART。
2个12位的us级的A/D转换器(16通道):
A/D测量范围:
0-3.6V。
双采样和保持能力。
片上集成一个温度传感器。
2通道12位D/A转换器:
STM32F103xC,STM32F103xD,STM32F103xE独有。
最多高达112个的快速I/O端口:
根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。
除了模拟输入,所有的都可以接受5V以内的输入。
最多多达11个定时器:
4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。
2个16位的6通道高级控制定时器:
最多6个通道可用于PWM输出。
2个看门狗定时器(独立看门狗和窗口看门狗)。
Systick定时器:
24位倒计数器。
2个16位基本定时器用于驱动DAC。
最多多达13个通信接口:
2个IIC接口(SMBus/PMBus)。
5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。
3个SPI接口(18Mbit/s),两个和IIS复用。
CAN接口(2.0B)。
USB2.0全速接口。
SDIO接口。
ECOPACK封装:
STM32F103xx系列微控制器采用ECOPACK封装形式。
4.1.2LCD显示器
LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。
液晶显示器按照控制方式不同可分为被动矩阵式LCD及主动矩阵式LCD两种。
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:
(1)、低电源电压(VDD:
+3.0--+5.5V)
(2)、显示分辨率:
128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)(4)、内置128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:
STN、半透、正显(7)、驱动方式:
1/32DUTY,1/5BIAS(8)、视角方向:
6点(9)、背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10(10)、通讯方式:
串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
4.2从机部分
该系统的从机负责A/D模数转换,并应答主机的命令,需要用到ADC0809。
4.2模数转换器ADC0809
在我们所测控的信号中军事连续变化的物理量,而要对这些信号进行处理,则需要将其转换为数字量,A/D转换器就是为了将连续变化的模拟量转换成计算机能接受的数字量。
按模拟量转换成数字量的原理可以分为3种:
双积分式、逐次逼近式及并行式A/D转换器。
而该系统选用的是ADC0809,下面就具体的介绍一下ADC0809的工作原理。
1、ADC0809的介绍
ADC0809是八通道的八位逐次逼近式A/D转换器。
由单一的5V电源供电,片内带有锁存功能的8选1的模拟开关。
由C、B、A的编码来决定所选的模拟通道。
转换时间为100us。
转换误差为1/2LSB。
它的引脚的排列及其功能,其引脚图见4.10
图4.10ADC0809的引脚图
IN7~IN0:
八个通道的模拟输入量。
ADDA、ADDB、ADDC:
模拟通道地址线。
当CBA=000时,IN0输入,当CBA=111时,IN7输入。
ALE:
地址锁存信号。
START:
转换启动信号,高电平有效。
D7~D0:
数据输出线。
三态输出,D7是最高位,D0是最低位。
OE:
输出允许信号,高电平有效。
CLK:
时钟信号,最高频率为640KHZ。
EOC:
转换结束状态信号。
上升沿后高电平有效。
Vcc:
+5V电源。
Vref:
参考电压。
2、ADC0809时序图及其接口电路
ADC0809的时序图如图4.11所示:
图4.11ADC0809的时序图
其工作过程是:
ALE的上升沿将A、B、C端选择的通道地址锁存到8位A/D转换器的输入端。
START的下降验启动8位A/D转换器进行转换。
A/D转换开始使EOC端输出低电平。
A/D转换结束,EOC输出高电平。
该信号通常可作为中断申请信号。
OE为读出数据允许信号。
OE端为高电平时,可以读出转换的数字量。
硬件电路设计时,需根据时序关系及软件进行设计。
ADC0809与STM32单片机的接口方式,如图4.12所示:
图4.12ADC0809与单片机的连接图
由于ADC0809具有输出3态锁存器,其八位数据输出引脚可直接与数据总线相连。
地址译码引