本规划提出一种依据STM32芯片的多路电压丈量规划方案,丈量规模在0-10V之间。把STM32内置A/D对多路电压值进行采样,得到相应的数字量。然后按照数字量和模仿量的比例关系得到对应的模仿电压值,经过TFTLCD显现设备显现出来,一起将多路收集的数据存储到SD卡中。
1.导言
近年来,数据收集及其运用受到了人们越来越广泛的重视,数据收集体系也有了敏捷的开展,它可以广泛的运用于各种范畴。
数据收集技能是信息科学的重要分支之一,数据收集也是从一个或多个信号获取目标信息的进程。数据收集是工业操控等体系中的重要环节,一般选用一些功用相对独立的单片机体系来完结,作为测控体系不行短少的部分,数据收集的功用特色直接影响到整个体系。
电压的丈量最为普遍性,研讨规划并进步电压丈量精度的办法及仪器具有十分重要的含义。在电压丈量规划中,单片机作为操控器,是整个规划的中心。除此之外,规划中还必须有模数转化器(ADC)。ADC用于直接收集模仿电压并将模仿信号转化成数字信号,它直接影响着数据收集的精度和速度。
2.体系概述
本规划的微操控器选用STM32单片机。
STM32系列单片机是依据ARM公司Cortex-M3内核规划的。它的时钟频率到达72MHz,是同类产品中功用较高的产品,具有高功用、低本钱、低功耗的长处,是嵌入式运用规划中杰出的挑选。规划中的A/D转化器选用STM32内置ADC.STM32的ADC是一种12位逐次迫临型模仿数字转化器。
它有多达18个通道,可丈量16个外部和2个内部信号源。各通道的A/D转化可以单次、接连、扫描或接连形式履行。转化成果可以左对齐或右对齐方法存储在16位数据寄存器中。其输入时钟最大可到达14MHz.
本规划可丈量8通道电压值,丈量规模为0-10V的电压,显现差错为±0.001V.LCD实时显现电压值和波形图,MicroSD卡对数据进行同步存储。体系原理框图如图1所示。
3.体系硬件规划
本规划的硬件首要包含STM32模块,LCD模块,SD卡模块和按键模块。STM32模块不只作为中心操控器,还包含ADC设备,它首要包含STM32最小体系电路。LCD模块首要包含LCD驱动接口电路。SD卡模块首要是SD卡驱动电路。除此之外,还有用于程序下载调试的J-Link接口电路和电源电路等。
3.1 STM32最小体系
本模块首要介绍STM32芯片和规划中用到的外设模块。
STM32最小体系运用外部高速时钟,外接8M晶振。STM32的两个BOOT引脚都接低电平,以运用户闪存存储器为程序发动区域。芯片选用J – L i n k下载形式,也可以进行硬件调试。STM32的电源引脚都接了滤波%&&&&&%以保证单片机电源的安稳。
STM32F103VET6具有3个ADC,这些ADC可以独立运用,也可以运用两层形式(进步采样率)。STM32的ADC是12位逐次迫临型的模仿数字转化器。它有18个通道可丈量16个外部和2个内部信号源。各通道的A/D转化可以单次、接连、扫描或接连形式履行。ADC的成果可以左对齐或右对齐方法存储在16位数据寄存器中。STM32的ADC最大的转化速率为1Mhz,也便是转化时刻为1us(ADCCLK=14M,采样周期为1.5个ADC时钟下得到),不能让ADC的时钟超越14M,否则将导致成果准确度下降。STM32将ADC的转化分为2个通道组:规矩通道组和注入通道组。规矩通道相当于运转的程序,而注入通道就相当于中止。在程序正常履行的时分,中止是可以打断程序正常履行的。同这个相似,注入通道的转化可以打断规矩通道的转化,在注入通道被转化完结之后,规矩通道才得以持续转化。
本规划中ADC收集的数据运用DMA进行传输,以到达高速实时的意图。
3.2 ADC操控电路
STM32的数字/模仿转化模块(DAC)是12位数字输入,电压输出的数字/模仿转化器。本规划中运用DAC来操控ADC匹配电路的增益。
在翻开DAC模块电源和装备好DAC所需GPIO的基础上,往DAC通道的数据DAC_DHRx寄存器写入数据,假如没有选中硬件触发,存入寄存器DAC_DHRx的数据会在一个APB1时钟周期后主动传至寄存器DAC_DORx.一旦数据从DAC_DHRx寄存器装入DAC_DORx寄存器,在经过必定时刻之后,输出即有用,这段时刻的长短依电源电压和模仿输出负载的不同会有所改变。
为了扩展丈量规模和丈量精度,本规划在STM32的ADC前参加匹配电路。在ADC操控电路中,输入信号先经过射极电压跟从电路,然后经过火压电路,使输入信号满意AD603的输入要求。然后再经过射极电压跟从电路,输入ADC输入端。AD603的操控输入运用STM32的DAC,可以满意增益的要求。
匹配电路以AD603为中心。AD603为单通道、低噪声、增益改变规模线性接连可调的可控增益放大器。带宽90MHz时,其增益改变规模为-10dB~+30dB;带宽为9M时规模为10~50dB.
将V O U T与F D B K短路,即为宽频带形式(90MHz宽频带),AD603的增益设置为-11.07dB~+31.07dB.AD603的5、7脚相连,单片AD603的可调规模为-10dB~30dB.AD603的增益与操控电压成线性关系,其增益操控端输入电压规模为±500mv,增益调理规模为40dB,当步进5dB时,操控端电压需增大:
ADC匹配电路的电路图如图2所示。
3.3 LCD操控电路
本规划所运用的LCD为2.4寸,320×240分辨率。LCD模块运用STM32的FSMC接口操控。
FSMC(Flexible Static Memory Controller)即可变静态存储操控器,是STM32系列中内部集成256KB以上Flash,后缀为xC、xD和xE的高存储密度微操控器特有的存储操控机制。经过对特别功用寄存器的设置,FSMC可以依据不同的外部存储器类型,宣布相应的数据/地址/操控信号类型以匹配信号的速度,然后使得STM32系列微操控器不只可以运用各种不同类型、不同速度的外部静态存储器,而且可以在不添加外部器材的情况下一起扩展多种不同类型的静态存储器,满意体系规划对存储容量、产品体积以及本钱的归纳要求。
在STM32内部,FSMC的一端经过内部高速总线AHB衔接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的拜访信号发送到AHB总线后,经过FSMC转化为契合外部存储器通讯规约的信号,送到外部存储器的相应引脚,完结内核与外部存储器之间的数据交互。F S M C起到桥梁效果,既可以进行信号类型的转化,又可以进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有差异。
FSMC可以衔接NOR/PSRAM/NAND/PC卡等设备,而且具有FSMC_A[25:0]共26条地址总线,FSMC[15:0]共16条数据总线。别的,FSMC扩展的存储空间被分红8个块。经过地址线挑选操作的块。这样,LCD将被看作一个具有一块地址空间的存储器进行操作。
3.4 SD卡驱动电路
本规划中运用的SD卡为MicroSD,也称TF卡。MicroSD卡是一种极细微的快闪存储器卡,首要运用于移动电话,但因它的体积细小和贮存容量的不断提高,现在现已运用于GPS设备、便携式音乐播放器、数码相机和一些快闪存储器盘中。MicroSD卡引脚图如图9所示。
MicroSD卡与SD卡相同,有SPI和SDIO两种操作时总线。SPI总线相关于SDIO总线接口简略,但速度较慢。咱们运用SDIO形式。
MicroSD卡在SDIO形式时有4条数据线。
其实,MicroSD在SDIO形式时有1线形式和4线形式,也便是别离运用1根或4根数据线。当然,4线形式的速度要快于1线形式,但操作却较杂乱。本规划中运用的是SDIO的4线形式。MicroSD卡的硬件衔接图如图3所示。
3.5 接触屏电路
本规划在丈量的通道和显现设置上,除了运用按键设置,还运用接触屏进行设置。
接触屏运用芯片TSC2046操控,其硬件衔接图如图4所示。
在图4中,TSC2046可以收集接触屏的点坐标,然后确认接触的方位,进行人机交互。
STM32单片机经过SPI总线与TSC2046通讯,可以得到接触信息。本规划运用接触屏进行丈量通道数的设置和丈量速度的设置。
4.体系软件规划
4.1 软件流程
体系软件部分运用C言语编程,一起运用STM32官方供给的固件库,运用的版别为3.5版。STM32固件库也称固件函数库或标准外设库,是一个固件函数包,它由程序、数据结构和宏组成,包含了微操控器一切外设的功用特征。该函数库还包含每一个外设的驱动描绘和运用实例,为开发者拜访底层硬件供给了一个中心API,经过运用固件函数库,无需深化把握底层硬件细节,开发者就可以轻松运用每一个外设。因而,运用固态函数库可以大大削减用户的程序编写时刻,从而下降开发本钱。每个外设驱动都由一组函数组成,这组函数覆盖了该外设一切功用。简略的说,运用标准外设库进行开发最大的优势就在于可以使开发者不必深化了解底层硬件细节就可以灵敏标准的运用每一个外设。
软件部分为了便利存储数据的检查和读取,在MicroSD卡部分运用了fatfs文件体系。
FAFFS是面向小型嵌入式体系的一种通用的FAT文件体系。FATFS彻底是由AISI C言语编写而且彻底独立于底层的I/O介质。因而它可以很容易地不加修改地移植到其他的处理器傍边,如8051、P%&&&&&%、AVR、SH、Z80、H8、ARM等。
FATFS支撑FAT12、FAT16、FAT32等格局,所以咱们运用前面写好的SDIO驱动,把FATFS文件体系代码移植到工程之中,就可以运用文件体系的各种函数,对已格局化的SD卡进行读写文件了。
以上是体系软件规划的两个首要部分,其他还有LCD驱动程序,ADC和DMA驱动程序,按键中止程序等。
4.2 软件文件结构
文件main.c是整个程序的进口文件,也是首要文件。global.c和global.h首要是共用的函数和全局性的宏界说。LCD_Disp.c和LCD_Disp.h是依据STM32固件库的对LCD的底层驱动函数。Lcdfunc.c和lcdfunc.h是为了主程序更便利的操作LCD而编写的一些常用的杂乱的对LCD底层函数的封装函数。sdio_sdcard.c和sdio_sdcard.h是依据STM32固件库的对MicroSD卡的底层驱动函数。fat文件体系在STM32上的运用需求针对详细类型的硬件进行装备,所以它是依据MicroSD卡的底层驱动程序的。fatfunc.c和fatfunc.h是对fat文件操作接口的一些封装,是针对本规划中对文件的操作编写的。其他的按键中止和ADC等操作的函数是直接依据STM32固件库的,并直接被主程序调用。
5.总结
STM32在速度、功耗方面功用都愈加优胜,其丰厚的外设也愈加便利规划。别的,STM32价格较低,在本钱上也有优势。STM32适合于操控电子设备的规划。规划中运用的ADC是STM32上的12位ADC,可以满意必定的丈量精度,关于较高的丈量要求,则需求运用更高精确度的ADC.可是运用高精度ADC和DSP芯片,将很大的添加开发本钱。本规划方案完结了多路电压丈量的各项功用,可是还需求在运用中检测其安稳可靠性,以使规划愈加完善。