BLE 包結構及傳輸速率

2021-07-10 08:23:55 字數 2652 閱讀 7618

根據bluetooth 4.0 ble部分協議:

ble中物理層physical layer的傳輸速率是1mbps,除了這個外,資料傳輸速率與包大小、cpu處理時間相關。

包結構:

1.總體結構:

preamble(1 byte)+ access address(4 bytes)+ pdu + crc(3 bytes)

preamble = 10101010 or 01010101

access address = 0x8e89bedd6

2. 廣播包

pdu =  header(2 bytes)+ payload (37 bytes max.)

header:  1)0000 - connected undirected advertising event 可連線非定向廣播事件

2)0001 - connected directed advertising event 可連線定向廣播事件

3)0010 - non-connected undirected advertising event 不可連線非定向廣播事件

4)0011 - response to scan request form scanner掃瞄請求響應

5)0101 - connect request by initiator連線請求

6)0110-connected directed advertising event 可發現非定向廣播事件

payload  = adva (6 bytes) + a***ata (31 bytes max.) ; 

// adva  contains advertiser『s public address if txadd = 1, or a random address if txadd = 0; 

// a***ata advertising data;

payload  = adva (6 bytes) + inita(6 bytes) ; 

// adva  contains advertiser『s public address if txadd = 1, or a random address if txadd = 0; 

// inita contains initiator's address if rxadd = 1, or a random address if rxadd = 0;

3. 掃瞄請求及掃瞄響應

pdu =  header(2 bytes)+ payload (37 bytes max.)

header:  1)0011 - scan request for further information from advertiser 掃瞄請求

2)0100 - response to scan request from scanner 掃瞄響應

payload  = scana (6 bytes) + adva(6 bytes) ;

// scana  contains scanner's public address if txadd = 1, or a random address if txadd = 0; 

// adva  contains advertiser『s public address if txadd = 1, or a random address if txadd = 0; 

payload  =  adva(6 bytes) + scanrspdata(0~31bytes);

// scanrspdata data from advertiser』s host; 

// adva  contains advertiser『s public address if txadd = 1, or a random address if txadd = 0; 

3. 連線請求

pdu =  header(2 bytes)+ payload (34 bytes)

header:0101 - connect request by initiator

payload =inita(6 bytes)+ adva(6bytes)+ lldata(22 bytes)

lldata 包含連線資訊,詳細結構參考bluetooth 4.0 協議。

4. ll 資料通道及控制包

pdu =  header(2 bytes)+ payload (27 bytes max.)

header:詳細說明參考bluetooth 4.0 協議;

payload  = 0~27 bytes

payload = 1~23 bytes

若只考慮藍芽裝置連線之後,評估資料傳輸速率

則傳輸有效payload 27位元組耗時:41*8/1 = 328 us

乙個27位元組的傳輸週期 :328 + 150 + 80 + 150 = 708 us,若能持續傳輸,即傳輸速度:38kb/s,這樣顯然功耗不會低,也不符合ble協議規範,真正的傳輸速度受連線事件間隔和間隔內能傳輸資料報數目相關。

如果連線時間間隔設定到7.5ms(協議規定最小值),乙個連線事件傳輸3個包,則傳輸速率大約是10.8kb/s,乙個連線事件能傳輸幾個包與連線裝置密切相關,看到很多cc2540實測資料,時間間隔7.5ms和乙個傳輸時間3個包以上很多都達不到,51核心是其重要原因之一,在 有5.9kb/s,也有在論壇看到有40ms間隔,2個包,即1.4kb/s成功的案例,以後有時間我再實測下速度。

BLE型的智慧型遙控器傳輸速率

藍芽對裝置傳輸的訊號位元率有自己的定義,其中br basic rate 是1mbps,edr enhanced data rate 達2或3mbps,而藍芽低功耗 ble 也有1mbps.那麼實際在傳輸中有效的資料速率又有多少了?這裡牽涉到乙個非常重要的概念,藍芽連線間隔 conninterval ...

WIFI各種協議及傳輸速率

ieee standard max.speed frequency band 802.11 2 mbps 2.4 ghz 802.11a 54 mbps 5.8 ghz 802.11b 11 mbps 2.4 ghz 802.11g 54 mbps 2.4 ghz 802.11n 600 mbps ...

超文字傳輸協議及HTTP包

username new andy password new andy 請求包的第一行是方法 uri 協議 版本 get就是請求方法,根據http標準,http請求可以使用多種請求方法。http 1.1支援七種請求方法 get post head options put delete和trace等,...