- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
STM32F103x的USB多路数据采集系统设计
引 言
目前,在工业和许多其他场合依然使用基于PCI板卡、ISA板卡的数据采集系统,价格昂贵、接插不方便。USB(Universal Serial Bus,通用串行总线)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。USB具有高效、快速、价格低廉、体积小和支持热拔插等优点,使其成为数据采集系统设计的新宠儿。然而当前的USB数据采集设备大多采用的是专门的USB接口芯片,而且根据不同的需求,需要外扩一定数量的A/D 转换芯片,使得接口非常复杂,增加了系统的开发难度,进而对系统的稳定性产生影响。本设计采用意法半导体公司开发的基于Cortex-M3内核的新型32 位微控制器STM32F103x作为主控芯片。该芯片内部集成了全速USB2.0设备接口模块和16通道的12位高精度A/D转换器,单芯片即可完成设计任务,避免了复杂的接口电路设计,有效地降低了系统接口的复杂度和系统开发的难度,在很大程度上提高了系统的稳定性。
1 主控芯片STM32F103x
STM32F103x是意法半导体公司生产的基于ARMCortex-M3处理器核的微控制器。Cortex-M3是基于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试成本等众多优点。它是专门为在微控制器系统、汽车电控系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,大大简化了编程的复杂性,集高性能、低功耗、低成本于一体。STM32F103x微控制器采用了先进的 Cortex-M3内核结构,具有丰富的性能出众的片上外设,包括16通道的12位A/D转换器、7通道的DMA控制器、16位定时器、USART接口、 CAN接口(2.0B)和USB2.0全速接口(12 Mbps)等。
2 数据采集系统硬件设计
2.1 数据采集系统硬件结构
多路数据采集系统的硬件结构框图如图1所示,主要包含5个模块:信号输入接口模块、信号调理模块、数据采集及预处理模块、USB2.0通信模块和上位机模块。其中的信号输入接口模块实现信号的隔离接入;信号调理模块对输入信号进行放大或衰减,以适应A/D转换器的转换量程;数据采集及预处理模块和USB2.0通信模块实际是由微控制器 STM32F103x独自实现的。STM32F103x通过内部A/D转换器对经过调理后的信号进行采集,然后进行数据的预处理,并将预处理后的数据通过 USB2.0全速接口传送到上位机。上位机模块主要是对获取的数据进行存储和分析处理。由于大量的工作都是在STM32F103x内部完成的,只需通过简单的寄存器设置和程序设计即可完成数据的采集和传输过程,这在很大程度上优化了系统的设计。
2.2 STM32F103x的ADC模块
STM32F103x系列微控制器所带的2个12位ADC是一种逐次逼近型模拟数字转换器。它有16个外部通道,可测量16个外部信号源。各通道的A/D 转换可以是单次、连续、扫描或不连续模式执行,其转换结果可以左对齐或右对齐方式存储在16位数据存储器中。ADC转换频率最高可达1 MHz,且每个通道的采样间隔时间均可独立编程设置。在通道转换期间,ADC能产生DMA请求,使DMA来传输ADC转换值,提高了数据传输的效率。 ADC模块的结构示意图如图2所示。
2.3 STM32F103x的USB2.0全速设备接口模块
USB接口模块为上位机和由微控制器实现的功能设备之间提供了符合USB规范的通信连接。USB接口模块通过和微控制器共享一块专用的数据缓冲区实现上位机和系统存储器之间的数据传输。这块专用数据缓冲区的大小由所使用的端点数目和每个端点最大的数据分组大小来决定,每个端点最大可使用512字节缓冲区,最多可用于16个单向或8个双向端点。USB接口模块根据UJSB规范实现了令牌分组的检测,数据发送/接收的处理和握手分组的处理。整个传输的数据格式由硬件自动生成,其中包括CRC的生成和校验。USB2.0全速设备接口模块的结构示意图如图3所示。
作者:唐伟 于平 李峥辉 中国科学院 来源:中华电子网