2014年7月20日 星期日

radio Sniffer–2 Packet/Control

1.BTLE one packet format (Adv/Data)

image

1.Preamble

image

2.Access Address

image

首先是Adveristing Packet

image

image

 

 

image

並查看Sniffer的Raw data

  • 固定廣播位址(0x8e89bed6)
  • Packet Header( DVERTISING PACKET PDU TYPESPDU Type Packet Name Desc)
  • Advertising Addresss
  • Advertising Data (type/length and Data)

image

 

接下來,是查看master /slave之間連接時的通訊(其中Scan_req) 方向是Scanner to Advertiser

image

image

若scanner 接收到想要進行連線的device的Adv,則發出SCAN REQUEST來回應device

image

image

並且ADvertiser 也會回應Scan (SCAN_RSP)

imageimage

有時,Advertiser 會將某些訊息放在SCAN_RSP(像是長local device name,及service)

 

CONNECTIONS

在彼此確定要連線後,由Initiator(Scaner Become from)來初始化

image

image

image

由上面可以得到幾項重要的資訊

  • Access Address : 因central (initor become from) 可同時有八組連線. 所以slave 的位置是由central來決定.
  • interval : 因BTLE 可以依藉要求(如傳送速度)設定,每隔多少需要雙方作一次交握. 這應也可用來為自適性設定
  • Latency : 這裡可設定slave 容許經過幾次的interval不去回應的次數
  • TimeOut : 雙方說好若經多少時間單位沒有回應時,即視為timeout
  • Channel Map /Hop Interval : 雙方說好其頻道及每次跳多少

Fn+1 = (Fn + Hop Interval) mod 37 ,關於此會在Radio Sniffer -3 說明

image

 

先重新檢視前後發生什麼事

image

最後,是DATA Packet(L2CAP)

image

image

其中,Access Address由Initor 分配給slave. 其先是其Header / length and Paload.

在Payload中,可能包含有L2CAP的command/data and inform. 這裡可以看做是它到底要不要往上送.

如此這麼一來也可以大大地減少其CPU run time.

而其中由Header 中的 LLID來區分.

image

由擷取到的封包,個別來看內容

image

image

而其中Payload中,還包有 L2CAP及ATT

image

image

image

ATT

image

A.

image

B.

image

C.

image

我們解讀其中一個L2CAP的內容. 就依一開始我們要去找出所有的att handle and type

image

1.Read By Group Type Request(0x0001 ~ 0xFFFF)

image

image

而因為其L2CAP的長度關係,它不會把所的傳回. 而是一段段地傳回.直到有發生錯誤(not find handle)即找到所有的

A.(找到0x0001~0x00012),所以下列會從0x00013開始找

 

ref:

BLUETOOTHLOW ENERGY
TECHNOLOGY TRAININ

 

nRF Sniffer User Guide v1.1

沒有留言:

張貼留言