?在集中式水表抄表應用中,一種合理的通訊方案是采用BLE本地1拖7采集,再通過NB遠傳,具體是1個水井中裝有8只水表,其中7只水表裝E95透傳從機模塊,剩下1只水表裝E92主從一體模塊+NB模塊,7只從機水表將數(shù)據(jù)匯總到這1只主機水表,主機水表再通過NB上傳至基站+后臺。
??具體從機水表1天傳n次數(shù)據(jù)給主機,通信由從機發(fā)起,從機1次上報的數(shù)據(jù)量是35bytes左右,主機回復的數(shù)據(jù)量也是35bytes左右,主從機間是雙向通信。1個回合中,從機可能會有多次數(shù)據(jù)上報。
??主機上電開始掃描周圍從機,當掃到全部7個從機后,主從1V1連接上,主機發(fā)送抄表指令,從機進行第1次數(shù)據(jù)上報,主機收到后下發(fā)第1個回復包,從機收到后發(fā)起第2次上報......,直到從機數(shù)據(jù)全部上報完畢。再去連第2個從機,依次類推。待主跟7個從機全部通信一輪完畢后,主機斷開連接。
??注:客戶選擇主機跟7個從機保持長連接,即7個連接同時存在,原因是客戶后臺可能隨時會有數(shù)據(jù)下發(fā),所以從機要隨時待命。
??如果客戶沒有后臺數(shù)據(jù)隨時下發(fā)這個需求,可以采用主機跟1號從機1V1連接、通信完,斷開連接,再去連接2號從機,依次類推。這種方式的好處是主機只維護1個連接,數(shù)據(jù)處理能力會更強。
??經(jīng)溝通,客戶的痛點是:
??●主機要盡快掃描到從機廣播。
??●7個從機必須全部掃描到。
??一、描述
??1、1主7從通信流程細化
??主機:上電初始化,主要包含設置連接參數(shù)、掃描參數(shù)——開啟掃描(必須要掃描到全部7個從機)——停止掃描——對1號從機發(fā)起連接——使能notify——發(fā)送抄表命令——收數(shù)據(jù),直到數(shù)據(jù)全部上報完畢——對2號從機發(fā)起連接——依次類推,跟全部7個從機連接上,并通信完畢——主動斷開連接。
??從機:上電初始化,主要包含設置廣播參數(shù)——進入廣播態(tài)——收到主機抄表命令后上報數(shù)據(jù),直到數(shù)據(jù)全部上報完畢——保持連接狀態(tài)——主機斷開連接后,保持廣播態(tài)。
??2、參數(shù)設置
??主、從機相關(guān)參數(shù)設置,如下所示:
??1、E95從機
??出于降低功耗考慮,廣播間隔選擇2s。
??2、E92主機
設置掃描參數(shù)
??0x01,0xFC,0x34,0x2F,0x00, 0x64,0x00, 0x5A, 0x01, 0x01, 0x07, 0x80, 0x32 ,0x64,0x00, 0x28,0x00 ,0x00, 0x01//設置掃描參數(shù)
??0x64,0x00=100*625us=62500us=62.5ms,掃描間隔。//因為從機廣播間隔是2s,比較大,為了盡快掃描到從機,主機掃描間隔設置的小一些,比如說采用默認值62.5ms。
??0x5A=90%,scan duty占空比。//也是為了盡快掃描到從機,占空比設置的大一些,比如90%,即一個掃描間隔里,掃描窗口開90%,剩下10%時間處理其他事件。
??0x01=主動掃描。//推薦設置成主動掃描,可獲取掃描響應。
??0x01=1M phy。
??0x07=掃描37、38、39信道。
??0x80=-128dbm,rssi閾值。
??0x32=每次掃描可緩存最大設備數(shù),50個
??0x64,0x00=100*100ms=10 000ms=10s,一次掃描持續(xù)的最長時間10s。//因為廣播間隔是2s,建議采用默認值10s,10÷2=5,即給主機留了5個廣播包時間,來掃描到從機。
??0x28,0x00=40ms. //改參數(shù)指定空閑時間。
??0x00=不允許重復上報。
??0x01=連續(xù)掃描。
設置連接參數(shù)
??0x01,0xFC,0x36,0x0F,0x00, 0xA0,0x00, 0x32, 0x01 ,0x18,0x01 ,0x64,0x00, 0x64,0x00 ,0x00,0x00 ,0xB0,0x04//設置連接參數(shù)
??0x00 A0=160*625us=100 000us=100ms//推薦使用默認值100ms,此處掃描間隔,跟ID=0x34指令中的掃描間隔含義是一樣的,區(qū)別是使用場景不同,比如說主機保持1V7連接,突然與1個從機的連接斷開了,那么主機就直接用0x36指令發(fā)起連接。
??0x32=50%,掃描占空比。//此處的掃描占空比不能設置的太大,一般采用默認值50%,因為設置的太大,那么一個掃描間隔中,主機幾乎都處于掃描態(tài),那么它就沒空處理連接事件了,可能會導致連接斷開。
??0x01=PHY 1M.
??0x18,0x01=280*100ms=28000ms=28s,連接失敗檢測超時。//指MCU給主機發(fā)送0x36指令后,一旦≥28s連接還未建立成功,那么主機會吐出連接建立失敗的log。
??0x64,0x00=100ms,最小連接間隔。//連接間隔可以根據(jù)自己應用層數(shù)據(jù)量來決定,注意如果客戶想設置成某個值,那么建議主、從機的最小、最大連接間隔都設置成這個值。
??0x64,0x00=100ms,最大連接間隔。//同上。
??0x00,0x00=0s,從機潛伏次數(shù)。
??0xB0,0x04=1200*10ms=12000ms=12s,初始連接丟失監(jiān)測超時時間。//如果客戶采用長連接,為了保證連接的穩(wěn)定性,必須設置成≥12s(經(jīng)驗值)。
審核編輯黃宇
-
藍牙
+關(guān)注
關(guān)注
114文章
5866瀏覽量
170968 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
39文章
6245瀏覽量
113916 -
主機
+關(guān)注
關(guān)注
0文章
1007瀏覽量
35232 -
BLE
+關(guān)注
關(guān)注
12文章
670瀏覽量
59508
發(fā)布評論請先 登錄
相關(guān)推薦
評論