基于I-7198 的EIB 網關的設計與實現
1. 引 言
eib 是歐洲安裝總線的簡稱,這是一個1990 年誕生于歐洲的專用于建筑設備自動化控制的現場總線技術標準。誕生時eib 技術僅獲得7 家廠商的支持,到1999 年時會員單位已超過200 家,在歐洲同類產品市場上占據了絕對的優勢地位[1]。然而隨著智能家居在人們的生活中扮演著越來越重要的角色,可是在實際應用中因為缺乏規范、統一的行業標準,導致每個廠家的系統只能適應自己的標準,對于外來的產品兼容性差,使得智能家居系統的集成性能差。本文就是為了解決eib 系統與智能家居系統設備之間應用集成問題,從而提出了eib 網關的設計,實現復雜的eib 協議與簡單的自定義協議at-bus 的相互轉換。
2. eib 協議報文結構
進行 eib 網關的設計,了解eib 協議報文結構是非常重要的。eib 協議報文結構如下圖2-1 所示,通過此圖可以清晰看見eib 的報文結構包括:控制域,源地址,目的地址,長度,數據和校驗共六個部分組成。控制域:主要用來控制是否是重復報文,報文的優先級等;源地址:指發送報文的總線設備的物理地址,在通常操作中沒有特殊意義;目的地址:總線設備的物理地址或者對象的組地址;長度:此字節最高位為目的地址類型選擇標志,其后3bits 為路由計數器,每經過一個耦合器這個數就會減1,當減為0 時,報文丟棄,最后的4bits 表示數據單元的字節長度;數據:包含傳送到總線上的數據單元,具體說明;校驗字節:整個報文數據逐位的奇校驗。
下面通過一個具體例子來分析eib 協議報文,例如十六進制格式的eib 協議報文:bc 1425 04 00 e1 00 81 16,通過分析可以知道:控制區域為bc,表示非重復報文,優先級4;源地址為14 25;目標地址為04 00;長度字節為e1,則說明目的地址為組地址,路由計數值為6,數據長度為1;數據為00 81,報文為無標號類報文,服務類型為寫入對象值,寫入的值為1,校驗位為16。因此本報文的意義是源地址為14 25 的總線設備對組地址為04 00 的對象發送開命令。
上面的例子是eib 的標準數據類型中的開關類型,接下來介紹兩個常用標準數據類型,開關類型和調光類型。
開關類型:開關類型數據只占1bit,用來控制執行器的負載的開關,當值為“1”時,執行開的命令,當值為“0”時,執行關的命令,3. eib 協議外部通信機制上面介紹了 eib 協議報文結構,下面介紹eib 協議外部通信機制,這對eib 網關的設計也是至關重要的。由于總線訪問單元bau(bus access unit)的系統程序已經為外部應用定義了外部消息接口emi(external message interface),使用戶可以通過配置服務原語實現eib 網關對eib 各層的訪問。bau 通過外部接口pei(physical external interface)與eib 網關進行連接通信,pei 的類型有很多種,為了方便此次設計中采用pei-16 類型。
3.1 pei-16 協議格式
pei-16 通訊是串行異步的通信方式,采用的是帶有硬件握手的全雙工傳輸,一共需要接收數據rxd,發送數據txd,請求發送rts,清空發送cts 和地共五根線。pei-16 通信參數為:波特率9600,8 為數據位,1 位停止位[4],無校驗位。pei-16 消息格式的報文含一個長度字節,一個消息代碼字節和用戶數據三個部分。其中長度字節包含數據字節長度信息5bit 和長度字節的偶校驗位1bit。消息代碼即為服務代碼,常用服務代碼見。
3.2 pei-16 協議描述
pei-16 協議的數據交換包含如下四個階段:
1) 通信請求(硬件握手)2) 傳輸長度字節(軟件握手)3) 數據交換4) 暫停(2 條消息最小時間間隔3ms)下面給出pei-16 通信時序圖:其中為bcu 網關接收數據時序圖,為eib網關發送數據時序圖。
4. eib 網關總體設計
通過對 eib 系統的報文格式以及eib 的pei-16 消息格式通信時序進行了詳細的介紹,接著可以進行eib 網關的設計了。由于各個eib 廠家都提供一個rs232 通訊模塊,此模塊對外部的接口協議為pei-16,網關就利用此模塊與eib 總線通信。eib 網關的應用拓撲圖如圖4-1 所示,其中pc 可用來監視eib 總線數據。
4.1 硬件設計