290 likes | 457 Views
MIC7340 Entrées sorties de base – ports sériels. Mounir Boukadoum. Transmission sérielle. Transmet un mot binaire bit par bit, sur un seul fil La durée d’un bit est spécifiée par une horloge
E N D
MIC7340 Entrées sorties de base – ports sériels Mounir Boukadoum
Transmission sérielle • Transmet un mot binaire bit par bit, sur un seul fil • La durée d’un bit est spécifiée par une horloge • En théorie, plus lente que la transmission parallèle ; en pratique, moins de fils => moins d’interférence électromagnétique => liens plus rapides et câbles plus longs
Types de transmission sérielle • Asynchrone : • L’intervalle séparant 2 caractères transmis est quelconque. • Simple mais demande de détecter les débuts et fin des caractères (« overhead » lourd) • Utilisation: liaisons locales (pour la simplicité de l`interface), vitesses faibles. • Synchrone : • Les caractères sont transmis par blocs, sans temps mort entre caractères successifs (« overhead » léger) • Architecture plus complexe qu’en mode asynchrone • Les intervalles de temps entre les blocs doivent être remplis avec des caractères de synchronisation (« padding »). • Une horloge précise doit assurer la synchronisation entre émetteur et récepteur • Utilisation: liaisons distantes, vitesses grandes.
Exemple de trame dans un système de communication sériel synchrone
Vitesses de transmission normalisées (bits/s ou bps) • Asynchrones : • 5 (code Morse), 75 (Baudot), 110-150-300- 600 (TTY, compteurs électriques avec modem), 1200- 2400-4800-9600-(14400)-19200-(28800)-(33400)- 38400, (56000, ), 57600, 115200 • Synchrones : • 8k (voix) à 64k (ISDN), 1,536 M (T1), 2,048 (E1), 1 M-7M (ADSL), 12 M-3 (USB), etc. • Baud ou bits/s ? • Baud = bit/s en tenant compte des bits de “gestion”
Modes de liaison • Simplex : transmission unidirectionnelle • Exemple: télédistribution • À l’alternat (half-duplex) : transmission bidirectionnelle non simultanée • Exemple: émetteur/récepteur radio, tranmission par packets (Ethernet/Internet), intercom • Duplex : transmission bidirectionnelle simultanée • Exemple : téléphone, la plupart des ports sériels d’ordinateurs
Transfert sériel asynchrone • Phases (protocole RS-232) : • Repos • Bit de départ • Données • Parité • Bit d’arrêt • Repos ou début du transfert suivant
UART • Universal Asynchronous Receiver-Transmitter • Encapsule la fonctionnalité d’un port sériel asynchrone dans trois types de registres • Contrôle • État • Données • Peut détecter diverses erreurs • Inclut les tampons d’attente • Inclut des signaux de commande de MODEM et de gestion de canal • Certains génèrent l’horloge
Protocole RS-232 • Protocole populaire pour le raccordement physique de deux ports sériels • Définit plusieurs traits d’un canal de communication par UART • Équipements (DCE et DTE) • Signaux et règles de synchronisation entre émetteur et récepteur • Niveaux des signaux • Connecteur physique • Signaux de contrôle pour Modem
Contrôle de flux • Permet de contrôler le débit de l`émetteur • Adapte les capacités de transmission différences entre émetteur et récepteur • Peut être implémenté en logiciel et en matériel • Logiciel • Codes XON/XOFF • Matériel • Lignes RTS/CTS
Contrôle Périphérique externe (modem, terminal, ... 0 ou 5V ± 12V 12V Statut R x D ± 12V 12V 0 ou 5V Vitesse T x D Data Adaptateur à l'interface RS-232-C (MC1488 et MC1689 ou MAX230) Connecteur DB9, DB25 ou autre 68HC11, UART ou autre Liaison en série asynchrone générale • UARTS: • Motorola 6850 ACIA • General Instruments AY-3-1015D UART • National Semiconductor 8250 ACE • Intel 8251A USART (Synchrone / asynchrone) • Intel 82050, 16450, 16550 Asynchronous Communications Controller (utilisé dans les PCs) • Motorola MC2681 DUART
Autres interfaces sériels • SPI • I2C • USB (souvent associé à un port UART) • 1-Wire, Fire-wire et autres • SPI/I2C populaires pour ajouter des boîtiers dans un design • USB populaire pour ajouter des périphériques externes
SPI • Serial Peripheral Interface • Basé sur des registres à décalage • Synchronisation des transferts assurée par une horloge • Opère comme une courroie crénelée : pendant que des bits sortent, d’autres entrent • Un seul maître et un ou plusieurs esclaves http://www.mct.net/faq/spi.html • Terminologie • MOSI ou SDI : master out & slave in • MISO ou SDO : Master in & slave out • CLK : Horloge de synchronisation ; transferts sur front montant ou descendant (programmable) • SS ou CS : Slave select venant du maitre, habituellement actif bas
SPI • Séquence d’événements lors d’un échange • Les périphériques opèrent souvent en semi duplex
I2C Séquence d’évènements lors d’un échange (gérée par le maitre) • Génération du bit Start (S). • Génération de l’adresse de l’esclave (ADDRESS) • Génération du bit Read(R)=1 / Write(W)=0 • Attente du bit d’acquiescement de l’esclave (A) • Génération/réception de l’octet de données (DATA). • Attente/envoi du bit d’acquiescement (A) • Génération du bit STOP (P) ou d’un nouveau bit Start (S) • Lors d’un échange de plusieurs octets, les étapes 5 et 6 sont répétées
Universal Serial Bus Un maître et un ou plusieurs esclaves Utilise 4 lignes +5 V et masse (le maître peut générer 500 MA par prise) 2 lignes de données torsadées différentielles avec encodage NRZ Souvent utilisé dans les microordinateurs (apparait comme un port COM) Plusieurs versions 1.1 : 5 à 12 Mb/s 2.0 : 480 Mb/s 3.0 : 4.8 Gb/s (à venir) Les connecteurs sont tels que l’alimentation est appliquée avant les données, permettant aux esclaves d’être branchés et retirés en tout temps (“Plug-and-Play”). À la mise sous tension, l’hôte scrute chaque esclave pour déterminer son type et vitesse et lui attribue une adresse (processus d’énumération). Le processus d’énumération est mis à jour lorsqu’un dispositif est branché ou retiré du réseau Standard privé (payement de royautés ou usage d’un composant qui l’a déjà) Protocole compliqué et difficile à déboguer ; mieux vaut utiliser des composants qui l’ont déjà ! USB
Ports sériels dans un C • Exemple du ADuC7026 (ARM7) : • 4 ports sériels intégrés, 1 UART et 3 synchrones (SPI ou I2C) • Broches multiplexées
Port UART du ADuC7026 • COMCON0 • Configuration de base des trames • Baud rate • Diviseur pour l’horloge