日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術》雜志
[導讀]摘要:根據(jù)我國大部分油田偏遠分散布線不利的特點,在目前多數(shù)油田監(jiān)控采用485總線等進行遠程通信的現(xiàn)狀基礎上,設計了采用32位Cortex-M3內(nèi)核的STM32F103C8T6和ENC28J60嵌入式服務器,并利用ZigBee傳感網(wǎng)絡發(fā)送BMP085采集的壓力和溫度數(shù)據(jù)到該服務器,由服務器再通過以太網(wǎng)發(fā)送至監(jiān)控端的壓力監(jiān)控系統(tǒng)。相比485總線,本設計在傳輸速率等方面具有顯著提升且性能穩(wěn)定,從而為油田信息化和自動化監(jiān)控提供了一個有效方案。

引言

目前我國大多數(shù)油田地處偏遠地區(qū)、分布范圍廣、油井分散,若對油井出現(xiàn)的異常情況不能及時發(fā)現(xiàn),及時采取措施,可能直接導致原油產(chǎn)量降低,設備使用壽命減短,能耗增加,有時甚至會造成嚴重的經(jīng)濟損失,降低了經(jīng)濟效益力和溫度是油井抽油機正常工作的重要指標,所以本文設計的重點在壓力和溫度數(shù)據(jù)的采集和監(jiān)控。

傳統(tǒng)的徒手抄計和便攜式存儲已不再適合油井開采現(xiàn)場數(shù)據(jù)采集中,在線遠傳階段已經(jīng)到來,信息化、自動化的遠程集中監(jiān)控是一個必然發(fā)展趨勢。目前少數(shù)的遠程監(jiān)控系統(tǒng)通常采用8位或16位主芯片,通過485總線等方式進行遠程通信,系統(tǒng)存在反應速度慢、數(shù)據(jù)傳輸速率低、布線復雜易受干擾等缺點叫

本文設計的油井壓力數(shù)據(jù)監(jiān)控系統(tǒng)現(xiàn)場數(shù)據(jù)采集和傳輸設計應用ZigBee傳感器網(wǎng)絡進行功能實現(xiàn),嵌入式服務器部分采用32位Cortex-M3內(nèi)核的STM32F103C8T6微處理芯片和高性能以太網(wǎng)控制芯片ENC28J60實現(xiàn)嵌入式以太網(wǎng)通信接口設計。

1系統(tǒng)總體構(gòu)成方案

整個系統(tǒng)分為數(shù)據(jù)采集發(fā)送端和數(shù)據(jù)接收監(jiān)測端兩部分,系統(tǒng)總體結(jié)構(gòu)如圖1所示。

數(shù)據(jù)采集發(fā)送端負責油井現(xiàn)場每間隔一段時間采集一次壓力數(shù)據(jù),并通過ZigBee節(jié)點設備發(fā)送至嵌入式服務器中的協(xié)調(diào)器。

數(shù)據(jù)接收監(jiān)測端由ZigBee協(xié)調(diào)器、STM32控制器和上位機監(jiān)控軟件組成,協(xié)調(diào)器負責接收由ZigBee節(jié)點發(fā)送過來的無線數(shù)據(jù),并傳送至STM32控制器通過以太網(wǎng)把數(shù)據(jù)發(fā)送給遠程監(jiān)控PC進行查看和控制。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

2系統(tǒng)硬件設計

2.1數(shù)據(jù)采集發(fā)送端

數(shù)據(jù)采集發(fā)送端的硬件設計主要為傳感器節(jié)點硬件設計,ZigBee節(jié)點選用TI公司生產(chǎn)的CC2530片上系統(tǒng)芯片來設計,CC2530芯片采用6X6QFN封裝,有電源引腳、控制引腳和GPIO引腳(P0、P1為8位的I/O引腳,P2只有5位的可用1/O),總共40個引腳。該芯片除了具有符合IEEE802.15.4規(guī)范的2.4GHz標準的RF收發(fā)器外,它還在片內(nèi)集成了一個8位的8051增強型微處理器、8KB的SRAM和大容量FLASH用來保存ZigBee協(xié)議棧)等。

壓力傳感器采用BMP085壓力傳感器,它的測量范圍為300?1100hPa,反應時間為7.5ms,該傳感器應用于抽油機原油壓力數(shù)據(jù)的測量中,合適的測量范圍決定了靈敏度符合設計要求。同時它具有溫度補償功能,采用無鉛陶瓷載體封裝,適用在海拔500m~9000m環(huán)境,保證工作狀態(tài)長期穩(wěn)定。

CC2530通過I/O口與BMP085相連,CC2530內(nèi)部處理器與BMP085之間采用IIC總線進行通信。傳感器采集到壓力和溫度數(shù)據(jù),經(jīng)AD轉(zhuǎn)換傳送給片內(nèi)8051微處理器,微處理器控制傳感器節(jié)點與其它傳感器節(jié)點或匯聚節(jié)點進行通信。RF無線收發(fā)器,通過SPI與處理器模塊相連。其傳感器節(jié)點的硬件框圖如圖2所示。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

2.2數(shù)據(jù)監(jiān)測接收端

數(shù)據(jù)監(jiān)測接收端的硬件設計主要分為兩部分:ZigBee協(xié)調(diào)器、STM32嵌入式以太網(wǎng)控制服務器設計。

ZigBee協(xié)調(diào)器同樣選用CC2530芯片進行設計,但為了與主處理器連接方便,本文把協(xié)調(diào)器做成一個模塊,其引腳定義如圖3所示。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

圖3中,CC2530的I/O引腳(P0.2和P0.3)通過設定SFR寄存器作為USART的RX和TX引腳使用,與STM32的USART串口引腳相連進行通訊。

STM32嵌入式以太網(wǎng)控制服務器的硬件設計采用基于Cortex-M3內(nèi)核的處理器STM32F103CBT6作為服務器主處理器,高性能完全滿足設計要求,以太網(wǎng)芯片采用美國Microchip公司的獨立以太網(wǎng)控制器ENC28J60,它采用速度高達10Mb/s的SPI三線接口作為通信通道,同時內(nèi)部集成了符合IEEE802.3規(guī)則的MAC層和物理層控制器。

按照STM32指導手冊,一個完整的STM32最小系統(tǒng)還外接所需的晶振和去耦電路。其中STM32的PA2、PA3引腳是復用功能引腳作為USART2串口與CC2530的串口引腳相連,另外本系統(tǒng)主處理器內(nèi)部移植了uIP協(xié)議,通過USART2和CC2530連接,設置了一個緩沖隊列保存串口接收帶的無線模塊的數(shù)據(jù),然后應用uIP的底層驅(qū)動控制ENC28J60,利用以太網(wǎng)發(fā)送到上位機。

根據(jù)ENC28J60用戶手冊和本設計的要求,本設計選用了符合10BASE-T標準并自帶RJ45插座的以太網(wǎng)隔離變壓器HR91102A,提高系統(tǒng)的抗干擾性。變壓器需在ENC28J60的TPIN和TPOUT兩引腳相連四個50Ω電阻和兩個0.01uF的電容ENC28J60連接一個25MHz的晶振,跨接一個2.75kΩ的偏置電阻均按手冊連接。圖4所示是STM32嵌入式以太網(wǎng)服務器原理圖。圖中STM32程序下載設計使用的是標準的JTAG仿真調(diào)試接口。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

3系統(tǒng)軟件設計

3.1系統(tǒng)總體設計圖

系統(tǒng)總體實現(xiàn)的功能是將油井現(xiàn)場的抽油機壓力數(shù)據(jù)在ZigBee物聯(lián)傳感網(wǎng)絡中從節(jié)點設備發(fā)送至嵌入式服務器中的協(xié)調(diào)器。為了服務器處理和連接方便,本文將ZigBee協(xié)調(diào)器和STM32做成了一個模塊。協(xié)調(diào)器經(jīng)過初始化,選擇頻道和建立網(wǎng)絡后,進入無線監(jiān)聽狀態(tài),當有新的傳感器節(jié)點申請加入時,給新節(jié)點分配網(wǎng)絡地址并接受節(jié)點數(shù)據(jù)通過串口發(fā)送給STM32處理器,通過以太網(wǎng)上傳至上位監(jiān)控PC,系統(tǒng)總體流程如圖5所示。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

3.2ZigBee節(jié)點和協(xié)調(diào)器軟件設計

本系統(tǒng)利用SensorDemo模板并進行部分改寫來實現(xiàn)ZigBee節(jié)點和協(xié)調(diào)器的軟件設計。在Zigbee無線網(wǎng)絡中存在三種邏輯設備類型:協(xié)調(diào)器(ZC)、路由器(ZR)、終端設備(ZD)。ZigBee的開發(fā)軟件選用IAREW8051-8.10.1,Z-Stack協(xié)議棧選用ZStack-CC2530-2.5.0,本系統(tǒng)為了操作方便,將SensorDemo改動去掉按鍵操作,上電即自動聯(lián)網(wǎng)并發(fā)送傳感器數(shù)據(jù)。重點對voidzb_HandleKeys(uint8shift,uint8keys)的改動是刪除程序中的SW1等的按鍵觸發(fā)事件;核心對voidzb_HandleOsalEvent(uint16event)的改寫如下:

voidzb_HandleOsalEvent(uint16event)

{

uint8logicalType;

if(event&ZB_ENTRY_EVENT)

{

initUart(uartRxCB);

HalLedBlink(HAL_LED_1,0,50,500);

HalLedSeKHAL_LED_2,HAL_LED_MODE_OFF);zb_ReadConfiguration(ZCD_NV_LOGICAL_TYPE,sizeof(uint8),&logicalType);

if(logicalType!=ZG_DEVICETYPE_COORDINATOR

)

{

logicalType=ZG_DEVICETYPE_

COORDINATOR;

zb_WriteConfiguration(ZCD_NV_LOGICAL_

TYPE,sizeof(uint8),&logicalType);zb_SystemReset();

}

}

}

程序運行至此,終端節(jié)點就會自動加入網(wǎng)絡并建立綁定;到了這一步的時候,網(wǎng)絡就已經(jīng)形成了,網(wǎng)絡形成后就可以傳輸采集到的壓力和溫度數(shù)據(jù)了;程序中需要注意的是CC2530將協(xié)調(diào)器稱為gateway(網(wǎng)關)而不是collector。

3.3嵌入式以太網(wǎng)STM32軟件設計

嵌入式以太網(wǎng)服務器要實現(xiàn)的功能是通過USART2接收CC2530傳送的數(shù)據(jù),并通過SPI1連接ENC28J60從以太網(wǎng)上傳數(shù)據(jù)到監(jiān)控PC。以太網(wǎng)服務器經(jīng)過對STM32和ENC28J60進行初始化,設置系統(tǒng)時鐘和弓腳輸出方式,配置SPI總線符合ENC28J60

的時序要求,對ENC28J60的初始化是通過SPI總線對它的寄存器進行配置實現(xiàn)的,主要設置收發(fā)緩沖區(qū)的大小和起始地址、設置以太網(wǎng)過濾器、配置MAC層、物理層和LED指示燈等[4]。STM32F103可通過SPI接口發(fā)送命令,訪問ENC28J60的相關寄存器來完成相應的操作。下面給出ENC28J60接收/發(fā)送數(shù)據(jù)包的程序框架:

ENC28J60發(fā)送數(shù)據(jù)包程序框架如下:

voidenc28j60PacketSend(unsignedintlen,unsignedchar*packet)

{

enc28j60Write(EWRPT,(TXSTART_INIT)&0xFF);

enc28j60Write(ETXND,(TXSTART_INIT+len)&0xFF);

enc28j60WriteOp(ENC28J60_WRITE_BUF_MEM,0,0x00);

enc28j60WriteBuffer(len,packet);enc28j60WriteOp(ENC28J60_BIT_FIELD_SET,

ECON1,EC

ENC28J60接收數(shù)據(jù)包主要框架程序如下:

unsignedintenc28j60PacketReceive(unsignedintmaxlen,unsignedchar*packet)

{

enc28j60Write(ERDPT,(NextPacketPtr));

NextPacketPtr=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0);

NextPacketPtr|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)<<8;

len=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,

0);

len|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)<<8;

rxstat=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0);

rxstat|=enc28j60ReadOp(ENC28J60_READ_BUF_MEM,0)<<8;

enc28j60ReadBuffer(len,packet);

return(len);

}

3.4高層協(xié)議uIP移植和應用層主程序的設計

完成了MAC層及物理層協(xié)議的驅(qū)動程序,要想實現(xiàn)嵌入式以太網(wǎng)服務器與其它設備之間的通信,還要在嵌入式系統(tǒng)中實現(xiàn)更高層的TCP/IP協(xié)議。本文選用uIPl.0協(xié)議棧并對其適當精簡來實現(xiàn)功能。uIP協(xié)議棧由瑞典計算機科學研究所的AdamDunkels開發(fā)的免費、開發(fā)源代碼的協(xié)議棧[7]。在本系統(tǒng)中程序首先用中斷的方式接收ZigBee協(xié)調(diào)器發(fā)送給主處理器串口的數(shù)據(jù),并設置接收隊列暫存這些數(shù)據(jù)。在主程序中的主要任務是不斷監(jiān)測串口的標志位,當有數(shù)據(jù)時,把數(shù)據(jù)添高位封裝后,通過ENC28J60的以太網(wǎng)接口發(fā)送到上位機監(jiān)測軟件中。其工作流程圖見圖6所示。

基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

4結(jié)語

本文設計的基于STM32F103C8T6和ENC28J60的嵌入式服務器,利用ZigBee傳感網(wǎng)絡發(fā)送BMP085采集的壓力和溫度數(shù)據(jù)到服務器,服務器再通過以太網(wǎng)發(fā)送至監(jiān)控端,設計穩(wěn)定可靠,為油田業(yè)信息化監(jiān)控提供了一個有效方案。

20211121_619a32b5a1ff7__基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉