場(chǎng)景如下:想做一個(gè)藍(lán)牙遙控器,平時(shí)不使用的時(shí)候處于深度休眠狀態(tài),那藍(lán)牙肯定就斷開了,當(dāng)我使用遙控器的時(shí)候,如何做到藍(lán)牙迅速連接并發(fā)送數(shù)據(jù)呢(延時(shí)要求比較高)?使用芯片是CH582,如果喚醒后重新配對(duì),就很慢了,還是說使用綁定功能可以瞬間連上呢?使用綁定功能是不是還是要掃描設(shè)備
使用藍(lán)牙功能時(shí),開啟睡眠模式。在未建立連接時(shí),芯片每隔10ms(假設(shè))發(fā)送一次廣播包,往外發(fā)包的時(shí)候芯片是喚醒的,由我們家的TMOS任務(wù)調(diào)度處理;在建立連接后,芯片每隔10ms(假設(shè))發(fā)送一次數(shù)據(jù)包,往外發(fā)包的時(shí)候芯片是喚醒的,同樣由TMOS任務(wù)調(diào)度處理,在此過程中,藍(lán)牙是沒有斷開連接的。
你可以使用CH582芯片的peripheral例程跑一下,開啟低功耗后,通過手機(jī)端BLE調(diào)試助手(應(yīng)用商城)建立連接,在睡眠喚醒后是沒有重新建立連接的過程,而是直接發(fā)包處理。
我的意思是 不想讓它在休眠的時(shí)候發(fā)送數(shù)據(jù)包(連接會(huì)斷開),因?yàn)榭赡芎荛L(zhǎng)時(shí)間都不使用設(shè)備,保持連接的話也挺浪費(fèi)電的,平均電流好像要到500uA以上,因此,如果在使用的時(shí)候可以迅速重連(1s以下,越快越好),就可以解決這個(gè)問題
首先遙控器在你的環(huán)境中是做主機(jī)還是從機(jī),使用藍(lán)牙主機(jī),那么可以去除掃描,直接根據(jù)mac地址來發(fā)起連接,建立連接大概需要一秒左右。還有就是睡眠的問題,睡眠并不是一直在睡,根據(jù)掃描間隔來的,會(huì)降低平均功耗,可以通過增大掃描間隔來降低功耗,當(dāng)然也可以這樣,不用的時(shí)候把掃描關(guān)了??梢詫⒕唧w的應(yīng)用和要求發(fā)送至hy@wch.cn
主從機(jī)都可以的,被遙控的設(shè)備是有線供電可以一直開著掃描或者廣播,另外關(guān)于睡眠的問題我理解,確實(shí)可以通過增大間隔來降低功耗,但是如果一段很長(zhǎng)的時(shí)間內(nèi)我都不使用這個(gè)遙控,那是不是關(guān)閉這個(gè)設(shè)備比保持連接更劃算呢?(最大掃描間隔好像也有限制吧?)
關(guān)于您說的不用的時(shí)候把掃描(連接?)關(guān)掉,我這邊確實(shí)是這么想的,問題是在于我下次使用這個(gè)遙控的時(shí)候,能做到低延遲的重連接嗎?
可以做到直接根據(jù)mac地址來發(fā)起連接嗎?據(jù)我目前的了解,BLE建立連接必須主機(jī)掃描到從機(jī)的廣播才可以(難道我理解有誤,請(qǐng)指正Orz)
是可以根據(jù)MAC地址直接發(fā)起連接的,可以將具體需求和功耗要求發(fā)送至hy@wch.cn
感謝回復(fù)