Ogni dispositivo Bluetooth ha il suo unico MAC Address? Come possiamo accedervi in un'app?
Grazie per la domanda e apprezzo il tuo interesse a conoscere più tecnicismi sul MAC Address Bluetooth.
- Ogni dispositivo Bluetooth ha un indirizzo unico a 48 bit del dispositivo Bluetooth (BD_ADDR). L'indirizzo è un identificatore unico esteso a 48 bit (EUI-48) creato in conformità con "Universal address" dello standard IEEE 802-2014 (http://standards.ieee.org/findstds/standard/802-2014.html)
NAP:
- Abbreviato come Non-significant Address Part.
- 2 byte.
- Assegnato dall'IEEE (Institute of Electrical and Electronics Engineers).
UAP:
- Abbreviato come Upper Address Part.
- 1 byte.
- Assegnato dall'IEEE (Institute of Electrical and Electronics Engineers).
LAP:
- Abbreviato come Lower Address Part.
- 3 byte.
- E' trasmesso con ogni pacchetto come parte dell'intestazione del pacchetto.
- Il BD_ADDR può prendere qualsiasi valore tranne quelli che avrebbero uno dei 64 valori LAP riservati per le richieste generali e dedicate. Link
L'importanza del Bluetooth Device Address è la seguente:
- Frequency Hopping Pattern: Poiché Bluetooth impiega un ricetrasmettitore a salto di frequenza, il modello di salto di frequenza è determinato algoritmicamente da certi campi nell'indirizzo Bluetooth e nell'orologio del master.
- Controllo degli errori: Ogni pacchetto in Bluetooth può essere controllato per gli errori usando il codice di accesso al canale, l'HEC (header error control) nell'intestazione, e il CRC (cyclic redundancy check) nel carico utile. Alla ricezione del pacchetto, il codice di accesso viene controllato per primo. Poiché la parola di sincronizzazione a 64 bit nel codice di accesso al canale deriva dal LAP del master a 24 bit, questo controlla se il LAP è corretto, e impedisce al ricevitore di accettare un pacchetto di un altro piconet (purché il campo LAP del BD_ADDR del master sia diverso).
- Identificazione: L'indirizzo del dispositivo Bluetooth, BD_ADDR è usato per identificare un dispositivo Bluetooth.
- Procedura di scoperta: In Bluetooth definiamo questo processo come procedura di Inquiry. Due termini in Inquiry sono i seguenti:
- Inquiry Scan (Slave): Un dispositivo Bluetooth non connesso che vuole essere scoperto da un dispositivo richiedente entrerà periodicamente nello stato di inquiry scan. In questo stato il ricevitore del dispositivo si attiva e ascolta le richieste. Deve entrare in questo stato almeno ogni 2,56 secondi. Durante questo stato, il dispositivo ascolta su uno dei 32 canali, per almeno 10ms e viene selezionato un canale diverso ogni 1,28 secondi.
- Inquiry (Master): In questo stato il dispositivo inizia a trasmettere pacchetti ID ogni slot pari su due canali diversi e durante lo slot successivo rimane in ascolto su quei due canali per un dispositivo che sta facendo una risposta di scansione di richiesta (pacchetto FHS).
Può essere meglio spiegato attraverso i seguenti diagrammi di temporizzazione:
Pacchetto ID:- Il pacchetto identità consiste nel Device Access Code (DAC) o Inquiry Access Code (IAC). Ha una lunghezza fissa di 68 bit.
Pacchetto FHS:- Il pacchetto FHS è un pacchetto di controllo speciale che contiene, tra l'altro, l'indirizzo del dispositivo Bluetooth e l'orologio del mittente. Il carico utile contiene 144 bit di informazione più un codice CRC di 16 bit. Il carico utile è codificato con un tasso 2/3 FEC con una lunghezza lorda del carico utile di 240 bit. Il formato del pacchetto FHS è mostrato qui sotto:
Extended Inquiry Response Packet:- Le informazioni sul dispositivo locale saranno inviate in questo pacchetto al dispositivo remoto durante la risposta alla richiesta.
Per quanto riguarda la tua prossima domanda sull'accesso attraverso un'app, ti consiglierei queste applicazioni:
1. nRF Connect for Mobile - App su Google Play
2. Bluetooth Finder - App su Google Play
3. Bluetooth Address Finder - Apps on Google Play
Per favore fatemi sapere per qualsiasi domanda o aiuto richiesto.
Nota: Queste schermate sono prese dalla specifica Core Bluetooth.
Grazie e saluti,
Anubhav David
Articoli simili
- Qual è la più alta statistica di un Pokemon (qualsiasi statistica, ogni gen, ogni oggetto, ogni trasformazione, ogni abilità)?
- Cosa succede quando si collega un dispositivo Bluetooth 5.0 a un dispositivo Bluetooth 4.2?
- WeChat ha un'API pubblica? Come posso accedervi?
- Come impostare il mio ambiente di sviluppo in modo che il mio team possa accedervi da remoto tramite VPN o RDC