精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式系統中BACnet-MS/TP協議棧的實現

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

1 引言

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

2 BACnet協議介紹

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

BACnet有以下特點:

?開放性:是美國現行的國家標準和ISO國際標準。

?面向對象:BACnet協議采用面向對象的技術,因此具有可擴展性和可復用性。

?互操作性:ASHRAE的BACnet委員會提出了一種新的描述自動控制系統功能性的方法,稱為“互操作域(Interoperability Areas)”,其中規定了5個互操作域,分別是:數據共享、報警和事件管理、時序安排、趨勢記錄、設備與網絡管理。

2.1 BACnet體系結構

BACnet以OSI模型為參考,結合建筑自動控制領域的實際需求,形成了一個簡化模型。BACnet充分利用現有成熟的網絡技術,在底層兼容5種網絡結構,降低了開發成本,同時也利于系統集成。

2.2 應用層

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

2.3 網絡層

網絡層提供網絡路由功能,使得報文可以被直接傳遞到一個遠程設備、一個遠程網絡上的所有設備、或者所有網絡上的所有設備。一個BACnet設備由一個網絡號碼和一個MAC地址唯一確定。由于BACnet協議規定兩個BACnet設備之間只能有一條有效路徑,這個限制大大降低了網絡層的復雜性,簡化了路由算法。

2.4 數據鏈路層(MS/TP)

數據鏈路層負責將報文從一個設備傳送到另一個單獨設備,或者所有本地網設備。在本文中,只討論MS/TP網絡。MS/TP使用主/從令牌來控制對總線網絡的訪問。MS/TP協議向上為網絡層提供與ISO 8802-2邏輯鏈路控制協議一樣的服務;向下使用EIA-485物理層提供的服務。

3 程序實現

3.1 協議棧軟件結構

在高端機器(如工作站)上,我們可以很好地利用C++語言的面向對象特性,完整實現整個BACnet協議棧。但在低端MCU上,程序空間和數據空間非常有限,因此需要盡可能簡化協議棧軟件的體系結構。同時根據不同型號的DDC,對協議棧軟件進行剪裁配置。圖2(略)表示了協議棧軟件中各個模塊之間的接口關系。在整個結構中最復雜的是應用層模塊,包含BACnet對象模塊,基本數據類型模塊,APDU解析/分發模塊和APDU組裝模塊。

3.2 應用層模塊

BACnet協議為了簡化其層次結構,使得BACnet應用層涵蓋了開放系統互聯參考模型(OSI)中會話層、表示層和應用層的功能。BACnet應用層模塊是BACnet應用軟件的基礎,它實現BACnet協議應用層內容,負責提供工作站的各功能模塊與物理設備直接的通信服務。根據應用層的功能分析,可以將應用層劃分為如下幾個模塊:對象模塊、服務模塊、基本數據類型模塊。

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

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

基本數據類型模塊是一個工具類庫,包含對基本數據類型的定義及其編、解碼函數。BACnet包含13種應用數據類型以及其他基本數據類型。BACnet應用數據類型可以直接進行編、解碼。BACnet基本數據類型對應著ASN.1中的復合數據類型,它是由BACnet應用數據類型配合標記按照一定的結構組合而成。因此,基本數據類型的編/解碼實際上是按一定的規則調用應用數據類型以及標記的編/解碼方法來實現的。

3.3 網絡層模塊

對于DDC來說,網絡層向應用層提供一個不確認的無連接數據單元傳輸服務。網絡層與應用層交互的服務原語是網絡層數據單元請求(N-UNITDATA.request)和網絡層數據單元指示(N-UNITDATA.indication)。其原語參數如下:
N-UNITDATA.request(destination_address, data, network_priority,data_expecting_reply)
N-UNITDATA.indication(source_address, destination_address,data, network_priority,data_expecting_reply)

當DDC收到來自鏈路層數據,解析出相應的地址信息,并把地址信息和APDU綁定起來存放到一個結構中傳送給應用層,這樣當應用層需要回復報文時可以得到目標地址。

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

MS/TP是一個主從/令牌傳遞的數據鏈路協議,物理層采用RS-485半雙工通信標準。MS/TP層包含兩個狀態機,分別是主節點狀態機和接收幀狀態機;接收幀狀態機負責幀的接收,如是數據幀則調用與網絡層接口上傳給網絡層,主節點狀態機負責幀(包括數據幀和控制幀)的發送。兩個狀態機分時實現,根據兩者之間的關系,接收幀狀態機可放在主節點狀態機中統一調度。圖3(略) BACnet數據鏈路層模塊結構圖,圖3顯示了BACnet數據鏈路層的子模塊:其中,接收模塊實現接收幀狀態機;發送模塊實現主節點狀態機;串口控制模塊實現串口驅動與收發控制,串口讀寫采用中斷方式;

網絡層接口模塊定義接口及接口函數調用模塊,使用服務原語DL_UNITDATA.request()和DL_UNITDATA.indication()來實現。

4 結束語

本文提出了BACnet-MS/TP協議在MCU中的軟件實現方案,解決了BACnet控制器的通訊功能。如果進一步采用嵌入式操作系統實現多任務處理,配合數據采集、控制和組態模塊,就可以開發出實用的BACnet控制器。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17008

    瀏覽量

    350348
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3569

    瀏覽量

    129246
  • 應用層
    +關注

    關注

    0

    文章

    46

    瀏覽量

    11493
  • BACnet
    +關注

    關注

    0

    文章

    92

    瀏覽量

    14978
收藏 人收藏

    評論

    相關推薦

    SIP協議嵌入式Linux實現

    嵌入式系統由于本身資源的限制,現有的SIP協議直接應用于嵌入式便攜設備還有困難。為滿足SIP協議嵌入式
    發表于 10-12 12:22 ?2208次閱讀
    SIP<b class='flag-5'>協議</b>在<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>中</b>的<b class='flag-5'>實現</b>

    TCP_IP協議嵌入式系統實現

    本帖最后由 eehome 于 2013-1-5 10:03 編輯 TCP_IP協議嵌入式系統
    發表于 08-24 23:05

    基于BACnet-MS/TP協議實現嵌入式系統

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

    嵌入式SIP協議怎么設計?

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

    嵌入式系統USB-HOST協議該如何設計?

    USB協議的基本知識包括哪些?嵌入式系統USB-HOST協議
    發表于 04-27 07:10

    怎么實現嵌入式TCP/IP協議的設計?

    本文闡述在一種異構網絡互聯——CAN總線與以太網互聯系統設計方案嵌入式TCP/IP協議的設計與實現
    發表于 06-07 06:28

    主流的小型嵌入式網絡協議

    新產品、新技術也是層出不窮,本章節就為大家介紹當前主流的小型嵌入式網絡協議。目錄第1章 當前主流的小型嵌入式網絡協議
    發表于 12-23 06:18

    在TMS320VC5402 上實現嵌入式TCP IP協議

    實現一個運行在16 位數字信號處理器TMS320VC5402 上的小型嵌入式TCP/IP 協議。對TCP/IP 協議
    發表于 05-16 14:55 ?28次下載

    嵌入式WEB服務器TCP/IP協議的設計與實現

    嵌入式TCP/IP 協議能擴展非智能設備的網絡功能,是信息智能化的一種有效手段。 本文從嵌入式WEB 服務器入手,分析了嵌入式T
    發表于 06-19 09:03 ?35次下載

    在ARM平臺上實現MS TP協議

    MS/TP 主-從/令牌數據鏈路協議為現場控制總線提供可靠、實時數據傳輸服務。為了降低MS/TP 開發成本,本文在ARM 和μC/OS 操作
    發表于 01-20 14:50 ?14次下載

    嵌入式小型TCPIP協議

    一個專為嵌入式系統編寫的小型TCP/IP協議 TCP/IPLean
    發表于 10-08 17:23 ?50次下載

    在FPGA實現嵌入式TCP/IP通信協議

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

    基于和欣嵌入式操作系統實現的一個構件化的網絡協議設計淺析

    Internet 技術。要實現嵌入式設備的網絡化,需要實現TCP/IP網絡協議,但由于Internet上各種通信
    發表于 02-20 14:59 ?1287次閱讀
    基于和欣<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統</b><b class='flag-5'>實現</b>的一個構件化的網絡<b class='flag-5'>協議</b><b class='flag-5'>棧</b>設計淺析

    BACnet MS/TP轉MQTT網關的詳細介紹

    、BACnet MS/TP協議的網關。采用嵌入式 Linux 系統開發的產品,具有高度的穩定性。
    發表于 03-12 09:10 ?855次閱讀

    鋇錸BACnet MS/TPBACnet IP協議轉Modbus協議網關BL120BN

    在涉及WinCC系統需與廣泛BACnet協議設備實現數據交互的項目中,鋇錸技術的BACnet協議
    的頭像 發表于 08-06 17:27 ?284次閱讀
    鋇錸<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'>協議</b>轉Modbus<b class='flag-5'>協議</b>網關BL120BN