BACnet協議簡介
1. BACnet標準
1.1 BACnet協議
進入80年代以后,隨著經濟活動中心城市化,大都市的高層與超高層建筑如雨后春筍般聳立起來。樓內的各種設備和系統逐漸增多,且日趨復雜,能量的消耗也大幅度上升。如何規范運行,節能,延長設備壽命,確保大樓內工作、生活的安全、舒適、高效和樓內外信息的處理、交換、傳輸,資源共享成為大樓(智能建筑)重要問題。可喜的是80年代以來,電子、微電子、通訊與計算機、網絡、自控技術的迅猛發展,支持與造就了智能建筑各個子系統的誕生和完善。
智能建筑貴在集成,要集成就需要相關的機電設備和子系統具有開放性和互操作性。也就是說,這些設備和系統的數據通訊必須按同一標準協議來進行。
1987年l月ASHRAE(美國供熱、制冷及空調工程師協會)組織了世界各地的20余名樓宇自動控制工業部門,包括大學、控制器制造商、政府機構與咨詢公司的志愿者組成了一個名為"SPCl35P"的工作組。工作組的目標是制定一個關于樓宇能量管理與控制系統(EMCS)的通訊協議。在長達8年多制定過程中,共收到來自12個國家741份的意見,經過3次公開評審,最后于1995年6月BACnet協議獲得通過,成為ASHRAEl35-1995標準。井于同年12月升為美國國家標準。
自從BACnet協議作為美國國家標準發表以來,不但在美國本土引起巨大的反響,同時也引起了世界各國智能建筑業界的廣泛注意。在發達國家,已紛紛成立了一些重要的組織,其中最重要的如在北美成立了BIG-NA(BACnet’s Interest Group-North America),在歐洲成立了BIG-Eu(BIG-Europe),在澳大利亞和亞洲成立了BIG-AA(BIG-AustraliaAsia),這些組織在本地區共同推進BACnet協議的實施。
早在1998年已被歐共體標準化委員會CEN TC247采納為預備標準(pre-standard),目前,正對其進一步進行評價,以決定是否為歐共體的正式標準。
國際標準化組織(ISO)的TC205委員會也已于最近2003/01/03批準其為ISO正式標準。標準號為ISO 16484-5。
在1999年12月被韓國采納為國家標準KS X 6909。
2000年8月。日本電氣安裝工程師協會進行了研究,準備采納BACnet為該協會協議標準(protocol of the Institute of Electrical Installation Engineers of Japan IEIEJ/P)。
如從1999年9月到2000年4月,華中理工大學劉賢德、惠曉實、石巖等同志在“CAD與智能建筑”雜志上發表系列文章,詳盡介紹了BACnet協議的內容。在其它有關智能建筑雜志上也有大量的文章在介紹和評價BACnet協議。
在1998年,江蘇省地方標準“建筑智能化系統工程設計標準(DB32/181-1998)”中,已提出對于多個供應商不同系統之間的集成,建議采用BACnet標準。
1.1.1 BACnet協議的體系結構
國際標準化組織在制定計算機網絡通訊協議標準時定義了一個模型,稱為開放系統互聯參考模型(OSI)(ISO 7498)。模型的目的是解決計算機與計算機之間普遍的通信問題。在這個模型中,將計算機通信這樣一個復雜的問題分解成7個小的、容易解決的子問題,每個子問題只與某些通信功能相關,并且把這些子問題稱為協議體系結構的一層,整個模型是一個七層的體系結構。在圖4一1中給出這七層的體系結構圖。
對于某個層次來說,它使用下面各層所提供的服務,同時也向它上面的各層提供服務。每一層可以想像成一個黑盒,黑盒的上面和下面都只有經過認真定義的接口。一個應用程序通過與OSI 應用層的相連,實現與另一個遠程應用程序的通信。對于這種發生在兩個應用程序之間的通信,看起來兩個程序似乎是通過各自的應用層接口直接相連。各層之間僅僅需要了解其他層的很少的情況。通過類似的方式,協議的每一層利用下面各層的服務來提供通信服務,與另一個系統的同等層建立起一個虛擬的對等層通信。而真正的通信只發生在物理層。
OSI模型以高度概括的觀點來分析計算機與計算機的通信,用來解決在全世界范圍內的、巨大而復雜的計算機網絡的通信問題。在這種情況下,互相通信的單個計算機之間可能相距很遠,因此報文要通過一系列中間點才能到達。而這些中間點相應地可能需要實現路由選擇功能、某種解析功能,以及復雜的同步和差錯恢復功能。
實現OSI模型協議所需的費用較高,在絕大部分樓宇自動控制系統中,并不需要實現OSI模型的所有內容。不過只從OSI的功能性方面來考慮,經過簡化,OSI模型仍然是樓宇自動控制協議的一個很好的參考。如果只選擇OSI模型中需要的層次,形成一個簡化的模型,作為樓宇自動控制系統的協議體系結構,就可以減少報文的長度,降低通信處理的開銷,并且也滿足樓宇自動控制系統的需要。這個簡化的體系結構降低了樓宇自動控制工業的生產成本,同時處理器的大批量生產、局域網技術的發展,也為過程控制和辦公自動化工業的發展起到了推動作用。另一方面,可以充分利用現有的、易用的、應用廣泛的局域網技術,如以太網、ARCNET和LonTalk。這樣不但可以降低成本,而且也有利于提高性能,為系統集成開辟新的途徑。
1.1.2 BACnet簡化的體系結構
BACnet建立在包含四個層次的簡化分層體系結構上,這四層相當于OSI模型中的物理層、數據鏈路層、網絡層和應用層。BACnet標準定義了自己的應用層和簡單的網絡層,對于其數據鏈路層和物理層,提供了以下五種選擇方案。
第一種選擇是ISO 8802-2類型l定義的邏輯鏈路控制(LLC)協議,加上ISO 8802-3介質訪問控制 (MAC)協議和物理層協議。ISO 8802-2類型l提供了無連接 (Connectionlesss)不確認(Unackowledged)的服務,ISO 8802-3則是著名的以太網協議的國際標準。
第二種選擇是lSO 8802-2類型l定義的邏輯鏈路控制協議,加上ARCNET(ATA/ANSI 878.1)。
第三種選擇是主從/令牌傳遞(MS/TP)協議加上EIA-485協議。MS/TP協議是專門針對樓宇自動控制設備設計的,同ISO 8802-2類型1一樣,它通過控制ElA-485的物理層,向網絡層提供接口。
第四種選擇是點對點(PTT)協議加上EIA-232協議,為撥號串行異步通信提供了通信機制。
第五種選擇是LonTalk協議。
這些選擇都支持主/從MAC、確定性令牌傳遞MAC、高速爭用MAC以及撥號訪問。拓撲結構上,支持星型和總線型拓撲。物理介質上,支持雙絞線、同軸電纜、光纜。這五種選項將在7節到11節中深入論述。
簡化的四層BACnet體系結構,是在仔細考慮了BACnet網絡的獨特特征和要求,以及盡可能少的協議開銷原則后得出的。在下面的分析里,將討論BACnet體系結構只包括物理層、數據鏈路層、網絡層和應用層的原因。
BACnet完成其固有的操作到底需要哪些層次呢?仔細分析BACnet網絡的特征后,可以得到以下兩點:
首先,BACnet是一種局域網。即便在某些應用中,樓宇里沒備間的遠距離通信必不可少時,BACnet仍然是一種局域網。因為這種遠距離的通信功能,由電信網來實現。通信中要完成的路由、中繼、可靠的傳輸等問題都由電信網來處理,電信網可看成是BACnet外部的部分。
其次,BACnet設備是靜態的(static),即在空間上,它們不會經常被移來移去。在要完成的功能上,從某種意義上說也是不變的,即不會今天生產的設備時功能是這樣,明天就完全不同了。
在充分了解BACnet網絡的特征后,就可討論OSI模型的各層在BACnet網絡中的適用性了。
物理層提供了鏈接設備和傳輸數據載波信號的方式,顯然在BAcnet協議中,物理層是必不可少的。
數據鏈路層負責將數據組織成幀(frame)或分組(packet)、管理通訊介質的訪問、尋址,以及完成一些差錯校正和流量控制的任務,這些都是BACnet協議所需要的,因此數據鏈路層也是必不可少的。
網絡層的功能包括:將全局地址解析為局部地址、在一個或多個網絡中進行報文的路由、協調不同類型網絡的差異(如不同網絡所允許的最大報文長度)、序列控制、流量控制,差錯控制以及多路復用。由于BACnet網絡的拓撲特點,在各個設備之間只存在一條邏輯通路,這樣便不需要最優路由的算法。其次,BACnet網絡是由中繼器或者網橋互聯起來的一個或者多個網段所組成的網絡,它具有單一的局部地址空間。在這樣一種單一網絡中,許多OSI網絡層的功能也變得多余,或者與數據鏈路層相重復。但是在BACnet網絡系統中,網絡層又是必不可少的。例如,在一個BACnet的互聯網*(internet)中,當兩個或者多個網絡使用了不同的MAC層時,便需要區別局部地址和全局地址,這樣才能將報文路由到正確的網絡中去。在BACnet協議中,通過定義了一個包含必要的尋徑和控制信息的網絡層頭部,來完成這種簡化了的網絡層功能.
傳輸層主要是負責提供可靠的端到端的報文傳輸、報文分段、序列控制、流量控制,以及差錯校正。傳輸層的許多功能與數據鏈路層相似,只是在作用范圍上有所不同。傳輸層提供的是端到端的服務,而數據鏈路層則提供的是單一網絡上點到點的服務。由于BACnet支持多種網絡的配置,因此協議必須提供傳輸層端到端的服務。而可靠的端到端傳輸和差錯校正功能,在BACnet協議中由BACnet的應用層利用報文超時重傳方式來完成。其次,考慮到緩沖區和處理器資源的管理,報文分段和端到端的流量控制也是必要的。這是因為即使一個簡單的BACnet請求,都可能會導致大量的信息回傳。同樣,這些功能也是由BACnet的應用層完成的。最后,為了實現報文的正確重組,序列控制也是必須的。這也是由BACnet的應用層中的分段過程實現的。總的來說,由于BACnet是建立在無連接的通信模型基礎上的,因此所需的服務大大減少,并且可以被高層來實現,這樣便省去了一個單獨傳輸層所會增加的通信開銷。在BACnet協議中,不設單獨的傳輸層,所需的功能由應用層實現。
會話層的功能是在通信雙方之間建立和管理長時間對話,其中的一個重要功能是建立同步標志點,用來在發生差錯時回復到前一個標志點,以避免對話重新開始。但是在一個BACnet網絡中,絕大部分的通信都是很簡短的,比如讀寫一個值或者一些值,通知(notify)某個沒備有某個警報或事件 (event)發生,或者更改某個設定值。當然長時間的信息交換偶然也會發生的,比如上載或下載某個設備參數。由于絕大部分事務處理都是簡短的,會話層的服務極少用到,再考慮到設置單獨的會話層所帶來的開銷,所以BACnet標準中不包括單獨的會話層。
表示層為通信雙方提供了屏蔽下層傳送語法的服務。這種傳送語法是用來將應用層中抽象的用戶數據視圖,作成適合下層傳輸的字節序列。但當只存在一種傳送語法時,表示層的功能便減少到對應用程序的數據進行編碼。由于在BACnet應用層中定義了一個固定的編碼方案,因此一個獨立的表示層也變得不再需要。
協議的應用層為應用程序提供了完成各自功能所需的通信服務。在此基礎上,應用程序可以監控HVAC和其他樓宇自動控制系統。顯然應用層是本協議所必須的。
1.1.3 BACnet網絡的拓撲結構
為了適應各種應用,BACnet并沒有規定嚴格的網絡拓撲結構。BACnet設備可以直接連接到四種局域網(LANs)中的一種網絡上,也可以通過專線或撥號異步串行線連接起來。這幾種局域網由可以通過BACnet路由器進一步互聯 。
按照局域網拓撲的觀點,每個BACnet設備與物理介質相連,物理介質稱之為物理網段。一個或多個物理網段通過中繼器在物理層連接,便形成了一個BACnet網段。而一個BACnet網絡則是由一個或多個BACnet網段通過網橋互聯而成。每個BACnet網絡都形成一個單一的介質訪問控制MAC地址域,這些在物理層和數據鏈路層上連接各個網段的設備,可以利用MAC地址實現報文的過濾。將使用不同LAN技術的多個網絡,用BACnet路由器互聯起來,便形成了一個BACnet互聯網(internetwork)。如前所述,在一個BACnet互聯網中,任意兩個節點之間恰好存在著一條報文通路。
從以上的討論中,可以得到以下幾點:
(a)實現一個完全的OSI七層體系結構需要大量的資源和開銷,因此它對于目前的樓宇自動控制系統是不適用的。
(b)按照OSI模型的方式構造協議體系結構,并且采用現有的計算機網絡技術,可以使得新協議具有實現成本低和便于與其他計算機網絡系統集成的特點。
(c)根據樓宇自動控制系統的環境及要求,可以通過去除OSI某些層的功能,簡化OSI模型,來制定新協議的體系結構。
(d)由物理層、數據鏈路層、網絡層和應用層組成的一個簡化體系結構,是當今樓宇自動控制系統的最佳解決方案。

提交
CLR100(BACnet路由器)實現DDC組網
CLG200網關在某中央空調集成項目的應用
暢享智聯 BACnet掃點工具
關于BACnet通訊模塊在變頻器行業的應用
熱烈祝賀暢享智聯BACnet路由器通過歐盟CE認證