胥 昕,翁惠輝 (長江大學電子信息學院,湖北 荊州434023)
近年來,隨著以計算機技術、通信技術為主的信息技術的快速發(fā)展和Internet的廣泛應用,嵌入式系統(tǒng)得到了越來越廣泛的應用。隨著采油工藝技術的發(fā)展,對井口RTU (遠程測控終端)提出了處理速度快、兼容性好和可靠性高等要求,盡管以可編程邏輯控制器 (PLC)為處理器的測控系統(tǒng)具有較完善的功能,但其只適用于室內(nèi)環(huán)境,難以適應采油井所在的野外環(huán)境。為此,筆者基于ARM芯片設計了井口RTU測控系統(tǒng)。
基于ARM的井口RTU測控系統(tǒng)整體框架采用模塊化結構設計,以 AT91SAM10-G45為主處理器,通過以太網(wǎng)接口以及RS-485串口完成與上位機的通信[1]。其中,AT91SAM9M10-G45、2片SDRAM芯片、FLASH儲存器、電源系統(tǒng)以及時鐘系統(tǒng)組成ARM芯片的嵌入式基本體系結構。根據(jù)井口RTU現(xiàn)場信號測控要求,對溫度、壓力、懸點載荷、抽油桿位移、井口流量、上下沖程脈沖信號等工藝參數(shù)設計相應的I/O模塊輸入,以實現(xiàn)對現(xiàn)場信號的采集、調(diào)理、校對、放大以及控制等功能 (見圖1)。
圖1 系統(tǒng)總體架構圖
CPU處理器主要完成數(shù)據(jù)處理、運算與外設通訊等功能[2]。AT91SAM9M10-G45芯片內(nèi)部資源以及外圍擴展接口都非常豐富,利用該芯片可以擴展外部存儲器、靜態(tài)存儲器、EEPROM、DDR2 SDRAM、電源控制單元、串行外設接口 (SPI)、I/O控制器 (模塊)、定時器、以太網(wǎng)接口、USB接口和UART接口等 (見圖2)。
1)CPU電源模塊 由于AT91SAM9M10-G45芯片內(nèi)核工作電壓在0.9~1.1V之間,內(nèi)存接口的供電電壓在1.65~1.95V之間,I/O口電壓在1.65~3.6V之間,模擬DC電壓在3.0~3.6V之間,因而在電源電路的設計中,直接將電源模塊提供的5V電壓經(jīng)過DC-DC模塊壓降成芯片內(nèi)部所需電壓。其中,靜態(tài)RAM工作所需的電壓由3.3V電源和后備電源共同供電,此外選用ADM691電源監(jiān)控芯片對靜態(tài)RAM工作電源進行檢測,以保證靜態(tài)RAM工作電源不會掉電。
2)CPU存儲電路 基于AT91SAM9M10-G45芯片的嵌入式系統(tǒng)共有2種存儲器接口電 路, 即 SDRAM (Static RAM)接口電路和靜態(tài)RAM接口電路。SDRAM接口電路根據(jù)ARM的CPU計時時間同步設計,這樣ARM的內(nèi)存控制器能夠準確掌握所要求的數(shù)據(jù)以及所需要的準確時鐘周期,CPU不需要延時到下一次的數(shù)據(jù)存儲。因此,不僅要正確選用SDRAM芯片,還要正確配置ARM處理器中DRAM控制寄存器的控制參數(shù)。
圖2 CPU模塊結構圖
I/O模塊結構圖如圖3所示。采用美國微芯公司的dSPIC30F4013作為I/O模塊處理器,I/O模塊提供驅(qū)動現(xiàn)場設備的+24V電源接口、控制信號接線端子、I/O模塊工作狀態(tài)燈等。采用智能板卡的形式設計I/O模塊,將其插到板卡插槽后能主動上報板卡號、板卡類型、板卡冗余以及自動分配板卡地址等信息。此外,針對I/O模塊的通道設計了全隔離電路。
圖3 I/O模塊結構圖
AT91SAM9M10-G45芯片內(nèi)部EMAC模塊中集成了一個和IEEE802.3標準相兼容的以太網(wǎng)EMAC。該模塊內(nèi)部集成了統(tǒng)計和控制寄存器、接收和發(fā)送堆棧及DMA接口,采用地址監(jiān)控方式進行工作。地址監(jiān)測器可以識別4個特殊的48位地址和包含64位的散列寄存器多播和單播匹配地址,可以識別所有地址為1的廣播地址并復制所有的幀,還可以報告外部地址的匹配信號。以太網(wǎng)接口驅(qū)動器件選用DAVICOM公司的DM9161AEP芯片,該芯片支持RMII接口,具有10~100Mbit/s自適應功能,支持全雙工或半雙工功能,能完全滿足工業(yè)以太網(wǎng)的功能要求。
基于ARM的井口RTU測控系統(tǒng)運行過程中處理的任務十分復雜,包括以太網(wǎng)通信、擴展總線通信。信號采集與處理、自檢等。為此,選用以UNIX為基礎發(fā)展而來的Linux操作系統(tǒng)[3],其對硬件要求低,可以支持多處理器芯片,并且源代碼是公開的,這樣便于升級和修補內(nèi)核,因而可以實現(xiàn)各任務之間的通信以及與系統(tǒng)下位機的通信?;贏RM的井口RTU任務流程圖如圖4所示。井口RTU的各任務間通過信號量和消息隊列來實現(xiàn)通信,即使用計數(shù)器信號量解決多個任務讀寫互斥的問題,利用消息隊列來解決任務間的數(shù)據(jù)交換。串口通信通過串口驅(qū)動實現(xiàn),以太網(wǎng)通過套接字實現(xiàn),從而實現(xiàn)對任何一個文件的操作。
基于ARM的井口RTU測控系統(tǒng)下位機底層程序設計思路是在主程序中調(diào)用各個子模塊程序,從而減少模塊間的相互耦合性[4]。子模塊程序主要包括初始化程序、模擬量輸入程序、開關量輸入程序、開關量輸出程序和高速脈沖程序等 (見圖5)。
圖4 基于ARM的井口RTU任務流程圖
圖5 系統(tǒng)下位機底層程序圖
根據(jù)數(shù)字化油田中采油工藝技術的實際要求,設計了由ATMEL公司AT91SAM9M10-G45型微控制器為處理器的新型PLC,其具有效率高、成本低、性能穩(wěn)定、可靠性強等特點。通過模塊化的設計來實現(xiàn)系統(tǒng)整體架構,并根據(jù)各個模塊的作用實現(xiàn)整個井口RTU系統(tǒng)的數(shù)據(jù)采集、傳輸以及處理的功能,使得該系統(tǒng)更利于維護和升級。此外,ARM芯片處理器所使用的嵌入式Linux操作系統(tǒng)平臺十分便于程序的編寫和調(diào)試。
[1]宋萬里 .基于嵌入式平臺的雙目主動測距系統(tǒng) [D].杭州:浙江大學,2012.
[2]肖紅翼,翁惠輝,毛玉蓉 .采油場井口RTU測控系統(tǒng) [J].石油儀器,2007,21(6):67-69.
[3]封景剛,吳寶江.ARM嵌入式系統(tǒng)完全入門與主流實踐 [M].北京:電子工業(yè)出版社,2008:78-79.
[4]孫延嶺,趙雪飛,張紅芳,等 .基于ARM嵌入式系統(tǒng)的微型智能可編程控制器 [J].電力系統(tǒng)自動化,2010,34(10):101-103.