劉 棟, 鞠曉東, 盧俊強, 門百永, 余志軍
(1.中國石油大學(北京) 油氣資源與探測國家重點實驗室,北京 102249; 2.北京市地球探測與信息技術重點實驗室,北京 102249 )
隨著石油測井行業的發展,測井儀器的結構愈加陣列化和復雜化,它具有探頭精密、數量多,以及內部空間狹小、電路復雜特點。這增加了儀器調試、檢修的難度和復雜度,因此需要借助于專業的設備以提高儀器制造和維修的效率。這種設備稱之為調試臺架[1]。為了保證儀器單元(短節)在調試或者維修時處于安全的供電環境,調試臺架不僅需要對外低壓供電,而且需要對各電源的輸出進行監測和控制。目前國內外各大油服公司調試臺架并沒有專門針對低壓供電的監測模塊,大多是監測220 V供電電壓電流。針對此問題,本文設計了用于各種儀器單元(短節)的系列低壓供電接口,通過采用實驗室臺架系統ARM7+μClinux平臺[2-5],實現所有供電能夠通過上位機軟件設定保護限制值,并提供實時的電壓、電流顯示,為高性能的測井儀器調試臺架的研發提供支持。
圖1為系統采用上位機+嵌入式前端機的主從式架構。系統整體結構主要分為電源管理板、嵌入式前端機和上位機軟件3個部分。上位機通過以太網與嵌入式前端機互聯,超級終端用于前端機軟件的前期調試;基于ARM7+μClinux嵌入式架構的前端機與電源管理板以積木式結構堆疊,通過并行擴展I/O總線實現了ARM+FPGA形式的嵌入式網關服務器[5];電源管理板采用FPGA+MCU(單片機)的分布式采集控制系統,完成電源供給模塊輸入的各路電源電壓、電流的采集工作并控制各路電源的輸出。當上位機通過以太網給網關服務器下發命令,前端機會對指令進行解析,然后通過FPGA利用串口下發到MCU,MCU收到命令后開始工作,并將電源采集數據返回給FPGA,前端機從FPGA讀取數據后,封裝成以太幀格式發送給上位機。電源模塊作為調試臺架對外供電接口,也是本系統的監測對象。根據儀器功率需求,設計6路低壓電源,電壓和電流分別為1.2 V/0.5 A、1.8 V/0.5 A、3.3 V/1 A、5 V/0.5 A和±6 V/1 A,用于各種調試儀器單元(短節)。電源管理板是本系統功能板,主要完成各路電源監測和控制任務。該模塊主要由電源輸入輸出接口、采樣濾波電路、STM32單片機采集控制和FPGA主控4個部分組成。上位機軟件是系統人機交互界面,可進行各路電源的電壓、電流限定值設置,也可直觀地顯示各路電源電壓、電流值及其變化的曲線。核心板卡通過10 Mbit/s網絡與主機連接,主機可以實時發送控制命令到前端機,同時前端機能夠快速上傳數據到主機。嵌入式前端機軟件由3個部分組成,引導程序BootLoader、操作系統和特定功能的應用程序。引導程序BootLoader類似于電腦的BIOS程序,用于引導操作系統內核啟動。采用μClinux作為前端機ARM的操作系統,它作為微控制器領域中的Linux系統,是專門針對S3C44B0X此類處理器而設計的,而且沿襲了Linux包括TCP/IP協議在內的絕大部分特性。

圖1 系統整體結構
為了實現同時對多路電源進行監測,電源管理板需要同時采集各路電源的電壓、電流值,并實時上傳到上位機。當其中一路電源出現異常情況時,為了不損壞儀器設備,必須能同時切斷所有電源輸出,并能記錄異常電源情況,及時上傳給上位機報警。實際調試時可能存在某路電源的電流值為十幾毫安或者更小的情況,為了盡可能準確地測量電流值,需要提高A/D的轉換精度。針對此問題,提出FPGA+6路STM32單片機的采樣控制系統的方案,該方案主要由電源輸入輸出接口、采樣濾波電路、STM32單片機電路和FPGA電路組成,其中STM32 單片機集成了16位A/D轉換器[6],其結構框圖如圖2所示。

圖2 電源管理板硬件結構框圖
FPGA通過擴展I/O總線接收嵌入式前端機下發的命令并解析命令參數,解析完后通過串口向各路STM32單片機發送啟動采集命令和各路的電壓、電流限定值,各路單片機接收到啟動信號后開始進行A/D采集,采集數據處理之后通過串口回傳給FPGA主控芯片,FPGA將其打包,并以協議幀形式通過擴展I/O口總線回傳給嵌入式前端機。各路單片機在每次采集完數據后先將采集的數據與該路的電壓、電流限定值做比較:若有一路超出,則通過中斷信號通知FPGA同時切斷各路輸出電壓;若沒有超出,則繼續采集,每10次求一個平均值,然后將該平均值回傳給FPGA。這可以在保證監測電壓電流精確的情況下,減少系統通信次數。
采樣濾波電路為A/D采集電路的前置電路,主要完成電壓、電流值采樣和線路上噪聲的濾除任務。電壓采樣電路由軌對軌運放AD8606與其進行參數匹配的電阻和電容構成;電流采樣電路由高壓、高分辨率零漂移電流檢測放大器AD8418與其進行參數匹配的電阻和電容構成;濾波電路則由AD8606為核心部件搭建的二階sallen-key濾波器構成。
采集電路由STM32F373CC單片機及外圍器件構成,主要涉及到單片機中SDADC1、SDADC2和 USART1(通用同步/異步收發器)3個外設資源。其工作流程如下:USART1接收FPGA下傳的命令,控制SDADC1和SDADC2分別采集電流和電壓,SDADC1/2采集完數據后進行處理,并將處理后的結果賦給USART1發送到FPGA,與此同時,根據處理結果決定是否產生中斷信號送入FPGA。SDADC是高性能、低功耗Σ-Δ型模數轉換器,具有16位分辨率。每個SDADC單通道采樣時轉換速率高達50 kS/s,在多通道采樣時轉換速率高達16.6 kS/s,可自動掃描各通道,轉換值可自動存入系統RAM中。SDADC與雙積分型A/D轉換器相比,具有較高的轉換速度和與后者相近的串模干擾抑制能力,與逐次逼近型A/D相比,具有比較高的分辨率、線性度和信噪比,而且不需要保持電路。SDADC結合這兩種A/D轉換器的優點,并彌補了它們的一些不足。本文選擇16位SDADC完成電壓、電流采集工作。為防止6路采集電路之間相互干擾,FPGA與STM32單片機之間通信線路上加了HCPL0600光電耦合隔離模塊。
網絡數據通信是上位機與下位機數據通信的樞紐,是上位機軟件設計中的重點。Windows操作系統提供多種網絡I/O模型,如選擇模型、重疊I/O模型、完成端口模型等,采用完成端口模型。完成端口模型是C/S模式中性能最好的網絡通信模型,它充分利用Windows內核進行I/O調度,只需少量的線程就能處理客戶端的所有通信,減小了無謂的上下文切換損耗,極大地提高了網絡通信性能。相對于其他通信方式,該通信方式具有占用CPU資源小、執行效率高等優點[7]。上位機(服務器端)先通過API調用WSAStartup()創建套接字,設置本地IP地址和網絡連接端口,并將其綁定到已創建的套接字,隨后將套接字置于監聽狀態,最后調用accept()獲取連接。前端機(客戶端)先初始化套接字,設置好服務器的IP地址和連接端口,然后連接服務器。上位機與前端機連接成功后,就可以用send()和recv()發送和接收數據。
上位機軟件是人機交互的工具,用戶通過它可以方便地控制電源監測系統工作,同時,也可以直觀了解系統的工作狀態,簡潔又高效。根據電源監測系統的功能需求,它應具有如下功能模塊:① 參數設置模塊; ② 數據顯示模塊;③ 狀態顯示模塊;④ 文件存儲模塊;⑤ 文件回放模塊;⑥ 軟件幫助模塊。其中參數設置模塊可選擇對哪幾路電源進行監測,并能設置各路電源的電壓和電流限定值。
圖3為上位機軟件系統的架構示意圖,分為3個層次,從下到上分別為驅動傳輸層、系統內核層和應用層。驅動傳輸層主要使用到網絡通信模塊,該模塊基于TCP/IP協議,通過它能實現與前端機的網絡通信任務。系統內核層主要涉及到消息驅動機制和多線程模塊,消息驅動機制為上位機軟件各功能模塊提供消息調度,多線程模塊主要用于完成端口模型設計和文件存儲模塊中。應用層則是實現各個功能模塊,主要包括各路電源參數設置、采集數據顯示和監測狀態顯示等模塊。

圖3 上位機軟件的架構示意圖
① 參數設置模塊:參數設置模塊在軟件界面的右側,由6路電源組成,可分別設置電源電壓限定的上限值、下限值和電流上限值。
② 數據顯示模塊:數據顯示模塊由6路電源顯示組成,每路電源顯示又分為電壓和電流兩部分。
③ 文件存儲模塊:當電源監測系統工作時,可以保存采集數據值用于后續分析。
④ 文件回放模塊:當系統監測完之后,可利用文件回放功能回放采集數據。
⑤ 狀態顯示模塊:狀態顯示模塊有正常和異常兩種狀態,異常狀態時,儀器供電不正常,此時FPGA就會切斷儀器所有供電電源。
上位機界面如圖4所示。同時圖4也是實際測試結果圖。
利用ARM7+μClinux平臺進行系統調試。上位機和嵌入式前端機通過以太網相連,嵌入式前端機與電源管理板以積木式結構相連,低壓電源板向電源管理板輸入待測電源。
以5 V電源為例,電源管理板電源輸出儀器負載。在上位機軟件上設置5 V電壓上限值為5100 mV,下限值為4900 mV,電流限定值為500 mA,單擊“開始”按鈕并保存測試數據,最終監測結果如圖4所示。

圖4 上位機軟件界面
從圖4中可以看出,電壓、電流顯示模塊Y軸坐標值范圍與輸入的限定值相關;5 V電壓、電流曲線比較平穩,兩者均在限定值范圍內,監測狀態正常,綠燈亮。
本文基于ARM7+μClinux的嵌入式架構設計了一種低壓電源管理模塊,主要采用FPGA+STM32單片機分布式采集控制系統實現對各電源的電壓和電流的采集以及輸出的通斷控制。該電源管理方案可對測井儀器的低壓供電電源進行監測,有效地防止因低壓電源不穩定而造成的儀器和調試系統的損壞,為儀器的調試和維修提供安全的供電環境。