摘要:设计了一个基于ARM芯片的多路数据采集系统,可以实现对8路数据的采集,信号的采集方式可以是单路采集也可以是多路循环采集,控制信号可通过触摸屏或上位机控制输入,数据采集的结果以数字和图形的方式在液晶屏上实时显示。经软硬件综合调试,验证了方案的可行性。
关键词:数据采集;ARM;液晶显示器;A/D转换;STM32
0 引言
随着物联网技术的发展与应用,A/D数据采集是其中一项重要的研究课题,A/D多路采集系统实现方案可以多种,通过对三种实现方案进行比较,最终采用STM32系列ARM芯片进行设计。STM32是基于ARM Cortex-M3内核的32位处理器,具有杰出的功耗控制以及众多的外设,并具有极高的性价比,目前正逐渐抢占了电子领域原有的51、AVR的市场。本设计中采用STM32F103RBT6作为主控制器,该芯片配置丰富,便于今后的系统功能扩展。
1 方案比较与论证
为实现多路数据采集要求,提出如下三种设计方案:
(1)基于单片机的数据采集系统
本方案采用双单片机的方法,即在数据采集的远端、近端均采用单片机控制,远端完成数据的采集、抽样、发送;近端完成数据的接收、校验、处理和显示等,键盘控制数据显示。在近端与远端的通信中,采用RS 485差分方式接口,以提高通信速度与传输距离。该方案存在不足之处是:A/D接口和RS 485接口编程不方便,采集信号的频率范围和速率较低,实用性不大。
(2)基于CPLD的数据采集系统
采用CPLD对A/D芯片的采集控制,通过USB接口传输给上位机,优点是可以实现高的采集速率和采集精度,有着较大的实用性,但难点之处是CPLD对A/D模块的控制,及单片机对USB的配置。
(3)基于ARM的数据采集系统
本方案主控器采用STM32系列的ARM芯片,方案如图1所示。
此方案中A/D转换器为ARM芯片内置,采集的方式、起始时间和持续时间由上位机通过RS 232口控制,数据通过USB接口传输至上位机保存。考虑到使用笔记本作为控制上位机时没有232接口,使用USB转232的电缆提供RS 232控制信息。
由于A/D芯片内置,芯片价格也便宜,电路设计较前面的简单,且ARM自带的A/D采集方式多样,并可以通过配置ARM芯片内相应的寄存器就可以实现,因此实现简便。考虑到后面的扩展需要和应用的广泛与实用性,本设计采用此方案。2 系统设计原理
电路设计原理如图2所示。
该电路主要由电源模块,主控器模块,显示模块,SD卡模块,USB转232模块等几个部分组成。 (1)主控制器
采用STM32F103RBT6作为MCU,其性价比很高,该芯片具有20 KB SRAM、128 KB FLASH、3个普通的16位定时器、1个16位的高级定时器、2个SPI、2个I2C、3个串口、1个USB、1个CAN、2个12位的ADC、51个通用I/O口。因为主控器STM32是3.3 V供电的,所以需要将USB的5 V电压转换为3.3 V。这里采用电源线性稳压芯片AMS1117—3.3,将5 V转换为3.3 V。
(2)液晶显示
电路中采用通用的LCD接口,支持8位或者16位总线或者SPI的液晶屏。该模块采用TFTLCD面板(薄膜晶体管液晶显示器),可以显示16位色的真彩图片,提高数据显示效果,同时也可以将采集数据以图形曲线的方式形象的表现出来。该模块有2.4’/2.8’两种大小的屏幕可选,320×240的分辨率,16位真彩显示,自带触摸屏。接口采用80并口与外部连接,采用16位数据线。
(3)JTAG
采用标准的JTAG接法,STM32的SWD接口与JTAG是共用的,只要接上JTAG,也可以使用SWD模式下载并调试代码,多数情况下使用SWD来下载调试代码,节省资源、而且下载速度也快。
(4)SD卡
利用SD卡,扩大容量存储设备,用来实时保存采集的数据,既可以弥补没有上位机的情况,也更方便于事后对大量的数据的分析与处理。
(5)A/D采集
STM32本身拥有1~3个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。最大的转换速率为1 MHz,也就是转换时间为1μs。
3 软硬件综合调试结果
编写数据采集、触摸屏控制、上位机控制程序和液晶显示模块程序主要几个模块,将程序下载并进行系统调试,最终效果如图3,图4所示。
系统可以通过触摸屏选择实现对8路数据的单路采集或多路循环采集模式,数据采集的结果可在液晶屏上显示,也可传输给上位机或保存在SD卡中。通过比较被测电压和数据采集到的电压值,测量精度符合设计要求。
4 结语
本系统电路简单,成本低,并具有一定的可扩展性和实用性。ARM自带的A/D采集方式多样,可以通过配置ARM芯片内相应的寄存器就可以实现,因此实现简便。主控器STM32芯片是基于ARM Cortex—M3内核的32位处理器,具有杰出的功耗控制以及众多的外设,具有极高的性价比,在工业控制、消费类电子产品、通信系统、网络系统、无线系统等多个领域具有广泛的应用前景,因此值得研究和推广。 |