魏學良,李卓然,于聰智
(中國石油大學(北京)地球物理與信息工程學院 北京 102249)
智慧油田中嵌入式RTU應用設計
魏學良,李卓然,于聰智
(中國石油大學(北京)地球物理與信息工程學院 北京102249)
在現今油田進行智能化、數字化技術改造的背景下,本文通過運用嵌入式技術和網絡通信技術并通過在實驗室及油田現場進行實物實驗,提出了嵌入式技術的RTU系統總體設計方案,包含硬件支撐平臺設計和軟件設計。硬件支撐平臺以三星公司的S3C2440的arm為核心處理器并外接功能接口芯片;嵌入式Linux多任務操作系統作為系統軟件平臺并在此系統平臺上開發應用程序,實現嵌入式RTU的設計。目前該系統原型機已經實現,通過現場實驗表明,本系統性能穩定,各項指標均達到要求。
RTU;ZigBee;物聯網;嵌入式
智慧油田建設是依托物聯網應用系統、結合智能巡檢和自動感知、數據融合技術基礎上,探索建立組織運維、層級簡化的現代油田管理新模式,以實現油田管理系統可靠、優質、高效運行。系統包含3個層次的內容:感知層、傳輸層、應用層。
其中:感知層:主要包括油田現場應用的各類傳感器和攝像探頭等,例如溫度、壓力、載荷、流量傳感器等儀表設備,通過這些設備采集油田現場數據,通過攝像探頭捕捉現場視頻信息,通過傳輸層的RTU將數據直接傳到控制中心;
應用層主要是油田專業軟件平臺,它主要是根據采集數據和數據庫歷史數據對油水井工況進行綜合分析優化。
數據傳輸層:是連接應用層和感知層的關鍵環節。由傳輸網絡和支持網絡的數據采集傳輸終端(RTU)構成。
根據油田現場工作需求,傳輸層中的RTU(數據傳輸終端)主要具備如下功能:
1)支持多接口傳感器接入功能:
①ZIGBEE無線儀表接入,溫度、壓力、電量、功圖采集等儀表通過ZIGBEE無線方式接入網關與網關通訊。
②RS485有線儀表,RS485作為備用有線儀表接入口,用于車間內有線儀表與網關通訊。
③USB攝像頭接入,視頻監控采用了中微星星光攝像頭,該攝像頭以USB方式接入網關。
2)協議轉換與數據管理
傳感器數據以ZIGBEE協議、RS485協議、USB協議接入RTU,把底層的數據進行標準化統一封裝、確保不同的傳感器網絡協議可以轉換成統一的命令或數據;并把頂層向下發送的數據壓縮包解碼為傳感器子網協議可辨識的命令[1]。
3)RTU具有儀表數據進行備份功能。
設計中的基于嵌入式RTU主要實現包括高速的數據通訊、油井現場視頻監控、現場無線儀表信息采集(溫度、壓力、電量、功圖等數據)和抽油機控制等功能。
考慮到物聯網網關的復雜功能和對硬件平臺處理速度需求,硬件平臺的核心處理器選用了三星的 S3C2440 (ARM920T)32位處理器[2]。考慮到網關系統的后期可擴展和升級維護成本,硬件設計上根據功能進行了模塊劃分,分成以下幾個功能模塊分別實現,如圖1所示。

圖1 RTU系統硬件結構框架Fig.1 The hardware architecture of RTU system
1)核心處理器模塊,負責對整個系統的資源進行調度,對網關上行、下行的數據進行解析處理并對上下兩層的協議進行轉換。本設計采用三星的S3C2440(ARM920T核)處理器,核心處理器上運行物聯網網關嵌入式Linux系統和網關應用服務程序,完成網關的各項服務和管理功能,例如,包括數據接收、協議查詢、協議部署和協議轉換等功能。
2)傳感器接入模塊可以允許接入多種類型的傳感器,目的在于保證網關接入節點的兼容性。可接入模塊類型,如ZIGBEE模塊、RS485模塊和USB攝像頭等。
3)TCP/IP網絡模塊和3G網絡模塊的功能是實現網關與互聯網公共網絡Internet的網絡通信。網關通過網絡模塊將傳感器子網數據(包括無線儀表數據和USB攝像頭視頻數據)通過Ethernet或者3G網絡發送到井場中心控制室,便于油田監控人員實時了解油井現場各個儀表的數據和現場周圍環境狀況。
4)存儲模塊主要包括非易失介質NANDFLASH和易失介質SDRAM兩種存儲設備。NANDFLASH作為非易失性設備,掉電信息不丟,主要用來存儲操作系統引導程Bootloader、Linux內核和根文件系統。SDRAM作為高速隨機訪問存儲(RAM)單元,提供給網關嵌入式Linux操作系統和網關服務程序運行所需的內存空間[3]。
RTU硬件平臺搭好之后,必須通過移植操作系統內核和根文件系統給網關系統注入了靈魂。根據油田現場對RTU系統處理速度、實時性、可靠性都有很高的要求,嵌入式操作系統選定嵌入式Linux2.6.32作為物聯網網關軟件平臺操作系統。本設計的物聯網網關軟件平臺架構設計如圖2所示。
在RTU硬件平臺上搭建基于嵌入式Linux的軟件平臺及在平臺上設計應用程序。具體包括啟動程序和內核的分析與移植、設計根文件系統和驅動程序開發環節。
在啟動階段,從文件結構歸納出Linux與處理器相關的一套接口文件,實現嵌入式內核初始化,保證Linux在不同平臺上的移植;根文件是Linux系統不可缺少的組件,是系統內核與應用程序之間的橋梁。在Linux內核初始化完成后,完成根文件系統的掛載,系統通過根文件系統中的啟動腳本和其他配置腳本文件完成應用程序的初始化。

圖2 嵌入式物聯網網關軟件架構Fig.2 Embedded IOT gateway software structure
在設備驅動階段,開發兼容IPV6/IPV4的網絡硬件設備驅動程序、開發CAN總線、RS485總線驅動程序、基于FLASH ROM及SD卡等存儲設備的應用程序設計。基于嵌入式技術RTU設計中,根據實際功能,系統所需要的硬件設備驅動如下:EM770W模塊的USB驅動、ZigBee模塊的串口驅動、USB攝像頭驅動和網卡DM9000驅動等。如下以3G模塊USB驅動程序為例。
1)實際的Linux內核下USB相關配置:

配置完畢后,選擇EXIT并保存配置信息。然后在宿主Ubuntu下輸入make zImage命令對內核進行編譯并等待內核編譯完成。編譯生成的zImage文件在內核源代碼目錄arch/ arm/boot目錄下。
2)USB接口的3G模塊EM770W是通過USB轉串口方式驅動的。在前面Linux內核選項配置USB設備驅動的時候,已經選擇了對USB轉串口支持(USB Serial Convertersupport)。
3)網關系統啟動后,將USB 3G網卡插入網關USB主機接口,調試終端打印信息如下所示:


可以看出,3G網卡設備驅動已成功加載,設備廠商號是0x12d1,產品號是 0x1404,設備名稱是 HUAWEI MOBILE WCDMA EM770W。另外,設備驅動將該3G網卡映射為ttyUSB0-ttyUSB5共6個ttyUSB類型的設備,其中ttyUSB0是3G網卡控制所用到的主要設備。
通過移植操作系統內核和根文件系統給網關系統注入了靈魂。但僅此而已。要想實現物聯網網關各種復雜的功能需求,最終離不開系統應用程序。
考慮到軟件系統結構和層次,本系統設計根據RTU功能劃分為以下4個部分:主線程、網絡通信線程、視頻采集通信線程、ZigBee通信線程。
4.1Main線程設計流程
主線程main負責系統初始化,創建進程任務線程,獲取視頻采集數據、檢測儀表狀態,更新壓力、溫度、功圖和電量儀表數據到Modbus寄存器內,供modbus_tcp_task線程讀取,反饋給上位機客戶端。Main線程流程如圖3所示。
4.2網絡通信線程
網絡通信線程主要是針對儀表數據和攝像頭視頻數據的傳輸而創建的。因為視頻數據量大,對數據實時性要求高,可對靠性要求低;而傳感器節點數據量小,對傳輸實時性要求高,可對靠性要求高。基于這3點不同,將這兩種不通的數據通信用兩個獨立的線程video_tcp_task和modbus_tcp_task來實現數據傳輸。視頻數據通過普通tcp協議傳輸,zigbee傳感器數通過modbus tcp協議傳輸。modbus_tcp_task線程

圖3 主線程流程圖Fig.3 Flow chart of main thread
該線程負責上位機modbus命令解析和應答。解析和應答通過調用make_modbus_ack函數實現:
tx_num=make_modbus_ack(rx_buf,tx_buf,rx_num);make_modbus_ack調用modbus_data函數讀取相應寄存器的值(即壓力和溫度值),并形成應答幀。
u_shortmodbus_data(u_char*command_buf,u_char *ack_buf)
應答幀指針為*ack_buf,數據長度為tx_num。最后調用send(events[i].data.fd,tx_buf,tx_num,0)完成應答。
4.3視頻監控線程
視頻監控線程主要完成攝像頭設備初始化,創建socket傳輸,解析網絡命令,完成視頻采集和傳輸。其中視頻采集是整個過程最主要的部分,在Linux下進行視頻采集,都是通過調用Video4Linux(簡稱V4L)的API函數實現采集攝像頭視頻數據的。
V4L(Video4Linux)是Linux內核中視頻設備的驅動模型,它為視頻設備的應用程序開發提供了一套應用接口函數[4]。對于USB攝像頭設備,驅動程序提供基本的設備操作函數open()、read()、write()、close(),內存映射函數mmap()及I/O通道的控制接口函數ioct1(),內核驅動將這些接口指針定義在結構體structfile_perations{}中。當應用程序對設備文件進行open()等系統調用操作時,Linux系統將通過file_operations結構調用內核驅動程序中相應的函數。
Linux V4L視頻應用程序開發常用的數據結構有以下幾個[5]:
1)video_capability:視頻設備基本信息,如設備名稱、最大最小分辨率、信號源信息等。
2)video_picture:視頻設備采集的圖象屬性:如灰度、對比度、亮度等。
3)videochannel:信號源屬性:如信號源編號、名字、制式等。
4)video_window:結構體capturearea的信息,如x,y的坐標等。
5)video_mbuf:mmap()函數映射的幀信息。如圖像幀大小,支持幀數和每一幀相對基址的偏移。
6)video_mmap:圖像內存映射函數。
另外,利用V4L對USB攝像頭的編程需要用到Linux下兩個系統調用,分別是ioctl()調用和mmap()調用。
ioctl(input/outputcontrol)是設備驅動程序中對設備的I/O通道進行管理的函數,所謂對I/O通道進行管理,就是對設備的一些特性進行控制,例如串口的傳輸波特率、圖像的設置屬性等等。它的形式是:int ioctl(intfd,indemd,…);其中fd就是用戶程序打開設備時使用open函數返回的文件描述符,cmd就是用戶程序對設備的控制命令,至于后面的省略號,那是一些補充參數,一般最多一個,有或沒有是和cmd的意義相關的。由此可見ioclt系統調用的功能是通過打開的文件描述符對各種文件尤其是字符設備文件進行控制,完成特定的I/O操作。V4L支持的ioctl命令大概有二十幾個,在應用中主要用的命令如下所示:
Ioctl(fd,VIDIOCGCAP,&capability):獲取設備基本信息
Ioctl(fd,VIDIOCSPIC,&picture):設置采集圖像屬性
Ioctl(fd,VIDIOCGPICT,&picture):獲取采集圖像屬性
Ioctl(fd,VIDIOCGMBUT,&mbuf):獲取緩沖區信息
Ioctl(fd,VIDIOCMCAPTURE,&mmap):捕捉圖像,獲取圖像信息
Ioctl(fd,VIDIOCSYNC,&frame):等待采集一幀圖像完成

圖4 V4L視頻信號采集流程圖Fig.4 Flow chart of video acquisition
操作系統一般把系統使用的內存劃分成用戶空間和內核空間,分別由應用程序管理和操作系統管理[6]。應用程序可以直接訪問內存的地址,而內核空間存放的是供內核訪問的代碼和數據,用戶不能直接訪問。V4L捕獲的數據,最初是存放在內核空間的,這意味著用戶不能直接訪問該段內存,必須通過某些手段來轉換地址。
V4L提供兩種視頻采集方式:使用 read、write方式和內存映射方式。read、write方式,在用戶空間和內核空間不斷拷貝數據,占用了大量用戶內存空間,效率不高。內存映射方式:把設備里的內存映射到應用程序中的內存空間,直接處理設備內存,這是一種有效的方式。上面的mmap()函數就是使用這種方式[7]。
本文首先結合實際應用分析了RTU的功能并給出設計方案,依照提出的方案,完成了基于嵌入式技術的RTU系統的設計,在硬件設計方面,選取三星S3C2440的arm為核心處理器,并根據功能添加了外圍功能芯片,設計了原理圖并完成制板工作,搭建起硬件平臺;在軟件設計方面,選用嵌入式Linux作為平臺操作系統,在此操作系統上開發應用服務程序以實現RTU復雜的功能需求。并且在實際應用中對此RTU的性能做了測試以達到實際應用水平。
[1]田澤.嵌入式系統開發與應用教程[M].北京:北京航空航天大學出版社,2005.
[2]許海燕,付炎.嵌入式系統技術與應用[M].北京:機械工業出版社,2002.
[3]何加銘.嵌入式32位微處理器系統設計與應用[M].北京:電子工業出版社,2006.
[4]趙昌永.基于嵌入式LINUX的視頻采集系統設計[D].杭州:浙江大學,2006.
[5]曾桂根,吳霜.基于嵌入式Linux的3G接入方案的設計與實現[J].計算機技術與發展,2010,20(9):193-196.
[6]LIU Jun-liang,PAN Gang,LI Ping.Embedded linux graphic terminal design based on ARM[C]//Proceedings of the 25th Chinese Control Conference,2006:1921-1925.
[7]Jasmin Blanchette,Mark Summerfield.C++GUI programming with Qt 4[M].PrenticeHall,2006.
Smart oilfield embedded RTU application design
WEI Xue-liang,LI Zhuo-ran,YU Cong-zhi
(China University of Petroleum,the earth physics and information engineering institute,Beijing 102249,China)
Under the background of current oilfields in its intelligent and digital transformation,by using embedded technology and network communication technology and through the physical experiments in laboratory and samples from oilfield,this paper proposed a design scheme based on embedded RTU system and the communication technology,including hardware design and software design.The hardware design is based on a hardware platform with a Samsung S3C2440 core processor and it can attach an external function internal chip;Embedded Linux as a multitasking operating system software platform developped applications on the system platform to implement the RTU design.At present the system prototype is implemented.The field experiment shows that this system has stable performance and the indicators are up to par.
RTU;ZigBee;IOT;embedded
TN87
A
1674-6236(2016)03-0184-04
2015-03-16稿件編號:201503204
魏學良(1972—),男,山東壽光人,博士,講師。研究方向:應用嵌入式處理器、DSP、SOPC硬件系統,智慧油田、電力電子系統設計應用。