BACnet網(wǎng)絡(luò)講義_第1頁
BACnet網(wǎng)絡(luò)講義_第2頁
BACnet網(wǎng)絡(luò)講義_第3頁
BACnet網(wǎng)絡(luò)講義_第4頁
BACnet網(wǎng)絡(luò)講義_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第1章BACnet協(xié)議概述本章介紹BACnet協(xié)議的產(chǎn)生及協(xié)議模型,討論BACnet網(wǎng)絡(luò)的體系結(jié)構(gòu)、拓撲結(jié)構(gòu)、協(xié)議棧以及數(shù)據(jù)流。§1.1 BACnet協(xié)議模型  BACnet簡介BACnet(AData Communication Protocol for Building Automation and Control Network)是一種為樓宇自動控制網(wǎng)絡(luò)所制定的數(shù)據(jù)通信協(xié)議,它由美國冷暖空調(diào)工程師協(xié)會組織的標(biāo)準(zhǔn)項目委員會135P(Standard Projec

2、t Committee: SPC 135P)于1995年6月制定。BACnet標(biāo)準(zhǔn)產(chǎn)生的背景是用戶對樓宇自動控制設(shè)備互操作性(Interoperability)的廣泛要求,即將不同廠家的設(shè)備組成一個一致的自控系統(tǒng)。BACnet實現(xiàn)樓宇自控設(shè)備的互操作性的思想是這樣的,一般樓宇自控設(shè)備從功能上講分為兩部分,一部分專門處理設(shè)備的控制功能,另一部分專門處理設(shè)備的數(shù)據(jù)通信功能,不同廠商生產(chǎn)的設(shè)備使用各自專門的數(shù)據(jù)通信的方式,所以不同廠商的設(shè)備之間沒有很好的互操作性。BACnet就是要建立一種統(tǒng)一的數(shù)據(jù)通信的標(biāo)準(zhǔn),用于設(shè) 備的 通 信 部 分,從而使得按這種標(biāo)準(zhǔn)生產(chǎn)的設(shè)備,

3、都可以進行通信,實現(xiàn)互操作性。BACnet標(biāo)準(zhǔn)只是規(guī)定了樓宇自控設(shè)備之間要進行“對話”所必須遵守的規(guī)則,并不涉及如何實現(xiàn)這些規(guī)則,各廠商可以用不斷進步的技術(shù)來開發(fā),從而使得整個領(lǐng)域的技術(shù)不斷進步。  BACnet協(xié)議模型 SPC征集了各方面的意見,同時參考了國際上各種現(xiàn)已成文的或是事實上的數(shù)據(jù)通信標(biāo)準(zhǔn),討論得出了一個具有以下特性的網(wǎng)絡(luò)協(xié)議模型:(1) 所有的網(wǎng)絡(luò)設(shè)備,除了主從/令牌傳遞式從屬機(MS/TP slaves : master-slave/token-passing slaves)以外,都是對等的(Peer)。當(dāng)然某些同等設(shè)

4、備可能比其他具有更多的特權(quán)(Privilege)和職責(zé)(Responsibility)。(2)每一個網(wǎng)絡(luò)設(shè)備都稱之為是一個“對象”(Object)的實體(entity),這是一個具有網(wǎng)絡(luò)訪問特征的集合模型。每個對象又用一些“屬性”(Property)來描述,這些屬性表示了設(shè)備的硬件、軟件以及操作的各個方面。在不需要了解設(shè)備內(nèi)部設(shè)計或配置細節(jié)的情況下,對象提供了識別和訪問設(shè)備信息的方法。盡管該標(biāo)準(zhǔn)規(guī)定了廣泛的應(yīng)用對象的類型以及它們的屬性,但是一旦需要,利用開發(fā)工具仍可以自由地增加新的對象類型。(3)通信功能是通過讀寫某些對象的屬性,以及利用其他協(xié)議提供的“服務(wù)”(Service)來完成的。盡管該

5、標(biāo)準(zhǔn)規(guī)定了一套詳盡的服務(wù),但是一旦需要,該標(biāo)準(zhǔn)的機制也同樣允許利用開發(fā)工具增加新的服務(wù)。(4)設(shè)備的完善性(Sophistication),即實現(xiàn)特定服務(wù)請求或理解特定對象類型種類的能力,是由設(shè)備的“一致性類別”(Conformance Class)所反映的。每一種類別定義了一個包括服務(wù)、對象、屬性的最小集合,聲明為某一類別的設(shè)備必須支持其相應(yīng)的集合。(5)由于該標(biāo)準(zhǔn)遵循了ISO的“分層”通信體系結(jié)構(gòu)的概念,因此使用不同的網(wǎng)絡(luò)訪問方法和物理介質(zhì)可以交換相同的報文。這樣可以根據(jù)傳輸速度和吞吐量的要求,采用相宜的開銷來配置BACnet網(wǎng)絡(luò)。(6)該標(biāo)準(zhǔn)是為暖氣、通風(fēng)、空調(diào)、制冷控制設(shè)備所

6、設(shè)計的,同時它也為其他樓宇控制系統(tǒng)的集成提供了基本原則,例如照明、保安、消防系統(tǒng)等。雖然這些擴展超出了該標(biāo)準(zhǔn)的范圍,但實現(xiàn)起來卻簡單明了。并且,標(biāo)準(zhǔn)中定義的許多對象和服務(wù)也可以不加修改地被應(yīng)用。當(dāng)然,一旦這些其他類型的樓宇控制功能需要,也可以簡單方便地定義新的對象和服務(wù)。(7)該標(biāo)準(zhǔn)的目的是為暖氣、通風(fēng)、空調(diào)、制冷控制設(shè)備和其它樓宇自控設(shè)備的監(jiān)控定義數(shù)據(jù)通信的服務(wù)和協(xié)議。除此之外,標(biāo)準(zhǔn)還定義了抽象的、面向?qū)ο蟮谋硎痉?,用來描述這些設(shè)備間的信息通信,以便于在樓宇中使用數(shù)字控制技術(shù)。所有的通信協(xié)議都是一個解決各種信息交換問題的方案的集合,并且隨著時間的推移和技術(shù)的進步而不斷改變,BACnet網(wǎng)絡(luò)同

7、樣也不例外。§1.2 BACnet協(xié)議的體系結(jié)構(gòu)國際標(biāo)準(zhǔn)化組織在制定計算機網(wǎng)絡(luò)通訊協(xié)議標(biāo)準(zhǔn)時定義了一個模型,稱為開放式系統(tǒng)互聯(lián)參考模型(OSI模型),模型的目的是解決計算機與計算機之間普遍的通信問題,并將這個復(fù)雜的問題分解成7個小的、易解決的子問題,每個子問題只與某些通信功能相關(guān)聯(lián),如圖1-1所示。這樣每個子問題便形成了協(xié)議體系結(jié)構(gòu)中的一“層”。任何兩個遵循該模型及有關(guān)標(biāo)準(zhǔn)的設(shè)備或系統(tǒng),都可以實現(xiàn)互連和互操作。SPC制定BACnet標(biāo)準(zhǔn)時,確定BACnet作為一種開放性計算機局域網(wǎng)協(xié)議,它仍然采用OSI模型的“分層”通信體系結(jié)構(gòu)的概念。在確定分層的層數(shù)時,考慮了下列兩個因素

8、:第一,OSI模型的實現(xiàn)需要很高的費用,實際上在絕大部分樓宇自控系統(tǒng)應(yīng)用中也并不需要這么多的層次。但是從OSI的功能性方面考慮,經(jīng)過簡化后,OSI模型仍然是設(shè)計樓宇自控協(xié)議的一個很好參考,如果只包含OSI模型中被選擇的層次,其它各層則去掉,這樣減少了報文長度,降低了通信處理開銷,同時也會節(jié)約樓宇自控工業(yè)的生產(chǎn)成本。第二,如果能夠充分利用現(xiàn)有的、易用的、廣泛使用的局域網(wǎng)技術(shù),如Ethernet、ARCNET和LonTalk,不但可以降低成本,同時也有利于性能的提高。由此,SPC確定BACnet標(biāo)準(zhǔn)協(xié)議體系結(jié)構(gòu)為一個包含四個層次的分層體系結(jié)構(gòu),這四個層次相對于OSI模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)

9、層和應(yīng)用層,如圖1-2所示。BACnet標(biāo)準(zhǔn)定義了自己的應(yīng)用層和網(wǎng)絡(luò)層,對于其數(shù)據(jù)鏈路層和物理層,提供了以下五種選擇方案: 第一種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ISO 8802-3介質(zhì)訪問控制(MAC)協(xié)議和物理層協(xié)議。ISO 8802-2類型1提供了無連接不確認的服務(wù),ISO 8802-3則是著名的以太網(wǎng)協(xié)議的國際標(biāo)準(zhǔn)。 第二種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ARCNET(ATA/ANSI 878.1)。 第三種選擇是主從/令

10、牌傳遞(MS/TP)協(xié)議加上EIA-485協(xié)議。MS/TP協(xié)議是專門針對樓宇自控設(shè)備設(shè)計的,它通過控制EIA-485的物理層,向網(wǎng)絡(luò)層提供接口。 第四種選擇是點對點(PTP)協(xié)議加上EIA-232協(xié)議,為撥號串行異步通信提供了通信機制。 第五種選擇是LonTalk協(xié)議。 這些選擇都支持主/從MAC、確定性令牌傳遞MAC、高速爭用MAC以及撥號訪問。拓撲結(jié)構(gòu)上,支持星型和總線型拓撲;物理介質(zhì)上,支持雙絞線、同軸電纜、光纜。以下詳細討論BACnet選擇一個四層體系結(jié)構(gòu)的原因。首先仔細考慮BACnet網(wǎng)絡(luò)的獨特特征。BACnet的特征主要有以下兩點: (1)&

11、#160;BACnet網(wǎng)絡(luò)是一種局域網(wǎng)。即使在某些應(yīng)用中,樓宇中設(shè)備間遠距離的通信必不可少時,這一點仍然是不變的。這種遠距離的通信功能,是由電信網(wǎng)來實現(xiàn)。通信過程中要解決的路由、中繼、可靠傳輸?shù)葐栴},都由電信網(wǎng)來處理。在此電信網(wǎng)可看成是BACnet網(wǎng)絡(luò)外部的部分。 (2) BACnet設(shè)備是靜態(tài)的,即在空間上,它們不會經(jīng)常被移來移去。在要完成的功能上,從某種意義上說也是不變的,即不會今天生產(chǎn)的設(shè)備的功能是這樣,明天就完全不同了。 在充分了解BACnet網(wǎng)絡(luò)的特征后,就可討論OSI模型的各層在BACnet網(wǎng)絡(luò)中的適用性了。OSI模型的物理層提供了設(shè)備間的物理連接,以

12、及傳輸載波信號的方式。顯然在BACnet協(xié)議中,物理層是必不可少的。 OSI模型的數(shù)據(jù)鏈路層,負責(zé)將數(shù)據(jù)組織成幀(Frame)或分組(Packet)、管理通訊介質(zhì)的訪問、尋址(Address),以及完成一些錯誤校正(Error Recovery)和流量控制。這些都是BACnet協(xié)議所需要的,因此數(shù)據(jù)鏈路層也是必不可少的。 OSI網(wǎng)絡(luò)層的功能,包括將全局地址解析為局部地址,在一個或多個網(wǎng)絡(luò)中進行報文的路由,協(xié)調(diào)不同類型網(wǎng)絡(luò)的差異(如不同網(wǎng)絡(luò)所允許的最大報文長度),序列控制,流量控制,差錯控制,以及多路復(fù)用。由于BACnet網(wǎng)絡(luò)的拓撲特點,在各個設(shè)備之間只存在一條邏輯

13、通路(參見圖3),這樣便不需要最優(yōu)路由的算法。其次,BACnet網(wǎng)絡(luò)是由中繼器或網(wǎng)橋互聯(lián)起來的一個或多個網(wǎng)段所組成的網(wǎng)絡(luò),它具有單一的局部地址空間。在這樣一種單一網(wǎng)絡(luò)中,許多OSI網(wǎng)絡(luò)層的功能也變得多余,或者與數(shù)據(jù)鏈路層相重復(fù)。當(dāng)然在某些BACnet網(wǎng)絡(luò)系統(tǒng)中,網(wǎng)絡(luò)層也可能是必不可少的。例如,在一個BACnet的網(wǎng)際網(wǎng)(internet)中,當(dāng)兩個或多個網(wǎng)絡(luò)使用了不同的MAC層時,便需要區(qū)別局部地址和全局地址,這樣才能將報文路由到正確的網(wǎng)絡(luò)上去。在BACnet協(xié)議中,通過定義了一個包含必要的尋徑和控制信息的網(wǎng)絡(luò)層頭部,來完成這種簡化了的網(wǎng)絡(luò)層功能。 傳輸層主要是負責(zé)提供可靠的端到端的

14、報文傳輸、報文分段、序列控制、流量控制,以及差錯校正。傳輸層的許多功能與數(shù)據(jù)鏈路層相似,只是在作用范圍上有所不同。傳輸層提供的是端到端的服務(wù),而數(shù)據(jù)鏈路層則提供的是單一網(wǎng)絡(luò)上點到點的服務(wù)。由于BACnet支持多種網(wǎng)絡(luò)的配置,因此協(xié)議必須提供傳輸層端到端的服務(wù)。在BACnet網(wǎng)絡(luò)中要提供三個方面的傳輸層的功能,第一是可靠的端到端傳輸和差錯校正功能,第二是報文分段和端到端的流量控制,第三是實現(xiàn)報文的正確重組,序列控制。由于BACnet是建立在無連接的通信模型基礎(chǔ)上的,因此所需的服務(wù)大大減少,并且可以被高層來實現(xiàn),所以,傳輸層的這些功能可以通過BACnet應(yīng)用層來實現(xiàn),這樣,在BACnet協(xié)議體系中

15、不單獨設(shè)置傳輸層,相應(yīng)的功能放在應(yīng)用層中完成,從而節(jié)省了通信開銷。 會話層的功能是在通信雙方之間建立和管理長時間對話。包括建立同步標(biāo)志點,用來在出錯時回復(fù)到前一個標(biāo)志點,以避免對話重新開始。但在一個BACnet網(wǎng)絡(luò)中,絕大部分的通信都是很簡短的,比如讀寫一個或一些值,通知某個設(shè)備某個警報或事件,或者更改某個設(shè)定值。當(dāng)然長時間的信息交換偶然也會發(fā)生的,比如上載或下載某個設(shè)備。由于絕大部分事務(wù)處理都是簡短的,會話層的服務(wù)極少用到,再考慮到帶來的開銷,因此BACnet標(biāo)準(zhǔn)中不包括這層。 表示層為通信雙方提供了屏蔽下層傳送語法的服務(wù)。這種傳送語法是用來將應(yīng)用層中抽象的用戶數(shù)據(jù)表示,

16、變成適合下層傳輸?shù)淖止?jié)序列。但當(dāng)只存在一種傳送語法時,表示層的功能便減少到對應(yīng)用程序的數(shù)據(jù)進行編碼。由于在BACnet在應(yīng)用層中定義了一個固定的編碼方案,因此一個獨立的表示層也變得不再需要。 協(xié)議的應(yīng)用層為應(yīng)用程序提供了完成各自功能所需的通信服務(wù)。在此基礎(chǔ)上,應(yīng)用程序可以監(jiān)控HVAC&R和其它樓宇自控系統(tǒng)。顯然應(yīng)用層是本協(xié)議所必需的。    從以上討論中,可以得到以下幾點: 1  實現(xiàn)一個完全的OSI七層體系結(jié)構(gòu)需要大量的資源和開銷,因此它對于目前的樓宇自控系統(tǒng)是不適用的。 2  根據(jù)OSI模型,

17、采用現(xiàn)有的計算機網(wǎng)絡(luò)技術(shù)將會帶來以下好處:節(jié)約成本,便于與其它計算機網(wǎng)絡(luò)系統(tǒng)集成。 3 根據(jù)樓宇自控系統(tǒng)的環(huán)境及要求,可以通過去除OSI某些層的功能來簡化OSI模型。4 由物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層組成的一個簡化體系結(jié)構(gòu),是當(dāng)今樓宇自控系統(tǒng)的最佳解決方案。§1.3   BAC網(wǎng)絡(luò)的拓撲結(jié)構(gòu)為了應(yīng)用的靈活性,BACnet并沒有嚴格規(guī)定網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。BACnet設(shè)備可以通過專線或撥號異步串行線,與四種局域網(wǎng)之一進行物理相連。而這些網(wǎng)絡(luò)可以通過BACnet路由器或一對半路由器進一步互聯(lián)。 在BACnet網(wǎng)絡(luò)中,

18、定義了如下這樣一些拓撲結(jié)構(gòu): 1.  物理網(wǎng)段(Physical Segment):直接連接一些BACnet設(shè)備的一段物理介質(zhì)。 2.  網(wǎng)段(Segment):多個物理網(wǎng)段通過“中繼器”在物理層連接,所形成的網(wǎng)絡(luò)段。 3.  網(wǎng)絡(luò)(Network):多個BACnet網(wǎng)段通過“網(wǎng)橋”互連而成,每個BACnet網(wǎng)絡(luò)都形成一個單一的MAC地址域。這些在物理層和數(shù)據(jù)鏈路層上連接各個網(wǎng)段的設(shè)備,可以利用MAC地址實現(xiàn)報文的過濾。 4. 網(wǎng)際網(wǎng)(Internetwork):將使用不同LAN技術(shù)的多個網(wǎng)絡(luò),用BACn

19、et“路由器”互聯(lián)起來,便形成了一個BACnet“網(wǎng)際網(wǎng)”。在一個BACnet網(wǎng)際網(wǎng)中,任意兩個節(jié)點之間恰好存在著一條報文通路。這些概念如圖1-3所示。§1.4   BACnet的協(xié)議棧和數(shù)據(jù)流在BACnet中,兩個對等應(yīng)用進程間的信息交換,依然按照OSI技術(shù)報告中關(guān)于ISO的服務(wù)慣例(ISO TR 8509),被表示成抽象的服務(wù)原語的交換。BACnet定義了四種服務(wù)原語:請求、指示、響應(yīng)和證實原語,用來傳遞某些特定的服務(wù)參數(shù)。而包含這些原語的信息,又是由BACnet標(biāo)準(zhǔn)中定義的各種協(xié)議數(shù)據(jù)單元(PDU:Protocol D

20、ata Unit)來傳遞的。 當(dāng)應(yīng)用程序需要同遠地的應(yīng)用進程通訊時,它通過調(diào)用API訪問本地的BACnet用戶單元(應(yīng)用層中為用戶應(yīng)用程序提供服務(wù)的訪問點)。API的某些參數(shù),如接收服務(wù)請求的設(shè)備的標(biāo)志號(或地址)、協(xié)議控制信息等,將直接下傳到網(wǎng)絡(luò)層或數(shù)據(jù)鏈路層。而其余參數(shù)將組成一個應(yīng)用層服務(wù)原語,通過BACnet的用戶單元傳到BACnet的應(yīng)用服務(wù)單元(應(yīng)用層中利用下層服務(wù)完成應(yīng)用層服務(wù)的部分)。 從概念上來講,由應(yīng)用層服務(wù)原語產(chǎn)生的應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU),構(gòu)成了網(wǎng)絡(luò)層服務(wù)原語的數(shù)據(jù)部分,并通過網(wǎng)絡(luò)層服務(wù)訪問點下傳到網(wǎng)絡(luò)層。同樣,這個請求將進一步下傳到本

21、地設(shè)備協(xié)議棧的以下各層。整個過程如圖1-4所示(見下一頁)。 于是,報文就這樣被傳送到遠地的設(shè)備,并在遠地設(shè)備協(xié)議棧中逐級上傳,最后指示原語看起來似乎是直接從遠地的BACnet應(yīng)用服務(wù)單元上傳到遠地的BACnet用戶單元。任何從遠地設(shè)備發(fā)回的響應(yīng),也是以該方式回傳給請求設(shè)備的。  BACnet協(xié)議采用的分層思想,來源與一個簡單的科學(xué)原理分層原理(Layering Principle)。即“在目標(biāo)計算機上的第N層軟件必須恰好接收由在發(fā)送計算機上的第N層軟件所發(fā)送的數(shù)據(jù)”。換句話說,在數(shù)據(jù)發(fā)送前,協(xié)議進行的任何轉(zhuǎn)換在接收時必須被完全地逆轉(zhuǎn)換。如果在發(fā)送計算機上的一個特

22、定層將一個頭部放入幀中,在接收計算機的相應(yīng)層必須除去該頭部。分層思想簡化了協(xié)議的設(shè)計和測試,避免了一層協(xié)議軟件引入其它層可見的改變。這樣,每一層的發(fā)送和接收軟件可獨立于其它層進行設(shè)計、實現(xiàn)、測試。第2章  BACnet應(yīng)用層規(guī)范本章介紹BACnet的應(yīng)用層規(guī)范的原理和運行機制,概要介紹BACnet應(yīng)用層的模型、主要的服務(wù)原語以及應(yīng)用層報文的結(jié)構(gòu),并討論BACnet各種報文的傳輸過程以及與報文傳輸相關(guān)的其它問題。 §2.1  BACnet協(xié)議的應(yīng)用層規(guī)范BACnet網(wǎng)絡(luò)的應(yīng)用層協(xié)議要解決三個問題,向應(yīng)用程序提供通信服務(wù)的規(guī)范,與下層協(xié)議

23、進行信息交換的規(guī)范,和與對等的遠程應(yīng)用層實體交互的規(guī)范。首先對一些相關(guān)的概念進行說明。 應(yīng)用進程是指,為了實現(xiàn)某個特定的應(yīng)用(例如,節(jié)點設(shè)備向一個遠端的溫度傳感器設(shè)備請求當(dāng)前溫度值)所需要的進行信息處理的一組方法。一般來說,這是一組計算機軟件。 應(yīng)用進程分為兩部分,一部分專門進行信息處理,不涉及通信功能,這部分稱為應(yīng)用程序。另一部分處理BACnet通信事務(wù),稱為應(yīng)用實體。應(yīng)用程序與應(yīng)用實體之間通過應(yīng)用編程接口(API)進行交互。BACnet應(yīng)用層協(xié)議只對應(yīng)用實體進行規(guī)范,不涉及應(yīng)用程序和應(yīng)用編程接口。但在具體實現(xiàn)過程中,應(yīng)用編程接口一定是某個函數(shù)、過程或子程序的調(diào)用。

24、60;圖2-1示出了這些概念,圖中陰影部分是應(yīng)用進程位于BACnet應(yīng)用層中的部分。應(yīng)用實體本身又由兩部分組成,分別是BACnet用戶單元和BACnet應(yīng)用服務(wù)單元(ASE)。應(yīng)用服務(wù)單元是一組特定內(nèi)容的應(yīng)用服務(wù),這些應(yīng)用服務(wù)包括:報警與事件服務(wù),文件訪問服務(wù),對象訪問服務(wù),遠程設(shè)備管理服務(wù),虛擬終端服務(wù),和網(wǎng)絡(luò)安全性。用戶單元的功能是支持本地API,負責(zé)保存事務(wù)處理的上下文信息,產(chǎn)生請求標(biāo)志符(ID),記錄標(biāo)志符所對應(yīng)的應(yīng)用服務(wù)響應(yīng),維護超時重傳機制所需的超時計數(shù)器,以及將設(shè)備的行為要求映射成為BACnet的對象。我們將在后續(xù)的文章中介紹這些應(yīng)用服務(wù)和對象的內(nèi)容。 “BACnet設(shè)

25、備”是指任何一種支持用BACnet協(xié)議進行數(shù)字通信的真實的或者虛擬的設(shè)備。一個BACnet設(shè)備有且只有一個“設(shè)備對象”,而且被一個網(wǎng)絡(luò)號和一個MAC地址唯一確定。在大多數(shù)情況下,一個物理設(shè)備就是一個BACnet設(shè)備,例如一個支持BACnet協(xié)議通信的溫度傳感器就是一個BACnet設(shè)備。但是也可能有一個物理設(shè)備具有多個“虛擬的” BACnet設(shè)備的功能,在BACnet標(biāo)準(zhǔn)的附件H中對此進行了詳細規(guī)范。 當(dāng)一個BACnet設(shè)備中的應(yīng)用程序需要與網(wǎng)絡(luò)中其它BACnet設(shè)備中的應(yīng)用程序進行通信時,應(yīng)用程序只需通過調(diào)用API訪問本地的BACnet用戶單元來實現(xiàn)。例如,一個BACnet

26、 設(shè)備的應(yīng)用程序要向一個遠地設(shè)備的應(yīng)用程序發(fā)送一個請求服務(wù)信息,它調(diào)用API,并將相應(yīng)的參數(shù)填入API中。API中的某些參數(shù),如服務(wù)請求接收設(shè)備的標(biāo)志號(或地址)、協(xié)議控制信息等,將直接下傳到網(wǎng)絡(luò)層或數(shù)據(jù)鏈路層;其余參數(shù)則組成一個應(yīng)用層服務(wù)原語,通過BACnet用戶單元傳到BACnet應(yīng)用服務(wù)單元(ASE),形成應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)。APDU則通過網(wǎng)絡(luò)層的服務(wù)訪問點(NSAP)下傳到網(wǎng)絡(luò)層,成為網(wǎng)絡(luò)層服務(wù)原語的數(shù)據(jù)部分。這個請求將進一步下傳到本地設(shè)備協(xié)議棧中的下層,最終由物理層傳送到遠地設(shè)備,并通過遠地設(shè)備協(xié)議棧逐級上傳到遠地用戶單元。從遠地設(shè)備看起來,指示原語似乎是直接從

27、它自己的BACnet應(yīng)用服務(wù)單元傳到其BACnet用戶單元的。同樣,任何從遠地設(shè)備發(fā)回的響應(yīng),也是以相同方式回傳給請求設(shè)備。 BACnet應(yīng)用層協(xié)議包含了OSI模型中的應(yīng)用層到傳輸層中的相應(yīng)內(nèi)容,所以除了應(yīng)用層服務(wù)的功能外,還要有端到端可靠傳輸?shù)墓δ堋R虼?,BACnet應(yīng)用層規(guī)范就是為了保證BACnet設(shè)備的應(yīng)用程序能夠與網(wǎng)絡(luò)中遠地BACnet設(shè)備的應(yīng)用程序進行端到端可靠通信而制定的一組規(guī)則,其主要內(nèi)容包括:BACnet應(yīng)用層提供的服務(wù)類型,上下層之間交換的接口控制信息,和對等層協(xié)議數(shù)據(jù)單元的傳輸機制。 §2.2  BACnet應(yīng)用層服務(wù)類型&

28、#160;BACnet的應(yīng)用層提供兩種類型的服務(wù),分別是“證實服務(wù)”和“非證實服務(wù)”。 在BACnet中,兩個對等應(yīng)用進程間的信息交換,根據(jù)ISO的服務(wù)慣例,被表示成抽象的服務(wù)原語的交換。BACnet定義了四種服務(wù)原語:請求(Request)、指示(Indication)、響應(yīng)(Response)以及證實(Confirm)原語,可以用來傳遞某些特定的服務(wù)參數(shù)。而包含這些原語的信息,又是由標(biāo)準(zhǔn)中定義的各種協(xié)議數(shù)據(jù)單元(PDU)來傳遞的。下面列出各種服務(wù)原語: CONF_SERV. response CONF_SERV. Confirm 

29、CONF_SERV. Request CONF_SERV. indication UNCONF_SERV. request UNCONF_SERV. indication SEGMENT_ACK. request SEGMENT_ACK. request ERROR. request   ERROR. indication REJECT. request   REJECT.&#

30、160;indication ABORT. request ABORT. indication CONF_SERV的標(biāo)識表明使用的是BACnet證實服務(wù)PDU。UNCONF_SERV、SEGMENT_ACK、ERROR、REJECT和ABOUT,分別表明使用的是非證實服務(wù)PDU、分段回應(yīng)PDU、出錯PDU、拒絕PDU和放棄PDU,后面這些都是非證實服務(wù)類型。 證實服務(wù)是建立在客戶/服務(wù)器通信模型的基礎(chǔ)上的,客戶端通過某個服務(wù)請求實例,向服務(wù)器請求服務(wù),而服務(wù)器則通過響應(yīng)請求來為客戶端提供服務(wù),如圖2-2所示。在交互過程中,擔(dān)當(dāng)客戶角色

31、的BACnet用戶,稱為請求方BACnet用戶;擔(dān)當(dāng)服務(wù)器角色的BACnet用戶,稱為響應(yīng)方BACnet用戶。證實服務(wù)的具體過程如下:由請求方BACnet用戶發(fā)出的一個CONF_SERV. request原語,形成請求PDU發(fā)送給響應(yīng)方BACnet用戶。當(dāng)該請求PDU到達響應(yīng)方BACnet用戶時,響應(yīng)方BACnet用戶則收到一個CONF_SERV. indication原語。同樣,由響應(yīng)方BACnet用戶發(fā)出的一個CONF_SERV. response原語,形成響應(yīng)PDU回傳給請求方BACnet用戶。當(dāng)響應(yīng)PDU到達請求方BACnet用戶時,請求方BACnet用戶

32、則收到一個CONF_SERV. CONF_SERV. confirm原語。因此,整個過程中請求方BACnet用戶和響應(yīng)方BACnet用戶都要接收和發(fā)送PDU。 在非證實服務(wù)中,不存在上述客戶/服務(wù)器模型、“請求方BACnet用戶”和“響應(yīng)方BACnet用戶”等概念,只有“發(fā)送方BACnet用戶”和“接收方BACnet用戶”。前者指的是發(fā)送PDU的BACnet用戶,后者指的是當(dāng)一個PDU到達時,接收到一個指示(indication)或證實(confirm)的BACnet用戶。圖2-3為正常的證實服務(wù)報文傳遞的示意圖,圖2-4為正常的非證實服務(wù)報文傳遞的示意圖。

33、67;2.3  BACnet應(yīng)用層報文分析 應(yīng)用層接口控制信息 除了服務(wù)原語和服務(wù)參數(shù)外,應(yīng)用實體還通過API與應(yīng)用程序交換各種接口控制信息(ICI)參數(shù),其具體內(nèi)容取決于服務(wù)原語的類型。應(yīng)用實體接收到的ICI參數(shù)將下傳到下面各層,以便于各層PDU的構(gòu)建。而應(yīng)用實體回傳給應(yīng)用程序的ICI參數(shù),則包含了其以下各層從各自的PDU中得到的信息。 通過API與各種服務(wù)原語交換信息的ICI參數(shù)包括: 1.  “目的地址”(DA:):將要接收服務(wù)原語設(shè)備的地址。其格式(如設(shè)備名稱、網(wǎng)絡(luò)地址等)只與本地有關(guān)。這個地址也可以是多播地址、本地

34、廣播地址或全局廣播地址類型。 2.  “源地址”(SA):發(fā)送服務(wù)原語的設(shè)備的地址。其格式只與本地有關(guān)。  3. “網(wǎng)絡(luò)優(yōu)先權(quán)”(NP):表示網(wǎng)絡(luò)優(yōu)先權(quán)的參數(shù)。 4. “需回復(fù)數(shù)據(jù)”(DER):一個邏輯值參數(shù),用來指明某個服務(wù)是否需要一個回復(fù)服務(wù)原語來確認。  應(yīng)用層協(xié)議數(shù)據(jù)單元的編碼 在BACnet中,使用應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)來傳遞包含在應(yīng)用服務(wù)原語和相應(yīng)的參數(shù)中的信息。BACnet選擇ISO Standard 8824規(guī)范中的方法來表征BACnet服務(wù)的數(shù)據(jù)內(nèi)容。并且,B

35、ACnet規(guī)定了APDU的編碼內(nèi)容,這些編碼內(nèi)容在BACnet標(biāo)準(zhǔn)中的有關(guān)章節(jié)中進行了詳細的描述。 BACnet的APDU由協(xié)議控制信息(PCI)和用戶數(shù)據(jù)兩部分組成。PCI中包含進行應(yīng)用層協(xié)議操作所需要的數(shù)據(jù),這些數(shù)據(jù)包括:APDU的類型,匹配服務(wù)請求和服務(wù)響應(yīng)的信息,執(zhí)行分段報文重組的信息。這些信息包含在報文的頭部,也稱為APDU的固定部分。用戶數(shù)據(jù)中包含每種服務(wù)請求和服務(wù)響應(yīng)的具體信息,這部分也稱為APDU的可變部分。  BACnet報文的分段 為了實現(xiàn)長報文(長度大于通信網(wǎng)絡(luò)、收/發(fā)設(shè)備所支持的長度)的傳輸,有必要對報文進行分段。在BACnet體系結(jié)構(gòu)中,

36、不存在單獨的傳輸層,因此報文分段不是由傳輸層實現(xiàn),而是由應(yīng)用層來完成。并且,在BACnet中只有Confirmed-Request和Complex-ACK報文可能需要分段,因此分段還是BACnet的一個可選特性。 1報文分段的原則 每個由BACnet報文編碼而成的數(shù)據(jù)流序列,按下面規(guī)則進行分段,然后再在網(wǎng)上傳輸。  一個完整的報文盡可能作為一個APDU發(fā)送。  當(dāng)一個完整的報文不可能作為一個APDU發(fā)送時,則應(yīng)分段成最少個數(shù)的多個APDU發(fā)送。  一個報文分段的長度(以bit為單位)應(yīng)是8的整數(shù)倍,即對報文進行分段

37、時,字節(jié)是最小的分割單位。 2BACnet APDU最大長度的確定 在BACnet中,APDU的長度也是沒有固定的,而是定義了一個確定APDU最大長度的原則,即APDU最大長度應(yīng)是以下長度值中的最小值:  設(shè)備所能發(fā)送的APDU的最大長度。一般與本地設(shè)備的緩沖區(qū)大小等本地因素有關(guān)。  BACnet網(wǎng)際網(wǎng)所能傳輸?shù)竭h地設(shè)備的APDU的最大長度。一般由本地、遠地,以及中間傳輸網(wǎng)絡(luò)的數(shù)據(jù)鏈路所決定。  遠地設(shè)備所能接收的APDU的最大長度,其值不能小于50個字節(jié)。 3與分段有關(guān)的協(xié)議控制信息(PCI)

38、 為了支持報文分段,BACnet 協(xié)議在BACnet-Confirmed-Request-PDU和BACnet-ComplexACK-PDU的頭部,定義了四個與分段有關(guān)的協(xié)議控制信息參數(shù)。其中兩個是布爾型參數(shù),另兩個是八位二進制無符號整數(shù)。這些參數(shù)可以使接收方對到達的分段進行正確的重組,從而保證端到端的可靠傳輸。 §2.4  BACnet APDU的傳輸BACnet的APDU收發(fā)協(xié)議的詳細細節(jié),包含在BACnet復(fù)雜的事務(wù)狀態(tài)機制(TSM:Transaction State Machine)中,以下的討論

39、旨在對幾種主要APDU的傳輸過程有整體的認識。 2.4.1證實請求報文的傳輸 客戶端設(shè)備在傳輸了一個完整未分段的證實請求報文(Confirmed-Request Message)后,或在等待接收分段證實請求報文最后一個分段所對應(yīng)的確認信息時,將啟動一個計時器。該計時器用來計量對請求報文回應(yīng)的時間。一旦收到了針對該請求報文所發(fā)的出錯APDU、拒絕APDU、放棄APDU、簡單回應(yīng)APDU或復(fù)雜回應(yīng)APDU,則停止計時,同時通知客戶應(yīng)用程序。如果計時器的時間值超出了客戶設(shè)備對象的APDU_TimeOut屬性值,則整個報文重新發(fā)送,計時器重新計時。所有報文的超時重傳均按此

40、過程進行,直至重傳次數(shù)超出了客戶端設(shè)備對象“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報文將被丟棄,同時通知客戶應(yīng)用程序。 2.4.2分段證實請求報文的傳輸 客戶端設(shè)備在發(fā)送分段證實請求(Segmented Confirmed-Request Message)PDU的第一個分段之前,首先選擇一個預(yù)設(shè)窗口值,以表示它在收到一個分段回應(yīng)之前,一次準(zhǔn)備發(fā)送的報文分段最大個數(shù)。它通常由報文分段的“建議窗口尺寸”參數(shù)表示,取值范圍為1至127,在該處其具體取值只與客戶端有關(guān)。在傳輸完第一個分段后,客戶端設(shè)備將啟動一個計時器,用來計量對報文分段

41、回應(yīng)的時間。一旦收到了針對該報文分段所發(fā)的拒絕APDU、放棄APDU或分組回應(yīng)APDU,則停止計時,同時通知客戶應(yīng)用程序。如果計時器的時間值超出了客戶設(shè)備對象的APDU_Segment_TimeOut屬性值,則這個分段將重新發(fā)送,計時器重新計時。所有報文分段的超時重傳均按此過程進行,直至重傳次數(shù)超出了客戶端設(shè)備對象中“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報文將被丟棄,同時通知客戶應(yīng)用程序。 當(dāng)服務(wù)端設(shè)備收到分段證實請求PDU的第一個分段后,將會選擇一個實際窗口值,以表示它在發(fā)送一個分段回應(yīng)前,一次準(zhǔn)備接收的報文分段最大個數(shù)。同樣,該值的取值范圍也規(guī)定在1至

42、127之間,同時它還不能大于證實請求PDU中的預(yù)設(shè)窗口值,在該處其具體取值只與服務(wù)器端有關(guān)。 在收到第一個分組回應(yīng)APDU后,客戶端設(shè)備從中得到服務(wù)器端設(shè)備的實際窗口值,并將該值設(shè)置成它的實際窗口值。這樣,客戶端設(shè)備和服務(wù)器端設(shè)備的實際窗口值大小一致??蛻舳吮憧梢栽谑盏揭粋€分段回應(yīng)APDU之前,一次發(fā)送多個分段;服務(wù)器端也可以在發(fā)送一個分段回應(yīng)APDU之前,一次接收多個分段。客戶端發(fā)送完整個報文或發(fā)送了窗口值個數(shù)的多個分段后,將啟動一個計時器,用來計量對這些報文分段回應(yīng)的時間。一旦收到了針對這些報文分段所發(fā)的拒絕APDU、放棄APDU或分組回應(yīng)APDU,則停止計時。如果計時器的時間值

43、超出了客戶設(shè)備對象的APDU_Segment_TimeOut屬性值,則這些分段將重新發(fā)送,計時器重新計時。所有報文分段的超時重傳均按此過程進行,直至重傳次數(shù)超出了客戶端設(shè)備對象中“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報文將被丟棄,同時通知客戶應(yīng)用程序。 客戶端在發(fā)送分段的過程中,可能會收到拒絕APDU、放棄APDU或分段回應(yīng)APDU。在這種情況下,收到拒絕APDU或放棄APDU將會中止請求的傳輸;收到分段回應(yīng)APDU,將會作為序號等于或小于該APDU中分段數(shù)參數(shù)值的所有分段的確認,而那些沒有被確認的分段將按上述過程重傳。 2.4.3分段復(fù)雜回應(yīng)報

44、文的傳輸 分段復(fù)雜回應(yīng)報文(Segmented ComplexACK Message)的傳輸過程與分段證實請求報文的傳輸過程相類似,主要不同之處在于:  在分段復(fù)雜回應(yīng)報文的傳輸過程中,由服務(wù)器端設(shè)備發(fā)送復(fù)雜回應(yīng)報文的分段,由客戶端設(shè)備接收并發(fā)分段回應(yīng)APDU  在分段復(fù)雜回應(yīng)報文的傳輸過程中,客戶端設(shè)備只能回應(yīng)放棄APDU或分段回應(yīng)APDU,而不能回應(yīng)拒絕APDU。2.4.4分段回應(yīng)APDU的傳輸 分段回應(yīng)APDU是分段接收方設(shè)備用來回應(yīng)發(fā)送方的信息。在以下四種情況下,設(shè)備需傳輸一個SegmentACK。

45、0; 設(shè)備收到報文的第一個分段。  設(shè)備收到未確認的、有序的、數(shù)量為實際窗口值的多個報文分段構(gòu)成的序列。  設(shè)備收到一個亂序分段報文(可能表明丟失了某個分段)。  設(shè)備收到報文的最后一個分段。 §2.5  與傳輸有關(guān)的其它問題 2.5.1事務(wù)狀態(tài)機制的中止 在一個證實請求的服務(wù)過程中,客戶端與服務(wù)器端都將創(chuàng)立各自的事務(wù)狀態(tài)機制,以便針對各種情況分別進行處理。該事務(wù)狀態(tài)機制的終止由一些條件所決定。 對于客戶端,當(dāng)出現(xiàn)以下幾種情況時,事務(wù)處理終止,同時結(jié)束該事

46、務(wù)狀態(tài)機制。     當(dāng)收到服務(wù)器端設(shè)備發(fā)來的簡單回應(yīng)、不分段復(fù)雜回應(yīng)、出錯、拒絕或放棄APDU時。     收到服務(wù)器發(fā)來的分段復(fù)雜回應(yīng)APDU的最后一個分段,并發(fā)送了相應(yīng)的分段回應(yīng)APDU后。     當(dāng)超時重傳次數(shù)用盡后。     在向服務(wù)器發(fā)送了包含該事務(wù)處理過程標(biāo)志符的放棄APDU后。 對于服務(wù)器端當(dāng)出現(xiàn)以下幾種情況時,將終止事務(wù)處理,同時結(jié)束該事務(wù)狀態(tài)機制。 

47、60;   當(dāng)向客戶端設(shè)備發(fā)送完簡單回應(yīng)、不分段復(fù)雜回應(yīng)、出錯、拒絕或放棄APDU后。     當(dāng)收到客戶端設(shè)備發(fā)來的針對分段復(fù)雜回應(yīng)APDU的最后一個分段的回應(yīng)APDU后。     當(dāng)接收到客戶端發(fā)來的包含該事務(wù)處理過程標(biāo)志符的放棄APDU后。     在傳輸一個分段復(fù)雜回應(yīng)APDU的過程中,超時重傳次數(shù)達到規(guī)定值仍未成功時。 2.5.2重復(fù)報文的處理 在一個事務(wù)處理過程中,由于使用了BACne

48、t的出錯重傳機制,設(shè)備不可避免的會接收到重復(fù)的報文或報文分段。對此,BACnet協(xié)議中是按以下各種可能出現(xiàn)的情況分別處理的。   服務(wù)器接收到一個重復(fù)的證實請求報文。這時,如果服務(wù)器具有識別重復(fù)證實請求報文的能力,則該重復(fù)報文將被服務(wù)器丟棄。否則,服務(wù)器仍會響應(yīng)這個重復(fù)的證實請求報文。這樣的話,客戶端應(yīng)當(dāng)根據(jù)響應(yīng)中的標(biāo)志符不與任何一個當(dāng)前的事務(wù)狀態(tài)機制綁定,來忽略該重復(fù)響應(yīng)。   服務(wù)器接收到一個重復(fù)的證實請求報文分段,即已經(jīng)收到該分段并發(fā)送了分段確認。在這種情況下,服務(wù)器應(yīng)忽略該重復(fù)分段并回傳一個適當(dāng)?shù)姆侄位貞?yīng)APDU。判斷分段是否

49、重復(fù)的依據(jù)是:任何一個分段都可以由其對等方地址、標(biāo)志符以及分段序號唯一確定。      客戶端接收到一個重復(fù)的復(fù)雜回應(yīng)分段,即該分段已經(jīng)收到并確認了??蛻舳藨?yīng)忽略該重復(fù)分段并回傳一個適當(dāng)?shù)姆侄位貞?yīng)APDU。  設(shè)備接收到一個重復(fù)的分段確認APDU。這時,該設(shè)備應(yīng)忽略重復(fù)的分段確認APDU。 2.5.3資源的回收 上述BACnet的出錯重傳過程,其具體實現(xiàn)需要客戶和服務(wù)器兩端提供一定的資源。這些資源通常是事務(wù)處理的各個細節(jié),包括事務(wù)狀態(tài)機制(TSM)、計時器以及APDU或APDU分段緩沖區(qū)等。當(dāng)出錯重傳過程

50、失敗時,這些相關(guān)的資源也變得失效,應(yīng)被釋放掉。資源釋放的具體細節(jié)取決于系統(tǒng)的具體設(shè)計。作為建議,BACnet協(xié)議給出了資源失效而應(yīng)釋放的依據(jù):     客戶端收到對一個證實請求APDU的完整響應(yīng)后。     在客戶端,當(dāng)一個證實請求APDU被重發(fā)了“APDU重發(fā)次數(shù)”屬性所規(guī)定的次數(shù),但仍未成功時。     在客戶端,當(dāng)一個證實請求APDU分段被重發(fā)了“APDU重發(fā)次數(shù)”屬性所規(guī)定的次數(shù),但仍未成功時。   

51、0; 在服務(wù)器端,當(dāng)發(fā)送了對某個證實請求APDU的響應(yīng)并收到相應(yīng)的分段回應(yīng)后。 第3章  BACnet網(wǎng)絡(luò)層規(guī)范本章介紹BACnet協(xié)議網(wǎng)絡(luò)層的原理和運行機制,包括BACnet網(wǎng)絡(luò)層的功能、主要的服務(wù)原語以及網(wǎng)絡(luò)層報文的結(jié)構(gòu),并簡要介紹BACnet路由器的運行規(guī)程。 §3.1  BACnet網(wǎng)絡(luò)層規(guī)范的內(nèi)容BACnet網(wǎng)絡(luò)層的目的是提供一種方法,使用這種方法,不用考慮網(wǎng)絡(luò)所使用的BACnet數(shù)據(jù)鏈路技術(shù),可以將報文從一個BACnet網(wǎng)絡(luò)傳遞到另一個BACnet網(wǎng)絡(luò)。數(shù)據(jù)鏈路層提供將報文在本局域網(wǎng)內(nèi)傳遞到某個設(shè)備或者

52、廣播到所有設(shè)備的能力,而網(wǎng)絡(luò)層則提供將報文直接傳遞到一個遠程的BACnet設(shè)備、廣播到一個遠程BACnet網(wǎng)絡(luò)、或者廣播到所有的BACnet網(wǎng)絡(luò)中的所有BACnet設(shè)備的能力。一個BACnet設(shè)備被一個網(wǎng)絡(luò)號碼和一個MAC地址唯一確定。 我們將那些使用不同的數(shù)據(jù)鏈路層技術(shù)的局域網(wǎng)稱為異類網(wǎng)絡(luò),例如,以太網(wǎng)、ARCNET網(wǎng)絡(luò)和Lonworks網(wǎng)絡(luò)等就是異類網(wǎng)絡(luò)。網(wǎng)絡(luò)層的功能就是實現(xiàn)連接兩個異類的BACnet局域網(wǎng)。實現(xiàn)異類網(wǎng)絡(luò)連接的設(shè)備稱為“BACnet路由器”。從協(xié)議的觀點看,網(wǎng)絡(luò)層的功能是向應(yīng)用層提供統(tǒng)一的網(wǎng)絡(luò)服務(wù)平臺,屏蔽異類網(wǎng)絡(luò)的差異。同時,BACnet網(wǎng)絡(luò)層協(xié)議也建立路由器建

53、立和維護它們的路由表的方法,這將使得路由器自動配置和報文在路由器之間的流動成為可能。  BACnet網(wǎng)絡(luò)層的服務(wù)原語 BACnet網(wǎng)絡(luò)層向應(yīng)用層提供的服務(wù)是不確認的無連接形式的數(shù)據(jù)單元傳送服務(wù)。與這種交互相關(guān)的原語是N-UNITDATA請求和指示,其參數(shù)如下:  N-UNITDATA.request(destination_address,data,network_priority,data_expecting_reply) N-UNITDATA.indication(source_address,destination_addres

54、s,data,network_priority,data_expecting_reply) “目標(biāo)地址”和“源地址”參數(shù)提供下列事物的邏輯連續(xù)配置:1)一個可選擇的網(wǎng)絡(luò)號碼,2)適合于下層LAN技術(shù)的MAC地址,3)鏈路服務(wù)接入點。網(wǎng)絡(luò)號碼XFFFF表示此報文廣播到目前能夠到達的所有網(wǎng)絡(luò)的所有設(shè)備。目前能夠到達的網(wǎng)絡(luò)是指那些在BACnet互聯(lián)網(wǎng)中已經(jīng)具有一條有效連接的網(wǎng)絡(luò)?!皵?shù)據(jù)”參數(shù)是從應(yīng)用層傳遞過來的網(wǎng)絡(luò)服務(wù)數(shù)據(jù)單元(NSDU),其中包含一個完全編碼的BACnet APDU?!熬W(wǎng)絡(luò)優(yōu)先級”參數(shù)是一個數(shù)字值,由BACnet路由器中的網(wǎng)絡(luò)層用來確定任何可能的優(yōu)先于先進先出排

55、隊等待規(guī)則的情況?!癲ata_expecting_reply”參數(shù)指出對于正在傳送的數(shù)據(jù)單元是否期待有一個應(yīng)答的數(shù)據(jù)單元。 當(dāng)網(wǎng)絡(luò)層從應(yīng)用層收到一個N-UNITDATA.request請求原語后,就用網(wǎng)絡(luò)層規(guī)范所表述的方式發(fā)送一個網(wǎng)絡(luò)層服務(wù)數(shù)據(jù)單元NSDU。當(dāng)一個網(wǎng)絡(luò)實體收到從一個對等網(wǎng)絡(luò)實體發(fā)來的NSDU后,它作如下處理:1)通過一個直接連接的網(wǎng)絡(luò)將NSDU發(fā)送到目的地,2)將NSDU發(fā)送到下一個BACnet路由器后再路由到目的地,3)如果NSDU的地址與它自己的應(yīng)用層中的某個實體的地址匹配,則向這個實體發(fā)送一個N-UNITDATA.indication原語,通知有一個NSDU到達

56、。  BACnet網(wǎng)絡(luò)層PDU結(jié)構(gòu) 圖3-1給出了BACnet網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元的分組格式。下面對相應(yīng)的域進行說明:1協(xié)議版本號 每個NPDU的第一個字節(jié)是一個8比特的無符號整數(shù),標(biāo)識BACnet協(xié)議的版本號。目前的BACnet協(xié)議的版本號是(1)。 2網(wǎng)絡(luò)層協(xié)議控制信息 NPDU的第二個字節(jié)是控制字節(jié),表示后面的某個特殊NPCI域的存在。控制字節(jié)中每個比特的作用如下:3特殊域的內(nèi)容 DNET:最終目標(biāo)網(wǎng)絡(luò)號,2個字節(jié)。 DLEN:最終目標(biāo)的MAC層地址的長度,1個字節(jié),0表示對目標(biāo)網(wǎng)絡(luò)的廣播。 DADR

57、:最終目標(biāo)的MAC層地址。 SNET:初始源網(wǎng)絡(luò)號,2個字節(jié)。 SLEN:初始源的MAC層地址的長度,1個字節(jié)。 SADR:初始源的MAC層地址。 Hop Count:遞減計數(shù)器值,用來防止報文不被循環(huán)路由。1個字節(jié),初始化為XFF。當(dāng)報文通過每個路由器時,其值被至少減一。如果路由器發(fā)現(xiàn)該值已為0,則丟棄此報文。 4網(wǎng)絡(luò)層報文類型 如果控制域中的比特7為1,這表示此報文是一個網(wǎng)絡(luò)層報文,其報文類型域存在。這是個1字節(jié)的域,其內(nèi)容表示報文攜帶的各種網(wǎng)絡(luò)層的控制信息。 5生產(chǎn)商專有網(wǎng)絡(luò)層報文 如果控制域的比特

58、7為1和報文類型域的值為X80至XFF時,Vendor ID域存在,生產(chǎn)商可以有2個字節(jié)來編碼自己的專有網(wǎng)絡(luò)層報文類型。  多播報文和廣播報文 BACnet使用多播地址和廣播地址來支持多個目標(biāo)的報文傳輸。多播是指一個報文被傳送給一組目標(biāo)設(shè)備,而廣播是指一個報文被傳送給某個局域網(wǎng)中的所有設(shè)備、一個遠程網(wǎng)絡(luò)中的所有設(shè)備、或者所有BACnet網(wǎng)絡(luò)中的所有設(shè)備。BACnet網(wǎng)絡(luò)層處理兩種報文,一種是包含有APDU的數(shù)據(jù)報文,另一種是關(guān)于網(wǎng)絡(luò)層本身控制信息的網(wǎng)絡(luò)層協(xié)議報文。對于數(shù)據(jù)報文,只有BACnet非證實請求協(xié)議數(shù)據(jù)單元(BACnet-Unconfirmed-

59、Request-PDU)的報文可以被多播或廣播。而網(wǎng)絡(luò)層協(xié)議報文都可以被多播或廣播,使用多播地址或者廣播地址進行。  網(wǎng)絡(luò)層協(xié)議報文 在BACnet中,有十種網(wǎng)絡(luò)層協(xié)議報文,它們的作用是進行路由器自動配置,路由表的維護,和網(wǎng)絡(luò)層擁塞控制。下面介紹這十種報文。 1 Who-Is-Router-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X00,后面有2個字節(jié)的網(wǎng)絡(luò)號。作用是:節(jié)點用來確定通達某目標(biāo)網(wǎng)絡(luò)的下一個路由器;幫助路由器更新路由表。當(dāng)省略2字節(jié)的網(wǎng)絡(luò)號時,接收此報文的路由器要返回其所有可通達的目標(biāo)網(wǎng)絡(luò)的列表。 2&

60、#160;I-Am-Router-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X01,后面有2個字節(jié)的網(wǎng)絡(luò)號。作用是列出通過發(fā)送此報文的路由器可以到達的網(wǎng)絡(luò)號。 3 I-Could-Be-Router-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X02,后面有2個字節(jié)的網(wǎng)絡(luò)號和1個字節(jié)的性能指標(biāo)。作用是響應(yīng)包含有特定網(wǎng)絡(luò)號的Who-Is-Router-To-Network報文,由能夠建立到達特定目標(biāo)網(wǎng)絡(luò)的點到點連接的半路由器使用,其網(wǎng)絡(luò)號就是所響應(yīng)的報文中包含的特定網(wǎng)絡(luò)的網(wǎng)絡(luò)號。性能指標(biāo)表明這種連接的質(zhì)量。 4 Rejec

61、t-Message-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X03,后面有1個字節(jié)的原因說明和2個字節(jié)的網(wǎng)絡(luò)號。作用是一個拒絕報文,直接發(fā)給生成被拒絕的報文的節(jié)點,網(wǎng)絡(luò)號就是被拒絕報文中的網(wǎng)絡(luò)號。在拒絕原因字節(jié)中是一個無符號的整數(shù),其值所表示的意義如下: (0):其它差錯。 (1):本路由器不能直接連接到所指示的目標(biāo)網(wǎng)絡(luò)以及不能發(fā)現(xiàn)任何一個能夠連接到所指示的目標(biāo)網(wǎng)絡(luò)。 (2):本路由器忙,目前不能接收關(guān)于所指示目標(biāo)網(wǎng)絡(luò)的報文。 (3):這是一個不可識別的網(wǎng)絡(luò)層報文類型。 (4):報文太長,不能路由到所指示的目標(biāo)網(wǎng)絡(luò)。

62、0;5 Router-Busy-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X04,后面是可選擇的2個字節(jié)的網(wǎng)絡(luò)號。作用是被路由器用來通知停止接收通過本路由器向某特定目標(biāo)網(wǎng)絡(luò)或者所有網(wǎng)絡(luò)發(fā)送的報文。此報文通常用廣播MAC地址發(fā)向相應(yīng)的網(wǎng)絡(luò)。如果沒有可選擇的2個字節(jié)的網(wǎng)絡(luò)號,則表示到所有網(wǎng)絡(luò)的報文都不接收。 6 Router-Available-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X05,后面是可選擇的2個字節(jié)的網(wǎng)絡(luò)號。作用是被路由器用來通知開始或者重新開始接收通過本路由器向某特定目標(biāo)網(wǎng)絡(luò)或者所有網(wǎng)絡(luò)發(fā)送的報文。此報文通常用廣

63、播MAC地址發(fā)向相應(yīng)的網(wǎng)絡(luò)。如果沒有可選擇的2個字節(jié)的網(wǎng)絡(luò)號,則表示到所有網(wǎng)絡(luò)的報文都可接收。 7 Initialize-Router-Table報文 格式為:網(wǎng)絡(luò)報文類型域是X06。作用是初始化一個路由器的路由表或者查詢當(dāng)前路由表的內(nèi)容。此報文有一個數(shù)據(jù)段,包含有初始化路由表的信息。 8 Initialize-Router-Table-Ack報文 格式為:網(wǎng)絡(luò)報文類型域是X07。作用是對初始化路由表報文的應(yīng)答,表示路由器的路由表已經(jīng)改變,或者已被查詢。此報文的數(shù)據(jù)段具有與它應(yīng)答的初始化路由表報文相同的格式。 9 

64、Establish-Connection-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X08, 后面有2個字節(jié)的網(wǎng)絡(luò)號和1個字節(jié)的“中止時間值”。作用是命令一個半路由器創(chuàng)建一個通達指定網(wǎng)絡(luò)的點到點連接。2個字節(jié)的網(wǎng)絡(luò)號指出要半路由器連接的目標(biāo)網(wǎng)絡(luò)。1個字節(jié)的“中止時間值”規(guī)定了在沒有NPDU到達的情況下,連接保留的時間。當(dāng)此值為0時,表示連接永久保留。 10.  Disconnect-Connection-To-Network報文 格式為:網(wǎng)絡(luò)報文類型域是X09, 后面有2個字節(jié)的網(wǎng)絡(luò)號。作用是命令一個路由器釋放所建立的點到點連接。 3.1.5網(wǎng)絡(luò)層協(xié)議運行規(guī)程 本節(jié)介紹BACnet路由器和節(jié)點進行本地和遠程數(shù)據(jù)傳輸所遵循的網(wǎng)絡(luò)層協(xié)議運行規(guī)程。所謂“本地”是指源設(shè)備和目標(biāo)設(shè)備都在同一個BACnet網(wǎng)絡(luò)中,而所謂“遠程”是指源設(shè)備和目標(biāo)設(shè)備分處不同的BACnet網(wǎng)絡(luò)之中。 1 本地數(shù)據(jù)發(fā)送的網(wǎng)絡(luò)層協(xié)議規(guī)程 當(dāng)網(wǎng)絡(luò)層實體收到來自應(yīng)用層的一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論