伍儒彬,張雅楠,孫 濤,李宏宏,劉長遠
(1.昆侖數(shù)智科技有限責任公司,北京 100007;2.中國石油新疆油田公司 采油二廠,新疆維吾爾自治區(qū) 克拉瑪依 834011)
隨著人工智能、大數(shù)據(jù)、云計算等新技術和新概念的不斷涌現(xiàn),以及在各行業(yè)的成功應用案例,邊緣計算作為近十年提出的新技術和新概念,也不例外。邊緣計算技術在多個行業(yè)都有研究和應用。如李彬等提出的邊緣計算在電力領域的應用[1];李子姝等對邊緣計算在移動領域做了較為全面的綜述[2];在智能汽車領域,李智勇等對邊緣計算在汽車的關鍵任務計算進行了綜述。通過上述文獻可知,邊緣計算的主要目的是為了減輕數(shù)據(jù)中心或者控制中心的數(shù)據(jù)計算(或處理)負擔,讓具備一定計算能力的設備在現(xiàn)場對數(shù)據(jù)進行處理,將結(jié)果(或關鍵信息)傳輸?shù)娇刂浦行模詼p輕鏈路和控制中心的負擔。
在油氣田領域,隨著油田生產(chǎn)不斷向信息化、智能化發(fā)展,需要處理的數(shù)據(jù)和信息在不斷增加,對通信鏈路和控制中心的計算能力提出了極高的要求和挑戰(zhàn)。為減輕控制中心的計算和通信鏈路的通信負擔,本文以JETSONNANO為核心計算組件,提出并設計一種具備邊緣計算的控制器設備,使其具備邊緣計算功能,同時又具備現(xiàn)場邏輯控制功能。
當前,提供邊緣計算解決方案的主流廠商有英特爾、英偉達、華為、比特大陸等國內(nèi)外商業(yè)公司,根據(jù)其特點,本文將各廠商提供的解決方案或者平臺進行總結(jié),詳見表1。

表1 邊緣計算控制器簡要一覽表Table 1 Brief list of edge computing controllers
由表1可知,不同的廠商側(cè)重于不同的應用場景。英特爾提供的產(chǎn)品側(cè)重于移動邊緣計算;英偉達側(cè)重于單通道或雙通道模式的視頻采集初步計算;瑞芯微更偏重于全功能的現(xiàn)場應用;比特大陸的算力更高,能量消耗,適合大流量,高算力需求的應用場景。
根據(jù)業(yè)務特點并結(jié)合應用的需求,初步選定英偉達的JETSON NANO平臺進行研究和設計,該平臺具有以下功能:
1)四核ARM Cortex-A57
2)支持Linux操作系統(tǒng)
3)128-Core 英偉達MAXWELL GPU
4)4G 64-bit LPDDR
5)支持千兆以太網(wǎng)
6)支持HDMI&USB3.0
7)支持PCIe總線擴展功能
8)豐富的串口和SPI&IIC總線接口功能
根據(jù)油田應用需求以及升級改造需要,提出兩種解決方案。一是以人工智能處理為主要功能的解決方案,側(cè)重于現(xiàn)場智能計算和數(shù)據(jù)處理,具有以下基本功能:高速通信總線功能接口(千兆以太網(wǎng),HDMI,USB3.0)和低速通信總線接口(串口,CAN,無線通信等),具體實現(xiàn)架構可參考圖1。此方案主要應用于已有場站的信息化升級和改造工作,在原有的信息化基礎上,配備智能計算處理設備即可。第二種解決方案是以人工智能處理和現(xiàn)場工業(yè)控制于一體的邊緣控制器,該解決方案可以實現(xiàn)現(xiàn)場的智能計算(數(shù)據(jù)處理)與工業(yè)控制同步進行的功能,即不但是一個邊緣控制器,同時也具備RTU(遠程單元控制終端)的功能,其實現(xiàn)框架圖如圖2所示。智能計算部分由NANO核心板的資源進行計算和處理,而RTU控制器部分則由ARM核心資源進行命令控制和數(shù)據(jù)采集,兩者之間的通信可以根據(jù)業(yè)務需求通過以太網(wǎng)或者串口實現(xiàn),以實現(xiàn)數(shù)據(jù)傳遞和命令控制,其主從關系也可以通過軟件進行設定和控制,該解決方案可應用于新開發(fā)井口和場站的智能化建設。

圖1 智能計算設備硬件實現(xiàn)框架圖Fig.1 Framework diagram of hardware implementation of smart computing equipment

圖2 邊緣計算及遠程控制設備硬件實現(xiàn)框架圖Fig.2 Hardware implementation framework diagram of edge computing and remote control equipment
硬件設計的一些具體細節(jié)部分可參考文獻[4]和文獻[5]。針對NANO核心板的設計,需要注意以下設計要素:
1)HDMI顯示設計。標準的HDMI顯示,屬于高速總線類型,在設計時需要遵循對應的協(xié)議標準,項目對此功能進行分類,其信號可分為差分對信號、檢測保護信號、簡單通信信號、電源供電信號。
其中,差分對信號需要對應的交流電容進行信號耦合,并提供ESD保護;檢測信號需要與電源供電信號進行聯(lián)動處理;電源供電部分最好進行單獨處理。
2)USB設計與實現(xiàn)。NANO的USB設計部分分為3個層面,分別是USB2.0USB3.0USB下載專用接口。USB2.0與USB3.0需要注意端口供電的控制,即電流超出時,系統(tǒng)需要對外部端口供電進行斷電處理,不要影響系統(tǒng)其他功能的使用。USB3.0也有交流耦合電容,需要注意與ESD器件的連接處理,而USB內(nèi)部下載專用接口則需要注意電源準備好的PG信號告知核心板,否則該功能無法實現(xiàn)。
3)電平轉(zhuǎn)換設計與實現(xiàn)。因NANO核心板提供的IO接口或通信功能接口多數(shù)為1.8V,需要對端口電平進行必要的轉(zhuǎn)換才能使用,外部功能端口多數(shù)是3.3V TTL電平或5V TTL電平。采用TI公司SN74AVC4T245芯片進行實現(xiàn),具體如圖3所示。

圖3 電平高低轉(zhuǎn)換電路圖Fig.3 Circuit diagram of level high-low conversion
圖3中通過DIR的高低來實現(xiàn)數(shù)據(jù)流的傳輸方向,具體方向設計定義可參考對應的芯片手冊。
4)電源供電設計與實現(xiàn)。電源是整個產(chǎn)品成敗的關鍵,擬定電源功耗為15W,同時根據(jù)業(yè)務需要,可無縫切換到20W(電源模塊PIN腳兼容,只需要更換電源模塊即可);支持隔離功能,并對框架中的各級供電進行必要的分級處理設計,即5V,3.3V,1.8V,通過逐級降壓實現(xiàn)功能,24V轉(zhuǎn)換為5V,5V轉(zhuǎn)換為3.3V,3.3V轉(zhuǎn)換為1.8V,確保電壓整體的平穩(wěn)和參考地平面的一致性。
另外,核心板供電電路的核心要素是當核心板沒有連接在主板上,整個系統(tǒng)的電源不能工作,利用核心板提供的電源控制功能和系統(tǒng)復位信號來控制電源芯片的工作,確保整個硬件的供電穩(wěn)定性。
基于前文提出的兩個方案,均采用Linux系統(tǒng)進行軟件設計和實現(xiàn)。因方案二相對于方案一是一種包含關系,軟件設計側(cè)重于按方案二的硬件架構進行整體的設計和規(guī)劃。其設計可以通過兩種方式實現(xiàn),一種是基于英偉達官方提供的原生態(tài)系統(tǒng)(提供的也是Linux系統(tǒng))下進行修改和軟件功能實現(xiàn),其好處是開發(fā)周期較短,但弊端也顯而易見,需要按照其官方的文檔、架構和開發(fā)格式進行功能實現(xiàn)和設計;另一種是基于某個穩(wěn)定版本的Linux系統(tǒng)進行架構重整和軟件功能實現(xiàn),其好處是系統(tǒng)可以按照實現(xiàn)的功能進行架構重整,整個代碼量可控,設計無需遵循官方的格式和規(guī)范進行,不足之處是需要投入更多的時間和精力對底層驅(qū)動進行調(diào)試和實現(xiàn)。
邊緣控制器的軟件功能實現(xiàn)是指將硬件的功能端口通過對應的驅(qū)動或API應用映射到操作系統(tǒng)中,其簡要框架如圖4所示。軟件實現(xiàn)的主要工作在于協(xié)調(diào)應用接口,內(nèi)核接口以及LIB庫之間的調(diào)度、數(shù)據(jù)傳輸、命令下達傳遞工作。

圖4 軟件整體結(jié)構框架Fig.4 The overall structure of the software framework
英偉達官方提供了HDMI以及千兆網(wǎng)絡、USB功能為系統(tǒng)原生的驅(qū)動,不需要進行開發(fā),對系統(tǒng)進行裁剪和檢測信號功能處理即可,而ZIGBEE與485功能處理需要建立好對應的LIB文件及通信協(xié)議即可實現(xiàn)。
1)人工智能功能開發(fā)與實現(xiàn)
系統(tǒng)可采用Kubernetes、Nginx、postgres等大數(shù)據(jù)平臺和容器化技術,結(jié)合集群及數(shù)據(jù)庫技術,使用分布式技術對深度學習任務進行調(diào)度,同時可對算法、模型進行管理,并具有部署、分發(fā)、監(jiān)控等功能。
AI管理系統(tǒng)可提供可視化的AI訓練、業(yè)務應用開發(fā)、數(shù)據(jù)接入、算法管理等功能,同時提供展示界面,用于展示實時視頻和報警信息。
2)Docker功能
為便于現(xiàn)有已開發(fā)好的功能快速轉(zhuǎn)移到新平臺或新產(chǎn)品中,在NANO核心資源充足的情況下,可以加載Docker功能。Docker提供了簡單的建模方式以及邏輯上的分離,可以做到單個容器運行單個應用,如此可節(jié)省軟件的開發(fā)周期。
當NANO核心處理器資源足夠,又需要將原來開發(fā)的應用移植到NANO邊緣計算設備中,此時采用Docker為最佳選擇,其實現(xiàn)過程如下:
第一步:Docker安裝。
第二步:確定主從關系(即客戶端和服務器)。
第三步:確定依賴關系,掛載點,優(yōu)先級,資源度量等參數(shù)。
第四步:啟動Docker,并進行相關應用掛載。
3)處理器之間的協(xié)同處理
當NANO處理器與ARM處理器存在協(xié)同處理時,需要確定一個主從關系。確定主從關系的原則是:智能計算為主要任務的時候,由NANO處理器作為主處理器,ARM處理器為協(xié)助處理器;而現(xiàn)場控制為主要任務的時候,由ARM處理器作為主處理器,NANO處理器為協(xié)助處理器。其協(xié)同處理過程如下:
第一步:啟動協(xié)同處理。
第二步:確定主處理器與協(xié)助處理器。
第三步:開啟協(xié)同處理程序。
第四步:開啟心跳互相監(jiān)控程序。
第五步:是否結(jié)束協(xié)同處理,是,跳轉(zhuǎn)第六步;否,繼續(xù)現(xiàn)有程序和進程。
第六步:結(jié)束協(xié)同處理,結(jié)束相關程序和進程。
基于本文提出的解決方案而實現(xiàn)的邊緣計算控制器在油田現(xiàn)場已成功應用,其基本目標也得到實現(xiàn),減少數(shù)據(jù)中心或中央控制中心計算負擔,減輕通信鏈路的數(shù)據(jù)傳輸負擔效果得以體現(xiàn),為未來的應用場景提供了硬件基礎和技術積累。下一步,基于人工智能技術在油田的應用還有待繼續(xù)研究和挖掘。一是智慧化程度的功能提升,比如產(chǎn)量預估、自然災害預警等;二是智能算法的魯棒性有待繼續(xù)提高,智能算法對不同區(qū)域不同場景的應用需要進行重新調(diào)整和布置。