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