基于ARM系统的AD多路采集控制.doc

上传人:啊飒飒 文档编号:10359425 上传时间:2021-05-11 格式:DOC 页数:17 大小:314.75KB
返回 下载 相关 举报
基于ARM系统的AD多路采集控制.doc_第1页
第1页 / 共17页
基于ARM系统的AD多路采集控制.doc_第2页
第2页 / 共17页
基于ARM系统的AD多路采集控制.doc_第3页
第3页 / 共17页
基于ARM系统的AD多路采集控制.doc_第4页
第4页 / 共17页
基于ARM系统的AD多路采集控制.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于ARM系统的AD多路采集控制.doc》由会员分享,可在线阅读,更多相关《基于ARM系统的AD多路采集控制.doc(17页珍藏版)》请在三一文库上搜索。

1、目录1.引言12.硬件概述22.1STM32功能特性概述22.2 STM32时钟电路2 2.3 STM32复位电路33 多路数据采集系统总体设计3 3.1 系统设计要求33.2 系统设计方案44 数据采集系统的硬件设计44.1 最小系统的设计44.2 STM32F103系列规格说明44.3 STM32F103RBT6处理器64.4 电压采集系统的设计75 系统调试及软件设计85.1 最小系统板调试85.2 系统整体调试86 总结10参考文献11附录12基于ARM系统的AD多路采集控制摘要:设计了一个基于ARM芯片的多路数据采集系统,可以实现对路数据的采集,信号的采集方式可以是单路采集也可以是多

2、路循环采集,通过调节滑动变阻器的电阻来调节输出电压的变化。数据采集的结果以数字的形式在串口助手窗口显示。经软硬件综合调试,验证了方案的可行性。关键词:数据采集;ARM;AD转换;STM1.引言数据采集系统是将采集传感器输出的温度、压力、流量、位移等模拟信号转换成计算机能识别的数字信号,进行相应的计算存储和处理;同时,可将计算所得的数据进行显示或打印,以便实现对某些物理量的监测和控制。嵌入式系统是以应用为中心,以计算机为基础,软硬件可剪裁,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统的核心是各种类型的嵌入式处理器。目前,采用ARM技术的微处理器占据了主流,其应用遍

3、及工业控制、消费类电子产品、通信系统、DSP、网络系统、无线移动应用等各类产品市场。而 ARM微处理器的Cortex系列专为安全要求较高的应用而设计。其中,Cortex-M3适于高性能、低成本需求的嵌入式应用。2.硬件概述2.1STM32功能特性概述 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex -M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产

4、品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。图 1 STM32B2M103XX2.2 STM32时钟电路RTC是STM32的脉搏,是单片机的驱动源。使用任何一个外设都必须打开相应的时钟。这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,打到节能,实现低功耗的效果。STM32的时钟可以由以下3个时钟源提供:1、 HSI:高速内部时钟信号stm32单片机内带的时钟(8M频率)精度较差。2、 H

5、SE:高速外部时钟信号精度高,来源(1)HSE外部晶振/陶瓷谐振器(晶振); (2)HSE用户外部时钟。3、 LSE:低速外部晶体32.768KHZ,主要提供一个精确地时钟源,一般作为RCC时钟使用。 图2 晶振电路2.3 STM32复位电路我在该设计中使用了手动复位和上电自动复位组合电路,复位开关通过复位电路产生复位信号的优点是信号的波形比较好,复位电路可以去掉开关的抖动。 图3 复位电路3 多路数据采集系统总体设计3.1 系统设计要求本数据采集系统的设计要求实现多路直流电压的实时采集和顺序转换。经过部分采集处理后,由串行数据总线将转换数据发送至上位机界面,经过换算,以检测采集的电源正常与否

6、;同时在输出端产生4路数字信号,以用作输出测试与控制。3.2 系统设计方案根据上述设计要求和数据采集系统的设计规范,将系统划分为两个部分:最小系统和采集系统。最小系统采用基于ARM Cortex-M3架构的微控制器STM32F103RBT6为主控CPU,利用其内置16通道ADC对输入的多路直流电压信号进行实时采集和转换,内置外设USART将转换结果经过串口发送在PC端由串口调试助手显示。 采集系统采用4路直流电压的采集,采用比例分压的方法,利用排阻进行采集电压的比例转换,以达到ADC转换的参考基准电压要求。电压信号的输入采用比例分压的方法,将4路模拟电压利用串口通信输入到最小系统进行处理。电压

7、信号经过采集板,级联输入到最小系统板中,利用CPU内置ADCl中的10个转换输入通道,依次进行转换。设置CPU_内部DMA模块实现转换结果的存储,利用串口转发数据,在上位机显示转换结果。4 数据采集系统的硬件设计 根据系统构成原理,硬件设计上,最小系统和采集系统两部分通过并行接口实现多块板级联,通过选择相应的输入通道和转换通道,实现信号采集和转换结果的显示。最小系统中,采用STM32F103RBT6微控制器,工作频率可达72MHz,内置2个12位ADC,16个外部模拟信号输入通道,可达1 u s转换时间,转换范围是O3.6V;支持7个DMA通道,可操作多种通用外设,如定时器、ADC、USART

8、等;内置3个同步16位定时器。4.1 最小系统的设计按照STM32最小系统的设计规范和本系统的功能要求,最小系统构成如图4所示:电源模块外围电路模块系统复位ADC通道输入CPUSTM32F103KBT6 USART串行通信图4 最小系统设计框图电源模块:CPU为3.3V供电,最小系统外部输入电源为5V,经过电压转换芯片LM1117-3.3获得3.3V输出电压,以提供系统电源。电源的输入输出端并接滤波电容,分别滤除电源的高频和低频噪声。 USART串行通信接口模块:支持同步单向通信、半双工单线通信、和全双工模式。具有用于多缓冲器配置的DMA方式,可以实现高速数据通信。单独的发送器和接收器使能位,

9、发送方为同步传输提供时钟。10个带标志的中断源。除此之外还有外部时钟,复位系统,ADC参考电压,JTAG调试接口的设计。4.2 STM32F103系列规格说明STM32F103系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器,具有丰富的增强型I/O端口和连接到两条高性能的外设总线的外设。STM32F103系列都至少包含2个12位的ADC、1个高级定时器、3个通用16位定时器,还包含标准和先进的通信接口:2个IC、2个SPI同步串行接口、3个USART异步串行接口、1个USB全速接口和一个CAN接口。I/O翻转速度可达18MHz。 STM32

10、F103系列中等容量增强型系列产品供电电压为2.0V至3.6V,包含-40至+85温度范围。一系列的省电模式保证低功耗应用的要求。STM32F103系列中等容量系列产品提供包括从36脚至100脚的6种不同封装形式;根据不同的封装形式,期间中的外设配置不尽相同。下面给出该系列产品中的产品功能和外设配置一览表,如表(1)所示:表1 STM32F103系列中等容量产品功能和外设配置4.3 STM32F103RBT6处理器电压调压器调压器有三个操作模式:主模式、低功耗模式和关断模式(1) 主模式用于正常的运行操作(2) 低功耗模式用于CPU的停机模式(3) 关断模式用于CPU的待机模式:调压器的输出为

11、高阻状态,内核电路 的供电切断,调压器处于零消耗状态 该调压器在复位后始终处于工作状态,在待机模式下关闭处于高阻输出。ADC(模拟/数字转换器)STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器,每个ADC共用多达13个外部通道,可以实现单次或扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换。ADC接口上的其它逻辑功能包括:(1) 同步的采样和保持(2) 交叉的采样和保持(3) 单次采样ADC可以使用DMA操作模拟看门狗功能允许非常精准的监视一路、多路或所有选中的通道,当被监视的信号超出预置的阈值时,将产生中断。由标准定时器和高级控制定时器产生的事件,可以分别内部级联

12、到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。通用输入输出接口(GPIO)STM32F103RBT6处理器具有51个多功能双向5V兼容的I/O口,使用时可以作为通用GPIO口,也可作为复用AFIO口。复用I/O中,本系统外设所使用的有:定时器4通道四TIM4-CH4复用PB9口;USART1引脚USART1-TX、USART1-RX复用PA9、PA10:ADC 转换通道CH0CH9分别复用PA0PA7及PB0、PB1。对于复用功能的端口可以配置成以下模式:输入模式(浮空、上拉或下拉)或复用功能输出模式,此时输入驱动器被配置成浮空输入模式。ADC通道端口用作ADC输入时将对应端口

13、配置为模拟信号输入模式;USART数据传输时,TX、RX复用端口分别配置为备用功能推拉模式和输入浮动模式。通用定时器(TIMx)STM32F103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2、TIM3和TIM4)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于PWM输出。每个定时

14、器都有独立的DMA请求机制。4.4 电压采集系统的设计 电压采集系统作为本系统的第二部分,主要实现多路电压信号顺序选择输入,获得ADC采集端的输入电压信号,并能选择不同的ADC通道,以实现4路电压信号采集与最小系统板级联。本部分主要包括电压采集模块、数据选择模块、以及输入输出接口等。电压采集模块:电路中采用电阻比例分压的方法,获取输入电压信号,以达到CPU采集转换的基准电压的要求。在实际硬件设计中,采用比例阻值的排阻代替分离电阻以便于电路板的绘制和整体布局。数据选择模块:采用16选1输出的模拟开关CD4067作为数据选择器,输出控制由CPU四个端口输入高低电平作为二进制组合以确定输出的数据通道

15、。输入输出接口:本系统数据采集和最小系统两部分采用40针排线连接,各个采集板上可以同时选择两个不同的通道,级联后各板将数据选择器的输出信号送至相应的ADC转换通道。5 系统调试及软件设计设计并加工好外围印刷电路板后,开始硬件和软件的调试。调试过程中采用逐个功能单元调试,一个功能单元调试正常后再调试下一功能模块,确保电路板出问题时可以很快发现问题点,再将各功能单元组合设置,逐步完成软件设计和系统调试,实现系统设计要求。系统调试所使用的开发环境为MDK,仿真工具为ST-LINKII,使用USB接口。5.1 最小系统板调试将电源模块、复位、外部晶振焊到电路板上,组成最小系统,分模块,分步骤,调试系统

16、各部分。加电调试前检测是否有电源短路,确保电路安全。电源模块:电路外部输入电压为5V,经电压转换后在LMlll7-3.3V输出端得到3.3V的输出。加电后,首先通过万用表测量电压输出是否正确,然后通过示波器观察输出电平的波形是否满足系统对电源精度的要求,如不满足,可以通过加大滤波电容的方法解决。最小系统供电正常后,连接仿真器,通过软件平台可以检测到最小系统CPU,表明CPU焊接正常。调试过程中会用到外部晶振,需要检测晶振电路,将系统上电,使用示波器检测晶振管脚,观察波形,看晶振是否起振。然后编写一个简单的LED测试程序来观察CPU是否能正常工作,通过软件设置电路中LED连接的 I/O端口(PB

17、6)输出模式,观察是否有闪烁。DMA调试:DMA用来提供在外设和存储器之间或者存储器之间的高速数据传输。DMA通道配置包括:设置外设寄存器、数据存储器的基地址,确定数据量和通道优先级,以及数据传输的方向、循环模式、外设和存储器的增量模式等。ADC1对应DMA通道1请求,ADC通道配置中使能DMA请求。DMA可以用于主要的外设:SPI、IC、USART、通用、基本和高级控制定时器TIM和ADC。 除此之外还有USART调试、ADC调试等。5.2 系统整体调试最小系统板各功能单元调试通过后,将最小系统板与数据采集板级联进行系统整体调试。 系统调试主要包括:外设和系统时钟初始化,GPIO初始化,US

18、ART初始化和ADC、定时器初始化及ADC通道设置和串口收发配置等。系统调试流程如图5所示:RCC初始化NVIC初始化GPIO初始化ADC初始化DMA初始化UXART初始化信号自动采集等待一次采样完成传输结束串口传送数据软件自动ADC结束开始图5 整体流程图图6 串口显示按照上述流程完成程序设计,编译、链接、运行,观察输入输出情况。打开串口调试助手,在数据接收区内以十六进制依次显示经过ADC所获得的输入信号的转换结果,图中显示了4路采样输出后的电压值。调节滑动变阻器,可以串口助手窗口看到输出电压值的变化。电路能够正常工作,且软件调试成功,实现了设计要求。证明外围电路的设计思路正确,软件编程正确

19、,能够满足设计要求的需要。6 总结本数据采集系统充分利用微处理器STM32F103RBT6内置的16路ADC通道、DMA控制器、USART通信接、定时器等丰富的外设资源,在系统实现上简化了相关模块的设计,提高了系统运行的可靠性。经过系统硬件设计和软件配置实现顺序采集转换输入的多路电压信号,并利用上位机界面显示采集的信号,实现了输入信号的实时监测和管理,达到了系统设计的基本要求。在本次实习活动中,不仅需要动手也需要动脑,是软件与硬件的结合。在外围电路的制作过程中,使我们详细的了解的电路的制作过程。增强的我们的动手能力。软件的编写过程,是对我们以前学过的嵌入式知识的总结与进一步提高。让我们对软件编

20、程有了更深一步的体会。参考文献1 田泽. 嵌入式系统开发与应用教程M . 北京:北京航空航天大学出版社,2005.3 2 周立功. ARM 嵌入式系统基础教程M . 北京:北京航空航天大学出版社,2005. 3 吴明晖. 基于ARM 的嵌入式系统开发与应用M . 北京:人民邮电出版社,2004. 4 朱永宏,马梅方,梅杓春.国外电子测量技术. 维普资讯网 第2期,2008 附录1多路采样外围电路2采样外围电路图3 软件程序(1)主程序* 文件名 :main.c * 描述 :用3.5.0版本建的工程模板。 * 实验平台:野火STM32开发板 * 库版本 :ST3.5.0 * 作者 :wildfi

21、re team * 论坛 :http:/ * 淘宝 :http:/*/#include stm32f10x.h#include usart1.h#include adc.hextern _IO u16 ADC_ConvertedValue;/ 局部变量,用于存从flash读到的电压值 float ADC_ConvertedValueLocal4; int i;/ 软件延时void Delay(_IO u32 nCount) for(; nCount != 0; nCount-);/* * 函数名:main * 描述 : 主函数 * 输入 :无 * 输出 : 无 */int main(void)

22、SystemInit(); /* USART1 config */USART1_Config();/* enable adc1 and config adc1 to dma mode */ADC1_Init();printf(rn -这是一个ADC实验-rn); while(1)while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);/等待传输完成否则第一位数据容易丢失 for(i=0;iDR; /DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&AD_Value; /DMA内存基地址 DMA_In

23、itStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 5; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.D

24、MA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); /* Enable DMA channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); /* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1, ENABLE);/* * 函数名:ADC1_Init * 描述 :无 * 输入 :无 * 输出 :无 * 调用 :外部调用*/void ADC1_Init(void)ADC1_GPIO_Config();ADC1_Mode_Config();ADC_DMAInit();/* (C) COPYRIGHT 2011 野火嵌入式开发工作室 *END OF FILE*/16

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1