0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式系統(tǒng)中BACnet-MS/TP協(xié)議棧的實(shí)現(xiàn)

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-17 14:55 ? 次閱讀

1 引言

20世紀(jì)90年代,Internet經(jīng)歷了爆炸性發(fā)展,成為壟斷全球的計(jì)算機(jī)網(wǎng)絡(luò)。以Cisco和Sun為代表的一批公司借助這一浪潮發(fā)展成為世界上頂尖的大公司。而在智能建筑領(lǐng)域,也正在重現(xiàn)這一過程。上世紀(jì)80年代,直接數(shù)字控制器(DDC)的出現(xiàn)大大改善了建筑控制系統(tǒng)的精度和靈活性。但隨著智能建筑涉及領(lǐng)域的不斷延伸,如HVAC、照明、消防、安防等等領(lǐng)域,分立式控制設(shè)備已經(jīng)不能滿足設(shè)備間互操作和系統(tǒng)間通訊的需求;另一方面,隨著建筑控制系統(tǒng)的集成度越來越高,不僅要求一棟樓宇或者一個(gè)小區(qū)的設(shè)備之間可以通訊,甚至地區(qū)、國家乃至全球的控制設(shè)備之間都可以進(jìn)行通訊。因此,建立一個(gè)可以在異構(gòu)系統(tǒng)、不同廠商設(shè)備之間的通訊機(jī)制,成為建筑智能化的迫切需求。BACnet協(xié)議就在這樣一種情況下應(yīng)運(yùn)而生了。

2 BACnet協(xié)議介紹

BACnet是專門為建筑自動(dòng)控制網(wǎng)絡(luò)制定的一種數(shù)據(jù)通信協(xié)議,最初由美國制冷采暖空調(diào)工程師協(xié)會(huì)(簡稱ASHRAE)于1995年制定。其最根本的目的是要提供給建筑自動(dòng)控制系統(tǒng)實(shí)現(xiàn)互操作的方法。所謂互操作是指一種能力,可以使得分布的控制系統(tǒng)設(shè)備通過相關(guān)信息的數(shù)字交換,能夠協(xié)調(diào)地工作,從而完成一個(gè)共同的目標(biāo)。BACnet解決了建筑自控系統(tǒng)中存在的多廠商系統(tǒng)和設(shè)備不兼容而難以集成的問題,提供了不同建筑自動(dòng)控制系統(tǒng)實(shí)現(xiàn)互操作的方法,有望成為控制網(wǎng)絡(luò)中的TCP/IP協(xié)議。2003年1月,BACnet成為正式的國際標(biāo)準(zhǔn)(ISO 16484標(biāo)準(zhǔn))。

BACnet有以下特點(diǎn):

?開放性:是美國現(xiàn)行的國家標(biāo)準(zhǔn)和ISO國際標(biāo)準(zhǔn)。

?面向?qū)ο螅築ACnet協(xié)議采用面向?qū)ο蟮募夹g(shù),因此具有可擴(kuò)展性和可復(fù)用性。

?互操作性:ASHRAE的BACnet委員會(huì)提出了一種新的描述自動(dòng)控制系統(tǒng)功能性的方法,稱為“互操作域(Interoperability Areas)”,其中規(guī)定了5個(gè)互操作域,分別是:數(shù)據(jù)共享、報(bào)警和事件管理、時(shí)序安排、趨勢(shì)記錄、設(shè)備與網(wǎng)絡(luò)管理。

2.1 BACnet體系結(jié)構(gòu)

BACnet以O(shè)SI模型為參考,結(jié)合建筑自動(dòng)控制領(lǐng)域的實(shí)際需求,形成了一個(gè)簡化模型。BACnet充分利用現(xiàn)有成熟的網(wǎng)絡(luò)技術(shù),在底層兼容5種網(wǎng)絡(luò)結(jié)構(gòu),降低了開發(fā)成本,同時(shí)也利于系統(tǒng)集成。

2.2 應(yīng)用層

應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)傳送包含在應(yīng)用服務(wù)原語和相關(guān)參數(shù)中的信息。因?yàn)锽ACnet采用簡化的OSI體系結(jié)構(gòu),不包含任何表示層的功能,必須預(yù)先定義好通信設(shè)備一致遵守的編碼規(guī)則。BACnet的編碼規(guī)則設(shè)計(jì)考慮到了樓宇自動(dòng)控制體系對(duì)簡單化、緊湊化的要求。因此,這個(gè)編碼規(guī)則在一些方面與ISO 8825有所不同。但是仍然允許使用ASN.1對(duì)BACnet的APDU進(jìn)行編碼。

2.3 網(wǎng)絡(luò)層

網(wǎng)絡(luò)層提供網(wǎng)絡(luò)路由功能,使得報(bào)文可以被直接傳遞到一個(gè)遠(yuǎn)程設(shè)備、一個(gè)遠(yuǎn)程網(wǎng)絡(luò)上的所有設(shè)備、或者所有網(wǎng)絡(luò)上的所有設(shè)備。一個(gè)BACnet設(shè)備由一個(gè)網(wǎng)絡(luò)號(hào)碼和一個(gè)MAC地址唯一確定。由于BACnet協(xié)議規(guī)定兩個(gè)BACnet設(shè)備之間只能有一條有效路徑,這個(gè)限制大大降低了網(wǎng)絡(luò)層的復(fù)雜性,簡化了路由算法。

2.4 數(shù)據(jù)鏈路層(MS/TP)

數(shù)據(jù)鏈路層負(fù)責(zé)將報(bào)文從一個(gè)設(shè)備傳送到另一個(gè)單獨(dú)設(shè)備,或者所有本地網(wǎng)設(shè)備。在本文中,只討論MS/TP網(wǎng)絡(luò)。MS/TP使用主/從令牌來控制對(duì)總線網(wǎng)絡(luò)的訪問。MS/TP協(xié)議向上為網(wǎng)絡(luò)層提供與ISO 8802-2邏輯鏈路控制協(xié)議一樣的服務(wù);向下使用EIA-485物理層提供的服務(wù)。

3 程序?qū)崿F(xiàn)

3.1 協(xié)議棧軟件結(jié)構(gòu)

在高端機(jī)器(如工作站)上,我們可以很好地利用C++語言的面向?qū)ο筇匦?,完整?shí)現(xiàn)整個(gè)BACnet協(xié)議棧。但在低端MCU上,程序空間和數(shù)據(jù)空間非常有限,因此需要盡可能簡化協(xié)議棧軟件的體系結(jié)構(gòu)。同時(shí)根據(jù)不同型號(hào)的DDC,對(duì)協(xié)議棧軟件進(jìn)行剪裁配置。圖2(略)表示了協(xié)議棧軟件中各個(gè)模塊之間的接口關(guān)系。在整個(gè)結(jié)構(gòu)中最復(fù)雜的是應(yīng)用層模塊,包含BACnet對(duì)象模塊,基本數(shù)據(jù)類型模塊,APDU解析/分發(fā)模塊和APDU組裝模塊。

3.2 應(yīng)用層模塊

BACnet協(xié)議為了簡化其層次結(jié)構(gòu),使得BACnet應(yīng)用層涵蓋了開放系統(tǒng)互聯(lián)參考模型(OSI)中會(huì)話層、表示層和應(yīng)用層的功能。BACnet應(yīng)用層模塊是BACnet應(yīng)用軟件的基礎(chǔ),它實(shí)現(xiàn)BACnet協(xié)議應(yīng)用層內(nèi)容,負(fù)責(zé)提供工作站的各功能模塊與物理設(shè)備直接的通信服務(wù)。根據(jù)應(yīng)用層的功能分析,可以將應(yīng)用層劃分為如下幾個(gè)模塊:對(duì)象模塊、服務(wù)模塊、基本數(shù)據(jù)類型模塊。

對(duì)象模塊定義了BACnet對(duì)象。BACnet對(duì)象按其功能可分為兩類:一類是采集數(shù)據(jù)的對(duì)象,如模擬輸入/輸出對(duì)象,這類對(duì)象需要訪問設(shè)備硬件;另一類對(duì)象是在采集的數(shù)據(jù)基礎(chǔ)上完成復(fù)雜功能,如環(huán)對(duì)象以及其他實(shí)現(xiàn)報(bào)警事件功能的對(duì)象,這類對(duì)象不需訪問硬件。另外,某些對(duì)象的屬性(如趨勢(shì)登錄對(duì)象的緩存器大小屬性)需要設(shè)備廠商根據(jù)DDC型號(hào)進(jìn)行初始配置,協(xié)議棧提供對(duì)這些屬性的配置函數(shù)接口。

服務(wù)模塊用于處理報(bào)文的分發(fā)、解析和組裝。對(duì)于從網(wǎng)絡(luò)層上來的APDU,服務(wù)模塊根據(jù)APDU的類型和服務(wù)選擇參數(shù),調(diào)用相應(yīng)的服務(wù)解析模塊。服務(wù)解析模塊對(duì)APDU的信息進(jìn)行解碼,并根據(jù)需要與DDC中的BACnet對(duì)象進(jìn)行交互。另一方面,DDC會(huì)發(fā)出響應(yīng)報(bào)文(如讀屬性響應(yīng)),或者主動(dòng)發(fā)出某些報(bào)文(如事件與報(bào)警服務(wù)),因此服務(wù)模塊還提供服務(wù)報(bào)文組裝的函數(shù)接口。

基本數(shù)據(jù)類型模塊是一個(gè)工具類庫,包含對(duì)基本數(shù)據(jù)類型的定義及其編、解碼函數(shù)。BACnet包含13種應(yīng)用數(shù)據(jù)類型以及其他基本數(shù)據(jù)類型。BACnet應(yīng)用數(shù)據(jù)類型可以直接進(jìn)行編、解碼。BACnet基本數(shù)據(jù)類型對(duì)應(yīng)著ASN.1中的復(fù)合數(shù)據(jù)類型,它是由BACnet應(yīng)用數(shù)據(jù)類型配合標(biāo)記按照一定的結(jié)構(gòu)組合而成。因此,基本數(shù)據(jù)類型的編/解碼實(shí)際上是按一定的規(guī)則調(diào)用應(yīng)用數(shù)據(jù)類型以及標(biāo)記的編/解碼方法來實(shí)現(xiàn)的。

3.3 網(wǎng)絡(luò)層模塊

對(duì)于DDC來說,網(wǎng)絡(luò)層向應(yīng)用層提供一個(gè)不確認(rèn)的無連接數(shù)據(jù)單元傳輸服務(wù)。網(wǎng)絡(luò)層與應(yīng)用層交互的服務(wù)原語是網(wǎng)絡(luò)層數(shù)據(jù)單元請(qǐng)求(N-UNITDATA.request)和網(wǎng)絡(luò)層數(shù)據(jù)單元指示(N-UNITDATA.indication)。其原語參數(shù)如下:
N-UNITDATA.request(destination_address, data, network_priority,data_expecting_reply)
N-UNITDATA.indication(source_address, destination_address,data, network_priority,data_expecting_reply)

當(dāng)DDC收到來自鏈路層數(shù)據(jù),解析出相應(yīng)的地址信息,并把地址信息和APDU綁定起來存放到一個(gè)結(jié)構(gòu)中傳送給應(yīng)用層,這樣當(dāng)應(yīng)用層需要回復(fù)報(bào)文時(shí)可以得到目標(biāo)地址。

3.4 數(shù)據(jù)鏈路層(MS/TP)模塊

MS/TP是一個(gè)主從/令牌傳遞的數(shù)據(jù)鏈路協(xié)議,物理層采用RS-485半雙工通信標(biāo)準(zhǔn)。MS/TP層包含兩個(gè)狀態(tài)機(jī),分別是主節(jié)點(diǎn)狀態(tài)機(jī)和接收幀狀態(tài)機(jī);接收幀狀態(tài)機(jī)負(fù)責(zé)幀的接收,如是數(shù)據(jù)幀則調(diào)用與網(wǎng)絡(luò)層接口上傳給網(wǎng)絡(luò)層,主節(jié)點(diǎn)狀態(tài)機(jī)負(fù)責(zé)幀(包括數(shù)據(jù)幀和控制幀)的發(fā)送。兩個(gè)狀態(tài)機(jī)分時(shí)實(shí)現(xiàn),根據(jù)兩者之間的關(guān)系,接收幀狀態(tài)機(jī)可放在主節(jié)點(diǎn)狀態(tài)機(jī)中統(tǒng)一調(diào)度。圖3(略) BACnet數(shù)據(jù)鏈路層模塊結(jié)構(gòu)圖,圖3顯示了BACnet數(shù)據(jù)鏈路層的子模塊:其中,接收模塊實(shí)現(xiàn)接收幀狀態(tài)機(jī);發(fā)送模塊實(shí)現(xiàn)主節(jié)點(diǎn)狀態(tài)機(jī);串口控制模塊實(shí)現(xiàn)串口驅(qū)動(dòng)與收發(fā)控制,串口讀寫采用中斷方式;

網(wǎng)絡(luò)層接口模塊定義接口及接口函數(shù)調(diào)用模塊,使用服務(wù)原語DL_UNITDATA.request()和DL_UNITDATA.indication()來實(shí)現(xiàn)。

4 結(jié)束語

本文提出了BACnet-MS/TP協(xié)議在MCU中的軟件實(shí)現(xiàn)方案,解決了BACnet控制器的通訊功能。如果進(jìn)一步采用嵌入式操作系統(tǒng)實(shí)現(xiàn)多任務(wù)處理,配合數(shù)據(jù)采集、控制和組態(tài)模塊,就可以開發(fā)出實(shí)用的BACnet控制器。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17883

    瀏覽量

    361495
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3669

    瀏覽量

    131003
  • 應(yīng)用層
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    11673
  • BACnet
    +關(guān)注

    關(guān)注

    0

    文章

    96

    瀏覽量

    15253
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    SIP協(xié)議嵌入式Linux實(shí)現(xiàn)

    嵌入式系統(tǒng)由于本身資源的限制,現(xiàn)有的SIP協(xié)議直接應(yīng)用于嵌入式便攜設(shè)備還有困難。為滿足SIP協(xié)議嵌入式
    發(fā)表于 10-12 12:22 ?2379次閱讀
    SIP<b class='flag-5'>協(xié)議</b>在<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    TCP_IP協(xié)議嵌入式系統(tǒng)實(shí)現(xiàn)

    本帖最后由 eehome 于 2013-1-5 10:03 編輯 TCP_IP協(xié)議嵌入式系統(tǒng)
    發(fā)表于 08-24 23:05

    基于BACnet-MS/TP協(xié)議實(shí)現(xiàn)嵌入式系統(tǒng)

    操作和系統(tǒng)間通訊的需求;另一方面,隨著建筑控制系統(tǒng)的集成度越來越高,不僅要求一棟樓宇或者一個(gè)小區(qū)的設(shè)備之間可以通訊,甚至地區(qū)、國家乃至全球的控制設(shè)備之間都可以進(jìn)行通訊。因此,建立一個(gè)可以在異構(gòu)系統(tǒng)、不同廠商設(shè)備之間的通訊機(jī)制,成
    發(fā)表于 06-25 07:44

    嵌入式SIP協(xié)議怎么設(shè)計(jì)?

    ,憑借SIP自身的特性可有效提高嵌入式網(wǎng)絡(luò)設(shè)備的互操作性和接入網(wǎng)絡(luò)的便利性。但SIP協(xié)議本身只給出SIP消息的文法定義以及自然語言描述的消息處理,并未給出SIP協(xié)議
    發(fā)表于 10-29 08:14

    嵌入式系統(tǒng)USB-HOST協(xié)議該如何設(shè)計(jì)?

    USB協(xié)議的基本知識(shí)包括哪些?嵌入式系統(tǒng)USB-HOST協(xié)議
    發(fā)表于 04-27 07:10

    怎么實(shí)現(xiàn)嵌入式TCP/IP協(xié)議的設(shè)計(jì)?

    本文闡述在一種異構(gòu)網(wǎng)絡(luò)互聯(lián)——CAN總線與以太網(wǎng)互聯(lián)系統(tǒng)設(shè)計(jì)方案嵌入式TCP/IP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 06-07 06:28

    主流的小型嵌入式網(wǎng)絡(luò)協(xié)議

    新產(chǎn)品、新技術(shù)也是層出不窮,本章節(jié)就為大家介紹當(dāng)前主流的小型嵌入式網(wǎng)絡(luò)協(xié)議。目錄第1章 當(dāng)前主流的小型嵌入式網(wǎng)絡(luò)協(xié)議
    發(fā)表于 12-23 06:18

    在TMS320VC5402 上實(shí)現(xiàn)嵌入式TCP IP協(xié)議

    實(shí)現(xiàn)一個(gè)運(yùn)行在16 位數(shù)字信號(hào)處理器TMS320VC5402 上的小型嵌入式TCP/IP 協(xié)議。對(duì)TCP/IP 協(xié)議
    發(fā)表于 05-16 14:55 ?28次下載

    嵌入式WEB服務(wù)器TCP/IP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)

    嵌入式TCP/IP 協(xié)議能擴(kuò)展非智能設(shè)備的網(wǎng)絡(luò)功能,是信息智能化的一種有效手段。 本文從嵌入式WEB 服務(wù)器入手,分析了嵌入式T
    發(fā)表于 06-19 09:03 ?35次下載

    在ARM平臺(tái)上實(shí)現(xiàn)MS TP協(xié)議

    MS/TP 主-從/令牌數(shù)據(jù)鏈路協(xié)議為現(xiàn)場(chǎng)控制總線提供可靠、實(shí)時(shí)數(shù)據(jù)傳輸服務(wù)。為了降低MS/TP 開發(fā)成本,本文在ARM 和μC/OS 操作
    發(fā)表于 01-20 14:50 ?14次下載

    嵌入式小型TCPIP協(xié)議

    一個(gè)專為嵌入式系統(tǒng)編寫的小型TCP/IP協(xié)議 TCP/IPLean
    發(fā)表于 10-08 17:23 ?50次下載

    在FPGA實(shí)現(xiàn)嵌入式TCP/IP通信協(xié)議

    研究了嵌入式TCP/IP通信協(xié)議在Xilinx FPGA上的實(shí)現(xiàn),介紹了其軟硬件的系統(tǒng)組成和原理,提出一種實(shí)時(shí)操作
    發(fā)表于 11-17 17:05 ?8951次閱讀
    在FPGA<b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>嵌入式</b>TCP/IP通信<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    基于和欣嵌入式操作系統(tǒng)實(shí)現(xiàn)的一個(gè)構(gòu)件化的網(wǎng)絡(luò)協(xié)議設(shè)計(jì)淺析

    Internet 技術(shù)。要實(shí)現(xiàn)嵌入式設(shè)備的網(wǎng)絡(luò)化,需要實(shí)現(xiàn)TCP/IP網(wǎng)絡(luò)協(xié)議,但由于Internet上各種通信
    發(fā)表于 02-20 14:59 ?1461次閱讀
    基于和欣<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>實(shí)現(xiàn)</b>的一個(gè)構(gòu)件化的網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>設(shè)計(jì)淺析

    BACnet MS/TP轉(zhuǎn)MQTT網(wǎng)關(guān)的詳細(xì)介紹

    、BACnet MS/TP協(xié)議的網(wǎng)關(guān)。采用嵌入式 Linux 系統(tǒng)開發(fā)的產(chǎn)品,具有高度的穩(wěn)定性。
    發(fā)表于 03-12 09:10 ?1011次閱讀

    鋇錸BACnet MS/TPBACnet IP協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)BL120BN

    在涉及WinCC系統(tǒng)需與廣泛BACnet協(xié)議設(shè)備實(shí)現(xiàn)數(shù)據(jù)交互的項(xiàng)目中,鋇錸技術(shù)的BACnet協(xié)議
    的頭像 發(fā)表于 08-06 17:27 ?557次閱讀
    鋇錸<b class='flag-5'>BACnet</b> <b class='flag-5'>MS</b>/<b class='flag-5'>TP</b>和<b class='flag-5'>BACnet</b> IP<b class='flag-5'>協(xié)議</b>轉(zhuǎn)Modbus<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)BL120BN

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品