一种基于ARM-Linux的分布式管道泄漏监测系统

发布者:HeavenlyMelody最新更新时间:2012-01-16 关键字:ARM-Linux  管道泄漏监测系统 手机看文章 扫描二维码
随时随地手机看文章

针对中国输油管道现场具体情况,设计一套基于嵌入式ARM-Linux和LabVIEW的分布式管道泄漏监测系统,包括远程测控终端(RTU)、监测PC以及工业局域网。详细论述了系统架构、硬件组成、软件流程等。通过实际开发与应用,证明此设计完全适用于输油管道特殊现场,不仅降低了成本与功耗,还提高了效率,为长距离石油管道运输系统正常良好地运行提供了有力的技术支持。

输油管道泄漏监测技术是当今石油化工领域科研工作者研究的热门课题[1]。目前,输油管道现场应用的泄漏监测系统存在各种问题。首先,现场很多站点正在使用太阳能阀室设计,而广泛使用于全国各地输油管道监测系统中的基于PC的采集传输设备,因其高功耗、高成本的缺点不适合在太阳能阀室中应用。其次,许多现场管道为分布式网络布局,一个站点可能安置了多个测量节点,并且在主站有多个监控PC获得现场数据进行监测,很多监测系统的多通道采集和多用户处理能力达不到满意要求。再次,由于一些现场会使用电话线拨号网络或微波无线网络,带宽和稳定性无法达到正常网络环境要求,很多现场设备因经常出现数据丢失的情况而不能对泄漏发生做出及时判断定位。所以针对这种情况需要应用一些专门机制来保证网络通信的实时性和完整性,为输油管道泄漏监测与定位提供准确的数据来源。为解决上述泄漏监测系统的问题,设计了一套基于ARM的分布式管道泄漏监测系统。

在当今嵌入式应用领域,ARM由于性价比、功耗、可靠性在同类产品中非常突出,尤其是结合开源的嵌入式Linux操作系统以后,得到了越来越多设计者的青睐[2]。在本输油管道泄漏监测设计中,远程测控终端(RTU)采用ARM和嵌入式Linux的方案,监控PC采用LabVIEW图形编程方案,所有节点通过基于TCP/IP协议的局域网进行通信。

1 系统概述

管道泄漏检测系统采用分布式网络结构,由多个主站监测PC和多个从站远程测控终端(RTU)组成。图1是分布式管道泄漏监测系统结构示意图。

37.jpg

系统基于负压波原理,通过安装在各个管道测量节点的压力变送器测得压力变化情况,并通过从站RTU将各个节点信号数据传送给主站监测PC。当管道网络中某段发生破裂时, 主站监测PC能立即接收到管段内输送介质泄漏瞬间所产生的泄漏信号, 通过比较数据库中的模型来确定管道是否发生泄漏,利用管道两端节点RTU传送信号的时差确定泄漏位置。多个主站监测PC可同时监测整个管道网络的状态。

2 系统硬件组成原理

2.1 RTU硬件组成原理

S3C2440是SAMSUNG公司生产的一款基于ARM920T内核的32位RISC微处理器,其具有低功耗、高速的处理计算能力,负责控制整个RTU。以太网控制器通过隔离器高速、稳定地将系统接入局域网。GPS校时模块把导航信息通过UART总线传送至S3C2440芯片,利用秒脉冲中断实现RTU自动高精度时钟同步。由于S3C2440已经集成了SD模块,直接外接SD物理层接口实现本地数据储存功能。

根据系统要求设计的RTU系统框图如图2所示。

38.jpg

2.2 A/D模块硬件设计

RTU工作时,首先由信号调理单元电路获取压力变送器采集到的电流信号,经由光电隔离芯片和数字滤波器得到适合于模/数转换器(ADC)的输出。模/数转换器(ADC)采用一款内置序列器的4通道、200 kS/s、12 bit AD7923芯片。AD7923芯片由AD780芯片提供2.5 V参考电压。该A/D模块通过SPI总线将转换后的数字信号传送给ARM核心控制模块进一步处理。A/D模块接口电路如图3所示。

39.jpg

关键字:ARM-Linux  管道泄漏监测系统 引用地址:一种基于ARM-Linux的分布式管道泄漏监测系统

上一篇:一种基于ARM和FPGA的嵌入式高速图像采集存储系统设计与实现
下一篇:ARM9+Linux下电子纸驱动的设计与实现

推荐阅读最新更新时间:2024-03-16 12:51

Arm-Linux二级页表的问题
以前,在一些文档和代码中看到过说arm-linux的二级页表分为linux版本和硬件版本。一直觉得概念比较混乱,没有仔细研究,今天终于遇到了这个问题,不得不学习一下了。 在do_page_fault()过程中,有下面函数会被调到: static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval) { pmdp = __pmd(pmdval); pmdp = __pmd(pmdval 256 * sizeof(pte_t)); flush_pmd_entry(pmdp); } 它的功能是把在这一个新申请的二级页表与PMD关联起来。在这之前,pmdp指
[单片机]
ARM-Linux驱动--ADC驱动(中断方式)
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处:http://blog.csdn.net/yming0221/archive/2011/06/26/6568937.aspx 这个驱动写了好久,因为原来的Linux内核编译的时候将触摸屏驱动编译进内核了,而触摸屏驱动里的ADC中断在注册的时候类型选择的是 IRQF_SAMPLE_RANDOM,不是共享类型,所以,自己写的ADC驱动在每次open的时候,总提示ADC中断注册失败。 解决方案: 重新配置内核,选择触摸屏驱动以模块的形式编译,而不是直接编译进内核,这样Linux在启
[单片机]
<font color='red'>ARM-Linux</font>驱动--ADC驱动(中断方式)
ARM-Linux驱动--DM9000网卡驱动分析(三)
ARM-Linux驱动--DM9000网卡驱动分析(二)硬件平台:FL2440(s3c2440) 内核版本:2.6.35 主机平台:Ubuntu11.04 内核版本:2.6.39 交叉编译器:arm-linuc-gcc4.3.2 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6615027 本文接上文 ARM-Linux驱动--DM9000网卡驱动分析(一) ARM-Linux驱动--DM9000网卡驱动分析(二) 下面开始看网卡设备的打开、关闭函数和操作函数 view plainprint? static const struct net_
[单片机]
<font color='red'>ARM-Linux</font>驱动--DM9000网卡驱动分析(三)
基于三星S3C2410的ARM-Linux电子控制油门设计
  引言   巡航控制系统(CCS)是20世纪60年代发展起来的,又称为恒速行驶系统。巡航控制系统工作时,ECU根据各种传感器输送来的信号判断汽车的运行状况,通过执行元件自动调节节气门的开度使汽车的行驶速度与设定的车速保持一致。汽车在良好路面上长时间行驶时,驾驶员启动巡航控制系统并设定行驶速度,不需驾驶员操纵加速踏板,通过巡航控制系统即可自动保持既定的行驶速度,不仅减轻了驾驶员的劳动强度,同时利用先进的电子控制技术控制节气门的开度,比驾驶员操纵节气门更精确,汽车燃料经济性、排放污染性也可得到改善。   1 系统原理   1.1 电控油门原理   工作时,由驾驶员发出转速的控制指令,由节气门开度传感器采集发动机的转速参数,
[单片机]
基于三星S3C2410的<font color='red'>ARM-Linux</font>电子控制油门设计
ARM-Linux驱动移植--DM9000网卡驱动移植
硬件平台:FL2440 内核版本:2.6.39 主机平台:Ubuntu 11.04 内核版本:2.6.35 交叉编译器:arm-linux-gcc 4.3.2 原创作品,转载请标明出处 http://blog.csdn.net/yming0221/article/details/6641579 1、DM9000网卡驱动的分析请见 http://blog.csdn.net/yming0221/article/details/6609742 2、如果想自己调试DM9000网卡驱动,那么在编译内核之前将网卡驱动不要编译进内核,启动后自己编译并加载内核 由于一般的驱动或者程序是通过NFS挂载到开发板上的,所以,如果没有网卡
[单片机]
arm-linux交叉编译ACE
ACE应用于主站数据采集核心的开发已告一段落了。现在打算涉足嵌入式linux应用程序的设计。俗话说“工欲善其事,必先利其器”,ACE支持arm系列的嵌入式系统,当然首先折腾他了,后期还打算整整apache的运行时库apr。嵌入式系统的仿真平台采用skyeye,在这样一个平台里我已经实现了nfs mount 宿主机目录。测试交叉编译后的程序十分方便。 网上搜到一篇《机电之家 嵌入式Linux系统攻略--ACE程序移植过程详细解析》交叉编译工具是Moxa tool chain for DA66x,写的满详细,主要参照它就完成了arm-linux的交叉编译。详细过程如下: 1.解压ace源代码到/root 2.设置环境变量ACE_
[单片机]
<font color='red'>arm-linux</font>交叉编译ACE
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved