專利名稱:一種基于eib協(xié)議的現(xiàn)場設備通信方法
技術領域:
本發(fā)明涉及現(xiàn)場總線與控制技術,特別涉及一種基于EIB協(xié)議的現(xiàn)場設備通信方法。
背景技術:
目前,EIB總線技術作為一種性能優(yōu)良的現(xiàn)場總線標準,分別于1999年、2005年、2007年被定為歐洲標準、國際標準和國家標準。EIB總線產(chǎn)品在國內市場上的應用已從導入期進入推廣應用階段,隨著智能建筑、綜合能源管理、物聯(lián)網(wǎng)智慧感知等技術的發(fā)展,國內EIB總線技術將迎來市場的井噴應用時期?,F(xiàn)場設備中基于EIB協(xié)議的通信設計與實現(xiàn)方法是EIB總線技術推廣應用的關鍵技術,目前主要有兩種解決方案一種是基于單片機的協(xié)議棧設計方案,另一種是基于ARM等嵌入式芯片的實現(xiàn)方案。前者成本較低,實現(xiàn)方案較為靈活,適合在廣大的現(xiàn)場感知節(jié)點中應用;而后者功能較強,成本相對較高,適合在功能強大的中大型控制器中使用。盡管EIB總線技術在國外已相當成熟,但國內對EIB協(xié)議的研究開發(fā)與推廣應用起步較晚,目前尚缺乏具有自主知識產(chǎn)權的EIB協(xié)議棧封裝產(chǎn)品,導致國內市場上EIB總線產(chǎn)品成本高昂,大范圍多領域的使用受到限制。目前存在的問題主要有
I、EIB封裝技術主要被西門子等國外大廠家所壟斷,國內雖有不少科研院所在從事這方面的工作,但大都處于熟悉了解階段,進展不大,缺泛技術突破。2、國內企業(yè)普遍缺乏有力的技術支撐,EIB總線產(chǎn)品的研發(fā)主要是采用西門子等廠家的BCU單元進行OEM開發(fā),實際上只是開發(fā)應用模塊部份。3、一方面,EIB協(xié)議應用的市場潛力巨大,另一方面由于缺泛具有自主知識產(chǎn)權產(chǎn)品的支持,導致EIB總線產(chǎn)品的應用成本居高不下,嚴重制約了 EIB總線技術在國內的推廣應用進程。4、一方面,現(xiàn)場感知節(jié)點設備在硬件設計上應盡可能簡單,以降低成本;另一方面,在物聯(lián)網(wǎng)智慧感知的要求下,每一個現(xiàn)場節(jié)點感知設備應具有盡可能多的智慧處理能力。如何在資源少、功能強兩方面進行平衡,獲得很好的經(jīng)濟效益也是EIB協(xié)議棧封裝產(chǎn)品的重要課題。因此,研究開發(fā)具有自主知識產(chǎn)權的EIB協(xié)議棧產(chǎn)品,不僅能打破國外廠家在EIB總線技術上的壟斷地位,降低EIB總線產(chǎn)品的綜合應用成本,而且還能提升國內在智能照明、智慧感知等應用領域產(chǎn)品的檔次,具有特別重要的意義。
發(fā)明內容
為解決上述問題,本發(fā)明的目的在于提供能大大降低EIB總線產(chǎn)品在國內市場的應用門檻,解決其在國內市場應用的技術“瓶頸”的一種基于EIB協(xié)議的現(xiàn)場設備通信方法。本發(fā)明解決其問題所采用的技術方案是
一種基于EIB協(xié)議的現(xiàn)場設備通信方法,根據(jù)EIB協(xié)議標準創(chuàng)建對應的協(xié)議棧對傳輸?shù)臄?shù)據(jù)進行逐層的封裝和解析,即通過物理層、鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層對數(shù)據(jù)進行分層的封裝和解析,其中協(xié)議棧采用全局數(shù)據(jù)結構實現(xiàn)通信過程中相關參數(shù)的傳遞,在數(shù)據(jù)結構中協(xié)議棧的各功能模塊均可直接讀/寫操作此數(shù)據(jù)結構中的字段信息,實現(xiàn)管理與賦值。上述各功能模塊具體的訪問字段信息的內容由各層對象管理實體和服務器所實現(xiàn)的功能所決定。進一步,將數(shù)據(jù)幀各字段的信息進行分類梳理,定義并映射成數(shù)據(jù)幀的各結構字段,構成所述的全局數(shù)據(jù)結構。所述數(shù)據(jù)幀的字段信息包括控制字段、地址信息、數(shù)據(jù)、長度信息以及幀類型信息,還包括應用層、傳輸層等控制信息。設置全局數(shù)據(jù)結構能有效控制協(xié)議棧代碼的大小,使其能在普通的8位單片機中即可正常運行,解決跨層、跨功能服務處理時的數(shù)據(jù)與參數(shù)傳遞問題,并優(yōu)化源代碼,將協(xié)議棧的代碼空間控制在5K-10K之間,方便在普通單片機中部署。
進一步,協(xié)議棧還定義了發(fā)送/接收緩沖區(qū),接收數(shù)據(jù)時從接收緩沖區(qū)將數(shù)據(jù)拷入全局數(shù)據(jù)結構,協(xié)議棧各層通過讀取全局數(shù)據(jù)結構操作,獲得EIB接收數(shù)據(jù)幀的各結構字段信息,從下至上逐層解析并作出對應的應答處理;發(fā)送時協(xié)議棧各層通過寫入全局數(shù)據(jù)結構操作,將數(shù)據(jù)幀的各結構字段值逐一存入全局數(shù)據(jù)結構,從上往下逐層完成EIB協(xié)議數(shù)據(jù)幀的封裝,然后拷貝進發(fā)送緩存區(qū)進入發(fā)送操作。全局數(shù)據(jù)結構定義并映射了數(shù)據(jù)幀的各結構元素,可直接被協(xié)議棧中各子模塊進行全面讀/寫操作,實現(xiàn)管理與賦值。接收時從接收緩沖區(qū)將數(shù)據(jù)拷入全局數(shù)據(jù)結構,通過讀取全局數(shù)據(jù)結構操作,獲得EIB接收數(shù)據(jù)幀的各結構元素值,解析并作出對應的應答處理;發(fā)送時通過寫入全局數(shù)據(jù)結構操作,將數(shù)據(jù)幀的各結構元素值逐一存入全局數(shù)據(jù)結構,完成EIB協(xié)議數(shù)據(jù)幀的封裝,之后拷貝進發(fā)送緩沖區(qū)進行發(fā)送操作。這樣操作的好處是節(jié)省了資源,加快了數(shù)據(jù)處理速度。同時,在項目實現(xiàn)過程中,以宏定義的方式為該全局變量的讀寫預留操作接口,大大降低操作過程中的出錯率。進一步,協(xié)議棧定義了外部變量表,用于管理數(shù)據(jù)幀整體收發(fā)情況,完成數(shù)據(jù)鏈路層與物理層的參數(shù)傳遞工作。外部變量表用于管理數(shù)據(jù)幀整體收發(fā)情況,如發(fā)送/接收緩沖區(qū)地址、幀長度、發(fā)送/接收啟始/結束情況等。進一步,協(xié)議棧定義了內部變量表,用于管理物理層接收、發(fā)送幀過程中形成和涉及的狀態(tài)信息。如總線空閑狀態(tài)、發(fā)送接收字符狀態(tài)、當前位信息、接收字符位數(shù)、工作緩沖區(qū)地址、奇偶檢測位等信息。采用內部變量表和外部變量,可將通信處理方法與具體的介質特征分離,實現(xiàn)現(xiàn)場設備之間數(shù)據(jù)通信的處理與物理層介質無關。進一步,協(xié)議棧設有層管理實體對對各層的服務函數(shù)進行管理,實現(xiàn)協(xié)議棧代碼容量的精細化裁剪。進一步,所述層管理實體包括應用層管理實體、傳輸層管理實體、網(wǎng)絡層管理實體和鏈路層管理實體。進一步,根據(jù)用戶層的需要,協(xié)議棧以通信模式為原則從上往下逐層服務映射,將必須的服務類型包含進協(xié)議棧,橫向管理協(xié)議服務內容,對協(xié)議棧代碼容量進行有效伸縮。通信過程中的具體實現(xiàn)和設置方法是各層針對基本通信模式的每個服務類型,分別創(chuàng)建*. Inc和*. Service文件,來申明和實現(xiàn)各個服務的原語函數(shù),初始化服務的接口參數(shù),讀取并獲得服務的接口參數(shù)值;創(chuàng)建層服務管理實體對本層的功能服務進行管理,并實現(xiàn)上層對下層的服務映射與嵌套。若設備需增添新的應用,只需在用戶層添加要求的用戶進程,根據(jù)其通信模式要求在協(xié)議棧層管理實體中統(tǒng)一開啟并逐層映射該應用通訊所需的服務原語,即可完成協(xié)議棧新應用的開發(fā)工作。進一步,在用戶層和應用層之間建立組對象處理數(shù)據(jù)表,實現(xiàn)現(xiàn)場設備之間的直接數(shù)據(jù)通信管理。在用戶層與應用層之間,建立組對象處理數(shù)據(jù)表作為用戶組對象管理模塊與系統(tǒng)協(xié)議棧通信的橋梁。組對象處理數(shù)據(jù)表包括組地址表(描述設備組地址信息)、關聯(lián)表(描述組地址與對象的關聯(lián)關系)及對象表(描述設備對象信息)三部分。對象表的數(shù)據(jù)由用戶和組對象服務器共同維護。 這是一個共享變量模型在單個設備上的具體表現(xiàn)。實際上,該共享變量模型不僅指單個設備,而是指在整個網(wǎng)絡的同一個組上,由設備的組對象服務器間通過互操作來保證。根據(jù)用戶應用需求或設備動作情況,用戶層組對象管理模塊更改對象表的相應對象狀態(tài)信息,設置傳輸狀態(tài)并標識寫請求。應用層的組對象服務器實時查詢對象表中各對象的狀態(tài)信息變化情況,根據(jù)對象表的傳輸狀態(tài)及寫請求標識查找關聯(lián)表中對應項并綁定組地址表提取與之關聯(lián)的組地址信息,調用應用層讀/寫組值服務,向全局數(shù)據(jù)結構添加應用層控制信息,并逐層往下調用添加形成幀封裝發(fā)送過程;物理層接收并處理總線數(shù)據(jù)幀后逐層解析直到應用層,提取接收數(shù)據(jù)幀的應用層控制信息調用應用層讀/寫組值服務,根據(jù)接收幀的組地址信息,查詢關聯(lián)表綁定與之相關聯(lián)的對象號,提取對應項進行應答處理或將接收數(shù)據(jù)信息寫入對象表對應項,標記對象更新標志。組對象服務器查詢到對象更新標志后調用用戶層用戶進程功能模塊,響應來自總線的動作請求。進一步,在協(xié)議棧程序源代碼的各層中,根據(jù)通信模式、服務功能等設置條件編譯,從應用層開始自上而下逐層分服務設置編譯條件,當具體產(chǎn)品中選中某通信模式才將其涉及的服務代碼編譯進源程序,沒有應用的服務類型將不會編譯進源程序。這樣,盡管應用設計時,每款產(chǎn)品的具體功能都會有所不同,但仍可使用統(tǒng)一的協(xié)議棧,只需開關編譯條件即可既滿足功能需求又節(jié)省底層芯片存儲空間。條件編譯的設計方法有利于滿足根據(jù)產(chǎn)品自身功能特點選擇合適硬件的需求,一定程度上節(jié)省了硬件成本。EIB協(xié)議棧包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層。物理層基于設備硬件部分,主要是實現(xiàn)并保證EIB系統(tǒng)內各物理實體間的正確通信。它負責完成數(shù)據(jù)幀中每一個具體數(shù)據(jù)位的接收、發(fā)送工作。物理層接收數(shù)據(jù)幀時,校驗每個字節(jié)的校驗位正確與否,將字節(jié)校驗位錯誤的幀予以放棄,最終將接收到的數(shù)據(jù)形成固定格式的EIB數(shù)據(jù)幀,存儲到接收緩沖區(qū),并通過外部變量表來通知鏈路層接收完成;發(fā)送數(shù)據(jù)幀時,接收到鏈路層幀發(fā)送任務后,檢測總線工作情況,將發(fā)送緩沖區(qū)的數(shù)據(jù)幀逐位進行發(fā)送,形成每一個字節(jié)的校驗位并完成發(fā)送工作。其中內部變量表用于存儲接收、發(fā)送執(zhí)行過程中形成的狀態(tài)標識,外部變量表則負責與數(shù)據(jù)鏈路層之間的通訊工作。數(shù)據(jù)鏈路層支持鏈路層數(shù)據(jù)服務、鏈路層本地信息服務、鏈路層輪詢服務以及鏈路層系統(tǒng)廣播服務。實現(xiàn)方法是在鏈路層服務器中定義并實現(xiàn)支持本層各服務功能的函數(shù)體,實時掌握幀收發(fā)狀態(tài),提取或更新內外部變量表內容,管理發(fā)送/接收緩沖區(qū),完成數(shù)據(jù)幀LPDU (鏈路層協(xié)議數(shù)據(jù)單元)的提取分析或設置工作。其中數(shù)據(jù)鏈路層還用于提供數(shù)據(jù)幀的差錯檢測功能并支持對數(shù)據(jù)鏈路地址的識另IJ。接收時,它負責從接收緩沖區(qū)檢測數(shù)據(jù)幀的校驗字符,判斷幀的完整性,放棄校驗錯誤或目的地址不屬于本節(jié)點設備的數(shù)據(jù)幀,對正確接收的數(shù)據(jù)幀反饋接收正確回復幀,錯誤的幀反饋接收錯誤的回復幀,并將接收緩沖區(qū)的數(shù)據(jù)幀加載到全局數(shù)據(jù)結構中,告知網(wǎng)絡層接收處理完成;發(fā)送時,它根據(jù)幀的任務需求在全局數(shù)據(jù)結構中加載相應類型的地址信息,計算并添加數(shù)據(jù)幀的校驗字符,形成完整數(shù)據(jù)幀后拷入發(fā)送緩沖區(qū),通知物理層進行發(fā)送。發(fā)送完成后,處理接收方發(fā)送的回復幀,如果發(fā)送失敗,完成限定次數(shù)內的重發(fā)功能。網(wǎng)絡層支持網(wǎng)絡層系統(tǒng)廣播服務、網(wǎng)絡層點對點連接服務、網(wǎng)絡層組服務。實現(xiàn)方法是在網(wǎng)絡層服務器中定義并實現(xiàn)支持本層各服務的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取或設置NPDU (網(wǎng)絡層協(xié)議數(shù)據(jù)單元)識別、分配網(wǎng)絡路由。網(wǎng)絡層主要實現(xiàn)網(wǎng)絡路由的分配和識別工作,判斷當前數(shù)據(jù)幀的通信模式,并據(jù)此對數(shù)據(jù)信息進行分服務處理。接收時,它負責從全局數(shù)據(jù)結構中提取并識別地址類型、路由信息及設備類別等信息,根據(jù)識別結果將不同通信模式的數(shù)據(jù)幀進行分類處理,通知傳輸層進行工作。發(fā)送時,它根據(jù)通信模式的不同在全局數(shù)據(jù)結構中對應位置上添加相應地址類型標識,加載設備路由及設備類別信息,通知鏈路層進行工作。傳輸層支持通信模式主要有以下幾種點對多點,無連接/多播通信模式;點對域,無連接/廣播;點對點,無連接;點對點,面向連接。實現(xiàn)方法是在傳輸層服務器中定義并實現(xiàn)支持本層各服務功能的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取、分析處理或設置TPDU (傳輸層協(xié)議數(shù)據(jù)單元)的工作。傳輸層負責分配、識別TPDU (傳輸層協(xié)議數(shù)據(jù)單元),對屬于不同通信模式的數(shù)據(jù)信息提供不同的傳輸層原語服務,接收處理幀時,它從全局數(shù)據(jù)結構中提取數(shù)據(jù)幀TPDU信息,據(jù)此判斷幀的通信模式類型,響應該模式的指示原語服務,調用應用層的應用服務進行后續(xù)處理;發(fā)送封裝幀時,根據(jù)應用層應用服務對通信模式的不同需求,響應對應的請求、確認原語,并將TPDU的信息封裝進全局數(shù)據(jù)結構當中,通知網(wǎng)絡層進一步封裝加載數(shù)據(jù)幀信息。應用層服務主要有讀寫組值服務/多播,讀寫屬性值服務/點對點無連接,讀寫 內層服務/點對點有連接,讀寫物理地址服務/廣播,等等。實現(xiàn)方法是在應用層服務器中定義并實現(xiàn)支持本層各服務的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取、分析處理或設置APDU/應用層協(xié)議數(shù)據(jù)單元,實現(xiàn)各服務的具體功能需求。應用層服務器中讀寫組值模塊實時查詢組對象處理數(shù)據(jù)表中各對象的狀態(tài)信息變化情況,完成對應的分析處理工作;并根據(jù)來自總線的幀信息分析處理情況實時更新組對象處理數(shù)據(jù)表中對象信息,提醒用戶對象完成來自總線的請求動作。應用層完成對全局數(shù)據(jù)結構中接收數(shù)據(jù)幀的應用層控制信息的分配和識別,根據(jù)實際應用需求定義并實現(xiàn)基于不同通信模式的眾多應用層服務,各應用層服務完成對應的通信功能,實現(xiàn)對接收數(shù)據(jù)幀的分析、處理、響應工作。應用層服務接受來自于傳輸層指示原語或用戶層任務的調用,它識別數(shù)據(jù)幀的應用層控制信息,讀取并分析處理幀的數(shù)據(jù)區(qū)域,或根據(jù)需求調用對應的應答服務。應用層應答服務在數(shù)據(jù)處理工作完成后或接收用戶層調用后會執(zhí)行原語定義相應工作,并形成數(shù)據(jù)幀發(fā)送過程,根據(jù)服務要求分配數(shù)據(jù)幀的應用層控制信息,加載幀數(shù)據(jù)區(qū)、長度等信息,并根據(jù)通信模式的類型映射調用傳輸層服務原語。用戶層主要負責實現(xiàn)產(chǎn)品需求定義的各種用戶動作或任務,如設備管理、網(wǎng)絡管理、組對象通信管理等等。實現(xiàn)方法是在用戶層服務器中定義并實現(xiàn)支持本層各功能的函數(shù)體。用戶層各功能函數(shù)體調用應用層對應的服務原語函數(shù),完成數(shù)據(jù)分析、處理,逐層調用形成數(shù)據(jù)幀發(fā)送過程,最終完成用戶任務所需功能。用戶層服務器實現(xiàn)的組對象管理模塊實時查詢組對象處理數(shù)據(jù)表中對象更新標志調用實現(xiàn)功能模塊,響應來自總線的動作請 求;用戶進程主動觸發(fā)動作后,用戶層組對象管理模塊更改對象處理數(shù)據(jù)表的相應對象狀態(tài)信息,提示應用層完成動作信息幀發(fā)送過程。本發(fā)明的有益效果是本發(fā)明采用的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,根據(jù)EIB協(xié)議的標準與功能定義,自主創(chuàng)建一個合理的總體設計架構,采用分層封裝的方法,對每層解析功能進行合理封裝,并實現(xiàn)可配置管理,解決具體現(xiàn)場設備對EIB協(xié)議棧的功能裁剪與增刪問題,實現(xiàn)功能的靈活配置要求,大大降低EIB總線產(chǎn)品在國內市場的應用門檻,解決其在國內市場應用的技術“瓶頸”,為國內企業(yè)在EIB應用方面提供技術支撐,為市場全面應用EIB總線技術奠定堅實基礎。它的應用必將大大降低EIB總線產(chǎn)品的應用成本,提升EIB總線產(chǎn)品在智能照明、智能家居、智慧社區(qū)等應用領域智能識別與智慧感知水平,產(chǎn)生很好的經(jīng)濟效益與社會效益。
下面結合附圖和實例對本發(fā)明作進一步說明。圖I是控制網(wǎng)絡HBES技術規(guī)范定義的協(xié)議棧參考模型。圖2是本發(fā)明EIB協(xié)議棧設計的總體框架圖。
具體實施例方式參照圖I所示,為EIB協(xié)議標準《控制網(wǎng)絡HBES技術規(guī)范住宅和樓宇控制系統(tǒng)》(GB/Z20965-2007)所規(guī)定的協(xié)議棧參考模型,本發(fā)明的EIB協(xié)議棧設計符合上述標準,基于OSI參考模型,包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、應用層,會話層與表示層采用透明傳遞,不定義具體功能,針對標準所定義的具體應用,參照圖2,在本發(fā)明中采用用戶層來封裝,共設計六層。所有服務類型按組服務、點對點無連接服務、點對點有連接服務、廣播(含系統(tǒng)廣播)服務四類進行分類管理。處理過程遵循EIB協(xié)議的功能定義標準,每層相對獨立,EIB協(xié)議棧具體通過物理層、鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層對數(shù)據(jù)進行分 層的封裝和解析,其中協(xié)議棧采用全局數(shù)據(jù)結構實現(xiàn)通信過程中相關參數(shù)的傳遞,
在數(shù)據(jù)結構中協(xié)議棧的各功能模塊均可直接讀/寫操作此數(shù)據(jù)結構中的字段信息,實現(xiàn)管理與賦值。將數(shù)據(jù)幀各字段的信息(包括控制字段、地址信息(源地址和目的地址)、數(shù)據(jù)和其長度信息以及幀類型等)進行分類疏理,定義并映射成數(shù)據(jù)幀的各結構字段,構成全局數(shù)據(jù)結構。全局數(shù)據(jù)結構中還包括應用層、傳輸層等控制信息,在此數(shù)據(jù)結構中,協(xié)議棧各功能模塊均可直接讀/寫操作此數(shù)據(jù)結構中的字段信息,實現(xiàn)管理與賦值。具體訪問字段信息的內容由各層層對象管理實體和層服務器所實現(xiàn)的功能所決定。協(xié)議棧還定義了發(fā)送/接收緩沖區(qū),接收數(shù)據(jù)時從接收緩沖區(qū)將數(shù)據(jù)拷入全局數(shù)據(jù)結構,協(xié)議棧各層通過讀取全局數(shù)據(jù)結構操作,獲得EIB接收數(shù)據(jù)幀的各結構字段信息,從下至上逐層解析并作出對應的應答處理;發(fā)送時協(xié)議棧各層通過寫入全局數(shù)據(jù)結構操作,將數(shù)據(jù)幀的各結構字段值逐一存入全局數(shù)據(jù)結構,從上往下逐層完成EIB協(xié)議數(shù)據(jù)幀的封裝,然后拷貝進發(fā)送緩存區(qū)進入發(fā)送操作。全局數(shù)據(jù)結構定義并映射了數(shù)據(jù)幀的各結構元素,可直接被協(xié)議棧中各子模塊進行全面讀/寫操作,實現(xiàn)管理與賦值。接收時從接收緩沖區(qū)將數(shù)據(jù)拷入全局數(shù)據(jù)結構,通過讀取全局數(shù)據(jù)結構操作,獲得EIB接收數(shù)據(jù)幀的各結構元素值,解析并作出對應的應答處理;發(fā)送時通過寫入全局數(shù)據(jù)結構操作,將數(shù)據(jù)幀的各結構元素值逐一存入全局數(shù)據(jù)結構,完成EIB協(xié)議數(shù)據(jù)幀的封裝,之后拷貝進發(fā)送緩沖區(qū)進行發(fā)送操作。這樣操作的好處是節(jié) 省了資源,加快了數(shù)據(jù)處理速度。同時,在項目實現(xiàn)過程中,以宏定義的方式為該全局變量的讀寫預留操作接口,大大降低操作過程中的出錯率。協(xié)議棧定義了外部變量表和內部變量表,外部變量表用于管理數(shù)據(jù)幀整體收發(fā)情況,如發(fā)送/接收緩沖區(qū)地址、幀長度、發(fā)送/接收啟始/結束情況等。外部變量表用于完成數(shù)據(jù)鏈路層與物理層的參數(shù)傳遞工作。內部變量表用于管理物理層接收、發(fā)送幀過程中形成和涉及的狀態(tài)信息,如總線空閑狀態(tài)、發(fā)送接收字符狀態(tài)、當前位信息、接收字符位數(shù)、工作緩沖區(qū)地址、奇偶檢測位等信息。通過內部變量表的定義與封裝,實現(xiàn)現(xiàn)場設備之間數(shù)據(jù)通信的處理與物理層介質無關。發(fā)送數(shù)據(jù)幀時,數(shù)據(jù)幀自用戶層逐步形成并傳送至鏈路層拷入發(fā)送緩沖區(qū),內外部變量表的相關狀態(tài)參數(shù)被更新,物理層不斷偵聽總線工作狀態(tài),實時更新內部變量表內容,自動有序地將數(shù)據(jù)幀的字符逐個拆分按位發(fā)往總線。接收數(shù)據(jù)幀時,物理層不斷查詢當前總線工作狀態(tài),實時將接收及狀態(tài)更新內容存入內部變量表,自動有序地將總線上發(fā)來的連續(xù)有效位組裝成數(shù)據(jù)幀,更新外部變量表相關狀態(tài)參數(shù),通知鏈路層進入下一步工作。至此,完成對一個完整數(shù)據(jù)幀的接收與發(fā)送管理。這樣,當采用不同的傳輸媒介時,由于內外部變量表記錄了物理層全部有效工作內容及狀態(tài),鏈路層只需實時讀出或寫入內外部變量表的參數(shù)即可,實現(xiàn)了協(xié)議棧解析/封裝與傳輸介質的無關性。協(xié)議棧設有層管理實體對對各層的服務函數(shù)進行管理,實現(xiàn)協(xié)議棧代碼容量的精細化裁剪,其中層管理實體包括應用層管理實體、傳輸層管理實體、網(wǎng)絡層管理實體和鏈路層管理實體。根據(jù)用戶層應用需求,協(xié)議棧以通信模式為原則從上往下逐層服務映射,將必須的服務類型包含進協(xié)議棧,橫向管理協(xié)議棧服務內容,對協(xié)議棧代碼容量進行有效伸縮。通信過程中的具體實現(xiàn)和設置方法是各層針對基本通信模式的每個服務類型,分別創(chuàng)建*. Inc和*. Service文件,來申明和實現(xiàn)各個服務的原語函數(shù),初始化服務的接口參數(shù),讀取并獲得服務的接口參數(shù)值;創(chuàng)建層服務管理實體對本層的功能服務進行管理,并實現(xiàn)上層對下層的服務映射與嵌套。若設備需增添新的應用,只需在用戶層添加要求的用戶進程,根據(jù)其通信模式要求在協(xié)議棧層管理實體中統(tǒng)一開啟并逐層映射該應用通訊所需的服務原語,即可完成協(xié)議棧新應用的開發(fā)工作。在用戶層與應用層之間,建立組對象處理數(shù)據(jù)表作為用戶組對象管理模塊與系統(tǒng)協(xié)議棧通信的橋梁。組對象處理數(shù)據(jù)表包括組地址表(描述設備組地址信息)、關聯(lián)表(描述組地址與對象的關聯(lián)關系)及對象表(描述設備對象信息)三部分。對象表的數(shù)據(jù)由用戶和組對象服務器共同維護。根據(jù)用戶應用 需求或設備動作情況,用戶層組對象管理模塊更改對象表的相應對象狀態(tài)信息,設置傳輸狀態(tài)并標識寫請求。應用層的組對象服務器實時查詢對象表中各對象的狀態(tài)信息變化情況,根據(jù)對象表的傳輸狀態(tài)及寫請求標識查找關聯(lián)表中對應項并綁定組地址表提取與之關聯(lián)的組地址信息,調用應用層讀/寫組值服務,向全局數(shù)據(jù)結構添加應用層控制信息,并逐層往下調用添加形成幀封裝發(fā)送過程;物理層接收并處理總線數(shù)據(jù)幀后逐層解析直到應用層,提取接收數(shù)據(jù)幀的應用層控制信息調用應用層讀/寫組值服務,根據(jù)接收幀的組地址信息,查詢關聯(lián)表綁定與之相關聯(lián)的對象號,提取對應項進行應答處理或將接收數(shù)據(jù)信息寫入對象表對應項,標記對象更新標志。組對象服務器查詢到對象更新標志后調用用戶層用戶進程功能模塊,響應來自總線的動作請求。在協(xié)議棧程序源代碼的各層中,根據(jù)通信模式、服務功能等設置條件編譯,從應用層開始自上而下逐層分服務設置編譯條件,當具體產(chǎn)品中選中某通信模式才將其涉及的服務代碼編譯進源程序,沒有應用的服務類型將不會編譯進源程序。這樣,盡管應用設計時,每款產(chǎn)品的具體功能都會有所不同,但仍可使用統(tǒng)一的協(xié)議棧,只需開關編譯條件即可既滿足功能需求又節(jié)省底層芯片存儲空間。條件編譯的設計方法有利于滿足根據(jù)產(chǎn)品自身功能特點選擇合適硬件的需求,一定程度上節(jié)省了硬件成本。參照圖2所示,EIB協(xié)議棧包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層,其中各層的具體工作過程如下
物理層基于設備硬件部分,主要是實現(xiàn)并保證EIB系統(tǒng)內各物理實體間的正確通信。它負責完成數(shù)據(jù)幀中每一個具體數(shù)據(jù)位的接收、發(fā)送工作。物理層接收數(shù)據(jù)幀時,校驗每個字節(jié)的校驗位正確與否,將字節(jié)校驗位錯誤的幀予以放棄,最終將接收到的數(shù)據(jù)形成固定格式的EIB數(shù)據(jù)幀,存儲到接收緩沖區(qū),并通過外部變量表來通知鏈路層接收完成;發(fā)送數(shù)據(jù)幀時,接收到鏈路層幀發(fā)送任務后,檢測總線工作情況,將發(fā)送緩沖區(qū)的數(shù)據(jù)幀逐位進行發(fā)送,形成每一個字節(jié)的校驗位并完成發(fā)送工作。其中內部變量表用于存儲接收、發(fā)送執(zhí)行過程中形成的狀態(tài)標識,外部變量表則負責與數(shù)據(jù)鏈路層之間的通訊工作。數(shù)據(jù)鏈路層支持鏈路層數(shù)據(jù)服務、鏈路層本地信息服務、鏈路層輪詢服務以及鏈路層系統(tǒng)廣播服務。實現(xiàn)方法是在鏈路層服務器中定義并實現(xiàn)支持本層各服務功能的函數(shù)體,實時掌握幀收發(fā)狀態(tài),提取或更新內外部變量表內容,管理發(fā)送/接收緩沖區(qū),完成數(shù)據(jù)幀LPDU (鏈路層協(xié)議數(shù)據(jù)單元)的提取分析或設置工作。數(shù)據(jù)鏈路層用于提供數(shù)據(jù)幀的差錯檢測功能并支持對數(shù)據(jù)鏈路地址的識別。接收時,它負責從接收緩沖區(qū)檢測數(shù)據(jù)幀的校驗字符,判斷幀的完整性,放棄校驗錯誤或目的地址不屬于本節(jié)點設備的數(shù)據(jù)幀,對正確接收的數(shù)據(jù)幀反饋接收正確回復幀,錯誤的幀反饋接收錯誤的回復幀,并將接收緩沖區(qū)的數(shù)據(jù)幀加載到全局數(shù)據(jù)結構中,告知網(wǎng)絡層接收處理完成;發(fā)送時,它根據(jù)幀的任務需求在全局數(shù)據(jù)結構中加載相應類型的地址信息,計算并添加數(shù)據(jù)幀的校驗字符,形成完整數(shù)據(jù)幀后拷入發(fā)送緩沖區(qū),通知物理層進行發(fā)送。發(fā)送完成后,處理接收方發(fā)送的回復幀,如果發(fā)送失敗,完成限定次數(shù)內的重發(fā)功能。網(wǎng)絡層支持網(wǎng)絡層系統(tǒng)廣播服務、網(wǎng)絡層點對點連接服務、網(wǎng)絡層組服務。實現(xiàn)方法是在網(wǎng)絡層服務器中定義并實現(xiàn)支持本層各服務的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取或設置NPDU (網(wǎng)絡層協(xié)議數(shù)據(jù)單元)識別、分配網(wǎng)絡路由。網(wǎng)絡層主要實現(xiàn)網(wǎng)絡路由的分配和識別工作,判斷當前數(shù)據(jù)幀的通信模式,并據(jù)此對數(shù)據(jù)信息進行分服務處理。接收時,它負責從全局數(shù)據(jù)結構中提取并識別地址類型、路由信息及設備類別等信息,根據(jù)識別結果將不同通信模式的數(shù)據(jù)幀進行分類處理,通知傳輸層進行工作。發(fā)送時,它根據(jù)通信模式的不同在全局數(shù)據(jù)結構中對應位置上添加相應地址類型標識,加載設備路由及設備類別信息,通知鏈路層進行工作。傳輸層支持通信模式主要有以下幾種點對多點,無連接/多播通信模式;點對域,無連接/廣播;點對點,無連接;點對點,面向連接。實現(xiàn)方法是在傳輸層服務器中定義并實現(xiàn)支持本層各服務功能的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取、分析處理或設置TPDU (傳輸層協(xié)議數(shù)據(jù)單元)的工作。對屬于不同通信模式的數(shù)據(jù)信息提供不同的傳輸層原語服務,接收處理幀時,它從全局數(shù)據(jù)結構中提取數(shù)據(jù)幀TPDU信息,據(jù)此判斷幀的通信模式類型,響應該模式的指示原語服務,調用應用層的應用服務進行后續(xù)處理;發(fā)送封裝幀時,根據(jù)應用層應用服務對通信模式的不同需求,響應對應的請求、確認原語,并將TPDU的信息封裝進全局數(shù)據(jù)結構當中,通知網(wǎng)絡層進一步封裝加載數(shù)據(jù)幀信息。應用層服務主要有讀寫組值服務/多播,讀寫屬性值服務/點對點無連接,讀寫內層服務/點對點有連接,讀寫物理地址服務/廣播,等等。實現(xiàn)方法是在應用層服務器中定義并實現(xiàn)支持本層各服務的函數(shù)體,用于完成從全局數(shù)據(jù)結構中提取、分析處理或設置APDU/應用層協(xié)議數(shù)據(jù)單元,實現(xiàn)各服務的具體功能需求。應用層服務器中讀寫組值模塊實時查詢組對象處理數(shù)據(jù)表中各對象的狀態(tài)信息變化情況,完成對應的分析處理工作;并根據(jù)來自總線的幀信息分析處理情況實時更新組對象處理數(shù)據(jù)表中對象信息,提醒用戶對象完成來自總線的請求動作。應用層完成對全局數(shù)據(jù)結構中接收數(shù)據(jù)幀的應用層控制信息的分配和識別,根據(jù)實際應用需求定義并實現(xiàn)基于不同通信模式的眾多應用層服務,各應用層服務完成對應的通信功能,實現(xiàn)對接收數(shù)據(jù)幀的分析、處理、響應工作。應用層服務接受來自于傳輸層指示原語或用戶層任務的調用,它識別數(shù)據(jù)幀的應用層控制信息,讀取并分析處理幀的數(shù)據(jù)區(qū)域,或根據(jù)需求調用對應的應答服務。應用層應答服務在數(shù)據(jù)處理工作完成后或接收用戶層調用后會執(zhí)行原語定義相應工作,并形成數(shù)據(jù)幀發(fā)送過程,根據(jù)服務要求分配數(shù)據(jù)幀的應用層控制信息,加載幀數(shù)據(jù)區(qū)、長度等信息,并根據(jù)通信模式的類型映射調用傳輸層服務原語。用戶層主要負責實現(xiàn)產(chǎn)品需求定義的各種用戶動作或任務,如設備管理、網(wǎng)絡管理、組對象通信管理等等。實現(xiàn)方法是在用戶層服務器中定義并實現(xiàn)支持本層各功能的函數(shù)體。用戶層各功能函數(shù)體調用應用層對應的服務原語函數(shù),完成數(shù)據(jù)分析、處理,逐層調用形成數(shù)據(jù)幀發(fā)送過程,最終完成用戶任務所需功能。用戶層服務器實現(xiàn)的組對象管理模塊實時查詢組對象處理數(shù)據(jù)表中對象更新標志調用實現(xiàn)功能模塊,響應來自總線的動作請求;用戶進程主動觸發(fā)動作后,用戶層組對象管理模塊更改對象處理數(shù)據(jù)表的相應對象狀態(tài)信息,提示應用層完成動作信息幀發(fā)送過程。協(xié)議棧各層的數(shù)據(jù)分析處理以數(shù)據(jù)流為向導,封裝時自上至下逐層處理、添加幀字段,解析時自下至上逐層提取、分析處理幀字段,全部過程均借助于全局數(shù)據(jù)結構來管理和實現(xiàn),并輔以發(fā)送/接收緩沖區(qū)、連接表、內部/外部變量表等數(shù)據(jù)結構進行數(shù)據(jù)與參數(shù)、傳遞。該設計能有 效控制協(xié)議棧代碼的大小,使其能在普通的8位單片機(R0M>=8K)中即可正常運行。此外,協(xié)議棧應用的調用接口部分也進行了標準化封裝。例如在用戶層,根據(jù)組對象通信管理、設備管理(含物理地址/組地址/關聯(lián)表等配置管理、屬性配置、內存讀寫管理等)、網(wǎng)絡管理等具體應用需求將各類服務封裝為功能應用,實際使用時只需直接調用服務接口即可。比如組對象管理服務器等,屬于一個高級的應用層接口界面。針對現(xiàn)場感知設備可利用資源少,要求成本低,而智慧感知的能力卻要求越來越高的現(xiàn)狀,采用單片機技術對EIB協(xié)議棧進行自主封裝,可有效降低EIB總線產(chǎn)品的應用成本。以上所述,只是本發(fā)明的較佳實施例而已,本發(fā)明并不局限于上述實施方式,只要其以相同的手段達到本發(fā)明的技術效果,都應屬于本發(fā)明的保護范圍。
權利要求
1.一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于根據(jù)EIB協(xié)議標準創(chuàng)建對應的協(xié)議棧對傳輸?shù)臄?shù)據(jù)進行逐層的封裝和解析,即通過物理層、鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層對數(shù)據(jù)進行分層的封裝和解析,其中協(xié)議棧采用全局數(shù)據(jù)結構實現(xiàn)通信過程中相關參數(shù)的傳遞,在數(shù)據(jù)結構中協(xié)議棧的各功能模塊均可直接讀/寫操作此數(shù)據(jù)結構中的字段信息,實現(xiàn)管理與賦值。
2.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于將數(shù)據(jù)幀各字段的信息進行分類梳理,定義并映射成數(shù)據(jù)幀的各結構字段,構成所述的全局數(shù)據(jù)結構。
3.根據(jù)權利要求I或2所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于協(xié)議棧還定義了發(fā)送/接收緩沖區(qū),接收數(shù)據(jù)時從接收緩沖區(qū)將數(shù)據(jù)拷入全局數(shù)據(jù)結構,協(xié)議棧各層通過讀取全局數(shù)據(jù)結構操作,獲得EIB接收數(shù)據(jù)幀的各結構字段信息,從下至上逐層解析并作出對應的應答處理;發(fā)送時協(xié)議棧各層通過寫入全局數(shù)據(jù)結構操作,將數(shù)據(jù)幀的各結構字段值逐一存入全局數(shù)據(jù)結構,從上往下逐層完成EIB協(xié)議數(shù)據(jù)幀的封裝,然后拷貝進發(fā)送緩存區(qū)進入發(fā)送操作。
4.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于協(xié)議棧定義了外部變量表,用于管理數(shù)據(jù)幀整體收發(fā)情況,完成數(shù)據(jù)鏈路層與物理層的參數(shù)傳遞工作。
5.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于協(xié)議棧定義了內部變量表,用于管理物理層接收、發(fā)送幀過程中形成和涉及的狀態(tài)信息。
6.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于協(xié)議棧設有層管理實體對對各層的服務函數(shù)進行管理,實現(xiàn)協(xié)議棧代碼容量的精細化裁剪。
7.根據(jù)權利要求6所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于所述層管理實體包括應用層管理實體、傳輸層管理實體、網(wǎng)絡層管理實體和鏈路層管理實體。
8.根據(jù)權利要求7所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于根據(jù)用戶層的需要,協(xié)議棧以通信模式為原則從上往下逐層服務映射,將必須的服務類型包含進協(xié)議棧,橫向管理協(xié)議服務內容,對協(xié)議棧代碼容量進行有效伸縮。
9.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于在用戶層和應用層之間建立組對象處理數(shù)據(jù)表,實現(xiàn)現(xiàn)場設備之間的直接數(shù)據(jù)通信管理。
10.根據(jù)權利要求I所述的一種基于EIB協(xié)議的現(xiàn)場設備通信方法,其特征在于在協(xié)議棧程序源代碼的各層中,根據(jù)通信模式、服務功能等設置條件編譯,從應用層開始自上而下逐層分服務設置編譯條件,當具體產(chǎn)品中選中某通信模式才將其涉及的服務代碼編譯進源程序,沒有應用的服務類型將不會編譯進源程序。
全文摘要
本發(fā)明公開了一種基于EIB協(xié)議的現(xiàn)場設備通信方法,根據(jù)EIB協(xié)議標準創(chuàng)建對應的協(xié)議棧對傳輸?shù)臄?shù)據(jù)進行逐層的封裝和解析,即通過物理層、鏈路層、網(wǎng)絡層、傳輸層、應用層和用戶層對數(shù)據(jù)進行分層的封裝和解析,其中協(xié)議棧采用全局數(shù)據(jù)結構實現(xiàn)通信過程中相關參數(shù)的傳遞;本發(fā)明大大降低EIB總線產(chǎn)品在國內市場的應用門檻,解決其在國內市場應用的技術“瓶頸”,為國內企業(yè)在EIB應用方面提供技術支撐,為市場全面應用EIB總線技術奠定堅實基礎。它的應用必將大大降低EIB總線產(chǎn)品的應用成本,提升EIB總線產(chǎn)品在智能照明、智能家居、智慧社區(qū)等應用領域智能識別與智慧感知水平,產(chǎn)生很好的經(jīng)濟效益與社會效益。
文檔編號H04L12/40GK102739788SQ20121021160
公開日2012年10月17日 申請日期2012年6月25日 優(yōu)先權日2012年6月25日
發(fā)明者錢靜, 陳迪泉 申請人:廣州復旦奧特科技股份有限公司