0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

富芮坤主從一體多鏈接通信協(xié)議解析

FREQCHIP 富芮坤 ? 來源:FREQCHIP 富芮坤 ? 2024-10-22 10:34 ? 次閱讀

在先前我們已經(jīng)介紹了富芮坤主從一體多鏈接的概念,現(xiàn)在,我們將深入解析其技術(shù)文檔,為大家提供更詳盡的說明。

網(wǎng)絡(luò)拓撲

目前支持連接最多層數(shù)為5級,每個節(jié)點下面最多可連接16個子設(shè)備。具體級數(shù)和子設(shè)備個數(shù)可以在入網(wǎng)前可以通過不同的應(yīng)用場景進行配置。

此組網(wǎng)一般使用場景為一個網(wǎng)絡(luò)內(nèi)有高于20個數(shù)量的設(shè)備需要統(tǒng)一管理,比如跳繩類應(yīng)用,一個班級組網(wǎng)設(shè)備數(shù)量有60個左右。

當(dāng)小于等于20個設(shè)備時,建議可以直接使用我們的一拖多功能,可以直接實現(xiàn)一拖20個設(shè)備。

6b5c4432-8f8c-11ef-a511-92fbcf53809c.png

通信協(xié)議

2.1、手機(控制端C)下發(fā)指令到設(shè)備

手機端下發(fā)指令給設(shè)備端共有3個指令,0xE1,0xE3,0xE4指令,下方會詳解。

手機通過UUID為FFF1的特征將數(shù)據(jù)下發(fā)到設(shè)備。

2.1.1、0xE1指令:發(fā)送數(shù)據(jù)給對應(yīng)節(jié)點

l 指令包格式說明

Type(1byte Node id(2byte) Data(n byte)
E1 03 00 12 FA 9C

代表手機端需要發(fā)送0x12FA9C這3個字節(jié)數(shù)據(jù)給node id為0x0003的設(shè)備

l 發(fā)送查詢路由表信息指令

Type(1byte) Node id(2byte) Data(2 byte)
E1 FFFF 0000

此指令為固定指令,代表手機向root節(jié)點(root的node id固定為0xFFFF)請求路由表信息??蛻魬?yīng)用層數(shù)據(jù)需要避開data數(shù)據(jù)為0x0000。

請求的路由表信息會通過E2指令返回給手機,詳解見下方

2.1.2、0xE3指令:配置節(jié)點信息(debug調(diào)試使用,正常應(yīng)用場景請不要使用)

0xE3指令只針對手機連接的那個節(jié)點

l 通過log打印節(jié)點信息

Type(1byte) Data(1 byte)
E3 C0

控制端連接根節(jié)點(MULTI CON_FFFF),發(fā)送指令E3C0,可以在根節(jié)點log中打印拓撲信息

NodeCon[ 1]: <-> layer:2 slave_id: 0

NodeCon[ 2]: <-> layer:3 slave_id: 0

NodeCon[ 3]: <-> layer:3 slave_id: 100

節(jié)點0x0001處于第2層,第0個節(jié)點

節(jié)點0x0002處于第3層,節(jié)點0x0001的子節(jié)點中的第0個節(jié)點

節(jié)點0x0003處于第3層,節(jié)點0x0001的子節(jié)點中的第1個節(jié)點

6b825122-8f8c-11ef-a511-92fbcf53809c.jpg

l 重置節(jié)點node id

Type(1byte) Data(1 byte)
E3 C1

2.1.3、0xE4指令:群發(fā)指令。所有節(jié)點都可以收到此數(shù)據(jù)

Type(1byte) Data(n byte)
E4 12 FA 9C

所有設(shè)備都會收到手機端下發(fā)的3個字節(jié)數(shù)據(jù)0x12FA9C

2.2、手機(控制端C)收到設(shè)備發(fā)來的指令

設(shè)備通過UUID為FFF4的特征將數(shù)據(jù)上報給手機。

設(shè)備發(fā)送給手機的指令格式如下,其中cmd取值為0xF1,0xF4,0xF5,0xF6

Type(1byte) Node id(2byte) Cmd(1byte) Data(n byte)

2.2.1、設(shè)備上線狀態(tài)上報

Type(1byte) Node id(2byte) Cmd(1byte) Data(2 byte)
E2 FF FF F1 03 00

代表node id為0x0003的設(shè)備組網(wǎng)上線成功

2.2.2、設(shè)備下線狀態(tài)上報

Type(1byte) Node id(2byte) Cmd(1byte) Data(2 byte)
E2 FF FF F4 03 00

代表node id為0x0003的設(shè)備從網(wǎng)絡(luò)內(nèi)掉線

2.2.3、手機請求的路由表信息上報

Type(1byte) Node id(2byte) Cmd(1byte) Data(n byte)
E2 FFFF F5 Route_table_info

Data(Route_table_info):

Num:節(jié)點個數(shù) Index:分包標(biāo)識 Node_ID1 Layer LayerID 循環(huán)(Node_ID--Layer--LayerID)
(1bytes) (1bytes) (2bytes) (1byte) (4bytes) 。。。。。。


LayerID:

[0] [1] [2] [3]
Layer2_ID Layer3_ID Layer4_ID Layer5_ID

注意:

如果需要分包的話,index從1(第一包)開始,0xFF結(jié)尾(最后一包)。如一共三包,index分別為0x01,0x02,0xFF

指令示例:

Tx:E1 FF FF 00 00

Rx:E2 FF FF F5 03 FF 01 00 03 01 00 00 00 02 00 02 01 00 00 00 03 00 02 00 00 00 00

03 :本包傳輸了3個節(jié)點的信息,分別是0x0001 0x0002 0x0003

FF :路由表數(shù)據(jù)只有一包

0x0001:處于第03層,第3層序號是00, 父節(jié)點是第二層序號為01的節(jié)點,即 0x0002

0x0002:處于第02層,第2層序號為01

0x0003:處于第02層, 第2層序號為00

按照數(shù)據(jù)恢復(fù)出網(wǎng)絡(luò)拓撲結(jié)構(gòu)如下圖:

6b944df0-8f8c-11ef-a511-92fbcf53809c.jpg

2.3、代碼介紹

l 獲取多連接組網(wǎng)的SDK

l 打開工程,可以到ble_multi_link.h頭文件進行一些參數(shù)的配置

比如網(wǎng)絡(luò)層級,每個節(jié)點最大連接數(shù)量等

6bae8850-8f8c-11ef-a511-92fbcf53809c.png

l 首先調(diào)用ble_multi_link_init函數(shù)進行組網(wǎng)參數(shù)的初始化

6bd2e6b4-8f8c-11ef-a511-92fbcf53809c.png

l 當(dāng)設(shè)備組網(wǎng)成功或者掉線后會進入multi_con_netin_cb、multi_con_netout_cb回調(diào)

l 當(dāng)設(shè)備被手機連接或者手機斷開會進入multi_con_control_disconnect_cb、multi_con_control_connected_cb回調(diào)

l 當(dāng)設(shè)備位于中間節(jié)點時,設(shè)備連接的子節(jié)點掉線或者上線,會進入master_child_node_dropped_cb、master_child_node_online_cb回調(diào)

l 當(dāng)設(shè)備接收到手機或者設(shè)備發(fā)送過來的信息時,會進入device_receive_data函數(shù)??梢栽谶@里進行一定的數(shù)據(jù)處理

6bfa4678-8f8c-11ef-a511-92fbcf53809c.png

l 當(dāng)設(shè)備需要發(fā)送數(shù)據(jù)給手機時,可以調(diào)用device_send_data_to_phone函數(shù)進行發(fā)送

l 當(dāng)設(shè)備需要發(fā)送數(shù)據(jù)給其它設(shè)備是,可以調(diào)用device_send_data_to_device函數(shù)

l 當(dāng)設(shè)備需要群發(fā)數(shù)據(jù)時,可以調(diào)用device_send_data_to_all_device函數(shù)

l 其它更多,比如獲取當(dāng)前設(shè)備的角色:multi_link_get_role、node id:multi_link_get_node_id、層級:multi_link_get_layer、從機連接數(shù)量:multi_link_get_slave_num等等可以到ble_multi_link.h查看函數(shù)具體說明

l 若設(shè)備需要串口透傳或者發(fā)送指令,只需要實現(xiàn)串口部分收發(fā),根據(jù)自己的串口協(xié)議,配合如上函數(shù)發(fā)送到對應(yīng)設(shè)備即可

使用說明

1、 指定根節(jié)點:上電前先將PD7拉低,上電后即為根節(jié)點。其他節(jié)點默認上電為從節(jié)點

2、 上電后根節(jié)點自動發(fā)起組網(wǎng)。

3、 初始上電,根節(jié)點node id為0xFFFF,其他節(jié)點Node_ID為0。初次上電連接后,由根節(jié)點分配節(jié)點ID

4、 入網(wǎng)成功連接后,節(jié)點會收到入網(wǎng)成功的消息回調(diào)。

5、 斷線自恢復(fù),某一中間節(jié)點掉電導(dǎo)致掉線后,其子節(jié)點在一定時間內(nèi)會自動加入網(wǎng)絡(luò),掉線的節(jié)點在上電后也可以自動加入網(wǎng)絡(luò),且node id不發(fā)生改變。

6、 手機端BLE調(diào)試軟件掃描,會發(fā)現(xiàn)很多MULTI CON_xxxx設(shè)備,隨便連接任意設(shè)備,可以向任意節(jié)點發(fā)送消息。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    839

    瀏覽量

    40210
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    606

    瀏覽量

    35611
  • 網(wǎng)絡(luò)拓撲
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    11342

原文標(biāo)題:【技術(shù)專區(qū)】富芮坤主從一體多鏈接通信協(xié)議說明

文章出處:【微信號:FREQCHIP,微信公眾號:FREQCHIP 富芮坤】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    款已經(jīng)通過FCC/CE認證的主從一體藍牙模塊

    ` 藍牙模塊中的主從一體,是指個模塊的程序既可以做主設(shè)備去搜索連接從設(shè)備,也可以作為從設(shè)備被其它主設(shè)備發(fā)現(xiàn)和連接,甚至可以做到主從設(shè)備同時存在。 可以模塊與模塊連接(都可以主從)與手
    發(fā)表于 02-15 16:59

    藍牙主從一體,特征值改大無法通信是為什么呢?

    SIMPLEPROFILE_CHAR5_LEN5 我用官方的主從一體DEMO,通過寫入白名單建立兩個設(shè)備的連接,把 SIMPLEPROFILE_CHAR1_LEN 改到20無法通信,小于20就可以,這個是為什么呢?
    發(fā)表于 08-01 06:27

    CH582主從一體使用pwm,100ms控制次占空比會死機是為什么?

    在加pwm之前直是主從一體做主連接從機,長鏈接通過串口看收發(fā)數(shù)據(jù),放晚上都沒問題,加了pwm后有時候會半小時就死了,不發(fā)數(shù)據(jù),藍牙連接也斷開了,
    發(fā)表于 08-09 06:38

    請問CH573主從一體例程如何互相配對?

    幾十個CH573藍牙設(shè)備要互相兩兩通信,使用主從一體例程,如何通過配對,把MAC地址等信息儲存到信任列表?非手動配對的設(shè)備,即使掃描到也不允許通信。我看主從一體的例程,好像只要掃描到M
    發(fā)表于 08-10 06:16

    BLE主從一體相互收發(fā)廣播包

    大佬們,BLE藍牙主從一體怎么做到讓他們相互收到對方發(fā)的廣播???單鏈路的情況,添加獨立的RF文件也不行;相同程序,目前只能其中方收得到另方收不到,多個設(shè)備時,也有某個設(shè)備收不到其它廣播的情況。求大佬指點它的收發(fā)時序以及該怎么
    發(fā)表于 12-09 18:14

    小鋼炮使用的低功耗主從一體藍牙芯片BlueNRG-MS手冊

    小鋼炮(CANNON)使用的低功耗主從一體藍牙芯片BlueNRG-MS手冊
    發(fā)表于 02-19 14:47 ?61次下載

    藍牙模塊低功耗藍牙4.2nRF51822主從一體陶瓷天線

    藍牙模塊低功耗藍牙4.2模塊nRF51822主從一體陶瓷天線
    發(fā)表于 09-28 16:43 ?43次下載

    ble藍牙模塊的主從一體功能詳解

    主從一體是指 BLE 藍牙模塊 同時作為主設(shè)備和從設(shè)備 。 主從一體提供了 擴展 BLE 藍牙模塊 的能力, 自從 個被稱為 鏈路層拓撲 的功能被添加到藍牙 4.1 規(guī)范中 后 , 就已經(jīng) 允許
    的頭像 發(fā)表于 04-25 09:29 ?1.7w次閱讀
    ble藍牙模塊的<b class='flag-5'>主從一體</b>功能詳解

    ble 藍牙模塊的主從一體功能詳解

    文檔介紹了藍牙模塊主從一體的功能,以及個大致的應(yīng)用方式
    發(fā)表于 04-24 16:52 ?14次下載

    藍牙5.2協(xié)議主從一體、低功耗、工業(yè)級藍牙模組新品上市

    WH-BLE105是款基于藍牙5.2協(xié)議主從一體模組,擁有主設(shè)備模式、從設(shè)備模式、廣播模式、主從一體模式四種工作模式,可用于主從
    的頭像 發(fā)表于 11-05 08:39 ?7617次閱讀
    藍牙5.2<b class='flag-5'>協(xié)議</b>、<b class='flag-5'>主從一體</b>、低功耗、工業(yè)級藍牙模組新品上市

    ZX-D35主從一體藍牙模塊的數(shù)據(jù)手冊

    ZX-D35主從一體藍牙模塊的數(shù)據(jù)手冊
    發(fā)表于 12-30 14:46 ?18次下載

    BLE藍牙模塊功能應(yīng)用① — 主從一體

    隨著科技快速發(fā)展,藍牙技術(shù)在各個行業(yè)應(yīng)用中變得非常廣泛。今天,我們來分享種非常熱門的主從一體藍牙模塊。我們將對它的模式、概念、應(yīng)用、選購等進行探討,讓讀者深入了解這種藍牙模塊。藍牙的工作模式藍牙
    的頭像 發(fā)表于 09-09 08:26 ?1252次閱讀
    BLE藍牙模塊功能應(yīng)用① — <b class='flag-5'>主從一體</b>

    BLE藍牙模塊主從一體功能應(yīng)用場景詳解

    藍牙模塊支持多種工作模式,如主設(shè)備模式、從設(shè)備模式、主從一體化工作模式、廣播站模式、Mesh組網(wǎng)模式、廣播模式和iBeacon模式。在眾多工作模式中,主從一體工作模式是最常用的,也是目前較為流行
    的頭像 發(fā)表于 01-04 09:19 ?1202次閱讀
    BLE藍牙模塊<b class='flag-5'>主從一體</b>功能應(yīng)用場景詳解

    國產(chǎn)藍牙模組 | 藍牙主從一體功能應(yīng)用

    隨著科技快速發(fā)展,藍牙技術(shù)在各個行業(yè)應(yīng)用中變得非常廣泛。今天,我們來分享種非常熱門的主從一體藍牙模塊。我們將對它的模式、概念、應(yīng)用、選購等進行探討,讓讀者深入了解這種藍牙模塊。藍牙的工作模式藍牙
    的頭像 發(fā)表于 06-21 08:25 ?411次閱讀
    國產(chǎn)藍牙模組 | 藍牙<b class='flag-5'>主從一體</b>功能應(yīng)用

    SGS授予AEC-Q100認證證書

    近日,國際公認的測試、檢驗和認證機構(gòu)SGS為上海富微電子有限公司(以下簡稱“”) 型號為FR3038DQ的藍牙MCU芯片頒發(fā)AEC
    的頭像 發(fā)表于 08-07 17:43 ?724次閱讀