基于Linux的嵌入式数据采集系统

1 嵌入式系统概述

嵌入式系统因此利用为中间、以谋略机技巧为根基、软件硬件可裁剪、适应利用系统,对功能、靠得住性、资源、体积、功耗有严格要求的专用谋略机系统,它将操作系统和功能软件集成于谋略机硬件系统之中,简而言之便是系统的利用软件与系统的硬件一体化,类似于BIOS的事情要领,具有软件代码小,高度自动化,相应速率快等特征。分外得当于要求实时和多义务的体系。嵌入式系统是将先辈的谋略机技巧、半导体技巧、电子技巧和各个行业实际利用相结合的产物。嵌入式系统的布局由两大年夜模块组成:硬件平台和软件平台,其布局如图1所示。

图1  嵌入式系统布局图

2 系统设计

数据采集系统的采集义务在现场完成。采集系统设计为散播式的节制系统,系统上位机与现场检测下位机之间的通信基于串口。正常运行时,现场下位检测节制器完成数据采集、数据处置惩罚、数据存储、数据发送等多种义务。系统具有必然的自检测、自校对能力,能将非常环境传给PC机,以便掩护。为了适应各类不合环境对焊缝自动检测的要求,全部检测系统采纳模块化布局设计,可利用不合的模块组合成不合的利用系统。数据采集系统的基础组成如图2所示。

图片看不清楚?请点击这里查看原图(大年夜图)。

图2  数据采集系统的组成

2.1 系统的硬件

数据采集系统主要完成实时数据采样、维持、并送入A/D 转换器变成数字旌旗灯号,然后再对数据进行谋略处置惩罚、保存,再经由过程通信接口将实时数据发送到监控中间,同时接管监控中间下发的各类敕令。其硬件布局如图3所示。

图3  数据采集系统的硬件布局

该系统采纳了Cirrus Logic公司的EP9302作为主CPU,并移植Linux操作系统来对义务进行治理和调整。

交流采样电路主要由采样维持、多路开关和A/D转换组成,用来包管在模数转换历程中电压、电流的同时性,以满意功率丈量要求。本系统采集四相电压及四相电流,经由过程多路开关分时将采样量送入A/D转换器。14位A/D转换电路采纳Analog Devices的AD7865,AD7865 是四通道高速A/D转换器,其电路输出具有三态锁存功能。

通信电路由SJA1000芯片、光耦电路和总线驱动器组成。SJA1000的AD0∼AD7连接到系统数据总线上,为了增强CAN总线节点的抗滋扰能力,SJA1000的TX0和RX0并不是直接82C250 的TXD和RXD相连,而是经由过程高速光耦合器6N137与82C250相连,这样就很好地实现了总线上各CAN 节点间的电气隔离。光耦部分电路所采纳的2个电源Vcc和Vdd必须完全隔离,可采纳小功率电源隔离模块或带多个5V隔离输出的开关电源模块实现。这部分增添了接口电路的繁杂性,但却前进了节点的稳定性和安然性。

2.2 系统的软件

软件的设计是在操作系统上实现的,嵌入式操作系统是全部系统的核心。针对本系统的特征,软件平台采纳多义务嵌入式操作系统Linux来实现,改变了传统的在类似硬件平台下采纳MSDOS单用户、单义务操作系统难以完成较为繁杂的散播式多义务利用的毛病。在数据采集系统中,Linux系统可以同时处置惩罚多个传感器发送来的较为繁杂的节制义务,从而前进系统的

用户进程是经由过程设备文件与硬件打交道,对设备文件的操作要领是系统调用,由file_operations布局实现系统调用。这个布局的每一个成员的名字都对应着一个系统调用。用户进程对设备文件进行操作时,系统调用经由过程设备文件的主设备号找到响应的设备驱动法度榜样,然后读取这个数据布局响应的函数指针,接着把节制权交给该函数。这便是Linux 设备驱动法度榜样事情的基滥觞基本理。编写设备驱动法度榜样的主要事情便是编写子函数,并添补file_operations的各个域。

设备驱动法度榜样以模块要领加入内核,在init_module模块中,当反省设备存在后,用request_irq函数为设备申请系统中余暇的中断,用kmalloc为设备驱动法度榜样申请输入输出缓存行列步队, 假如申请成功, 用regis2ter_chrdev函数将设备驱动法度榜样注册到系统中,加载完成。在clearup_module模块中,先用free_irq函数开释申请到的中断,然后用kfree函数开释申请到的内存空间,着末用unregister_chrdev函数开释注册的设备驱动法度榜样。

2.2.3 利用法度榜样设计

在基于嵌入式Linux系统的微机中,利用法度榜样的主要模块稀有据采集模块、数据处置惩罚模块、数据通信模块和数据诊断模块。利用法度榜样流程图见图4。

图4  利用法度榜样流程图

数据采集模块是经由过程对I / O 口操作实现的。使用inb、inb_p、outb、outb_p 等4 个函数编写读取和写入法度榜样。inb_p 、outb_p与inb、outb 的差别在于前者在存取I/O时有等待(pause),可适应慢速的I/O设备。为了防止存取I/O 时发生冲突,Linux供给对端口应用环境的节制。在应用端口之前,可以反省必要的I/O是否正在被应用,假如没有,便把端口标记为正在应用,应用完后再开释。

数据处置惩罚模块实现数据的均值与极值谋略, 以文件的要领存储数据。历史数据对焊缝数据采集系统很紧张,可上传到办事器以便预告系统根据设置的模型进行猜测,还可赓续修正数据诊断模块所需的模型。

数据诊断模块实实际时阐发诊断,根据已设置的模型,在系统事情时代对系统数据进行测试阐发。诊断法度榜样设置为嵌入式系统中中断级别最低的中断办事法度榜样,在不影响系统事情的条件下实实际时诊断,并上传给上位机,以便跟踪诊断校准,包管系统的靠得住性。

数据通信模块主要义务是经由过程串口与上位PC机实现数据传输。在Linux系统中,串口是用做字符设备处置惩罚的。应用文件操作函数对串口进行处置惩罚,使用open函数打开串口,使用termios布局设定串口通信参数。

2.2.4 系统履行

颠末以上步骤,在嵌入式Linux系统上实现数据采集系统已基础构成。系统履行流程见图5。

图5  系统履行流程图

3 小结:

本文作者立异点是基于嵌入式Linux的数据采集系统具稀有据检测的实时性、检测精度高、自动化程度高、具有优越的靠得住性、稳定性和抗滋扰性等特征。实际运行证实高机能的AMR9微处置惩罚器和Linux操作系统的运用前进了系统的实时相应机能和多义务处置惩罚能力,使系统的靠得住性和可扩展性得以显着前进。

您可能还会对下面的文章感兴趣: