Programmazione Hardware Software - Tutorial

bitPortal.it: Programmazione Hardware e Software



 Programmazione
Visual Basic.NET
Visual C++
LabView
C/C++ con Linux
Tcl/Tk
Bash
HTML
Javascript
Sicurezza

 Collegamenti    esterni
Centinaia di Giochi Gratis ai quali Giocare Online
 Giochi Gratis

Settore Finanza: Guida al Trading Online
 Guida Trading Online

Settore Finanza: Guida Prestiti e Finanziamenti
 Guida Prestiti e Finanziamenti

Tutorial e articoli su Php, Xml, AJjax,VoIP ..
 WebSpazio.it

Articoli riguardanti il tema del lavoro da casa
 lavorare da casa

Tutorial sul web hosting + Articoli riguardanti il tema dell' hosting di siti web
  Hosting Sito Web

Inviaresmsgratis.it si propone come bussola per tutti gli utenti che sono alla ricerca di siti internet per inviare sms gratis.
  SMS Gratis

Directory in cui segnalare il vostro sito gratis
    Directory

Guida alla zoologia e alle specie animali
    Zoologia




  USB


Tutorial USB







Application Layer
Lo strato applicazioni è costituito dal client software per quanto riguarda l’host e dalle funzioni dal lato device Il client software gestisce le interfacce trasferendo dati dal suo buffer agli endpoint associati alle interfacce stesse Il client software lavora con una specifica funzione di una periferica, indipendentemente dalle altre funzioni della periferica nel sistema. Il protocollo USB Le transizioni USB avvengono tramite pacchetti. Ogni transizione è composta da tre fasi:
  • Token phase: l’host inizia il pacchetto indicando il tipo di transizione
  • Data phase: i dati attuali sono trasmessi tramite pacchetti. La direzione dei dati coincide con la direzione indicata nella fase di token trasmessa precedentemente
  • Handshake phase (opzionale): è il pacchetto inviato indicante il successo o il fallimento della transizione
USB usa un polling protocol: ogni volta che l’host vuole ricevere dati da una periferica le invia un token
Se la periferica ha dati da inviare li invia e l’host risponde con un pacchetto di handshake.
Se la periferica non ha dati da inviare, l’host emette un token verso la periferica successiva.
Se l’host vuole inviare dati ad una periferica, le invia prima un token appropriato e il successivo pacchetto di dati. La periferica risponde con un pacchetto di handshake.

Ci sono quattro tipi fondamentali di trasferimento USB:
  • Isochronous transfer: trasferimento isocrono, usato per periferiche multimediali (audio, video, …). È garantita la larghezza di banda richiesta. Questo tipo di trasferimento è meno attento al successo del trasferimento dati e permette più errori
  • Bulk transfer: consiste nell’invio massiccio di dati (stampanti, scanner, …). La larghezza di banda allocata in ogni transizione varia in accordo con le disponibilità del bus nel momento del trasferimento. Garantisce pochi errori nella comunicazione
  • Interrupt transfer: usato per periferiche che hanno bisogno di riportare brevi eventi (mouse, joystick, …)
  • Control transfer: usato per configurare le periferiche. La configurazione avviene durante il processo di enumerazione ma si può effettuare in ogni istante della comunicazione

Il protocollo USB - Formato dei campi del pacchetto
Differenti campi dei pacchetti sono:
  • Sync Field: si colloca all’inizio del pacchetto. Si individua come uno stato di attività seguito da KJKJKJKK (codificato in NRZI). Permette alle periferiche riceventi di sincronizzare il clock interno con i dati in ingresso
  • PID – Packet Identifier Field: è il campo contenente l’identità del pacchetto. È composto da 8 bit: i primi 4 sono usati per notificare l’id del pacchetto e i 4 successivi sono usati come check bits
IMM8
formato del pacchetto

Il protocollo USB - Formato dei campi del pacchetto – PID1
Il PID si divide in tre gruppi principali:
  • Tokens:
    • Out token: indica che i dati successivi saranno trasmessi dall’host alla periferica
    • In token: indica che i dati successivi saranno trasmessi dalla periferica all’host
    • SOF token: indica lo start del frame
    • SETUP token: indica che i dati successivi saranno inviati dall’host al device e contengono comandi di setup usati per la configurazione

  • Data: descrive il tipo di dato (pari, dispari, ad alta o bassa velocita, isocrono, …)

  • Handshake: usato nei pacchetti di handshale prima di indicare il fallimento o la riuscita del trasferimento. Può essere:
    • ACK: il ricevitore riceve pacchetti liberi da errore
    • NAK: il ricevitore non è in grado di ricevere dati (overflow, …) o il trasmettitore non è in grado di inviare dati (underflow, …)
    • STALL: lo specifico endpoint si è arrestato o il comando di SETUP non è supportato
Il protocollo USB -Formato dei campi del pacchetto - Address Field
Il campo di indirizzo è diviso in due campi:
  • Address field (ADDR): contiene l’attuale indirizzo della funzione (in genere è la periferica stessa), assegnato durante l’enumeration process. L’indirizzo della funzione è univoco e possono esserci 127 diversi indirizzi nel sistema

    formato del pacchetto

  • Endpoint Field (ENDP): contiene il numero di endpoint assegnato ad una funzione.

    formato del pacchetto
Il protocollo USB - Formato dei campi del pacchetto Frame Number Field
E' composto da 11 bit che indicano il numero del frame corrente. Il campo è contenuto solo nei token SOF che indicano l’inizio del frame Data field: contiene il dato trasmetto nella transizione. Può contenere un massimo di 1023 bytes.
CRC field: è usato per proteggere tutti i campi e i dati di un pacchetto (tranne il campo PID). È composto da 5 bit in un token packet e da 16 bit in un data packet.

Formato dei pacchetti
I vari formati dei pacchetti sono:
  • Token packet: ogni transizione inizia con l’emissione di un token da parte dell’host. I campi ADDR e ENDP definiscono univocamente l’endpoint che deve ricevere i dati di SETUP o OUT o l’endpoint che deve trasmettere dati negli spostamenti IN

    formato del pacchetto

  • Start of Frame Packet: l’host emette un SOF ogni 1msec±0.0005msec. Il pacchetto contiene il campo del numero del frame. SOF può essere usato come trigger per processi di OUT isocrono

    formato del pacchetto
  • Data Packets: sono composti da PID (che indica che il pacchetto contiene dati), campo dei dati, e il codice CRC16 per proteggere i dati

    formato del pacchetto

  • Handshake Packets: composto solo da PID indicante il risultato dello operazioni precedenti (come già descritto dietro)

    formato del pacchetto