历史上的今天
返回首页

历史上的今天

今天是:2025年04月19日(星期六)

2021年04月19日 | 基于Linux 以太网的远程数据采集系统

2021-04-19 来源:eefocus

引言


我们生活在一个五彩缤纷的模拟世界,而在数字化高速发展的今天,如何将模拟的信号 转化到数字领域显得尤其重要,这就需要数据采集技术。随着网络技术的发展,以太网越来 越能够满足工业应用的需要。现场总线的通信功能完全可由以太网较好地完成。最近几年, 交换式以太网技术的出现大大地提高了以太网的确定性,这同时也使以太网技术在工业领域 的使用更加广泛。


1. 远程数据采集系统的总体设计


本文以太网的数据采集系统的设计目标是系统能够采集 0~2.5V 的电压信号量,然后通 过USB 接口将处理了的采样信号传输到嵌入式平台,并且可以通过以太网传输到用户。 一个良好的高速数据采集系统受很多方面的制约,例如采样的频率、AD 的精度、传输 的速度和平台通用性等等,本系统主要依靠采用高性能AD 和改变采集卡CPU 对采样的控 制方式和采样信号的处理方式来解决。设计中使用了CYPRESS 公司的EZ-USB FX2 系列芯 片CY7C68013。这款芯片有GPIF(General ProgrammableInterface)模式,可以提供高速的数 字逻辑信号给外围设备(这里给AD),该模式不受CPU 控制,是独立于CPU 存在的。这就 克服了CPU 对于高速采样的瓶颈约束,提高了对采样频率的控制能力。对于高性能AD, 文中采用了Analog devices 公司的AD7492,该芯片采样可以达到1MSPS,是12 位并行的 持续逼近型高速模数转换芯片,系统总体框图如图1。



图1 总体框图


2. 数据采集卡设计


该数据采集卡完成的不仅仅是一个数据采集的功能,而在于为以后的设计提供详细的设 计基础和平台,这些功能都可以方便的移植到以后的仪表设计中。数据采集卡的总体框图如 图2 所示,输入信号是0~2.5V 的电压信号量,需要经过限压、滤波等处理,然后直接输入 到ADC 的IN 引脚(板上的IN 引脚端子)。AD 转换的启停等控制由CPU 完成,转换时序由 GPIF 控制器控制。CPU 的GPIF 方式以查询的形式检测ADC 的BUSY 引脚,向GPIF 控制 器报告信号采集的状态。为了达到改变采样频率的目的,利用定时器按照采样频率要求控制 CPU 的IO 端口,进而控制GPIF 流程的启停。一次采集流程结束后会自动保存采集上来的 数据到寄存器中,然后CPU 处理寄存器中的数据并送到USB 输出缓冲区便可输出至USB 端口。

图 2 数据采集卡的总体框图


2.1AD 转换部分硬件设计


该设计中使用了 AD7492 作为主采样器件,AD7492 很容易与微处理器或DSP 接口。输 入信号从CONVST 的下降沿开始被采样,转换也从此点启动。AD 的输入为0-2.5V 单极性 电压。REFOUT 引脚接有最小100nF 的电容,REFOUT 引脚接有最小100nF 的电容,以稳 定内部参考电压值。CPU 负责控制AD 的启动、停止和读取采集数据等工作。设计中使用 了GPIF 模式,由AD 的连接图可以看出,68013 的CTL 引脚、RDY 引脚和AD 直接连接, 对AD 的时序进行控制。CONVST 脚接到PA7 ( 68013 的IOA^7 )用于控制采样的启停,从 而可以控制采样频率,CTL, RDY 引脚的行为由GPIF 控制,其电路图如图3 所示。


图 3 ADC 外围接线图


2.2CPU 与EEPROM 的接口电路


CY7C68013 芯片本身不带ROM,所以扩展一片64Kbit 的I2C 串行E2PROM 存储程序 代码。该芯片为低功耗应用而开发,可以充分利用FX2 的I2C 接口而不用占用其它IO 接口。 E2PROM 的连接决定了采集卡作为USB 设备上电枚举的过程。如果上电没有检测到 E2PROM 的存在,则会采用默认PID, VID。枚举;上电如果检测到连接有E2PROM 时,loader: 读E2PROM 的第一个字节来决定如何枚举,电路图如图4 所示。

图 4 EEPROM 外围接线图


2.3CPU 与键盘、显示的接口电路


由于 56 引脚的68013 只有PA, PB, PD 三组IO,对于12 位的AD,使用了PB, PD 的第 二功能,配置为FD(Fifo Data)。这样就只剩下PA 口8 个引脚可用,不足以完成键盘、显示、 测试预留等功能。所以采用了PCF8574 I2C 转I0 口的方式进行扩展。这样也可以留出足够 的IO 口用于扩展和测试,连接如图5。


图 5 CPU I/O 扩展


3.系统应用软件设计


软件设计主要涉及到三个方面:一是对用CY7C68013 做CPU 的数据采集卡的固件设计 和应用程序设计。CYPRESS 公司为其旗下的产品做了很好的技术支持,例如对该款芯片提 供了完善的固件架构。用户的应用只要在此固件基础上开发即可。二是针对数据采集卡设计 基于ARM-LINUX 的USB 设备驱动程序。三是基于ARM-LINUX 平台,为提供给用户可视 化界面设计应用程序及远程PC 上通过以太网采集的应用程序的设计。


3.1 USB 数据采集卡驱动程序


编写一个 USB 设备的驱动程序,首先需要把驱动程序的对象注册到USB 子系统中,然后再使用厂商标识和设备标识来判断是否已经安装了硬件。注册是在USB 驱动程序模块初


始化代码中完成。例如在初始化代码中有这样的语句:


usb register(&sample_driver);


这句话调用了usb register 这个函数,将struct sample_driver{}注册到USB 核心。


USB 核心如何识别一个驱动适合该设备呢,就要靠usb_device id 结构体完成。struct usbse_device id 结构体提供了一列不同类型的该驱动程序支持的USB 设备。USB 核心使用该列表来判断对于一个设备该使用哪一个驱动程序,热插拔脚本使用它来确定当一个特定的 设备插入到系统时该自动装载哪一个驱动程序。本例中实现了这样一个结构:


static struct usb_device_id sample_id_table[]={


{USB_DEVICE(USB_Sample_VENDOR_ID,


USB_Sample_PRODUCT_ID) },{} };


MODULE_DEVICE_TABLE (usb, sample_id_table);


USB_DEVICE ( vendor,product)这个宏仅和指定的制造商和产品ID 值相匹配,该宏常用于需要一个特定驱动程序的uss 设备。


int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,


void *data, int len, int *actual_length,int timeout);


该函数传递bulk 数据到驱动中的缓冲区*data,如果传递完成之后再复制到用户区供用户使用。


int usbes_control_msg(struct usb device *dev, unsigned int pipe,_u8 request,_u8 requesttype,


_u16 value,_u16 index,void *data,_u16 size, int timeout);


该函数允许驱动程序发送和接收USB 控制消息。例如本例中实现的采样频率的变换就是通过该命令在用户和数据采集卡硬件之间传递的。


下面以读设备数据 sample read 为例介绍驱动对硬件的操作过程,流程如图6 所示。


图 6 sample read 函数流程


内核空间和用户空间有所不同,驱动程序属于内核空间,普通的应用程序属于用户空间, 两个空间的数据不能直接互访,必须要借助copy_fromes users()、copy_to_user()两个函数在 两个空间中传递数据。


3.2 PC 机客户端的设计


PC 机客户端使用Delphi 开发。主要完成以下功能:作为Client 和服务器连接、请求并接 收Serve:发来的采集到的数据并在本地客户端上以波形形式显示出来。本设计中使用了两个 定时器完成这些功能,定时器1 负责向Serve:发送“请求数据”的请求,并将返回的数据放 入缓存。定时器2 负责将定时器1 接收来的数据以波形的形式显示出来,其中,用到了ActiveX 控件VtChart,客户端收到采集正弦波形如图7 所示。

图7 网络采上来的正弦波


4.结论


本文创新点:本文研究、设计了基于以太网技术、USB 技术、嵌入式技术的数据采集 系统,将先进的技术融合到工厂自动化的最前端,提高了采样的精度、速度和可靠性。该数 据采集卡完成的不仅仅是一个数据采集的功能,而在于为以后的设计提供详细的设计基础和 平台,这些功能都可以方便的移植到以后的仪表设计中,可以作为二次开发的平台。

推荐阅读

史海拾趣

Golledge Electronics公司的发展小趣事

Golledge Electronics公司的发展故事

故事一:石英晶体振荡器的创新起点

Golledge Electronics公司的起源可以追溯到对石英晶体振荡器技术的深入研究和创新。公司最初成立于英国水晶产区的中心,依托当地丰富的水晶资源,Golledge迅速成为石英晶体振荡器领域的佼佼者。公司创始人敏锐地意识到石英晶体的压电特性在电子系统中的重要应用价值,于是投入大量资源进行研发。通过不断优化晶体制造工艺和温度补偿技术,Golledge成功推出了高精度、高稳定性的石英晶体振荡器,为无线电通信、卫星通信等领域提供了关键技术支持。这一创新不仅奠定了Golledge在电子行业的基础,也为其后续发展铺平了道路。

故事二:微机电系统(MEMS)技术的突破

随着电子产品的不断小型化和便携化,Golledge Electronics公司紧跟时代步伐,将研发重点转向微机电系统(MEMS)技术。MEMS谐振器以其紧凑的尺寸和稳健的性能,成为便携式设备和可穿戴设备中的理想选择。Golledge通过自主研发和合作创新,成功将MEMS技术应用于频率控制产品中,推出了多款高性能、低功耗的MEMS谐振器。这些产品不仅满足了市场对小型化、轻量化的需求,还进一步提升了电子系统的整体性能和可靠性。Golledge在MEMS技术领域的突破,为其在电子行业中的领先地位增添了新的动力。

故事三:新材料应用的探索

为了不断提升产品的性能和质量,Golledge Electronics公司始终致力于新材料的研发和应用。公司研发团队通过深入研究石英晶体的物理特性和化学性质,成功开发出了一系列具有独特性能的石英晶体材料。这些新材料不仅具有更高的稳定性和频率精度,还能够在极端环境下保持优异的性能表现。Golledge将这些新材料应用于频率控制产品中,显著提升了产品的竞争力和市场占有率。同时,公司还积极探索其他新型材料的应用潜力,为未来的技术创新储备了丰富的资源。

故事四:机器学习集成的创新实践

随着人工智能技术的快速发展,Golledge Electronics公司敏锐地捕捉到这一趋势,并积极探索机器学习在频率控制领域的应用。公司研发团队通过集成机器学习算法,使频率控制系统能够动态地适应和优化频率设置。这一创新实践不仅确保了频率控制系统的持续准确性,还为其赋予了自我学习和自我优化的能力。Golledge的这一创新成果,不仅提升了产品的智能化水平,也为电子行业的未来发展提供了新的思路和方向。

故事五:超微型SMD晶体的商用化

为了满足市场对更小、更轻、更高效的电子产品的需求,Golledge Electronics公司推出了超微型1610mm封装SMD晶体,并成功实现商用化。这款晶体以其极小的尺寸和优异的性能,迅速赢得了市场的青睐。Golledge通过不断优化生产工艺和质量控制体系,确保了超微型SMD晶体的稳定供应和高质量表现。这款产品的成功商用,不仅进一步巩固了Golledge在电子行业中的地位,也为其在小型化、便携化电子产品领域的发展开辟了新的市场空间。

Fanstel公司的发展小趣事

在市场竞争日益激烈的情况下,Fanstel公司意识到市场拓展的重要性。公司制定了一套精准的市场营销策略,针对不同行业和地区的客户需求,推出了定制化的产品和解决方案。同时,Fanstel还积极开拓国际市场,通过参加国际展会、建立海外销售网络等方式,成功将产品打入全球市场。这些举措不仅提升了公司的知名度,也大大增加了公司的销售额。

Good-Ark公司的发展小趣事
定期检查电路各部件的工作状态,及时更换损坏的元件,确保电路长期稳定运行。
功得(CONQUER)公司的发展小趣事

为了保持在行业中的领先地位,功得公司不断加大技术研发投入。他们与多所高校和科研机构建立合作关系,共同开展前沿技术研究。在这些合作中,功得公司取得了一系列技术突破,推出了一系列具有行业领先水平的新产品。这些技术成果不仅提升了公司的核心竞争力,也为整个电子行业的发展做出了贡献。

Hilscher Gesellschaft für Systemautomation mbH公司的发展小趣事

HVPSI成立于本世纪初,起初是一家小型的技术初创企业,专注于研发高效、可靠的高压电源模块。在创始人及核心团队的带领下,公司迅速在MOV(金属氧化物压敏电阻)模块领域取得了突破。这些模块在电力电子设备中起到了关键的过压保护作用,有效提高了系统的稳定性和安全性。通过不断的技术迭代和产品优化,HVPSI逐渐在行业内树立了技术领先的形象。

Chenmoun Enterprise Ltd公司的发展小趣事

Chenmoun Enterprise Ltd成立之初,专注于研发和生产电子产品的基础元件。随着技术的不断发展,公司敏锐地把握了市场趋势,开始研发具有创新性的芯片技术。通过不懈的努力,Chenmoun成功推出了性能卓越、成本更低的芯片产品,迅速占据了市场份额,并逐渐在电子行业内崭露头角。

问答坊 | AI 解惑

基于定点DSP的软件锁相环的设计和实现

低轨小卫星通信是近年来卫星通信应用中一个方兴未艾的重要领域,“创新一号”小卫星是我国研制的具有完全自主知识产权的存储与转发通信小卫星,cascom手持终端是专门为这颗小卫星研制的低功耗地面手持通信终端,支持调制数据速率达76.8kbps的BPSK窄带 ...…

查看全部问答>

传感器和变送器的区别

传感器和变送器的区别 传感器是能够受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置的总称,通常由敏感元件和转换元件组成。当传感器的输出为规定的标准信号时,则称为传感器。 变送器的概念是将非标准电信号转换为标准电信号 ...…

查看全部问答>

关于vxWorks6.5下,命令行生成vxwroks和vxwroks.st的问题

大家好,我最近在用vxworks6.5, 通过命令行可以生成vxworks和vxworks6.5,现在的问题是: 生成的vxworks,bootrom引导起来后,WDB能链接,target server能连上,但是串口下各种指令不认,例如“i”等; 生成vxWorks.st的话,bootrom引导起来后 ...…

查看全部问答>

哪位大侠有protues 包含dac0832,adc0804等单片机专用元件库

各位大侠:     小弟,想在protues中模拟仿真单片机实验,无奈找不到相关的器件,如adc0804,dac0832等有关器件,敢问那位大侠有单片机仿真的专用元件库,小弟期待中!!…

查看全部问答>

wince 下摄像头分辩率的调节

{ 0xCB998A05, 0x122C, 0x4166, 0x84, 0x…

查看全部问答>

S3C44B0X如何软复位

CPU: S3C44B0X OS: uclinux 2.4 在shell下执行reboot总是出现 reboot failed! 查了些资料,只能看到诸如 architecture was unable to reboot 这样的描述。 既然不支持,那就打算模拟硬件reset的方式,在程序里强制跳转到 0x00000000 地址来进 ...…

查看全部问答>

寻找一个可以长期兼职合作的硬件工程师,要求如下

做比赛计时钟产品,mpu:66p12,语音芯片:ISD1400,ISD1700系列,北京地区,有意者速联系13552584515,QQ407243538,现在就有项目。另:最好的项目合作群:34048757…

查看全部问答>

WinCE显示网页

(1)事件:我在WINCE中用CreateWindow(TEXT(\"DISPLAYCLASS\")……)创建了一个浏览网页的控件,当我点击按钮打开网页A后,紧接着再点击另外的按钮打开网页B。 (2)现象:每次在网页B加载完成以前,先前的已经浏览过的旧网页A总是会显示出来直到网页B ...…

查看全部问答>

2011器件清单

20MHz普通示波器(双通道,外触发输入,有X轴输入) 60MHz双通道数字示波器 低频信号发生器(1Hz~1MHz) 标准高频信号发生器(1MHz~30MHz,可输出1mV小信号) 函数发生器(10 MHz,DDS) 低频毫伏表 高频毫伏表 100 MHz频率计 失真度测试 ...…

查看全部问答>

PIC16F690程序例子adc+uart+timer+eeprom

附件为PIC16F690程序例子adc+uart+timer+eeprom,下不来的可以加我QQ。…

查看全部问答>