ANT無線通訊技術(4) 配對實例

瞭解了有關通道配置的概念以後,接下來咱們進行ANT配對的學習。網絡

 

1、配對學習

      在兩個須要通訊的節點間創建聯繫的過程,叫作配對(pairing)。配對的具體操做包括:從機搜索主機通道並同步;從機獲取主機通道ID;從機設置自身通道參數與主機匹配,而後創建ANT通道開始通訊。「獲取主機通道ID」能夠視爲配對成功的標誌。獲取的通道ID能夠存入存儲器屢次使用,所以配對能夠是永久的,半永久,或者暫時的。ANT提供了多種功能,以知足不一樣的配對要求,但並不是全部模塊都能支持這些功能,具體狀況能夠參考模塊手冊。spa

    • 配對位(pairing bit)
    • 包含/排除列表(in/exclusion list)
    • 臨近搜索(proximity search)
    • 搜索列表(search list)

 另:後臺搜索(background scanning)見下文搜索模式設計

(1)配對位blog

  前面說到過,設備類型的8bit中的最高1位爲配對位。主設備設置配對位,從設備將會優先配對之。當從設備不知道完整的主設備通道ID,也就是使用至少一個通配的通道參數時,使用配對位功能將避免配對到錯誤的主設備。舉個應用中的例子,在心率表配對心率帶的時候,常見的狀況是:小明戴上心率帶,而後操做心率表進行配對。根據小明的這個操做習慣,咱們能夠設置心率帶在開啓的前10s置位配對位,10s後自動復位配對位,這樣一來,只要附近周邊其餘用戶不在10s內開啓另外一個心率帶,小明的心率表就可以很快在10s內配對到本身的心率帶了。接口

 (2)包含/排除列表事件

  顧名思義的好功能。設定的字段必須是一個完整的通道ID配置,且最多支持4個條目。內存

 (3)臨近搜索開發

  根據從設備掃描到的主設備RSSI來進行配對,只配對指定範圍內的主設備。文檔

 (4)搜索列表

  獲取全部搜索到的設備號,由MCU用戶辨識並決定配對到哪個。

另:後臺搜索提供了一種至關給力的搜索功能,具體見下文。

  

       以上4種功能相互組合搭配,就能夠實現多種多樣的配對功能了。實際開發中,應當根據需求狀況,謹慎選擇。聽起來還能夠!靈活的配對方式,也是ANT比BLE和Zigbee優點的地方,畢竟他從出生起就是註定要在CE領域混的!視用戶需求爲上帝,打造極致體驗,這樣用戶纔會買你的帳!

我總結了設計中常見的幾種須要考慮的狀況,若有不足懇請各位指出:

系統對所處的環境(多用戶?仍是單用戶?)
設備的供能狀況(能量受限的主機?仍是能量受限的節點?)
設備的配對頻次(公有設備需頻繁配對,私有設備僅首次配對)
人機接口(高級接口完成高級功能)

 

   

補充介紹關於搜索模式的幾個概念:

多通道的ANT模塊大多支持兩種搜索模式,低優先級搜索(low priority search),高優先級搜索(high priority search)。優先級代表了其對其餘通道的影響程度。

  (1)LPS:一個通道進行LPS的時候,對其餘已開啓通道的通訊不會有影響,並且功耗和HPS相近,但搜索效率會下降。

  (2)HPS:一個通道進行HPS,其餘已開啓通道會受影響出現高達50%的丟包甚至徹底中斷。但保證了最快搜索到通道效率。

  (3)搜索超時:LPS超時後自動進入HPS。LPS和HPS的超時均可以手動設置,默認LPS~5s,HPS~25s。HPS超時則通道搜索所有結束。若想僅使用LPS,可設置LPS超時爲無限長,用HPS超時來控制結束。

  (4)後臺搜索:後臺搜索(通道)是搜索模式中一種特殊的通道類型。做爲一個僅用於搜索的通道,它搜索並非爲了讓本身同步,而是將搜到的通道ID以及主機信息傳遞給MCU,這樣MCU可使用獲得的參數新建另外一個普統統道。這樣,也就完成了與那個通道的同步,以及和對應設備的配對過程。進行後臺搜索時應設置爲只使用LPS。

 

2、配對實例

      好了,如今咱們用一個例子來說解ANT網絡配對組網的全過程。

  拋開具體的應用背景,假設咱們有兩個性質不一樣的信號須要檢測,咱們設計了兩個ANT節點,分別鏈接了兩種對應的傳感器。而後,咱們須要第三個節點接收數據並送顯。組網結構以下圖所示。

                                                     

 

                                              網絡結構圖

 

      A和C是傳感節點,B是中心匯聚節點。A和C檢測信號,並將採集的數據發送,B接收數據並作進一步處理。箭頭方向標明的數據流通的方向。如今約定一下該網絡的要求:

  • A、C爲主節點,B爲從節點。
  • A使用廣播數據,C使用應答數據。
  • 網絡規定使用RF頻率2488MHz,規定通道週期爲16384(2Hz)。
  • 使用默認的ANT公共網絡。網絡號0,網絡key0。
  • 該系統用於多用戶環境中。即範圍內存在多個相似系統。
  • A、B、C均採用電池供電。
  • 系統初始化前須要先配對。B只知道AC的設備類型,不知道AC的設備ID。
  • B節點的人機接口包括:顯示屏、按鍵。

 

      綜上所屬,首先咱們能夠肯定,這是一個典型的星型拓撲網絡。兩個子節點與中心節點通訊,子節點數量並非不少,使用兩個獨立通道分別與兩個子節點通訊是最好的選擇。A、C是數據採集端,B接收端,所以AC定義爲Master,B是Slaver,這都是沒有問題的。第二個,咱們已經知道,單向通道中只能使用廣播消息類型,雙向通道可使用廣播、應答、突發所有三種消息類型。A使用廣播數據,AB之間只能是單向通道(unidriectional),B不用發送信息給A;而C使用的是應答數據,每個包都要求B返回一個確認數據,所以CB間創建的是雙向通道(bidriectional)。而後呢,規定了RF頻率和通道週期以及使用公共網絡,那麼這些參數能夠直接設置了。AC設備類型不一樣,可是B知道要配對的AC的設備類型,不知道AC的設備ID,這樣在B上配對時,設備類型能夠直接指定,設備ID應當用0來通配。最後一個,前面提到該系統用於多用戶環境,多用戶環境中,也就是說在相同的時間,空間中會有一樣的用戶行爲發生比方說同時開機,配對。開機倒無所謂,如過配對過了,從機能記憶儲存前次的配對信息,當再次開機的時候直接載入就能夠了。可是若是是沒有配對過,首次使用必需要進行配對的。兩個用戶兩套系統,同時開機配對,相互配錯了怎麼辦?對不對。那麼,爲了不多人同時段配對出現問題,必定要考慮配對功能的設計。比較完美的方案是採用[從機後臺掃描]+[從機鄰近搜索]+[主機限時配對位],這樣不只能一次性完成多個通道的搜索和配對,也較好地避免了配對混淆。甚至,我還能夠由於B節點有高級的人機接口,我用[搜索列表]來作,放到屏幕上讓用戶來選擇。但這樣實現起來成本也很高,畢竟ABC都是電池供電,讓用戶去操做的話,不是說用戶辨識反應慢,而是在於整個配對流程被拉地太長,太繁瑣,每一個環節一點點延時,都積累起來就很恐怖了。要知道ANT模塊搜索通道時候的電流典型值是3mA啊!電池確定經不起幾回搜索的。因此咱們並不須要貪大求全一味追求高逼格功能,能簡化的步驟,能自動處理的問題,就儘可能避免交給用戶。這裏咱們最讚的方案就用[從機後臺掃描]+[主機限時配對位]就ok了。另外提醒用戶儘可能「先配對,再佈置」,雖然不用到[鄰近搜索]可是畢竟,距離對於搜索配對仍是有必定影響的。而後對於主機配對位的超時,以及後臺掃描的超時都合理設計一下。後面我會給出一個經驗參考值。

       下面用一個表格來記錄所需通道配置。A,C的通道配置是出廠預置的,沒法更改。B有開啓3個獨立通道,一個專用於後臺搜索,另兩個用於根據搜索的的結果配置與AC的通道。

通道配置

A channel 0

   (預置)    

 C channel 0 

  (預置)  

B channel 0

     (後臺搜索)     

       B channel 1 for A  

         (搜索完成)

      B channe 2 for C  

        (搜索完成)

網絡號/網絡key  0/0  0/0  0/0  0/0  0/0
RF頻率  88  88 88  88 88
設備ID

 0x0001

預約值

0x0001 

預約值

 0

通配

 0x0001

匹配A

 0x0001

匹配C

設備類型

0x81/0x01

配對位限時自動復位

0x82/0x02

配對位限時自動復位

0x81/0x82

搜到A再搜B

0x01

匹配A

0x02

匹配C

傳輸類型

 1

無共享地址域

 1

無共享地址域

 0

搜索

 1

匹配A

 1

匹配C

通道類型

 0x10

雙向主通道

 0x10

雙向主通道

0x40

單向從通道

 0x40

單向從通道

 0x00

雙向從通道

通道週期  16384  16384  16384  16384  16384
數據類型

 0x4E

廣播數據

 0x4F

應答數據

 N/A

 0x4E

廣播數據

 0x4F

應答數據

      你也許會問,爲何用於單向廣播的A節點,通道類型不是0x50單向主通道呢?由於事實上不少時候,從節點仍是須要和主節點交換數據的,好比使用命令要求主節點回複本身的完整通道ID以完成配對,或者查詢主節點的電能情況方便用戶管理。而0x10雙向主通道即保留了反向通訊的可能,也並不影響使用廣播數據,因此實際應用中大多使用雙向通道,而單向通道使用較少。

      關於AC的配對位超時時限,一般能夠根據通道的搜索時間來設置。官方文檔中有這樣一組數據:

 

消息頻率 最長通道搜索時間
10Hz 2s
4Hz 3s
2Hz 7s
1Hz 15s
0.5Hz 45s

 

      數據代表,主通道的消息頻率,與最長通道搜索時間有關。頻率越高,越容易搜索到。根據這個數據,咱們不妨設置AC的配對位超時時限爲30s。可使用外部事件觸發配對位置位,經常使用的方案有開機自動觸發,用戶觸發等。咱們這裏AC節點都不具有人機接口,因此使用開機自動觸發是最好的選擇。只要AC同時間開機,就能保證30s內都配對完成。

      關於B的後臺搜索通道,由於要搜索兩個不一樣類型的設備,因此設置設備類型時應使用邏輯判斷。當搜到第一個設備通道後,變動設備類型,進行第二種類型設備的通道搜索。而後第二種設備也搜索完畢後,中止搜索並關閉後臺通道。B的通道設置流程圖以下圖。

 

      好了,關於配對就到說這裏了。你可能注意到流程圖中提到了擴展數據消息,這於ANT數據消息格式有關,以前遺漏了沒有講,那麼就放在下一期和「乾貨」一塊兒上吧!晚安!

相關文章
相關標籤/搜索