微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于ARM Cortex-M3的多路数据采集系统的设计

基于ARM Cortex-M3的多路数据采集系统的设计

时间:12-14 来源:互联网 点击:

摘要:数据采集是获取信号对象信息的过程。本文设计了一个基于ARM Cortex-M3处理器的数据采集系统,利用内置的丰富的外设资源,实现多路模拟输入电压信号的连续采集和顺序转换,通过RS232串行通信将转换结果在PC接收端显示,并产生PWM方波信号,实现对现场电压信号的实时监测。
关键词:数据采集系统;嵌入式系统:Cortex-M3微处理器

0 引言
数据采集系统是将采集传感器输出的温度、压力、流量、位移等模拟信号转换成计算机能识别的数字信号,进行相应的计算存储和处理;同时,可将计算所得的数据进行显示或打印,以便实现对某些物理量的监测和控制。
嵌入式系统是以应用为中心,以计算机为基础,软硬件可剪裁,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统的核心是各种类型的嵌入式处理器。目前,采用ARM技术的微处理器占据了主流,其应用遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。而 ARM微处理器的Cortex系列专为安全要求较高的应用而设计。其中,Cortex-M3适于高性能、低成本需求的嵌入式应用。

1 多路数据采集系统总体设计
1.1 系统设计要求
本数据采集系统的设计要求实现150路直流电压的实时采集和顺序转换。经过部分采集处理后,由串行数据总线将转换数据发送至上位机界面,经过换算,以检测采集的电源正常与否;同时在输出端产生5路PWM方波信号,以用作输出测试与控制。
1.2 系统设计方案
根据上述设计要求和数据采集系统的设计规范,将系统划分为两个部分:最小系统和采集系统。
最小系统采用基于ARM Cortex-M3架构的微控制器STM32F103RBT6为主控CPU,利用其内置16通道ADC对输入的多路直流电压信号进行实时采集和转换,内置外设USART将转换结果经过串口发送在PC端由串口调试助手显示。
采集系统采用5块采集板,每块板实现30路电压信号采集。各块板上,采用比例分压的方法,利用排阻进行采集电压的比例转换,以达到ADC转换的参考基准电压要求。电压信号的输入采用4.16线模拟开关CD4067,通过CPIJ输出四位控制信号,依次选择各路输入信号,进行采集转换。
电压信号经过采集板,级联输入到最小系统板中,利用CPU内置ADCl中的10个转换输入通道,依次进行转换。设置CPU_内部DMA模块实现转换结果的存储,利用串口转发数据,在上位机显示转换结果。
根据上述设计方案,本数据采集系统的系统组成和工作原理如图1所示。

a.JPG

2 数据采集系统的硬件设计
根据系统构成原理,硬件设计上,最小系统和采集系统两部分通过并行接口实现多块板级联,通过选择相应的输入通道和转换通道,实现信号采集和转换结果的显示。
最小系统中,采用STM32F103RBT6微控制器,工作频率可达72MHz,内置2个12位ADC,16个外部模拟信号输入通道,可达1 u s转换时间,转换范围是O~3.6V;支持7个DMA通道,可操作多种通用外设,如定时器、ADC、USART等;内置3个同步16位定时器,每个可有4个通道用于PWM波形输出。
2.1 最小系统的设计
按照STM32最小系统的设计规范和本系统的功能要求,最小系统构成如图2所示:
b.JPG

电源模块:CPU为3.3V供电,最小系统外部输入电源为5V,经过电压转换芯片LM1117-3.3获得3.3V输出电压,以提供系统电源。电源的输入输出端并接滤波电容,分别滤除电源的高频和低频噪声。
除此之外还有外部时钟,复位系统,ADC参考电压,USART串行通信,JTAG调试接口,总线驱动接口的设计。
STM32F103RBT6处理器具有51个多功能双向5V兼容的I/O口,使用时可以作为通用GPIO口,也可作为复用AFIO口。复用I/O中,本系统外设所使用的有:定时器4通道四TIM4-CH4复用PB9口;USART1引脚USART1-TX、USART1-RX复用PA9、PA10:ADC 转换通道CH0~CH9分别复用PA0~PA7及PB0、PB1。
对于复用功能的端口可以配置成以下模式:输入模式(浮空、上拉或下拉)或复用功能输出模式,此时输入驱动器被配置成浮空输入模式。ADC通道端口用作ADC输入时将对应端口配置为模拟信号输入模式;USART数据传输时,TX、RX复用端口分别配置为备用功能推拉模式和
输入浮动模式。
2.2 电压采集系统的设计
电压采集系统作为本系统的第二部分,主要实现多路电压信号顺序选择输入,获得ADC采集端的输入电压信号,同时,输出最小系统中产生的PWM方波信号,并能选择不同的ADC通道,以实现5块采集板与最小系统板级联。本部分主要包括电压采集模块、数据选择模块、PWM输出模块以及输入输出接口等。
电压采集模块:电路中采用电阻比例分压的方法,获取输入电压信号,以达到CPU采集转换的基准电压的要求。在实际硬件设计中,采用比例阻值的排阻代替分离电阻以便于电路板的绘制和整体布局。
数据选择模块:采用16选1输出的模拟开关CD4067作为数据选择器,输出控制由CPU四个端口输入高低电平作为二进制组合以确定输出的数据通道。
PWM输出模块:最小系统中选择定时器四,软件配置为PWM输出,由三极管放大后获得PWM方波。
输入输出接口:本系统数据采集和最小系统两部分采用40针排线连接,各个采集板上可以同时选择两个不同的通道,级联后各板将数据选择器的输出信号送至相应的ADC转换通道,同时输出PWM方波信号。

3 系统调试及软件设计
设计并加工好印刷电路板后,开始硬件和软件的调试。调试过程中采用逐个功能单元调试,一个功能单元调试正常后再调试下一功能模块,确保电路板出问题时可以很快发现问题点,再将各功能单元组合设置,逐步完成软件设计和系统调试,实现系统设计要求。
系统调试所使用的开发环境为IAR EWARM,仿真工具为ST-LINKII,使用USB接口。
3.1 最小系统板调试
将电源模块、复位、JTAG、外部晶振焊到电路板上,组成最小系统,分模块,分步骤,调试系统各部分。加电调试前检测是否有电源短路,确保电路安全。
电源模块:电路外部输入电压为5V,经电压转换后在LMlll7-3.3V输出端得到3.3V的输出。加电后,首先通过万用表测量电压输出是否正确,然后通过示波器观察输出电平的波形是否满足系统对电源精度的要求,如不满足,可以通过加大滤波电容的方法解决。
最小系统供电正常后,连接仿真器,通过软件平台可以检测到最小系统CPU,表明CPU焊接正常。调试过程中会用到外部晶振,需要检测晶振电路,将系统上电,使用示波器检测晶振管脚,观察波形,看晶振是否起振。然后编写一个简单的LED测试程序来观察CPU是否能正常工作,通过软件设置电路中LED连接的 I/O端口(PB6)输出模式,观察是否有闪烁。
DMA调试:DMA用来提供在外设和存储器之间或者存储器之间的高速数据传输。DMA通道配置包括:设置外设寄存器、数据存储器的基地址,确定数据量和通道优先级,以及数据传输的方向、循环模式、外设和存储器的增量模式等。ADC1对应DMA通道1请求,ADC通道配置中使能DMA请求。
除此之外还有USART调试、ADC调试、PWM调试等。
3.2 系统整体调试
最小系统板各功能单元调试通过后,将最小系统板与数据采集板级联进行系统整体调试。
系统调试主要包括:外设和系统时钟初始化,GPIO初始化,USART初始化和ADC、定时器初始化及ADC通道设置和串口收发配置等。系统调试流程如图3所示:
c.JPG

按照上述流程完成程序设计,编译、链接、运行,观察输入输出情况。系统调试效果如图4所示。

d.JPG
程序运行后,系统板上的LED在闪烁,用示波器测量定时器输出引脚PB9,显示频率为4kHz,幅值为3.3V,占空比50%的PWM的方波,经过三极管放大,幅值为4.5V;在采集板输入端加入直流电压信号,跳线选择ADC通道;USART进行数据传输中,先发出转换结果低六位,后发出高六位。打开串口调试助手,在数据接收区内以十六进制依次显示经过ADC所获得的输入信号的转换结果,图4中显示了通道IN105、IN206输入信号的测试效果,每次预先发送0x7E,且每15次循环输出,表示依次获取了模拟输入电压信号,经测算转换精度在误差允许范围内,说明系统运行正常,初步实现设计目的。

4 结论
本数据采集系统充分利用微处理器STM32F103RBT6内置的16路ADC通道、DMA控制器、USART通信接口、定时器等丰富的外设资源,在系统实现上简化了相关模块的设计,提高了系统运行的可靠性。经过系统硬件设计和软件配置实现顺序采集转换输入的多路电压信号,并利用上位机界面显示采集的信号,实现了输入信号的实时监测和管理,达到了系统设计的基本要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top