历史上的今天
返回首页

历史上的今天

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

正在发生

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

2020-09-18 来源:elecfans

摘要:设计了基于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 内核,针对不同领域不同应用,可轻松进行二次开发,将有广阔的应用前景。

推荐阅读

史海拾趣

Electro Technik Industries公司的发展小趣事

作为一家具有社会责任感的企业,ETI始终关注环保问题。公司积极推广绿色生产理念,采用环保材料和工艺进行生产。同时,ETI还投入大量资金用于环保设施的建设和运营,减少了对环境的污染。此外,ETI还积极参与社会公益活动,为环保事业贡献自己的力量。这些举措使ETI在业界树立了良好的形象,赢得了社会各界的广泛赞誉。

Honeywell公司的发展小趣事

背景:霍尼韦尔公司的历史可以追溯到1885年,由发明家艾伯特·布兹在美国明尼阿波利斯创立布兹电子温度调节器公司。

发展:布兹成功研发出了一种名为“风门挡板”的装置,该装置能够自动调节室内温度,这是当时的一大技术突破。随着业务的不断发展,布兹电子温度调节器公司被统一温度控制公司收购,并在1893年更名为电子供热调节器公司。

关键事件:1898年,电子供热调节器公司被W.R. Sweatt收购,并于1916年更名为明尼阿波利斯热调节器公司。这一系列的更名和收购奠定了霍尼韦尔在恒温器领域的基础。

Etron公司的发展小趣事

面对未来电子行业的发展趋势和挑战,钰创科技始终保持着清醒的认识和前瞻性的思考。公司将继续加大研发投入和人才培养力度,推动技术创新和产业升级;同时加强与国际知名企业的合作与交流,拓展国际市场;并积极响应国家政策和市场需求变化,不断调整和优化产品结构和市场布局;为实现公司的可持续发展和长远目标奠定坚实基础。

请注意,以上故事为虚构内容,旨在展示Etron公司(钰创科技)在电子行业中的发展历程和可能遇到的挑战与机遇。实际情况可能因各种因素而有所不同。

E-Mark Inc公司的发展小趣事

JKL公司是一家创新型电子企业,专注于研发新能源汽车电子控制系统。为了推动新能源汽车的发展并满足欧洲市场的需求,JKL公司决定对其产品进行E-Mark认证。在认证过程中,JKL公司积极投入研发资源,不断创新技术,提升产品的智能化和安全性。最终,JKL公司的产品成功获得了E-Mark认证,并在欧洲市场得到了广泛应用和认可。这一认证不仅加速了JKL公司新能源汽车技术的市场推广速度,也提升了公司在国际市场的竞争力。

Axon' Cable公司的发展小趣事

Axon' Cable公司自1965年在法国成立起,便致力于通讯连接器的研发与生产。在创业初期,公司面临着资金短缺、技术瓶颈和市场竞争的诸多挑战。然而,Axon' Cable凭借其坚定的信念和不懈的努力,逐步突破了技术难关,并成功开发出了一系列具有竞争力的产品。这些产品在市场上得到了广泛认可,为公司的后续发展奠定了坚实的基础。

芯朋微电子(chipown)公司的发展小趣事

随着技术的不断进步和市场需求的增长,芯朋微电子逐步将产品线拓展至标准电源和工业驱动领域。2013年,公司推出工控功率芯片产品,这些芯片广泛应用于电机、基站、智能电表等行业领域,进一步扩大了公司的市场份额。

问答坊 | AI 解惑

车身电子控制系统提升汽车性能

  汽车的视野性、方便性、舒适性等与车身电子控制系统息息相关。  视野性是指驾驶员在操纵汽车时,不需改变操作姿势对道路及周围环境观察的可见范围,视野控制技术指的是对汽车照明灯以及对电动刮水器、洗涤器和除霜器等的电子控制。方便性除指 ...…

查看全部问答>

供应MTK平台+SP源码+配套机器+动态菜单

本人有MTK 平台的 0812 0816 06B 6223 单双卡双待等源码,提供配套的测试手机以及刷机线!可以满足学习与开发需要, 有学习需要的朋友可以加我,一起学习!一起做MTK的技术精英。 另外,对于初学者,本人可以提供环境搭建的完整工具与相应文档, ...…

查看全部问答>

有关tcsetattr的问题

tcsetattr(0,TCSANOW,&term); tcsetattr(1,TCSANOW,&term);   中的“0”和“1”表示啥意思啊?…

查看全部问答>

求教:如何时间PC与单片机之间的文件发送与接受

    急!如何实现PC机与单片机之间进行文件发送和接收(最好是双向的那种),接收方还要给传输方一个响应,编程思路是怎样. …

查看全部问答>

关于wince 的RAM 和ROM 求教

在wince中 RAM 被分成两个区域 一个是程序内存 这个好理解 还有个就是  对象存储库  这个对象存储库 不太理解  我们在往wince里面烧写程序的时候不是都烧写在 flash rom 里面的吗  那怎么 RAM   ...…

查看全部问答>

我的C3怎么超不了频?

大家好:     我用的是顶星TM810-T主板,C3主频为1G的CPU,我想将主频超到1.33G,在BIOS中按照以下的设置后,保存退出,怎么还是原来的1G(100*10)主频呢?我的设置如下: Auto Detect DIMM/PCI Clk [Enabled] 默认,没有改 Spread Sp ...…

查看全部问答>

C题 群 158887488

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 大家共同讨论哈!  …

查看全部问答>

2013年十大电子DIY方案集锦---技术宅的福利(图文)

今年的冬天,有寒冷还有雾霾,这是一个适合宅的冬天。对于那些本就不喜外出的技术宅来说,这再适合不过了,没有活动邀请,没有电话催促,可以宅在房间一隅摆弄自己心爱的玩意。  现在,为大家整理出本年度十大DIY方案,供各位技术宅神选用。仅供 ...…

查看全部问答>

8口 10/100M网络交换芯片

需要精简现在的网络交换单元的结构,现在是4片IP175D连接在一起,对外有14网络接口,其代价是4片IP175LFI,板子发热严重,电源不堪重负,因此开始重新选型,原则是单芯片多口, 条件如下: 1:MII/RMII 2:单芯片8个网络口以上。 3:工业级 4: ...…

查看全部问答>

求电子设计竞赛交流群!!

求电子设计竞赛交流群!! …

查看全部问答>