KNX协议入门
KNX協(xié)議入門
轉自:https://wenku.baidu.com/view/65b0a25a55270722182ef706.html
如有侵權,請聯(lián)系qq:2453419889,我將立即刪除。
一、KNX技術簡介
KNX通過一條總線將各個分散的設備連接并分組和賦予不同的功能;系統(tǒng)采用串行數(shù)據(jù)通訊進行控制、監(jiān)測和狀態(tài)報告。KNX是基于事件控制的分布式總線系統(tǒng),只有當總線上有事件發(fā)生時和需要傳輸信息時才將報文發(fā)送到總線上。
KNX 技術的通信模型采用五層結構:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層和應用層。KNX 物理層支持TP1( 雙絞線)、PL110(電力線)、RF(射頻) 和Ethernet(以太網(wǎng)),其中TP1 介質應用最多。數(shù)據(jù)鏈路層實現(xiàn)總線設備之間的數(shù)據(jù)傳輸,并解決網(wǎng)絡中的通信沖突問題。對于小KNX系統(tǒng)中的總線設備,網(wǎng)絡層的功能很少,只是完成了傳輸層和數(shù)據(jù)鏈路層的通信映射功能。大型KNX系統(tǒng)中有耦合器類產(chǎn)品,作用是在網(wǎng)絡層完成路由功能和跳數(shù)(hop)控制功能。傳輸層完成設備之間的傳輸,有四種傳輸模式:點到點無連接,點到點有連接,廣播和多播。
KNX通信模型?
KNX傳輸介質主要是雙絞線,比特率為9600bit/s??偩€由KNX電源(DC24V)供電,數(shù)據(jù)傳輸和總線設備電源共用一條電纜,數(shù)據(jù)報文調制在直流電源上。
KNX系統(tǒng)有兩種配置模型:S-Mode (系統(tǒng)模式)和E-Mode (簡單模式)。
S-Mode:該配置機制是為經(jīng)過良好培訓的KNX安裝者實現(xiàn)復雜的樓宇控制功能。一個由“S-Mode”組件組成的裝置可以由通常的軟件工具(ETS? 3專業(yè)版)在由S-Mode產(chǎn)品制造商提供的產(chǎn)品數(shù)據(jù)庫的基礎上進行設計:ETS也可以用于連接和設置產(chǎn)品(即設置安裝和下載要求的可用參數(shù))?!?/span>S-Mode”提供給實現(xiàn)樓宇控制功能的最高級別的靈活性。
E-Mode:該配置機制是針對經(jīng)過基本KNX培訓的安裝人員。和S-Mode相比,“E-Mode”兼容產(chǎn)品只提供有限的功能。E-Mode組件是已經(jīng)預先編程好的并且已經(jīng)載入默認參數(shù)。使用簡單配置,可以部分的重新配置各個組件(主要是它的參數(shù)設置和通信連接)。
?
注:ETS軟件是系統(tǒng)設計、編程和調試的工具軟件;可能需要購買。KNX系統(tǒng)的構建和各種參數(shù)設置都需要ETS軟件。ETS軟件安裝好后數(shù)據(jù)庫是空的,需要將各個制造商產(chǎn)品的參數(shù)導入數(shù)據(jù)庫;KNX認證過的產(chǎn)品應當會有光盤之類的介質存儲相關的產(chǎn)品信息。
?
?
二、KNX總線設備和網(wǎng)絡拓撲
?
KNX總線設備結構圖
由上圖可知KNX總線設備主要由三部分組成。總線耦合單元主要由兩部分組成:控制器和收發(fā)器,這也是硬件設計的地方??偩€耦合單元有自己的MCU并集成了KNX協(xié)議棧;BCU會提供已定義的API(應用程序編程接口)函數(shù),供AM 通過PEI(一般是串口通訊)調用。KNX總線設備的BCU硬件都是相同的,一個總線設備的功能是由AM模塊的應用程序決定。由BCU和AM可決定總線設備可以是一體或者分離結構。“一體結構”的通信部件和應用部件不可分離,不需要PEI(物理外部接口)。“一體結構”產(chǎn)品的總線耦合功能和應用功能是由一個MCU實現(xiàn);“分離結構”的產(chǎn)品其總線耦合功能和應用功能由不同中央處理單元分別實現(xiàn)。我們的KNX網(wǎng)關應該是分離結構的,設備由BCU(用西門子KNX芯片)和AM(STM32)組成;還要加入以太網(wǎng)等通訊協(xié)議。如果需要中央管理功能,可以通過在P C或觸摸屏上安裝監(jiān)控軟件來實現(xiàn)。
?
KNX系統(tǒng)原理示意圖
由上圖可知KNX總線設備主要分為執(zhí)行器和傳感器,如果KNX系統(tǒng)網(wǎng)絡較大還需要耦合器\路由器。
KNX系統(tǒng)拓撲的層次結構是:線路、干線(域)、主干線。KNX采用分層結構,分為域和線路;一個系統(tǒng)有15個域,每個域有15條線路,每個線路有64個設備。大型KNX網(wǎng)絡中支線/干線耦合器(路由器)和中繼器是構建整個網(wǎng)絡的關鍵設備。
1、?線路
線路是KNX系統(tǒng)最小的單元,可接64個設備;實際可連接的設備數(shù)量應取決于總線電源和設備耗電。每條線路最長1000m。如下圖所示:
?
2、?干線(域)
KNX系統(tǒng)可以有15條線路通過線路耦合器(路由器)連接到主線路。如下圖所示:
?
3、?主干線(多個區(qū)域)
干線可通過干線耦合器(路由器)組成多個區(qū)域,一般情況下一個KNX系統(tǒng)可接14400(15*15*64)個總線設備。一般KNX系統(tǒng)線路和干線都采用KNX通訊,如下圖所示:
?
ABB基于KNX的系統(tǒng)
ABB大型KNX網(wǎng)絡在主干線上采用的是以太網(wǎng)通訊,這樣可以提高系統(tǒng)的通信速率;在干線上用以太網(wǎng)通訊,干線和線路的耦合采用的是IP/KNX網(wǎng)關,線路用KNX通訊。這樣的系統(tǒng)在干線網(wǎng)絡中可以有大量的狀態(tài)信息,如下圖所示:
?
ABB基于IP網(wǎng)絡的KNX系統(tǒng)
?
由上圖兩個KNX系統(tǒng)可知耦合器(路由器)的作用,干線耦合器和線路耦合器作為網(wǎng)絡的節(jié)點,作用是為數(shù)據(jù)傳輸找到合適的路徑和切換鏈路,確保數(shù)據(jù)包到達目的地;另外對系統(tǒng)線路中的信號進行過濾后才能進入到干線中,這樣可以增加干線的通訊速率。耦合器(路由器)使用兩種不同的路由機制,對于組地址尋址,使用一種過濾算法;對于物理地址尋址,通過解釋接收幀的物理地址進行路由。耦合器接收到的組地址只要包含在該過濾表內(nèi),就可以被路由;這樣可以保證各個線路獨立工作。
有的大型設備在線路中還會增加中繼器,中繼器沒有物理地址,不具有過濾特性,只是確認接收到數(shù)據(jù)鏈路層上的幀,并在中繼器的另一側發(fā)送已接收到的幀;這樣可以增加線路的長度。
三、KNX系統(tǒng)通信
KNX總線設備是通過報文傳輸信息。設備發(fā)送報文后會收到應答,發(fā)送設備若收到NAK(接收錯誤)確認時,通常會重復發(fā)送報文三次;若收到BUSY(總線被占用)確認,發(fā)送總線設備將會等待一個短時隙,此后重新嘗試發(fā)送報文;若發(fā)送總線設備未收到確認,則最多重復發(fā)送該報文三次,此后,終止發(fā)送請求。KNX技術應用CSMA/CA(載波偵聽多路訪問/沖突避免)和報文優(yōu)先級來控制介質訪問。KNX系統(tǒng)采用單元地址化結構設計,分為物理地址和組地址。
KNX系統(tǒng)通信基本解釋:
1、KNX地址類別:物理地址和組地址
KNX基本線路工作示意圖
上圖中工作流程如下簡述:當物理地址(PA)為1.1.1的開關按下后會發(fā)生包含組地址(GA)為5/2/66、操作值“1”的報文;在線路中的所有總線設備都會接受到這個報文,但只有相同組地址的總線設備才會執(zhí)行。
在KNX網(wǎng)絡中根據(jù)系統(tǒng)的等級結構和應用模塊的功能賦予每個總線設備相應的物理地址(用于識別總線設備和反應在網(wǎng)絡中的拓撲位置)和組地址(用于連接傳感器和執(zhí)行器的功能)。物理地址是KNX系統(tǒng)中總線設備的唯一編碼,它由域地址、線路地址和設備地址組成;物理地址在系統(tǒng)中用于對設備進行管理和配置。組地址是功能相關的地址,在系統(tǒng)中并不唯一;因此總線設備根據(jù)功能分配有一個或多個組地址,可進行“多控一”或者“一控多”操作。在KNX系統(tǒng)各種功能應該是靠組地址實現(xiàn);物理地址在系統(tǒng)中主要用于程序下載(通過ETS軟件)、診斷、排錯等。
2、報文結構
當KNX系統(tǒng)有事件發(fā)生,總線設備就會向總線發(fā)送報文。經(jīng)過長度不短于T1的總線空閑時間之后,開始進行傳輸;報文傳輸完成之后,總線設備將使用時間T2檢查報文是否已被成功接收。如果沒有總線設備來應答,發(fā)送的報文會被重復。報文發(fā)送后會收到報文傳輸時間如下圖所示:
?
標準報文結構圖
A、控制字段
?
上圖中A表示報文是否重復,BB表示報文的優(yōu)先級。
B、源地址、目標地址
報文中源地址只能是物理地址,表示報文發(fā)送設備自身所在的域和線路;目標地址可以是物理地址或者組地址,它定義了通信的接收對象,可以是一臺或者多臺設備,也可以是在同一條線路或者不同的線路中。目標地址的第17位可由接收方可以判定目標地址為組地址還是物理地址。若為“0”,則目標地址為物理地址僅對總線中一個設備進行尋址;若為“1”,為組地址,對總線中所有相同組地址的設備尋址。
C、路由計數(shù)、長度
該字節(jié)除了包含LSDU(鏈層服務數(shù)據(jù)單元)數(shù)據(jù)的長度還包含一個bit 的標志表明地址的屬性,以及3 個bit 的路由計數(shù)信息。數(shù)據(jù)長度是指報文中實用數(shù)據(jù)字節(jié)的長度。同時在每一個數(shù)據(jù)報中包含一個3bits 的路由計數(shù)器。一般總線設備計數(shù)器的初始值為6,每經(jīng)過個總線耦合器、線路耦合器和中繼器等都減一,當這個計數(shù)值減為0 時,這個報文就被丟棄,因而避免了死循環(huán)的問題。
E、實用數(shù)據(jù)
實用數(shù)據(jù)的長度根據(jù)應用的不同而改變,最少為2 字節(jié),最多為16 字節(jié)。
包括各種開關、調光、讀寫地址命令。
F、校驗字節(jié)
檢測數(shù)據(jù)采用校驗位(字符校驗)和校驗字節(jié)(報文校驗)的形式傳輸,用于檢測報文傳輸錯誤。
報文中的每個字符均執(zhí)行偶校驗,報文中全部字符的每一個位位置均執(zhí)行奇校驗,字符校驗和報文校驗相結合。?
3、編碼方式
KNX以雙絞線作為傳輸介質時,“0”和“1”兩個邏輯狀態(tài)采用一個bit位表示;邏輯“0”有調制信號到總線上(有6-9V的電壓下降),“1”期間的發(fā)生器被禁用沒有調制信號,總線上只有直流信號。因此,邏輯“0”的優(yōu)先級高于邏輯“1”。?
?
KNX總線電壓和邏輯電平
4、介質訪問控制
KNX采用CSMA/CA(載波偵聽多路訪問/沖突避免)技術。為了發(fā)送報文,總線設備必需首先偵聽總線,如果在前一幀間隔時間內(nèi)在媒體上沒有檢測到活動,那么可以立即開始傳輸;否則應當?shù)却偩€上的報文傳輸完成。在檢測到總線空閑之后,可能會有多個總線設備同時開始傳輸會發(fā)生碰撞。因此,KNX的報文結構中有優(yōu)先級機制,優(yōu)先級高的先發(fā)送;當報文優(yōu)先級相同時應再根據(jù)報文中的的物理地址(發(fā)送報文設備的自身物理地址)決定發(fā)送先后順序,物理地址低的先發(fā)送。發(fā)送期間,總線設備應監(jiān)測總線;當發(fā)送邏輯“1”的總線設備監(jiān)測到邏輯“0”(總線上有電流)時,當前設備應停止發(fā)送讓位于其它設備。
?
四、KNX硬件設計
KNX網(wǎng)關的硬件設計STM32部分還是沿用老網(wǎng)關,KNX耦合部分硬件參考西門子KNX方案(包括集成KNX協(xié)議棧的KNX-Processor和TP-UART收發(fā)器)。西門子方案基本框圖如下所示:
?
?
?
?
?
?
總結
- 上一篇: java基础实例代码_Java基础实例
- 下一篇: 安防摄像头Onvif、RTSP、GB28