本發(fā)明涉及通信領(lǐng)域,特別涉及一種跳頻通信方法及系統(tǒng)。
背景技術(shù):
隨著形形色色的無線通信設(shè)備的出現(xiàn),使得人們脫離了有線的束縛,豐富了世界的同時也極大的提高了工作效率。而無線通信領(lǐng)域中2.4g無線通信,其頻段處于2.400ghz~2.4835ghz之間,該頻段是國際規(guī)定的免費頻段,不需要向有關(guān)國際組織繳納任何費用,因此工作在這一頻段的設(shè)備層出不窮,在室內(nèi)辦公環(huán)境里可能同時有多個設(shè)備如wifi、藍牙、zigbee和射頻通信同時工作在該頻段,設(shè)備間的干擾不可避免。
目前為提高設(shè)備的抗干擾能力提出跳頻傳輸技術(shù),目前公開的跳頻技術(shù)主要適用于一對一的通信設(shè)備(即一個數(shù)據(jù)發(fā)送設(shè)備與一個數(shù)據(jù)接收設(shè)備)之間的跳頻通信,常用的跳頻技術(shù)包括基于主從機時間同步跳頻技術(shù)、無需主從機時間同步跳頻技術(shù)。一對一的跳頻通信易于實現(xiàn)。
但是在實際應(yīng)用中,更普遍的應(yīng)用場景是一對多的通信設(shè)備(即多個數(shù)據(jù)發(fā)送設(shè)備與一個數(shù)據(jù)接收設(shè)備)之間的通信,由于wifi、藍牙、zigbee和射頻通信等同時工作在2.4g頻段,多機射頻通信之間干擾比較嚴重,因此急需一種能夠?qū)崿F(xiàn)一對多的通信設(shè)備之間的跳頻通信技術(shù),但是目前并沒有公開相關(guān)的技術(shù)方案。
技術(shù)實現(xiàn)要素:
鑒于上述問題,本發(fā)明提供一種跳頻通信方法及系統(tǒng),以實現(xiàn)多個通信設(shè)備之間的跳頻通信。
本發(fā)明實施例,一方面,提供一種跳頻通信方法,該方法中,一個主設(shè)備對應(yīng)多個從設(shè)備,且主設(shè)備與從設(shè)備的初始工作頻道和初始通信地址相同,方法包括:
主設(shè)備通過初始工作頻道、初始通信地址與從設(shè)備進行通信以識別從設(shè)備,并在成功識別從設(shè)備時為所述從設(shè)備分配相應(yīng)的通信地址和通信頻道;
主設(shè)備按照輪詢機制輪詢各從設(shè)備,在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信;若主設(shè)備與被輪詢從設(shè)備通信失敗,則所述被輪詢從設(shè)備按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道。
本發(fā)明實施例,另一方面,提供一種跳頻通信系統(tǒng),該系統(tǒng)包括一個主設(shè)備和與該主設(shè)備對應(yīng)的多個從設(shè)備,主設(shè)備與從設(shè)備的初始工作頻道和初始通信地址相同,其中:
主設(shè)備,用于通過初始工作頻道、初始通信地址與從設(shè)備進行通信以識別從設(shè)備,并在成功識別從設(shè)備時為所述從設(shè)備分配相應(yīng)的通信地址和通信頻道;以及,按照輪詢機制輪詢各從設(shè)備,在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信;
從設(shè)備,用于在對應(yīng)的工作頻道上與所述主設(shè)備進行通信,以及,在與主設(shè)備通信失敗時,按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道。
本發(fā)明實施例提供的跳頻通信方法,一方面,主設(shè)備能夠動態(tài)識別出接入主設(shè)備的從設(shè)備,以實現(xiàn)最大程度的與多個從設(shè)備進行通信;另一方面,主設(shè)備為多個從設(shè)備分配不同的通信地址與相同的通信頻道,通過輪詢機制實現(xiàn)在一個時間段內(nèi)僅與其中一個從設(shè)備進行通信,并且能夠確保在該時間段內(nèi),主設(shè)備能夠跳頻到從設(shè)備對應(yīng)的工作頻道上與從設(shè)備進行通信,并在通信失敗時,從設(shè)備按照預(yù)置的跳頻列表進行跳頻,從而能夠?qū)崿F(xiàn)多個通信設(shè)備在互不干擾的情況下實現(xiàn)跳頻通信。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。
圖1為本發(fā)明實施例中跳頻通信系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例中跳頻通信方法的流程圖之一;
圖3為本發(fā)明實施例中主設(shè)備輪詢從設(shè)備的示意圖;
圖4為本發(fā)明實施例中實現(xiàn)步驟201的方法流程圖;
圖5為本發(fā)明實施例中跳頻通信方法的流程圖之二;
圖6為本發(fā)明實施例中跳頻通信方法的流程圖之三;
圖7為本發(fā)明實施例中跳頻通信方法的流程圖之四;
圖8為本發(fā)明實施例中跳頻通信方法的流程圖之五;
圖9為本發(fā)明實施例中跳頻通信方法的流程圖之六;
圖10為本發(fā)明實施例中跳頻通信方法的流程圖之七;
圖11為本發(fā)明實施例中跳頻通信方法的流程圖之八;
圖12為本發(fā)明實施例中主設(shè)備與從設(shè)備的結(jié)構(gòu)示意圖之一;
圖13為本發(fā)明實施例中主設(shè)備與從設(shè)備的結(jié)構(gòu)示意圖之二。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供的跳頻通信方法適用于一個主設(shè)備對應(yīng)多各從設(shè)備的系統(tǒng),該系統(tǒng)的結(jié)構(gòu)如圖1所示。本發(fā)明實施例中,可以將接收端設(shè)備作為主設(shè)備,將發(fā)送端設(shè)備作為從設(shè)備,在主設(shè)備與從設(shè)備出廠前,為主設(shè)備與從設(shè)備設(shè)置相同的初始工作頻道和初始通信地址。主設(shè)備將各從設(shè)備發(fā)送的數(shù)據(jù)打包發(fā)送給服務(wù)器,該種一個主設(shè)備對應(yīng)多個從設(shè)備的系統(tǒng),相對于現(xiàn)有技術(shù)的一對一通信系統(tǒng)而言,不僅能夠減少接收端設(shè)備的數(shù)量、降低成本,而且減少服務(wù)器為接收端設(shè)備配置的接口數(shù)量,降低服務(wù)器的維護成本和負荷。
實施例一
參見圖2,為本發(fā)明實施例提供的跳頻通信方法的流程圖,該方法包括:
步驟201、主設(shè)備通過初始工作頻道、初始通信地址與從設(shè)備進行通信以識別從設(shè)備。
步驟202、主設(shè)備在成功識別從設(shè)備時為所述從設(shè)備分配相應(yīng)的通信地址和通信頻道。
本發(fā)明實施例中,主設(shè)備、各從設(shè)備的通信頻道相同,該通信頻道包含多個頻道,例如幾十個、上百個頻道等。
步驟203、主設(shè)備按照輪詢機制輪詢各從設(shè)備,在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信;若主設(shè)備與被輪詢從設(shè)備通信失敗,則執(zhí)行步驟204。
本發(fā)明實施例中,將主設(shè)備當前輪詢到的從設(shè)備稱為被輪詢從設(shè)備。
本發(fā)明實施例中,在主設(shè)備中存儲有一張輪詢列表,在該輪詢列表中記載有被主設(shè)備識別成功的從設(shè)備,以及從設(shè)備被主設(shè)備輪詢的先后順序(該輪詢的先后順序可以為從設(shè)備被識別的先后順序),主設(shè)備按照所述輪詢列表中的先后順序依次輪詢各從設(shè)備。當主設(shè)備連續(xù)輪詢多次某一從設(shè)備均通信失敗時,則主設(shè)備確認該從設(shè)備去電,則將該從設(shè)備從所述輪詢列表中刪除;當主設(shè)備識別成功某一從設(shè)備時,將該從設(shè)備增加到所述輪詢列表中,并將新增加的從設(shè)備設(shè)置為最后輪詢的從設(shè)備。
優(yōu)選地,本發(fā)明實施例中,主設(shè)備根據(jù)從設(shè)備被識別的先后順序,為從設(shè)備編號,例如編號為1、2、3、…、n,被識別越早的從設(shè)備其對應(yīng)的編號取值越小。主設(shè)備可按照編號從小到大的順序依次輪詢相應(yīng)的從設(shè)備,每輪詢到一個從設(shè)備時,確定該被輪詢從設(shè)備的工作頻道,并在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信。主設(shè)備與各從設(shè)備進行一次輪詢的通信時長可以相同也可以不相同。例如,主設(shè)備與各從設(shè)備進行一次輪詢的通信時長相同,均為δt,則主設(shè)備輪詢每個從設(shè)備的時間間隔(即前一次輪詢和下一次輪詢的時間間隔,后續(xù)稱為一個輪詢周期)為t=n×δt。例如,主設(shè)備與各從設(shè)備進行一次輪詢的通信時長不相同,將主設(shè)備與第i個從設(shè)備的通信時長記為δti,則主設(shè)備輪詢每個從設(shè)備的時間間隔為
步驟204、被輪詢從設(shè)備按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道。
本發(fā)明實施例中,在主設(shè)備和各從設(shè)備中存儲有統(tǒng)一的一張?zhí)l列表,該跳頻列表中包含從設(shè)備的通信頻道以及各通信頻道之間的跳頻順序。該跳頻列表可以是主設(shè)備與從設(shè)備在出廠前預(yù)先配置好的;也可以是在主設(shè)備中配置好,在主設(shè)備成功識別從設(shè)備之后,由主設(shè)備通過初始工作頻道、初始通信地址將該跳頻列表發(fā)送給從設(shè)備或者由主設(shè)備通過從設(shè)備對應(yīng)的工作頻道和通信地址將該跳頻列表發(fā)送給從設(shè)備,本申請不做嚴格限定。
優(yōu)選地,前述步驟201,具體可通過如圖4所示的流程實現(xiàn):
步驟2011、主設(shè)備通過所述初始工作頻道、初始通信地址發(fā)送數(shù)據(jù)包。
主設(shè)備按照預(yù)置的時間周期執(zhí)行所述步驟2011。
步驟2012、從設(shè)備通過所述初始工作頻道、初始通信地址接收所述數(shù)據(jù)包,并在接收到所述數(shù)據(jù)包時向所述主設(shè)備發(fā)送應(yīng)答信息(即ack)。
從設(shè)備在上電后即執(zhí)行步驟2012。
本發(fā)明實施例中,從設(shè)備通過所述初始工作頻道、初始通信地址向所述主設(shè)備發(fā)送應(yīng)答信息。
步驟2013、主設(shè)備在接收到所述應(yīng)答信息時,確定成功識別所述從設(shè)備。
本發(fā)明實施例中,主設(shè)備通過初始工作頻道和初始通信地址接收從設(shè)備發(fā)送的應(yīng)答信息。
優(yōu)選地,本發(fā)明實施例中為避免多個從設(shè)備同時上電,影響主設(shè)備識別從設(shè)備的成功率,本發(fā)明實施例中,可通過計算機或人工控制多個從設(shè)備錯開上電時間,以確保主設(shè)備在同一時刻僅識別一個從設(shè)備,主設(shè)備通過前述步驟201識別每一個從設(shè)備。
前述步驟201不僅限于通過前述圖3所示的流程實現(xiàn),本領(lǐng)域技術(shù)人員基于前述圖3所示的技術(shù)方案的啟示,還可以通過以下方式實現(xiàn):從設(shè)備通過所述初始工作頻道、初始通信地址發(fā)送數(shù)據(jù)包;主設(shè)備通過所述初始工作頻道、初始通信地址接收所述數(shù)據(jù)包,并在接收到所述數(shù)據(jù)包時確定成功識別所述從設(shè)備。本申請不做嚴格限定。
本發(fā)明實施例中,前述步驟203中,在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信具體可通過圖5所示流程實現(xiàn),包括:
步驟2031、主設(shè)備通過所述被輪詢從設(shè)備對應(yīng)的工作頻道和通信地址,向所述被輪詢從設(shè)備發(fā)送用于詢問是否有數(shù)據(jù)發(fā)送給主設(shè)備的詢問信息;
步驟2032、所述被輪詢從設(shè)備在接收到所述詢問信息時,將待發(fā)送數(shù)據(jù)通過該被輪詢從設(shè)備對應(yīng)的工作頻道和通信地址發(fā)送給所述主設(shè)備。
本發(fā)明實施例中,前述步驟204中,被輪詢從設(shè)備可以是在確定與主設(shè)備通信失敗時按照跳頻列表跳頻到下一工作頻道,例如,被輪詢從設(shè)備在接收到主設(shè)備發(fā)送的詢問信息時開始計時,當計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息則確定與主設(shè)備通信失敗,此時被輪詢從設(shè)備按照跳頻列表跳頻到下一工作頻道。
主設(shè)備為確保從設(shè)備跳頻后仍然能夠成功與從設(shè)備通信成功,本發(fā)明實施例提供以下多種方案:
方案1
在如圖5所示的方法流程的基礎(chǔ)上,在步驟2031之后還包括步驟2033,若主設(shè)備與被輪詢從設(shè)備通信失敗還包括步驟205,如圖6所示:
步驟2033、被輪詢從設(shè)備在接收到主設(shè)備發(fā)送的詢問信息時開始計時。此時前述步驟204具體實現(xiàn)如下:被輪詢從設(shè)備在在計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息,則按照所述跳頻列表跳頻到下一工作頻道,并清零計時。
步驟205、主設(shè)備按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令。
即通過步驟205處理之后,可將被輪詢從設(shè)備、主設(shè)備以及其他從設(shè)備的工作頻道保持一致。
在方案1中,步驟203中,主設(shè)備將該主設(shè)備對應(yīng)的工作頻道確定為被輪詢從設(shè)備對應(yīng)的工作頻道。
方案2
在主設(shè)備中存儲各從設(shè)備對應(yīng)的工作頻道,在前述圖5所示的基礎(chǔ)上,若主設(shè)備與被輪詢從設(shè)備通信失敗還包括步驟206,如圖7所示:
步驟206、主設(shè)備將所述跳頻列表中的下一工作頻道更新為所述被輪詢從設(shè)備對應(yīng)的工作頻道。
方案2中,在步驟203中,主設(shè)備從存儲的各從設(shè)備對應(yīng)的工作頻道中查找被輪詢從設(shè)備對應(yīng)的工作頻道,若被輪詢從設(shè)備對應(yīng)的工作頻道與主設(shè)備的工作頻道不一致,則主設(shè)備跳頻到被輪詢從設(shè)備對應(yīng)的工作頻道,在該工作頻道上與被輪詢從設(shè)備進行通信。在與被輪詢從設(shè)備通信結(jié)束后,主設(shè)備在跳回到上一工作頻道。
方案3
在主設(shè)備中存儲各從設(shè)備對應(yīng)的工作頻道,在前述圖5所示的基礎(chǔ)上,在步驟2031之后還包括步驟2033,若主設(shè)備與被輪詢從設(shè)備通信失敗還包括步驟206、步驟207、步驟208,如圖8所示:
步驟2033、被輪詢從設(shè)備在接收到主設(shè)備發(fā)送的詢問信息時開始計時。此時前述步驟204具體實現(xiàn)如下:被輪詢從設(shè)備在在計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息,則按照所述跳頻列表跳頻到下一工作頻道,并清零計時。
步驟206、主設(shè)備將所述跳頻列表中的下一工作頻道更新為所述被輪詢從設(shè)備對應(yīng)的工作頻道。
步驟207、主設(shè)備判斷當前通信類型是否為高頻通信,若是則執(zhí)行步驟208,若否則不作處理。
步驟208、主設(shè)備按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令。
方案3中,當前通信類型為高頻通信時,若僅改變部分從設(shè)備的工作頻道,則主設(shè)備需要頻繁的在不同工作頻道之間進行切換,功耗較高、時延長,因此,本發(fā)明實施例將主設(shè)備、從設(shè)備進行統(tǒng)一跳頻到同一工作頻道,以實現(xiàn)主設(shè)備在同一工作頻道與各從設(shè)備進行通信,避免頻繁切換工作頻道。
方案3中,在步驟203中,主設(shè)備從存儲的各從設(shè)備對應(yīng)的工作頻道中查找被輪詢從設(shè)備對應(yīng)的工作頻道,若被輪詢從設(shè)備對應(yīng)的工作頻道與主設(shè)備的工作頻道不一致,則主設(shè)備跳頻到被輪詢從設(shè)備對應(yīng)的工作頻道,在該工作頻道上與被輪詢從設(shè)備進行通信。在與被輪詢從設(shè)備通信結(jié)束后,主設(shè)備在跳回到上一工作頻道。
方案4
在主設(shè)備中存儲各從設(shè)備對應(yīng)的工作頻道,在前述圖5所示的基礎(chǔ)上,在步驟2031之后還包括步驟2033,若主設(shè)備與被輪詢從設(shè)備通信失敗還包括步驟206、步驟208,如圖9所示:
步驟2033、被輪詢從設(shè)備在接收到主設(shè)備發(fā)送的詢問信息時開始計時。此時前述步驟204具體實現(xiàn)如下:被輪詢從設(shè)備在在計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息,則按照所述跳頻列表跳頻到下一工作頻道,并清零計時。
步驟206、主設(shè)備將所述跳頻列表中的下一工作頻道更新為所述被輪詢從設(shè)備對應(yīng)的工作頻道。
步驟208、主設(shè)備按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令。
方案4相對于方案3而言,不僅能夠?qū)崿F(xiàn)主設(shè)備與各從設(shè)備維持在同一工作頻道,而且無需在主設(shè)備存儲各從設(shè)備的工作頻道,能夠會降低主設(shè)備的信息維護成本。
除了前述方案1~方案4的方案,本領(lǐng)域技術(shù)人員還可以擴展其他的可替代技術(shù)方案,例如:主設(shè)備存儲有各從設(shè)備對應(yīng)的工作頻道,當輪詢一遍所有的從設(shè)備之后,若有預(yù)置數(shù)量的從設(shè)備或預(yù)置比例的從設(shè)備與主設(shè)備通信失敗,則確定主設(shè)備需要跳頻,此時主設(shè)備按照預(yù)置的跳頻列表跳頻到下一工作頻道,并向通信成功的從設(shè)備發(fā)送跳頻指令,通信失敗的從設(shè)備按照前述方案1~方案4中的任意一種跳頻方式跳頻到下一工作頻道,從而確保在下一輪的輪詢時,主設(shè)備與各從設(shè)備均工作在相同的工作頻道。
優(yōu)選地,為確保新識別的從設(shè)備與其他從設(shè)備的工作頻道保持一致,以降低對新增從設(shè)備的工作頻道的維護工作,本發(fā)明實施例,在前述圖2~圖7所示的方法流程的步驟202與步驟203之間還包括步驟210~步驟211,如圖10所示,在圖2所示的方法流程中的步驟202與步驟203之間包括步驟210~步驟211:
步驟210、主設(shè)備通過所述初始工作頻道、初始通信地址向所述從設(shè)備發(fā)送攜帶有其他從設(shè)備的工作頻道的配置信息。
步驟211、從設(shè)備在接收到所述配置信息時,將配置信息中的工作頻道設(shè)置為所述從設(shè)備對應(yīng)的工作頻道。
優(yōu)選地,為進一步確定新增從設(shè)備的通信地址的有效性,本發(fā)明實施例在前述步驟211與步驟203之間還可包括步驟212,如圖11所示:
步驟212、從設(shè)備與主設(shè)備通過所述從設(shè)備對應(yīng)的工作頻道和通信地址進行通信測試,在測試成功時,所述從設(shè)備顯示測試成功指示信息和/或所述主設(shè)備顯示測試成功指示信息。
成功指示信息可以是從設(shè)備/主設(shè)備的指示燈綠燈閃爍、聲音提示、文字提示、蜂鳴等,本申請不做嚴格限定。
為進一步對本發(fā)明實施例提供的跳頻通信的技術(shù)方案進行詳細的描述,以下以一具體的實例進行描述。
本發(fā)明實施例中,主設(shè)備與從設(shè)備的硬件結(jié)構(gòu)可以相同也可以不相同,例如,主設(shè)備與從設(shè)備的硬件結(jié)構(gòu)可以如圖12所示,包括低功耗arm(advancedriscmachines,微處理器)、rf(radiofreqency,射頻)處理器和ant(antennahardwareinterface,天線硬件接口)。
低功耗arm通過spi(serialperipheralinterface,串行外設(shè)接口)總線與rf處理器相連接,由arm將待發(fā)送數(shù)據(jù)通過spi總線寫入rf處理器的發(fā)送緩沖寄存器,再由rf處理器將待發(fā)送數(shù)據(jù)通過ant向外發(fā)射;同時ant也過濾并接收來自于其它ant發(fā)射的數(shù)據(jù),并存儲在rf處理器的接收緩沖寄存器中,再通過spi總線將接收緩沖寄存器中的數(shù)據(jù)傳輸給arm。
對于主設(shè)備中的rf處理器相比從設(shè)備中的rf處理器,還需要進一步將各從設(shè)備發(fā)送的多路數(shù)據(jù)進行處理后通過usb(universalserialbus,通用串行總線)上傳到服務(wù)器。
在另一個實例中,本發(fā)明實施例的主設(shè)備與從設(shè)備的結(jié)構(gòu)還可如圖13所示,該主設(shè)備和從設(shè)備包含nrf24l01芯片,該nrf24l01芯片內(nèi)部具有低功耗的51內(nèi)核可以充當?shù)凸腶rm的作用,同時該nrf24l01芯片還包含射頻模塊,通過該射頻模塊即可完成射頻傳輸功能。本發(fā)明實施例為區(qū)別主設(shè)備與從設(shè)備,將主設(shè)備的nrf24l01芯片稱為nrf24lu1芯片,將從設(shè)備的nrf24l01芯片稱為nrf24le1。
nrf24l01芯片的數(shù)據(jù)包格式如下表1所示:
表1中,preamble為報頭,address字段為通信地址,packetcontrolfield字段包含數(shù)據(jù)包長度、重復(fù)收發(fā)標識及ack,payload字段為數(shù)據(jù)長度,crc字段為校驗碼。射頻模塊通過address識別有效信息,當crc校驗無誤后從payload數(shù)據(jù)中讀取指定長度數(shù)據(jù)。
nrf24le1芯片工作在prx(主接收)模式,通常工作在待機模式,實時檢測在工作頻道和通信地址上接收到的信息,若所述信息由nrf24lu1發(fā)送,且信息有效時,將待發(fā)送數(shù)據(jù)寫入數(shù)據(jù)發(fā)送緩沖區(qū),并在ack時將數(shù)據(jù)發(fā)送給nrf24lu1。
nrf24lu1工作在ptx(主發(fā)送)模式,定時向被輪詢從設(shè)備對應(yīng)的通信地址和工作頻道發(fā)送信息,在將信息發(fā)送之后切換為接收模式,在所述被輪詢從設(shè)備對應(yīng)的通信地址和工作頻道接收ack和數(shù)據(jù),如果接收不到ack則切換為發(fā)送模式,并在指定時間間隔后重新發(fā)送信息,發(fā)送結(jié)束后切換為接收模式,依此重復(fù)直到達到預(yù)置的重發(fā)次數(shù),再由nrf24lu1芯片內(nèi)部的51內(nèi)核對其進行邏輯處理。如果接收成功還將產(chǎn)生中斷,51內(nèi)核對中斷進行處理的同時讀取接收數(shù)據(jù)緩沖區(qū),把接收到數(shù)據(jù)進行相應(yīng)處理,或者構(gòu)建符合usb協(xié)議的數(shù)據(jù)包,通過usb總線把數(shù)據(jù)發(fā)送到服務(wù)器。
nrf24lu1芯片可以向多達6個nrf24le1芯片發(fā)送數(shù)據(jù),該6個nrf24le1芯片對應(yīng)的通信地址不同,并且在同一時刻,nrf24lu1只能向某一nrf24le1芯片的通信地址地址發(fā)送數(shù)據(jù),并在該nrf24le1芯片的通信地址上接收ack和數(shù)據(jù)。
為確保nrf24lu1芯片能夠動態(tài)識別出nrf24le1芯片,在nrf24lu1芯片與nrf24le1芯片出廠前設(shè)置相同的初始工作頻道和初始通信地址。
在nrf24lu1芯片上電后在初始工作頻道發(fā)送數(shù)據(jù)包,nrf24le1芯片在上電后在初始工作頻道上過濾來自于nrf24lu1上的數(shù)據(jù)包。nrf24lu1芯片與某一nrf24le1芯片在初始工作頻道首次通信成功后,nrf24lu1芯片為nrf24le1芯片分配通信頻道c和通信地址a,并通過初始工作頻道將通信頻道c和通信地址a、其他從設(shè)備的工作頻道、跳頻列表發(fā)送給nrf24le1芯片,并且nrf24lu1芯片為該nrf24le1芯片編號為n,并將識別成功的nrf24le1芯片總數(shù)量累加1。
nrf24le1芯片按照分配的通信頻道和通信地址設(shè)置自身的通信頻道和通信地址,并將工作頻道設(shè)置為與其他從設(shè)備的工作頻道相同。
nrf24lu1芯片與nrf24le1芯片在nrf24le1芯片對應(yīng)的通信地址和工作頻道進行第三次通信(即通信測試),并在第三次通信成功時,確定nrf24le1芯片對應(yīng)的工作頻道和通信地址有效;由nrf24lu1芯片顯示成功指示信息(例如指示燈綠色閃爍)或/和由nrf24le1芯片顯示成功指示信息。第三次通信,可以由nrf24lu1芯片在nrf24le1芯片對應(yīng)的通信地址和工作頻道向nrf24le1芯片發(fā)送數(shù)據(jù)包,并在接收到nrf24le1芯片反饋的ack時確定通信成功;或者,可以由nrf24le1芯片在對應(yīng)的工作頻道和通信地址向nrf24lu1芯片發(fā)送數(shù)據(jù)包,并在接收到nrf24lu1芯片反饋的ack時確定通信成功。
若nrf24lu1芯片與nrf24le1芯片在該nrf24le1芯片對應(yīng)的工作頻道和通信地址進行第三次通信失敗時,nrf24lu1芯片重新為該nrf24le1芯片分配新的通信地址,并基于工作頻道和新的通信地址重復(fù)前述第三次通信測試,依次類推直到得到有效的通信地址為止。
nrf24lu1芯片在保持與已經(jīng)被識別成功的各nrf24le1芯片通信的同時,還要留出時間在初始工作頻道和初始通信地址識別新的nrf24le1芯片。
在動態(tài)識別nrf24le1芯片的過程中,為確保各nrf24le1芯片依次接入系統(tǒng),即確保多個nrf24le1芯片不能同時上電,需要各自有個時間差,以避免多個nrf24le1芯片同時上電影響識別效率。
由于主設(shè)備與從設(shè)備構(gòu)成的系統(tǒng)所處環(huán)境受干擾源的影響具有不確定性,且每個從設(shè)備所受的干擾源也不確定,因此,干擾源對主設(shè)備與各從設(shè)備進行通信的干擾影響有所不同。當主設(shè)備輪詢一遍從設(shè)備之后,有預(yù)置數(shù)量的從設(shè)備或預(yù)置比例的從設(shè)備通信失敗時,確定需要跳頻,此時控制所有從設(shè)備按照跳頻列表跳頻到下一工作頻道,各從設(shè)備對應(yīng)的通信地址不變。若長時間存在同一個從設(shè)備通信失敗,其他從設(shè)備通信成功,則僅由該從設(shè)備按照跳頻列表跳頻到下一工作頻道,其他從設(shè)備不跳頻,當主設(shè)備輪詢到該從設(shè)備時,主設(shè)備跳頻到下一工作頻道與該從設(shè)備進行通信,當與該從設(shè)備完成通信后,主設(shè)備再跳回到上一工作頻道與其他從設(shè)備進行通信,具體地方案可參見前述方案1~方案4,在此不再贅述。
實施例二
基于前述實施例一提供的跳頻通信方法的相同構(gòu)思,本發(fā)明實施例二提供一種跳頻通信系統(tǒng),該系統(tǒng)的結(jié)構(gòu)如圖1所示,包括一個主設(shè)備和該主設(shè)備對應(yīng)的多個從設(shè)備,其中:
主設(shè)備,用于通過初始工作頻道、初始通信地址與從設(shè)備進行通信以識別從設(shè)備,并在成功識別從設(shè)備時為所述從設(shè)備分配相應(yīng)的通信地址和通信頻道;以及,按照輪詢機制輪詢各從設(shè)備,在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信;
從設(shè)備,用于在對應(yīng)的工作頻道上與所述主設(shè)備進行通信,以及,在與主設(shè)備通信失敗時,按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道。
在一個示例中,主設(shè)備通過初始工作頻道、初始通信地址與從設(shè)備進行通信以識別從設(shè)備,具體用于:主設(shè)備通過所述初始工作頻道、初始通信地址發(fā)送數(shù)據(jù)包;并通過所述初始工作頻道、初始通信地址接收到所述從設(shè)備發(fā)送的應(yīng)答信息時,確定成功識別所述從設(shè)備。
在一個示例中,主設(shè)備在被輪詢從設(shè)備對應(yīng)的工作頻道上與所述被輪詢從設(shè)備進行通信,具體用于:主設(shè)備通過被輪詢從設(shè)備對應(yīng)的工作頻道和通信地址,向所述被輪詢從設(shè)備發(fā)送用于詢問是否有數(shù)據(jù)發(fā)送給主設(shè)備的詢問信息;以及通過所述工作頻道和所述通信地址從所述被輪詢從設(shè)備接收數(shù)據(jù);
從設(shè)備在對應(yīng)的工作頻道上與所述主設(shè)備進行通信,具體用于:從設(shè)備通過該從設(shè)備對應(yīng)的工作頻道和通信地址接收到主設(shè)備發(fā)送的詢問信息時,通過所述工作頻道和所述通信地址向所述主設(shè)備發(fā)送待發(fā)送數(shù)據(jù)。
在一個示例中,所述從設(shè)備進一步用于:在接收到主設(shè)備發(fā)送的詢問信息時開始計時;此時,從設(shè)備按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道,具體用于:在計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息,則按照所述跳頻列表跳頻到下一工作頻道,并清零計時;
主設(shè)備進一步用于,在于被輪詢從設(shè)備通信失敗時,按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令。
在一個示例中,所述主設(shè)備進一步用于:存儲各從設(shè)備對應(yīng)的工作頻道;以及,在與被輪詢從設(shè)備通信失敗時,將所述跳頻列表中的下一工作頻道更新為所述被輪詢從設(shè)備對應(yīng)的工作頻道。
在一個示例中,所述從設(shè)備進一步用于:在接收到主設(shè)備發(fā)送的詢問信息時開始計時;從設(shè)備按照預(yù)置的統(tǒng)一跳頻列表跳頻到下一工作頻道,具體用于:在計時時長達到一個輪詢周期時還未接收到主設(shè)備發(fā)送的下一個詢問信息,則按照所述跳頻列表跳頻到下一工作頻道,并清零計時;
所述主設(shè)備進一步用于:在與被輪詢從設(shè)備通信失敗時,判斷當前通信類型為高頻通信時則按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令;或者,主設(shè)備按照所述跳頻列表跳頻到下一工作頻道,并向其他從設(shè)備發(fā)送用于指示按照所述跳頻列表跳頻到下一工作頻道的跳頻指令。
在一個示例中,主設(shè)備進一步用于:為所述從設(shè)備分配相應(yīng)的通信地址和通信頻道之后,通過所述初始工作頻道、初始通信地址向所述從設(shè)備發(fā)送攜帶有其他從設(shè)備的工作頻道的配置信息;
從設(shè)備進一步用于:在接收到所述配置信息時,將配置信息中的工作頻道設(shè)置為所述從設(shè)備對應(yīng)的工作頻道。
本發(fā)明實施例二中的主設(shè)備與從設(shè)備的結(jié)構(gòu)可以如圖12所示,也可以如圖13所示,具體描述可參見實施例一的相關(guān)內(nèi)容,在此不再贅述。
本發(fā)明實施例提供的跳頻通信方法,一方面,主設(shè)備能夠動態(tài)識別出接入主設(shè)備的從設(shè)備,以實現(xiàn)最大程度的與多個從設(shè)備進行通信;另一方面,主設(shè)備為多個從設(shè)備分配不同的通信地址與相同的通信頻道,通過輪詢機制實現(xiàn)在一個時間段內(nèi)僅與其中一個從設(shè)備進行通信,并且能夠確保在該時間段內(nèi),主設(shè)備能夠跳頻到從設(shè)備對應(yīng)的工作頻道上與從設(shè)備進行通信,并在通信失敗時,從設(shè)備按照預(yù)置的跳頻列表進行跳頻,從而能夠?qū)崿F(xiàn)多個通信設(shè)備在互不干擾的情況下實現(xiàn)跳頻通信。
以上是本發(fā)明的核心思想,為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例中的技術(shù)方案,并使本發(fā)明實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實施例中技術(shù)方案作進一步詳細的說明。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。