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