本申請涉及通信領(lǐng)域,具體涉及一種數(shù)據(jù)通信方法和裝置。
背景技術(shù):
物聯(lián)網(wǎng)就是物物相連的互聯(lián)網(wǎng),即把物品連接至互聯(lián)網(wǎng),這里的物品包括家電、電子產(chǎn)品等,以下稱智能設備。隨著智能設備的普及,越來越多的家庭里都有智能設備。
智能設備能夠與網(wǎng)關(guān)或控制終端(如手機等)之間進行單向通信。在現(xiàn)有技術(shù)中,智能設備與網(wǎng)關(guān)或控制終端之間進行單向通信時,通常是由發(fā)送方將信息直接攜帶在消息中發(fā)送給對端。例如,空調(diào)在向網(wǎng)關(guān)上報當前狀態(tài)信息時,空調(diào)將操作命令“狀態(tài):溫度”和有效內(nèi)容“25”直接寫入消息中發(fā)送給網(wǎng)關(guān)。
目前智能設備的生產(chǎn)廠商較多,各生產(chǎn)廠商生產(chǎn)的智能設備發(fā)送消息的數(shù)據(jù)格式不一樣,例如,A廠商的空調(diào)向網(wǎng)關(guān)發(fā)送“溫度25”;B廠商的空調(diào)向網(wǎng)關(guān)發(fā)送“溫度+25”;C廠商的空調(diào)向網(wǎng)關(guān)發(fā)送“狀態(tài):溫度+內(nèi)容:25”。而在網(wǎng)關(guān)側(cè),需要預先存儲相應廠商的設備發(fā)送消息的格式,并在接收到這些消息后,查詢各廠商對應的格式以識別消息中的信息,然后結(jié)合本地的歷史記錄,再對信息進行相應的處理。
采用現(xiàn)有技術(shù)中的數(shù)據(jù)通信方法,發(fā)送端發(fā)送消息的數(shù)據(jù)格式不一樣,導致接收端在對數(shù)據(jù)處理時,處理效率低下。
技術(shù)實現(xiàn)要素:
本申請實施例中提供了一種數(shù)據(jù)通信方法和裝置,用于解決現(xiàn)有技術(shù)中接 收端在數(shù)據(jù)進行處理時,處理效率低下的問題。
根據(jù)本申請實施例的第一個方面,提供了一種數(shù)據(jù)通信方法,包括:第一物聯(lián)網(wǎng)設備將信息封裝至預定格式的數(shù)據(jù)幀;發(fā)送該數(shù)據(jù)幀,以使接收端根據(jù)該預定格式對該數(shù)據(jù)幀進行處理。
根據(jù)本申請實施例的第二個方面,還提供了一種數(shù)據(jù)通信方法,包括:第二物聯(lián)網(wǎng)設備接收來自第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀;根據(jù)該數(shù)據(jù)幀攜帶的信息,對該數(shù)據(jù)幀進行相應處理;其中,該數(shù)據(jù)幀具有預定格式。
根據(jù)本申請實施例的第三個方面,還提供了一種數(shù)據(jù)通信裝置,應用于第一物聯(lián)網(wǎng)設備,該裝置包括:數(shù)據(jù)幀封裝模塊,用于將信息封裝至預定格式的數(shù)據(jù)幀;發(fā)送模塊,用于發(fā)送該數(shù)據(jù)幀,以使接收端根據(jù)該預定格式對該數(shù)據(jù)幀進行處理。
根據(jù)本申請實施例的第四個方面,還提供了一種數(shù)據(jù)通信裝置,應用于第二物聯(lián)網(wǎng)設備,該裝置包括:接收模塊,用于接收來自第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀;處理模塊,用于根據(jù)該數(shù)據(jù)幀攜帶的信息,對該數(shù)據(jù)幀進行相應處理;其中,該數(shù)據(jù)幀具有預定格式。
采用本申請實施例中的數(shù)據(jù)通信方法,第一物聯(lián)網(wǎng)設備將信息封裝至預定格式的數(shù)據(jù)幀,并發(fā)送該數(shù)據(jù)幀,使得接收端的第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1為本申請實施例一所示的數(shù)據(jù)通信方法的流程圖;
圖2為本申請實施例二的預定格式的數(shù)據(jù)幀的幀結(jié)構(gòu)示意圖;
圖3為本申請實施例二的預定格式的數(shù)據(jù)幀中ADDR字段的幀結(jié)構(gòu)示意圖;
圖4為本申請實施例二的預定格式的數(shù)據(jù)幀中CTRL字段的幀結(jié)構(gòu)示意圖;
圖5示出了根據(jù)本申請實施例三的數(shù)據(jù)發(fā)送方法的流程圖;
圖6示出了根據(jù)本申請實施例四的數(shù)據(jù)通信方法的流程圖;
圖7示出的是本申請實施例五的數(shù)據(jù)通信方法的流程圖;
圖8示出的是本申請實施例六的數(shù)據(jù)通信裝置的結(jié)構(gòu)示意圖;
圖9示出的是本申請實施例七的數(shù)據(jù)通信裝置的結(jié)構(gòu)示意圖。
具體實施方式
為了使本申請實施例中的技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本申請的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本申請的一部分實施例,而不是所有實施例的窮舉。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
在實現(xiàn)本申請的過程中,發(fā)明人發(fā)現(xiàn),發(fā)送端發(fā)送消息的數(shù)據(jù)格式不一樣,導致接收端在對數(shù)據(jù)處理時,處理效率低下。
針對上述問題,本申請實施例中提供了一種數(shù)據(jù)通信方法,首先定義數(shù)據(jù)幀的格式;第一物聯(lián)網(wǎng)設備將信息封裝至預定格式的數(shù)據(jù)幀,并發(fā)送該數(shù)據(jù)幀,使得接收端的第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
本申請實施例中的方案可以應用于物聯(lián)網(wǎng)系統(tǒng),例如,應用于云端家庭安防系統(tǒng)。
實施例一
在本申請實施例中,可以預先定義數(shù)據(jù)幀的格式如下:
在第一種具體實施方式中,該數(shù)據(jù)幀包括幀頭,該幀頭包括前導碼PA(Preamble,前導碼)字段,該PA字段攜帶調(diào)制頻段信息。在具體實施時,PA字段可以是1和0交替的序列,用來攜帶發(fā)送該數(shù)據(jù)幀時采用的調(diào)制頻段 的信息,接收端在接收到該PA字段時,根據(jù)接收該字段中每個比特消耗的時長,來調(diào)整接收端的頻率,以達到校準傳輸速率的目的。在具體實施時,該PA字段可以是4個字節(jié),也可以是如3個字節(jié)、6個字節(jié)等長度。
在第二種具體實施方式中,該數(shù)據(jù)幀包括幀頭,幀頭包括同步字SYNC(Sync Word,同步字)字段,該SYNC字段攜帶數(shù)據(jù)幀格式信息。在具體實施時,SYNC字段可以攜帶表明該數(shù)據(jù)幀所采用的格式的信息,例如,表明該數(shù)據(jù)幀為設定物聯(lián)格式的SYNC字段可以是0x168F。在具體實施時,該SYNC字段可以是2個字節(jié),也可以是如3個字節(jié)、4個字節(jié)等長度。
在第三種具體實施方式中,該數(shù)據(jù)幀包括幀體,該幀體包括設備地址ADDR(Device Address,設備地址)字段,該ADDR字段攜帶設備地址信息。在具體實施時,該ADDR字段可以攜帶用于標識第一物聯(lián)網(wǎng)設備的地址的信息,例如MAC地址、設備標識等。在具體實施時,該ADDR字段可以是6個字節(jié),也可以是如8個字節(jié)、4個字節(jié)等長度。
在具體實施時,該ADDR字段可以用于使接收端識別生成該數(shù)據(jù)幀的設備,并進一步對該設備進行相應的控制,例如,如果識別出該設備為已注冊設備,則進一步對數(shù)據(jù)幀進行相應處理等;如果識別出該設備為未注冊設備,則進一步識別該數(shù)據(jù)是否加密,如果加密則丟棄該數(shù)據(jù)幀;如果未加密,則進一步根據(jù)OP字段攜帶的操作編碼,判斷該數(shù)據(jù)幀是否是該未注冊設備發(fā)送的注冊命令等。
在具體實施時,該ADDR字段可以進一步包括制造廠商編碼MID(Manufactory Identifier,制造廠商編碼)字段,該制造廠商編碼可以是由物聯(lián)平臺頒發(fā)給合作廠商的廠商編碼,例如,0x000001,通常為不同的廠商分配不同的廠商編碼。在具體實施時,該MID字段可以是3個字節(jié)的長度,也可以是如1個字節(jié)、2個字節(jié)等長度。
在具體實施時,該ADDR字段可以進一步包括序列號SN(SerialNumber,序列號)字段,該SN字段可以是由各廠商為生產(chǎn)的設備分配的產(chǎn)品序列號編 碼,例如,0x000001;通常來說,同一個廠商生產(chǎn)的不同設備的序列號是不同的。在具體實施時,該SN字段可以是3個字節(jié)的長度,也可以是如1個字節(jié)、2個字節(jié)等長度。
在第四種具體實施方式中,該數(shù)據(jù)幀包括幀體,該幀體包括控制選項CTRL(Control,控制)字段,該CTRL字段攜帶有效數(shù)據(jù)的控制選項信息,該有效數(shù)據(jù)包括SEQ字段、OP字段和PAYLOAD字段中的數(shù)據(jù)。在具體實施時,該CTRL字段長度可以是1個字節(jié),該CTRL字段包括0-7位。
在具體實施時,該CTRL字段可以進一步包括加密標識SF(Security Flag,加密標識)字段,該SF字段攜帶標識該有效數(shù)據(jù)是否加密的信息。在具體實施時,該SF字段長度可以為1位(bit),占用該CTRL字段中的第7位。在具體實施時,該SF字段為“1”時,可以表示后續(xù)的有效數(shù)據(jù)為加密數(shù)據(jù);SF字段為“0”時,可以表示后續(xù)的有效數(shù)據(jù)為非加密數(shù)據(jù)。
在具體實施時,可以采用高級加密標準AES128算法對有效數(shù)據(jù)進行加密,也可以采用其他對稱加密算法進行加密,或者非對稱加密算法進行加密,本申請對此不作限制。
AES(Advanced Encryption Standard,高級加密標準)算法是一種安全性高、速度快、所需資源少的對稱加密算法,由美國國家標準與技術(shù)研究院(NIST)于2001年發(fā)布,并在2002年5月26日成為有效的標準。2006年高級加密標準已然成為對稱密鑰加密中最流行的算法之一。
相關(guān)技術(shù)中的智能設備在發(fā)送消息時,不對數(shù)據(jù)進行加密,安全性較差。而本申請實施例中的數(shù)據(jù)通信方法,對數(shù)據(jù)幀進行加密傳輸,提升了安全性。
在具體實施時,該CTRL字段可以進一步包括有效數(shù)據(jù)長度LEN(Length,長度)字段,該LEN字段攜帶后續(xù)有效數(shù)據(jù)的長度信息。在具體實施時,該SF字段長度可以為7位(bit),占用該CTRL字段中的第0-6位。
在具體實施時,該LEN字段取值范圍為3-127,可以根據(jù)SEQ字段、OP字段和PAYLOAD字段中數(shù)據(jù)的實際情況取3-127中的任意數(shù):其中SEQ占 用1字節(jié),OP占用2字節(jié),PAYLOAD字段長度可以為0-124字節(jié)。
例如,在SEQ字段、OP字段和PAYLOAD字段的數(shù)據(jù)不被加密的情況下,如果PAYLOAD字段的有效數(shù)據(jù)長度為4,則該LEN字段的數(shù)值即為1+2+4=7;接收端可以直接獲取到PAYLOAD字段的有效數(shù)據(jù)。當在SEQ字段、OP字段和PAYLOAD字段的數(shù)據(jù)被加密的情況下,如果PAYLOAD字段的數(shù)據(jù)長度為4,則發(fā)送端將該LEN字段的數(shù)值設置為1+2+4=7;同時發(fā)送端根據(jù)采用的加密算法,例如,采用AES128算法時,需要將被加密的數(shù)據(jù)補充至16字節(jié),此時,需要補充16-7=9個字節(jié)的無效數(shù)據(jù),那么在接收端接收并解密SEQ字段、OP字段和PAYLOAD字段的數(shù)據(jù)后,需要根據(jù)LEN字段中的數(shù)值“7”來確定PAYLOAD字段中的有效數(shù)據(jù)為前4個字節(jié)的數(shù)據(jù)。在具體實施時,補充的無效數(shù)據(jù)可以是范圍為0-255的隨機數(shù)。
在第五種具體實施方式中,該數(shù)據(jù)幀包括幀體,該幀體包括數(shù)據(jù)幀序列號SEQ(Sequence Number,序列號)字段,該SEQ字段攜帶該數(shù)據(jù)幀的序列號。在具體實施時,該序列號可以是第一物聯(lián)網(wǎng)設備為該消息分配的編號,該第一物聯(lián)網(wǎng)設備可以為每條消息分配不同的序列號,以使接收端能夠區(qū)分該第一物聯(lián)網(wǎng)設備發(fā)送的不同消息。在具體實施時,該SEQ字段長度可以是1個字節(jié),取值范圍為1-255。在具體實施時,各設備可以在上電后,按照時間順序?qū)Πl(fā)送的消息從1到255依次編號,并在編號至255后,重新從1開始。在具體實施時,對于重復發(fā)送的同一條消息,該SEQ字段不變。
通過SEQ字段對數(shù)據(jù)幀進行編號,使得接收端能夠根據(jù)該數(shù)據(jù)幀中的SEQ對消息進行分辨,避免遺漏消息,提高了通信的可靠性。
在第六種具體實施方式中,該數(shù)據(jù)幀包括幀體,該幀體包括操作編碼OP(Operation Code,操作編碼)字段,該OP字段攜帶該消息中的操作命令對應的操作編碼信息。在具體實施時,該OP字段長度可以是2個字節(jié),也可以是1個字節(jié)、3個字節(jié)等長度。
在具體實施時,該操作編碼可以是操作命令字對應的操作編碼,例如,操 作命令字:“溫度狀態(tài)”對應的操作編碼為“0x0050”。在具體實施時,發(fā)送端和接收端可以均存儲有操作命令字與操作編碼的對應關(guān)系表。
在第七種具體實施方式中,該數(shù)據(jù)幀包括幀體,該幀體包括有效內(nèi)容PAYLOAD字段,該PAYLOAD字段攜帶該消息中的有效內(nèi)容信息。在具體實施時,該PAYLOAD字段長度可以是0至124個字節(jié)。在具體實施時,該PAYLOAD字段攜帶的信息可以與OP字段攜帶的信息內(nèi)容相對應,即,PAYLOAD字段攜帶的信息與OP字段攜帶的信息內(nèi)容共同組成具有特定意義的信息。例如,在安防系統(tǒng)中,門鎖向網(wǎng)關(guān)發(fā)送根據(jù)本申請實施例中的數(shù)據(jù)幀,OP字段攜帶的信息內(nèi)容為“增加新密碼用戶”,則PAYLOAD字段攜帶的信息可以為“用戶名+密碼”。
在第八種具體實施方式中,該數(shù)據(jù)幀包括幀尾,該幀尾包括循環(huán)冗余校驗碼CRC(Cyclic Redundancy Check,循環(huán)冗余校驗)字段,該CRC字段攜帶該數(shù)據(jù)幀的幀體的數(shù)據(jù)的循環(huán)冗余校驗信息。在具體實施時,該CRC字段長度可以為2個字節(jié)。在具體實施時,該CRC字段中的數(shù)據(jù)用于對幀體的全部數(shù)據(jù)進行校驗,包括ADDR字段、CTRL字段、SEQ字段、OP字段和PAYLOAD字段。通過在數(shù)據(jù)幀中增加CRC字段以對幀體的數(shù)據(jù)完整性和正確性進行校驗,提高了通信的可靠性。
在第九種具體實施方式中,PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段可以依次排列。在具體實施時,PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段也可以以其他順序排列,本申請對此不作限制。
圖1為本申請實施例一所示的數(shù)據(jù)通信方法的流程圖。
如圖1所示,根據(jù)本申請實施例一所示的數(shù)據(jù)通信方法包括以下步驟:
S101,第一物聯(lián)網(wǎng)設備將信息封裝至預定格式的數(shù)據(jù)幀;
S102,發(fā)送該數(shù)據(jù)幀,以使接收端根據(jù)該預定格式對該數(shù)據(jù)幀進行處理。
在具體實施時,該第一物聯(lián)網(wǎng)設備可以是物聯(lián)網(wǎng)系統(tǒng)中的智能設備;更具 體地,可以是物聯(lián)網(wǎng)系統(tǒng)中的外圍設備。外圍設備可以包括在物聯(lián)網(wǎng)系統(tǒng)中與中心設備直接通訊的設備,一般可以包括各種傳感器、電器等具體的物聯(lián)網(wǎng)設備;如安防系統(tǒng)中的門鎖、紅外傳感器;燈光系統(tǒng)中的燈具;智能家居中的空調(diào)、冰箱等。中心設備是與外圍設備相對應的設備,中心設備可以包括物聯(lián)網(wǎng)系統(tǒng)中處于中樞控制的設備,一般可以是網(wǎng)關(guān)或者家庭物聯(lián)網(wǎng)路由器等。
在具體實施時,本申請實施例中的方案可以應用于單向通信,也可以應用于雙向通信,本申請對此不作限制。
單向通信是指消息只能單方向傳輸?shù)墓ぷ鞣绞?。在單向通信時,通信的信道是單向的,發(fā)送端與接收端也是固定的,即發(fā)送端只能發(fā)送信息,不能接收信息;接收端只能接收信息,不能發(fā)送信息。而在雙向通信時,發(fā)送端可以轉(zhuǎn)變?yōu)榻邮斩?;相應地,接收端也可以轉(zhuǎn)變?yōu)榘l(fā)送端。
在具體實施時,步驟S101中的數(shù)據(jù)幀可以采用上述第一至九種具體實施方式中任一種格式。
在S102的第一種具體實施方式中,可以采用FSK(Frequency-shift keying,頻移鍵控)的方式對該數(shù)據(jù)幀進行調(diào)制。在具體實施時,接收端可以通過接收該數(shù)據(jù)幀中的PA字段的每個比特消耗的時長,來調(diào)整接收頻率。相關(guān)技術(shù)中采用幅值調(diào)制ASK(AmplitudeShiftKeying,幅移鍵控)的方式發(fā)送該數(shù)據(jù)幀,由于幅值調(diào)制的包絡線容易被干擾,所以抗干擾能力較弱;本申請實施例中采用FSK的調(diào)制方式,使用頻率差異攜帶信息,被噪聲或外部電磁干擾的載波可以較為容易的被過濾,能提高抗干擾能力。
在S102的第二種具體實施方式中,還可以在下述一個頻段發(fā)送該數(shù)據(jù)幀:315MHz、433MHz、或2.4GHz。
在S102的第二種具體實施方式中,還可以以小于或等于250kbps的傳輸速率發(fā)送該數(shù)據(jù)幀。
在相關(guān)技術(shù)中,通常是將數(shù)據(jù)幀間隔固定時間重復發(fā)送,這種方式可靠性差。例如,在t1時刻,設備B1和設備B2同時以同一頻率向中心設備A發(fā)送 消息,此時,兩個消息之間彼此產(chǎn)生干擾,A未正確接收到消息;根據(jù)相關(guān)技術(shù)中的方案,隔固定時間Δt后的t2時刻,設備B1和設備B2將再次同時以同一頻率向中心設備A發(fā)送消息,此時,兩個消息之間再次彼此產(chǎn)生干擾;從而導致中心設備A將一直無法正確獲取消息,可靠性較差。
針對上述問題,本申請實施例中還提供了一種隨機間隔重復發(fā)送數(shù)據(jù)幀的方法。
在S102的第三種具體實施方式中,可以以隨機時間間隔ti重復M次發(fā)送該數(shù)據(jù)幀,該M為大于等于2的自然數(shù),t1=0;i為發(fā)送該數(shù)據(jù)幀的次數(shù),i為2至M的自然數(shù)。即,從第2次發(fā)送該數(shù)據(jù)幀開始,每次發(fā)送該數(shù)據(jù)幀的隨機時間間隔ti可以根據(jù)發(fā)送次數(shù)的不同而不同。在具體實施時,可以令ti=2(i+1)+random(0-2(i+1))毫秒,random(0-2(i+1))為0至2(i+1)之間的隨機數(shù)。
在具體實施時,在接收到觸發(fā)消息發(fā)送的指令時,立即首次發(fā)送攜帶該消息的數(shù)據(jù)幀。該觸發(fā)消息發(fā)送的指令可以是用戶發(fā)出的指令,也可以是設備根據(jù)預定的上報規(guī)則,檢測到相應的消息后觸發(fā)的指令。
以M=5為例,當消息觸發(fā)時,立即發(fā)送第1次數(shù)據(jù)幀,第2次發(fā)送開始與第1次發(fā)送完成的時間間隔:8+random(0-8)毫秒;第3次發(fā)送開始與第2次發(fā)送完成的時間間隔:16+random(0-16)毫秒;第4次發(fā)送開始與第3次發(fā)送完成的時間間隔:32+random(0-32)毫秒;第5次發(fā)送開始與第4次發(fā)送完成的時間間隔:64+random(0-64)毫秒。
例如,在t1時刻,設備B1和設備B2同時以同一頻率向中心設備A發(fā)送消息,此時,兩個消息之間彼此產(chǎn)生干擾,A未正確接收到消息;消息發(fā)送完成的時間為t2。根據(jù)本申請實施例中的方案,設備B1和設備B2將重復多次發(fā)送該消息;因此,設備B1和設備B2繼續(xù)準備第二次發(fā)送該消息。B1在計算第二次發(fā)送的時間間隔時,隨機到的時間間隔為8+4=12毫秒,則B1在t2+12毫秒時第二次發(fā)送該消息;B2在計算第二次發(fā)送的時間間隔時,隨機到時間間隔為8+0=8毫秒,則B1在t2+8毫秒時第二次發(fā)送該消息;由于設備B1和 設備B2第二次發(fā)送消息的時刻不同,因此不會產(chǎn)生干擾,設備A將正確接收端B1和設備B2的消息。
由于是以隨機時間間隔重復多次發(fā)送同一數(shù)據(jù)幀,所以即使某些設備在同一時刻發(fā)送了多個數(shù)據(jù)幀,但有很大概率在其他次發(fā)送這些數(shù)據(jù)幀時,能夠不在同一時刻;能夠避免相關(guān)技術(shù)中多個設備以固定時間間隔多次在同一時刻發(fā)送消息,導致消息無法被接收端正確獲取的問題,因此,提高了消息發(fā)送的成功率,也提高了通信的可靠性。
除數(shù)據(jù)幀格式之外,本申請實施例中的數(shù)據(jù)通信方法還可以預先定義發(fā)送端和接收端雙方的無線通訊協(xié)議。該通訊協(xié)議如下:物理層采用頻移鍵控FSK,尤其推薦采用高斯頻移鍵控GFSK方式,通訊速率在250kbps以下;鏈路層采用上述本申請實施例二所示的數(shù)據(jù)幀格式;傳輸層采用單向通信,以隨機間隔重復發(fā)送五次;應用層可以對操作編碼和操作命令之間的對應關(guān)系進行說明,還可以進一步定義各操作編碼的屬性、是否加密、長度、數(shù)據(jù)內(nèi)容等;加密管理可以根據(jù)需要加密或不加密,加密算法采用AES128。
采用本申請實施例中的數(shù)據(jù)通信方法,第一物聯(lián)網(wǎng)設備將信息封裝至預定格式的數(shù)據(jù)幀,并發(fā)送該數(shù)據(jù)幀,使得接收端的第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
實施例二
本申請實施例二提供了上述實施例一所涉及的數(shù)據(jù)幀的幀結(jié)構(gòu)一個示例,圖2為本申請實施例二的預定格式的數(shù)據(jù)幀的幀結(jié)構(gòu)示意圖。
如圖2所示,數(shù)據(jù)幀分為幀頭、幀體、幀尾三部分。幀頭包括PA字段和SYNC字段,幀體包括ADDR字段、CTRL字段、OP字段和PAYLOAD字段,幀尾包括CRC字段;其中,ADDR字段又包括MID字段和SN字段;CTRL字段又包括SF字段和LEN字段。各字段攜帶的具體信息和長度如下:
PA字段:攜帶前導碼,可以是1和0交替的序列,長度可以為4字節(jié), 接收端可以根據(jù)該字段校準傳輸速率。
SYNC字段:同步字字段,攜帶表示數(shù)據(jù)幀格式的編碼,長度可以為2字節(jié)。
ADDR字段:攜帶生成該數(shù)據(jù)幀的設備地址,長度可以為6字節(jié),包含廠商編碼MID字段和設備序列號SN字段。ADDR字段的幀結(jié)構(gòu)示意圖可以如圖3所示,包括:
MID字段:攜帶生成該數(shù)據(jù)幀的設備的制造廠商編碼,可以占用ADDR字段的前24位,該制造廠商編碼可以是物聯(lián)平臺頒發(fā)給合作廠商的廠商編碼,用于區(qū)分不同的廠商。
SN:攜帶生成該數(shù)據(jù)幀的設備的序列號,可以占用ADDR字段的后24位,該序列號可以是設備制造廠商為設備分配的產(chǎn)品序列號編碼,同一個廠商生產(chǎn)的不同設備的SN通常是不同的。
CTRL字段:攜帶后續(xù)SEQ字段、OP字段和PAYLOAD字段的控制選項,長度可以為1字節(jié),包含加密標志SF字段和長度LEN字段。CTRL字段的幀結(jié)構(gòu)示意圖可以如圖4所示,包括:
SF字段:攜帶表示SEQ字段、OP字段、和PAYLOAD字段是否加密的信息。例如,當SF字段為“1”時可以表示為加密,為“0”時可以表示為不加密。當然,也可以是SF字段為“0”時表示為加密,為“1”時表示為不加密。
LEN字段:攜帶表示SEQ字段、OP字段、和PAYLOAD字段的有效數(shù)據(jù)長度的信息,取值范圍可以為3-127。例如,SEQ占用1字節(jié),OP占用2字節(jié),PAYLOAD字段長度為0-124字節(jié)。
由于加密數(shù)據(jù)有可能需要補充無效數(shù)據(jù)以滿足加密長度要求,因此,LEN字段攜帶的信息在SEQ字段、OP字段、和PAYLOAD字段被加密的情況下,對接收端來說是必要的。
SEQ字段:攜帶數(shù)據(jù)包的序列號,長度可以為1字節(jié),取值范圍為1-255。
OP字段:攜帶設備待發(fā)送的操作命令字對應的操作編碼,長度可以為2字節(jié)。
PAYLOAD字段:攜帶設備待發(fā)送的有效內(nèi)容,長度可以為0-124字節(jié),PAYLOAD字段攜帶的有效內(nèi)容與OP字段攜帶的操作命令字相對應。
CRC字段:攜帶幀體數(shù)據(jù)中所有數(shù)據(jù)的循環(huán)冗余校驗碼,即,攜帶ADDR字段、CTRL字段、SEQ字段、OP字段和PAYLOAD字段的數(shù)據(jù)的循環(huán)冗余校驗碼,長度可以為2個字節(jié)。
在具體實施時,本申請實施例中的數(shù)據(jù)幀的各字段的排列順序可以如圖2所示,按PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段依次排列。
在具體實施時,PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段也可以以其他順序排列,本申請對此不作限制。
在具體實施時,本申請實施例中的數(shù)據(jù)幀可以脫離于本申請實施例中的數(shù)據(jù)通信方法單獨存在或使用,并不限于將本數(shù)據(jù)幀應用于通信過程,也并不限于將本數(shù)據(jù)幀的生成、發(fā)送、接收、傳輸?shù)冗^程;所有涉及本申請實施例中的格式的數(shù)據(jù)幀均包括在本申請實施例的范圍之內(nèi)。
實施例三
在相關(guān)技術(shù)中,通常是將數(shù)據(jù)幀間隔固定時間重復發(fā)送,這種方式可靠性差。例如,在t1時刻,設備B1和設備B2同時以同一頻率向中心設備A發(fā)送消息,此時,兩個消息之間彼此產(chǎn)生干擾,A未正確接收到消息;根據(jù)相關(guān)技術(shù)中的方案,隔固定時間Δt后的t2時刻,設備B1和設備B2將再次同時以同一頻率向中心設備A發(fā)送消息,此時,兩個消息之間再次彼此產(chǎn)生干擾;從而導致中心設備A將一直無法正確獲取消息,可靠性較差。
針對上述問題,本申請實施例三中提供了一種數(shù)據(jù)發(fā)送方法。
根據(jù)本申請實施例的數(shù)據(jù)發(fā)送方法包括:以隨機時間間隔t1重復M次發(fā)送數(shù)據(jù)幀,該M為大于等于2的自然數(shù),t1=0;i為發(fā)送該數(shù)據(jù)幀的次數(shù),i為2至M的自然數(shù)。即,從第2次發(fā)送該數(shù)據(jù)幀開始,每次發(fā)送該數(shù)據(jù)幀的隨機時間間隔t1可以根據(jù)發(fā)送次數(shù)的不同而不同。在具體實施時,可以令t1=2(i+1)+random(0-2(i+1))毫秒,random(0-2(i+1))為0至2(i+1)之間的隨機數(shù)。
在具體實施時,在接收到觸發(fā)消息發(fā)送的指令時,可以立即首次發(fā)送攜帶該消息的數(shù)據(jù)幀;該觸發(fā)消息發(fā)送的指令可以是用戶發(fā)出的指令,也可以是設備根據(jù)預定的上報規(guī)則,檢測到相應的消息后觸發(fā)的指令。
以M=5為例,當消息觸發(fā)時,立即發(fā)送第1次數(shù)據(jù)幀,第2次發(fā)送開始與第1次發(fā)送完成的時間間隔:8+random(0-8)毫秒;第3次發(fā)送開始與第2次發(fā)送完成的時間間隔:16+random(0-16)毫秒;第4次發(fā)送開始與第3次發(fā)送完成的時間間隔:32+random(0-32)毫秒;第5次發(fā)送開始與第4次發(fā)送完成的時間間隔:64+random(0-64)毫秒。
例如,在t1時刻,設備B1和設備B2同時以同一頻率向中心設備A發(fā)送消息,此時,兩個消息之間彼此產(chǎn)生干擾,A未正確接收到消息;消息發(fā)送完成的時間為t2。根據(jù)本申請實施例中的方案,設備B1和設備B2將重復多次發(fā)送該消息;因此,設備B1和設備B2繼續(xù)準備第二次發(fā)送該消息。B1在計算第二次發(fā)送的時間間隔時,隨機到的時間間隔為8+4=12毫秒,則B1在t2+12毫秒時第二次發(fā)送該消息;B2在計算第二次發(fā)送的時間間隔時,隨機到時間間隔為8+0=8毫秒,則B1在t2+8毫秒時第二次發(fā)送該消息;由于設備B1和設備B2第二次發(fā)送消息的時刻不同,因此不會產(chǎn)生干擾,設備A將正確接收端B1和設備B2的消息。
由于是以隨機時間間隔重復多次發(fā)送同一數(shù)據(jù)幀,所以即使某些設備在同一時刻發(fā)送了多個數(shù)據(jù)幀,但有很大概率在其他次發(fā)送這些數(shù)據(jù)幀時,能夠不在同一時刻;能夠避免相關(guān)技術(shù)中多個設備以固定時間間隔多次在同一時刻發(fā)送消息,導致消息無法被接收端正確獲取的問題,因此,提高了消息發(fā)送的成 功率,也提高了通信的可靠性。
圖5示出了根據(jù)本申請實施例三的數(shù)據(jù)發(fā)送方法的流程圖。
如圖5所示,根據(jù)本申請實施例三的數(shù)據(jù)發(fā)送方法的一種具體實施方式可以包括以下步驟:
S501,準備發(fā)送數(shù)據(jù)幀;
S502,判斷已發(fā)送該數(shù)據(jù)幀的次數(shù)是否達到預定次數(shù)M,該M大于等于2;如果否,則執(zhí)行S503-S507;如果是,則結(jié)束。
在具體實施時,可以根據(jù)數(shù)據(jù)幀中的序列號SEQ字段的數(shù)值來識別待發(fā)送數(shù)據(jù)幀,即,SEQ字段的數(shù)值與之前發(fā)送的數(shù)據(jù)幀的SEQ字段相同時,即認為該數(shù)據(jù)幀是重復發(fā)送的數(shù)據(jù)幀。當SEQ字段中的數(shù)值是循環(huán)使用時,例如,循環(huán)使用1-255的數(shù)值時,可以進一步設定在預定時間段內(nèi)根據(jù)數(shù)據(jù)幀中的序列號SEQ字段的數(shù)值來識別待發(fā)送數(shù)據(jù)幀,例如,如果SEQ字段的數(shù)值與1分鐘之內(nèi)已發(fā)送的數(shù)據(jù)幀的SEQ字段相同時,即認為該數(shù)據(jù)幀是重復發(fā)送的數(shù)據(jù)幀;如果超過1分鐘,則認為不是重復發(fā)送的數(shù)據(jù)幀。
在具體實施時,也可以根據(jù)其他信息,例如,數(shù)據(jù)幀中攜帶的有效信息來識別待發(fā)送數(shù)據(jù)幀。例如,如果數(shù)據(jù)幀中攜帶的操作命令字和有效內(nèi)容,與之前已發(fā)送的數(shù)據(jù)幀的操作命令字和有效內(nèi)容相同,則認為是重復發(fā)送的數(shù)據(jù)幀,如果不同,則認為不是重復發(fā)送的數(shù)據(jù)幀。
在具體實施時,還可以在發(fā)送端建立已發(fā)送數(shù)據(jù)幀與發(fā)送次數(shù)的對應關(guān)系列表,例如,在發(fā)送某一新數(shù)據(jù)幀時,啟動針對該數(shù)據(jù)幀的計數(shù)器,每發(fā)送一次,該數(shù)據(jù)幀的發(fā)送次數(shù)加1;然后根據(jù)該數(shù)據(jù)幀對應的計數(shù)器來判斷已發(fā)送該數(shù)據(jù)幀的次數(shù)是否達到預定次數(shù)M。
S503,判斷是否首次發(fā)送該數(shù)據(jù)幀;如果是,則執(zhí)行S504;如果否,則執(zhí)行S505-S507;
在具體實施時,仍然可以根據(jù)已發(fā)送數(shù)據(jù)幀與發(fā)送次數(shù)的對應關(guān)系列表來判斷是否首次發(fā)送該數(shù)據(jù)幀。例如,對應關(guān)系列表中不存在該數(shù)據(jù)幀,則認為 是首次發(fā)送。
S504,立即發(fā)送該數(shù)據(jù)幀,并記錄開始發(fā)送的時刻T1開始和發(fā)送結(jié)束的時刻T1結(jié)束。
在具體實施時,在發(fā)送端還可以建立已發(fā)送數(shù)據(jù)幀與發(fā)送次數(shù)、以及各次的發(fā)送開始時刻、發(fā)送結(jié)束時刻的對應關(guān)系列表,用于已發(fā)送數(shù)據(jù)幀的發(fā)送次數(shù)、各次的開始發(fā)送的時刻和發(fā)送結(jié)束的時刻。
至此,首次發(fā)送數(shù)據(jù)幀的過程結(jié)束。
S505,獲取最近一次發(fā)送該數(shù)據(jù)幀的開始發(fā)送時刻Ti-1開始和發(fā)送結(jié)束的時刻Ti-1結(jié)束;
在具體實施時,可以通過查詢已發(fā)送數(shù)據(jù)幀與發(fā)送次數(shù)、以及各次的發(fā)送開始時刻、發(fā)送結(jié)束時刻的對應關(guān)系列表,來獲取最近一次發(fā)送該數(shù)據(jù)幀的開始發(fā)送時刻和發(fā)送結(jié)束時刻。
S506,確定本次發(fā)送該數(shù)據(jù)幀的時刻Ti開始,該Ti開始=Ti-1結(jié)束+ti,該ti=2(i+1)+random(0-2(i+1)),random(0-2(i+1))為0至2(i+1)之間的隨機數(shù);
S507,在Ti開始時刻發(fā)送該數(shù)據(jù)幀,并記錄開始發(fā)送的時刻Ti開始和發(fā)送結(jié)束的時刻Ti結(jié)束。
至此,第i次發(fā)送數(shù)據(jù)幀的過程結(jié)束。
在具體實施時,本申請實施例中的數(shù)據(jù)發(fā)送方法可以脫離于本申請實施例中預定格式的數(shù)據(jù)幀的數(shù)據(jù)通信方法單獨使用,并不限于將本數(shù)據(jù)發(fā)送方法應用于某種格式的數(shù)據(jù)幀的發(fā)送過程;所有涉及本申請實施例中的數(shù)據(jù)發(fā)送方法均包括在本申請實施例的范圍之內(nèi)。
實施例四
圖6示出了根據(jù)本申請實施例四的數(shù)據(jù)通信方法的流程圖。
如圖6所示,本申請實施例四的數(shù)據(jù)通信方法包括步驟:
S601,第二物聯(lián)網(wǎng)設備接收來自第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀;
S602,根據(jù)該數(shù)據(jù)幀攜帶的信息,對該數(shù)據(jù)幀進行相應處理;其中,該數(shù)據(jù)幀具有預定格式。
在具體實施時,該第一物聯(lián)網(wǎng)設備可以是物聯(lián)網(wǎng)系統(tǒng)中的智能設備;更具體地,可以是物聯(lián)網(wǎng)系統(tǒng)中的外圍設備;如安防系統(tǒng)中的門鎖、紅外傳感器;燈光系統(tǒng)中的燈具;智能家居中的空調(diào)、冰箱等。該第二物聯(lián)網(wǎng)設備可以是物聯(lián)網(wǎng)系統(tǒng)中的智能設備;更具體的,可以是物聯(lián)網(wǎng)系統(tǒng)中的中心設備;如網(wǎng)關(guān)、控制終端等。
在具體實施時,本申請實施例中的方案可以應用于單向通信,也可以應用于雙向通信,本申請對此不作限制。
在具體實施時,接收端可以采用Idle-RX-On的方式,即,接收端一直處于接收模式。
根據(jù)本申請實施例的數(shù)據(jù)幀格式的具體實施方式與本申請實施例一的數(shù)據(jù)幀的具體實施,重復之處不再贅述。
在S601的一種具體實施方式中,第二物聯(lián)網(wǎng)設備可以接收并解調(diào)來自該第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀。在具體實施時,該第二物聯(lián)網(wǎng)設備根據(jù)接收到的來自第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀的PA字段,確定解調(diào)頻段,然后再根據(jù)該解調(diào)頻段解調(diào)該數(shù)據(jù)幀。
在S602的第一種具體實施方式中,對數(shù)據(jù)幀進行的處理可以包括:第二物聯(lián)網(wǎng)設備可以根據(jù)數(shù)據(jù)幀的SYNC字段,判斷該數(shù)據(jù)幀是否為預定格式的數(shù)據(jù)幀;例如,當SYNC字段為0x168F時,判斷該數(shù)據(jù)幀為預定格式的數(shù)據(jù)幀,當SYNC字段不為0x168F時,判斷該數(shù)據(jù)幀為其他格式的數(shù)據(jù)幀。
在S602的第二種具體實施方式中,對數(shù)據(jù)幀進行的處理可以包括:根據(jù)數(shù)據(jù)幀的MID字段和SN字段,判斷生成數(shù)據(jù)幀的設備是否為已注冊設備。在具體實施時,在接收端可以存儲已注冊設備的設備制造廠商編碼和設備序列號;在接收到數(shù)據(jù)幀時,從該數(shù)據(jù)幀的MID字段和SN字段提取生成該數(shù)據(jù)幀 的設備的相應信息,并在已注冊設備的信息中查找;如果查找到,則表明生成該數(shù)據(jù)幀的設備為已注冊設備;如果未查找到,則表明生成該數(shù)據(jù)幀的設備為非注冊設備。
在S602的第三種具體實施方式中,對數(shù)據(jù)幀進行的處理還可以包括:在數(shù)據(jù)幀的SF字段為“1”時,解密SEQ字段、OP字段、PAYLOAD字段的數(shù)據(jù)。在具體實施時,當數(shù)據(jù)幀的SF字段為“1”時,表示SEQ字段、OP字段、PAYLOAD字段的數(shù)據(jù)為加密數(shù)據(jù),需要進一步根據(jù)發(fā)送與接收方預先約定的加解密算法對SEQ字段、OP字段、PAYLOAD字段的數(shù)據(jù)進行解官,例如,約定的加解密算法可以是AES128算法,也可以是其他對稱加密算法,或者還可以是非對稱加密算法等。
在S602的第四種具體實施方式中,對數(shù)據(jù)幀進行的處理還可以包括:根據(jù)該數(shù)據(jù)幀的SN字段中攜帶的設備序列號信息和SEQ字段中攜帶的數(shù)據(jù)幀序列號,判斷該數(shù)據(jù)幀是否為已接收的數(shù)據(jù)幀。
在具體實施時,第二物聯(lián)網(wǎng)設備可以首先根據(jù)SN字段攜帶的生成該數(shù)據(jù)幀的設備的設備序列號信息,確定發(fā)送該數(shù)據(jù)幀的設備;并進一步根據(jù)SEQ字段中攜帶的數(shù)據(jù)幀序列號,來識別接收到的數(shù)據(jù)幀;然后根據(jù)該數(shù)據(jù)幀的接收次數(shù)來判斷是否為已接收到數(shù)據(jù)。
在具體實施時,還可以在接收端建立已接收數(shù)據(jù)幀列表;在具體實施時,在該列表中記錄第二物聯(lián)網(wǎng)設備已接收的數(shù)據(jù)幀的相關(guān)信息,該相關(guān)信息可以包括:各數(shù)據(jù)幀的發(fā)送端序列號SN、數(shù)據(jù)幀的序列號SEQ、接收到各數(shù)據(jù)幀的時刻等。在具體實施時,第二物聯(lián)網(wǎng)設備可以查詢該列表來判斷新接收到的數(shù)據(jù)幀是否為已接收的數(shù)據(jù)幀。
例如,當接收到來自某一設備的數(shù)據(jù)幀的SEQ字段,與之前從同一設備接收到的數(shù)據(jù)幀的SEQ字段相同時,判斷二者為相同的數(shù)據(jù)幀;當接收到的、來自某一設備的數(shù)據(jù)幀的SEQ字段,與之前從同一設備接收到的數(shù)據(jù)幀的SEQ字段不同時,判斷二者為不同的數(shù)據(jù)幀,即,該數(shù)據(jù)幀為接收到的新數(shù)據(jù)幀; 或者,當接收到的數(shù)據(jù)幀的SEQ字段相同,但是SN字段不同時,也判斷二者為不同的數(shù)據(jù)幀,即,在后數(shù)據(jù)幀為接收到的新數(shù)據(jù)幀。
當SEQ字段中的數(shù)值是循環(huán)使用時,例如,循環(huán)使用1-255的數(shù)值時,可以進一步設定在預定時間段內(nèi)根據(jù)數(shù)據(jù)幀中的SEQ字段的數(shù)值來識別數(shù)據(jù)幀,例如,在1分鐘之內(nèi),已接收到來自同一設備的數(shù)據(jù)幀的SEQ字段相同時,即認為該數(shù)據(jù)幀是相同的數(shù)據(jù)幀,即,在后接收到的數(shù)據(jù)幀為已接收數(shù)據(jù)幀;如果超過1分鐘,則認為不是重復發(fā)送的相同數(shù)據(jù)幀,即,在后接收到的數(shù)據(jù)幀為接收到的新的數(shù)據(jù)幀。
在具體實施時,也可以根據(jù)其他信息,例如,數(shù)據(jù)幀中攜帶的有效信息來識別待發(fā)送數(shù)據(jù)幀。例如,如果來自同一設備的數(shù)據(jù)幀中攜帶的操作命令字和有效內(nèi)容,與之前已發(fā)送的數(shù)據(jù)幀的操作命令字和有效內(nèi)容相同,則認為是重復發(fā)送的數(shù)據(jù)幀,即,在后接收到的數(shù)據(jù)幀為已接收數(shù)據(jù)幀;如果不同,則認為不是重復發(fā)送的數(shù)據(jù)幀,即,在后接收到的數(shù)據(jù)幀為接收到的新的數(shù)據(jù)幀。
在S602的第五種具體實施方式中,在判斷該數(shù)據(jù)幀是否為已接收的數(shù)據(jù)幀之后,還可以進一步包括:如果該數(shù)據(jù)幀為已接收的數(shù)據(jù)幀,則丟棄該數(shù)據(jù)幀;如果該數(shù)據(jù)幀非已接收的數(shù)據(jù)幀,則提取該數(shù)據(jù)幀中OP字段攜帶的操作編碼和PAYLOAD字段的有效內(nèi)容。
在具體實施時,可以在發(fā)送端和接收端分別存儲操作編碼和操作命令字的對應關(guān)系列表,以使得接收端能夠根據(jù)數(shù)據(jù)幀的OP字段攜帶的操作編碼,獲取第一物聯(lián)網(wǎng)設備發(fā)送的操作命令字。
采用本申請實施例中的數(shù)據(jù)通信方法,第二物聯(lián)網(wǎng)設備接收來自第一物聯(lián)網(wǎng)設備的預定格式的數(shù)據(jù)幀,并根據(jù)該數(shù)據(jù)幀中攜帶的信息,對該數(shù)據(jù)幀進行相應的處理,使得第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
實施例五
圖7示出的是本申請實施例五的數(shù)據(jù)通信方法的流程圖。在圖7中,以物聯(lián)平臺中的網(wǎng)關(guān)的處理流程為例,對根據(jù)本申請實施例的數(shù)據(jù)通信方法的一種具體實施方式進行了描述。在該本申請實施例中,當接收端接收到前導碼PA時,確定接收到數(shù)據(jù)幀,并依次檢驗SYNC字段、ADDR字段、CRC字段、SF字段、SEQ字段、操作編碼OP字段和數(shù)據(jù)長度LEN字段。
如圖7所示,本申請實施例五的數(shù)據(jù)通信方法包括以下步驟:
S701,接收到數(shù)據(jù)幀;
S702,根據(jù)SYNC字段的信息判斷是否為設定的物聯(lián)數(shù)據(jù)幀;如果是,則執(zhí)行S703;如果否,則執(zhí)行S712;
S703,根據(jù)MID字段和SN字段攜帶的信息,判斷生成該數(shù)據(jù)幀的設備是否為已注冊設備;如果是,則執(zhí)行S705;如果否,則執(zhí)行S704;
S704,根據(jù)所述數(shù)據(jù)幀的SF字段判斷所述數(shù)據(jù)是否非加密數(shù)據(jù)、且是所述OP字段攜帶的為注冊命令;如果是,則執(zhí)行S705;如果否,則執(zhí)行S712;
S705,判斷跟最近一次接收到的數(shù)據(jù)幀是否完全相同;如果否,則執(zhí)行S706;如果是,則執(zhí)行S712;
在具體實施時,可以將接收到的數(shù)據(jù)幀和上一次接收到的數(shù)據(jù)幀的所有數(shù)據(jù)一一進行比對,如果一致,則認為完全相同,如果不一致,則認為不完全相同。
在具體實施時,由于數(shù)據(jù)幀中的數(shù)據(jù)可能是加密數(shù)據(jù),因此,在解密之前直接判斷數(shù)據(jù)是否是已接收數(shù)據(jù),如果是,則不需要再執(zhí)行后續(xù)其他步驟,可以節(jié)省系統(tǒng)資源。
S706,對接收到的數(shù)據(jù)幀進行CRC校驗,如果成功,則執(zhí)行S707;如果不成功,則執(zhí)行S712;
在具體實施時,可以對數(shù)據(jù)幀的幀體數(shù)據(jù)進行CRC校驗,并與幀尾的CRC字段攜帶的校驗碼進行比較,如果一致,則認為是CRC校驗成功,如果不一致,則認為CRC校驗不成功。
S707,根據(jù)數(shù)據(jù)幀的SF字段,判斷是否為加密數(shù)據(jù);如果是,則執(zhí)行S708,如果否,則執(zhí)行S709;
在具體實施時,可以在SF字段為“1”時,判斷為加密數(shù)據(jù);在在SF字段為“0”時,判斷為非加密數(shù)據(jù)。
S708,解密SEQ+OP+PAYLOAD的數(shù)據(jù);
在具體實施時,可以采用發(fā)送端和接收端約定的算法進行解密;例如,AES128。
S709,根據(jù)SEQ字段攜帶的信息判斷是否為已接收數(shù)據(jù)幀;如果否,則執(zhí)行S710;如果是,則執(zhí)行S712;
判斷是否為已接收數(shù)據(jù)幀的具體實施方法可以參考本申請實施例四所述的內(nèi)容,在此不贅述。
S710,判斷OP字段與LEN字段的數(shù)據(jù)是否正確;如果均正確,則執(zhí)行S711,否則執(zhí)行S712;
在具體實施時,可以將OP字段攜帶的操作編碼與接收端存儲的操作編碼進行比對,如果未發(fā)現(xiàn)OP字段攜帶的操作編碼,則認為OP字段不正確,如果發(fā)現(xiàn)存在OP字段攜帶的操作編碼,則認為OP字段正確。
在具體實施時,可以將LEN字段中的數(shù)值與獲取的SEQ字段+OP字段+PAYLOAD字段的有效內(nèi)容的長度進行對比,由于SEQ字段與OP字段的長度固定,例如,SEQ字段為1字節(jié),OP字段為2字節(jié);因此,可以根據(jù)LEN字段的數(shù)值截取PAYLOAD字段的有效內(nèi)容的數(shù)據(jù)。根據(jù)PAYLOAD字段的定義,PAYLOAD字段中有效內(nèi)容攜帶的信息應當為與OP字段的操作命令字相對應的的信息,且應當為合理范圍內(nèi)的信息。當根據(jù)LEN字段截取的PAYLOAD的有效內(nèi)容中攜帶的信息,與OP字段的操作命令字不對應,或者超出合理范圍時,認為LEN字段不正確;當根據(jù)LEN字段截取的PAYLOAD的有效內(nèi)容中攜帶的信息,與OP字段的操作命令字對應且在合理范圍時,認為LEN字段正確。
例如,家庭中的空調(diào)發(fā)送的OP字段的操作命令字為“狀態(tài):溫度”,則PAYLOAD字段的有效內(nèi)容應當為數(shù)值,且范圍在正負50之間。如果OP字段的操作命令字為“狀態(tài):溫度”,而根據(jù)LEN字段截取的PAYLOAD的有效內(nèi)容攜帶的數(shù)值為150,則表明該LEN字段不正確。
S711,提取OP字段與PAYLOAD字段的信息。
S712,判斷接收到的數(shù)據(jù)幀為無效數(shù)據(jù)。
在具體實施時,判斷接收到的數(shù)據(jù)幀為無效數(shù)據(jù)之后,還可以進一步執(zhí)行丟棄該數(shù)據(jù)包、或者在緩存一定時間后再丟棄該數(shù)據(jù)包等處理。
采用本申請實施例中的數(shù)據(jù)通信方法,第二物聯(lián)網(wǎng)設備接收來自第一物聯(lián)網(wǎng)設備的預定格式的數(shù)據(jù)幀,并根據(jù)該數(shù)據(jù)幀中攜帶的信息,對該數(shù)據(jù)幀進行相應的處理,使得第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
基于同一發(fā)明構(gòu)思,本申請實施例中還提供了一種數(shù)據(jù)通信裝置,由于該裝置解決問題的原理與本申請實施例一所提供的數(shù)據(jù)通信方法相似,因此該裝置的實施可以參見方法的實施,重復之處不再贅述。
實施例六
圖8示出的是本申請實施例六的數(shù)據(jù)通信裝置的結(jié)構(gòu)示意圖。
如圖8所示,本申請實施例六中的數(shù)據(jù)通信裝置800,該裝置包括:數(shù)據(jù)幀封裝模塊801,用于將信息封裝至預定格式的數(shù)據(jù)幀;發(fā)送模塊802,用于發(fā)送該數(shù)據(jù)幀,以使接收端根據(jù)該預定格式對該數(shù)據(jù)幀進行處理。
可選地,該數(shù)據(jù)幀包括幀頭,該幀頭包括前導碼PA字段,該PA字段攜帶調(diào)制頻段信息。
可選地,該PA字段長度為4個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀頭,該幀頭包括同步字SYNC字段,該SYNC字段攜帶數(shù)據(jù)幀格式信息。
可選地,該SYNC字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括設備地址ADDR字段,該ADDR字段攜帶該第一物聯(lián)網(wǎng)設備的地址信息。
可選地,該ADDR字段長度為6個字節(jié)。
可選地,該ADDR字段包括制造廠商編碼MID字段,該MID字段攜帶該第一物聯(lián)網(wǎng)設備的制造廠商編碼信息。
可選地,該MID字段長度為3個字節(jié)。
可選地,該ADDR字段包括序列號SN字段,該SN字段攜帶該第一物聯(lián)網(wǎng)設備的設備序列號信息。
可選地,該SN字段長度為3個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括控制選項CTRL字段,該CTRL字段攜帶有效數(shù)據(jù)的控制選項信息,該有效數(shù)據(jù)包括數(shù)據(jù)幀序列號SEQ字段、操作編碼OP字段和有效內(nèi)容PAYLOAD字段中的數(shù)據(jù)。
可選地,該CTRL字段長度為1個字節(jié),該CTRL字段包括0-7位。
可選地,該CTRL字段包括加密標識SF字段,該SF字段攜帶標識該有效數(shù)據(jù)是否加密的信息。
可選地,該SF字段長度為1位,占用該CTRL字段中的第7位。
可選地,該SF字段為“1”時,該有效數(shù)據(jù)為加密數(shù)據(jù)。
可選地,該SF字段為“1”時,該有效數(shù)據(jù)為采用高級加密標準AES128算法加密的數(shù)據(jù)。
可選地,該SF字段為“0”時,該有效數(shù)據(jù)為非加密數(shù)據(jù)。
可選地,該CTRL字段包括有效數(shù)據(jù)長度LEN字段,該LEN字段攜帶該有效數(shù)據(jù)的長度信息。
可選地,該LEN字段長度為7位,占用該CTRL字段中的第0-6位。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括數(shù)據(jù)幀序列號SEQ字段,該SEQ字段攜帶該數(shù)據(jù)幀的序列號。
可選地,該序列號是該第一物聯(lián)網(wǎng)設備為該消息分配的編號。
可選地,該SEQ字段長度為1個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括操作編碼OP字段,該OP字段攜帶該消息中的操作命令字對應的操作編碼信息。
可選地,該OP字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括有效內(nèi)容PAYLOAD字段,該PAYLOAD字段攜帶該消息中的有效內(nèi)容信息。
可選地,該PAYLOAD字段長度為N個字節(jié),該N為0至124之間的自然數(shù)。
可選地,該數(shù)據(jù)幀包括幀尾,該幀尾包括循環(huán)冗余校驗碼CRC字段,該CRC字段攜帶該數(shù)據(jù)幀的幀體的數(shù)據(jù)的循環(huán)冗余校驗信息。
可選地,該CRC字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀的幀體包括ADDR字段、CTRL字段、SEQ字段、OP字段、和PAYLOAD字段。
可選地,在該數(shù)據(jù)幀中,PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段依次排列。
可選地,發(fā)送模塊具體用于采用頻移鍵控FSK的方式對該數(shù)據(jù)幀進行調(diào)制。
可選地,發(fā)送模塊具體用于以小于或等于250kbps的傳輸速率發(fā)送該數(shù)據(jù)幀。
可選地,發(fā)送模塊具體用于在下述一個頻段發(fā)送該數(shù)據(jù)幀:315MHz、433MHz、或2.4GHz。
可選地,發(fā)送模塊具體用于以隨機時間間隔ti重復M次發(fā)送該數(shù)據(jù)幀,該M為大于等于2的自然數(shù),t1=0;i為發(fā)送該數(shù)據(jù)幀的次數(shù),i為2至M的自然數(shù)。
可選地,ti=2(i+1)+random(0-2(i+1)),random(0-2(i+1))為0至2(i+1)之間的隨機數(shù)。
采用本申請實施例中的數(shù)據(jù)通信裝置,能夠?qū)⑿畔⒎庋b至預定格式的數(shù)據(jù)幀,并發(fā)送該數(shù)據(jù)幀,使得接收端的第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
基于同一發(fā)明構(gòu)思,本申請實施例中還提供了一種數(shù)據(jù)通信裝置,由于該裝置解決問題的原理與本申請實施例四所提供的數(shù)據(jù)通信方法相似,因此該裝置的實施可以參見方法的實施,重復之處不再贅述。
實施例七
圖9示出的是本申請實施例七的數(shù)據(jù)通信裝置的結(jié)構(gòu)示意圖。
如圖9所示,本申請實施例七中的數(shù)據(jù)通信裝置900,該裝置包括:接收模塊901,用于接收來自第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀;處理模塊902,用于根據(jù)該數(shù)據(jù)幀攜帶的信息,對該數(shù)據(jù)幀進行相應處理;其中,該數(shù)據(jù)幀具有預定格式。
可選地,該數(shù)據(jù)幀包括幀頭,該幀頭包括前導碼PA字段,該PA字段攜帶調(diào)制頻段信息。
可選地,該PA字段長度為4個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀頭,該幀頭包括同步字SYNC字段,該SYNC字段攜帶數(shù)據(jù)幀格式信息。
可選地,該SYNC字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括設備地址ADDR字段,該ADDR字段攜帶該第一物聯(lián)網(wǎng)設備的地址信息。
可選地,該ADDR字段長度為6個字節(jié)。
可選地,該ADDR字段包括制造廠商編碼MID字段,該MID字段攜帶該第一物聯(lián)網(wǎng)設備的制造廠商編碼信息。
可選地,該MID字段長度為3個字節(jié)。
可選地,該ADDR字段包括序列號SN字段,該SN字段攜帶該第一物聯(lián) 網(wǎng)設備的設備序列號信息。
可選地,該SN字段長度為3個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括控制選項CTRL字段,該CTRL字段攜帶有效數(shù)據(jù)的控制選項信息,該有效數(shù)據(jù)包括數(shù)據(jù)幀序列號SEQ字段、操作編碼OP字段和有效內(nèi)容PAYLOAD字段中的數(shù)據(jù)。
可選地,該CTRL字段長度為1個字節(jié),該CTRL字段包括0-7位。
可選地,該CTRL字段包括加密標識SF字段,該SF字段攜帶標識該有效數(shù)據(jù)是否加密的信息。
可選地,該SF字段長度為1位,占用該CTRL字段中的第7位。
可選地,該SF字段為“1”時,該有效數(shù)據(jù)為加密數(shù)據(jù)。
可選地,該SF字段為“1”時,該有效數(shù)據(jù)為采用高級加密標準AES128算法加密的數(shù)據(jù)。
可選地,該SF字段為“0”時,該有效數(shù)據(jù)為非加密數(shù)據(jù)。
可選地,該CTRL字段包括有效數(shù)據(jù)長度LEN字段,該LEN字段攜帶該有效數(shù)據(jù)的長度信息。
可選地,該LEN字段長度為7位,占用該CTRL字段中的第0-6位。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括數(shù)據(jù)幀序列號SEQ字段,該SEQ字段攜帶該數(shù)據(jù)幀的序列號。
可選地,該序列號是該第一物聯(lián)網(wǎng)設備為該消息分配的編號。
可選地,該SEQ字段長度為1個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括操作編碼OP字段,該OP字段攜帶該消息中的操作命令字對應的操作編碼信息。
可選地,該OP字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀包括幀體,該幀體包括有效內(nèi)容PAYLOAD字段,該PAYLOAD字段攜帶該消息的有效內(nèi)容信息。
可選地,該PAYLOAD字段長度為N個字節(jié),該N為0至124之間的自 然數(shù)。
可選地,該數(shù)據(jù)幀包括幀尾,該幀尾包括循環(huán)冗余校驗碼CRC字段,該CRC字段攜帶該數(shù)據(jù)幀的幀體的數(shù)據(jù)的循環(huán)冗余校驗信息。
可選地,該CRC字段長度為2個字節(jié)。
可選地,該數(shù)據(jù)幀的幀體包括ADDR字段、CTRL字段、SEQ字段、OP字段、和PAYLOAD字段。
可選地,在該數(shù)據(jù)幀中,PA字段、SYNC字段、ADDR字段、CTRL字段、SEQ字段、OP字段、PAYLOAD字段、CRC字段依次排列。
可選地,接收模塊具體用于接收并解調(diào)來自該第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀。
可選地,接收模塊具體包括:解調(diào)頻段確定模塊,用于根據(jù)接收到的來自該第一物聯(lián)網(wǎng)設備的數(shù)據(jù)幀的PA字段,確定解調(diào)頻段;解調(diào)模塊,用于根據(jù)該解調(diào)頻段解調(diào)該數(shù)據(jù)幀。
可選地,處理模塊具體包括:格式判斷子模塊,用于根據(jù)該數(shù)據(jù)幀的SYNC字段,判斷該數(shù)據(jù)幀是否為預定格式的數(shù)據(jù)幀。
可選地,處理模塊具體包括:注冊判斷子模塊,用于根據(jù)該數(shù)據(jù)幀的MID字段和SN字段,判斷生成該數(shù)據(jù)幀的設備是否為已注冊設備。
可選地,處理模塊具體包括:解密子模塊,用于在該數(shù)據(jù)幀的SF字段為“1”時,解密該SEQ字段、OP字段、PAYLOAD字段的數(shù)據(jù)。
可選地,處理模塊具體包括:已接收數(shù)據(jù)幀判斷子模塊,用于根據(jù)該數(shù)據(jù)幀的SN字段中攜帶的設備序列號信息和SEQ字段中攜帶的數(shù)據(jù)幀序列號,判斷該數(shù)據(jù)幀是否為已接收的數(shù)據(jù)幀。
可選地,根據(jù)本申請實施例的數(shù)據(jù)通信裝置還包括:丟棄子模塊,用于在該數(shù)據(jù)幀為已接收的數(shù)據(jù)幀時,丟棄該數(shù)據(jù)幀;提取子模塊,用于在該數(shù)據(jù)幀非已接收的數(shù)據(jù)幀時,提取該數(shù)據(jù)幀中OP字段攜帶的操作編碼和PAYLOAD字段的有效內(nèi)容。
采用本申請實施例中的數(shù)據(jù)通信裝置,能夠接收來自第一物聯(lián)網(wǎng)設備的預 定格式的數(shù)據(jù)幀,并根據(jù)該數(shù)據(jù)幀中攜帶的信息,對該數(shù)據(jù)幀進行相應的處理,使得第二物聯(lián)網(wǎng)設備能夠根據(jù)該預定格式高效地對該數(shù)據(jù)幀進行處理。
本領(lǐng)域內(nèi)的技術(shù)人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。