賀春艷 ,庹先國 ,,劉 勇 ,,李懷良
(1.成都理工大學 地質災害防治與地質環境保護國家重點實驗室,成都 610059;2.西南科技大學 核廢物與環境安全國防重點學科實驗室,綿陽 621010)
網絡互聯設備一直是分布式數據采集的核心構件之一。隨著電子技術的發展,包括路由器在內的通用網絡互聯設備技術已經非常成熟,但在一些特殊應用領域,如地震勘探,設計出能滿足實際需求的網絡設備,仍然是一項挑戰。特別是三維地震勘探中,由于以太網在多節點通信條件下實時能力較差[1],在考慮儀器體積、施工效率的基礎上,單一采集鏈普遍采用RS485等串行總線網絡[2],這與上層數據傳輸以太網不能直接兼容,極大降低了儀器的擴展能力和應用效果[3]。由于數據采集鏈與以太網不能直接互聯而導致的系統勘探效率低下等問題已成為嚴重制約三維分布式地震勘探廣泛應用的技術瓶頸之一。
如圖1所示為分布式地震勘探系統示意圖,數據中心、同步器、控制主機、遠程終端以及網關組成地震數據采集局域網,各采集節點獲取的地震數據通過RS485總線(采集鏈)傳送到網關處理后,由局域網發送到控制主機。局域網硬件主要由以太網設備構成,相關產品已經非常成熟,限制系統性能的主要因素在網關上,需要其同時具備高速以太網和RS485兩種網絡接入能力,以及協議轉換功能[4]。目前市面上還沒有相關產品,參考設計也較少。因此,本文介紹一種采用DP83848和STM32等集成芯片設計的低成本高性能以太網—RS485網關,應用于三維分布式地震勘探中,可極大提高儀器擴展能力和施工效率。

圖1 分布式地震數據采集系統示意圖Fig.1 Distributed seismic data acquisition system diagram
網關由以太網控制器、網口、RS485控制器、主控CPU、系統電源等模塊組成。主控CPU采用STM32F407RG,它是一款基于ARM Cortex M4內核的高性能低功耗微控制器,運算能力可達210 DMIPS;以太網控制器采用DP83848V,支持IEEE802.3全雙工流量控制以及自動極性翻轉功能,提供10 M/100 M以太網收發能力,其MAC控制器集成在主控CPU中,利用MII/RMII接口與其通信,可減少電路板上連接走線,提高抗干擾能力。同時,采用內部集成網絡變壓器的RJ45網口HR911105與其配合,可最大限度提高100 M以太網通信的穩定性;RS485收發器采用內部集成了三通道隔離器、三態差分線路驅動器、差分輸入接收機和隔離式DC/DC轉換器的單芯片ADM2582,其能提供最高16 Mb/s通信速率,滿足高速數據采集鏈的網絡通信需求。
如圖2所示,以太網收發芯片利用其RMII接口與主控CPU的MAC控制器外設連接,包括數據通信引腳 TXD [1..0]、RXD[1..0]、TX_EN、CRS_DV以及管理通信引腳MDIO、MDC。以太網物理收發芯片和MAC控制器時鐘均采用外部50 MHz高精度有源晶振提供。為增強系統抗干擾能力,減少PCB高頻布線長度,本設計采用帶網絡變壓器芯片的RJ45接口,將高速模擬差分信號線完全集成在網口芯片內部,在PCB板上僅需要將以太網收發芯片的TD+、TD-、RD+、RD-四根高頻差分數據引腳, 分別通過49.9 Ω精密上拉電阻與RJ45接口 (網口變壓器)對應引腳連接,在實際布線過程中,盡量將這4根高頻線布設為最短等長直線,以便降低電磁干擾,提高通信質量。RS485收發芯片的TXD、RXD引腳分別與主控CPU串口外設對應引腳連接,同時為控制RS485通信方向,將其RE、DE引腳分別與CPU輸出口引腳連接,當RE和DE為高電平時,收發器處于發送模式。為降低RS485總線上的反射干擾,在其差分輸出引腳處接入120 Ω匹配電阻,用于吸收總線上的高頻反射,同時接入保護二極管,避免因意外高壓產生的危險。

圖2 網關硬件電路Fig.2 Gateway hardware circuit
系統軟件按照功能可分為初始化代碼段、后臺程序代碼段、前臺程序代碼段3部分。如圖3所示為軟件運行主流程。初始化代碼段在系統上電復位后只運行一次,包括系統資源初始化、協議棧初始化、應用程序初始化。其中系統資源初始化主要完成對系統時鐘、定時器、中斷向量寄存器等系統資源進行配置,提供程序運行的基本環境;在系統資源初始化完成后,系統依次進行RS485和TCP/IP協議棧初始化;協議棧啟動后,便可運行RS485客戶端應用程序和TCP/IP服務器應用程序。整個初始化段代碼運行完成后,便一直循環運行后臺程序代碼段,依次實現對兩種協議棧和外部事件的循環處理。串口、網口中斷程序位于前臺程序代碼段,平時處于休眠狀態,只有產生相應事件后,后臺程序才進入暫停狀態,系統轉去執行前臺中斷程序。

圖3 軟件運行主流程Fig.3 Main process software running
后臺程序在運行過程中,依次查詢是否有未處理的各種通信事件和外部事件產生,并根據查詢結果,執行相應指令。主要通信事件有:RS485幀收到、RS485幀發送、以太網幀收到、以太網幀發送、外部觸發中斷等。所有事件均在前臺中斷程序中進行預處理并置相應標志位,但不做實際具體處理,而將具體事件處理過程放在后臺程序中依次查詢執行。
TCP/IP協議棧、RS485協議棧和外部事件處理代碼段各自分配一個非固定時間片,按順序輪換執行,其長度根據當前協議棧所需處理事件的多少和優先級來決定,一旦該代碼段事件處理完成,便立即進入下一個代碼段,代碼段切換資源耗費幾乎為零,這種“分時切換”和“前后臺程序”配合的程序運行機制,可避免2種協議在高速運行過程中產生相互干擾而導致的系統混亂問題,而且運行效率也比較高。
在后臺程序循環中,當查詢到有RS485事件時,便進入RS485主處理函數,依次判斷“是否有幀發送請求”、“是否收到完整數據幀”、“是否幀發送完成”等標志位,并根據判斷結果調用相應處理程序,包括產生發送幀數據、幀數據解析、調用應用程序處理、置相應標志位等。協議棧在運行過程中,將需要用戶處理的數據統一放置在全局幀數據緩沖中,并在適當時候調用用戶程序進行處理,用戶將需要發送的幀數據放置回全局發送緩沖幀中,由協議棧進行發送。如圖4所示為RS485協議棧主處理流程。

圖4 RS485協議棧主處理流程Fig.4 Main process of protocol stack
考慮數據采集節點CPU系統資源限制及總線大數據量和多種控制指令傳輸需求,各采集節點和網關之間采用面向串行通信的精簡的點對點鏈路層通信協議(PPP),如圖5所示為改進后的PPP幀格式及應用報文組織形式。

圖5 改進后的PPP幀結構及應用報文組織形式Fig.5 PPP frame structure and application packets organization improved
改進的幀由6部分組成:幀頭定界符(0x7E)、幀頭(目地地址、源地址)、數據協議類型、數據、校驗、幀尾定界符(0x7E)。其中數據協議類型根據地震數據采集需求,包括動態網絡配置數據報文(DNCP)和用戶網絡數據報文(CNDP),DNCP 報文主要包含動態地址配置信息及網絡環境監測信息,CNDP數據段又封裝了用戶實際發送的用戶數據。
由于TCP/IP是一個具有4層體系結構模型的大型互聯網協議族,直接實現需要較多的系統資源開銷,且其大部分協議對本網關實際應用聯系不大,可對其進行簡化,僅保留IP/TCP/ICMP/ARP/UDP等網絡層和傳輸層協議[5],在保證其代碼通用性和結構的穩定性的同時,最大限度降低了系統資源消耗。具體實現流程如圖6所示。

圖6 TCP/IP協議棧實現Fig.6 TCP/IP protocol stack implementation
同RS485協議棧實現類似,當進入TCP/IP主處理函數后,首先讀取以太網數據幀,并依次判斷“是否收到完整數據幀”、“是否定時事件到”、“是否有幀發送完成”等標志位,并根據判斷結果,調用相應處理程序。其中,當收到完整的以太網數據包后,首先判斷其是ARP、ICMP、IP中的哪一種,如果是IP數據包,還需判斷是UDP還是TCP數據包,并再調用用戶應用程序(服務器應用程序)。
由分布式地震勘探應用需求可知,各采集節點獲取的地震數據通過RS485總線傳輸到網關后,由網關中的RS485協議棧接收,必須通過某種協議轉換機制,轉換成以太網數據幀后才能通過數據采集局域網傳輸到監控主機。在前面介紹的2個協議棧實現過程中,進入各自協議棧主處理函數后都首先判斷是否有需要發送的數據幀,該幀發送需求便是另外一協議棧產生的需要轉換的數據包,同時在各自協議棧主處理流程最后,也都有ACK事件處理操作,也可用于完成協議棧的相互轉換功能。
網關在2種不同網絡結構中分別充當不同的網絡角色:監控主機通過以太網與網關進行連接,在此,網關作為服務器,運行TCP/IP服務器應用程序,而監控主機位于客戶端,當服務器收到監控主機的數據訪問請求后,通過協議轉換,將以太網數據請求轉換成RS485協議請求,此后,網關便作為客戶端,將RS485請求發送到各數據采集節點服務器,各采集節點收到網關的數據請求后,產生回復數據,通過RS485發送給網關;由網關的RS485客戶端收到數據后,轉換成以太網數據包,并通過TCP/IP服務器和以太網返回給監控主機。
為確定該網關的網絡通信能力,對設計的網關進行實際現場測試,具體測試條件如下:單網關連接48道采集節點,每個節點內部采樣緩存填充固定數據,循環發送相同數據,依次測試RS485通信速率、距離、誤碼率間的關系,具體測試數據如表1所示。
表1說明,該網關在外接48道采集節點情況下,最適合的工作速率是2.0 Mb/s,其采集鏈總長可達48×5=240 m。隨著采集節點距離和通信速率的增加,誤碼率急劇上升。在實際勘探過程中,當采集節點AD采樣率為1 k,精度為24位時,如果通信速率設置為2 Mb/s,則單網關可連接采集道數超過100道,基本實現了以太網和RS485采集鏈的高速數據連接。

表1 測試數據Tab.1 Test data
本文采用物理層以太網集成芯片DP83848和STM32微控制器,設計了一種低成本以太網-RS485網關,實現以太網和RS485采集鏈的高速連接。利用“分時切換”和“前后臺程序”配合的方法,對網關RS485和TCP/IP協議棧進行優化,避免2種協議在高速運行過程中產生相互干擾而導致的系統混亂,提高了運行效率,同時也為系統擴展提供了較多資源余量。測試表明,該網關網絡通信能力穩定,單網關可掛接采集節點通道數超過100道,目前已應用到某套試驗樣機系統上。
[1] 陸其鵠,彭克中,易碧金.我國地球物理儀器的發展[J].地球物理學進展,2007,22(4):1332-1337.
[2] 張林行,林君,陳祖斌.RS-485通信協議在分布式地震儀中的應用[J].石油儀器,2001,15(6):32-33,38.
[3] 張林行,林君,陳祖斌.基于嵌入式以太網的分布式地震數據采集系統[J].計算機應用,2006,26(9):2258-2260.
[4] 郭戎瀟,王洪強,李彥.一種小型嵌入式Internet終端的設計與實現[J].計算機與數字工程,2005,33(12):99-101.
[5] 黃鐘鳴,葉進,黃建華,等.獨立于操作系統的嵌入式TCP/IP實現[J].桂林電子科技大學學報,2011,31(6):473-476. ■