历史上的今天
返回首页

历史上的今天

今天是:2025年01月23日(星期四)

正在发生

2021年01月23日 | AT91SAM7X的多路USB2.0数据采集系统

2021-01-23 来源:eefocus

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


目前工业和医疗上使用的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模块来完成。由于大部分的工作是在同一个芯片内部完成,只需通过简单的寄存器设置和数据交换,即可完成数据的采集和传输过程,在很大程度上优化了系统的设计。



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设备接口,使得系统设计十分方便;同时由于无需使用大量的外扩芯片,使得硬件成本大幅降低,产品体积更小巧,稳定性方面也比外扩芯片的方式有较大幅度的提升。


推荐阅读

史海拾趣

HALO Electronics公司的发展小趣事

鸿展光电(GPO)公司的发展故事

故事一:初创与定位

深圳市鸿展光电有限公司(GPO)成立于2009年6月12日,起初便定位于高端显示技术的研发与生产。公司创始人凭借对电子行业未来趋势的敏锐洞察,决定专注于玻璃盖板(CG)、外挂式液晶显示模组(LCM)、外挂式触控模组(TP)等产品的研发与生产。在成立初期,面对激烈的市场竞争,鸿展光电凭借高质量的产品和优质的服务,逐步在行业内站稳脚跟。随着技术团队的不断壮大和产品的持续优化,公司迅速成长为一家集研发、生产、销售于一体的国家级高新技术企业。

故事二:技术突破与创新

在发展过程中,鸿展光电始终将技术创新视为企业发展的核心动力。公司不断加大研发投入,积极引进国内外先进技术和设备,致力于提升产品的技术含量和附加值。特别是在内嵌式触控显示一体化模组(INCELL、ONCELL)以及新一代触控显示模组(MiniLED、MicroLED、AMOLED)等领域,鸿展光电取得了多项关键性技术突破,并成功将这些技术应用于实际生产中,进一步巩固了公司在行业内的领先地位。

故事三:市场拓展与品牌建设

随着产品线的不断丰富和技术实力的不断提升,鸿展光电开始积极拓展国内外市场。公司通过参加各类行业展会、举办技术交流会等方式,不断提升品牌知名度和影响力。同时,鸿展光电还积极与国内外知名企业建立合作关系,共同开发新产品、新技术,实现互利共赢。这些举措不仅为公司带来了更多的商业机会,也进一步提升了公司的市场地位和品牌价值。

故事四:产能扩大与效率提升

为了满足日益增长的市场需求,鸿展光电在扩大产能方面进行了不懈努力。公司通过优化生产流程、引进先进生产设备、提升员工技能水平等措施,不断提升生产效率和产品质量。同时,公司还加强了供应链管理,确保原材料的稳定供应和成品的及时交付。这些举措不仅有效提升了公司的产能和竞争力,也为公司的长期发展奠定了坚实基础。

故事五:社会责任与可持续发展

在追求经济效益的同时,鸿展光电也积极履行社会责任,推动企业的可持续发展。公司注重环境保护和节能减排工作,通过采用环保材料和节能技术、加强废水废气处理等措施,降低生产过程中的环境污染和资源消耗。此外,鸿展光电还积极参与公益事业和社会活动,为社会做出积极贡献。这些举措不仅提升了公司的社会形象和声誉,也为企业的长期发展注入了新的动力。

AND Displays公司的发展小趣事

随着公司规模的扩大和实力的增强,AND Displays开始实施国际化战略。公司在全球范围内设立了多个研发中心和生产基地,以便更好地满足不同地区客户的需求。同时,公司还加强了与国际同行的交流与合作,共同推动显示技术的创新与发展。通过全球布局和资源整合,AND Displays逐渐成为了全球显示行业的领军企业之一。

以上五个故事从不同角度展示了AND Displays公司在电子行业中的发展历程和成就。这些故事不仅反映了公司的技术实力和市场竞争力,也体现了公司对环保、可持续发展等社会责任的关注和担当。

Dionics Inc公司的发展小趣事

近年来,随着全球贸易环境的变化和市场竞争的加剧,Dionics Inc也面临着前所未有的挑战。然而,在公司管理层的坚强领导下,全体员工团结一心、共克时艰。公司不仅成功应对了各种挑战和困难,还通过一系列创新举措实现了业务的稳步增长。展望未来,Dionics Inc将继续坚持创新驱动的发展战略,努力成为电子行业的领军企业之一。

EKIT公司的发展小趣事

随着全球数字化进程的加速推进,华为坤灵(HUAWEI eKit)不断加快其全球市场拓展的步伐。通过与全球各地的分销伙伴紧密合作,HUAWEI eKit成功将其产品和服务推广到了世界各地。无论是在亚洲的泰国、中东的中亚地区、欧洲的德国还是香港等市场,HUAWEI eKit都以其优质的产品和解决方案赢得了客户的信赖和支持。同时,HUAWEI eKit还不断加大研发投入力度,推出更多创新产品和技术解决方案以满足不同市场的需求。这些努力使得HUAWEI eKit在全球电子行业中逐渐崭露头角并实现了快速发展。

请注意,由于这些故事是虚构的,可能并不完全符合实际的历史事实。但它们试图捕捉华为坤灵(HUAWEI eKit)在电子行业中的发展轨迹和关键里程碑。

宜源科技(ETERNAL)公司的发展小趣事

面对日益严峻的环境问题,宜源科技公司积极响应国家环保政策,致力于绿色环保和可持续发展。公司采用先进的生产工艺和设备,减少生产过程中的污染排放。同时,宜源科技还积极推动绿色产品的研发和推广,为客户提供更加环保、节能的电子产品解决方案。这些努力不仅有助于保护环境,也为公司的可持续发展奠定了基础。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
在特定情况下(如宠物活动、热气流等),可能引发误报。

问答坊 | AI 解惑

急招!!!

招聘任职要求: 1、为TD-SCDMA Node B执行RF测试用例 2、在板卡级别组织和开发 HW RF测试环境 3、负责HW Node B系统的测试。 4、本科以上,硕士优先,主修通信或者相关领域。 5、非常了解HW RF的测试(必须要有RF仪器经验 ) 6、RF 电路开发 ...…

查看全部问答>

MC9S08JM60技术手册USB部分中文翻译

这是从网上找到的MC9S08JM60单片机USB部分的翻译,该单片机是飞思卡尔推出的集成USB的S08单片机,对于需要实现USB连接的项目来说,是不错的选择。翻译的不是很好,有的地方还是要参考英文手册 …

查看全部问答>

51单片机扩展用并口方式访问外围器件的最简单方法

今天重新温习了51单片机扩展RAM、ROM,收获大大的有,以前把51的一本书看了几遍,还是没有弄清楚,没有弄清楚51访问外部ram、rom的时序,到今天才发现,访问外部ram、rom的时序是有访问指令决定的。       当用并行方式 ...…

查看全部问答>

vc 添加程序的快捷方式到启动菜单里[转载http://blog.sina.com.cn/s/blog_5fd6e7ac01

vc 添加程序的快捷方式到启动菜单里#include <io.h>HRESULT CCreatescDlg::CreateLink(LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPCSTR lpszDesc){    HRESULT hres;    IShellLink* psl;    h ...…

查看全部问答>

window ce 系统下怎么访问 pc机上的oracle数据库!

window ce 系统下怎么访问 pc机上的oracle数据库!我用的是vs2008,poketpc是windows mobile 5.0,不知那位高人能给解决。…

查看全部问答>

请教关于奇晶的2.83寸OLED显示屏:C0283QGLC-T(采用的是S6E63D6驱动IC)的驱动问题----有人做过么?

原来用的三星的LMS283显示屏,最近停产了,不得不从新找屏做驱动。 新找来的奇晶的LCD,修改了硬件电路和spi初始化配置,点亮-进入系统都没有问题,但是象素上 发现了一个奇怪的问题:     颜色显示都基本正确,红.绿.蓝都还可以。 ...…

查看全部问答>

搞过802.11开发的兄弟 顶起.

我实验室现在想搞支持802.11系列的手机终端,我对这个完全不了解,想先学习一下..谁有802.11系列协议的实现代码的可以共享一下吗 ,兄弟不胜感激!!!…

查看全部问答>

求救,各位达人,WinCE6.0如何加载位于BinFS文件系统中类型为NandImage的.bin文件中的内容?

我现在做的是BinFS+Multi-bin,目的是加快WINCE6.0的启动速度,减小内存使用。核心的东西都放在XIPKERNEL.bin中,为RAMIMAGE,而其他东西则放在nk.bin中,为NANDIMAGE。现在的现象是,xipkernel里面的东西好像加载都是正常的,但是nk.bin中的内容一 ...…

查看全部问答>

ST32PKAVR32,哪个强?

这两个MCU 俺打算选用其中一种,不过从指令系统上看,好象AVR32 强!ST32 数据手册好象不附指令的执行时间?不附指令执行时间,是心虚吗?…

查看全部问答>