XBee PRO 900HP遠距離無線子產品
(此處http://www.bitconn.com/form_1/注冊後,購買XBee子產品,送USB評估底闆)
XBee PRO S3B也稱為XBee-900HP無線子產品,它是一款工作在頻段900~928MHz之間,基于FHSS跳頻技術的遠距離無線數傳電台核心子產品。常用型号如下:
類别 | 型号 |
---|---|
開發套件 | XKB9-DMT-UHP |
XBee-PRO 900HP (S3B) DigiMesh子產品,200Kbps,軟天線 | XBP9B-DMWT-002 |
XBee-PRO 900HP (S3B) DigiMesh子產品,200Kbps, RPSMA天線接口 | XBP9B-DMST-002 |
XBee-PRO 900HP (S3B) P2MP子產品,10Kbps,U.FL天線接口 | XBP9B-DPUT-001 |
更多型号請通路官網:http://www.digi.com/products/xbee-rf-solutions/modules/xbee-pro-900hp#partnumbers
Digi XBee PRO 900HP子產品的發射功率最高可達250mW,因國記憶體在較多的基站背景噪聲幹擾,對于傳輸距離要求更遠的場景,建議選擇功率更高的XBee PRO SX無線子產品。
900HP子產品的官方産品支援頁:http://www.digi.com/support/productdetail?pid=5576
Digi 900HP子產品可以支援三種不同協定的固件,比較常用的是XBP9B-DM和XBP9B-DP這兩個固件。接下來用XCTU工具分别做這兩個固件在不同模式下的組網通信測試。請首先下載下傳最新版的XCTU工具并安裝,首次打開時,請保持網絡連接配接暢通,XCTU軟體會自動下載下傳更新固件庫。
900HP Digimesh組網通信測試
XBP9B-DM的尾綴是DM,顧名思義這是Digimesh協定的子產品。Digimesh既可以實作星狀網絡,也可以實作網狀網絡,也就是自組網。使用Digi的開發套件,将兩個900HP的Digimesh子產品插到底闆上用USB線纜連接配接到電腦。打開XCTU,用左上角有搜尋按鈕來搜尋接到電腦的XBee子產品,并添加到左側清單,如下圖所示:
添加好子產品後,預設XCTU是工作在子產品的配置模式下,點選左側清單上的子產品,會讀取該子產品的配置并在右側顯示出來,您可以在這個界面下更改子產品的參數。對于手中有樣品的客戶,最好是先恢複一下出廠的預設參數,以免因為參數不正确影響結果。點選“Default”按鈕加載預設參數,然後點選“Write”寫入新參數。
XBee PRO 900HP透傳模式通信
要讓幾個子產品組成一個網絡,首先要保證網絡ID和HP是一樣的,另外CM覆寫相同的頻點。一般地,隻要你是同一型号的子產品,采用預設值就行了,隻需把網絡ID改成你定義的獨一無二的網絡号。子產品會采用64位位址通信,其中SH,SL是子產品自身的MAC位址,而DH,DL是透傳模式下的目标位址。預設地DH=0,DL=FFFF時是廣播位址,是以采用預設參數,網内的子產品已經可以互相通信,隻不過這是一種廣播方式的通信,效率和可靠性相對較低,我們一般需要改成定向單點傳播通信。
我們先來試一下預設的廣播通信,在XCTU中,可以點選右上方的終端按鈕,把XCTU當成一個序列槽調試助手來使用。分别點選選中兩個子產品,并打開序列槽,用“分離視圖”按鈕讓兩個終端顯示在桌面的不同區域,在ASCII顯示區任意輸入字元,可以在另一個終端上看到收到的字元。如下圖所示:
接下來我們用定向單點傳播的方法來測一下透傳模式,先把分離視圖合并,然後切換到配置模式下,在兩個子產品的DH,DL中分别填入對方的SH,SL,寫入子產品後,再回到序列槽終端界面測試結果。可以發現兩個子產品此時也仍能互通,但此時是向指定位址發送資料而非采用廣播模式。
我們也可以在序列槽終端用AT指令的方式改寫參數,在序列槽終端處輸入三個“+”,會彈出一個OK,這時子產品已經從工作模式切換到指令模式下,我們可以直接發打AT指令,比如有個NI參數是可以用來給子產品命名的,預設是沒有指派的,在彈出OK後,輸入ATNINODE1回車來給他指派NODE1名稱。下圖是操作結果,分别是設定NI為NODE1,再讀一下NI,把結果用WR指令寫入flash,用CN指令直接退出指令模式。
注意,如果你不用ATCN來退出指令模式,預設約6秒無操作時,子產品也會自動退出指令模式而回到透傳的工作模式。如果不用預設值,相關的時間和進入指令模式的特殊字元等都可以在AT指令裡自定義。
因為透傳模式需要用特殊定義的符号和時延組合來進入指令模式,以修改目标位址等,如果在一個網内,需要對不同的子產品進行通信,這樣的方式顯然效率低下,這時我們可以用API模式來進行通信。API模式是一種用指令幀同子產品進行互動的通信方式,它不但可以用來随時和任意模快通信,也可以用來設定遠端AT指令,收取回報包等。下面我們示範一下一個透傳的子產品和一個API模式的子產品的互相通信過程,以加深對API模式的了解。
XBee PRO 900HP API模式通信
API模式通信* API模式具有以下優點,随時與任意子產品進行定向通信,随時發送AT指令而不需要進行模式切換,可以識别資料來源,發送結果可以通過回報包判斷,可以遠端向其它子產品發送AT指令等。可以說,API模式除了可以做透傳模式的所有事情外,還有其它更多功能。在一個網絡中,你可以全部用API模式,也可以是中心點用API模式而其它節點用透傳模式。要開啟API模式,隻需把AP參數設定為1或2即可。
在配置模式中,将AP設定為1并寫入,切換到終端模式下,可以看到原來的終端視窗被指令幀視窗取代了。點選“+”号按鈕,用向導添加一個API幀,比如我們要添加向另一個子產品發送資料的幀,在幀向導中的Frame Name給這個幀取名為“frame_0_send1234”,然後點選用幀生成工具來生成幀,在接下來的頁面中,選擇Frame Type為0x10發送請求幀,在64位目标位址中輸入另一子產品的mac位址,在RF data中輸入“1234”,該工具會自動生成以7E開頭的完整的發送指令幀。點選“OK”,并把生成結果用“Add Frame”按鈕添加到發送清單中。選中該幀,然後點選“Send Selected Frame”發出該幀,就可以在另一個子產品的終端視窗中收到1234字元。 同樣地,你可以在透傳模式的終端視窗中輸入任意字元,在API模式的子產品中會以0x90接收幀的方式顯示收到的資料。選中每個幀,在“Frame details”中會顯示詳細的幀字段含義。如下圖所示:
其它
Digimesh可以實作自組網,也就是隻要網絡内各點分布合理,任意的點都可以給别的點當路由。但是如果最近的兩個點也很遠,邊上有基站幹擾的情況下,為了實作更遠的傳輸距離,還可以用XBP9B-DP固件,這個固件預設沒有自組網功能,但因為RF的速率是10K,是以兩點間距離更遠,但相應的帶寬也低些,比較适合多個遠距離子產品向中心點間的星狀網絡資料傳輸。
無人機和一些密集高速通信的考量 許多無人機或是工業通信往往是要用點對多點模式,而不是digimesh。這時為了提高帶寬很實時性,可以做如下設定: TO=40 代表點對多點模式
CE=2 節點不做路由,減少CPU和帶寬浪費
NH=1 由上,由于不做路由,我們把網絡跳點設定為1,一些固件内部像timeout的算法會用到這個參數,減小這個以增大帶寬。