一、什么是BACnet?
BACnet,Building Automation and Control networks的簡稱,即樓宇自動化與控制網絡。是用於智能建築的通信協議。
一般樓宇自控設備從功能上講分為兩部分:一部分專門處理設備的控制功能;另一部分專門處理設備的數據通信功能。而BACnet就是要建立一種統一的數據通信標准,使得設備可以互操作。BACnet協議只是規定了設備之間通信的規則,並不涉及實現細節。
BACnet協議模型為:
(1)所有的網絡設備,除基於MS/TP協議的以外,都是完全對等的(peer to peer);
(2)每個設備都是一個“對象”的實體,每個對象用其“屬性”描述,並提供了在網絡中識別和訪問設備的方法;設備相互通信是通過讀/寫某些設備對象的屬性,以及利用協議提供的“服務”完成;
(3)設備的完善性(Sophistication),即其實現服務請求或理解對象類型種類的能力,由設備的“一致性類別”(Conformance Class)所反映。
二、BACnet的體系結構
BACnet建立在包含四個層次的簡化分層體系結構上,這四層相當於OSI模型中的物理層、數據鏈路層、網絡層和應用層。
BACnet標准定義了自己的應用層和簡單的網絡層,對於其數據鏈路層和物理層,提供了以下五種選擇方案:
(1)第一種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協議,加上ISO 8802-3介質訪問控制(MAC)協議和物理層協議。ISO 8802-2類型1提供了無連接(Connectionless)不確認(Unacknowledged)的服務,ISO 8802-3則是著名的以太網協議的國際標准。
(2)第二種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協議,加上ARCNET(ATA/ANSI878.1)。
(3)第三種選擇是主從/令牌傳遞(MS/TP)協議加上EIA-485協議。MS/TP協議是專門針對樓宇自動控制設備設計的,同ISO 8802-2類型1一樣,它通過控制EIA-485的物理層,向網絡層提供接口。
(4)第四種選擇是點對點(PTP)協議加上EIA-232協議,為撥號串行異步通信提供了通信機制。
(5)第五種選擇是LonTalk協議。
三、BACnet的協議棧和數據流
由應用層服務原語產生的應用層協議數據單元(APDU),構成了網絡層服務原語的數據部分,並通過網絡層服務訪問點下傳到網絡層。
同樣,這個請求將進一步下傳到本地設備協議棧的以下各層。
服務原語:用於描述服務用戶和服務提供者之間交互作用的、抽象的、與具體無關的表現方式。服務原語只有4種類型:
- 請求(Request) 用戶實體要求服務做某項工作 源(N+1)實體—>源(N)實體
- 指示(Indication) 用戶實體被告知某事件發生 目的(N)實體—>目的(N+1)實體
- 響應(Response) 用戶實體表示對某事件的響應 目的(N+1)實體—>目的(N)實體
- 確認(Confirm) 用戶實體收到關於它的請求的答復 源(N)實體—>源(N+1)實體
PDU:Protocol Data Unit,協議數據單元,是指對等層次之間傳遞的數據單位。
APDU:Application Protocol Data Unit,應用協議數據單元。
NPDU:Network Protocol Data Unit ,網絡協議數據單元。
LPDU:Link Protocol Data Unit,鏈路協議數據單元。
MPDU:MAC Protocol Data Unit,MAC協議數據單元。
PPDU:Presentation Protocol Data Unit,表示協議數據單元。
四、BACnet應用層
BACnet應用層主要有兩個功能:
- 定義樓宇自控設備的信息模型——BACnet對象模型
- 定義面向應用的通信服務
BACnet應用進程模型:
一個應用進程包括:應用程序和應用實體,應用實體位於應用層內,屬於通信協議的部分,應用程序不屬於協議部分。應用程序和應用實體之間通過API進行通信。
應用層有四種原語,分別為:請求(request)、指示(indication)、響應(response)和證實(confirm)。
BACnet對象模型:
BACnet網絡協議使用先進的面向對象技術,通過封裝在APDU內的對象數據進行通訊。BACnet擁有28個對象:
序號 | 對象名稱 | 應用實例 |
01 | Accumulator | 累加器 |
02 | Analog Input | 模擬輸入對象 |
03 | Analog Output | 模擬輸出對象 |
04 | Analog Value | 模擬值對象 |
05 | Averaging | 平均器 |
06 | Binary Input | 二進制輸入對象 |
07 | Binary Output | 二進制輸出對象 |
08 | Binary Value | 二進制值對象 |
09 | Calendar | 日期表對象 |
10 | Command | 命令對象 |
11 | Device | 設備對象 |
12 | Event Enrollment | 事件登錄對象 |
13 | Event Log | 事件日志對象 |
14 | File | 文件對象 |
15 | Global Group | 全局組對象 |
16 | Group | 組對象 |
17 | Life Safety Point | 生命安全監測點的信息檢測 |
18 | Life Safety Zone | 生面安全區域的信息檢測 |
19 | Loop | 控制環對象 |
20 | Multi-State Input | 多態輸入對象 |
21 | Multi-State Output | 多態輸出對象 |
22 | Multi-State Value | 多態值對象 |
23 | Notification Class | 通告類對象 |
24 | Program | 程序對象 |
25 | Pulse Converter | 脈沖轉換器 |
26 | Schedule | 時間安排對象 |
27 | Trend Log | 趨勢記錄對象 |
28 | Trend Log Multiple | 多趨勢記錄對象 |
BACnet服務:
BACnet具有35種服務,服務是操作對象的方法。這35種服務分為6類,分別為:報警與事件服務,文件訪問服務,對象訪問服務,遠程設備管理服務、虛擬終端服務和網絡安全服務。
其中,對象服務訪問包括:
- 創建對象服務
- 刪除對象服務
- 讀屬性服務
- 條件讀屬性服務
- 讀多個屬性服務
- 寫屬性服務
- 寫多個屬性服務
遠程設備管理服務包括:
- 設備通信控制服務
- 有證實專有傳輸服務
- 無證實專有傳輸服務
- 重新初始化設備服務
- 有證實文本報文服務
- 無證實文本報文服務
- 時間同步服務
五、BACnet網絡層
BACnet網絡層的作用是檢查網絡拓撲結構,決定最佳路由。
- 網絡層提供將報文直接傳送到一個遠程BACnet設備、廣播到一個遠程BACnet網絡、或者廣播到所有的BACnet網絡中的所有BACnet設備的能力。
- 一個BACnet設備由一個網絡號碼和一個MAC地址唯一確定。
BACnet互聯網絡拓撲結構:
物理網段(Physical Segment):直接連接以下BACnet設備的一段物理介質。
網段(Segment):多個物理網段通過“中繼器”在物理層連接,所形成的網絡段。
網絡(Network):多個BACnet網段通過網橋互聯而成,每隔BACnet網絡都形成一個單一的MAC地址域。這些在物理層和數據鏈路層上連接各個網段的設備,可以利用MAC地址實現報文的過濾。
互聯網絡(Internetwork):將使用不同LAN技術的多個網段,用BACnet路由器互聯起來,便形成了一個BACnet互聯網絡。在一個BACnet互聯網絡中,任意兩個節點之間恰好存在着一條報文通路。
六、BACnet數據鏈路/物理層
BACnet標准將五種類型的數據鏈路/物理層技術作為自己所支持的數據鏈路/物理層技術進行規范,形成其協議。
ARCNET局域網:
ARCNET是1977年由Datapoint公司開發的一種安裝廣泛的局域網(LAN)技術,它采用令牌總線(token-bus)方案來管理LAN上工作站和其他設備之間的共享線路,其中,LAN服務器總是在一條總線上連續循環的發送一個空信息幀。
當有設備要發送報文時,它就在空幀中插入一個“令牌”以及相應的報文。當目標設備或LAN服務器接收到該報文后,就將“令牌”重新設置為0,以便該幀可被其他設備重復使用。這種方案是十分有效的,特別是在網絡負荷大的時候,它為網絡中的各個設備提供平等使用網絡資源的機會。
主從/令牌傳遞(MS/TP)協議:
BACnet的主從/令牌傳遞局域網技術的基礎時使用EIA-485標准。
由於EIA-485標准只是一個物理層標准,不能解決設備訪問傳輸介質的問題,BACnet定義了主從/令牌(MS/TP)協議,提供數據鏈路層功能。
MS/TP網絡使用一個令牌來控制設備對網絡總線的訪問:
- 當主節點掌握令牌時,它可以發送數據幀。
- 凡是收到主節點請求報文的主(從)節點都可以發送響應報文。一個主節點在發送完報文之后,就將令牌傳遞給下一個主節點。
- 如果主節點有許多報文要發送,當它一次掌握令牌期間最多只能發送Nmax_info_iframes個數據幀,就必須將令牌傳遞給下一個主節點,其他數據幀只能在它再一次掌握令牌時,才能發送。
點到點(PTP)通信協議:
為了使兩個BACnet設備能夠各種點到點通信機制進行通信,BACnet定義了點到點數據鏈路層通信協議,面向連接的協議,這個協議的功能是:
- 使兩個BACnet網絡層實體建立點到點數據鏈路連接,可靠地交換BACnet PDU。
- 使用已建立地物理連接執行BACnet點到點連接的有序終止。
一旦這種連接成功建立后,兩個設備就可以透明地交換BACnet PDU。
無論呼叫設備還是被呼叫設備,都可以啟動釋放連接過程,而只有每個設備都發送了終止請求后,連接才會終止。
對應地物理連接有:EIA-232連接調制解調器,線路驅動器,或者其他數據通信設備。