Terza lezione: HCI e L2CAP

Slides:



Advertisements
Presentazioni simili
Cache Memory Prof. G. Nicosia University of Catania
Advertisements

File system: system call e strutture dati a run-time.
Gestione Input Output A. Ferrari.
Vincenzo Campanale PM Security & Management System Center, DSI e la Roadmap.
Concetti fondamentali
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Le reti Ethernet e IEEE
Programmazione con socket
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Università degli Studi di Trieste
5-1 Link Wireless Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
5-1 Point to Point Data Link Control Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (©
ANALISI DELLE ISTITUZIONI POLITICHE corso progredito Biennio di laurea magistrale Politica e Istituzioni Comparate Lezione 25 – Il processo legislativo.
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
HDM Information Design notation v.4. HDM Information Design.
Directory services Directory offline –Elenchi telefonici –Guide TV –Cataloghi acquisti Directory online –Application specific (lotus notes, MS Exchange.
IPTABLES Un Firewall Linux Netgroup 23 aprile 2002 Claudio Soprano - LNF Computing Service.
Seconda lezione: Baseband e LM
Presentazione Marco Bianchessi
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Linux firewalls Massimo Ianigro - CNR Area di Ricerca - Bari
BUS di comunicazione Da Testo Maeran. BUS caratteristiche generali Semplicità (minori costi) Standard (in modo che chiunque produce HW lo possa.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
MSCHAP.
ICMP - PING - TRACEROUTE
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
Compito desame del Svolgimento della Sezione 5: CONTROLLORI Esempio preparato da Michele MICCIO.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
DATA LINK PHYSICAL IP TRASPORTO APPLICATIVOclient PHYSICAL IP TRASPORTO APPLICATIVOserver Un Client è interconnesso ad un Server attraverso una porzione.
Informazioni, quando l'acquisizione é intelligente! Sistemi di telemetria integrati GSM - WSN Milano, 23 aprile 2013.
Sistemi di elaborazione dellinformazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 1 – Richiami.
Modelli di latenza. Non è semplice stabilire quanto tempo serve per ricevere un oggetto da un server remoto dopo aver inviato una richiesta. Anche se.
OR5 – Rete di trasmissione
Internet e ADSL A cura dellIng. Claudio TRAINI _________________________________________________________________ Trade System Srl - Viale Gran Sasso 7.
Format Fusion SD and HD Kahuna. Kahuna Completamente un nuovo design Focalizzato per il mercato del live production Nuovo Pannello di controllo e mainframe.
EM 3732 – Pronti al futuro Paolo Corchia Product Manager RF Professional.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
LE RETI INFORMATICHE.
Implementazione della modalità SplitMAC del protocollo CAPWAP
INTERNET Antonio Papa Classe 2^ beat I.S.I.S. G. Meroni a.s. 2007/2008.
L2 Elaborazione di immagini in C/C++
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Micro-Robot di dispensazione a 3 assi EzROBO 3
Lo standard Bluetooth Sistemi e Reti Wireless
Controllo remoto di dispositivi tecnologici via TCP/IP.
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Sia TAPE una periferica di gestione di nastri magnetici in grado di acquisire/fornire dati a 8 bit, e sia CD una periferica di masterizzazione in grado.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
Modulo 5 Access Point Giuseppe CARCIONE. Nellmmagine è mostrato il access point Cisco Cisco Aironet 1100.
Negli ultimi anni, la richiesta di poter controllare in remoto la strumentazione e cresciuta rapidamente I miglioramenti nell’hardware e nel software insieme.
Collection & Generics in Java
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Workshop sulle problematiche di calcolo e reti nell'INFN
Architettura di una CPU
Università Degli Studi di Napoli “ Federico II”
Z iLOG 80 Calcolatori Elettronici Bartolomeo Bajic.
XPR meeting – Control System status S. Toncelli Pavia, 12 dicembre 2014.
Corso di Alta formazione in TL&OS Modulo 1.3 Reti e Servizi - lezione 1 Modulo 1.3 Reti e servizi 1. Introduzione al Networking Connettere il PC in rete;
I2c.
Introduzione L0.
Domanda 1 A cosa corrisponde in notazione decimale il numero binario positivo senza segno ) 32 2) 48 3) 46 4) 3 5) 36 September 18.
Università degli Studi di Roma “Tor Vergata”
Introduzione L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito.
A/D seconda parte.
Azione delle istruzioni
Vari e semplici programmi.
Azione delle istruzioni
Il Livello di Trasporto
Relazioni tra CPU e Memoria e Dispositivi I/O
Transcript della presentazione:

Terza lezione: HCI e L2CAP Bluetooth Terza lezione: HCI e L2CAP

Corso Bluetooth 14-4-2003, 3 ore Bluetooth Phy e Baseband 5-5-2003, 3 ore Baseband LMP 12-5-2003 HCI +L2CAP 20-5-2003 RFCOM, SDP e profili (corso di Rossi)

Protocol stack BT device Applications Control Data Software layers TCP/IP HID RFCOMM Control Data Audio L2CAP Software layers Link Manager HW Digitale Link Controller HW Digitale/Analogico Baseband HW Analogico/RF Radio BT device

Hosted vs. Host-less. E.g. RF Comm L2CAP HCI E.g. RF Comm L2CAP HCI Baseband Radio Link manager L2CAP E.g. RF Comm Bluetooth Host HCI Bluetooth Hostless Device Bluetooth Device Link manager Baseband Radio

Architettura Hosted

Bluetooth device

HCI (host controller interface) Bluetooth Host Il protocollo HCI trasporta Comandi Eventi Dati ACL (bidirezionale) Dati SCO (bidirezionale) Tre Physical transports definiti: UART USB PCMCIA/PCI Rappresenta un’ interfaccia standard, indipendente dal produttore Consente di sviluppare facilmente applicazioni senza conoscere nel dettaglio il protocollo Host Drivers and Applications Bluetooth HCI driver Commands Events Data Bluetooth Host Controller Link Manager Baseband & Link Controller Bluetooth Radio Bluetooth Module

Transport Interfaccia fisica per connettere l’host all’host controller Tipicamente seriale: Piu’ semplice da collegare (meno pin) Non occorrono throughput elevati USB: La piu’ diffusa in ambiente PC, sia interna che esterna Autoconfigurante, banda sovradimensionata, supporto flusso isocrono Maggiore complessita’ UART: La piu’ usata in applicazioni ‘embedded’ Non autoconfigurante,banda appena sufficiente, no multiplex Semplice da programmare PCMCIA: Definita ma poco utilizzata

Comandi HCI Set di comandi con cui l’host richiede i servizi del link manager Pacchetti HCI spediti dall’ host al dispositivo HC 6 gruppi di comandi: Controllo connessione Politiche di connessione Controllo dispositivo Parametri informativi Parametri di stato Comandi di test Circa 100 comandi definiti nelle specifiche 1.1

Formato pacchetto comandi HCI

Eventi HCI Pacchetti spediti dal dispositivo HC all’ Host Servono al link manager per notificare all’ host: Che e’ accaduto un evento significativo a livello locale o remoto. Per ritornate i parametri di ris posta ad un comando. 32 eventi definiti nella v.1.1

Formato pacchetto eventi HCI

Evento ‘command complete’ Serve per restituire i parametri di risposta ad un comando. Event code=0x0E Parametri: HCI command packets (1Byte): numero di comandi pendenti Command opcode (2 bytes): Opcode (OGF+OCF) del comando a cui l’evento corrisponde Return parameters (N bytes): i parametri di risposta al comando

Flusso dati (L2CAP) Link Manager Comandi Eventi Dati LCH=10 Inizio dati L2CAP Link Manager LCH=01 Continuazione dati LCH=11 LMP_PDU Pacchetto max dati HCI dipende dall’ Host controller, solitamente e’ poco meno di un Kbyte Il link manager opera una segmentazione

Connection handle Parola di 12 bit da 0x000 a 0xEFF (0xF00-0xFFF riservati) Identifica univocamente ogni singola connessione nel dialogo tra host e dispositivo. Esiste solo a livello HCI, non ha alcun significato ad altri livelli. Ad es., un master ha un C.H. per ogni slave

Formato pacchetto dati HCI

Voce Interfaccia dedicata PCM Trasporto HCI

Esempio transazione HCI Lettura da parte dell’ host del BD_address del dispositivo locale L’host invia al dispositivo un pacchetto comandi HCI_Read_BD_ADDR OGF=0x04, OCF=0x0009 Parametri di richiesta nessuno Parametri di risposta: stato=1byte,BD_ADD=6 bytes L’host controller risponde con un pacchetto eventi command_complete EV code=0x0E Parametri: pending= 1 byte,opcode=2 bytes, returnpar=7bytes

Richiesta BD_address Comando Evento 16 8 OP Code Length OCF=0x009 OGF=0x04 Evento 8 8 8 16 EV Code Par Length Pending Opcode 0x0E 0x0A (10) xxx OGF=0x0009 OCF=0x04 8 8 x 6 Status BD_ADD 0x00=OK B_A (1) B_A (2) B_A (3) B_A (4) B_A (5) B_A (6)

Controllo connessioni Comando HCI_Create_Connection (BD_ADDR,Packet_Type,Page_Scan_Repetition_Mode,Page_Scan_Mode,Clock_Offset,Allow_Role_Switch) Evento Connection Complete (Status,Connection_Handle,BD_ADDR,Link_Type,Encryption_Mode) Comando HCI_Disconnect (Connection_Handle,Reason) Evento Disconnection Complete (Status,Connection_Handle, Reason)

Controllo inquiry Comando HCI_Inquiry (length,Num resp): L’host chiede di fare un inquiry per un tempo ‘length’ e di trovare al massimo ‘Num resp’ unita’. Evento Inquiry Result (Num_Responses,BD_ADDR[i],Page_Scan_Repetition_Mode[i],Page_Scan_Period_Mode[i],Page_Scan_Mode[i],Class_of_Device[i],Clock_Offset[i]) Evento Inquiry Complete (Status) Indica che e’ trascorso il tempo di inquiry specificato.

Connessione (lato slave) Evento Connection Request (BD_ADDR, Class_of_Device,Link_Type) Comandi: HCI_Accept_Connection(BD_ADDR,Role) HCI_Reject_Connection(BD_ADDR, Reason)

Gestione sicurezza Comandi: Eventi HCI_Authentication_Requested(Connection_Handle) HCI_Set_Connection_Encryption(Connection_Handle,Encryption_Enable) HCI_Link_Key_Request_Reply (BD_ADDR, Link_Key) HCI_PIN_Code_Request_Reply(BD_ADDR,PIN_Code_Length,PIN_Code) Eventi PIN Code Request (BD_ADDR) Link Key Request (BD_ADDR)

Link Control commands OGF=1 HCI_Add_SCO_Connection (Connection_Handle,Packet_Type) Se ha successo ritorna un Connection_complete event HCI_Change_Connection_Packet_Type(Connection_Handle,Packet_Type) HCI_Remote_Name_Request(BD_ADDR,Page_Scan_Repetition_Mode,Page_Scan_Mode,Clock_Offset) HCI_Read_Remote_Supported_Features (Connection_Handle) HCI_Read_Clock_Offset (Connection_Handle)

Link policy commands (OGF=2) HCI_Hold_Mode (Connection_Handle,Hold_Mode_Max_Interval,Hold_Mode_Min_Interval) Sniff mode/Exit sniff, Park mode/ exit park Role discovery, Switch role Qos setup (Connection_Handle, Flags, Service_Type,Token_Rate, Peak_Bandwidth, Latency, Delay_Variation)

Host controller & BB, OGF=3 51 comandi per controllare i vari settaggi dell’HC: Reset Change/read local name Set/read timeouts (connessione, page, flush, supervision) Read/write parametri di page_scan e inquiry_scan Read/write Class of device locale Read transmitted power(Conn_handle) Read/write tabella delle Link keys

Parametri informativi OGF=4 HCI_Read_Local_Version_Information(Status,HCI Version,HCI Revision,LMP Version,Manufacturer_Name,LMP Subversion) HCI_Read_Local_Supported_Features HCI_Read_Buffer_Size (Status,HC_ACL_Data_Packet_Length,HC_SCO_Data_Packet_Length, HC_Total_Num_ACL_Data_Packets, HC_Total_Num_SCO_Data_Packets) HCI_Read_Country_Code (obsoleto) HCI_Read_BD_ADDR

Parametri di stato OGF=5 HCI_Read_Failed_Contact_Counter(Connection_Handle) Legge il contatore dei pacchetti persi con una particolare connessione) HCI_Get_Link_Quality Restituisce un byte 0=pessimo 255=ottimo HCI_Read_RSSI Restituisce un byte tra –128dbm e +128dbm

Comandi di test OGF=6 Read / write loop-back mode

HCI Flow control Transmitter host Receiver host Transmitter host controller Receiver host controller

HCI Flow control /2 Necessario sia da host a host controller che viceversa Basato si pacchetti dati HCI Dipendente dalle dimensioni dei buffers Soggetto alla latenza del protocollo di trasporto: non sarebbe efficiente uno stop-and-go ad ogni pacchetto Occorre minimizzare le notifiche del controllo di flusso per non intasare il bus di trasporto

Flow control: Host to Host controller L’host abilita il controllo di flusso col comando Set_Host_Controller_To_Host_Flow_Control L’host valuta la grandezza del buffer del H.C. (in pacchetti) col comando Read_Buffer_Size All’ inizio l’host assume il buffer HC vuoto, inizializza una variabile (B) dei buffers disponibii Ad ogni pacchetto inviato all’ HC, l’host decrementa B Se B diventa 0, l’host smette di inviare pacchetti. Periodicamente, l’HC invia un evento Number Of Completed Packets per notificare i pacchetti correttamente trasmessi L’host, somma a B il valore dei pacchetti inviati

Macchina a stati Flow control B= buffer size Evento: Trasmessi N pacchetti Inviato pacchetto HCI B= B+N Wait B= B-1 B=0 Stop Evento: Trasmessi N pacchetti

UART transport Usata soprattuto in applicazioni ‘embedded’ Richiede un protocollo aggiuntivo di multiplexing per distinguere i 4 flussi Viene aggiunto un Byte prima di ogni pacchetto HCI: 0x01= pacchetto comandi 0x02= pacchetto dati ACL 0x03= pacchetto dati SCO 0x04= pacchetto eventi

USB transport Perfetto in ambiente PC, spesso usato anche internamente su motherboard Sfrutta il meccanismo delle pipes USB per multiplexare i flussi Comandi= endpoint 0x00 (Control) Eventi= endpoint 0x81 (Interrupt) Dati ACL input = endpoint 0x82 (bulk in) Dati ACL output=endpoint 0x02 (bulk out) Dati SCO= endpoints 0x83,0x03 (isoch I/O) Autoconfigurante: Class of device =0xE0, subclass=0x01, pcode=0x01