海底管道微小泄漏球形内检测器整体设计
2014-03-15陈世利郭世旭黄新敬赵吉波徐天舒
陈世利,郭世旭,黄新敬,赵吉波,徐天舒
天津大学精密测试技术及仪器国家重点实验室,天津300072
海底管道微小泄漏球形内检测器整体设计
陈世利,郭世旭,黄新敬,赵吉波,徐天舒
天津大学精密测试技术及仪器国家重点实验室,天津300072
针对海底管道微小泄漏检测,提出管道球形内检测器整体设计方案。文章从整体平台方案、硬件电路设计以及下位机软件设计三方面介绍了球形内检测器的整体结构。整体平台方案阐述了各模块的作用及相互之间的关联。硬件电路设计包括处理器的选取、存储模块的选取与设计和电源模块管理等;方案最终选用Samsung公司基于ARM1176架构的S3C6410处理器,速度等级为Class 10的TF卡,采用10节电池总容量为31 Ah组成的电池组。软件设计包括驱动程序及应用程序的设计,其中后者采用了高效的多线程编程方式。
海底管道;泄漏;检测;球形内检测器;硬件设计
0 引言
管道输送是海洋油气运输的最有效、最安全的输送方式,定期对其进行检查和安全评估,及时发现因腐蚀、老化、裂纹、变形引起的微小泄漏,尽早采取补救措施是消除管道运行潜在安全隐患的有效手段。
针对海底管道微小泄漏检测,天津大学精密测试技术及仪器国家重点实验室研制了管道球形内检测器:法兰式密封球壳内装载水听器、惯导模块、磁传感器、电路板和电源模块等,随管内液体一起流动,沿途可采集管内泄漏声音信息、自身运动信息和管内磁场信息等,本文主要介绍其核心设备数据采集平台的硬件设计以及与硬件系统匹配的下位机软件设计方案。
1 数据采集平台整体方案(见图1)
图1所示为数据采集平台的总体结构框图,硬件电路部分主要包括:处理器模块、存储器模块、电源模块、各传感器的信号调理及模数转换模块、交互接口模块。
数据采集平台以处理器模块为核心,操控系统自检、各传感器数据采集和存储、电源管理、数据传输、检测器与外界通信等任务。各传感器采集相应的信号,经过调理电路的处理再经过模数转换为数字量,通过一定的通信协议传给处理器,最后存储在大容量TF卡中。通过与外界的交互接口模块,可在检测器取出后利用USB协议将TF卡中存储的数据传输给PC进行后续的分析处理;检测器还可通过串口与上位机进行通讯,方便进行人机交互;检测器的电池充电等功能也能通过此接口实现。锂电池组为整个平台供电,电源模块用于电源管理以满足平台多种设备不同的供电需求。
在软件设计方面,数据采集平台在处理器上移植嵌入式Linux操作系统,作为下位机软件的开发运行环境,进行内存管理与任务调度。在操作系统环境下,采用多线程设计方法,同步采集加姿态导航模块、磁力计、声音传感器数据,并将数据实时写入TF卡内。软件设计内容还包括Linux内核的裁剪和移植、多种电子器件的驱动程序开发、将整个数据采集平台虚拟成U盘等。
图1 数据采集平台的总体结构框图
2 硬件电路方案
2.1 处理器模块设计
处理器模块由CPU芯片、内存、闪存、晶振和一些基本外围电路组成,其结构框图见图2。
处理器的选择主要考虑以下几个因素:检测方案的需求、数据采集平台的可靠性、稳定性、功耗、外观以及后期的升级和维护。
小型仪器设备常用的处理器有单片机、DSP、ARM和FPGA四类。在以上四类处理器中,单片机虽然功耗低、可靠性高、开发容易,但数据处理能力和多任务的同步性较差;DSP具有强大数据处理能力和很高的运行速度,但是需要配备很多外围模块;ARM与FPGA可以便捷可靠地实现检测系统同步、快速地采集多传感器数据,但相对而言FPGA功耗高、体积大。因此,采用ARM作为核心处理器,ARM具有强大的事务处理功能,可以配合嵌入式操作系统使用,使用操作系统最大的优势是并发处理大量数据,管理内存,进行多任务调度,契合本检测器数据采集平台的需求。
图2 处理器模块结构框图
本方案选用Samsung公司基于ARM1176架构的S3C6410处理器。其主频高达800 MHz,且片上集成了丰富的标准接口资源和功能模块控制器,以下为主要的标准接口资源:
4路UART串口(2路TTL电平,2路带硬件流控);
1路USB 2.0 OTG接口;
1路USB Host 1.1接口;
2路I2C接口;
1路I2S/AC97音频接口;
4路PWM输出;
8路ADC输入(0~3.3 V,10 bit分辨率);
2路SPI接口(接收和发送都有64字节的FIFO);
多达63个GPIO(复用);
8位或16位数据总线的SRAM/ROM/NORFlash接口;
8位数据总线的NAND Flash接口;
16位或32位数据总线的SDRAM接口;
16位或32位数据总线(266 Mb/s/引脚DDR)的移动DDR接口;
USB控制器,支持高速USB2.0 OTG(480 Mbps,片上收发器)和USB1.1主设备全速(12 Mbps,片上收发器);
MMC控制器,支持高速MMC/SD;
RTC实时时钟,看门狗定时器。
以上资源使得处理器只需很少的外围电路就能满足使用需求。
内存选用三星K4X1G163OE DDR333芯片,由2块芯片组成256 MB 32位带宽的SDRAM,其外频可达333 MHz,能够完全满足检测过程中的数据缓存、运算和处理需求。程序存储器选择三星标配的256 MB NAND Flash,用以存储Linux系统文件以及应用程序。处理器模块还包括实现处理器功能的基本外围电路,包括复位电路、RTC实时时钟供电电路、操作系统的启动位置选择电路等。
2.2 存储器模块设计
要存储检测过程中采集的大量数据,应选取大容量非易失性存储设备,常用的有CF卡、记忆棒、SD卡、片上Flash等。由于SD卡应用最为广泛,且多数ARM内部集成MMC/SD控制器,系统选用SD卡作为数据存储设备。考虑机械结构限制,宜选用更小尺寸的micro SD卡,即TF卡作为存储设备。初步计算,检测器的数据量大约是86 500字节/s,选取容量为32 G的TF卡,可存储100 h的数据量,能够满足检测的存储需求,同时能为后期改变传感器的采样率提供充足的调整空间。为了保证数据的快速写入,选择速度等级为Class 10的TF卡,写入速度达10 Mb/s,读取速度至少为6 Mb/s。其设计原理如图3所示。
图3 TF卡电路原理图
2.3 供电模块管理
检测器的电源是保证检测顺利进行的关键。检测器内部空间狭小,可储备电池容量有限,设计中采用多块分散在球体内部不同位置的可充电锂电池并联,为系统供电。这种设计的突出优势在于实现检测器质量的平衡分布,保证球形检测器围绕某一轴滚动前进。电源模块将电池电压转换成各模块合适的工作电压,并能够实时监测电池电压状况,必要时可通过CPU控制或改变检测器的某些工作参数,或关闭某些功能,降低检测器的功耗,以实现长时间安全检测。
大容量的可充电锂电池选用松下NCR18650A,其容量为3.1 Ah,最大输出电流达10 A,额定电压3.7 V,充满后电压4.2 V,内部带保护电路,电压低于2.7 V自动断电。计划采用10节电池组成的电池组,总容量为31 Ah,检测器在检测过程中的功耗约518 mA,则理论上电池可供电续航60 h,满足检测需求。理论上的系统电力耗费的分配见图4。
3 软件设计
本设计中选用Linux作为软件开发的平台。软件设计的主要内容是在S3C6410上移植Linux操作系统,设计数据采集平台专用硬件设备的驱动,利用多线程编程方法,完成多传感器数据的同步采集与存储的应用程序开发。软件设计的基本架构见图5。
3.1 驱动程序设计
在操作系统环境下,用户程序不能直接操作硬件设备,需要使用设备驱动程序,完成初始化设备,交换数据等功能。由于球形内检测器使用的很多器件不是通用设备,原始Linux内核中不包含这些器件的驱动程序,因此在完成硬件平台的构建以及Linux操作系统的裁剪移植后,完成各器件的驱动程序是进行最终采集存储程序设计的基础。
需要设计驱动程序的器件包括磁信号的模数转换器AD7193、声音信号的模数转换器AD7651以及用于检测电池电压的处理器片上ADC。另外还需要修改内核中的USB Gadget驱动,以实现检测器通过USB协议向上位机传输数据的功能。
图4 系统电力耗费分配
图5 软件设计架构
3.2 应用程序设计
驱动成功加载后,应用程序就可以按照操作文件的方式,对设备进行读写等操作。应用程序实现的主要功能有系统的开机自检和运行过程中对多种信号的同步采集和存储。本方案采用多线程的编程方式,此方式可以采用共享变量的方式完成线程间通信,节省系统调用的开销,执行效率更高。应用程序方案的流程如图6所示。
应用程序主要包含四种不同功能的线程:主线程、自检及电量监测线程、各传感器线程、存储线程。
主线程在初始化环境变量后,创建其他线程,并一直查询系统的工作状态,控制指示灯的动作。
自检线程是除主线程之外最先开始执行的线程,会对电池的电量、工作电压以及各传感器的功能进行检查,自检结束后将自检结果以日志形式存储起来并发送给上位机的人机交互程序,自检线程可在检测器正式工作之前告知用户检测器内部功能正常,准备工作;也可在电量不足时提醒用户充电,或某个功能模块出现问题时提醒及时检修。自检结束后,该线程负责监测电池电压,可设置阈值与之比较,若电池电压低于阈值,则降低传感器采样率或者关闭某些功能以降低功耗。
在传感器线程中,每个传感器根据自身信号的采样率申请两个全局可见的缓冲区,交替使用,并利用缓冲使用标识符标记当前使用的缓冲区。传感器线程与存储线程共享缓冲区及使用标识符。存储线程中根据缓冲使用标识,以开始采集时间为文件名,将已满的缓冲区中的数据保存到相应的文件夹中。这种数据共享结构优势在于线程之间数据交换方便,资源开销小,存储线程可以快速访问、及时保存数据,有效地降低数据遗漏的可能。
在上述多线程并发程序设计中,所有线程都能够访问其中的全局变量,因此需要保证线程之间的同步,该系统使用互斥量实现对共享数据进行独占式访问。程序设计中所有线程在对工作状态、缓冲使用标识符和各传感器数据缓冲区等全局变量进行访问之前,必须获取相应的互斥量,由此实现数据保护、线程同步。
图6 应用程序流程图
4 结束语
针对海底管道微小泄漏检测,天津大学研制了管道球形内检测器。管道球形内检测器的核心设备是具有良好的稳定性与可扩展性的数据采集平台。本方案最终选取了Samsung公司基于ARM1176架构的S3C6410处理器,其主频高达800 MHz,并且片上集成了丰富的标准接口资源和功能模块控制器。为了保证数据的快速写入,选择速度等级为Class 10的TF卡,写入速度高达10 Mb/s,读取速度至少为6 Mb/s。采用10节可充电锂电池组成电池组,总容量为31 Ah,理论上可供电续航60 h,可满足检测需求。最后,给出了与硬件系统匹配的下位机软件设计方案。
[1]张剑波.水下结构物检测与维修技术概论[M].北京:石油工业出版社,2005.85-86.
[2]丰士昌.Linux指令与Shell编程范例速查手册[M].北京:科学出版社,2012.
OverallDesign ofSphericalInner Detector for TinyL eakage ofSubsea Pipeline
Chen Shili,Guo Shixu,Huang Xinjing,Zhao Jibo,Xu Tianshu
State Key Laboratory of Precision Measurement Technology and Instrument of Tianjin University,Tianjin 300072,China
For detecting tiny leakage of subsea pipeline,the overall design of the spherical inner detector is proposed,which includes three aspects:the overall platform solution,the hardware circuit design and the software design of lower computer.The overallsolution illustrates the role of each module and their connections.The hardware design includes selection of the processor and storage module,the management of the power supply module,etc.;the S3C6410 processor based on ARM1176 architecture produced by Samsung Co.,the TF card with a speed of Class 10 and the battery pack containing ten 3 100 mAh lithium batteries are chosen.The software design includes drive program and application program,the latter uses effective multi-threaded programming.
subsea pipeline;leakage;detection;sphericalinner detector;hardware design
天津市科技计划项目(10JCYBJC07100);中海油合作项目(G1317CS-B12C043)
10.3969/j.issn.1001-2206.2014.04.003
陈世利(1973-),男,湖北鄂州人,副教授,2003年毕业于天津大学测试技术及仪器专业,博士,现从事油气储运安全检测技术研究。
2014-01-17;
2014-03-24