一種線型組網(wǎng)的三線制數(shù)據(jù)測量方法
引言
現(xiàn)場測量中,常遇到測點呈線狀分布的情形,例如,輸電線路,輸油管道,河流沿線,城市管網(wǎng)等,這類監(jiān)測數(shù)據(jù)有如下特點:
(1)間隔距離各不相同。例如:石油輸送管道的流量壓力,監(jiān)測點可1 km一個;城市路燈損壞監(jiān)測25 m一個。
(2)對傳輸速率要求不高。例如:路燈是否損壞的監(jiān)測,煤礦坑道傾斜度監(jiān)測,可以幾分鐘一次,河流沿線水質(zhì),溫度信息甚至可以每小時一次。
(3)測點物理順序可以作為監(jiān)測點的邏輯次序,只要順序檢測各點的數(shù)據(jù)即可,不要求某個編號的數(shù)據(jù)單獨傳送。
(4)測點數(shù)量眾多,例如10 km長的路燈監(jiān)測點就有400個。
對于這些現(xiàn)場常遇到的線狀分布測點,如果采用總線式的組網(wǎng)結構,可以很好的簡化布線形式,所有測點連接到總線上即可。實際上,已經(jīng)有很多這類總線可供選擇,例如,CAN總線,485總線,IEEE1394總線,Profi-bus總線,HART總線,甚至有自成總線的器件,如數(shù)字溫度傳感器DS18B20.但是這些方案都不是針對上述數(shù)據(jù)特點量身定做的,有的追求高可靠性,有的追求網(wǎng)絡速度,還存在成本高、協(xié)議復雜、需要逐個測點編址等問題[3].所以,本文提出了一種基于單片機構成的針對線狀測點的三線制組網(wǎng)方案,它具有自帶電源、協(xié)議簡單、靈活多變等特點,可以極大簡化電路設計和系統(tǒng)設計。
1系統(tǒng)構成及原理
1.1硬件構成
1.1.1系統(tǒng)總體構成
三線制測量系統(tǒng)的構成圖如圖1所示,由一個主機和若干單元構成,三線分別定義為電源、信號、地線。主機能控制單元的供電,由開關J1完成,它可以是繼電器的硬觸點,也可以是VDMOS管軟觸點。當主機需要采集數(shù)據(jù)時,首先閉合J1,使所有單元上電,然后通過信號線R/T來控制各個單元依次上傳數(shù)據(jù)。其中1,2,…,N代表N個測量單元。
如果需要傳送模擬信號,則要另外增加模擬信號總線,單元結構如圖2所示。
1.1.2單元結構
單元的內(nèi)部組成,根據(jù)測量參數(shù)不同各有所異,這里給出一個傾角測量的例子,使用傾角傳感器,原理圖如圖2所示。上電測量是自動進行的,完成后等待輸入端R接受啟動脈沖,然后進入本單元數(shù)據(jù)發(fā)送,這期間本單元與主機是直通的,當本單元數(shù)據(jù)傳送完成后,則等待輸入端的結束脈沖,然后本單元向下單元發(fā)送啟動脈沖,隨后本單元進入透傳(或稱傳話筒)模式,相當于直通,主機可以跟下個單元進行通信,依次類推。
在單元示結構意圖中,還增加了2條模擬信號線,因為傾角傳感器既有數(shù)字量輸出(通過SPI接口)也有模擬量輸出(通過Vf端)。如果想直接采集到單元的模擬量,則增加模擬開關和模擬信號總線,當單元處于工作狀態(tài)時,閉合模擬開關,把模擬量送到總線上。
1.2工作原理
主機啟動一次數(shù)據(jù)采集時,首先閉合開關J1,總線VCC得電,所有單元同時上電,單元內(nèi)的單片機開始工作。單元的工作分為待機、工作、透傳3種模式。上電后,所有單元進入待機模式,主機先向距離最近的1#單元發(fā)出啟動脈沖,1#單元由“待機”轉為“工作”模式,它會啟動傳感器,點亮指示燈L1,表示本單元是活動的,這時,主機可以與1#單元進行直接的通信,命令1#單元的進行測量并讀取數(shù)據(jù),完畢后,主機發(fā)送結束脈沖,命令1#單元結束活動態(tài)。1#單元在向2#單元發(fā)送啟動脈沖后進入透傳模式。于是,收到1#發(fā)出的啟動脈沖,2#單元成為活動單元,點亮指示燈L1,進入工作模式。由于1#單元的透傳作用,主機可以直接跟2#單元通信,直到2#單元收到結束指令后,它啟動下個單元,然后自己變成透傳,這樣依次類推,各個單元逐個變成活動單元,主機總是透過已經(jīng)變成透傳模式的單元,直接與活動單元進行通信,獲取數(shù)據(jù),直到全部單元都完成數(shù)據(jù)采集。
因此,在整個三線制網(wǎng)絡中,只有一個是活動單元,活動單元前面,是完成了數(shù)據(jù)采集變成透傳模式的單元;在活動單元后面,是等待啟動的待機單元。主機能夠直接與活動單元聯(lián)系,使用靈活約定的協(xié)議和速率,是本文提出三線制線狀組網(wǎng)的一大優(yōu)勢。
主機與活動單元通信時,可以直接使用單片機的串口通信模式,在數(shù)據(jù)量小的時候,約定使用較低的波特率可以獲得較遠的傳送距離。用來啟動和停止單元工作的脈沖命令,可以有2種形式:
(1)直接使用串行通信來改變單元的工作模式,只要約定主機下發(fā)給單元的串行數(shù)據(jù)命令字即可,例如約定0X55為啟動命令,0XAA為停止命令;(2)使用脈沖寬度控制,只要命令脈沖與通信波特率通信脈沖有明顯區(qū)別不產(chǎn)生混淆就可以,例如波特率使用1 200,啟動和停止脈沖使用寬度為30 ms的低電平。
1.3特點分析
總結上述闡述,本文提出的三線制線狀組網(wǎng)具有如下特點:
(1)自帶電源:三線中有一根電源線,所有單元可以直接授電;(2)功耗低:工作過程中,只有一個單元是活動的,處于待機和透傳模式的單元,可以關閉所轄傳感器的供電,只讓單片機帶電,如果使用MSP433超低功耗單片機,100個單元的功耗也不會超過1 mA.
(3)協(xié)議靈活:主機是通過透傳單元直接與活動單元通信,允許系統(tǒng)搭建者使用自己約定的通信協(xié)議;(4)傳送距離遠:主機是通過接力與每個單元通信的,只要每個單元之間能有效傳送,多個單元構成的整個系統(tǒng)就能正常工作。
(5)擴展方便:當需要模式量傳送時,只要再增加一條總線,每個單元增加模擬開關,活動單元把模擬開關閉合,該單元的模擬量就可以上傳到總線上,送給主機。
(6)無需單元編號:主機是順序與各個單元建立聯(lián)系的,所有單元完全一樣,沒有地址編號環(huán)節(jié),適合批量生產(chǎn)制作。
2程序編制
下面是主機和單元的程序編制流程與說明。
主機程序流程如下:
①上電→②等待采集時間到→③啟動供電開關J1→④發(fā)出啟動命令→⑤等待單元發(fā)回應答→⑥與單元通信完成采集→⑦發(fā)出結束命令→⑧判斷單元是否全部完成采集→⑨關閉J1供電→回到②等待下次采集。
其中,在⑤如果等不到單元發(fā)回的確認,要回到斷開J1回到③重新開始,如果多次重復均不成功,要做出錯處理;在第⑧步,如果單元采集沒有完成,則回到第⑤等待下個單元的回復確認。
對于每天只有幾次采集的低頻度情形,可使用低功耗定時振蕩器,用硬件電路控制主機的CPU供電,達到采集時刻主機才上電工作1次,大大降低功耗,適合在野外現(xiàn)場做數(shù)據(jù)采集。
單元程序流程如下:
①上電→②等待啟動命令→③啟動傳感器采集數(shù)據(jù)/點亮L1/與主機通信/完成數(shù)據(jù)采集→④等待結束命令→⑤向下個單元發(fā)送啟動命令→⑥進入透傳模式。
其中透傳模式的編程框圖見圖3,思路如下:
(1)透傳的含義是既可以從接收主機方向數(shù)據(jù)傳給后面的單元,也可以從后面單元接收數(shù)據(jù)傳給主機(2)認為常態(tài)是高電平,不停檢測左右兩邊的電平,為高時表示沒有數(shù)據(jù)傳遞。
(3)無論在哪個方向檢測到低電平,都立即把低電平傳輸?shù)搅硪粋€方向,直到這個低電平消失,便取消另一個方向的低電平。
3傳送距離
傳送距離受透傳單元引入的脈沖寬度失真和單元電壓跌落兩個因素影響,下面分別討論。
3.1透傳單元對脈沖的寬度的失真
單元之間傳輸延遲如圖4所示,命令由第N - 1單元傳向第N單元,在t1時刻發(fā)出,t2時刻結束,寬度為T1.線路電容等帶來脈沖的下降和上升時間,第N單元認定的翻轉時刻,由該單元的輸入端閾值決定,它認定的寬度為T2.同樣道理,這個寬度傳送到N + 1單元時被認定為T3.T1,T2 ,T3會有差異,造成脈寬逐級失真,超過一定限度就無法正確通信(串口專用11.059M晶體用12M代替就無法工作,這時誤差僅為8%)。解決逐級失真的辦法有兩個:
(1)加快脈沖上升下降時間,可在單元的信號線加上拉電阻。上拉電阻的最小值,要保證它灌入的電流小于單片機能吸入電流的最大值;上拉電阻的最大值,要考慮它與信號線電容的時間常數(shù)小于通信脈寬的10%.例如,100 m的單元距離,按照普通絞線100 pF/m的分布電容,C = 100 pF×100=0.01μF,如果使用1 200波特率,信號脈寬800μs,則時間常數(shù)應小于80μs,用τ= RC計算,上拉電阻R =τC = 80μs /0.01μF =8 kΩ。按照經(jīng)驗這個數(shù)值是可以用于單片機上拉的。
(2)智能判別法,透傳單元不直接轉發(fā)電平值,而是把整個字節(jié)或脈沖接收完畢后,判明是什么數(shù)據(jù)或脈沖,用約定的波特率或脈寬向下個單元轉發(fā),這樣可以保證沒有累計的脈沖失真。
實際上,由于單元的一致性,累計誤差并不大,在波特率1 200時,使用1 kΩ上拉電阻可以輕松實現(xiàn)10 m單元間距上百個單元級聯(lián)。
3.2各個單元用電造成的供電降低和地線壓降
供電電壓的降低和地線壓降的影響分為3個方面討論。
3.2.1遠端單元供電電壓的降低
離開主機越遠,單元供電越低。設第1個單元與主機距離L1 m,每個單元距離L2 m,總單元個數(shù)為M,待機單元電流I1,工作單元電流I2,主機供電電壓為VCC,總線的每米電阻為r,則第N個單元的電壓VN = VCC - L1*r*[(N - 1)*I1 + I2] - L2*r*[(N - 1)*I2 + (N - 2)(N - 1) 2].
當L1 = 100 m,L2 = 10 m,M = 100個單元,I1 =10μA,I2 = 10 mA,VCC = 5 V,每米電阻r = 0.01Ω(截面1.5 mm2導線),則最尾端單元N =100得到的電壓為4.8 V,沒有超出5%波動,可以認定這個電壓在正常范圍。
以上是100個單元1 000 m距離的情形,具有一定的代表意義。
3.2.2單元之間產(chǎn)生的邏輯電平差
一般認為,在TTL系統(tǒng)中,低電平高于0.5 V,高電平低于3.5 V會出現(xiàn)不定態(tài)。在有上拉時,主要考慮低電平問題,后級的低電平要疊加地線壓降作為前級的低電平。顯然,最大疊加電壓出現(xiàn)在第1個單元與主機之間,在上述參數(shù)下,這個疊加電壓約100 m的線路加上活動電流再加上100個單元的待機電流,約為10μA×100+10 mA=11 mA,在100 m線路產(chǎn)生的壓降為11 mA×0.01 m=11 mV,數(shù)值很低,可忽略不計。
3.2.3附加模擬信號總線時產(chǎn)生的誤差
到達主機的模擬電壓會附加上各單元間地線的電壓差。有2個辦法可以解決這個問題,一是修正法,根據(jù)采樣的單元個數(shù),減去所經(jīng)過的單元的地線電壓差。
例如,采樣第10個單元,疊加的電壓為100 m×0.01Ω×11 mA+10 m×10×0.01Ω×11 mA=22 mV,主機采樣電壓時減去這個數(shù)值可近似認為是準確電壓。二是采用雙線差分信號傳輸,經(jīng)過2個模擬開關選通,不但傳送N單元的模擬信號,還傳送N單元的地線到主機,經(jīng)過主機的差分放大器,取出N單元的實際模擬信號,如圖2所示。
3.3供電方式
上述示意圖中,主機供電VCC是直接連接到各個單元的,在遠距離時會產(chǎn)生電壓降。可以使用兩種方案避免:一是每個單元增加一個可關斷DC/DC穩(wěn)壓模塊,被選中的單元接通模塊,只給本單元供電,這樣做的優(yōu)點是待機單元不啟動DC/DC模塊,不增加任何功耗,缺點是成本稍高;二是采用較高電壓供電,例如12 V,每個單元設立線性降壓至5 V后給單片機和傳感器使用,這樣做的優(yōu)點是簡單、低成本,缺點是各個單元的降壓電路在持續(xù)工作,會增加靜態(tài)電流。
4結語
本文提出的組網(wǎng)方法,非常適合于線狀分布的測點,方便實用,簡明易用,在低速場合可以獲得很遠的傳送距離,還能擴展傳送模擬信號,經(jīng)過多個項目的運用,證明其穩(wěn)定、簡單、價廉,具有一定的實用價值。