門雅彬,成方林,張翼飛,張 齊
(國家海洋技術(shù)中心,天津 300112)
海氣邊界層監(jiān)測系統(tǒng)設(shè)計
門雅彬,成方林,張翼飛,張 齊
(國家海洋技術(shù)中心,天津 300112)
介紹了以RS-485為控制總線的海氣邊界層監(jiān)測系統(tǒng)設(shè)計。通過RS-485總線,監(jiān)控主機與數(shù)據(jù)變送器和智能傳感器可以直接進行通信,簡化了系統(tǒng)結(jié)構(gòu),實現(xiàn)了系統(tǒng)測量節(jié)點的分散控制和集中管理。給出了系統(tǒng)主控制板的硬件組成框圖,描述了硬件設(shè)計原理和通訊協(xié)議設(shè)計,給出了主程序流程圖。經(jīng)過實際應(yīng)用表明,該系統(tǒng)具有安裝使用方便,可靠性高的特點。
海氣邊界層;分布式采集系統(tǒng);RS-485總線;數(shù)據(jù)采集器
海氣交換是海洋與大氣之間進行能量和動量的交換,對全球的海洋氣候有巨大的影響。海氣邊界層監(jiān)測系統(tǒng)的主要功能是連續(xù)、自動獲取海洋與大氣之間的溫濕、風(fēng)速、風(fēng)向梯度數(shù)據(jù)和氣壓等氣象要素數(shù)據(jù)以及海表水溫、潮汐等水文數(shù)據(jù),并進行實時顯示、存儲和傳輸。
系統(tǒng)的氣象測量傳感器分層次安裝在觀測鐵塔上,每一層包括溫濕和風(fēng)速風(fēng)向傳感器;水文傳感器包含一個表層水溫傳感器和一個水位傳感器。系統(tǒng)要求安裝方便、可擴展性強、方便維護,可以靈活配置傳感器層數(shù)。如果采用傳統(tǒng)的集中式數(shù)據(jù)采集方案,會存在以下問題:首先在傳感器層數(shù)較多的情況下,需要設(shè)計較多的模擬輸入端口和頻率計數(shù)端口,硬件設(shè)計復(fù)雜,難度增加。其次,硬件設(shè)計方案確定后,將無法根據(jù)傳感器安裝的層數(shù)的變化進行靈活配置,不便于系統(tǒng)的擴展和維護,不符合系統(tǒng)的設(shè)計要求。最后,觀測鐵塔高度較高,傳感器安裝位置分散,采用集中式設(shè)計必然導(dǎo)致電纜布線數(shù)量大,并進而影響信號測量準(zhǔn)確度。因此,采用傳統(tǒng)的集中式數(shù)據(jù)采集方法顯然已難以滿足項目要求。而如使用完全的分布式采集方案,每一個傳感器都需要配置一個數(shù)據(jù)采集器,使其具備采集傳輸數(shù)據(jù)的能力,采用這樣的采集方案,對于某些分布比較集中的傳感器,硬件設(shè)備投入較大,造成不必要的冗余。
本文所提出的分布式與集中式混合采集模式具有一定的創(chuàng)新性,成功地對上述問題進行了解決??紤]到系統(tǒng)的特點和布線的局限性,在系統(tǒng)的采集和集成方案中,采用分區(qū)式管理的方式,即將整個系統(tǒng)看成一個整體,在此基礎(chǔ)上依據(jù)功能和空間范圍劃分為鐵塔測量子系統(tǒng)、水文測量子系統(tǒng)和數(shù)據(jù)采集子系統(tǒng)。具體實現(xiàn)方法是鐵塔每一層都需要安裝一套溫濕、風(fēng)傳感器,每一層都有一個相互獨立的分布式測量節(jié)點單元——數(shù)據(jù)變送器,負(fù)責(zé)完成溫度、濕度、風(fēng)速、風(fēng)向的采集,并采用RS-485總線技術(shù)與數(shù)據(jù)采集器進行交互通信。系統(tǒng)中的水文傳感器和氣壓傳感器信息由數(shù)據(jù)采集器直接集中式采集。這個方案具有現(xiàn)場布局和布線相對簡單,層次劃分清晰,便于系統(tǒng)規(guī)模的增減,方便現(xiàn)場測試和簡化故障點排查的優(yōu)點。
系統(tǒng)的硬件分為主控制部分和數(shù)據(jù)變送器部分。其中主控制板是數(shù)據(jù)采集器的核心部分,需要按預(yù)定協(xié)議和觀測規(guī)范采集、接收、處理、存儲各路數(shù)據(jù)變送器節(jié)點和各傳感器的測量數(shù)據(jù),并將測量結(jié)果通過光纖傳輸至上位計算機,對計算機發(fā)出的各種命令予以響應(yīng)。海氣邊界層監(jiān)測系統(tǒng)由多種測量傳感器組成測量單元。例如,數(shù)據(jù)變送器完成各路溫濕傳感器和風(fēng)傳感器的數(shù)據(jù)采集;水溫與水位傳感器完成海水溫度與水位的測量。上述測量單元與主控制板采用RS-485總線實現(xiàn)數(shù)據(jù)通訊與交互。RS-485作為一種多點、差分?jǐn)?shù)據(jù)傳輸?shù)碾姎庖?guī)范現(xiàn)已成為業(yè)界應(yīng)用最為廣泛的標(biāo)準(zhǔn)通信接口之一。系統(tǒng)采用RS-485總線的優(yōu)點是拓?fù)浣Y(jié)構(gòu)明晰、每一路智能傳感器節(jié)點是一個獨立運行的子系統(tǒng),通過一根RS-485通信電纜即可對所有的節(jié)點進行采集,氣壓傳感器完成大氣壓力測量,輸出的模擬信號范圍是0~5 V,占用主控制板的模擬采集通道0。
數(shù)據(jù)變送器的作用就是對氣溫、相對濕度、風(fēng)速、風(fēng)向和工作電壓進行采集處理,并通過RS-485總線與數(shù)據(jù)采集器通訊。系統(tǒng)有多個數(shù)據(jù)變送器,分層次安裝在鐵塔儀器架上,它的拓?fù)浣Y(jié)構(gòu)圖如圖1所示。
圖1 數(shù)據(jù)變送器拓?fù)浣Y(jié)構(gòu)圖
RS-485總線為并接式三線制(包含一個地)接口,總線上只要有一個節(jié)點發(fā)生故障就有可能將總線“拉死”。因此,數(shù)據(jù)端口A、B與總線之間應(yīng)加以隔離。在這里我們的做法是,A、B與總線之間各串接一只100 mA的PTC自恢復(fù)保險,同時與地之間各跨接5 V的TVS二極管,以消除線路浪涌干擾。
需要注意的是,許多人錯誤地認(rèn)為RS-485是兩線制,并不包括地線。實際上RS-485總線的構(gòu)成是一個信號差分對和一個地返回線,系統(tǒng)也許沒有這個地返回線也可以工作,但是會處于極不可靠的狀態(tài)之中。這是因為RS-485總線在差模電壓為-7~+12 V之間才可保證通訊的正確性。如果超過此范圍,數(shù)據(jù)將丟失,端口也可能損壞。信號地線的功能是將每個節(jié)點的信號地連接到一個共同的地上,這個地的作用是用來保持共模電壓。如果系統(tǒng)沒有設(shè)計和連接地線,將影響系統(tǒng)總線的可靠性并帶來噪聲。接口電路在設(shè)計中采用了DC/DC轉(zhuǎn)換模塊將系統(tǒng)電源和RS-485收發(fā)器的電源隔離;采用光耦將差分信號線隔離,通過以上幾項措施,徹底消除了共模電壓的影響。
海氣監(jiān)測系統(tǒng)主控制板組成原理框圖如圖2所示,具有如下的功能:
(1)獲取氣壓傳感器、多層數(shù)據(jù)變送器實時測量數(shù)據(jù);
(2)獲取海表水溫和水位水文數(shù)據(jù);
(3)對原始數(shù)據(jù)進行運算處理,生成符合規(guī)范要求的數(shù)據(jù),并將數(shù)據(jù)存入FLASH和SD卡中;
(4)通過與上位機的命令交互,完成數(shù)據(jù)向上位機的傳輸、系統(tǒng)設(shè)置、參數(shù)設(shè)置等功能;
(5)監(jiān)控各傳感器和系統(tǒng)工作狀態(tài),檢測到異常時,點亮報警指示燈,并向上位機輸出報警語句。
系統(tǒng)的主控MCU振蕩頻率是11.059 2 MHz。系統(tǒng)通訊數(shù)據(jù)總量較大,為了緩沖各傳感器和程序運行所需的臨時數(shù)據(jù),外擴了高速靜態(tài)存儲器。為了獲取測量數(shù)據(jù)的時標(biāo),擴充了一片實時時鐘芯片。
如上所述,系統(tǒng)需要集成多種串行傳感器,并需要與變送器節(jié)點和上位機進行通訊,而主控MCU只具有2個串行UART,無法滿足需求。本設(shè)計使用四串口擴展(UART)器件擴充了4個串口,通過電平轉(zhuǎn)換芯片分別連接水位傳感器、水溫傳感器、SD卡存儲模塊和數(shù)據(jù)變送器。串口擴展器件在系統(tǒng)中的主要作用,一是把從外部設(shè)備接收進來的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù);二是把CPU的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)以利于發(fā)送。芯片4個串口共用1個中斷請求引腳和3個中斷狀態(tài)寄存器,大大提高了CPU中斷服務(wù)程序執(zhí)行效率。
圖2 主控板硬件組成框圖
海氣監(jiān)測系統(tǒng)中數(shù)據(jù)采集器是主設(shè)備,數(shù)據(jù)變送器為從設(shè)備。為了對數(shù)據(jù)變送器進行區(qū)別,為其設(shè)置了相應(yīng)的地址。由于系統(tǒng)使用的通訊方式是RS-485半雙工通信,如何避免各分機爭搶總線,發(fā)生數(shù)據(jù)碰撞造成數(shù)據(jù)的丟失甚至總線的死鎖是首先需要考慮的問題。本文的方案是,總線上的數(shù)據(jù)采集器處于主機地位,每隔3 s輪詢各數(shù)據(jù)變送器一次,輪詢到哪個數(shù)據(jù)變送器則哪個占有總線,總線的使用權(quán)完全由主機分配,各子節(jié)點不能擅自占領(lǐng)總線,也不允許主動發(fā)起通信。具體實現(xiàn)方法是,每隔3 s,數(shù)據(jù)采集器發(fā)出索要第一個數(shù)據(jù)變送器數(shù)據(jù)命令,并等待回傳測量數(shù)據(jù),超過規(guī)定的等待時間仍然沒有收到節(jié)點返回的數(shù)據(jù),認(rèn)為該路結(jié)點通訊失敗。值得一提的是,系統(tǒng)等待節(jié)點回傳測量數(shù)據(jù)并不是采取軟件死等的方法,而是采用分時多任務(wù)的方法來實現(xiàn)。具體實現(xiàn)方法是:為每個數(shù)據(jù)變送器設(shè)置一個時間片(如200 ms)。數(shù)據(jù)采集器發(fā)出索要數(shù)據(jù)命令后,在中斷服務(wù)中開始對這個時間片進行減計數(shù),主程序判斷時間片為結(jié)束時還未收到節(jié)點響應(yīng)數(shù)據(jù),才認(rèn)為該節(jié)點通訊失敗。采用這種調(diào)度機制,可以大幅提高數(shù)據(jù)采集器CPU的運行效率。
本設(shè)計使用的嵌入式軟件開發(fā)平臺是Windows環(huán)境中的keil C51 V9.00集成開發(fā)環(huán)境。程序設(shè)計語言采用匯編語言與C語言混合編程。設(shè)計語言是以C語言為主,匯編語言主要完成MCU的初始化設(shè)置。軟件采用模塊化設(shè)計,提高了程序的可移植性和可維護性。系統(tǒng)的軟件主要分為初始化模塊,氣壓采集模塊,數(shù)據(jù)獲取模塊,數(shù)據(jù)處理模塊,數(shù)據(jù)存儲模塊、串口發(fā)送模塊和中斷服務(wù)程序模塊等構(gòu)成。初始化程序僅在系統(tǒng)復(fù)位及程序開始時執(zhí)行一次,完成MCU初始化及外圍芯片的初始化;氣壓采集模塊通過模擬量輸入端口采集大氣壓力;數(shù)據(jù)獲取模塊負(fù)責(zé)數(shù)據(jù)變送器節(jié)點和智能傳感器進行交互,獲取它們的測量數(shù)據(jù)。數(shù)據(jù)處理模塊負(fù)責(zé)對采集到的各傳感器的原始數(shù)據(jù)進行分析處理,生成符合系統(tǒng)要求的數(shù)據(jù)。數(shù)據(jù)存儲模塊每分鐘工作一次,完成數(shù)據(jù)向FLASH和SD卡的寫入。串口發(fā)送模塊在整分鐘時刻向遠端監(jiān)控主機發(fā)送預(yù)定格式數(shù)據(jù)幀。
圖3 主程序軟件流程圖
主程序軟件流程如圖3所示。
根據(jù)觀測規(guī)范,需要存儲的特征數(shù)據(jù)有以下4類:
(1)氣象數(shù)據(jù):多路溫度、濕度、風(fēng)速、風(fēng)向數(shù)據(jù),氣壓數(shù)據(jù);
(2)水文數(shù)據(jù):水溫、水位;
(3)工作狀態(tài):CPU溫度、工作電壓、復(fù)位時間等;
(4)系統(tǒng)配置信息:如傳感器層數(shù)、傳感器修正系數(shù)等。
按每分鐘存儲一次特征值計算,24 h連續(xù)運行模式下,至少可以存儲3個月數(shù)據(jù)。
為了方便數(shù)據(jù)的處理和存儲,所有的浮點測量值和負(fù)測量值,經(jīng)過約定的規(guī)則處理后變換成正整數(shù)值。系統(tǒng)的存儲結(jié)構(gòu)采用循環(huán)緩沖存儲結(jié)構(gòu),這種結(jié)構(gòu)被廣泛用于連續(xù)流數(shù)據(jù)的存儲和通信。具體的實現(xiàn)方法是為每天需要存儲的數(shù)據(jù)開辟一塊連續(xù)的存儲區(qū),每分鐘依次寫入一次測量數(shù)據(jù),隨即指針地址移動到下一個寫入?yún)^(qū)域,當(dāng)寫入到芯片存儲區(qū)末尾的時候,再從存儲區(qū)的首部開始寫入數(shù)據(jù)。
為存儲每分鐘一次的實時數(shù)據(jù)幀,系統(tǒng)還設(shè)計了一個SD卡存儲模塊,存儲模塊每天在SD卡上生成一個數(shù)據(jù)文件。文件名稱的格式是:YYMMDD.TTZ。其中YY代表年,MM代表月,DD代表日。每整分鐘時刻向SD卡存儲一次觀測數(shù)據(jù)。當(dāng)實時時鐘是23時59分時,存儲該分鐘的數(shù)據(jù)后,自動將當(dāng)天的文件關(guān)閉。在每天00時00分時,新建一個數(shù)據(jù)文件,并打開該文件,寫入該分鐘的實時數(shù)據(jù)幀,保存文件。
上位機軟件采用Visual C++Builder 6.0編寫,操作系統(tǒng)選用Windows XP。軟件主要功能是接收數(shù)據(jù)采集器發(fā)送的觀測數(shù)據(jù),并對數(shù)據(jù)進行保存、處理和發(fā)送(通過北斗通信機將原始觀測數(shù)據(jù)發(fā)送到數(shù)據(jù)中心)。此外,軟件還具有數(shù)據(jù)調(diào)取功能,可以讀取數(shù)據(jù)采集器中保存的原始觀測數(shù)據(jù)。
2009年9月開始,系統(tǒng)在現(xiàn)場進行安裝運行。系統(tǒng)24 h連續(xù)開機,始終處于正常狀態(tài),性能滿足項目的需求。圖4是上位機軟件界面,圖5是在南海取得的風(fēng)速和相對濕度測量數(shù)據(jù)曲線。
基于RS-485總線的海氣邊界層監(jiān)測系統(tǒng)現(xiàn)場安裝的傳感器不是逐一全部直接連接到同一個數(shù)據(jù)采集器上,而是通過分布式采集模式將氣象傳感器連接至數(shù)據(jù)變送器上,再通過RS-485總線與數(shù)據(jù)采集器通訊,大大減少了現(xiàn)場線纜數(shù)量,方便現(xiàn)場布線。而且傳感器輸出的物理量已經(jīng)通過數(shù)據(jù)變送器實現(xiàn)數(shù)字化,誤差在要求的范圍之內(nèi),因而使用RS-485總線傳輸數(shù)據(jù)時不會產(chǎn)生精度上的損失,保證了整個系統(tǒng)的采集精度。數(shù)據(jù)采集器則通過集中模式采集水文和氣壓傳感器數(shù)據(jù)。這種混合采集的模式,簡化了系統(tǒng)的結(jié)構(gòu),提高了設(shè)計效率,便于系統(tǒng)擴展,方便現(xiàn)場測試和維護。
圖4 軟件界面
圖5 實時數(shù)據(jù)曲線
[1]Silicon Laboratories.C8051F020 Datasheets.2005.
[2]EXAR Corp.XR16L784 Datasheets,2008.
[3]B&BElectronics.RS-422 and RS-485 Application Note,2006.
[4]B&BElectronics Technical Article#1.Basics ofThe RS-485 Standard,1994.
[5]孫樹文,張慧慧,楊建武,等.CAN總線在潛水電機分布式監(jiān)控系統(tǒng)中的應(yīng)用[J].計算機測量與控制,2006,14(11):1499-1501.
[6]門雅彬,張齊,成方林.RS-485總線在海氣邊界層監(jiān)測系統(tǒng)中的應(yīng)用[J].電子產(chǎn)品世界,2009(7):37-39.
Design of Air-Sea Boundary Layer Monitoring System
MEN Ya-bin,CHENG Fang-lin,ZHANG Yi-fei,ZHANG Qi
(National Ocean Technology Center,Tianjin 300112,China)
An air-sea boundary layer monitoring system based on RS-485 bus is introduced.The monitoring host computer can communicate with the data transmitter and the intelligent sensors directly via the RS-485 bus,thus simplifying the system structure and realizing distributed control and concentrated management of the measurement nodes.The main control board block diagram of the system,hardware design,communication protocol design and main program flow chart are discussed.The application shows that the system is easy to install and has high reliability.
air-sea boundary layer;distributed measure system;RS-485 bus;data acquisition
P715;TN4
B
1003-2029(2011)04-0050-04
2011-02-20
國家海洋減災(zāi)專項資助項目
門雅彬(1977-),男,高級工程師,碩士。主要研究方向是嵌入式系統(tǒng)、智能儀器在海洋監(jiān)測技術(shù)上的應(yīng)用。Email:13802113637@163.com