国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于嵌入式Linux的BACnet控制器軟件設(shè)計

發(fā)布時間:2010-3-11 21:22    發(fā)布者:qgq
關(guān)鍵詞: BACnet , linux , 控制器 , 嵌入式 , 軟件設(shè)計
BACnet協(xié)議是一種為樓宇自動控制網(wǎng)絡(luò)所制定的數(shù)據(jù)通信協(xié)議。該協(xié)議已成為美國國家標準(ANSI/ASHRAE 135-1995)和歐盟標準草案,并在2000年成為草案級國際標準。其中定義了23個對象和42個服務(wù),以及5個數(shù)據(jù)鏈路的局域網(wǎng)底層網(wǎng)絡(luò)結(jié)構(gòu)。 1999年1月正式發(fā)布了附錄135a,成為標準的附件J,確定BACnet/IP技術(shù)的第6個局域網(wǎng)互聯(lián)的底層技術(shù)。

1 BACnet網(wǎng)絡(luò)體系結(jié)構(gòu)和控制器功能分析

1.1 BACnet網(wǎng)絡(luò)體系結(jié)構(gòu)

BACnet建立在包含四個層次的簡化分層體系結(jié)構(gòu)上。這四層相當于OSI模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層。BACnet標準定義自已的應(yīng)用層和簡單的網(wǎng)絡(luò)層,對于其數(shù)據(jù)鏈路層和物理層,提供了五種選擇方案,在附件J-BACnet/IP中加入了對IP的支持。

圖1是BACnet/IP網(wǎng)絡(luò)體系結(jié)構(gòu)層次圖。BACnet沒有對應(yīng)于OSI的第四、五、六層,也就是說,BACnet沒有傳輸層、會話層和表示層。BACnet網(wǎng)絡(luò)層屏蔽了底層采用的網(wǎng)絡(luò)技術(shù)的差異。


圖1 BACnet體系結(jié)構(gòu)層次圖

1.2 BACnet控制器的功能分析

在一個BACnet控制網(wǎng)絡(luò)中,一個BACnet控制器通常和多個控制設(shè)備直接相連,負責監(jiān)控這些設(shè)備的運行。概括起來說,BACnet控制器應(yīng)該具有三個方面的功能。①通信功能。BACnet控制器是一個網(wǎng)絡(luò)控制器,所以它必須能夠發(fā)送和接收BACnet報文,和其它BACnet設(shè)備進行通信。②監(jiān)視功能。BACnet控制器要監(jiān)視與它直接相連的控制設(shè)備的狀態(tài)。這樣,它就要提供數(shù)據(jù)結(jié)構(gòu)來描述這種狀態(tài)。在BACnet協(xié)議中,描述這些狀態(tài)是用BACnet對象。BACnet協(xié)議提供了42個標準對象。③控制功能。BACnet控制器要控制與它相邊聽設(shè)備的運行,不僅要使這些設(shè)備之間具有互動能力,而且要使這些設(shè)備和系統(tǒng)的遠程設(shè)備能夠互動,所以在BACnet控制器中應(yīng)該有邏輯控制模塊來實現(xiàn)這一功能。

值得注意的是,不同時間、不同地點,BACnet控制器中的控制邏輯可能是不同的,因而在BACnet控制器中要提供改變控制流程的工具。這種工具最好是圖形界面的,以方便用戶使用。

2 基于嵌入式Linux開發(fā)軟件的可行性

①Linux是一個和Unix相似、以核心為基礎(chǔ)的、完全內(nèi)存保護、多任務(wù)多進程的操作系統(tǒng)。在開發(fā)過程中,可以根據(jù)實際需要,通過內(nèi)核構(gòu)筑
   工具對Linux內(nèi)核功能進行裁減,做成體積很小的嵌入式操作系統(tǒng),可使其達到500KB或更小的規(guī)模。
②在實時性應(yīng)用方面,通用的Linux在強實時性應(yīng)用方面存在欠缺。Linux調(diào)度程序原來主要是針對臺式計算機操作系統(tǒng)。重點考慮的是在應(yīng)用
   程序的吞吐量上,即采用了一種“公平共享”的策略保證所有進程得到平均的CPU時間。在樓宇控制設(shè)備這種弱實時性應(yīng)用中,如果采用先進
   的內(nèi)核機制、進程調(diào)度算法和較小粒度的系統(tǒng)時間(10ms),是可以滿足弱實時應(yīng)用要求的,因此,Linux可用于樓宇自動化系統(tǒng)。
③Linux是源代碼開放的操作系統(tǒng),可以很容易得到內(nèi)核的接口和源碼,我們可以把BACnet的協(xié)議實現(xiàn)集成到內(nèi)核中去。
④Linux是自由軟件。在GNU GPL許可證協(xié)議下,可以自由使用、修改和發(fā)布,所以采用嵌入式Linux可以降低BACnet控制器的成本。

3 BACnet控制器軟件的實現(xiàn)

3.1 BACnet控制器軟件的體系結(jié)構(gòu)

基于BACnet協(xié)議的體系結(jié)構(gòu)和上面對BACnet控制器功能的分析,可以得出BACnet控制器軟件包括以下幾個模塊:BACnet協(xié)議棧、BACnet對象和服務(wù)、底層驅(qū)動模塊、應(yīng)用控制邏輯模塊和控制配置模塊。

對Linux內(nèi)核中不必要的模塊加以裁減,并把BACnet控制器的一些模塊嵌入到Linux內(nèi)核,最終的開發(fā)體系結(jié)構(gòu)如圖2所示。



3.2 BACnet協(xié)議棧的實現(xiàn)

BACnet協(xié)議棧報文的封裝流程如圖3所示。




BACnet協(xié)議的分層體系結(jié)構(gòu)支持多種底層通信協(xié)議。BACnet的網(wǎng)絡(luò)層功能則對不同物理層和鏈路層的抽象,其原理與TCP/IP的IP層相。在BACnet應(yīng)用層,定義了標準的對象和服務(wù),以實現(xiàn)不同廠家的BACnet產(chǎn)品的互連。因此,從BACnet體系結(jié)構(gòu)的各層協(xié)議內(nèi)容來看,BACnet的體系結(jié)構(gòu)呈“啞鈴狀”,最低層包容不同的通信協(xié)議,最高層承接多樣的“實體”和應(yīng)用。

在BACnet協(xié)議中,BACnet網(wǎng)絡(luò)層是相對穩(wěn)定的部分,也是BACnet協(xié)議的核心,應(yīng)放入內(nèi)核之中。其應(yīng)用程序接口(API)應(yīng)以系統(tǒng)調(diào)用(sys-call)的方式提供。這種構(gòu)成方式不僅可以在內(nèi)核內(nèi)部高效實現(xiàn)對BACnet網(wǎng)絡(luò)層的處理,而且對外掛模塊還提供簡潔和高效的調(diào)用方式,使外掛模塊代碼緊湊。對于BACnet的低層協(xié)議和應(yīng)用層則應(yīng)放在內(nèi)核之外,以模塊的方式外掛或為系統(tǒng)程序。在本開發(fā)過程中,將低層協(xié)議以原代碼的形式編譯在內(nèi)核中。原因是,對于具體的應(yīng)用,低層協(xié)議通常是固定的,即一旦某個設(shè)備接入一種網(wǎng)絡(luò)系統(tǒng),該設(shè)備的低層通信協(xié)議就不會改變,從而形成一個類別的樓宇設(shè)備自動化產(chǎn)品。

3.3 BACnet對象和服務(wù)的實現(xiàn)

BACnet對象是駐留在BACnet設(shè)備中的數(shù)據(jù)結(jié)構(gòu),提供到一個樓宇自控設(shè)備的“網(wǎng)絡(luò)可見”部分的抽象描述。每個對象都有一組屬性,描述對象的特片和結(jié)構(gòu)。BACnet對象按其功能可分為兩類。一類是采集數(shù)據(jù)的對象,如模擬輸入/輸出對象。這類對象需要訪問設(shè)備硬件,對象實現(xiàn)會根據(jù)不同設(shè)備硬件而變化,因此如果硬件發(fā)生變化,就要重寫驅(qū)動程序。另一類對象是在采集的數(shù)據(jù)基礎(chǔ)上完成復(fù)雜功能,如環(huán)對象以及其它實現(xiàn)報警事件功能的對象。這類對象不需訪問硬件。每一種BACnet控制器需要對已實現(xiàn)的對象進行配置。

BACnet服務(wù)提供了用于訪問和操作設(shè)備中BACnet對象的命令,并定義了這些命令的格式和內(nèi)容(即服務(wù)原語)。Banet根據(jù)設(shè)備功能將不同服務(wù)分組得到7個部分:數(shù)據(jù)共享、報警和事件管理、時間表、趨勢記錄、設(shè)備管理、網(wǎng)絡(luò)管理、虛擬終端。

BACnet所定義的通信設(shè)備一致遵守的編碼規(guī)則是ASN.1。BACnet對象和服務(wù)原語都通過ASN.1進行編碼,因此對象和服務(wù)實現(xiàn)的核心是BACnet編/解碼器和BACnet標準數(shù)據(jù)類型、對象和服務(wù)原語的抽象數(shù)據(jù)類型。

對于BACnet對象的處理必須放在內(nèi)核之外。原因是:不同BACnet控制器具有不同的BACnet對象集合,且BACnet對象類型較多。這就要求嵌入式系統(tǒng)具對BACnet對象進行靈活的配置方式。實現(xiàn)這種靈活配置的方法仍需要采用Linux常用的抽象方法,將不同的具體BACnet對象進行抽象,形成“虛擬BACnet對象”的概念。此處是“虛擬對象”不同于面向?qū)ο蟪绦蛟O(shè)計語言中的“虛擬對象”。這兩個概念不同的。前者是相對 BACnet協(xié)議中定義的具體對象而言,其作用是管理BACnet協(xié)議中定義的具體BACnet對象,是內(nèi)核提供配置和操作具體BACnet對象的接口,相當于Linux內(nèi)核中的“虛擬文件系統(tǒng)”等。

3.4 驅(qū)動程序的實現(xiàn)

BACnet支持多種底層通信協(xié)議。在BACnet控制器中,必須為這些通信協(xié)議編寫驅(qū)動程序,同時在BACnet控制器中還要為一些數(shù)據(jù)采集卡之類的設(shè)備寫驅(qū)動程序。Linux操作系統(tǒng)下的驅(qū)動程序,是以模塊的形式存在的,能夠被動態(tài)地加載。對于不同的底層結(jié)構(gòu),可以靈活地加載不同的驅(qū)動程序。

開發(fā)設(shè)備驅(qū)動程序必須對內(nèi)核有嚴格要求,其主要內(nèi)容是根據(jù)內(nèi)核的file_operations數(shù)據(jù)結(jié)構(gòu)開發(fā)相應(yīng)的設(shè)備操作函數(shù),并填寫數(shù)據(jù)結(jié)構(gòu)。如果外圍設(shè)備具有中斷功能,則需要開發(fā)中斷處理函數(shù)并安裝中斷函數(shù)。file_operations的數(shù)據(jù)結(jié)構(gòu),內(nèi)核版本不同時,其結(jié)構(gòu)可能不同,可以相看linux/fs.h頭文件以確定具體的結(jié)構(gòu)。在file_operations的眾多函數(shù)指針成員中,通常只需實現(xiàn)reax、write、 open和release即可;ioctl可以根據(jù)需要加以實現(xiàn),以增強對外圍設(shè)備的控制和管理功能。

3.5 BACnet控制器應(yīng)用層實現(xiàn)

應(yīng)用邏輯層是建立在嵌入式操作系統(tǒng)之上的具體應(yīng)用。根據(jù)BACnet協(xié)議中定義了3個級別的BACnet控制器——樓宇控制器、高級應(yīng)用控制器和應(yīng)用控制器、實現(xiàn)不同類別BACnet設(shè)備規(guī)定的互操作域(InteroperationArea)。這樣,就可以在應(yīng)用邏輯層中實現(xiàn)協(xié)議規(guī)定的5個互操作域。這種方式不僅使協(xié)議的互操作域開發(fā)簡單,而且使互操作域的開發(fā)具有可管理性。

這5個操作域是:數(shù)據(jù)共享、報警和事件管理、時序安排、趨勢記錄及設(shè)備和網(wǎng)絡(luò)管理。
①數(shù)據(jù)共享功能包括數(shù)據(jù)的文檔存儲、數(shù)據(jù)的表示、監(jiān)測對象、設(shè)備點和參數(shù)修改。BACnet控制器要將本地采集的數(shù)據(jù)傳送到操作員工作站  上進行存儲,主要是那些需要查看歷史記錄的值,如模擬輸入/模擬輸出當前值屬性等等。對于數(shù)據(jù)更新的時間間隔,快速采樣時,用1~5s;對于慢速過程,如空間溫度監(jiān)測,采用30~60s間隔。當控制器收到了WriteProperty/WritePropertyMultiple,服務(wù),要求控制器重新設(shè)置端點和修改參數(shù)時,就調(diào)用本地方法,修改某些對象的屬性值。
②報警和事件管理支持預(yù)定值改變報告、值改變通告和事件通知。當控制器某一個對象的屬性值發(fā)生改變時,它就向預(yù)定這一服務(wù)的設(shè)備發(fā)送值改變通告服務(wù)。告訴接收者這一變化。控制器發(fā)送一個事件通告服務(wù),通知遠程設(shè)備有一個事件發(fā)生。控制器還要支持響GetAlarmSummary,通告報警狀態(tài)和事件信息。
③時序安排。控制器支持響應(yīng)用來修改設(shè)備的Calendar、Shedular對象的WriteProperty服務(wù)請求,接收到該服務(wù)后,修改控制器的時序
表。
④趨勢記錄。支持響應(yīng)用來修改TrendLog對象屬性的WriteProperty服務(wù),接收該服務(wù)后,修改登陸的數(shù)據(jù)點、采樣速度、間隔。
⑤設(shè)備和網(wǎng)絡(luò)管理。該操作域支持Device CommunicationControl服務(wù),操作員可以通過該服務(wù)禁止控制器;同時,該操作域還支持響應(yīng)TimeSynchronization和 UTCTimeSynchronization服務(wù),保證時間同步;支持響應(yīng)AtomicReadFile服務(wù),允許遠程讀取/修改控制器 配置文件,允許通過網(wǎng)絡(luò)備份來恢復(fù)被配置。

結(jié)語

BACnet是一種實用的國際標準的樓宇控制網(wǎng)絡(luò)協(xié)議。控制器是BACnet控制網(wǎng)絡(luò)中的重要設(shè)備之一。BACnet控制器的開發(fā)成功,對于促進BACnet協(xié)議在我國樓宇自動化中應(yīng)用具有重要的意義。

參考文獻

   1. USA ANSI/ASHARE Standard 135-2001:BACnetA Data Communication Protocol for Building Automation and Control
       Networks 2001
   2. Jim Butler.Keith Corbett Java and Building Automation Systems
   3. Bushby Steven T BACnet - A standard communication infrastructure for intelligent buildings 1997
   4. 陳莉君 Linux操作系統(tǒng)內(nèi)核分析 2000

作 者:華中科技大學 許永喜 惠曉實 劉賢德  
來 源:單片機與嵌入式系統(tǒng)應(yīng)用 2003(8)
本文地址:http://m.qingdxww.cn/thread-9231-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 為何選擇集成電平轉(zhuǎn)換?
  • 5分鐘詳解定時器/計數(shù)器E和波形擴展!
  • 無線充電基礎(chǔ)知識及應(yīng)用培訓(xùn)教程2
  • PIC18-Q71系列MCU概述
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日产欧产麻豆精品精品推荐 | 国产成人成人一区二区 | 日本深夜18免费看片高清网 | 免费国产不卡午夜福在线 | 国产精品日韩一区二区三区 | 五月婷婷七月丁香 | 亚洲激情在线视频 | 欧美在线观看一区二区三区 | 直接观看黄网站免费视频 | 深夜在线看片 | 两个人免费观看视频高清视频 | 亚洲欧美日韩精品中文乱码 | 日本a中文字幕 | 国产自制一区 | 国产一区二区三区免费看 | 日本a中文字幕 | 字幕网yellow 91在线 | 国内精品久久久久久久久久影视 | 麻豆精品久久久 | 在线天堂网 | 伊人干 | aaa在线观看免费完整版 | 国产欧美精品专区一区二区 | 亚洲视频在线一区二区 | 五月天淫 | 久草久草视频 | 欧美日韩性生活视频 | 国产精品一区二区欧美视频 | 亚洲网站在线观看 | 青青草国产精品免费 | 99在线播放 | 爱人体147在线视频 爱情综合症泰剧在线观看全集 | 爱福利视频网 | 日本在线高清不卡 | 日本欧美韩国一区二区三区 | 精品国产三级a∨在线观看 精品国产三级a∨在线 | 精品在线免费观看视频 | 成人精品亚洲人成在线 | av av在线 | 视频一区二区在线观看 | 在线看片a |