陳世利,郭世旭,黃新敬,趙吉波,徐天舒
天津大學精密測試技術及儀器國家重點實驗室,天津300072
海底管道微小泄漏球形內檢測器整體設計
陳世利,郭世旭,黃新敬,趙吉波,徐天舒
天津大學精密測試技術及儀器國家重點實驗室,天津300072
針對海底管道微小泄漏檢測,提出管道球形內檢測器整體設計方案。文章從整體平臺方案、硬件電路設計以及下位機軟件設計三方面介紹了球形內檢測器的整體結構。整體平臺方案闡述了各模塊的作用及相互之間的關聯(lián)。硬件電路設計包括處理器的選取、存儲模塊的選取與設計和電源模塊管理等;方案最終選用Samsung公司基于ARM1176架構的S3C6410處理器,速度等級為Class 10的TF卡,采用10節(jié)電池總容量為31 Ah組成的電池組。軟件設計包括驅動程序及應用程序的設計,其中后者采用了高效的多線程編程方式。
海底管道;泄漏;檢測;球形內檢測器;硬件設計
管道輸送是海洋油氣運輸的最有效、最安全的輸送方式,定期對其進行檢查和安全評估,及時發(fā)現因腐蝕、老化、裂紋、變形引起的微小泄漏,盡早采取補救措施是消除管道運行潛在安全隱患的有效手段。
針對海底管道微小泄漏檢測,天津大學精密測試技術及儀器國家重點實驗室研制了管道球形內檢測器:法蘭式密封球殼內裝載水聽器、慣導模塊、磁傳感器、電路板和電源模塊等,隨管內液體一起流動,沿途可采集管內泄漏聲音信息、自身運動信息和管內磁場信息等,本文主要介紹其核心設備數據采集平臺的硬件設計以及與硬件系統(tǒng)匹配的下位機軟件設計方案。
圖1所示為數據采集平臺的總體結構框圖,硬件電路部分主要包括:處理器模塊、存儲器模塊、電源模塊、各傳感器的信號調理及模數轉換模塊、交互接口模塊。
數據采集平臺以處理器模塊為核心,操控系統(tǒng)自檢、各傳感器數據采集和存儲、電源管理、數據傳輸、檢測器與外界通信等任務。各傳感器采集相應的信號,經過調理電路的處理再經過模數轉換為數字量,通過一定的通信協(xié)議傳給處理器,最后存儲在大容量TF卡中。通過與外界的交互接口模塊,可在檢測器取出后利用USB協(xié)議將TF卡中存儲的數據傳輸給PC進行后續(xù)的分析處理;檢測器還可通過串口與上位機進行通訊,方便進行人機交互;檢測器的電池充電等功能也能通過此接口實現。鋰電池組為整個平臺供電,電源模塊用于電源管理以滿足平臺多種設備不同的供電需求。
在軟件設計方面,數據采集平臺在處理器上移植嵌入式Linux操作系統(tǒng),作為下位機軟件的開發(fā)運行環(huán)境,進行內存管理與任務調度。在操作系統(tǒng)環(huán)境下,采用多線程設計方法,同步采集加姿態(tài)導航模塊、磁力計、聲音傳感器數據,并將數據實時寫入TF卡內。軟件設計內容還包括Linux內核的裁剪和移植、多種電子器件的驅動程序開發(fā)、將整個數據采集平臺虛擬成U盤等。
圖1 數據采集平臺的總體結構框圖
2.1 處理器模塊設計
處理器模塊由CPU芯片、內存、閃存、晶振和一些基本外圍電路組成,其結構框圖見圖2。
處理器的選擇主要考慮以下幾個因素:檢測方案的需求、數據采集平臺的可靠性、穩(wěn)定性、功耗、外觀以及后期的升級和維護。
小型儀器設備常用的處理器有單片機、DSP、ARM和FPGA四類。在以上四類處理器中,單片機雖然功耗低、可靠性高、開發(fā)容易,但數據處理能力和多任務的同步性較差;DSP具有強大數據處理能力和很高的運行速度,但是需要配備很多外圍模塊;ARM與FPGA可以便捷可靠地實現檢測系統(tǒng)同步、快速地采集多傳感器數據,但相對而言FPGA功耗高、體積大。因此,采用ARM作為核心處理器,ARM具有強大的事務處理功能,可以配合嵌入式操作系統(tǒng)使用,使用操作系統(tǒng)最大的優(yōu)勢是并發(fā)處理大量數據,管理內存,進行多任務調度,契合本檢測器數據采集平臺的需求。
圖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接口(接收和發(fā)送都有64字節(jié)的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,片上收發(fā)器)和USB1.1主設備全速(12 Mbps,片上收發(fā)器);
MMC控制器,支持高速MMC/SD;
RTC實時時鐘,看門狗定時器。
以上資源使得處理器只需很少的外圍電路就能滿足使用需求。
內存選用三星K4X1G163OE DDR333芯片,由2塊芯片組成256 MB 32位帶寬的SDRAM,其外頻可達333 MHz,能夠完全滿足檢測過程中的數據緩存、運算和處理需求。程序存儲器選擇三星標配的256 MB NAND Flash,用以存儲Linux系統(tǒng)文件以及應用程序。處理器模塊還包括實現處理器功能的基本外圍電路,包括復位電路、RTC實時時鐘供電電路、操作系統(tǒng)的啟動位置選擇電路等。
2.2 存儲器模塊設計
要存儲檢測過程中采集的大量數據,應選取大容量非易失性存儲設備,常用的有CF卡、記憶棒、SD卡、片上Flash等。由于SD卡應用最為廣泛,且多數ARM內部集成MMC/SD控制器,系統(tǒng)選用SD卡作為數據存儲設備??紤]機械結構限制,宜選用更小尺寸的micro SD卡,即TF卡作為存儲設備。初步計算,檢測器的數據量大約是86 500字節(jié)/s,選取容量為32 G的TF卡,可存儲100 h的數據量,能夠滿足檢測的存儲需求,同時能為后期改變傳感器的采樣率提供充足的調整空間。為了保證數據的快速寫入,選擇速度等級為Class 10的TF卡,寫入速度達10 Mb/s,讀取速度至少為6 Mb/s。其設計原理如圖3所示。
圖3 TF卡電路原理圖
2.3 供電模塊管理
檢測器的電源是保證檢測順利進行的關鍵。檢測器內部空間狹小,可儲備電池容量有限,設計中采用多塊分散在球體內部不同位置的可充電鋰電池并聯(lián),為系統(tǒng)供電。這種設計的突出優(yōu)勢在于實現檢測器質量的平衡分布,保證球形檢測器圍繞某一軸滾動前進。電源模塊將電池電壓轉換成各模塊合適的工作電壓,并能夠實時監(jiān)測電池電壓狀況,必要時可通過CPU控制或改變檢測器的某些工作參數,或關閉某些功能,降低檢測器的功耗,以實現長時間安全檢測。
大容量的可充電鋰電池選用松下NCR18650A,其容量為3.1 Ah,最大輸出電流達10 A,額定電壓3.7 V,充滿后電壓4.2 V,內部帶保護電路,電壓低于2.7 V自動斷電。計劃采用10節(jié)電池組成的電池組,總容量為31 Ah,檢測器在檢測過程中的功耗約518 mA,則理論上電池可供電續(xù)航60 h,滿足檢測需求。理論上的系統(tǒng)電力耗費的分配見圖4。
本設計中選用Linux作為軟件開發(fā)的平臺。軟件設計的主要內容是在S3C6410上移植Linux操作系統(tǒng),設計數據采集平臺專用硬件設備的驅動,利用多線程編程方法,完成多傳感器數據的同步采集與存儲的應用程序開發(fā)。軟件設計的基本架構見圖5。
3.1 驅動程序設計
在操作系統(tǒng)環(huán)境下,用戶程序不能直接操作硬件設備,需要使用設備驅動程序,完成初始化設備,交換數據等功能。由于球形內檢測器使用的很多器件不是通用設備,原始Linux內核中不包含這些器件的驅動程序,因此在完成硬件平臺的構建以及Linux操作系統(tǒng)的裁剪移植后,完成各器件的驅動程序是進行最終采集存儲程序設計的基礎。
需要設計驅動程序的器件包括磁信號的模數轉換器AD7193、聲音信號的模數轉換器AD7651以及用于檢測電池電壓的處理器片上ADC。另外還需要修改內核中的USB Gadget驅動,以實現檢測器通過USB協(xié)議向上位機傳輸數據的功能。
圖4 系統(tǒng)電力耗費分配
圖5 軟件設計架構
3.2 應用程序設計
驅動成功加載后,應用程序就可以按照操作文件的方式,對設備進行讀寫等操作。應用程序實現的主要功能有系統(tǒng)的開機自檢和運行過程中對多種信號的同步采集和存儲。本方案采用多線程的編程方式,此方式可以采用共享變量的方式完成線程間通信,節(jié)省系統(tǒng)調用的開銷,執(zhí)行效率更高。應用程序方案的流程如圖6所示。
應用程序主要包含四種不同功能的線程:主線程、自檢及電量監(jiān)測線程、各傳感器線程、存儲線程。
主線程在初始化環(huán)境變量后,創(chuàng)建其他線程,并一直查詢系統(tǒng)的工作狀態(tài),控制指示燈的動作。
自檢線程是除主線程之外最先開始執(zhí)行的線程,會對電池的電量、工作電壓以及各傳感器的功能進行檢查,自檢結束后將自檢結果以日志形式存儲起來并發(fā)送給上位機的人機交互程序,自檢線程可在檢測器正式工作之前告知用戶檢測器內部功能正常,準備工作;也可在電量不足時提醒用戶充電,或某個功能模塊出現問題時提醒及時檢修。自檢結束后,該線程負責監(jiān)測電池電壓,可設置閾值與之比較,若電池電壓低于閾值,則降低傳感器采樣率或者關閉某些功能以降低功耗。
在傳感器線程中,每個傳感器根據自身信號的采樣率申請兩個全局可見的緩沖區(qū),交替使用,并利用緩沖使用標識符標記當前使用的緩沖區(qū)。傳感器線程與存儲線程共享緩沖區(qū)及使用標識符。存儲線程中根據緩沖使用標識,以開始采集時間為文件名,將已滿的緩沖區(qū)中的數據保存到相應的文件夾中。這種數據共享結構優(yōu)勢在于線程之間數據交換方便,資源開銷小,存儲線程可以快速訪問、及時保存數據,有效地降低數據遺漏的可能。
在上述多線程并發(fā)程序設計中,所有線程都能夠訪問其中的全局變量,因此需要保證線程之間的同步,該系統(tǒng)使用互斥量實現對共享數據進行獨占式訪問。程序設計中所有線程在對工作狀態(tài)、緩沖使用標識符和各傳感器數據緩沖區(qū)等全局變量進行訪問之前,必須獲取相應的互斥量,由此實現數據保護、線程同步。
圖6 應用程序流程圖
針對海底管道微小泄漏檢測,天津大學研制了管道球形內檢測器。管道球形內檢測器的核心設備是具有良好的穩(wěn)定性與可擴展性的數據采集平臺。本方案最終選取了Samsung公司基于ARM1176架構的S3C6410處理器,其主頻高達800 MHz,并且片上集成了豐富的標準接口資源和功能模塊控制器。為了保證數據的快速寫入,選擇速度等級為Class 10的TF卡,寫入速度高達10 Mb/s,讀取速度至少為6 Mb/s。采用10節(jié)可充電鋰電池組成電池組,總容量為31 Ah,理論上可供電續(xù)航60 h,可滿足檢測需求。最后,給出了與硬件系統(tǒng)匹配的下位機軟件設計方案。
[1]張劍波.水下結構物檢測與維修技術概論[M].北京:石油工業(yè)出版社,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年畢業(yè)于天津大學測試技術及儀器專業(yè),博士,現從事油氣儲運安全檢測技術研究。
2014-01-17;
2014-03-24