b'\n_START_ARTICLE_\nController Area Network\n_START_PARAGRAPH_\nIl Controller Area Network, noto anche come CAN-bus, \xc3\xa8 uno standard seriale per bus di campo (principalmente in ambiente automotive), di tipo multicast, introdotto negli anni ottanta dalla Robert Bosch GmbH, per collegare diverse unit\xc3\xa0 di controllo elettronico (ECU). Il CAN \xc3\xa8 stato espressamente progettato per funzionare senza problemi anche in ambienti fortemente disturbati dalla presenza di onde elettromagnetiche e pu\xc3\xb2 utilizzare come mezzo trasmissivo una linea a differenza di potenziale bilanciata come la RS-485. L\'immunit\xc3\xa0 ai disturbi EMC pu\xc3\xb2 essere ulteriormente aumentata utilizzando cavi a doppino intrecciato._NEWLINE_Sebbene inizialmente applicata in ambito automotive, come bus per autoveicoli, attualmente \xc3\xa8 usata in molte applicazioni industriali di tipo embedded, dove \xc3\xa8 richiesto un alto livello di immunit\xc3\xa0 ai disturbi. Il bit rate pu\xc3\xb2 raggiungere 1 Mbit/s per reti lunghe meno di 40 m. Velocit\xc3\xa0 inferiori consentono di raggiungere distanze maggiori (ad es. 125 kbit/s per 500 m). Il protocollo di comunicazione del CAN \xc3\xa8 standardizzato come ISO 11898-1 (2015). Questo standard descrive principalmente lo strato (layer) di scambio dati (data link layer), composto dallo strato sottostante (sublayer) "logico" (Logical Link Control, LLC) e dallo strato sottostante del Media Access Control, (MAC) e da alcuni aspetti dello strato "fisico" (physical layer) descritto dal modello ISO/OSI (ISO/OSI Reference Model). I protocolli di tutti gli altri layer sono lasciati alla libera scelta del progettista della rete.\n_START_SECTION_\nBit stuffing\n_START_PARAGRAPH_\nConsiste nell\'inserire un bit di valore opposto dopo cinque bit consecutivi dello stesso valore. Questa pratica \xc3\xa8 chiamata bit stuffing (letteralmente riempimento di bit), ed \xc3\xa8 necessaria a causa della codifica utilizzata nel frame, di tipo NRZ (Non Return to Zero), che in caso di valori consecutivi uguali mantiene lo stesso valore di tensione e non genera transizioni utili a risincronizzare i dispositivi comunicanti. I frame sottoposti a questa operazione vengono poi "decodificati" dal ricevitore, che rimuove i bit precedentemente inseriti. Di conseguenza, quando vengono ricevuti sei bit uguali consecutivi dello stesso valore (111111 oppure 000000), essi vengono considerati un errore. Il bit stuffing implica che i frame dati trasmessi possono essere pi\xc3\xb9 grandi di quelli che ci si potrebbe aspettare dall\'applicazione delle tabelle soprariportate.\n_START_SECTION_\nLayer applicativi\n_START_PARAGRAPH_\nPoich\xc3\xa9 lo standard CAN non prevede di per s\xc3\xa9 protocolli di livello applicativo, come ad esempio il controllo di flusso, l\'indirizzamento dei dispositivi collegati al bus e la trasmissione di blocchi dati pi\xc3\xb9 grandi di un singolo messaggio hanno richiesto l\'implementazione di appositi protocolli di livello applicativo. Fra questi si annoverano DeviceNet, CANopen, CANaerospace, SDS e CAN Kingdom.'