熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 基于嵌入式Linux的BACnet控制器軟件設計

基于嵌入式Linux的BACnet控制器軟件設計

時間:2006-09-07 16:19:00來源:jiangf

導語:?BACnet 沒有對應于 OSI 的第四、五、六層,也就是說, BACnet 沒有傳輸層、會話層和表示層。
BACnet 沒有對應于 OSI 的第四、五、六層,也就是說, BACnet 沒有傳輸層、會話層和表示層。 BACnet 網絡層屏蔽了底層采用的網絡技術的差異。 1.2 BACnet 控制器的功能分析在一個 BACnet 控制網絡中,一個 BACnet 控制器通常和多個控制設備直接相連,負責監控這些設備的運行。概括起來說, BACnet 控制器應該具有三個方面的功能。①通信功能。 BACnet 控制器是一個網絡控制器,所以它必須能夠發送和接收 BACnet 報文,和其它 BACnet 設備進行通信。②監視功能。 BACnet 控制器要監視與它直接相連的控制設備的狀態。這樣,它就要提供數據結構來描述這種狀態。在 BACnet協議中,描述這些狀態是用 BACnet 對象。 BACnet 協議提供了 42 個標準對象。③控制功能。   BACnet 控制器要控制與它相邊聽設備的運行,不僅要使這些設備之間具有互動能力,而且要使這些設備和系統的遠程設備能夠互動,所以在 BACnet 控制器中應該有邏輯控制模塊來實現這一功能。值得注意的是,不同時間、不同地點, BACnet 控制器中的控制邏輯可能是不同的,因而在 BACnet 控制器中要提供改變控制流程的工具。這種工具最好是圖形界面的,以方便用戶使用。 圖 1 BACnet 體系結構層次圖 2 基于嵌入式 Linux 開發軟件的可行性① Linux 是一個和 Unix 相似、以核心為基礎的、完全內存保護、多任務多進程的操作系統。在開發過程中,可以根據實際需要,通過內核構筑工具對 Linux 內核功能進行裁減,做成體積很小的嵌入式操作系統,可使其達到 500KB 或更小的規模。②在實時性應用方面,通用的 Linux 在強實時性應用方面存在欠缺。 Linux 調度程序原來主要是針對臺式計算機操作系統。重點考慮的是在應用程序的吞吐量上,即采用了一種“公平共享”的策略保證所有進程得到平均的 CPU 時間。在樓宇控制設備這種弱實時性應用中,如果采用先進的內核機制、進程調度算法和較小粒度的系統時間( 10ms ),是可以滿足弱實時應用要求的,因此, Linux 可用于樓宇自動化系統。③ Linux 是源代碼開放的操作系統,可以很容易得到內核的接口和源碼,我們可以把 BACnet 的協議實現集成到內核中去。④ Linux 是自由軟件。在 GNU GPL 許可證協議下,可以自由使用、修改和發布,所以采用嵌入式 Linux 可以降低 BACnet 控制器的成本。 3 BACnet 控制器軟件的實現 3.1 BACnet 控制器軟件的體系結構基于 BACnet 協議的體系結構和上面對 BACnet 控制器功能的分析,可以得出 BACnet 控制器軟件包括以下幾個模塊: BACnet 協議棧、 BACnet 對象和服務、底層驅動模塊、應用控制邏輯模塊和控制配置模塊。對 Linux 內核中不必要的模塊加以裁減,并把 BACnet 控制器的一些模塊嵌入到 Linux 內核,最終的開發體系結構如圖 2 所示。 3.2 BACnet 協議棧的實現 BACnet 協議棧報文的封裝流程如圖 3 所示。 BACnet 協議的分層體系結構支持多種底層通信協議。 BACnet 的網絡層功能則對不同物理層和鏈路層的抽象,其原理與 TCP/IP 的 IP 層相。在 BACnet 應用層,定義了標準的對象和服務,以實現不同廠家的 BACnet 產品的互連。因此,從 BACnet 體系結構的各層協議內容來看, BACnet 的體系結構呈“啞鈴狀”,最低層包容不同的通信協議,最高層承接多樣的“實體”和應用。在 BACnet 協議中, BACnet 網絡層是相對穩定的部分,也是 BACnet 協議的核心,應放入內核之中。 其應用程序接口( API )應以系統調用( sys-call )的方式提供。這種構成方式不僅可以在內核內部高效實現對 BACnet 網絡層的處理,而且對外掛模塊還提供簡潔和高效的調用方式,使外掛模塊代碼緊湊。對于 BACnet 的低層協議和應用層則應放在內核之外,以模塊的方式外掛或為系統程序。在本開發過程中,將低層協議以原代碼的形式編譯在內核中。原因是,對于具體的應用,低層協議通常是固定的,即一旦某個設備接入一種網絡系統,該設備的低層通信協議就不會改變,從而形成一個類別的樓宇設備自動化產品。 3.3 BACnet 對象和服務的實現 BACnet 對象是駐留在 BACnet 設備中的數據結構,提供到一個樓宇自控設備的“網絡可見”部分的抽象描述。每個對象都有一組屬性,描述對象的特片和結構。 BACnet 對象按其功能可分為兩類。一類是采集數據的對象,如模擬輸入 / 輸出對象。這類對象需要訪問設備硬件,對象實現會根據不同設備硬件而變化,因此如果硬件發生變化,就要重寫驅動程序。另一類對象是在采集的數據基礎上完成復雜功能,如環對象以及其它實現報警事件功能的對象。這類對象不需訪問硬件。每一種 BACnet 控制器需要對已實現的對象進行配置。 BACnet 服務提供了用于訪問和操作設備中 BACnet 對象的命令,并定義了這些命令的格式和內容(即服務原語)。 Banet 根據設備功能將不同服務分組得到 7 個部分:數據共享、報警和事件管理、時間表、趨勢記錄、設備管理、網絡管理、虛擬終端。 BACnet 所定義的通信設備一致遵守的編碼規則是 ASN.1 。 BACnet 對象和服務原語都通過 ASN.1 進行編碼,因此對象和服務實現的核心是 BACnet 編 / 解碼器和 BACnet 標準數據類型、對象和服務原語的抽象數據類型。對于 BACnet 對象的處理必須放在內核之外。原因是:不同 BACnet 控制器具有不同的 BACnet 對象集合,且 BACnet 對象類型較多。這就要求嵌入式系統具對 BACnet 對象進行靈活的配置方式。實現這種靈活配置的方法仍需要采用 Linux 常用的抽象方法,將不同的具體 BACnet 對象進行抽象,形成“虛擬 BACnet 對象”的概念。此處是“虛擬對象”不同于面向對象程序設計語言中的“虛擬對象”。這兩個概念不同的。前者是相對 BACnet 協議中定義的具體對象而言,其作用是管理 BACnet 協議中定義的具體 BACnet 對象,是內核提供配置和操作具體 BACnet 對象的接口,相當于 Linux 內核中的“虛擬文件系統”等。 3.4 驅動程序的實現 BACnet 支持多種底層通信協議。在 BACnet 控制器中,必須為這些通信協議編寫驅動程序,同時在 BACnet 控制器中還要為一些數據采集卡之類的設備寫驅動程序。 Linux 操作系統下的驅動程序,是以模塊的形式存在的,能夠被動態地加載。對于不同的底層結構,可以靈活地加載不同的驅動程序。開發設備驅動程序必須對內核有嚴格要求,其主要內容是根據內核的 file_operations 數據結構開發相應的設備操作函數,并填寫數據結構。如果外圍設備具有中斷功能,則需要開發中斷處理函數并安裝中斷函數。 file_operations 的數據結構,內核版本不同時,其結構可能不同,可以相看 linux/fs.h 頭文件以確定具體的結構。在 file_operations 的眾多函數指針成員中,通常只需實現 reax 、 write 、 open 和 release 即可; ioctl 可以根據需要加以實現,以增強對外圍設備的控制和管理功能。 3.5 BACnet 控制器應用層實現應用邏輯層是建立在嵌入式操作系統之上的具體應用。 根據 BACnet 協議中定義了 3 個級別的 BACnet 控制器——樓宇控制器、高級應用控制器和應用控制器、實現不同類別 BACnet 設備規定的互操作域( InteroperationArea )。這樣,就可以在應用邏輯層中實現協議規定的 5 個互操作域。這種方式不僅使協議的互操作域開發簡單,而且使互操作域的開發具有可管理性。這 5 個操作域是:數據共享、報警和事件管理、時序安排、趨勢記錄及設備和網絡管理。①數據共享功能包括數據的文檔存儲、數據的表示、監測對象、設備點和參數修改。 BACnet 控制器要將本地采集的數據傳送到操作員工作站上進行存儲,主要是那些需要查看歷史記錄的值,如模擬輸入 / 模擬輸出當前值屬性等等。對于數據更新的時間間隔,快速采樣時,用 1 ~ 5s ;對于慢速過程,如空間溫度監測,采用 30 ~ 60s 間隔。 當控制器收到了 WriteProperty/WritePropertyMultiple ,服務,要求控制器重新設置端點和修改參數時,就調用本地方法,修改某些對象的屬性值。②報警和事件管理支持預定值改變報告、值改變通告和事件通知。當控制器某一個對象的屬性值發生改變時,它就向預定這一服務的設備發送值改變通告服務。告訴接收者這一變化。控制器發送一個事件通告服務,通知遠程設備有一個事件發生??刂破鬟€要支持響應 GetAlarmSummary ,通告報警狀態和事件信息。③時序安排??刂破髦С猪憫脕硇薷脑O備的 Calendar 、 Shedular 對象的 WriteProperty 服務請求,接收到該服務后,修改控制器的時序表。④趨勢記錄。支持響應用來修改 TrendLog 對象屬性的 WriteProperty 服務,接收該服務后,修改登陸的數據點、采樣速度、間隔。⑤設備和網絡管理。 該操作域支持 Device CommunicationControl 服務,操作員可以通過該服務禁止控制器;同時,該操作域還支持響應 TimeSynchronization 和 UTCTimeSynchronization 服務,保證時間同步;支持響應 AtomicReadFile 服務,允許遠程讀取 / 修改控制器的配置文件,允許通過網絡備份來恢復被配置。結語 BACnet 是一種實用的國際標準的樓宇控制網絡協議。控制器是 BACnet 控制網絡中的重要設備之一。 BACnet 控制器的開發成功,對于促進 BACnet 協議在我國樓宇自動化中應用具有重要的意義。

標簽:

點贊

分享到:

上一篇:輪胎定型硫化機技術進步及發...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 嘉善县| 托里县| 鸡泽县| 新津县| 柘荣县| 壶关县| 惠水县| 嘉荫县| 呈贡县| 宕昌县| 新和县| 哈巴河县| 新河县| 长海县| 巨鹿县| 巩义市| 武乡县| 醴陵市| 绥棱县| 许昌市| 竹北市| 如皋市| 玉田县| 城市| 长顺县| 浮梁县| 抚顺县| 潢川县| 沈丘县| 屯门区| 蓝山县| 栾川县| 尚义县| 洞口县| 和田市| 大城县| 门头沟区| 阳江市| 襄城县| 榆树市| 安化县|