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