历史上的今天

今天是:2024年09月18日(星期三)

正在发生

2020年09月18日 | 高速高精度的数据采集系统的设计与实现

发布者:BlissfulHeart 来源: elecfans关键字:高速高精度  数据采集系统  ARM 手机看文章 扫描二维码
随时随地手机看文章

摘要:设计了基于FPGA 与ARM 芯片的数据采集系统,FPGA 负责控制A/D 转换器,保证了采样精度与处理速度,ARM 负责逻辑控制及与上位机交互的实现,并将采集到的数据通过USB 高速上传至主机进行实时处理。对模拟数据采集的测试结果达到了较高的采样精度和速度,验证了整个系统的高速性和可行性。


随着计算机技术与现代工业系统的发展,工业领域中对数据采集的精度和数据处理的实时性提出了更加苛刻的要求,以保证后续更加复杂的控制,而传统的数据采集系统一般采用A/D 芯片与主控芯片搭配的方法,处理速度慢、功能单一,当被测对象复杂且数据量较大时,很难满足对数据高精度的采样,而通过RS232 串口与上位机通信则更无法保证数据处理的实时性。针对这一实际情况,设计了基于FPGA 与ARM 搭配的数据采集系统,FPGA 负责保证数据采样的高精度和高速度,而ARM 作为主控芯片,嵌入Linux 内核,负责控制整个系统,并将数据通过USB高速上传到上位机中,借助上位机的强大运算能力,保证数据处理的实时性,同时根据不同的被测信号只需选择相应的数据采集卡,即可方便简单地组成一个用户自定义的数据采集系统,具备良好的通用性。


1 系统总体设计

数据采集系统的总体结构如图1 所示,主要由输入调理电路、A/D 转换电路、FPGA 和ARM控制电路组成。被采集的模拟信号经由调理电路输入到A/D 转换芯片,进行模数转换,在FPGA的控制下送入到FPGA 内嵌的FIFO 存储模块中并通知ARM 立即取走数据,最后通过USB 交由上位机进行实时处理。

图1 系统总体设计框图

2 FPGA 系统设计

FPGA 具有高集成度、高可靠性、低功耗及时序控制精确等优点,选用Xilinx Spartan3 系列的XC3S200 负责控制A/D 转换及数据的缓存,可以简化电路设计,缩短开发周期。ARM 选用Atmel公司的SAM9G45 芯片,工作频率达400MHz,能够保证实时高速地控制采集系统和上传数据。


2. 1 FPGA 与ADC 的连接与控制
数据采集芯片选用ADI 公司的AD7656,是一款六通道16 位逐次逼近型,低功耗,每路通道最大采集速度为250kS /s 的A/D 转换芯片,可实现较高的采样精度和速率。

FPGA 与AD7656 的连接如图2 所示,AD7656 的6 个采样通道被分为3 组,由CONV STA、CONV STB 和CONV STC 3 个信号启动对应的双通道同步采样,将该3 个引脚相连即可实现6个输入通道的同步采样,同时提供并行和串行接口两种模式,为了提高数据吞吐率,采用16 位( /B 引脚置低) 的并行接口( SER/引脚置低) 模式,以便与FPGA 的16 位数据线直接相连传输数据。

图2 FPGA 与AD7656 硬件连接

FPGA 中的A/D 控制模块通过将CONV ST引脚电平拉高,启动相应通道的采样,采样过程中BUSY 引脚为高电平,表示正在进行采样; 当采样完毕后,AD7656 自动将BUSY 置低; FPGA 中的A/D 控制模块检测到BUSY 信号为低后将CS 和RD 信号置低,读取并保存数据到FPGA 内部的FIFO 中。FPGA 对AD7656 的控制过程仿真如图3 所示。

图3 A/D 控制模块仿真

2. 2 FPGA 与ARM 的连接
FPGA 与ARM 的连接如图4 所示,在与ARM的通信中,由于是跨时钟域通信,为了避免亚稳态、采样丢失及潜在逻辑错误等情况的发生,采用脉冲边缘检测法,对ARM 传来的控制信号首先进行内部时钟同步再做后续处理。

图4 FPGA 与ARM 连接框图

FPGA 收到ARM 的RST 命令后控制AD 芯片开始采样,检测到BUSY 引脚为低后FPGA 将数据取走并缓存到FIFO,然后改变INT 引脚上的电平,向ARM 产生一次中断; ARM 每判定一次中断,通过CLRINT 给予FPGA 反馈,FPGA 在CLRINT 有效期内将不再产生中断; ARM 使能NCS 和NRD 信号通过数据线D[15: 0]将数据完全取走后,清除CLRINT 信号,以使FPGA 可以继续向ARM 产生中断。


FPGA 中断控制模块的状态转移过程如图5所示,当BUSY 信号为低并且已将数据缓存到FIFO 中后, INT 引脚置位产生中断,同时启动一定时器。若在定时期间CLRINT 有效,则认为ARM 正常响应了中断; 若直到定时结束,CLRINT一直无效,则认为ARM 未能检测到中断或不能正常响应,FPGA 等待一小段时间后再次产生中断。

图5 FPGA 中断控制状态图

3 ARM 系统设计

ARM 芯片嵌入Linux 3. 0. 4 版本的内核,通过开发设备驱动程序,能够稳定高速地处理FPGA数据并通过USB 实时上传到主机中。


3. 1 FPGA 驱动程序
FPGA 驱动主要负责控制并读取FPGA 数据,并将数据缓存到KFIFO 等结构中工作:
a. 管理RST 信号线,控制FPGA 进行采样。

b. 根据硬件电路调用为FPGA 申请指定区域内存,由于芯片带有MMU 单元,不能直接访问申请的物理内存,需要将申请到的内存区重新映射到虚拟地址。当对该内存区进行读访问时,NCS 与NRD 信号会由内核负责置为低有效。

c. 为INT 信号申请中断线,注册中断处理例程。中断发生后,将CLRINT 置高有效,从映射的虚拟地址读取数据并保存在KFIFO 中。

d. 重新使能中断线,等待下次中断。

KFIFO 是由Linux 内核提供的先进先出队列,能够快速稳定地缓存数据。FPGA 驱动程序将KFIFO 符号导出,以使USB 驱动程序也可以直接访问然后将其上传到主机中。


3. 2 USB 驱动程序
Linux 内核为USB 设备侧驱动提供了USB Gadget 框架,提供了良好的上层接口,隐藏了底层USB 规范的具体实现。设备侧的USB 驱动程序需要提供一个读端点0x01,读取上位机的控制信息; 写端点0x82,向上位机报告当前采集系统的状态; 写端点0x83 将采集数据上传到上位机中。主要实现过程如下:
a. 配置3 个USB 端点描述符( 一个读端点0x01,两个写端点0x82 和0x83) 。

b. 从0x01 端点接收到上位机的采样命令后,进行初始化工作,通知FPGA 开始采样。

c. 为request 结构分配内存,将KFIFO 缓冲区的采样数据拷贝到request 包中。request 结构类似于Windows 下的URB( USB Request Block)请求包。

d. 向0x83 端点提交写请求,将request 包中的数据通过USB 上传到主机中。

e. 如果采样过程中发生错误,如缓冲区溢出等情况,通过0x82 端口向上位机汇报,请求重启。


上位机USB 驱动程序使用Driver Studio 工具,以Visual Studio 2010 作为辅助开发环境。上位机只需与数据采集设备配置同样的USB 端点,通过0x01 端口向ARM 发送控制命令,从0x82 端口读取采集系统的状态信息,将从0x83 端口接收到的数据缓存后待上层数据处理程序读取。


4 系统总体流程与试验

采集系统的工作流程如图6 所示,系统上电后ARM 引导Linux 启动,初始化内部寄存器及板卡上的RAM,向内核装载USB 驱动及FPGA 驱动,初始化FPGA 和配置AD7656 工作模式。初始化完毕并接收到主机采样命令后,A/D 开始进行采样,系统进入等待数据状态; 采样结束后拉低BUSY 引脚触发FPGA 通知ARM 来读取数据。ARM将FPGA传来的数据及系统状态信息通过USB 迅速上传到上位机中,上位机根据具体应用进行数据处理等操作,完成一次采集工作。

图6 数据采集系统流程

采集系统在实际试验中,AD7656 每次完成6通道的采集转换需3μs,FPGA 实际工作时钟频率为40MHz,ARM 的主时钟频率( MCK ) 为133MHz,因此数据从FPGA 上传到主机所需时间小于1μs,即4μs 内就可以完成一次采样,满足系统每周期采样256 次的需求。对50Hz 交流电信号每个周期采样128 个点,采样结果如图7 所示。

图7 50Hz 交流电压采样结果

5 结束语
采用FPGA + ARM 芯片组合的数据采集系统,FPGA 负责采样控制,ARM 负责整个系统的逻辑控制,通过USB 总线上传到上位机处理。整个系统采样精度高,数据传送快,能够满足现代工业系统中对多通路、高精度、高速度、实时处理和易操控的复杂需求,同时借助Linux 内核,针对不同领域不同应用,可轻松进行二次开发,将有广阔的应用前景。

关键字:高速高精度  数据采集系统  ARM 引用地址:高速高精度的数据采集系统的设计与实现

上一篇:基于arm的嵌入式棒料剪切生产线数控系统
下一篇:lpc5411x系列mcu的单核结构与应用

推荐阅读

    国产化之路任重道远,SSD芯片初见成效信息时代,让世界变成了地球村,国家间的对抗变得无形。核心技术的受制于人,就如命门被置他手。因此,我们要研发自己的芯片,实现我们核心元器件技术的突破,实现真正的自主安全可控。半导体是电子信息行业的基石,彰显大国重器,承担这样国家责任的企业不断涌现,研发领域如国科微、飞腾、申威等优秀的芯片...
特种化学品和先进材料解决方案领域的领导厂商Entegris, Inc.宣布已完成对安诺过滤的收购。安诺已成为Entegris 的子公司,隶属于微污染控制部门。安诺为一家过滤公司,行业覆盖广泛,包括制药、医疗等。安诺总部位于杭州国家级富阳经济技术开发区新登新区。 安诺不仅为Entegris的全球产品组合增添了新的薄膜技术和过滤产品,也为Entegris在亚洲地区制造过...
我们用LOTO示波器的多个型号,带宽从20M到100M,分别测无源和有源晶振的情况。分别测试了12M,15M,24M,48M,80M晶振的波形。并分析了为什么我们经常测出晶振波形不是方波?为什么有时候测不出来晶振波形?为什么没必要浪费示波器带宽迎合测晶振的需求?我们通常会遇到下面这些晶振:有源晶振一般是4脚贴片的,无源晶振一般是两脚直插的。有源晶振有3.3V和5V...
ADS1.2中关于时钟的C代码ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);ChangeClockDivider(key, 12); 1)FLCK、HCLK和PCLK的关系S3C2440有三个时钟FLCK、HCLK和PCLKs3c2440官方手册上说P7-8写到:FCLK is used by ARM920T,内核时钟,主频。HCLK is used for AHB bus, which is used by the ARM920T, the ...

史海拾趣

问答坊 | AI 解惑

Samsung ARM CPU 2442,2443,6410

需要的可以联系我 [ 本帖最后由 liusuper_0 于 2008-12-3 11:18 编辑 ]…

查看全部问答∨

仿真AD603单级方式和级联方式

本帖最后由 paulhyde 于 2014-9-15 03:06 编辑 先仿真后硬件调试,效果不错,与大家分享一下!  …

查看全部问答∨

U-Boot1.1.3移植问题 ,ping 的时候 packet too big

平台LPC2210(ZLG公司的MagicARM2200) 网卡芯片:RTL8019 移植后ping上位机,得到packet too big的信息 望有朋友能够帮忙…

查看全部问答∨

taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。

taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。 我看例子中优先级大都是90,我要是创建多个任务时,都写90行吗? 还有堆栈大小我要根据什么来设置啊? 谢谢了…

查看全部问答∨

lpc2146 + zlg7290 哪位有做过的啊?

现在遇到个问题, 怀疑两边的时钟有问题, Cpu 晶振是12M ,zlg7290 接的 8M 的 晶振 /* 系统设置, Fosc、Fcclk、Fcco、Fpclk必须定义*/ #define Fosc            1200000        ...…

查看全部问答∨

at89s52问题请教

大家好 ! 我是学习单片机的新手  请问下 单片机的CPU芯片 如(AT89S52)它要进行ISP软件下载  而我们又要 进行编写自己的程序   那个ISP软件和自己编的程序 之间是什么关系呢?  不是自己编写程序直接写 ...…

查看全部问答∨

jlink 灯亮 设备管理器中有其驱动,但是没有新增com口

想设置通讯的 超级终端时,发现 设备管理器中没有端口,jlink灯亮,设备管理器中也有其驱动,为什么?…

查看全部问答∨

MSP430 UCSI A0 的 UART 和 B0 的 IIC 是共用同一个中断吗?

MSP430 UCSI   A0 的 UART 和 B0 的 IIC 是共用同一个中断吗?会不会有冲突呢?…

查看全部问答∨

MSP430F149超声波定时器捕获测量距离

1.程序能进入中断,执行中断的语句,但感觉不能循环, 2.上升沿和下降沿捕获的时间TACCR1可能有问题,但我找不出问题的所在, 3.特别是在捕获存放时间的TACCR1有很大的问题,, 上述问题希望大神们能帮我解决我在这里先谢谢大伙了,,以下是我的 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved