0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AT91SAM7X微控制器实现数据采集系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:王普刚, 孟昭莉 2021-03-20 09:54 次阅读

目前工业和医疗上使用的USB设备,绝大部分是使用专用的USB芯片微处理器相连的,特别是USB数据采集系统。根据不同的需求,通常也需要外扩一定数量的A/D转换器接口非常复杂。有时甚至需要为了协调不同的时钟而外扩FIFO,这样的设计不但成本大幅提高,而且系统的稳定性受到了严重的威胁。本文使用Atmel公司开发的基于ARM的闪存微控制器AT91SAM7X芯片。芯片内部集成了8路10位ADC和USB2.O设备接口,单芯片即可完成设计任务,避免了复杂的接口电路设计,不但有效地解决了以上这些问题,而且在很大程度上提高了系统的稳定性。

1 AT91SAM7X数据采集主控芯片介绍

AT9lSAM7X是基于32位ARM7TDMI内核的微控制器。AT91SAM7X系列微控制器具备嵌入式10/100M以太网Ethernet)MAC、CAN、全速(12 Mbps)USB 2.O。针对广泛的网络化实时嵌入式系统而设计的AT9lSAM7X256还具备1个10位模/数转换器(ADC)、2个串行外围接口(SPI)、同步串行接口(SSC)、双线接口(TWI)、3个通用异步收发器UART)、1个8级优先中断控制器(priority interrupt controller)和众多的监管功能。这个新型的50MIPS MCU拥有64 KB的静态存储器和256 KB的25 ns闪存,这种闪存支持实时控制系统所需的可确定性处理能力。

2 数据采集系统硬件设计

2.1 数据采集系统硬件设计结构图

本文设计的基于AT91SAM7X的多路USB2.O数据采集系统主要由6部分组成,如图1所示,分别是输入信号接口模块、多路信号放大模块、信号调理模块、数据采集处理模块、USB2.O接口模块和上位机模块。其中,输入信号接口模块、多路信号放大模块、信号调理模块主要完成外部标准的一5~+5 V信号的隔离接人与变换。因为AT91SAM7X的ADC允许接入的转换电压范围是O~3 V,所以上述3个过程的信号变换是必要的。本系统主要采用的变换手段为信号的差分放大,主要部分数据采集处理模块和USB2.O接口模块分别由 AT91SAM7X内置的ADC模块和USB2.O模块来完成。由于大部分的工作是在同一个芯片内部完成,只需通过简单的寄存器设置和数据交换,即可完成数据的采集和传输过程,在很大程度上优化了系统的设计。

基于AT91SAM7X微控制器实现数据采集系统的设计

2.2 AT91SAM7X的ADC模块介绍

AT91SAM7X的片内ADC是基于连续寄存器(SAR)模型,片内通过一个8到1的模拟复用器来实现8通道的模/数转换。ADC输入范围是O V~ADVREF。ADC支持8位和10位两种分辨率,可以通过软件触发、外部ADTRG触发引脚、内部触发定时器来启动ADC。可以通过配置ADC时钟、启动时间、采样保持时间来提高ADC的精度。ADC不受电源管理器管理,有一个中断源,如果用到ADC中断信号,则需要配置中断控制器(AIC)。

2.3 AT91SAM7X的USB2.O模块介绍

AT91SAM7X具有内置的USB设备控制器,USB设备端口符合USB2.O全速器件规范,具有12 Mbps的通信速率。每个端点可以配置为几种USB传输类型中的一种。USB设备自动检测挂起与恢复,通过中断来停止处理器。同时,为了配合USB设备的使用并发挥其最大性能,片内集成了328字节的双口RAM。此双口RAM的一个DPR段由处理器读/写,另一个DPR段由USB2.O外设读/写,从而有效地保证了数据传输的最大带宽。

3 AT91SAM7X的配置与模块编程

3.1 ADC模块的配置与模块编程

ADC模块功能框图如图2所示。ADC模块是基于逐次逼近寄存器(SAR)的10位模/数转换器,集成了一个8到1的模拟多路复用器,可实现8路模拟信号的模/数转换。转换由O V到ADVREF。同时,ADC支持8位或10位分辨率模式,并且转换结果进入一个所有通道可用的通用寄存器(即通道专用寄存器)中。可配置为软件触发、外部触发ADTRG引脚上升沿或内部触发定时计数器输出。ADC还集成休眠模式与转换序列发生器,并与PDC通道连接。这些特性可降低功耗,减少处理器干涉。最后,用户可配置ADC时间,如启动时间以及采样与保持时间。

系统设计中采用多点方式进行A/D转换,ADVREF接3.O V的基准电压。方便起见,以单点转换为例,说明ADC模块的配置与模块编程。当然在A/D转换之前,系统时钟和整体的配置是必需的,此处只介绍ADC模块相关的配置与模块编程。先将与模/数转换相关的所有寄存器清零,以保证所有寄存器都有确定值。具体配置过程和IAR程序代码如下:

3.2 USB2.0模块的配置与固件编程

USB2.0接口模块如图3所示。该模块需要2个时钟,即USB2.O器件端口时钟和主时钟。模块通过APB总线接口访问USB2.0器件端口.通过对 APB寄存器的8位值进行读/写以实现对存储数据的双口RAM的读/写。外部恢复信号可选,允许在系统模式下唤醒USB2.O器件端口外设,然后主机将通知请求恢复的器件。USB2.O接口进行枚举时,该特性必须由主机处理。为保留检查VBUS的I/O线,必须先对PIO的控制器编程,将该I/O配置为输入PIO模式。USB2.O器件中有一条中断线与高级中断控制器AIC相连,因此,处理USB2.0器件中断时,必须在配置USB2.0器件端口前对高级中断控制器AIC编程。

本系统中使用USB2.0接口与上位机进行通信。为便于说明,此处以向上位机端通过USB2.0接口传送O~9的数字,并循环10次为例,说明 USB2.0模块的配置与同件编程。系统初始化完成后,此固件程序就通过USB2.0接口发送O~9的数字,循环10次后结束。具体的配置过程和IAR程序代码如下:

注意:在USB2.0通信接121调试过程中,一定要将USB2.0固件程序下载到AT91SAM7X的F1ash中。这个过程可以通过ARM的地址重映射来完成,然后重新给USB2.0接口上电,因为只有在设备插入时上位机才检测设备,并提示添加相应的驱动程序。如果开发人员调试的过程中只是将程序加载到RAM中,那么由于数据掉电不会保存,固件程序在下一次插入设备时就不会存在,无论在上位机添加何种驱动程序,上位机都不会接收到数据,这样就会导致整个调试过程的失败。

3.3 USB2.0的Windows应用程序设计

上位机部分通过Visual C++6.0程序实现与嵌入式硬件部分的USB通信。测试过程中,先将USB2.0固件程序下载到AT91SAM7X中,插上USB数据线,根据提示添加相应的驱动程序后直接运行设计好的Visual C++6.0程序。测试结果如图4所示。

位机程序运行过程中首先检查设备的连接情况,确认成功连接后开始接收USB2.0设备发送过来的数据。此处为循环10次的0~9的数字,如图4所示,数据已经成功传输到了上位机端。

结语

本文设计了基于AT91SAMTX的多路USB2.0数据采集系统,以AT91SAM7X芯片为核心实现了数据信号的调理变换、采集和向上位机的传输。由于AT91SAM7X内置了ADC模块和USB2.0设备接口,使得系统设计十分方便;同时由于无需使用大量的外扩芯片,使得硬件成本大幅降低,产品体积更小巧,稳定性方面也比外扩芯片的方式有较大幅度的提升。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6808

    浏览量

    147601
  • 芯片
    +关注

    关注

    446

    文章

    47753

    浏览量

    409048
  • 数据采集
    +关注

    关注

    38

    文章

    4510

    浏览量

    112313
收藏 人收藏

    评论

    相关推荐

    AT91SAM9263-ARM9核心模块

    、LCD等功能,系统集成度高,该嵌入式核心模块以超小体积、超低功耗、超高灵活性实现了高性能工业控制系统的核心功能,可广泛应用于数据采集控制系统
    发表于 09-01 15:58

    爱特梅尔全新SAM3N系列微控制器

      爱特梅尔公司(Atmel® Corporation)推出全新SAM3N系列微控制器,扩展其ARM® Cortex™-M3 Flash系列
    发表于 02-23 16:31

    ARM 微控制器 AT91M55800A

    AT91M55800A 概述爱特梅尔的AT91 ARM Thumb微控制器能提供8位微控制器用户期望的32位的性能,而仍在他的严格的系统预算
    发表于 09-02 11:18

    【AT91SAM9261申请】基于AT91SAM9261评估套件的物联网系统

    9261评估套件做为整个物联网的控制中心,FPGA芯片作为协处理,AT91SAM通过spi协议对FPGA的寄存进行控制,终端的FPGA接
    发表于 05-23 15:49

    使用RealView MDK-ARM用于Microchip AT91SAM7器件

    本应用笔记介绍了如何使用RealView微控制器开发套件为Microchip AT91SAM7器件开发程序。包含有关启动文件配置,RTX RTOS配置,Keil ULINK USB-JTAG适配器和SAM-ICE适配器的信息。
    发表于 05-14 18:06

    Atmel ARM7闪存微控制器密度达64KB

      Atmel Corporation日前推出ARM7基础闪存微控制器系列,起价低于3美元。AT91SAM7S32/64是接脚少的智能型ARM7(Smart ARM
    发表于 11-20 16:50

    AT91SAM9G20-EK评估套件

    AT91SAM9G20-EK评估套件可对AT91SAM9G20微控制器器件上运行的应用进行评估和代码开发
    发表于 04-01 06:37

    基于FPGA的数据采集控制器IP核的设计方案和实现方法研究

    此提供了新的解决方案。IP核(IP Core)是具有特定电路功能的硬件描述语言程序,可较方便地进行修改和定制,以提高设计效率[3]。本文研究了基于FPGA的数据采集控制器IP 核的设计方案和实现方法,该IP核既可以应用在独立IC
    发表于 07-09 07:23

    超低功耗C8051F91x/0x微控制器的功能

    升能源效率的需要。针对便携式设计和其它强调省电的嵌入式系统,Silicon Labs的超低功耗C8051F91x/0x微控制器能大幅延长电池寿命。新推出的F
    发表于 07-29 07:43

    EIMKT求购AT45DB041B-SU NOR闪存及AT91SAM7S64-AU-001 ARM微控制器

    CAT91SAM7S64-AU-001ARM微控制器安装风格:SMD/SMT核心:ARM7TDMI最大时钟频率:55 MHz程序存储大小:64 kB
    发表于 10-17 10:17

    AT91SAM7L-EK评估套件,专为设计人员设计

    AT91SAM7L-EK,评估套件,专为设计人员设计,用于评估和开发Atmel AT91SAM7L微控制器上运行的应用程序的代码。手持式套件配备AT91SAM7L128(128引脚LQ
    发表于 05-22 06:02

    基于AT91SAM9261 ARM9 MCU的评估板

    AT91SAM9261-EK2,评估板是评估芯片性能和开发基于AT91SAM9261微控制器的应用代码的有效平台。该板配备AT91SAM9261(217球LFBGA封装)
    发表于 05-22 10:41

    SMART SAM4C微控制器有哪些应用?

    爱特梅尔(Atmel)公司的SMART SAM4C微控制器系统级芯片解决方案,用于智能电源应用,它是基于两个高性能的32位ARM Cortex-M4 RISC处理构建。这些器件运行
    发表于 11-23 12:19

    USB2.0微控制器CY7C68013的数据采集系统的设计

    USB2.0微控制器CY7C68013的数据采集系统的设计
    发表于 01-22 14:10 30次下载

    关于MSP430微控制器的智能康复诊疗仪数据采集系统

    将 M SP430 系列微控制器用于智能康复诊疗仪的多路数据采集系统的设计,采用微控制器与上位机协调运行的方式 ,结合模块化 的软件设计,实现
    发表于 04-25 09:27 5次下载
    关于MSP430<b class='flag-5'>微控制器</b>的智能康复诊疗仪<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>