历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | 基于FPGA的LSA系列激光粒度测试仪的数据采集

2020-02-25 来源:elecfans

引言

随着现代科学技术的日益发展,颗粒尺寸及其分布在诸如石油、冶金、制药、建材等领域占据着越来越重要的地位。激光粒度仪就是用来测量微小颗粒尺寸及其分布的仪器,其基本原理是光的衍射理论。数据采集系统对激光粒度仪的光电探测器上光能信号的采集速度是激光粒度仪的性能指标之一,一般来说采集速度越快测量结果的准确性、重复性和稳定性越好[2]。随着各种新型光电探测器的不断出现,原有的数据采集系统需要重新设计升级。在新的设计方案中,数据采集系统的模拟通道容量增加到了 112路,并且系统的采集速度也有了大幅度的提高。


FPGA具有硬件资源丰富、设计灵活等特点,适用于数据通讯、数据采集和系统控制中,特别是它的并行结构和算术运算的特点,已越来越受到科技开发人员的青睐,被广泛应用到数据信号处理当中。对本系统而言, FPGA作为一种可编程、可重配置的数字集成电路,为实现系统的设计目标提供了有力的保证。


1 系统硬件设计

根据激光粒度仪的应用场合,本数据采集系统采用单通道采集的方案,它主要由模拟部分、数字部分和接口部分三部分组成。其中模拟部分包括光电探测器、电信号放大、多路选通、信号调理和 12位 AD转换,数字部分则完全在 FPGA内部实现,接口部分主要是计算机的 PCI总线接口。系统组成框图如图 1所示。

基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计

光电探测器电信号放大

激光粒度仪所用的光电探测器是由多个同心的光敏环组成的,每一光敏环输出的模拟电信号反映了照射到该环上的光能量大小。随着对激光粒度测量研究的不断深入,天津大学研制的 LSA系列激光粒度仪的光电探测器组件,其模拟输出已经发展到 96路之多[3]。为实现对这么多路模拟信号的采集,多路选通采用七片 16选 1模拟开关 DG406和一片 8 选 1模拟开关 MAX308组成双层级联结构,共可容纳 112路模拟信号,它的地址信号是由 FPGA提供的。AD转换芯片是数据采集系统的关键器件,采用 ADI公司的 12位逐次逼近型模数转换芯片 AD7321,在本文中该芯片使用其内部的 2.5V参考电压,模拟输入范围选择为 0~10V,它使用由 FPGA分频产生的 8.3MHz时钟信号,这样该芯片可在 2μs内完成一次模数转换。若连续两次采样间隔的时间设置为 2μs,则系统的数据平均传输速率可达到3Mbps。



2 系统软件设计

2.1 FPGA内部逻辑设计

本文采用了片上系统的设计理念,在 FPGA内部设计了所有所需的数字逻辑,可以实现数据采集控制、数据存储和 PCI接口方式的数据传输等功能。在本方案中,系统初始化后,首先上位机将采集的参数信息(模拟通道数、采样方式、AD7321工作模式等等)通过 PCI总线送给 FPGA中,FPGA再根据这些参数信息控制多路开关和 AD7321的工作,完成数据采集任务。采集过程中 FPGA将 AD转换得到的数据存入其内部的 FIFO中,当 FIFO快满时,它向上位机产生中断,上位机再通过 PCI总线读取 FIFO中的数据。


根据以上的设计思想,整个 FPGA内部逻辑的设计框图如图 2所示。本文中 FPGA选用 ALTERA公司的 EP2C5Q208C7芯片,采用自顶向下的设计方法,使用 Quartus II 7.0 等相关软件进行硬件代码的开发。下面给出各模块的设计过程。

基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计


2)本地控制模块。该模块主要由一个能根据 PCI_t32的控制信号和 FIFO的状态跳转的有限状态机实现。它主要负责控制 PCI_t32和 FIFO之间的数据传送以及协调数据传输路径上其它相关模块的工作。当 FIFO快满时,该模块将产生中断信号通知上位机读取 FIFO中的数据。


3)命令寄存器模块。该模块用来保存并译码由计算机传来的 16位命令字,配置 AD转换控制模块和地址输出模块的工作方式。这 16位命令字包含要采集的模拟通道数、AD7321工作模式和是否允许硬件中断等信息。 4)AD转换控制模块。该模块可输出 AD7321所需的 SPI总线接口、片选信号和 8.3MHz时钟信号,其内部主要由一个状态机和两个 16位移位寄存器组成。其中移位寄存器可以将 AD7321送来的 16位串行数据转换为并行数据存入 FIFO中,也可以将命令寄存器模块中的配置数据串行的发送给 AD7321芯片,状态机将两次 AD转换的间隔时间设置为 2μs。


5)地址输出模块。该模块提供多路模拟开关的片选和地址信号,其内部主要由一个地址计数器组成,当 AD转换控制模块完成一路数据的采集时它会自动加 1。 6)PLL和四分频模块。 PLL是 FPGA的模拟锁相环,它工作于 Normal模式下,给其他模块提供全局时钟信号。四分频模块用来对 33MHz的时钟信号四分频,产生 AD转换控制模块所需的 8.3MHz时钟。


在设计中需要特别注意的是异步时钟域之间的数据同步问题,尤其是 AD转换控制模块和 FIFO之间的数据传递。本文中参考了通常所说的用寄存器打两次的方法,在 33MHz的时钟域中采用两个寄存器采样 AD转换控制模块的控制信号,并利用一个同或门检测两个寄存器输出是否一致,再根据同或门的输出信号就可以实现这两个模块之间的数据传递。


2.2 PCI驱动程序设计

硬件系统一般都需要软件的支持才能实现系统的设计功能,驱动程序就是控制硬件设备的一组函数。本系统的驱动程序的开发使用的是 Jungo公司的 WinDriver集成开发包,它可以自动生成设备的信息定向文件.INF和系统文件 WINPNP.SYS。利用 WinDriver 9.01开发设备驱动程序时,驱动程序中的所有函数都是工作在用户态下的,因此不需要熟悉操作系统的内核。本文在 Visual C++++ 6.0的平台下,通过一个动态链接库 wdapi901.dll调用 WinDriver提供的 API函数来编写设备的驱动程序,实现了用户程序对硬件的操作。其软件流程图如图 3所示。

基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计

3实验结果与分析

由天津大学研制的 LSA-III型激光粒度仪可测粒径范围为 6μm-2000μm,其光电探测器由 32个同心光敏环和 1个位于中心的光敏点组成。由于本系统可以软件选择模拟通道数,因此只要将计算机发送到命令寄存器模块中的命令的模拟通道数改为 33就可以应用到该仪器上。在 LSA-III型激光粒度仪上使用焦距为 300mm的傅立叶物镜对标准粒子板进行测试,利用 R-R分布模型处理得到的数据,对标准粒子板测量 5次的试验结果如表 1所示。其中 D50表示小于该直径的粒子体积占粒子总体积的 50%,D10和 D90的意义与此类似 [5]。变异系数 Cv和相对误差△是 ISO13320标准的指标,其中 Cv用来衡量测量的重复性,△用来衡量测量的准确性。

基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计

由表 1数据可知, D50的变异系数和相对误差均在1.5%以内, D10和 D90的变异系数和相对误差均在3.5%以内,符合 ISO13320标准对重复性和准确性的规定。试验表明该系统在对颗粒粒径的测量中表现稳定,结果准确,完全满足了激光粒度测试系统的要求。


4结语

本文创新点:本文以 FPGA为核心为 LSA系列激光粒度仪量身定制的数据采集系统,实现了 PCI总线方式的数据采集与传输。系统可在 0-112路范围内软件选择模拟通道的采集路数和 AD7321芯片的工作方式,这使得系统具有了一定的通用性,适应了目前光电探测器越来越复杂的趋势。将该系统应用到 LSA-III型激光粒度仪上时,系统对光电探测器的采样速率可达到 7.5Ksps,数据平均传输速率可达到 3Mbps。另外,由于设计中贯穿了 SOC的设计理念,系统还具有集成度高、成本低、升级方便、使用灵活等优点。该项目已经在激光粒度仪中得到应用,产生的直接经济效益达 6万元。

推荐阅读

史海拾趣

GSN Electronics公司的发展小趣事

GSN Electronics公司在电子行业中的发展可以追溯到多个方面,以下是五个关于其发展的故事,每个故事均基于事实进行描述:

1. 创立与初期发展

故事背景:GSN Electronics(深圳)有限公司成立于2012年11月27日,由GSN Electronics (Hong Kong) Limited全资控股,注册资本为100万元人民币,后增至当前规模。公司自成立以来,便专注于电子连接器和线束的生产经营,以及电子产品和电子零件的研发、批发、进出口及相关配套业务。初期,GSN Electronics凭借其专业技术和敏锐的市场洞察力,在深圳这一中国重要的电子产业聚集地迅速站稳脚跟。

发展亮点:公司通过不断优化产品结构和提升技术实力,逐步在电子行业中建立了自己的品牌影响力。

2. 技术创新与专利积累

故事背景:GSN Electronics深知技术创新是企业发展的核心驱动力。因此,公司不断加大研发投入,致力于新产品的开发和旧产品的升级换代。截至目前,公司已获得多项实用新型专利授权,如耐折弯的微型连接器、方便插入的电连接器、端口防水防尘结构的连接器等,这些专利技术的应用极大地提升了产品的竞争力和市场占有率。

发展亮点:技术创新和专利积累不仅巩固了GSN Electronics在电子连接器领域的领先地位,还为其拓展新市场、开发新客户提供了有力支持。

3. 市场拓展与国际认证

故事背景:随着公司实力的不断增强,GSN Electronics开始积极拓展国内外市场。公司通过参加各类行业展会、建立海外销售网络等方式,不断提升品牌知名度和市场占有率。同时,公司还积极申请并获得了多项国际认证,如IATF 16949和ISO 9001等,这些认证不仅证明了公司的产品质量和管理水平达到了国际标准,还为其进入高端市场提供了有力保障。

发展亮点:市场拓展和国际认证的成功实施,使GSN Electronics在电子行业中树立了良好的企业形象和品牌形象。

4. 团队建设与企业文化

故事背景:GSN Electronics深知人才是企业发展的根本。因此,公司一直注重团队建设和企业文化建设。公司拥有一支高素质的研发团队和销售团队,他们不仅具备丰富的专业知识和实践经验,还具备强烈的创新意识和团队精神。同时,公司还积极营造开放、包容、创新的企业文化氛围,鼓励员工勇于尝试、敢于创新。

3E SECURITY公司的发展小趣事

随着网络安全威胁的不断加剧,电子安全行业面临着前所未有的挑战。3E SECURITY公司紧跟行业趋势,加强了网络安全服务的研发和推广。公司推出了一系列网络安全解决方案,帮助客户有效应对各类网络攻击和数据泄露风险。同时,公司还加强了对客户的安全培训和技术支持,提升了客户的安全意识和应对能力。

BROTHER公司的发展小趣事

随着全球环保意识的提高,BROTHER公司也积极践行环保理念,推动绿色生产。公司注重节能减排和资源循环利用,采用环保材料和生产工艺,减少对环境的影响。同时,BROTHER还开展了一系列环保公益活动,宣传环保理念,提高公众环保意识。通过践行环保理念,BROTHER不仅赢得了社会的认可和尊重,还为公司的可持续发展奠定了坚实基础。

以上五个故事只是BROTHER公司在电子行业发展历程中的一部分缩影。实际上,BROTHER的发展还涉及更多的细节和方面。但无论如何,BROTHER始终坚持创新、质量、服务和环保的理念,不断追求卓越和完美,为电子行业的发展做出了重要贡献。

Celduc Relais公司的发展小趣事

在追求经济效益的同时,Celduc Relais公司也积极践行环保理念。公司注重绿色生产,采用环保材料和工艺,减少生产过程中的污染排放。同时,公司还积极参与环保公益活动,推动电子行业的可持续发展。这一举措不仅提升了公司的社会形象,也为行业的绿色发展做出了积极贡献。

DUBILIER公司的发展小趣事

随着技术的不断进步和市场的不断变化,DUBILIER公司意识到必须不断拓展市场以保持竞争力。因此,公司决定采取多元化的市场战略,进入多个不同的细分市场。通过与行业合作伙伴建立紧密的合作关系,DUBILIER公司成功地将其产品推广到了更广泛的领域。同时,公司还积极开拓国际市场,将产品出口到世界各地。这些努力不仅为公司带来了更多的商业机会,还进一步巩固了其在全球电子行业的地位。

APM Hexseal公司的发展小趣事

APM Hexseal的创始人Milton Morse是一位自学成才的工程师和杰出的创新者。他敏锐地洞察到电子行业对密封解决方案的迫切需求,于是开始设计原始的密封开关“靴子”。这种模制的覆盖物能够保护拨动开关和安装面板免受各种液体和气体的渗透。这一创新产品迅速取得了巨大的成功,为APM Hexseal公司奠定了坚实的基础。

问答坊 | AI 解惑

44b0的FIQ中断如何实现

    前两三天找了和看了很多关于44b0中断的资料,结合了bootloader的代码,总算深入了解了44b0的向量和非向量的IRQ中断方式,但发现找不到HandleFIQ所对应的入口。请问FIQ中断是如何在uclinux下实现的?它如何实现区分发生了26种中断源中 ...…

查看全部问答>

NFS Mount的问题

Linux IP:192.168.0.2       ARM 开发板IP:192.168.0.3 Linux自已mount nfs成功:mount -t nfs 192.168.0.2:/nfs /mnt/nfs Linux和开发板能Ping通,但开发板却不能mount Linux中的nfs共享目录: mount -t nfs -o nolock 192.16 ...…

查看全部问答>

VC++串口调试助手

希望大家帮忙找BUG   网友提出宝贵意见 现已增加接收发送字节统计功能 新版本在9楼 希望 大家提出意见 我会不停更新软件 [ 本帖最后由 william228 于 2011-2-15 22:35 编辑 ]…

查看全部问答>

高频PCB中补泪滴的问题

高频板上需要加补泪滴吗?如果需要加 那样不会因为线宽阻抗不同导致弹射吗?…

查看全部问答>

Introduction to TCP/IP

最近整理TCP/IP协议,写的一个PPT,与大家分享,有不对的地方,望指正!      …

查看全部问答>

小白问题求助

这个代码为什么只能让灯亮,而不能实现他的闪烁。。。求教大神, #include #define uint unsigned int #define uchar unsigned char sbit d1=P1^0; uchar num; void main() {    d1=1; TMOD=0x01; TH0=(65536-65535)/256; T ...…

查看全部问答>

免费TI WEBENCH?Altium Designer扩展

本帖最后由 dontium 于 2015-1-23 11:41 编辑 有了解的说说是怎么个情况?blog.live.altium./?mkt_tok=3RkMMJWWfF9wsRoluq%2FLdO%2FhmjTEU5z17%2B8oUK63iokz2EFye%2BLIHETpodcMScJkNrzYDBceEJhqyQJxPr3NLdcNydNqRhHlCQ%3D%3D#Blogs/ti-webench-rele ...…

查看全部问答>

新电路板调试的注意事项,请你补充!

     对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,PCB板 ...…

查看全部问答>

数字钟代码

#include   #define uchar unsigned char; #define uint unsigned int; sbit P3_4 = P3^4;  uchar digit1[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 ...…

查看全部问答>