STM32的USB数据采集模块的设计与实现.doc

STM32的USB数据采集模块的设计与实现.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32的USB数据采集模块的设计与实现

STM32的USB数据采集模块的设计与实现 通用串行总线(USB,universal serial bus)由于具,有高传输速率、即插即用和易于扩展等优点而被广泛应用于计算机外设、数字设备和仪器仪表等领域。ARM嵌入式处理器因其低廉的成本和较好的性能被广泛地应用于企业应用、汽车系统、家庭网络和无线技术等市场领域。将USB与ARM相结合是进行数据采集、处理与传输的理想解决方案。 1 USB数据采集系统概述 USB数据采集系统由主机和USB设备两部分组成,如图1所示。本系统中,PC作为USB主机,USB采集模块作为USB设备,通过USB接口与主机相连。模块与主机连接之后,主机能够正确识别设备并将设备初始化(枚举)。设备初始化完毕后,主机向采集模块发送采集命令和任务参数。采集模块正确接收命令后将命令解析并执行,然后通过USB接口将采集到的数据回传到主机上。从层次上划分,USB系统的软、硬件资源可划分为3个层次:总线接口层、设备层及功能层。接口层涉及的是具体的物理层,主要实现物理信号和数据包的交互,它包括物理链接、电信号环境和包传输机制;设备层主要提供USB基本协议栈,执行通用的USB的各种 操作和请求命令,从逻辑上讲就是USB系统软件与USB逻辑设备之间的数据交换;功能层提供每个USB设备所需的特定功能,包括客户应用软件和设备功能 块,它们之问有直接的逻辑对应关系。这种对应关系说明在逻辑上客户应用软件只需考虑如何实现具体设备功能即可。USB的层次结构对应关系如图2所示。 2 数据采集系统方案设计 在系统开发中选用集成度高的器件,不仅开发方便,而且所开发的系统的性能及其可靠性也较高。另一一方面,由于USB接口设备是采用总线供电的,考虑到总线输出功率有限,尽量采用集成度高的器件有利于降低USB总线的负荷。但选用集成度高的器件及其开发工具会导致成本的提高,所以要综合各种因素统筹考虑 。 当前,USB的开发方法主要有两种:一种采用具有USB接口的MCU,另一种采用普通MCU和USB通信 芯片。后者是目前被广泛采用的方法,技术相对成熟,开发成本较低。由于STM32 ARM本身自带A/D转换 器和USB控制器,仅需一片ARM即可完成采集与传输的功能,因此无需再外加USB通信芯片,但是调试的成本较大。本模块选用的处理器STM32F103是意法半导体新近推出的STM32的增强型系列处理器,主频为72MHz,带有片内RAM和USB 2.0接口、16通道的12位A/D转换器等丰富的外设。其中系统集成的双ADC结构允许双通道采样/保持,能够实现12位的转换精度、1 s的转换速度。由于STM32丰富的片内资源,本数据采集模块仅需一片STM32F103以及常见的外部电路即可,电路结构简单紧凑。数据采集模块的硬件组成框图如图3所示。 整个数据采集模块采用外部USB取电,USB的+5V电压经由LD1117稳压芯片转换成3.3 V供ARM 及外设使用。复位电路能够完成上电复位与手动复位。由于USB工作的时钟频率为48 MHz,所以选用8MHz外部晶振经由9倍频为72 MHz作为系统主频,72 MHz再1.5分频后得到准确的48 MHz时钟。为了提高采集的效率,在ARM的内存空间开辟4 KB作为数据缓冲区。外部模拟信号送入A/D转换器进行模数转换。A/D每次转换结束之后,使用DMA方式将转换后的16位数据顺序搬移到数据缓冲区中。待缓冲区满后,将4 KB数据打包经由USB总线回传到PC主机,由应用程序进行数据处理。 3 软件设计与实现 系统软件设计包括3个部分:固件驱动程序开发、USB设备驱动程序开发、主机应用程序开发。三者是一个有机整体,缺一不可,需要互相配合,才能完成可靠、高速的数据采集与传输。 3.1STM32F10xxx USB固件驱动程序库简介 STM32F10xxx USB固件驱动程序库是意法半导体公司专为STM32F10xxx系列ARM微处理器提供的固件驱动程序库,其主要用途是利用STM32F10xxx系列 微控制器中的USB宏单元来简化应用开发。USB固件库分为内核层和应用接口层两个层次,层次结构框图如图4所示。 3.2 固件驱动程序设计 固件驱动程序(又称单片机程序)是指固化到CPU模块内的软件。固件程序采用模块化设计,主要 模块包括:数据采集控制模块和数据通信模块两大部分。模块化设计的优点是可靠性高、可读性好、软件改动简单。USB设备在上电之后需要首先完成系统时钟配置及片内外设的初始化操作。设备初始化完毕后,采集命令的接收、解析及数据传输的所有操作均在中断服务程序中完成。中断源及对应功能如表1所列。定时器3为节拍发生器,定时器中断用于定时触发A/D转换器采样与转换。DMA通道1产生中断表明4 KB数据缓存已满,可以将AD采样数据打包并通过USB发送

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档