網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

基於I-7188 的EIB 閘道器的設計與實現

欄目: 論文格式 / 釋出於: / 人氣:2.77W

1. 引 言

基於I-7188 的EIB 閘道器的設計與實現

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 硬體設計

eib 閘道器的硬體直接採用鴻格公司生產的i-7188 控制器模組,內部硬體結構如上圖4-2所示。

i-7188 模組採用美國amd 公司的80188 晶片,主頻為40mhz,內部有256k 的sram,512k 的flash rom,2k 的eeprom 和rtc 功能等。同時本模組還具有強大的通訊功能,具有四個串列埠,其中com1 為9 線串列埠,非常適合用來連線eib 的rs232 通訊模組,com2連線at-bus 匯流排,com3 連線pc,com4 為程式下載口。i-7188 配有minios7 嵌入式作業系統,極大提高系統的可靠性和執行的穩定性,同時給開發者提供了極為便利的開發環境和豐富的庫函式,給程式設計帶來極大方便[6]。因此採用此模組來構建eib 閘道器不僅可縮短設計時間和減少開發費用,而且可以降低技術風險便於提供更可靠的產品。

4.2 軟體設計

eib 閘道器主要進行at-bus 協議,eib 協議相互轉換及匯流排監視功能,在程式開始之前首先初始化串列埠,然後對eib 系統的rs232 模組進行配置,使其工作在資料鏈路層,因為工作在鏈路層,訊息簡單和功能靈活性較大,接下來就可以進行協議之間的相互轉換了。其軟體總體設計框圖如下圖4-3 所示。

4.2.1 pei-16 協議驅動設計

pei-16 協議驅動主要是完成eib 閘道器與eib 的rs232 通訊模組的通訊,一共包含兩個模組:傳送資料模組,接收資料模組,這兩個模組的資料處理流程分別。

4.2.2 eib 系統rs232 通訊模組配置設計為了將 rs232 通訊模組配置在資料鏈路層,必須使用pc_set_est 原語,它能直接訪問bau 的記憶體,進行工作層的設定,其pei-16 格式的鏈路層配置訊息如圖4-6所示。

4.2.3 eib 資料解析與封裝模組

當使 eib 的rs232 通訊模組工作在資料鏈路層上後,eib 閘道器就需要解析和封裝鏈路層資料。首先介紹如何解析eib 鏈路層資料,這裡將用到l_cation 服務原語,即能監測到eib 總線上的資料,假設某個開關按下,對應的燈被開啟,監測到所示資料:

通過分析可以發現,長度位元組為pei-16 協議的頭位元組,因為後面共有9 個位元組資料,故為0xa9;訊息程式碼0x49 為l_cation 原語服務程式碼;而使用者資料為標準eib 協議報文,可以對照前面分析進行參考,注意因為工作在鏈路層,故此報文不含校驗位。

下面介紹如何封裝eib 鏈路層資料,這裡將用到l_est 和l_irm 兩個服務原語,分別表示資料鏈路層傳送資料請求和鏈路層傳送資料反饋,兩者對應的訊息程式碼分別為0x11,0x4e。下面舉例分析,如控制組地址為0x0100 的燈關閉,只需傳送如圖4-8所示的格式的報文:

程式設計時先將eib-atbus 資料轉換關係表存於eib 閘道器中,當收到eib 匯流排資料後,首先根據訊息程式碼位元組判斷是匯流排監測還是報文反饋,如果是匯流排監測報文,根據使用者資料中的組地址查詢轉換關係表,檢視是否能找到對應的at-bus 資料,能則將at-bus 資料送到at-bus 的串列埠中進行傳送,不能則只將監測到的資料送到連線pc 的串列埠中。如果是報文反饋則通過pc 串列埠列印輸出,不做其他處理。

4.2.4 at-bus 資料解析與封裝

這兩個模組的設計比較簡單,當收到at-bus 的資料後,送到at-bus 解析模組,解析模組通過查尋轉換關係表分析進行何種型別轉換,如開關燈或者調光增減等,然後呼叫eib封裝函式進行封裝,然後送到eib 傳送緩衝即可。當收到eib 的資料時,eib 解析模組通過查詢轉換關係表分析進行何種轉換,然後呼叫at-bus 封裝模組進行資料封裝,接著送到at-bus 串列埠傳送緩衝區即可。

5. 結論

本文首先分析了研究 eib 協議報文格式以及eib 的外部通訊機制,然後採用鴻格i-7188模組,高效的實現了eib 協議到自定義串列埠協議at-bus 的轉換,為智慧家居中eib 系統與其他系統的聯動控制提供了方便,圖5-1 是eib 閘道器的一次具體應用,它實現了通過室內主機發送at-bus 協議給eib 閘道器從而控制eib 的燈光系統。

Tags:EIB 閘道器