当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于Linux 以太网的远程数据采集系统

摘要:本文所研究的数据采集系统结合了以太网Socket 技术,USB 技术、嵌入式技术(ARM+Linux )等,开发了一套数据采集系统。采集的信号,经过CPU 处理后通过USB 总线传输到Arm-Linux 平台或者本地PC 机,实现本地监测。又可以通过以太网传输采集的数据量到远程PC 机,实现远端用户通过Internet 对数据采集卡进行访问与监测。

引言

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

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);[!--empirenews.page--]

这句话调用了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 技术、嵌入式技术的数据采集 系统,将先进的技术融合到工厂自动化的最前端,提高了采样的精度、速度和可靠性。该数 据采集卡完成的不仅仅是一个数据采集的功能,而在于为以后的设计提供详细的设计基础和 平台,这些功能都可以方便的移植到以后的仪表设计中,可以作为二次开发的平台。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2024 年5月13日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 是英特尔®产品的全球授权代理商。英特尔®宣布正式成立Altera™,作为其独立运营的全...

关键字: FPGA 人工智能 以太网

5月11日消息,Arrow Lake、Lunar Lake还没有发布,Intel再下一代处理器Panther Lake的消息就传出来了,CPU方面没啥惊喜,GPU又一次要飞跃。

关键字: GPU CPU 芯片

Optiver通过包括EPYC CPU、Solarflare以太网适配器、Virtex FPGA和Alveo加速卡在内的高性能AMD解决方案搭建其业务基础

关键字: CPU 数据中心 以太网

Bourns® SRF4532TA 尺寸小,可承受高达 4 A 的电流;SRF3225TABG 满足Open Alliance 1000Base-T1 汽车以太网络要求

关键字: 电感器 以太网

利用10Base-T1L SPE取代传统的4mA-20mA和现场总线实现IIoT网络

关键字: IIoT网络 传感器 以太网

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

利用LogiCoA™微控制器,以更低功耗实现与全数字控制电源同等的功能

关键字: 微控制器 电源 CPU

为增进大家对工业以太网的认识,本文将对工业以太网的原理、工业以太网的关键技术以及工业以太网要解决的问题予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网网络优势、工业以太网和IOLINK的区别予以介绍。

关键字: 以太网 工业以太网 指数

2024年4月18日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 很荣幸地宣布与Edge Impulse建立新的全球合作关系。Edge Im...

关键字: 机器学习 MCU CPU
关闭
关闭