Академический Документы
Профессиональный Документы
Культура Документы
Version du
\ThesisDate
Responsable Pdagogique :
Eric Magarotto
Avertissement : Ce document constitue le support du cours et ne prtend donc ni l'originalit, ni l'exhaustivit. Ces notes doivent beaucoup aux emprunts fait de nombreux ouvrages et dirents travaux de collgues. Ce document est une version provisoire qui s'adresse (en priorit) aux tudiants de l'Universit de Caen en L3 (14 heures de Cours).
Echanges de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systme d'exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus d'extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus sries : XPCI, SSA-FC-IEEE1394, SATA, SPI-Microwire, I2C . . . . . . USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IEEE1394 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IEEE488 (GPIB et HPIB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCCard (ancien PCMCIA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38 39 39 40 40 41 41 41 42
Bus de priphriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus embarqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 3 Interruptions
3.1 3.2 3.3 3.4 Notion d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Interruption matrielle et logicielle . . . . . . . . . . . . . . . . . . . . . . . . Systme d'interruptions hirarchises . . . . . . . . . . . . . . . . . . . . . . . . . . . Causes d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mcanisme d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5 3.5.1 3.5.2 3.6 3.7 Identication de la source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vecteur d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Actions entreprendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reprise du programme interrompu . . . . . . . . . . . . . . . . . . . . . . . . Le partage des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architecture du PIC 8259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmer le PIC 8259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 45 45 46 46 47 48 49 49 49 50 52 54 54 54 55 56 57
Le PIC 8259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gestion des Entres-Sorties par interruption . . . . . . . . . . . . . . . . . . . . . . . Interruptions Logicielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 3.7.2 Interruptions BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interruptions DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions lies aux interruptions . . . . . . . . . . . . . . . . . . . . . . . . .
3.8
Signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode standard SPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode tendu EPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode tendu ECP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interruption logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tableau des registres pour tous les modes . . . . . . . . . . . . . . . . . . . .
61 62 62 62 63 65 66 66 67
Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 6 UART
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 6.1.2 6.2 6.3 ii Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avantages de l'UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 82 83 83 84
6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 6.3.10 6.4 6.4.1 6.4.2 6.5
RBR/THR mission/rception . . . . DLL / DLM vitesse de transmission . IER autorisation d'interruption . . . . . IIR nature des interruptions . . . . . . FCR rglages des buer FIFO . . . . . LCR rglages de la transmission . . . . MCR rglages du modem . . . . . . . . LSR tat de la transmission . . . . . . . MSR tat du modem . . . . . . . . . . SCR rglages pour une horloge externe
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85 87 87 88 88 90 90 91 91 92 92 92 93 95
Chapitre 7 I2C
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 7.1.2 7.1.3 7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.3 7.3.1 7.3.2 7.4 7.4.1 7.4.2 7.4.3 7.5 7.5.1 7.5.2 7.5.3 Prsentation et domaine d'application . . . . . . . . . . . . . . . . . . . . . . Caractristiques gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouvelle caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les 2 modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . La validit des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les conditions de dbut / n . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 96 97 98 98 98 98 99
Le protocole I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La transmission de donnes d'un octet . . . . . . . . . . . . . . . . . . . . . . 100 La synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 L'arbitrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Adressage standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Adresses rserves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Ecriture du matre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Lecture du matre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Format combin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 iii
Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Adressage tendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Ecriture du matre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Lecture du matre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Formats combins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Chapitre 8 USB
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.1.1 8.1.2 8.1.3 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.5 8.5.1 8.5.2 8.6 iv USB 1.1 et 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Cbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Modes de transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 PIPE : Prliminaire la communication . . . . . . . . . . . . . . . . . . . . 113 Phases de transactions (protocole) . . . . . . . . . . . . . . . . . . . . . . . . 113 Modes de transferts des paquets (terminaisons) . . . . . . . . . . . . . . . . . 113 Squencement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 PIPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Trame de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Format des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Types de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Champs des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Dtection d'erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Control Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Bulk Data Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Interrupts Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Isochronous Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Enumration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Descripteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Chapitre 9 IEEE-1394
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.3.1 FireWire ? IEEE 1394 ? i-Link ? . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Avantages de L'IEEE 1394 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Chipset VIA Fire xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Un bus standard ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Cbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Norme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Caractristiques principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Fonctionnement du bus FireWire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Un protocole, trois couches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Une couche physique optimise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Un arbitrage ecace et juste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Plug and Play et Hot Plugging ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 IEEE 1394 b, des amliorations . . . Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
10.5.2 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.6 Tableau rcapitulatif des adresses de la carte Impulsion . . . . . . . . . . . . . . . 149 10.7 Registres du Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Chapitre 11 Conclusion Liste des gures Liste des tableaux Bibliographie 152 156 157
vi
Chapitre 1
1.1 Introduction
Un ordinateur est une machine de traitement de l'information. Il est capable d'acqurir de l'information, de la stocker, de la transformer en eectuant des traitements quelconques puis de la restituer sous une autre forme. La suite des instructions dcrivant la faon dont l'ordinateur doit eectuer un certain travail est appel programme. L'ensemble des instructions excutables est appel langage. Un ordinateur peut alors tre considr comme une hirarchie de niveaux. A chaque niveau correspond une machine virtuelle et un langage associ.
Pascal (addition et soustraction) amliore ensuite par Leibniz (multiplication et division). Au 19me sicle, Babbage inventa la machine dirences puis la machine analytique devenue programmable par Ada Augusta Lovelace et avec une structure trs proche des machines actuelles. Atanassof inventa une machine qui utilisait l'arithmtique binaire et des condensateurs en guise de RAM. Toutefois, cette machine ne put tre ralise faute d'adquation technologique. La premire vritable machine fut donc celle d'Aiken (en 1944) base de relais et de rubans perfors. gnration 1 - les tubes vides (1945-1955) : Avec l'avnement de l'lectronique et l'apparition de la guerre mondiale, on se consacra au chirage (cryptage et codage) et on aboutira la construction du premier ordinateur lectronique (COLOSSUS) auquel Turing a fortement particip. Mauchley et Eckert achevrent une machine (ENIAC) utilisant des tubes vides et des relais (30 tonnes, 20 registres de 10 chires) en 1946. Un des participants au projet ENIAC, Von Neumann construisit l'IAS (1952) qui constitue encore aujourd'hui, l'architecture 1
de base de la plupart de nos ordinateurs. Pendant ce temps, l'entreprise Eckert-Mauchley fut la premire commercialiser un ordinateur, l'UNIVAC. Plusieurs entreprises telles que IBM ou Bull s'intressrent alors la construction et la commercialisation d'ordinateurs. gnration 2 - les transistors (1955-1965) : Le prix Nobel de Physique de Bardeen, Brattain et Shockley fut dlivr en 1956 pour l'invention en 1948 chez Bell Labs du transistor. Ceci rvolutionna dnitivement les ordinateurs. DEC (en 1961), commercialisa le premier miniordinateur, le PDP-1 et continua avec le PDP-8 qui possde une caractristique nouvelle : l'omnibus, ralisant l'interconnection de tous les composants. IBM ragit avec la construction de diverses machines (1401, 7094).En 1964, CDC construit une machine avec une architecture parallle, le 6600 dont Cray est l'architecte. La course la puissance tait lance, symbolise par le Gamma60 de Bull. La prise de conscience de l'importance du logiciel se fait cette poque (Algol, anctre du Pascal) mais n'inue pas encore sur la construction de matriel ddi. gnration 3 - les circuits intgrs (1965-1980) : Noyce inventa le circuit intgr en 1958. IBM cra la premire gamme unie (calcul et gestion) d'ordinateur avec le System/360 qui dota toute la gamme avec le mme langage d'assemblage et instaura la multiprogrammation qui permet plusieurs programmes de rsider simultanment en mmoire. Le PDP-11, successeur du PDP-8 et d'un rapport cot/performance acceptable, allait assoir la suprmatie de DEC dans le secteur de la mini-informatique. gnration 4 - les VLSI (1980- ?) : Les VLSI (Very Large Scale Integration ) permettent, dans les annes 80, l'intgration de milliers, puis de millions de transistors sur une puce, favorisant la miniaturisation et l'augmentation de la rapidit de traitement. Les prix chutant, l're de l'informatique personnelle commence. Kildall conoit le CP/M, un logiciel d'exploitation ddi au 8080 d'Intel.Apple fut propuls au rang de leader mondial avec l'Apple puis l'Apple II conues par Jobs et Wozniak. IBM rpliqua avec le PC (qui utilisa le 8088) en 1981 et battit tous les records de vente, le systme d'exploitation tant le MS-DOS. IBM et Microsoft dvelopprent (respectivement) OS/2 (interface graphique concurrente du MacIntosh) et Windows (utilisant la couche DOS). Au milieu des annes 80, l'architecture RISC commena a remplacer CISC, juge trop complexe. Le superscalaire dbuta en 1990 . . .
langages d'application : ces langages sont le plus souvent l'aaire de spcialistes. Ce sont
des langages spcialiss de trs haut niveau, trs synthtiques et abstraits. Ils ont t conus pour rendre l'utilisation des machines plus simple. langages volus : ce sont des langages universels trs utiliss par les scientiques. D'innombrables langages ont t conus mais les plus populaires sont Pascal, C, Fortran, Ada. Proches de l'algorithme, ils permettent de coder assez aisment et rapidement les problmes scientiques. langage d'assemblage : c'est l'expression symbolique du langage propre la machine. Ce langage est constitu de mnmoniques qui dcrivent le jeu d'instruction du processeur. Il est en eet trs dicile (voire impossible) de programmer la machine en binaire di2
Chapitre 1
CM_InfoIndus:version du mardi 29 novembre 2005 2 h 17
1.1. Introduction
rectement, c'est pourquoi l'utilisateur qui veut travailler en utilisant les instructions du processeur, programme en langage d'assemblage. Un compilateur appel assembleur permet de traduire ce langage symbolique en langage binaire (niveau macromachine).
1.1 Introduction
tion est d'orir l'utilisateur un ensemble de services permettant d'utiliser les ressources Dans ce chapitre nous rappelons larchitecture gnrique dun ordinateur et les dide la machine (mmoire, clavier ...). Le langage associ est compos de commandes que rentes units fonctionnelles dun processeur. Certaines de ces WindowsXP units ainsi que la mmoire peut excuter ce systme (Unix, Linux, WindowsNT, ...). macromachine out couche ISA du processeur de la machine (Pendes ordinateur ont tudies dans: il le s'agit cours essentiellement de deuxime anne. tium, Athlon, PowerPC ...). Le langage associ est compos par le jeu d'instruction du processeur (langage machine du processeur ou langage binaire). micromachine ou micro-architecture : l'excution d'une instruction du langage machine est une opration qui ncessite galement une opration de traduction en une squence de microoprations. Ce niveau est invisible par l'utilisateur mais constitue un niveau important pour le concepteur du processeur. Le langage associ est compos de microinstructions que peut excuter le processeur. Un ordinateur peut tre considr comme une hirarchie de niveaux. A chaque niveau machine physique ou couche logique : a ce niveau on dcrit les composants lectroniques correspond une machine virtuelle Le et un langage associ (voir gure 1.1). qui composent l'ordinateur. langage associ est constitu des signaux logiques 0 et 1.
Langages dapplication
langages spcialiss
Applications
Langages volus
Langages dassemblage
Assembleur
Systme dexploitation
instructions machine
micro-instructions
Machine physique
langage binaire
Un ordinateur est constitu de processeurs, de mmoires et de dispositifs d'entre/sortie judicieusement interconnects. Du point de vue utilisateur, un ordinateur est gnralement compos des lments suivants : d'une unit centrale (le botier), d'un moniteur (l'cran), de priphriques externes (souris, imprimantes, scanner, clavier), d'interfaces d'entre-sortie (cartes USB, SCSI, cartes d'extension diverses), de priphriques internes (cartes sons, vido, . . . ), d'un disque dur, d'un lecteur de disquettes, d'un lecteur de CD-ROM, DVD, . . . La carte-mre (voir gure 1.3) est l'lment principal de l'ordinateur car c'est sur elle que sont connects les lments constitutifs de l'ordinateur. Celle-ci est compose principalement : d'un processeur (cerveau de l'ordinateur), d'un ou de plusieurs chipset(s) : cot du processeur se trouve un jeu de composant soud sur la carte mre, appel chipset. Son rle est capital, il prend en charge le contrle de la circulation des informations : l'horloge du systme, la mmoire vive, l'accs direct mmoire (Direct Memory Access ), le clavier, la souris et les connecteurs d'extension. Il rgit tous les changes au sein du PC en aiguillant les donnes sur les dirents bus de la carte mre : le bus mmoire, PCI, AGP, etc . . . de la mmoire : BIOS ROM, RAM et mmoire cache, d'un contrleur de disques permettant le contrle du(des) disque(s) dur(s), du lecteur CDROM et du lecteur de disquettes, des priphriques internes connects sur les bus ISA, PCI ou AGP . . . des circuits grant les Entres/Sorties, d'une horloge et d'une pile pour le CMOS. 4
1.2.1 Le microprocesseur
Un microprocesseur est un circuit intgr complexe caractris par une trs grande intgration et dot des facults d'interprtation et d'excution des instructions d'un programme. Il est charg d'organiser les tches prcises par le programme et d'assurer leur traitement. C'est le cerveau du systme. Il est parfois appel CPU (Central Processing Unit ) et est caractris par sa frquence d'horloge (en MHz), sa largeur des bus de donnes et d'adresse, sa mmoire adressable, le nombre de transistors 1 et la taille de la gravure (en microns). Ses performances sont caractrises par le CPI (Cycle Par Instruction) et le MIPS (Millions d'Instructions Par Secondes) qui dpendent directement de la frquence d'Horloge et son jeu d'instructions. Un microprocesseur est construit autour de deux lments principaux : 1. une unit de commande 2. une unit de traitement Ces lments sont associs des registres chargs de stocker les direntes informations traiter 2 . L'ensemble sont relis entre eux par des bus internes (de donnes et d'adresses) permettant l'change d'informations (voir gure 1.4).
Loi de Moore : pour le moment, cette loi (le nombre de transistors intgrs sur les circuits double tous les 18 mois) est toujours respecte. 2 Il existe deux types de registres : registre d'usage gnral (BP) connect au bus de donnes et les registres d'adresses (PP : registre pointeur et SP : pointeur de pile LIFO) connects au bus d'adresses.
1
Remarque 1.1 (jeu d'instructions et langage). La premire tape de conception d'un microprocesseur consiste dnir son jeu d'instructions lmentaires, notamment le type d'instruc-
tions, leur codage, les modes d'adressage et le temps d'excution relatif aux diverses instructions. Le seul langage compris par le microprocesseur est le langage machine. Pour faciliter la tche du programmeur, on utilisera le langage assembleur (propre chaque microprocesseur) compos de mnmoniques (oprations de transfert, arithmtiques et logiques). Pour viter la dicult de mise en uvre de l'assembleur, on utilise un langage de haut niveau (C, Pascal, Java, etc . . . ) plus adapt aux applications. Pour que ce dernier soit compris par le microprocesseur, il faut le compiler (compilateur : traduction en assembleur) puis l'assembler (assembleur : conversion en code machine). s
C'est la partie oprative du microprocesseur. Il s'agit du cur du microprocesseur. Cette unit regroupe les circuits qui assurent les traitements ncessaires l'excution des instructions. Elle est compose de : une Unit Arithmtique et Logique (ALU : Arithmetic and Logical Unit ) : ce circuit assure les fonctions logiques (comparaison, dcalage, ET, OU, etc . . . ) et arithmtiques (addition, soustraction, etc . . . ) ; un registre d'tat constitu (gnralement) de 8 bits dont chacun reprsente l'tat de la dernire opration eectue par l'ALU : Les principaux indicateurs d'tat (ou drapeaux : ag )sont la retenue (Carry), la retenue auxiliaire (AC), le signe (S), le dbordement (oVerow), le zro (Z) et la parit (P) ;
des accumulateurs qui sont des registres servant stocker une oprande au dbut et le rsultat la n d'une opration.
lement des portions de code (plus ou moins grandes) qui sont traites de nombreuses fois par le processeur. Le pipelining permet, grce au partitionnement des instructions en plusieurs tapes, d'avoir une instruction en cours d'excution dans chacune des tapes, permettant d'amliorer l'ecacit. Le nombre d'tapes qui caractrise les microprocesseurs pipeline est appel tages 3 .
L'Athlon d'AMD comporte 11 tages tandis que les Pentium 2, 3 et 4 en comportent 12, 10 et 20
sur des processeurs dirents des instructions relatives un mme programme. Le processeur possde plusieurs units de traitement travaillant en parallle. Cela se traduit par le dcoupage d'un programme en plusieurs processus qui seront traits par des processeurs dirents dans le but de gagner en temps d'excution. Cela ncessite toutefois une communication entre les dirents processus donc une mmoire cache importante.
Remarque 1.2 (Mmoire cache ou antmmoire). Malgr des progrs technologiques iden-
tiques pour les mmoires et les microprocesseurs, le dcodage des adresses et la lecture/criture d'une donne restent des phnomnes incompressibles. Pour viter les temps de latence qui en dcoule, on dispose d'une mmoire (appele mmoire cache 4 ou antmmoire) trs rapide entre le microprocesseur et la mmoire. Le principe repose sur le fait que la mmoire cache conserve les mots mmoires les plus frquemment employs (plutt que de les stocker dans la mmoire principale). Cette mmoire cache est spare en plusieurs niveaux (cache interne : L1 et cache externe : L2 et L3) et le cache interne (L1) est spar en 2 (l'un pour les instructions, l'autre pour les donnes). Il faut noter que la somme des espaces mmoires ncessaires dpasse presque toujours la taille physique de la mmoire. Pour pallier cet inconvnient, on utilise de la mmoire virtuelle avec les notions associes de pagination, segmentation et TLB (tampon de traduction ). s Remarque 1.3 (Processeurs spciaux). Certains processeurs (rduits) moins performants sont ddis aux applications, permettant une optimisation des fonctions. Il s'agit des microcontrolleurs (acquisition temps rel, interfaage) et des DSP (traitement numrique du signal, application en automatique, multimdia, lectronique embarque). L'extension du paralllisme mne aux processeurs matriciels qui sont bass sur l'emploi en parallle de plusieurs processeurs. s
10
3. slection de la mmoire (CS = 0), 4. lecture (resp. criture) de la donne. Les circuits de mmoire ne sont pas tous identiques. La dirence se fait par leurs caractristiques dont les principales sont :
la capacit : c'est le nombre total de bits que contient la mmoire (exprim en Ko ou Mo), le format des donnes : largeur (en bits ou octets) du mot mmorisable, le temps d'accs : temps qui s'coule entre l'instant ou l'opration (R/W ) est lance l'instant o
la donne est eectivement disponible sur le bus de donnes. On parle alors d'accs direct et de temps d'accs constant (indpendant de l'adresse), le temps de cycle : intervalle minimal qui spare 2 demands successives de lecture (ou criture), le dbit : nombre maximum d'informations lues (ou crites) par secondes, la volatilit : elle caractrise la permanence des informations dans la mmoire (donne volatile si elle disparat lors d'absence d'alimentation, non volatile dans le cas contraire). Les critres de choix sont (principalement) la capacit, la vitesse, la consommation et le cot.
1.2.2.3 Mmoire vive : RAM Dnition 1.2 (RAM). Une mmoire vive (RAM : Random Access Memory) sert au stockage temporaire des donnes. Elle doit avoir un temps de cycle trs court pour ne pas ralentir le microprocesseur. s Ces mmoires sont en gnral volatiles et sont divises en 2 grandes familles : statiques et dynamiques. La mmoire statique (SRAM) est un composant dont chaque bit est constitu d'une bascule (contenant entre 4 et 6 transistors). Dans la mmoire dynamique (DRAM), l'information est mmorise sous forme d'une charge lectrique stocke dans un condensateur (transistor MOS), augmentant ainsi la capacit d'intgration et rduisant la consommation. Toutefois, l'inconvnient majeur rside dans l'obligation, pour les DRAM 5 , d'un rafrachissement priodique (pour compenser les courants de fuite du condensateur), ce qui impose une gestion plus complexe et un temps d'accs aux informations plus long. En gnral les DRAM sont utilises pour la mmoire centrale alors que les SRAM sont plus adaptes aux mmoires cache et aux registres. 1.2.2.4 Mmoire morte : ROM Dnition 1.3 (ROM). Pour certaines applications, il est ncessaire de pouvoir conserver des
informations de faon permanente mme lorsque l'alimentation est interrompue. On utilise alors des mmoires non volatiles appeles mmoires mortes (ROM : Read Only Memory). La seule opration possible est une opration de lecture. s L'opration d'criture (qui est possible) est appele programmation. La mthode peut varier selon le type de ROM :
ROM : elle est programme par constructeur, son contenu est non modiable. Sa densit d'intPROM : c'est une ROM programmable une seule fois par l'utilisateur et rapidement dont le cot
est relativement faible.
actuellement, on utilise une DDR-SDRAM qui a remplac la DRAM-EDO. Pour une mmoire DRAM, le temps d'accs est la somme de dlai de cycle et de temps de latence. Sur un ordinateur, le temps de cycle correspond l'inverse de la frquence de l'horloge (3GHz 0, 33ns). Les DRAM se connectent par des barrettes DIMM avec un temps de cycle de 15 ns (EDO), 7 ns (PC133), 5ns (DDR) et 0,66ns (QDR) soit de 2 45 cycles microprocesseur !
5
11
EPROM : c'est une ROM reprogrammable (mais entirement chaque reprogrammation) et sou-
vent (un millier de fois). L'criture est toutefois plus lente (environ 1000 ) que sur une RAM. EEPROM : c'est une EPROM amliore car elle est eaable lectriquement mot par mot. L'utilisation en RAM est trs lente et son cot de ralisation est relativement lev. FLASH EPROM : communment appele mmoire ash (cl USB, lecteur MP3, PDA, appareil photo numrique), c'est une EEPROM particulire base sur 2 technologies (NOR : cellules en parallle, bus d'adresse et de donnes ddis ou NAND : cellules en srie, interface d'E/S indirecte, implantation plus dense).
1.2.2.5 Hirarchie
Une mmoire idale serait une mmoire de grande capacit, capable de stocker un maximum d'informations et possdant un temps d'accs trs faible an de pouvoir travailler rapidement sur ces informations. Toutefois, les mmoires grande capacit sont lentes et les rapides sont chres ! C'est pourtant la vitesse d'accs de la mmoire qui conditionne grandement les performances globales d'un systme. En eet, malgr un processeur 3 GHz, une mmoire travaille environ 400 MHz. On n'a jamais besoin de toute les informations en mme temps, on utilisera donc les spcicits de chaque type de mmoire de manire optimiser les performances. On peut donc ainsi La hirarchie figure suivante schmatise cettela hirarchie des mmoires : dnir une des mmoires selon gure suivante :
cot registres cache mmoire centrale mmoire d'appui mmoire permanente : disque dur capacit disque optique bande magntique
gure 1.9:Figure Hirarchie mmoire 9 On utilise les mmoires de faible capacit (trs rapides) pour stocker des informations frquemI.3.eutiles Bus : au le squelette des ordinateurs ment microprocesseur tandis qu'on utilisera des mmoire grande capacit (plus lentes) pour les informations moins utilises par le microprocesseur. Ainsi, plus on s'loigne du microprocesseur, plus la capacit et le temps d'accs des mmoires augmenter. Un bus est un moyen de communication entre lesva diffrents lments constituant une
au bus Mmoires par des connecteurs, dont l'ensemble constitue un fond de panier. Chaque emplacement 1.2.3 Secondaires
machine. Il s'agit en gnral d'un ensemble de fils lectriques. Les diffrents lments sont relis
par exemple). On utilise alors des mmoires secondaires souvent appeles mmoire de masse en rapport avec la taille leve de leur capacit. il s'agit principalement des disques. 12
(slot) du fond de panier (backplane) peut recevoir une carte lectronique (board). Sur un bus Les besoins en capacit des mmoires augmentent considrablement (avec la taille des chiers circulent diffrents types de signaux : adresses, donnes, contrle, alimentations, etc
I.3.f Entres/Sorties
disque dur : plateau mtallique, tte de lecture lectromagntique ottante sur coussin d'air disque souple, disquette : plateau souple, tte en contact avec la surface.
Il existe deux dirents standards de disque dur : IDE et SCSI qui utilisent les bus et contrleurs d'interface du mme nom (voir chapitre 2). On peut aussi rajouter les disques RAID dont la technologie dire et fait appel au paralllisme. (disque Winchester),
gure 1.10: Exemple de disque dur D'un point de vue physique, les disques durs possdent une constitution particulire. Les plateaux tournent sous la tte vitesse constante. Une piste est une zone circulaire dlimite correspondant une rotation complte du plateau et sur laquelle sont enregistrs des squences de bits. Cette piste est divise en secteurs de taille xe (gnralement 512 octets). Plusieurs paramtres caractrisent les disques durs : capacit (en Go), temps de positionnement de la tte, temps de latence : il dpend de la vitesse de rotation du plateau (3 4 ms pour des vitesses de 10800 7200 tr/mn), dbit de pointe, rapidit du contrleur de disque (interface IDE, SCSI ou ATA) et adaptation du protocole ainsi que la taille des caches (ou buers). La structure logique est aussi spcique. L'organisation en piste et secteurs est appele le formatage. Il s'eectue en 3 tapes : 1. le formatage de bas niveau permet d'organiser la surface du disque en lments simples (pistes et secteurs). Il est eectu en usine lors de la fabrication du disque ; 2. le partitionnement (fait par l'utilisateur), il permet, entre autre, plusieurs types de systmes d'exploitation d'utiliser le mme disque dur ou bien un seul systme d'exploitation d'utiliser 13
ce disque sous forme de plusieurs volumes ou plusieurs lecteurs logiques ; 3. le formatage de haut niveau (fait par l'utilisateur : FAT32, NTFS). Il reprsente une dirence de format et de gestion du placement des donnes donc des chiers.
Dnition 1.4 (Cluster et FAT). Un cluster correspond la zone minimale que peut occuper un
chier sur le disque dur et reprsente un ensemble de secteurs (de 1 16). La taille des clusters dpend du volume du disque dur et du choix de la FAT ( File Allocation Table). Le choix de la fat se fait par le systme d'exploitation choisi (win98 = fat32). s
gure 1.11: Notion de cluster La structure d'un volume est constitu : du MBR (Master Boot Record) qui contient la structure de l'unit physique (nombre, taille et type des partitions) et le nombre d'units logiques avec leur taille ; de la FAT et d'une copie de secours de cette FAT ; le rpertoire racine avec le nom de volume ; la zone de donnes (chiers et sous rpertoires).
Remarque 1.4 (taille maximale et fragmentation). Un disque dur format en FAT16 qui pos-
sde des clusters de 32 Ko peut adresser un volume de 2 Go (216 32Ko = 2Go) au maximum tandis qu'un formatage en FAT32 avec des clusters de 4 Ko peut adresser un volume de 17 To. Un petit chier de 12 Ko occupera la totalit du cluster. Dans ce cas la perte est de 20 Ko qui deviennent inutilisables. En FAT 32 le cluster ne fait plus que 4 Ko. Ainsi notre chier de 12 Ko utilise 3 clusters au lieu d'un mais il n'y aura pas de perte de capacit sur le disque dur. Cependant un chier de plusieurs Mo est invitablement dcoup en petits morceaux. L'ordinateur enregistre ces segment de donnes l o il y a de la place libre. Un programme peut ainsi tre dissmin sur tout le disque dur. C'est ce que l'on appelle la fragmentation. Celle-ci entrane une perte de vitesse de lecture due aux nombreux mouvements eectus par les ttes. C'est pour cela qu'il faut rgulirement eectuer une opration de dfragmentation qui va recoller cte cte les dirents clusters d'un mme programme de faon acclrer sa vitesse d'accs. Il faut noter que la plupart des disques actuels comporte une mmoire cache pour acclrer les accs. s Les disques souples sont tombs en dsutude (mme si on utilise encore des disquettes 3 pouces et demi). A cause du contact entre la tte de lecture et la surface, on doit faire face une usure prmature. Pour limiter cette usure, on rtracte la tte la n de chaque opration, provoquant ainsi une lenteur excessive d'accs. 14
Principe du CD-ROM
Un CR-ROM (Compact Disk ) est disque de 12 cm de diamtre compos de plusieurs couches superposes (plastique, mtallique et vernis). Le principe de lecture / criture utilise un rayon infrarouge d'une longueur d'onde de 780 nm qui parcourt la piste organise en spirale (contrairement au disque dur qui comporte plusieurs pistes). Lors de la lecture, le faisceau laser traverse la couche de plastique (polycarbonate) puis rencontre ou non un creux. Lors d'un passage devant un creux (resp. un plat), la lumire du laser est fortement rfracte (resp. rchie), de telle sorte que la quantit de lumire renvoye est minime, valeur binaire 0 (resp. importante, valeur binaire 1). Pour l'criture, le graveur, le laser utilis est 10 fois plus puissant et brle localement des plages (creux et bosses sont remplaces par des plages brles et non brles). Les caractristiques principales sont la vitesse maximale de lecture, de gravage et l'interface associ (IDE, SCSI ou SATA). Il existe dornavant des amliorations telles que le Burn Proof ou Just Link (suspension de ravure en l'absence de donnes dans le buer) et l'Overburning (dpassement lger de capacit).
Principe du DVD-ROM
Le DVD-ROM (Digital Versatile Disk ) est apparu en 1997 et est principalement ddi la vido. Il s'agit en fait d'un CD de capacit plus importante. La lecture / criture est eectue partir d'un laser rouge (650 et 635 nm) qui permet d'obtenir des creux plus petit, donc d'augmenter la quantit d'information. Les 2 longueurs d'ondes permettent une lecture / criture double couche. Un DVD (-RW / +RW) double couche et double face possde une capacit de 17 Go (soit 22 CD !).
gure 1.13: Exemples de codages Il existe aussi les codes biphases (Manchester) : le signal d'horloge et les donnes sont convolus. Il est important de vrier que les frquences se trouvent dans la bande passante (aaiblissement important lors du transport). Les codes NRZ et RZ possdent un inconvnient majeur : ils possdent un harmonique non ngligeable en 0 (composante qui passe mal au travers des quipements rseaux). Les signaux numriques ont aussi l'inconvnient de se dformer grande distance : on a alors un eet capacitif comme le montre la gure ci-dessous :
Pour les longues distances, on utilisera la modulation (voir lectronique). D'un point de vue lectronique, on distingue 2 modes principaux :
asymtrique : les tats logiques sont transmis sur la ligne par 2 niveaux de tension. Le plus utilis
travaille en logique ngative pour le 1 logique (exemple : RS 232). Les systmes bass sur ce mode sont sensibles aux bruits ( 20Kbit/s, 15 mtres maximum). symtrique (direntiel) : il s'agit d'un ampli-direntiel. Il n'est concern que par la dirence de tension (insensible aux bruits). Il autorise de grandes distances (1200 mtres) des vitesses leves (10 Mbit/s). Ces considration dpendent aussi du support (physique) de communication choisi. Les donnes circulent sous forme d'ondes (acoustiques, lectromagntiques, lectriques ou lumineuses). Les supports peuvent tre laires (cbles), ariens (ondes hertziennes) ou optiques (bre optique, laser). Ces support subissent videmment des perturbations qui peuvent tre de direntes natures : parasites (bruit), aaiblissement (perte en nergie dissipe dans la ligne) proportionnel la longueur et la frquence. Une caractristique essentielle est la bande passante (voir gure 1.15) qui reprsente l'intervalle de frquence sur lequel le signal ne subit pas un aaiblissement trop grand (suprieur 3dB en gnral). distorsion (dphasage). etc . . .
1.3.1.3 Modes de transmission simplex Les donnes circulent dans un seul sens : metteur vers rcepteur (ex : ordinateur
imprimante, souris ordinateur, radio, tlvision). half-duplex Les donnes circulent dans les 2 sens mais pas simultanment : la bande passante est utilise en intgralit (aussi appel alternat ou semi-duplex). Exemples : talkie/walkies, tres humains (on ne coupe pas la parole). 17
est divise par 2 pour chaque sens (duplex intgral) sauf en cas de multiplexage frquentiel (technique avec 2 bandes passantes de frquences).
gure 1.16: Modes de transmission : simplex et duplex Lors d'une communication, les bits peuvent tre vhiculs (par un bus ou sur un port) de deux manires direntes :
srie : les bits sont transmis les uns la suite des autres, sur une seule et mme ligne, parallle : les bits sont vhiculs sur plusieurs lignes disposes en parallle.
gure 1.17: Liaisons srie et parallle A premire vue, le bus parallle peut sembler plus performant que le bus srie. Cependant un bus parallle peine plus dicilement qu'un bus srie supporter de hautes frquences de fonctionnement. Les frquences de fonctionnement des bus tant de plus en plus leves, la transmission srie est en ce moment trs en vogue, comme l'attestent l'USB, le serial ATA ou le Firewire. Dans une communication srie , un seul l transporte l'information. Il y a donc un problme de synchronisation entre metteur et rcepteur (il faut pouvoir distinguer et reconnatre les squences de bits utiles). Deux types de transmission remdient ce problme :
bus ou bien aux donnes). Les horloges de rception et d'mission doivent mettre le mme signal d'horloge (pour la synchronisation). Le matriel le plus lent impose donc le rythme des communications. On parle alors de transmission oriente message. Le temps qui spare l'envoi de 2 messages doit tre un multiple de la dure d'un bit. Le message commence par un ou plusieurs caractres de synchronisation puis la totalit des donnes. Il n'y a pas de contrle d'erreurs (overrun ou underrun). Pour exemples, les modes BSC ou HDLC (High level Data
18
Link Control). Le mode synchrone est adapt aux donnes volumineuses et aux ncessits de transmission rapide (le ot de bits est rparti en trames prcdes d'un motif particulier, la synchronisation).
asynchrone : la transmission a lieu caractre par caractre, le temps entre deux caractres (2
blocs de bits) n'tant pas dni. Chaque caractre est prcd d'un STARTbit et suivi d'un ou deux STOPbits, ce qui signie que, en ASCII (tendu), il faudra 10 11 bits par caractre. L'avantage des transmissions asynchrones rside dans la simplicit de la mthode (le caractre est envoy ds que la touche est appuye). La synchronisation est donc impose par le protocole. On parle de transmission oriente caractre.
1.3.2 Bus
1.3.2.1 Gnralits
Un ordinateur comprend 3 composants fondamentaux : le processeur, la mmoire (principale et secondaire), les unit d'entres/sorties auxquelles sont raccords divers priphriques. Les bus permettent de raccorder entre eux ces divers lments et de rguler les communications.
Dnition 1.5 (BUS). On dsigne par BUS un conducteur servant de canal de transmission com-
mun entre plusieurs circuits qui peuvent s'y connecter la demande, soit en tant qu'metteurs, soit en tant que rcepteur ou les deux. s Dnition 1.6 (PORT). Dans le cas o la ligne sert uniquement la communication entre deux composants matriels, on parle de PORT. s
1.3.2.2 Caractristiques
Les caractristiques dtailles des divers bus seront dcrites dans le prochain chapitre.
consommer la donne signaler (donne acquise), La consommation de la donne se rduit le plus souvent sa lecture dans le port de donne et son rangement en mmoire. Scrutation ( polling ) : le microprocesseur interroge l'interface pour savoir si des donnes sont parvenues et doivent tre traites. Dans le cas contraire, il attend. Ce mode ralentit normment les communications. En eet, le microprocesseur est monopolis en permanence par l'interface et se retrouve souvent en phase d'attente. Cette technique n'est utilisable que si l'attente est courte (l'attente tant active, elle empche le processeur de faire autre chose). Elle convient donc pour les priphriques rapides qui transfrent les informations par blocs (cran ou disques). Elle est exclure dans le cas des priphriques lents (clavier, imprimante,. . . ) car le taux d'utilisation eectif du processeur serait trs faible. En eet, dans le programme d'acquisition du bloc, l'essentiel du temps serait pass dans fonction attendre (donne disponible). Interruption ( interrupt ) : une interruption est un signal, gnralement asynchrone au programme en cours. Le microprocesseur possde une ou plusieurs entres rserves cet eet. Le processeur n'attend pas la disponibilit de la donne, il peut mettre prot cette priode pour excuter un autre programme. Deux tches (ou processus) s'excutent en parallle : la tche d'change chaque fois que l'unit priphrique est prte fournir ou recevoir une donne, la tche principale le reste du temps. Le processeur excute sa tche principale. Ds que l'unit priphrique est prte pour un transfert, elle envoie un signal qui engendre une demande d'interruption, en agissant sur la ligne interruption du processeur. Par un mcanisme de commutation de tche, la tche principale est interrompue et le contrle passe la procdure d'interruption. Celleci eectue le transfert de la donne et redonne le contrle la tche principale. Ce transfert par interruption se rpte chaque fois que l'unit priphrique est prte. Cette technique convient au transfert de donnes avec des priphriques lents (imprimantes lentes, . . . ) car les intervalles de temps entre deux transferts conscutifs sont mis prot pour faire avancer la tche principale, non prioritaire. Cette technique est videmment la seule utilisable dans le cas o le processeur doit ragir des vnements imprvisibles, ce qui est le cas des transferts de donnes par caractres (clavier, souris, . . . ).
Le principe du DMA consiste dcharger le processeur des oprations d'E/S et les coner un contrleur qui se charge d'accder la mmoire la demande des priphriques. En eet, un contrleur de priphrique n'est gnralement pas assez sophistiqu pour tre capable de devenir matre du bus systme. Le DMA implique donc la prsence d'un module supplmentaire sur le bus systme : le contrleur DMA. Il est capable d'imiter le processeur et de s'octroyer le contrle du bus. Un contrleur de DMA est constitu d'un registre d'adresse, d'un registre de donne, d'un compteur et d'une logique de commande. Il se charge du transfert de donnes mais le microprocesseur doit tout de mme assurer quelques tches : initialiser l'change en donnant au contrleur de DMA l'identication du priphrique concern, donner le sens du transfert, fournir l'adresse du premier et du dernier mot concern par le transfert. Le principal avantage est que, pendant toute la dure du transfert, le microprocesseur est libre d'eectuer un traitement quelconque. La seule contrainte est un limitation de ses propres accs mmoire. Deux modes sont possibles selon la nature des blocs de donnes transfrer : 1. Vol de cycle (cycle stealing ) : pour des dbits peu levs ( 1Mo/s). Comme son nom l'indique, le principe consiste voler un cycle bus au processeur chaque fois qu'une donne priphrique est prte tre transfre. Le contrleur DMA relche le bus entre deux transferts conscutifs, cet intervalle permettant au processeur de faire plusieurs accs en mmoire (entrelacement des cycles bus pilots par le contrleur DMA et par le processeur). 2. Rafale (burst ) pour les dbits levs, comparables aux dbits entre mmoire et processeur. Le contrleur DMA devient matre du bus mais ne le libre que lorsque tout le bloc a t transfr. Cette technique est beaucoup plus rapide que le transfert en mode programm, toutes les oprations tant faites par matriel. Le transfert du bloc de donnes se fait par une rafale de cycles bus contrls par le contrleur DMA, sans entrelacement avec des cycles bus pilots par le processeur. Les dbits peuvent tre trs levs car il n'y a pas de surcot de prise et de libration de bus entre deux transferts conscutifs. Voici une liste de certains des dispositifs qui utilisent le contrleur DMA : Lecteur de disquettes, Disque dur, Lecteur et graveur CDROM, Contrleurs SCSI et PCI, Carte son, Carte graphique. Plus il y a de dispositifs utilisant le contrleur DMA, moins le processeur sera sollicit, librant donc sa puissance en lui permettant de se concentrer sur d'autres tches importantes. 22
gure 1.22: Quelques rles d'un systme d'exploitation Le SE doit aussi fournir : un langage de commande, divers utilitaires (compilateurs, diteurs, outils, . . . ), une interface graphique pour l'utilisateur. Il existe de nombreux systmes d'exploitation : MSDOS (Microsoft Disk Operating System) : ce n'est pas un SE au sens strict. Il s'agit plutt d'une interface de gestion de disques et disquettes trs sommaire. Il n'est plus prsent dans Windows XP ; Windows : Il s'agi d'une interface base de multifentrage btie (initialement) sur MSDOS. Monoutilisateur, monotche et sans gestion correcte de la mmoire, il est (relativement) peu performant (architecture monolithique, crits en assembleur, et troitement lis au matriel donc peu ou pas du tout portable). Son succs est surtout d sa capacit de lier (vrouiller) le 23
fonctionnement des applications Microsoft, de Windows, et l'architecture matrielle (stratgie du march captif, marketing) ; MacOS : c'est un SE monoutilisateur, multitche, intgrant une interface base de multifentrage, mais avec une gestion de la mmoire qui commence tre acceptable (presque natif) ; VM, MVS, VMS, Unix, OS/2 : ce sont des SE, multiutilisateurs et multitches. Unix (donc Solaris ou Linux) est une grande famille de SE actuellement en pleine volution ( temps partag, multiutilisateur, architecture modulaire, majoritairement crit en langage volu (langage C) et indpendant de l'architecture matrielle de l'ordinateur donc portable). Les autres sont des branches mortes.
1.4.3 BIOS
1.4.3.1 Gnralits Dnition 1.7 (BIOS). Le BIOS (Basic Input Output System) constitue la couche basse de tous
les systmes d'exploitations sur PC. Il s'agit d'un programme stock sur la carte mre dont une partie est dans une ROM, et une autre dans une EEPROM (on peut asher cette partie du BIOS). s Lorsque le systme est mis sous tension (ou ramorc), le BIOS fait l'inventaire du matriel prsent dans l'ordinateur et eectue un test nomm POST (Power On Self Test) an de vrier son bon fonctionnement. Le BIOS eectue (entre autres) : un test du CPU, une vrication de la RAM et de la mmoire cache, une initialisation du timer (l'horloge interne), une initialisation du contrleur DMA, une installation de toutes les fonctions du BIOS.
24
Chaque modle de PC est vendu avec une version du BIOS adapt sa conguration matrielle (le plus frquent est l'AMI BIOS). La plupart des BIOS ont un SETUP (programme de conguration) qui permet de modier la conguration basique du systme. Ce type d'information est stock dans une RAM auto-alimente an que l'information soit conserve mme lorsque le systme est hors-tension. Il existe de nombreux BIOS dans votre machine : Le BIOS de la carte-mre qui va tre dtaill, Le BIOS qui contrle le clavier, Le BIOS de la carte vido, (facultatif) Le BIOS de contrleurs SCSI qui permettent de booter sur un priphrique SCSI, Le BIOS de cartes rseau qui permettent de booter sur le rseau, etc . . .
adresse
contenu
...
0084
...
F123 4560
...
...
Une adresse contient 4 octets. La 33me interruption est accessible l'adresse 4x33=132D soit 84H. La table des vecteurs d'interruptions contient des valeurs direntes pour chaque version de BIOS, et peut tre modie pour pointer sur du code en mmoire principale, modiant alors le BIOS existant.
En langage C, l'instruction INT n permet d'appeler la n-ime fonction de la table des vecteurs d'interruptions. n est un entier compris entre 0 et 255 (1 octet) car il y a 256 vecteurs d'interruptions dans la table. En utilisant l'instruction INT n, l'adresse de destination est donne par la table des vecteurs d'interruptions et les indicateurs d'tat sont automatiquement sauvegards dans la pile. L'adresse de retour au programme principal complte (32 bits) est galement empile. Le droulement de INT n se passe comme suit : Sauvegarde des indicateurs du registre d'tat sur la pile (les indicateurs sont regroups dans un mot de 16 bits), Sauvegarde des variables, Sauvegarde de l'adresse de retour au programme principal. L'excution continue donc au dbut du programme interruption. Un programme interruption est donc un sous-programme appel par la table des vecteurs d'interruption et accessible par l'instruction INT n. A l'issu de l'excution du sous-programme d'interruption, tous les indicateurs sont restaurs leur anciennes valeurs, sauvegards initialement sur la pile par INT n. Notons que les ventuels paramtres du sous-programme d'interruption sont toujours passs par registre. 26
0x12 0x13
taille mmoire gestion disque dur Initialiser, lire et crire secteurs fonction 0x02 : lecture de donnes sur un disque fonction 0x05 : formatage piste interface srie clavier reboot gestion DOS Lire caractre, tat du clavier fonction 0x00 : lecture carcatre au clavier Lancement du systme fonction fonction fonction fonction fonction fonction fonction fonction fonction 0x05 : imprimer caractre 0x2A : lire date systme 0x2C : lire heure systme 0x31 : laisser programme en rsident 0x36 : dterminer capacit rsiduelle disque 0x39 : crer sous-rpertoire 0x3D : ouvrir un chier 0x3F : lire un chier 0x4C : terminer un programme
1.4.4 DOS
Le systme DOS (Disk Operating System), est un systme d'exploitation et (donc), contrle les activits de l'ordinateur. Le rle du DOS est d'interprter les commandes saisies au clavier par l'utilisateur. Ces commandes permettent d'eectuer les tches suivantes : Gestion des chiers et des rpertoires, Mise jour des disques, Conguration du matriel, Optimisation de la mmoire, Excution des programmes. Ces commandes sont tapes l'invite, c'est--dire dans le cas de MS-DOS (Microsoft DOS, le plus connu) une lettre d'unit suivi d'une barre oblique inverse (antislash), ce qui donne A : ou C : par exemple. Le systme DOS repose sur le BIOS dont il appelle les fonctions pour interagir avec le matriel. 27
Les fonctions du DOS s'utilisent comme celles du BIOS via des vecteurs d'interruptions. Elles orent des fonctionnalits de plus haut niveau que le BIOS (entres/sorties, ouverture de chiers sur disque, etc.). Les fonctions du DOS s'appellent toutes l'aide du vecteur 21H. La valeur du registre AH permet d'indiquer quelle est la fonction que l'on appelle. MOV AH, numro de fonction INT 21H Voici titre d'exemple quelques fonctions du DOS accessibles par int 21H : numro 0x01 0x02 0x19 0x0A 0x0B 0x25 0x31 0x35 0x3C Fonction lecture caractre ache caractre ache string saisie string lecture tat clavier remplissage vecteur interruption fermeture programme rsident lecture vecteur interruption cration chier AL=1 si caractre (0 sinon) Caractristiques met le code ASCII lu dans AL code ASCII dans registre DL DX = adresse dbut string (pointeur)
28
Chapitre 2
Les Bus
Sommaire
2.1 2.2 2.3 2.4 2.5 2.6 Caractristiques gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Bus processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Bus d'extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Bus de priphriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Bus embarqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Rcapitulatif des principales caractristiques des divers Bus . . . . . . 42
Le SouthBridge (Pont Sud ou Southern Bridge appel galement contrleur dentreou contrleur dextension) gre les communications avec les priphriques CM_InfoIndus:version dusortie mardi 29 novembre 2005 2 h 17
Chapitre 2. Les BusOn parle gnralement de bridge (en franais pont) pour dsigner un lment dinterconnexion entre deux bus.
dentre-sortie. Le pont sud est galement appel ICH (I/O Controller Hub).
Processeur
Bus processeur
Cache de niveau 2
AGP Bus AGP North Bridge RAM Bus mmoire Bus PCI
South Bridge
LAN
SCSI
ISA
USB
IDE
Fig. 4.3 Organisation dun ordinateur moderne gure classique 2.1: Les ponts
Dans le cas particulier ou plusieurs priphriques communiquent, il faudra grer (avec des rgles) cette communication. En plus d'avoir une architecture et une connectique particulire, il est ncesIl est intressant de noter que, pour communiquer, deux bus ont besoin davoir la saire d'y associer un protocole L'ensemble de ces oprations est assur par le contrmme largeur. Celad'change. explique pourquoi les barrettes de mmoire vive doivent parfois tre apparies sur certains systmes (par exemple sur les premiers Pentium, dont la largeur du leur d'entre/sortie. bus processeur tait de 64 bits, il tait ncessaire dinstaller des barrettes mmoire dune largeur de 32 bits par Dnition 2.1 (Contrleur depaire). Bus). Il est aussi nomm Interface d'entre/sortie. Son rle est de : connecter le priphrique au bus de donnes, grer les changes entre le microprocesseur et le(s) priphrique(s) (mise en mmoire tampon des donnes, dtection d'erreurs, grer la prise de contrle et le squencement du bus, . . . ). Il assure donc une bonne communication entre le(s) priphrique(s) et le systme. s Lorsqu'un priphrique (ou un programme) sollicite des donnes, il transmet sa demande au contrleur. Celui-ci reconstruit les donnes partir de la trame (ot de bits en srie) et du protocole adopt puis les transmet la mmoire et au processeur (facultatif dans le cas de DMA). Le bus sert aussi bien au processeur qu'au contrleur lorsqu'ils dialoguent avec la mmoire. Si le processeur et le contrleur souhaitent utiliser simultanment le bus, il est ncessaire de procder un arbitrage pour dcider qui va en prendre le contrle et devenir ainsi le matre du bus. Chaque protocole possde une (ou plusieurs) mthode(s) d'arbitrage particulire qui seront vues plus en dtail ultrieurement. Les contrleurs possdent tous une architecture qui se dcompose de la manire suivante : un registre de commande : le processeur y dcrit le travail eectuer (sens du transfert, mode du transfert), un (ou plusieurs) registre(s) de donnes : il(s) contien(nen)t les mots changer entre le processeur et la mmoire, un registre d'tat : il indique si l'unit d'change est prte, si l'change s'est bien droul. Les bus possdent aussi une architecture interne du type : bus (lignes) d'adresses : liaison bidirectionnelle qui permet la slection (adressage) des informations traiter dans un emplacement mmoire, 30
bus (lignes) de donnes : liaison bidirectionnelle qui assure le transfert des informations (lecture ou criture) entre un lment et un autre, bus (lignes) de commandes : liaison pour assurer la synchronisation des ux d'informations sur les bus de donnes et d'adresses. Les signaux de commandes que l'on peut rencontrer sont l'horloge (clock, les signaux de demandes d'interruption et d'accord (acknowledge), les signaux d'arbitrage des changes, le contrle des changes (read/write, type de transfert, types des donnes) etc... Les caractristiques physiques principales des bus sont : largeur bus d'adresse (en bits) : conditionne l'espace mmoire adressable, largeur 6 bus de donnes (en bits) : conditionne le nombre d'accs ncessaires pour transporter une donne, vitesse d'horloge : dtermine le dbit des communications, multiplexage : les mmes lignes physiques sont utilises pour transporter des informations direntes (dans le but vident de rduire le nombre de lignes des bus et donc les cots de fabrication, des mthodes ont rapidement t mises au point an de faire transiter plusieurs bits simultanment sur une mme ligne. Ces techniques, regroupes sous le terme gnrique de multiplexage recourent, chaque extrmit du bus, des multiplexeurs. Le plus utilis est le multiplexage temporel o le multiplexeur se charge de rceptionner les direntes communications transmettre et d'attribuer chacune de cellesci des intervalles de temps de transmission. A l'autre bout du bus, un autre multiplexeur se charge de recomposer les direntes communications), temps de latence : cart de temps entre le dbut d'une opration sur le bus (lecture ou criture) et lorsque les donnes sont eectivement prtes tre utilises. mthode d'arbitrage : dcider qui va prendre le contrle (la main ) du bus donc devenir le matre (dans le cas de bus multi-matres)et possder ainsi la possibilit d'accs en DMA, Hot Swap : raccordement de nouveaux priphriques sans arrt de la machine, Plug and Play : reconnaissance des units d'change sans reconguration des adresses d'E/S et d'Interruption. Un moyen d'valuer les performances d'un bus est de dterminer, en fonction de sa largeur (en bits) et de sa frquence (en cycles/s), son taux de transfert maximal thorique (ou son dbit) (en Mo/s) de la manire suivante :
T xT (M o/s) =
.
T xT =
Ce dbit calcul est en eet trs thorique : il faudrait, pour qu'il soit eectif, que le bus fonctionne en permanence et plein rgime, ce qui s'avre plutt rare, et mme physiquement impossible tant
Cette largeur du bus ne mesure en fait que les lignes vhiculant les donnes utiles. En ralit, des lignes supplmentaires sont ncessaires an de transmettre des signaux de contrle, d'alimentation ou de synchronisation des transferts. Par consquent, un bus parallle de 8 bits (par exemple) sera bel et bien constitu de 8 lignes ddies aux donnes transfrer, mais auxquelles s'ajoutera un nombre variable de lignes dites administratives. De mme, un bus de type srie ne sera pas rduit une seule ligne.
6
31
donn les invitables temps morts engendrs par la gestion administrative du bus. Bien videmment, ce dbit quantie a lui seul l'ecacit d'un bus, mais cette valeur dpend de plusieurs paramtres physiques du bus : sa largeur, sa frquence de fonctionnement et, de manire moins vidente, son mode de fonctionnement. On parle galement parfois de bande passante pour dnir le dbit d'un bus, mais de manire trs impropre. Les techniques pour augmenter la rapidit d'un bus consistent (principalement) : augmenter la largeur de bus, (occupe plus de place physique, plus sensible au bruit, ncessite plus de courant), augmenter la vitesse d'horloge (pb : tous les priphriques ne sont pas forcment capables de supporter), dcouper les transactions en paquets de donnes (split transaction), modier les amplitudes des signaux lectriques. etc . . . Il existe plusieurs possibilits pour tablir une classication des bus : selon le type de priphriques connects : bus systme (system) aussi communment appel bus local : c'est celui qui se connecte directement au processeur (il possde maintenant une mmoire cache). Il est multi-processeurs. Le transfert des donnes entre un bus systme et les autres bus se fait via un pont (bridge) et est gr par une puce systme (system chipset) priphrique interne (backplane) ou bus d'extension : ce type de bus est situ sur la carte mre et les priphriques internes y sont connects via des slots . Il forme un canal grande vitesse entre la mmoire et les divers priphriques (gnralement parallle donc large, court en distance et rapide avec une grande bande passante, bus de priphrique externe (peripheral) : ce type de bus sert connecter des priphriques externes avec la mmoire interne. Il ne possde gnralement pas une bande passante aussi rapide que le backplane bus. Il supporte gnralement une grande gamme de vitesse, peut tre srie ou parallle, grande distance et de temps de latence trs varis. par la nature de ses liaisons : parallle ou srie, par le cadencement de ses changes : synchrone ou asynchrone.
FPU (Flotting Point Unit) qui s'changent les donnes en cours de traitement au fur et mesure de leur stade d'excution via ce bus de donnes interne. Comme ce bus est destin faire transiter les donnes reues depuis l'extrieur, sa largeur correspond gnralement celle du bus de donnes externe, c'estdire du bus systme. Plus surprenant, et trs important, la frquence de fonctionnement de ce bus s'avre trs suprieure la frquence du bus processeur, et ceci grce un dispositif particulier dnomm multiplicateur d'horloge qui permet au processeur de fonctionner en interne une frquence multiple de la frquence dlivre par la carte mre.
Processeur (Anne) Intel 8088 (1979) Intel 8088 (1979) Intel 8086 (1978) Intel 286 (1981) Intel 386SX (1988) Intel 386DX (1985) Intel 486 (1989) Intel Pentium (1992) AMD K5 (1996) Cyrix 6x86 (1996) Intel Pentium II (1997) AMD K6 (1997) Intel Celeron (1999) Intel Pentium III (1999) AMD Athlon (1999) AMD Duron (2000) Intel Pentium 4 (2000) AMD Athlon XP (2001) Intel Itanium (2001) AMD Athlon 64 (2003)
Largeur FSB 8 bits 8 bits 16 bits " " 32 bits " 64 bits " " " " " " " " " " " "
Frquence (MHz) 4,77 puis 8 4,77 puis 8 4,77 puis 10 6, 12 puis 20 16 33 16, 33 puis 40 16 50 5060 puis 66 5060 puis 66 40 66 puis 75 66 puis 100 6695 puis 100 66 puis 100 100 puis 133 2x100 puis 2x133 2x100 4x100-4x133 puis 4x200 2x133 puis 2x166 2x133 Hypertransport
Processeur Intel 8088 Intel 8086 Intel 286 Intel 386SX Intel 386DX Intel 486 Intel Pentium AMD K5 Cyrix 6x86 AMD K6 AMD Athlon AMD Duron AMD Athlon XP Intel Pentium II Intel Celeron Intel Pentium III Intel Pentium 4 Intel Itanium AMD Athlon 64
Largeur Bus adresses Mmoire adressable 20 bits " 24 bits " 32 bits " " " " " " " " 36 bits " " " 44 bits 64 bits 1 Mo " 16 Mo " 4 Go " " " " " " " " 64 Go " " " 16 To 256 To
Le matre et l'esclave peuvent aussi communiquer en mode DMA (de 2.1 Mo/s 16.7 Mo/s) ou Ultra DMA (de 16.7 Mo/s 133 Mo/s pour l'Ultra DMA 7 ou Ultra ATA-133). La norme ATA a vu plusieurs volutions :
ATA 1 aussi appele IDE : supporte les modes PIO (de 0 2)et DMA (de 0 2), assurant un dbit ATA 2 aussi appele EIDE : supporte les modes PIO (de 0 4)et DMA (de 0 2), assurant un
de 8.3 Mo/s ; dbit de 16.6 Mo/s. L'EIDE permet dsormais de supporter des bus de capacit 8.4 Go (au lieu de 528 Mo pour l'IDE) grce au LBA (Large Block Adressing ) ; ATA 3 apporte le SMART (Self Monitoring Analysis and Reporting Technology ) dont le but est de prvenir une dfaillance matrielle du disque ; ATA 4 modie le mode LBA pour une capacit des disques 137 Go ; ATA 5 depuis 1999, deux nouveaux modes de transfert (UltraDMA 3 et 4 aussi appel Ultra ATA 66) ; ATA 6 Depuis 2001, support de l'Ultra DMA 5 (Ultra ATA 100) avec un dbit de 100 Mo/s. Une nouvelle fonctionnalit, appele AAM (Automatic Acoustic Management ) permet d'ajuster automatiquement la vitesse d'accs aux disques supportant cette fonction an d'en rduire le bruit de fonctionnement ; ATA 7 Depuis 2002, support de l'Ultra DMA 6 (Ultra ATA 133) avec un dbit de 133 Mo/s.
2.3.1.5 AGP
Le bus AGP (Accelerated Graphics Port ) apparu en 1997, est directement reli au bus processeur (FSB : Front Side Bus ) et bncie de la mme frquence, donc d'une bande passante leve. Le contrleur AGP a t mis au point spciquement pour la connexion de la carte graphique en lui ouvrant un canal direct d'accs la mmoire (DMA). Le port AGP 1X est cadenc 66 MHz, ce qui lui ore une bande passante de 264 Mo/s. Maintenant la nouvelle norme est en AGP Pro 8X avec une bande passante d'environ 2Go/s (66,66 MHz x 8(coef.) x 32 bits 2,11 Go/s).
2.3.1.6 SCSI
Le standard SCSI (Small Computer System Interface ) permet la connexion de plusieurs priphriques de types dirents sur un ordinateur par l'intermdiaire d'une carte (contrleur SCSI utilisant un connecteur PCI). Le nombre de priphriques pouvant tre branchs dpend de la largeur du bus SCSI (7 priphriques avec un bus 8 bits, 15 avec un bus 16 bits). L'adressage des priphriques se fait grce des numros d'identication. Le premier numro est l'ID (numro permettant de dsigner le contrleur intgr chaque priphrique). Un priphrique SCSI peut avoir jusqu' 8 units logiques qui sont repres par un identicateur appel LUN (Logical Unit Number ). Enn, un ordinateur peut comporter plusieurs cartes SCSI, c'est pourquoi un numro de carte est assign chacune d'entreelles. De cette faon, pour communiquer avec un priphrique, l'ordinateur doit donner une adresse de la forme numro de carte ID LUN. Deux types de bus SCSI existent : le bus asymtrique SE (Single Ended ), bas sur une architecture parallle (narrow : 8 bits ou wide : 16 bits)dans laquelle chaque canal circule sur un l (sensible aux interfrences). le bus direntiel permet le transport des signaux sur une paire de ls (information code par dirence entre les deux ls) an de compenser les perturbations lectromagntiques (distance de cblage plus importante, 25 m). La premire norme SCSI date de 1986 (bus cadenc 4,77 MHz, largeur 8 bits donc dbits de l'ordre de 5 Mo/s). En 1994, apparition de la norme SCSI2 (Wide SCSI2 : 16 bits, dbit de 10Mo/s) puis Fast SCSI2(synchrone : 20 Mo/s), plus rcemment Fast40 (40 Mo/s). La nouvelle norme SCSI3 37
intgre de nouvelles commandes (largeur 16 bits, 80 MHz DDR, chanage de 32 priphriques, dbit de 320 Mo/s en mode Ultra320 ou bien 80 MHz QDR, dbit de 640 Mo/s en mode Ultra640).
2.3.2.3 S-ATA
Le standard SATA (Serial ATA) est apparu en 2003 an de pallier les limitations de la norme ATA (ou IDE) qui utilise un mode de transmission en parallle. En eet le mode de transmission en parallle n'est pas prvu pour supporter des frquences leves en raison des problmes lis aux interfrences lectromagntiques entre les dirents ls. Le Serial ATA est bas sur une communication srie o une voie est utilise pour transmettre les donnes et une autre voie sert la transmission d'accuss de rception. Sur chacune de ces voies les donnes sont transmises en utilisant le mode de transmission LVDS (Low Voltage Dierential Signaling ) consistant transfrer un signal sur un l et son oppos sur un second l an de permettre au rcepteur de reconstituer le signal par dirence. Les donnes de contrle sont transmis sur la mme voie que les donnes en utilisant une squence de bits particulire pour les distinguer. Ainsi la communication demande deux voies de transmission, chacune eectue via deux ls, soit un total de quatre ls pour la transmission. Il permet d'obtenir des dbits de l'ordre de 187.5 Mo/s (dbit utile de 150 Mo/s cause des bits de stop et start). Le Serial ATA II avoisine les 375 Mo/s (300 Mo/s utiles), puis terme 750 Mo/s (600 Mo/s utiles). Les cbles Serial ATA peuvent mesurer jusqu' 1 mtre de long (contre 45 cm pour les nappes IDE). Contrairement l'IDE, les priphriques Serial ATA sont seuls sur chaque 38
cble et il n'est donc plus ncessaire de dnir des matres et des esclaves. D'autre part, elle permet le Hot Plug.
2.4.1 USB
Le bus USB (Universal Serial Bus, en franais Bus srie universel) est, comme son nom l'indique, bas sur une architecture de type srie. Il s'agit toutefois d'une interface entresortie beaucoup plus rapide que les ports srie standards. L'architecture qui a t retenue pour ce type de port est en srie pour deux raisons principales : l'architecture srie permet d'utiliser une cadence d'horloge beaucoup plus leve qu'une interface parallle, car celleci ne supporte pas des frquences trop leves (dans une architecture haut dbit, les bits circulant sur chaque l arrivent avec des dcalages, provoquant des erreurs). les cbles srie cotent beaucoup moins cher que les cbles parallles. On peut y connecter tous les priphriques et en grand nombre (127) moyennant l'utilisation de concentrateurs (HUB), comportant une seule entre et plusieurs sorties. Certains sont actifs (fournissant de l'nergie lectrique), d'autres passifs. Le bus USB peut mme tre amen transmettre les signaux vido. Il possde un certain confort d'utilisation (branchement chaud : hot Plug & Play). La liaison repose essentiellement sur une paire direntielle mode srie (cble 4 ls). Deux vitesses permettent de concilier le nombre d'htes et la rapidit de transfert pour les seuls priphriques qui en ont besoin (dtection comme lent ou rapide). L'USB 1 est limit (1.5 Mbits/s en lent, 12 Mbit/s en rapide) tandis que l'USB 2 propose un dbit max de 480 Mbits/s. Simple mcaniquement, il ne l'est pas du point de vue lectronique et ncessite une conguration prcise. La communication entre l'hte (l'ordinateur) et les priphriques se fait selon un protocole bas sur le principe de l'anneau jeton (token ring ). Cela signie que la bande passante est partage temporellement entre tous les priphriques connects. L'hte met un signal de dbut de squence chaque milliseconde, intervalle de temps pendant lequel il va donner simultanment la parole chacun d'entre eux. Lorsque l'hte dsire communiquer avec un priphrique, il met un jeton (un paquet de donnes, contenant l'adresse du priphrique, cod sur 7 bits) dsignant un priphrique, c'est donc l'hte qui dcide du dialogue avec les priphriques. Si le priphrique reconnat son adresse dans le jeton, il envoie un paquet de donnes en rponse, sinon il fait suivre le paquet aux autres priphriques connects. Les donnes ainsi changes sont codes selon le codage NRZI. Puisque l'adresse est code sur 7 bits, 128 priphriques peuvent tre connects simultanment 39
un port de ce type. Il convient en ralit de ramener ce chire 127 car l'adresse 0 est une adresse rserve. A raison d'une longueur de cble maximale entre deux priphriques de 5 mtres et d'un nombre maximal de 5 hubs (aliments), il est possible de crer une chane longue de 25 mtres ! Son succs et le fait qu'il est amen remplacer le port srie (RS232) justiera une tude dtaille dans un prochain chapitre.
2.4.2 IEEE1394
Le bus IEEE 1394 (nom de la norme laquelle il fait rfrence) a t mis au point la n de l'anne 1995 an de fournir un systme d'interconnexion permettant de faire circuler des donnes haute vitesse en temps rel. Apple lui a donn le nom commercial FireWire qui est devenu le plus usit. Sony lui a galement donn le nom commercial de i.Link, tandis que Texas Instrument lui a prfr le nom de Lynx. Il s'agit ainsi d'un port permettant de connecter des priphriques (camscope numrique ou disques durs) trs haut dbit. Il existe ainsi des cartes d'extension (gnralement au format PCI) permettant de doter un ordinateur de connecteurs FireWire. Il utilise un cble de 6 ls (2 paires pour les donnes et l'horloge, et deux ls pour l'alimentation) lui permettant d'obtenir un dbit de 400 Mbit/s ou 800 Mbits/s. La nouvelle norme IEEE 1394b est galement appele FireWire 2 ou FireWire Gigabit (dbit de 3.2 Gbit/s depuis 2003). Grce ses 2 ls d'horloge, le Firewire peut fonctionner selon 2 modes : asynchrone : ce mode est bas sur une transmission de paquets intervalles de temps variables. Cela signie que l'hte envoie un paquet de donnes et attend de recevoir un accus de rception du priphrique. Si l'hte reoit un accus de rception, il envoie le paquet de donnes suivant, sinon le paquet est nouveau rexpdi au bout d'un temps d'attente. isochrone : ce mode permet l'envoi de paquets de donnes de taille xe intervalle de temps rgulier (cadenc grce aux deux ls d'horloge). De cette faon aucun accus de rception n'est ncessaire, on a donc un dbit xe et donc une bande passante garantie. De plus, tant donn qu'aucun accus de rception n'est ncessaire, l'adressage des priphriques est simpli et la bande passante conomise permet de gagner en vitesse de transfert. Il y a la possibilit d'utiliser des ponts (plusieurs bus entre eux, adressage par identicateur de nud cod sur 16 bits). Cet identicateur est scind en deux champs : un champ de 10 bits permettant de dsigner le pont et un champ de 6 bits spciant le nud. Il est donc possible de relier 1023 ponts sur chacun desquels il eut y avoir 63 nuds. Ceci permet de relier de nombreux priphriques (65 535 au max !). La bande passante est plus leve que pour l'USB, ce qui justie son emploi frquent pour des applications vido. De plus, sa structure et son protocole d'utilisation est trs bien adapt l'utilisation en rseau (contrairement l'USB). L'alternative ou sa complmentarit avec le bus USB justiera une tude dtaille dans un prochain chapitre
Le bus PC Card a t mis au point en 1989 par le consortium PCMCIA (Personal Computer Memory Card International Association ) an d'tendre les capacits d'accueil de priphriques des ordinateurs portables. Les priphriques PCMCIA sont au format carte de crdit (54 mm 85 mm). Il existe trois types de facteur de forme correspondant trois paisseurs standards : Les cartes de type I (paisseur 3,3 mm) sont gnralement utilises pour des cartes d'extension de mmoire. Les cartes de type II (5 mm) servent habituellement pour des priphriques de communication (modem, carte rseau, carte rseau sans l) et de petits disques durs. Les cartes de type III (10,5 mm) sont en gnral rserves des priphriques embarquant des lments mcaniques (disques dur de grosse capacit). Depuis 1995 la norme CardBus (parfois appele PC Card 32bit) est apparue, permettant des transferts de donnes en 32 bits, cadencs une frquence de 33 MHz avec une tension de 3V (contre 5.5V pour le PCMCIA).
Initialement VAN (dvelopp par Renault PSA-SAGEM-Valo) et CAN (dvelopp par Bosch) ces bus tait destin l'quipement automobile. Aujourd'hui, le bus CAN (Controller Area Network ) se situe entre bus et rseau de terrain (transmission par cble, infrarouge ou bre optique) et reprsente avant tout un protocole de transmission. Du type multi-matre, orient messages courts avec correction d'erreurs CRC, le bus CAN est bien adapt la scrutation de variables mises par des stations dportes. La norme ISO 11898 spcie un dbit maximum de 1Mbit/s. La longueur maximum du bus est dtermine par la charge capacitive et le dbit (1 Mbit/s 40 m, 500 Kbit/s 100 m et 20 Kbit/s 1 km). Le protocole est bas sur le principe de diusion gnrale (le contenu de chaque message possde une identication reu de faon univoque par tous les abonns) et l'identicateur indique la priorit du message qui dtermine l'assignation du bus lorsque plusieurs stations mettrices sont en concurrences. En version de base, c'est un nombre de 11 bits (soit 2048 messages de 8 octets). L'adressage par le contenu assure une grande exibilit de conguration (possibilit d'ajouter des stations sans modier la conguration des autres stations). 41
<1
1.5 3 5 8.3 10 16.6 40 50 60 127 133 150 264 100 (400) 600 640 2110 8000
42
Chapitre 3
Interruptions
Sommaire
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Notion d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Systme d'interruptions hirarchises . . . . . . . . . . . . . . . . . . . . 45 Causes d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Mcanisme d'interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Le PIC 8259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Gestion des Entres-Sorties par interruption . . . . . . . . . . . . . . . . 54 Interruptions Logicielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 La programmation des interruptions . . . . . . . . . . . . . . . . . . . . . 56
Chapitre 3. Interruptions
gure 3.1: Scrutation Cette mthode est (videmment) coteuse en temps et possde pour inconvnient majeur de monopoliser le microprocesseur (qui n'a plus de temps consacrer ses autres activits). De plus, lorsque le ot des donnes est lev, le microprocesseur peut perdre certaines donnes.
gure 3.2: Interruption Une alternative consiste utiliser des interruptions appeles logicielles. Elle possdent la particularit d'tre synchrones. En eet, elles sont gnres par le microprocesseur lorsqu'il rencontre une instruction de type INT. Ce type d'interruption est plutt utilis par le systme d'exploitation. Certaines interruptions logicielles sont appeles exceptions (fault, trap and abort). Elles sont gnres par le microprocesseur en prsence d'une erreur critique interne. En rsum, on distingue : les interruptions (hardware) internes dites processeur : protection du systme et des processus, appeles par une instruction l'intrieur d'un programme (overow, erreur d'adressage, code opration inexistant, problme de parit . . . ) ; les interruptions (software) dites logicielles : permet un processus utilisateur de faire un appel au systme. Elles sont produites par l'instruction INT n o "n" est le type de l'interruption. les interruptions (hardware) externes dites matrielles dclenches par une unit lectronique (lecteur, clavier, canal, contrleur de priphrique, panne de courant, . . . ) ou par l'horloge. Elles sont produites par l'activation des lignes INTR et NMI du microprocesseur. 44
Chapitre 3. Interruptions
Les interruptions externes matrielles sont dues aux priphriques (imprimante, terminal, horloge externe, etc.) ou des dispositifs extrieurs au systme informatique (capteurs, systme d'alarme, etc.). Par exemple un priphrique va gnrer une interruption pour signaler au systme qu'il a termin de traiter la requte prcdente et qu'il est prt pour recevoir une nouvelle commande. Dans le contexte de contrle de processus, des phnomnes physiques doivent tre signals au systme, par exemple le passage d'un objet devant un dtecteur. Dans ce cas c'est le dispositif externe au systme qui met un signal qui est reu par le systme comme une interruption. Le programme courant lui-mme peut dclencher une interruption l'aide d'une instruction spciale. Cela permet, par exemple, d'activer certains services du systme qui ncessitent de bncier de privilges rservs au systme. C'est une interruption externe et logicielle. Les interruptions internes produites par le processeur, sur des erreurs par exemple (division par zro, dpassement de capacit, erreur d'adressage, accs une zone de mmoire protge, etc.). Ces interruptions sont gnralement appeles exceptions. Les interruptions induites par l'horloge permettent la gestion du temps par le systme d'exploitation. Par exemple, le systme peut programmer l'horloge pour que celle-ci gnre une interruption toutes les 10 ms. A chacune de ces interruptions le systme peut reprendre la main et excuter un algorithme de choix de tches (ordonnanceur) de manire viter qu'un programme monopolise le CPU. Ces interruptions peuvent galement servir la gestion du temps dans les programmes et pour la comptabilit.
peut tre par exemple un pointeur dans une table contenant le vecteur d'interruption de chaque routine de service. Un vecteur d'interruption contient l'adresse de dbut de la procdure de traitement de l'interruption et le registre d'tat du processeur ncessaire au dbut du traitement. Celui-ci, qui peut contenir certains niveaux de privilges ncessaires au traitement de la requte, remplace le registre d'tat courant, aprs que ce dernier ait t sauvegard dans la pile avec le reste du contexte du programme interrompu. Le traitement de l'interruption, qui dbute la premire instruction spcique l'interruption, est donc plus rapide. Dans ce schma une routine de service peut elle-mme tre interrompue. La technique prcdente ncessite un mcanisme pour empcher deux priphriques d'crire leur code simultanment sur le bus. Il est galement possible de chaner les priphriques. La priorit est alors dnie par la position du priphrique sur la ligne d'interruption : cblage en daisy-chain.
Chapitre 3. Interruptions
Lors d'une interruption, le processeur se sert de la table des vecteurs (IVT) dcrites la gure 3.3. Cette table dmarre l'adresse 0 de la mmoire. Elle contient les adresses des routines d'interruptions (ISR) sur 4 octets (16 bits pour le segment,16 bits pour le dplacement) et les valeurs de ces quatres octets sont chargs dans les registres CS :IP. Chaque lment contient l'adresse de dbut d'un programme d'interruption sur 4 octets (oset 2 octets, segment 2 octets). La taille de la table est donc de 4 x 256 = 1 Ko. Elle occupe les adresses 0h 3FFh en mmoire centrale. Le tableau 3.1 donne le dtails des interruptions.
INT (numro) 00 - 01 02 03 - 07 08 09 0A 0B 0C 0D 0E 0F 10 - 6F 70 71 72 73 74 75 76 77 78 - FF Nature de l'IT Exception NMI Exception IRQ 0 IRQ 1 IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 IT Logicielles IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15 IT Logicielles Utilisation usuelle Erreur de parit en mmoire Horloge interne (System Timer) Gestion Clavier Redirection PIC 2 Port srie COM2 / COM4 Port srie COM1 / COM3 Carte Son Lecteur Disquettes Port Parallle Horloge Temps Rel (CMOS) Redirection IRQ2 Disponible Disponible Souris PS/2 Co-processeur Arithmtique IDE 1 IDE 2
nombre de registres. Dans certaines architectures, en particulier celles orientes vers les applications temps rel, un processeur supplmentaire peut tre associ au processeur principal avec pour tche de grer les oprations d'entres/sorties et de ltrer les interruptions.
Chapitre 3. Interruptions
gure 3.5: Architecture d'un PIC A partir de PC avec un 80286, la machine dispose de deux 8259 mis en cascade : 50
gure 3.6: Liaison entre les 2 PIC et le microprocesseur Le premier est implant aux adresses d'E/S 0x20 0x2F tandis que le second est implant aux adresses d'E/S OxA0 0xAF. Chaque circuit permet la gestion de 8 interruptions et gre : la vectorisation avec les processeurs 80x86 ; le dclenchement d'IT sur niveaux ou fronts ; les priorits des interruptions ; les masques d'interruptions. Le microprocesseur (8086) dispose de trois lignes d'interruptions (matrielles) : L'interruption NON MASQUABLE (NMI) : cette interruption ne peut pas tre masque, elle n'est pas prise en charge par le bit "I" du registre de Flags ; Les interruptions MASQUABLES (INTR : INTerrupt Request) : ces interruptions peuvent tre invalides par le bit "I" du registre de Flags. On trouve aussi INTA (INTerrupt Acknowledgement) qui signie que le microprocesseur a bien reu par le bus de donnes le numro d'IT envoy par le contrleur ; La broche RESET, provoque une rinitialisation du processeur (un reboot de la machine).
gure 3.7: Liaisons matrielles d'un PIC Lors d'une interruption : S'il s'agit d'une interruption matrielle, le processeur nit le traitement de l'instruction en 51
Chapitre 3. Interruptions
cours et passe en mode non interruptible (Flag I) ; Le processeur empile le contenu des registres CS et IP (adresse de la prochaine instruction a excuter) ; Le processeur lit le numro d'interruption sur le bus de donnes envoye par le 8259 si l'interruption est matrielle ; Il le multiplie par 4 pour obtenir l'adresse du vecteur d'interruption ; Il charge CS et IP avec les contenus de cette adresse ; Il excute la routine d'interruption jusqu' l'instruction IRET ; Il dpile alors CS et IP ; Il reprend le programme en cours d'excution. Donc, la routine d'interruption doit acquitter l'interruption pour le 8259 et r-autoriser le cas chant les interruptions (Flag I). Pour programmer un traitement d'interruption matriel, il faut : Autoriser l'interruption par son dmasquage (8259) ; Ecrire la routine de traitement d'interruptions ; Ecrire l'adresse de cette routine dans la table des vecteurs au bon emplacement. La routine doit contenir les lments suivants : Lecture des E/S lis au priphrique ayant gnr l'interruption ; Traitement a eectuer ; Acquitter l'interruption pour le 8259 (outp 0x20, 0x20) ; Pour l'installation du traitement d'interruption, il faut masquer toutes les interruptions au niveau du processeur.
Bit 0 1 2 3 4 5 6 7
Disable IRQ IRQ 0 IRQ 1 IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7
Fonction Horloge interne Gestion Clavier PIC 2 Port srie COM2 Port srie COM1 Carte Son Lecteur Disquettes Port Parallle
Bit 0 1 2 3 4 5 6 7
Disable IRQ IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15
Fonction Horloge Temps Rel (CMOS) Redirection IRQ2 Disponible disponible Souris PS/2 Co-processeur Arithmtique IDE 1 IDE 2
tableau 3.2: Registre OCW1 du PIC 1 (0x21) et du PIC 2 (0xA1) Remarque 3.2. Si on masque l'IRQ2 du PIC 1, on masque automatiquement les IRQ 8 15 du
PIC 2 (du fait de la redirection). s Pour masquer une IRQ, il faut la mettre la valeur 1. Exemple : crire 0xF7 dans OCW1 autorise l'IRQ 3 et masque toutes les autres. En pratique, il faut pralablement lire le contenu du registre de masquage, puis forcer le bit associ au priphrique contrler sans modier les autres bits. Ceci est ralis par la fonction outp(0x21,(inp(0x21) & 0xF7) ; . Une fois la routine termine il faut rtablir l'tat pralable des IRQ. Ceci est assur par la fonction outp(0x21,(inp(0x21) | 0x08) ; . A la n de la routine (ISR), il ne faut pas oublier l'instruction EOI (End Of Interrupt) par le biais de la fonction outp(0x20,0x20) ; pour le PIC 1 ou outp(0xA0,0x20) ; pour le PIC 2. Pour initialiser compltement les PIC, on pourra s'inspirer du code suivant : void initPIC (void) { /* MASTER PIC */ outp(0x20,0x11) ; outp(0x21,0x20) ; outp(0x21,0x04) ; outp(0x21,0x01) ; outp(0x20,0xFF) ; /* SLAVE PIC */ outp(0xA0,0x11) ; outp(0xA1,0x70) ; outp(0xA1,0x02) ; outp(0xA1,0x01) ; outp(0xA1,0xFF) ; /* Dmasquage des IRQ */ outp(0x21,0x0) ; outp(0xA1,0x0) ; }
/* /* /* /* /* /* /* /* /* /*
Init ICW1 */ Init ICW2 */ Init ICW3 */ Init ICW4 */ Masquage des IT */ Init ICW1 */ Init ICW2 */ Init ICW3 */ Init ICW4 */ Masquage des IT */
53
Chapitre 3. Interruptions
IT 0x1A : gestion de la date et de l'heure Les IT de 0 7 sont appeles directement par l'U.C. du microprocesseur. Il s'agit de : IT 0x0 : division par 0 IT 0x1 : pas pas IT 0x2 : circuit RAM dfectueux IT 0x3 : point d'arrt IT 0x4 : dbordement IT 0x5 : copie d'cran IT 0x6 et 0x7 : inutilises L'appel d'une interruption logicielle au niveau BIOS se fait par l'intermdiaire de la fonction int86 et en indiquant le numro de l'interruption concerne. Par exemple, la gestion des ports srie COM1 et COM2 du PC peut s'eectuer en appelant l'interruption numro 0x14. On peut ainsi utiliser les fonctions de base rsidentes correspondantes du BIOS. On utilise alors la fonction int int86 (int nb, union REGS *inregs, union REGS *outregs) ; o int86 excute l'interruption 80x86 logicielle dont le numro est spci par "nb". Au retour de l'interruption, cette fonction recopie les valeurs courantes des registres du 80x86 dans outregs. inregs peut pointer sur la mme structure que outregs. Cette fonction fait appel des types particuliers de variables (relatifs au fonctionnement propre du microprocesseur). On utilise union REGS qui est dclare de la manire suivante : union REGS { struct WORDREGS x ; struct BYTEREGS h ; }; La structure union REGS, dnie dans dos.h sert changer des informations avec la fonction int86 en utilisant 2 structures dnies ainsi : struct BYTEREGS { unsigned char al, ah, bl, bh ; unsigned char cl, ch, dl, dh ; }; struct WORDREGS { unsigned int ax, bx, cx, dx ; unsigned int si, di, cag, ags ; };
Chapitre 3. Interruptions
IT 0x25 : lecture directe sur disque ; IT 0x26 : criture directe sur disque ; IT 0x27 : programme rsident (terminer un programme en le laissant rsident).
Un programme est dit rsident si, une fois son excution termine, il rend le contrle l'environnement appelant mais reste charg en mmoire. Il pourra alors tre ractiv tout moment, notamment l'aide d'une interruption. Lorsqu'il se termine, l'espace mmoire qu'il occupait n'est pas libr par le systme d'exploitation. Un programme rsidant s'crit comme un autre programme, il sut que la dernire instruction excute soit un appel la fonction 0x31 (fonction dite TSR : Terminate and Stay Resident) de l'interruption DOS 0x21.
Remarque 3.3. MS-DOS n'a pas t conu pour excuter plusieurs choses la fois et en particulier
plusieurs appels au systme (il n'est pas multi-tches). Donc, si le programme qui s'excute en avantplan utilise un service de MS-DOS, il ne faut pas que le programme de traitement de l'IT appelle le mme service, sinon c'est gnralement le plantage. s
Rappelons brivement le mcanisme d'interruptions : Au moment de l'interruption, le processeur reoit sur une patte un signal lectrique, il passe automatiquement en mode non interruptible. A la rception de ce signal, il termine l'instruction en cours d'excution puis il sauvegarde les informations ncessaires la reprise du programme en cours d'excution. Il lit ensuite l'identit de l'interruption par un dialogue sommaire avec le composant contrlant le mcanisme d'interruption. Il calcule l'adresse du vecteur d'interruption li cette identit d'interruption. Il charge depuis cette adresse une adresse pointant sur une routine appele routine d'interruption (ISR). Il eectue un saut cette adresse pour excuter cette routine, souvent la premire instruction de cette routine est de rautoriser les interruptions. Il excute ce code jusqu' la n de la routine o il trouve une instruction spciale de n d'interruption. Il restaure l'tat prcdent l'interruption. Il reprend le cours du programme qui tait en cours d'excution. Ceci est encore illustr par la gure 3.8 : 56
gure 3.8: Sous programme d'interruption Pour faciliter la programmation, on peut utiliser un certain nombre de fonction du langage C qui sont particulirement destin cet usage.
Chapitre 3. Interruptions
IRET signalant le retour d'une interruption. La routine de service doit viter un appel aux routines systme car le DOS n'est pas rentrant. Pour raliser un traitant d'interruption (handler), on dispose de 2 fonctions utiles comme setvect( ) qui modie le contenu d'un vecteur et getvect( ) qui lit la valeur d'un vecteur. On dispose aussi de 2 macros disable( ) qui met en attente de traitement tous les signaux d'interruption et enable( ) qui autorise nouveau le traitement des interruptions. La fonction setvect(int num, void interrupt (*f) ( )) insre la fonction f en tant que routine de service de l'IT num. Pour viter cette opration, il faut viter d'tre interrompu. Il faut donc faire prcder l'appel setvect d'un appel disable( ) qui masquera toutes les IT. Ensuite, un appel enable( ) rendra nouveau possible l'interruption du programme.
58
Chapitre 4
Port Parallle
Sommaire
4.1 4.2 4.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1 Introduction
Un port parallle comprend 8 canaux permettant d'envoyer simultanment les huit bits qui constituent un octet par l'intermdiaire des 8 ls. C'est une interface relativement rapide (par rapport au port srie) qui est traditionnellement utilise pour les imprimantes. Le seul problme pos par le port parallle est qu'il ne peut gure tre utilis avec des cbles longs sans amplier le signal, au risque de provoquer des erreurs de donnes. En eet, la longueur ocielle est limite trois mtres sans perte de donnes. En fait, il est possible de dpasser cette longueur en veillant certains points (le cble doit possder un bon blindage, la prsence de transformateur ou autre source lectromagntique proximit du cble peuvent gnrer toutes sortes de dysfonctionnements). Le Port parallle a subi plusieurs volutions :
Port parallle standard (SPP) : les premiers PC n'taient pas quips de dirents types de
ports parallles. Le seul port parallle disponible tait celui qui servait envoyer des informations de l'ordinateur un priphrique tel qu'une imprimante. Le caractre unidirectionnel du port parallle du PC original tait justi par son rle premier, qui tait d'envoyer des informations l'imprimante. Il travaillait en mode nibble (envoi de 4 bits la fois). Par un procd astucieux, ce port tait cependant capable d'eectuer des connexions de sortie de 8 bits et des connexions d'entre de 4 bits. Les ports parallles standard sont capables d'eectuer des connexions un taux de transfert eectif d'environ 150 Ko/s en sortie et 50 Ko/s en entre. Port parallle bidirectionnel (BPP) : en 1987, IBM lana le port parallle compltement 8 bits (en sortie comme en entre) donc un taux de transfert d'environ 150 Ko/s en entre et en sortie. Port parallle amlior (EPP) : le port EPP (Enhanced Parallel Port) correspond une nouvelle spcication et est parfois appel port parallle mode rapide. Paru en 1991, ce type de port fonctionne quasiment la vitesse d'un bus ISA. Ce port permet d'atteindre un dbit de 2Mo/s. 59
Port parallle capacit amliores (ECP) : le port ECP (Enhanced Capabilities Port) a
t sorti en 1992. Tout comme le port EPP, ce port constitue une version amliore du port parallle standard et requiert un circuit logique spcial. Le port ECP trs performant requiert cependant un canal DMA ce qui peut provoquer des conits avec d'autres priphriques qui utiliserait un canal DMA. Les nouveaux ordinateurs sont gnralement fournis avec des ports ECP permettant d'eectuer des communications haut dbit. La plupart du temps, les ports ECP peuvent tre convertis en port EPP ou en port parallle standards par l'intermdiaire du BIOS (au setup). Il est seulement prfrable de placer ce port en mode EPP pour bncier d'un dbit maximal.
4.1. Introduction
4.1.3 Signaux
gure 4.1: Connecteur DB25 pour SPP SPP 1 2-9 10 11 12 13 14 15 16 17 18-25 STRB D0-D7 ACK BUSY PAPER OUT SELECT AUTO FEED DATA STRB ERROR INIT/RESET SEL IN GND RESET ADR STRB GND EPP R/W D0-D7 INT WAIT ECP Host CLK D0-d7 Periph CLK Periph ACK Reverse ACK X FLAG Host ACK Periph Request Reverse Request 1284 Active GND
4.1.4 Protocole
Voici un exemple de dialogue entre un PC et une imprimante :
registre de commande : il garde l'tat de quatre bits (C0 C3) qui sont habituellement utiliss comme sorties. L'adresse de base pour le port LPT1 est habituellement 0x378 (0x278 pour LPT2)
Oset Reg. R/W bit fonc. Base+0 Donnes W 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 Oset Reg. R/W bit fonc. Base+1 Etat R 7 busy 6 ack 5 paper out 4 select in 3 error 2 IRQ 1 reserv 0 reserv Oset Reg. R/W bit Base+2 Commande R/W 7 6 5 4 3 2 1 0 fonc. inutilis inutilis bidirectionnel IRQ via Ack selec printer reset printer auto linefeed strobe
gure 4.4: Protocole Centronics les donnes sont appliques sur le port (D0-D7) ; imprimante occupe ? (busy ?) le programme manipule la ligne nStrobe, attend 1 s puis re-manipule la ligne ; les donnes sont lues sur front montant de nStrobe ; l'imprimante indique son tat par la ligne Busy ; Une fois les donnes acceptes par l'imprimante, elle envoie un ACK (impulsion ngative de 5 s sur nAck).
Le mode EPP permet des transferts haute vitesse dans les deux sens. Comme il peut commuter rapidement le sens de transfert, le port EPP est utile pour des dispositifs qui changent des petits blocs de donnes avec de frquents changements de direction, tels que lecteurs de disques externes ou interfaces de rseaux. Un port EPP fait la distinction entre deux types d'informations, habituellement dnis comme donnes et adresses. Le mode EPP permet quatre oprations : criture d'adresse (gure ??), criture de donnes (gure ??), lecture d'adresses (gure ??), lecture de donnes (gure ??), chacune ayant un protocole d'accord dirent. Les transferts EPP dirent du mode SPP par le fait que les circuits du port gnrent automatiquement des signaux de contrle et dtectent les rponses venant de l'autre extrmit. Il n'est donc pas ncessaire d'instructions par un logiciel pour charger l'tat du signal de sortie Strobe ou pour lire une entre occupe. Les oprations de donne et d'adresse en mode EPP utilisent dirents signaux de contrle pour verrouiller les octets dans le dispositif de rception. critures et lectures d'adresse utilisent nAStrobe (C3), lectures et critures de donnes utilisent nDStrobe (C1) : ceci est un moyen simple pour que le rcepteur fasse la distinction entre les deux types d'information. Un port EPP utilise 8 registres (tableau 5), cinq de plus que le port original SPP.
gure 4.8: Signaux et DB25 en mode tendu (ECP) Le mode ECP permet galement le transfert rapide de donnes dans les deux sens. Il comporte un tampon FIFO de 16 octets pour garder les donnes envoyer et les donnes reues. Pour les transferts les plus rapides, le port ECP peut compresser les donnes pour conditionner l'information en moins d'octets. L'accs direct la mmoire (DMA) permet l'unit centrale de faire d'autres actions pendant que les donnes sont transmises entre le tampon et la mmoire. En plus d'tre rapide, les transferts en mode ECP sont exibles : ils peuvent s'accommoder des priphriques plus lents, parce que le protocole d'accord n'a pas de timeout automatique. Les signaux de protocole d'accord font la distinction entre donnes et signaux de contrle. Un octet de contrle peut contenir une adresse ou une information de compression de donnes. Du ct de l'hte, le port ECP contient un tampon FIFO de 16 octets qui stocke les donnes envoyer et les donnes reues. L'unit centrale (CPU) peut crire une srie d'octets dans le tampon et les circuits du port veillent les crire dans la mme squence sur les sorties Donnes du port. Dans le sens oppos, les tampons stockent une srie d'octets reus et la CPU lit chaque octet avant que le suivant n'arrive. Si le PC envoie des donnes vers un priphrique lent, le PC peut crire jusqu' 16 octets dans le tampon FIFO et faire d'autres choses ensuite. Le port ECP transfrera les donnes automatiquement lorsque le priphrique sera prt. De mme, si un priphrique rapide veut envoyer des donnes vers un PC, le tampon FIFO du PC en stocke jusqu' 16 octets de donnes reus, que le PC pourra lire son gr. 65
4.3 Programmation
4.3.1 Interruption logicielle
Le paramtrage des ports parallles est beaucoup plus simple que celui des ports sriels. En standard, le PC est quip d'un seul port parallle, mais il serait tout fait possible d'en rajouter un second. Dans la plupart des BIOS, une interruption est d'ailleurs rserve d'oce cet eet, que le port soit prsent ou non. Dans de nombreux cas, le second port est dsactiv et l'IRQ 5 est rutilise pour un autre composant. 66
4.3. Programmation
Type de Port
Fonction
67
Chapitre 5
Port Srie
Sommaire
5.1 5.2 5.3 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1 Gnralits
La liaison srie asynchrone est couramment utilis en informatique et en automatique (de manire plus gnrale en pilotage de procds) pour traiter tout problme de transmission. Pour transporter l'information, on utilise la tension (RS 232-liaison monopoint, RS422-liaison multipoint, RS485liaison multipoint bidirectionnelle) ou le courant (boucle de courant 20mA) selon la norme EIA 232 (Electronic Industry Associate) depuis 1969 puis rvalue en 1991.
gure 5.1: Liaisons multipoint et directe point point (utilisant la tension) La liaison RS232 est simple, universelle, parfaitement connue et supporte par un grand nombre de priphriques. Contrairement la liaison parallle, elle autorise de grandes distances mais possde des rglages plus compliqus. Ceci justie une tude dtaille.
5.1. Gnralits
gure 5.2: Principe d'une communication srie RS232 Pour que deux ordinateurs puissent communiquer entre eux, un protocole de transmission bien prcis doit tre respect pour que l'metteur et le rcepteur se comprennent. Pour dterminer l'afcacit de la ligne, il s'agit avant tout de reconnatre les donnes utiles (caractre, mot, message) des donnes de contrle (autres bits).
gure 5.3: Ecacit d'une communication srie RS232 Le format d'une trame est le suivant : attente START DONNEES PARITE (facultatif) STOP 1 bit 5,6,7 ou 8 bits 1 bit 1,1.5 ou 2 bits
gure 5.4: Niveau logique en communication srie RS232 C'est partir du Start que le rcepteur se synchronise et chantillonne les autres bits du caractre. Donc si la ligne passe l'tat bas / 0 logique (rle du Start), le rcepteur sait que des bits (utiles : donnes caractre) vont tre transmis (dbut de communication). Le rcepteur recevra ensuite les bits de donnes (cod sur 5,6,7 ou 8 bits) en commenant par le LSB suivis d'un bit de parit (facultatif) et d'un (ou plusieurs) bit de Stop qui indique au rcepteur la n de transmission de la donne. La transmission d'un caractre se termine toujours de cette faon et le niveau logique de la ligne revient l'tat haut. En ce qui concerne le bit de parit, il sert dtecter un ventuel problme lors de la transmission des donnes. On distingue la parit paire et impaire : parit paire : mettre le bit de parit 1 ou 0 pour assurer un nombre total (y compris le bit de parit) pair de bit 1 ; parit impaire : mettre le bit de parit 1 ou 0 pour assurer un nombre total (y compris le bit de parit) impair de bit 1.
gure 5.6: Transmission de C, 2 Stop, parit impaire, ASCII non tendu Les frquences de transmission autorises sont prcises par la norme RS232. On utilise habituellement des liaisons 300, 1200, 2400, 4800, 9600 et 19200 Bauds. En rsum : 70
5.1. Gnralits
etc . . . La plupart des priphriques ncessitant une connexion bilatrale pour communiquer avec un PC utilisent un port srie standard RS232.
Fonction
dtection de porteuse (Data Carrier Detect ) rception des donnes (Received Data ) mission des donnes (Transmitted Data ) terminal prt (Data Terminal Ready ) masse (Signal Ground ) donnes prtes (Data Set Ready ) demande d'mission (Request To Send ) prt pour l'mission (Clear To Send )
Sens
E1 E S S1 E1 S1 E1
PHYSIQUE - SG est la liaison de masse lectrique qui peut tre confondue avec la masse mcanique. LIGNE de donnes - TxD est la ligne d'envoi des donnes. - RxD est la ligne de rception des donnes. VALIDATION d'mission-rception
72
5.1. Gnralits
- RTS est une ligne de demande d'mission. La ligne est positionne l'tat haut lorsque le terminal veut envoyer des donnes. (DTE DCE) - CTS est une ligne d'invitation mettre. Elle passe au niveau haut lorsque le DTE attend des
CONNECTION de ligne - DTR est positionn par l'metteur (terminal) l'tat haut pour signaler au rcepteur (ordinateur) qu'il est en ligne et qu'il est prt mettre des donnes. - DSR indique (si niveau haut) que l'ordinateur est prt recevoir les donnes du terminal. Fonctions du MODEM - DCD n'est utilis en principe que sur les modems. C'est la ligne de dtection de la porteuse qui passe l'tat haut lorsque le modem reoit une porteuse valide (tonalit). Il permet un modem d'avertir le terminal qu'il est en relation avec un autre. - RI est une ligne utilise seulement par les modems. C'est l'indication de sonnerie. Par cette ligne, le modem avertit l'ordinateur que le tlphone sonne (en gnral, fonction intgre).
donnes du DCE. Il signale qu'il peut recevoir les donnes du DCE et qu'il peut donc les lui envoyer.
5.2 Protocoles
Lorsqu'un DTE met plus de donnes que ne peut accepter un DCE ou pour dterminer si le DTE ou si le DCE est en service, on utilise les signaux de protocole d'accord (" Handshake "). Les signaux correspondants permettent de surveiller l'tat d'un autre et de rpondre en consquence. Ils indiquent la faon par laquelle le ot des donnes passant dans l'interface est rgul et command. Selon la nature (DTE ou DCE) des appareils connects, le type de connexion et le protocole d'change pourra tre dirent. Il existe 2 grandes familles de protocole d'accord : Matriel : au niveau physique (ls, tensions). Utilisable seulement si les appareils concerns peuvent tre connects par cbles. (exemples : DTR-DSR et RTS-CTS). Logiciel : au niveau du contenu des donnes. Ces dernires contiennent des caractres spciaux, aussi appels caractres de contrle (Xon-Xo).
gure 5.12: Connections DTE-DCE La communication se droule en plusieurs phases (attention : niveau haut = 0 logique) :
gure 5.13: direntes phases d'une communication DTE vers DCE 1. DTR passe " 1 ". Le DTE indique qu'il est prt et demande la connexion de la ligne. 74
5.2. Protocoles
2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
DSR passe " 1 ". Le DCE rpond qu'il est prt : la ligne est connecte. RTS passe " 1 ". Le DCE indique qu'il veut mettre (vers l'extrieur) CTS passe " 1 ". Le DCE indique qu'il est prt mettre des donnes sur la ligne. Emission des donnes. RTS passe " 0 ". Le DTE suspend l'mission. RTS ne peut pas repasser " 1 " tant que CTS = 1. CTS passe " 0 ". Le DCE indique qu'il ne peut plus mettre de donnes. (phase 8-10) L'mission est de nouveau valide. CTS peut ventuellement repasser " 0 " pour demander au DTE une interruption du transfert des donnes pendant un laps de temps dni d un problme (de ux, de synchronisation,. . .). (phase 11-12) L'mission est suspendue. (phase 13) DTR passe " 0 ". Le DTE demande la dconnection de la ligne. (phase 14) DSR passe " 0 ". Le DCE rpond et la ligne est dconnecte.
On voit que ces lignes font partiellement double emploi dans une communication full-duplex. C'est pourquoi frquemment un DTE pourra ne commander que DTR ou RTS et ne scruter que l'une ou l'autre des lignes DSR, CTS et/ou CD. Un DCE pourra ne scruter que DTR ou RTS et ne commander que l'une ou l'autre des lignes DSR, CTS et/ou CD.
gure 5.14: DTE-DTE half-duplex sans contrle C'est une liaison half-duplex. En eet, B doit attendre de recevoir la donne en 2 avant de pouvoir mettre sur A en 3. Si on veut initier une liaison full-duplex, l'mission de l'un doit correspondre la rception de l'autre. On doit donc croiser les connexions (soit directement sur l'quipement, soit sur le cble). Cette liaison 3 ls est minimale.
Attention, personne ne vrie si son correspondant est prt mettre, prt recevoir ou tout simplement sous tension !
gure 5.16: Cblage Null Modem L'ide est de faire croire que l'ordinateur A parle avec un modem B plutt qu'avec un ordinateur B (mulation). La ligne DTR est reboucle sur DSR et DCD. Ainsi, lorsque DTR est mis 1, le DSR et DCD deviennent immdiatement actifs. L'ordinateur A pense alors que le modem (virtuel) B auquel il est connect est prt et a dtect la porteuse d'un autre modem. Comme les ordinateurs communiquent la mme vitesse (pas de contrle de ux) RTS et CTS sont boucles ensemble. Ainsi, lorsque l'ordinateur veut mettre, il positionne RTS 1 et reoit immdiatement 1 sur CTS (autorisation d'mettre) et commence donc son mission.
Remarque 5.1 (Problme). Il faut viter que chaque DTE attend une autorisation sur l'une ou
l'autre de ses lignes CTS, DSR et CD car on attendra indniment que la conversation commence. Cependant, on remarquera que chacun des correspondants manipule ses lignes RTS et DTR ds 76
5.2. Protocoles
qu'il est prt et conclura que l'on peut servir les CTS, DSR et CD de chacun par des lignes RTS et DTR de l'autre. s
Problme de rgulation de ux de donnes : il serait extraordinaire que l'metteur envoie des
donnes exactement au rythme optimal pour le rcepteur. S'il est plus lent, cela n'est pas grave. Par contre, s'il est plus rapide que le rcepteur, il est possible de perdre des donnes. Pour viter ce problme, il faut : soit que le rcepteur traite les donnes plus vite qu'elles n'arrivent, soit qu'il fasse stopper le ux de donnes lorsqu'il risque d'tre momentanment dpass. pour ce faire, il faut que le rcepteur avertisse l'metteur. L'ide la plus naturelle est de cbler la totalit des signaux an de pouvoir contrler les ux.
Le rcepteur indique l'metteur qu'il est prt recevoir une donne. L'metteur met alors la donne sur la ligne de transmission. C'est le Handshaking. Dans le cas o des signaux physiques sont chargs de contrler le ux des changes de donnes, on parlera de handshaking matriel caractris par le terme de protocole RTS/CTS.
Phase 1 : Connexion de ligne sur les systmes A et B. Les signaux DTR et DSR peuvent tre valids suite une procdure de rponse automatique transmise par le circuit RI (125). Phase 2 : Validation de l'mission sur A (RTS=0 et CTS=0). L'ETCD A met une porteuse sur la ligne. gure 5.19: Exemple de trame en protocole RTS CTS Phase 3 : Dtection de porteuse par l'ETCD B (DCD=0). Phase 4 : Transmission de donnes. Phase Rsum : 5 : Arrt de l'mission par A (RTS=1 et CTS=1). Phase 6 : Dconnexion de la ligne sur A et B (DTR=1 et DSR=1). E T D A E C D A E C D B E T D B TD DTR RTS DSR CTS Donnes
DSR DCD
RD DTR 1 2 3
Donnes 4 5 6
Figure 7 :Direntes Etablissement de la liaison deux systmes avec2 laDTE norme V24. gure 5.20: phases d'une entre communication entre (A et B) IV.3.Cblages
1. Connexion de ligne sur les systmes A etde B. Les signaux DTR et DSR peuvent tre valids Emission donnes TD 103de : TD suite une procdure rponse automatique transmise103 par: le circuit RI. Rception de donnes 2. Validation de l'mission sur A (RTS = 1 et CTS = 1). Le 104DCE : RD A met une porteuse sur la 104 : RD Demande d'mission ligne. 105 : RTS E : RTS E 105par 3. Dtection de porteuse le DCE B (DCD = 1). Prt mettre T 106 : CTS 106 : CTS T 4. Transmission de donnes C ETCD prt T 107 : DSR D DSR 5. Arrt de l'mission 107 par :A (RTS = 0 et CTS = 0) D ETTD prt = 0 et DSR 108 6. Dconnections de la ligne sur A et B (DTR = 0) : DTR 108 : DTR Dtection porteuse 109 : DCD 109 : DCD 78 Masse signal 102 : SG 102 : SG
5.2. Protocoles
Il est possible que l'metteur ne reoive pas ou perde les caractres XON - XOFF. Pour pallier ces problmes, lorsque l'metteur n'a pas reu de caractres depuis un certain temps, ce dernier peut reprendre de sa propre initiative le transfert. Si le rcepteur n'est pas d'accord, ce dernier pourra toujours r-mettre un XOFF. 79
5.3 Annexes
5.3.1 Algorithme Xon-Xo
5.3. Annexes
gure 5.24: Algorithmes d'mission / rception d'un caractre ASCII avec utilisation des buers 81
Chapitre 6
UART
Sommaire
6.1 6.2 6.3 6.4 6.5 Introduction . . . . . . . . . . . . . Conguration . . . . . . . . . . . . . Les Registres de l'UART . . . . . . Programmer l'UART . . . . . . . . Annexe : architecture interne d'un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UART 16550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 83 84 92 95
6.1 Introduction
Aprs avoir tudi le mode de fonctionnement d'une liaison srie RS232, nous allons tudier comment programmer le contrleur d'interface (UART) charg de piloter cette liaison.
6.1.1 Gnralits
L'UART 8250-16550 (Universal Asynchronous Receiver Transmitter ) constitue le cur de tout port srie. Il contrle compltement la conversion et des donnes (natives) parallles de l'ordinateur (CPU) en format srie, puis la conversion des donnes srie en format parallle ainsi que le chargement / dchargement des registres internes.
6.2. Conguration
La RS232 est l'interface standard, le modem ralise la CNA / CAN, et les changes se font par une liaison tlphonique moyennant une modulation FSK (Frequency Shift Key) selon le schma de principe suivant :
gure 6.2: Transmission avec modem Les PC originaux utilisaient l'UART 8250, qui est toujours utilise par un grand nombre de cartes adaptateurs srie du march. L'volution a conduit l'UART 16550 (FIFO : tampon 16 octets, dbit 115.2 KBps communications rapides) et trs rcemment l'UART 16750 (FIFO 64 octets, supporte une liaison RS485, mode 4 canaux). Son architecture interne est donne en annexe (voir section ??). Les dirences se situent principalement dans l'apparition de 2 FIFO au niveau des registres d'mission / rception pour contrler les changes.
6.2 Conguration
L'UART peut tre utilise selon 2 modes : scrutation ( polling ) : le CPU lit en permanence les lignes pour dterminer l'tat de la transmission (prt mettre TxRDY, donne reue RxRDY). interruption ( interrupt ) : chaque fois qu'un caractre est reu par un port srie, il doit attirer l'attention de l'ordinateur en activant un canal de requte d'interruption (IRQ). Les ordinateurs bus ISA (dsuets) comportent de 8 16 canaux de ce type. Les ordinateurs actuels en comportent 256 (mais tous ne concernent pas la gestion des communications). C'est gnralement la puce contrleur d'interruption (PIC) 8259 qui traite ces requtes d'attention. Sur une conguration standard, le port srie COM1 utilise l'IRQ 4 et le port srie COM2 utilise l'IRQ3. Lorsqu'un port srie est install sur un PC, il doit tre congur pour utiliser des adresses d'E/S spciques et des interruptions. Il est prfrable d'utiliser les standards existants COM1 et COM2 qui sont respectivement situs aux adresses de base 0x3F8 et 0x2F8. 83
Chapitre 6. UART
gure 6.3: IRQ pour UART sur PC Connaissant l'adresse mmoire du port srie concern, comment dialoguer avec l'UART 16550 an de congurer la communication ? 1. en utilisant les fonctions de l'interruption logicielle 0x14(voir chapitre 3, 2. en programmant directement les registres du 16550.
1 R/W DLL B0 B1 B2 B3 B4 B5 B6 B7
x x x x x x x x
char inp(int AdressePort) lit un caractre (ASCII) sur le port situ l'adresse AdressePort et le retourne outp (int AdressePort, char val) crit la valeur val sur le port situ l'adresse AdressePort. Certains registres possdent la mme adresse physique mais ils ne peuvent tre accds simultanment (lecture ou criture). Cela ne pose donc pas de problme (conomie de registre physique). Nous allons tudier progressivement (selon leur adresse dans la table) chaque registre.
Chapitre 6. UART
Ci dessous, le tableau rsum des valeurs charger pour une vitesse (standard de 1, 8432M Hz ) de transmission : Vitesse (bauds) valeur (D) valeur (H) 50 2304 300 384 1200 2400 4800 96 48 24 9600 12 19200 56200 6 0x06 2 0x02
Chapitre 6. UART
bit 0 (ERDA : Enable Receive Data Avalaible int) : interruption quand donnes reues dans RBR (0 = non et 1 = oui). bit 1 (ETD : Enable Transmit holding register Data available interrupt) : interruption produite lorsque le registre d'attente d'mission THR devient vide (n d'mission d'un caractre) bit 2 (ERLS) : Enable Receiver Line Status interrupt) : interruption autorise lors d'un changement d'tat de la ligne de rception. bit 3 (EMS : Enable Modem Status int) : interruption autorise lors changement d'tat du modem. bits 4 7 inutiliss et toujours zro.
bit 3 (DMS : Dma Mode Select) :RxRDY et TxRDY passent de 1 0 (deviennent inactifs). bit 4-5 (TTL-TTM : Transmit Trigger level LSB-MSB) : dnissent le seuil max atteindre (en octets)sur FIFO THR (=TFR) avant de dclencher une interruption FIFO. bit 6-7 (RTL-RTM : Receiver Trigger level LSB-MSB) : mmes niveaux mais pour FIFO RBR (RFR) TTM TTL (resp. RTM) (resp. RTL) 0 0 1 1 0 1 0 1 seuil 1 octet 4 octets 8 octets 16 octets
Chapitre 6. UART
(gure, bits 4-7). Si le nombre d'octets est susant, le processeur ne sera pas interrompu pendant ses activits et aura le temps de vider les FIFO entre des critures (ou des lectures) dans ce buer.
tableau 6.5: Nombre de bits de codage des donnes (payload) et de bits de STOP
SP EPS PEN x 0 0 1 1 x 0 1 0 1 0 1 1 1 1 type de parit NP : No Parity OP : Odd Parity EP : Even Parity HP : High Parity LP : Low Parity signication aucune impaire paire haute : 1 basse : 0
bit 2 (OUT1) : valide (1) ou invalide (0) la sortie OUT1 (en la forant 1). bit 3 (OUT 2) : idem pour OUT2. bit 4 (LOOP) : Si 1, simule un LOOP-back, permet de tester l'UART en dtectant si la dfaillance est matrielle (rupture,pb de ligne) ou logicielle (pb de conguration). bit 5 (AFE : AutoFlow control Enable) : si 1, mode diagnostic : la donne mise est immdiatement reue. Cela permet de vrier le bon fonctionnement du transfert de donne (bus interne). bits 6-7 : tous 0.
Chapitre 6. UART
4 5 6 7
(CTS : Clear To Send) :1 si CTS=0. En mode Diagnostic gal RTS. (DTR : Data Terminal Ready) : 1 si DTR=0. En Diagnostic gal DTR. (RI : Ring Indicator) : 1 si RI=0. En mode Diagnostic gal OUT1. : (DCD : Data Carrier Detect) 1 si DCD=0. En Diagnostic gal OUT2.
6.4.1.1 Initialisation
La dmarche est la suivante : Prparer l'accs au registre diviseur (DLAB =1 dans LCR) Charger le diviseur (2 octets) Remise 0 de DLAB dans LCR Initialiser les paramtres de transmission Eventuellement reset de l'UART par lecture des registres (LSR, THR, IIR, MSR)
6.4.2.1 Initialisation
Prparer l'accs au registre diviseur (DLAB=1 dans LCR) Charger le diviseur ( 2 octets ) Remise a 0 de DLAB dans LCR Initialiser les paramtres de transmission Dtourner les interruptions (vecteur 0x0C pour COM1 et 0x0B pour COM2) Prciser les causes des interruptions souhaites Autoriser l'UART mettre des interruptions Rinitialiser par une lecture les registres de l'UART (LSR, THR, IIR, MSR) Indiquer au PIC 8259 le bon masque des interruptions (autoriser celles de COM1 et/ou COM2)
Chapitre 6. UART
gure 6.9: Tampon Circulaire (FIFO) Le pointeur en criture pointe sur un emplacement du tampon qui est libre. On crit alors la donne sauvegarder cet emplacement et on incrmente le pointeur de faon ce qu'il pointe sur le prochain emplacement libre s'il y en a. Le pointeur en lecture pointe sur la prochaine donne lire. Aprs la lecture, on incrmente ce pointeur de faon ce qu'il pointe sur la prochaine donne non lue. On peut programmer un tampon circulaire en utilisant un tableau et deux index incrment. Si on arrive en n de tableau, on repart depuis le dbut (utiliser pour cela le modulo taille du tableau). Il faut grer les pointeurs de manire ce que le pointeur de lecture ne dpasse pas le pointeur d'criture.
94
TL C 865216
Note Applicable pinout numbers are included within parenthesis gure 6.10: Structure
Chapitre 7
I2C
Sommaire
7.1 7.2 7.3 7.4 7.5 7.6 7.7 Introduction . . . . . . . . . . . Le protocole I2C . . . . . . . . . La gestion des conits . . . . . . L'adressage des composants . . Mode de transfert en adressage Mode de transfert en adressage La programmation du bus I2C . . . . . . . . . . . . . . . . . . . . . . . . standard tendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 98 101 103 104 106 108
7.1 Introduction
7.1.1 Prsentation et domaine d'application
Le bus I2C (Inter Integrated Circuit), externe au PC, a t dvelopp au dbut des annes 80 par Philips semiconductors pour permettre de relier facilement un microprocesseur les dirents circuits d'un tlviseur moderne sans augmenter les cots. Depuis, des fabricants de plus en plus nombreux ont propos des circuits intgrs compatibles. D'extension en extension, la vitesse a augment, les distances entre les appareils connects se sont allonges. C'est donc devenu une solution relativement simple de ralisation d'un micro-rseau trilaire de type srie, synchrone, multimatre dtection de collision avec hot-plugging. Un systme utilisant ce bus peut reprsenter une alternative bas prix une liaison RS232 : ACCESS Bus. Le bus I2C (malgr son caractre srie) n'appartient pas aux bus de terrain. Il n'est pas destin couvrir de longues distances et ne possde pas l'immunit aux parasites ncessaire. Le bus I2C se charge des communications qui sont (d'ordinaire) assures par le microprocesseur (plus particulirement le bus parallle). Il permet ainsi une conomie de place, une dcharge du microprocesseur dans la gestion multi-matres des priphriques (qui ncessite donc un arbitrage). Ce bus est ainsi devenu un standard pour les liaisons lentes des priphriques grand public. Il est souvent quali de petit bus comparativement aux bus parallles. toutefois, il possde certaines possibilits inconnues des autres bus : il ne ncessite que 2 ls ; il dispose de ltres d'entre qui rendent inoensives les impulsions parasites que peuvent vhiculer les 2 ls (SDA et SCL) ; 96
7.1. Introduction
les composants les plus lents peuvent allonger la priode d'horloge pour faire attendre le circuit matre. Beaucoup de microcontrolleurs n'acceptent pas ces cycles d'attente. il possde un protocole qui permet a plusieurs matres de partager le bus physique et de communiquer entre eux grce aux systme d'arbitrage anti-collision. Le bus I2C est alors bien adapt aux systmes multi-processeurs.
gure 7.1: Raccordement sur le bus I2C Du point de vue lectronique, les lignes bidirectionnelles SDA, SCL sont toutes les deux relies l'alimentation positive Vcc (qui dpend de la technologie des composants : TTL ou CMOS) des circuits par l'intermdiaire de rsistances de pull-up (RP ). Ceci permet de maintenir le bus au niveau haut lorsqu'il est libre. L'interface I2C des circuits est toujours collecteur (bipolaire) ou a drain (MOS) ouverts pour permettre au circuit connect de ramener le niveau de la ligne la masse. Le niveau rsultant est alors une fonction logique ET de toutes les sorties connectes sur les lignes. RP limite la charge capacitive et RS les pics de tension par induction. De nombreux fabricants ayant adopt ce systme, la varit des circuits disponibles disposant d'un port I2C est important : Ports d'E/S bidirectionnels, Convertisseurs A/N et N/A, Mmoires (RAM, EPROM, EEPROM, etc...), Circuits Audio (Egaliseur, Contrle de volume, ... ) et autre LED, LCD... Le nombre important de circuits intgrs comprenant l'interface I2C ore de multiples avantages aux concepteurs de systmes lectroniques. En eet, l'atout majeur de cette liaison est de pouvoir facilement connecter en parallle sur le bus de nouveaux lments ou d'changer un lment contre un autre sans restructurer le systme. En eet, chaque point du bus possde une adresse exclusive (en nombre limit selon la capacit d'adressage). Le nombre de composants qu'il est ainsi possible de relier est essentiellement limit par la charge capacitive des lignes SDA et SCL : 400 pF au total. Les donnes sont transmises en srie l00 Kbits/s (12.5 ko/s) en mode standard et jusqu' 400 Kbits/s (50 ko/s) en mode rapide, ce qui ouvre la porte de cette technologie toutes les applications o la vitesse n'est pas primordiale. 97
Chapitre 7. I2C
version du mardi 29de novembre 2005 2 h 17 Le changement d'tat: QuelCM_InfoIndus: que soit le niveau (haut ou bas) la ligne de donnes SDA sa valeur ne pourra changer que lorsque la Le protocole I2C 7.2. Philips Semiconductors ligne d'horloge SCL sera l'tat BAS.
7.2.3 Les
Due to the variety of different technology devic bipolar) which can be connected to the I2C-bus logical 0 (LOW) and 1 (HIGH) are not fixed a gure 7.2: Validit des donnes associated level of VDD (see Section 15.0 for E Conditions de dpart start et d'arrt stop. Specifications). One clock pulse is generated fo 2 l'intrieur du protocole den dfinition de l'I C les situations qui rgissent SCL conditions de dbut / transferred.
STABLE: OF DATA dpart et dedu stop et non des tout bits de dpart et de celui-ci stop. soit au repos (SDA=1 Pour prendre le contrle bus, il faut d'abord que etvalidity SCL=1) 5.1 Data DATA VALID ALLOWED pendant un intervalle susant. Pour transmettre des donnes sur le bus, il faut donc surveiller deux The data on the SDA line must be stable during SU00361 the clock. The HIGH or LOW state of the data l conditions particulires : when theSCL=1. clock signal on the SCL line is LOW ( Figure Bit transfer the (front I2C-bus descendant) alors La condition de dpart (note S) 5. : SDA passe on '0' que La condition d'arrt (note P) : SDA passe '1' (front montant) alors que SCL=1. 5.2 START and STOP conditions
ces conditions sont uniques. Il est noter que ce sont des conditions de DATA LINE CHANGE
Within the procedure of the I2C-bus, unique situ are defined as START and STOP conditions (s
SDA SDA
A HIGH to LOW transition on the SDA line whil such unique case. This situation indicates a ST
SCL
SCL
Condition de start : Cette situation a lieu et uniquement lieu lorsque defines la S P a STOP condition. ligne de donnes SDA passe de l'tat haut l'tat bas tandis que la ligne START STOP START and STOP conditions are always gener d'horloge reste l'tat haut. CONDITION CONDITION The Condition de stop : Cette situation a lieu et uniquement lieu lorsque la bus is considered to be busy after the STA SU00362 bus is considered to be free again a certain tim gure 7.3: de dpart et d'arrt de transmission du I2C ligne de Conditions donnes SDA passe de l'tat bas l'tat haut tandis que labus ligne condition. This bus free situation is specified in Figure 6. START and STOP conditions Philips Semiconductors d'horloge reste l'tat haut.
Detection of START Lorsqu'un circuit, aprs avoir vri que le bus est libre, prend le contrle de celui-ci, iland enSTOP conditions by d tout cela il faut ajouter les complments suivants : the bus is easy if they incorporate the necessa devient le matre. C'est lui qui gnre le signal d'horloge. Les autres composants doivent continuer les conditions de start et de stop sont toujours cres par le matre, hardware. However, microcontrollers with no su de scruter le 2 bus en attendant la condition de Stop. le bus est dit occup aprs la condition de dpart, sample the SDA line at least twice per clock pe Remarque 7.1 (Re-Dpart). la n d'une trame trouve une condition de (P). Le bus le bus seraA considr comme libreon aprs un certain temps (bien the stop transition. (re)devient libre au bout d'un temps d'environ 4,7 s. Pour viter le risque de perdre la main entre dfini) aprs la condition de stop. chaque trame, un matre peut utiliser un bit particulier appel Re Dpart (SR : Repeated Start). Comme il n'est pas possible de lire et d'crire en mme temps, le bit SR vite 2 oprations qui nces2.7. Les formats de transmission. siteraient une squence de Start (S) + Stop (P) et lui permet ainsi d'acclrer ses communications puisqu'il n'a pas besoin de renvoyer l'adresse du composant chaque trame ! 2.7.1. Format des mots.
S donnes. SLAVE ADDRESS R/W A DATA A/A Sr SLAVE ADDRESS R/W A DATA A/A P
Examinons maintenant les formats des mots et des transferts des Chaque mot transmis sur la ligne de donne SDA doit avoir une (n bytes (n bytes longueur de 8 bits. Jusque permettra de + ack.) l rien de particulier et ceci + ack.)
read or write
Le BUS I2C.doc / FJ
read or write
s
99
Chapitre 7. I2C
gure 7.5: Validation de transmission : ACKnowledge avec SCL (Horloge), SDAM (SDA matre), SDAE (SDA esclave) SDAR(SDA rel rsultant).
Remarque 7.2 (Pause). L'criture d'un octet dans certains composants (mmoires, microcontr100
leur,... ) ou peut prendre un certain temps. De mme, la lecture peut ncessiter un temps d'attente
(n de conversion pour CNA-CAN). Il est donc possible que le matre soit oblig d'attendre l'acquittement ACK avant de passer la suite : puisqu'il est matre de l'horloge, il fait donc une pause de la manire suivante :
Chapitre 7. I2C
eectivement au niveau bas et le matre est bloqu. Le rsultat est que le bus se synchronise sur la priode la plus basse, donc le circuit le plus lent (qui peut tre un matre lent ou bien un esclave qui a besoin de temps d'attente).
7.3.2 L'arbitrage
7.3.2.1 Contexte
La structure mme du bus I2C a t conue pour pouvoir y accueillir plusieurs matres. Se pose alors le problme commun tout les rseaux utilisant un canal de communication unique : le contrle du bus. En eet, chaque matre pouvant prendre possession du bus ds que celui-ci est libre, il existe la possibilit que deux matres dsirent prendre la main en mme temps. Si cela ne pose pas de problme sur le plan lectrique grce l'utilisation de collecteurs ouverts, il faut pouvoir dtecter cet tat pour viter la corruption des donnes transmises.
7.3.2.2 Principe
Comme nous l'avons vu prcdemment, pour prendre le contrle du bus, un matre potentiel doit d'abord vrier que celui-ci soit libre et qu'une condition d'arrt a bien t envoye depuis au moins 4, 7s. Mais il reste la possibilit que plusieurs matres prennent le contrle du bus simultanment. Le mcanisme est le mme que celui de la synchronisation des horloges. un matre qui met un tat haut et relit un tat bas reconnat qu'un autre matre utilise le bus et perd le contrle du bus donc cesse sa transmission. Chaque circuit vrie en permanence l'tat des lignes SDA et SCL y compris lorsqu'ils sont eux mme en train d'envoyer des donnes. On distingue alors plusieurs cas : Les dirents matres envoient les mmes donnes au mme moment : les donnes ne sont pas corrompues, la transmission s'eectue normalement, comme si un seul matre avait parl. Ce cas est trs rare, voire impossible. Un matre impose un 0 sur le bus : il relira forcment 0 et continuera transmettre. Il ne peut pas alors dtecter un ventuel conit. Un matre cherche appliquer un 1 sur le bus : s'il ne relit pas un niveau 1, c'est qu'un autre matre a pris la main en mme temps. Le premier perd alors immdiatement le contrle du bus, pour ne pas perturber la transmission du second. Il continue nanmoins lire les donnes au cas o celles-ci lui auraient t destines.
avec SCLR : Horloge rsultante, SDA 1 : SDA matre 1, SDA 2 : SDA matre 2, SDA R : SDA rel rsultant (lus par les deux matres).
7.3.2.4 Analyse
Le premier octet est transmis normalement car les deux matres imposent les mme donnes. (Cas 1). Le bit ACK est mis 0 par l'esclave. Lors du deuxime octet, le matre 2 cherche imposer un 1 (SDA2), mais relit un 0 (SDAR), il perd alors le contrle du bus et devient esclave (Cas 3). Il reprendra le contrle du bus lorsque celui-ci sera de nouveau libre. Le matre 1 ne voit pas le conit et continue transmettre normalement (Cas 2). En conclusion, l'esclave reu les donnes du matre 1 sans erreurs et le conit est pass inaperu. Remarque 7.3 (Arbitrage et collisions). A partir du mcanisme d'arbitrage, on peut dduire 3 consquences : 1. Les adresses les plus faibles sont prioritaires sur les plus leves. Dans la construction d'un systme I2C plusieurs esclaves, les esclaves les plus prioritaires se verront aecter les adresse les plus basses. 2. En cas d'adresse identiques, l'criture possde la priorit sur la lecture (car le bit R/W=0). 3. Les collision sont dites non destructives puisque la donne prioritaire arrive intacte au destinataire.
Chapitre 7. I2C
Rserv pour usage futur High Speed Adressage tendu Reserv pour usage futur
Philips Semiconductors
SLAVE ADDRESS R/W A DATA A/A Sr SLAVE ADDRESS R/W A DATA A/A P (n bytes + ack.) * read or write (n bytes + ack.) * direction of transfer may change at this point.
MBC607
read or write
10 7-BIT
Cas particulier des mmoires : L'espace adressable d'un circuit de mmoire tant sensiblement plus grand que la plupart des autres types de circuits, l'adresse d'une information y est code sur ADDRESSING 105
Chapitre 7. I2C
deux octets ou plus. Le premier reprsente toujours l'adresse(physique) du circuit et les suivants l'adresse interne de la mmoire.
gure 7.16: Exemple d'criture d'une page dans une mmoire (24C02)
same master occupies the bus all the time. The transfer 2C-bus The specification Combined format. A Imaster transmits data to a slave direction is changed after the second R/W bit. and then reads data from the same slave (Fig.28). The same master occupies the bus all the time. The transfer direction is changed after the second R/W bit.
handbook, full pagewidth
1 00 X X
DATA A DATA A/A R/W A SLAVE ADDRESS SLAVE A ADDRESS 2nd A1 BYTE R/W A2 DATA A 1st 7 BITS 2nd BYTE 1 1 1 1 0 X X 0
DATA A/A P
MBC613
11110XX 1 SLAVE ADDRESS (write) SLAVE ADDRESS S R/W A1 A2 DATA A 1st 7 BITS 2nd BYTE SLAVE ADDRESS Sr 1st 7 BITS
DATA A/A P
DATA A
MBC613
R/W A DATA A
(write)
(read)
MBC615
7.6.3 Fig.26 Lecture du matre A master-transmitter addresses a slave-receiver with a 10-bit address.
handbook, full pagewidth 11110XX
Fig.28 Combined format. A master addresses a slave with a 10-bit address, then transmits data to this slave and reads data from this slave.
0 11110XX 1 SLAVE ADDRESS SLAVE ADDRESS A2 Sr R/W A3 DATA A 2nd BYTE 1st 7 BITS 1 1 1 1 0 X X 1
A2 Sr
DATA A P
MBC614 DATA
SLAVE ADDRESS
0
SLAVE ADDRESS R/W A3 DATA A 1st 7 BITS(read) gure 7.19: Lecture en mode tendu
DATA A/A
7.6.4
(write) SLAVE ADDRESS SLAVE ADDRESS A DATA A R/W A 1st 7 BITS 2nd BYTE Formats combins
S (write)
(read)
MBC614
11110XX 0 Fig.27 A master-receiver addresses a slave-transmitter with a 10-bit address. SLAVE ADDRESS SLAVE ADDRESS SLAVE ADDRESS SLAVE ADDRESS DATA A/A Sr DATA A/A P S R/W A A DATA A A A DATA A 1st 7 BITS 2nd BYTE1st 7 BITS 28 R/W 2nd BYTE
(write)
28 1 1 1 1 0 X X
(write)
MBC616
1 DATA A P
Fig.29 Combined format. A master transmits data to two slaves, both with 10-bit addresses.
(read)
MBC615
SLAVE ADDRESS
Fig.28 Combined format. A master addresses a slave with a 10-bit address, 0 data to this slave and reads data from this slave. 7 - BIT then transmits DATA A DATA
R/W A A/A (write) 11110XX Sr 0 DATA A/A P
MBC617
2nd BYTE OF 10-BIT 1st 7 BITS OF 10-BIT R/W A SLAVE ADDRESS A DATA A SLAVE ADDRESS
0 (write) SLAVE ADDRESS SLAVE ADDRESS S A A DATA A R/W 1st 7 BITS 2ndEcriture BYTE gure 7.21: en mode (write)
DATA A/A
Fig.30 Combined format. A master transmits data to two slaves, one with a 7-bit address, 1 1 1 1 0 X X 0 and one with a 10-bit address.
On dcide de connecter le bus I2C la liaison srie dun PC. Le but est de pouvoir utiliser le bus I2C afin dy connecter de nombreux priphriques. On doit donc crire un pilote ( driver ) pour CM_InfoIndus:version du mardi 29 novembre 2005 2 h 17 configurer et grer le protocole I2C. En particulier, on demande dcrire les fonctions relatives Chapitre 7. I2C linitialisation du bus I2C (I2C_init), et la dtection des tats de dbut (START), de fin de communication (STOP) et dacquittement (ACK). On ne demande pas de raliser les fonctions dcriture et de lecture de ce bus I2C. La connexion se fait selon le principe suivant : R sont les 7.7 La du busSDA I2Cet SCL la masse (GRD) pour ladaptation rsistances deprogrammation rappel et on relie les lignes lectrique. Le sens des lignes est driver donnsi par sens des flches. Le schma est srie : comme suit : Exemple de fonctions pour on le connecte SDA et SCL la liaison
gure 7.22: Exemple de connection du bus I2C au port srie Il suffit alors de lire ltat du registre MCR (COM1 + 4) de lUART et de lire ou crire les valeurs des bits auxl'tat conditions dinitialisation du bus et de auxl'UART conditions delire START, STOP Il correspondant sut alors de lire du registre MCR (COM1 + 4) et de ou crire les et ACKnowledge. valeurs des bits correspondant aux conditions d'initialisation du bus et aux conditions S, P et ACK. <ansi_c.h> a) #include Complter les instructions manquantes pour raliser la connexion du bus I2C la liaison srie
#include <ansi_c.h> #define COM1 0x3F8 /*adresse de base du port srie COM1 */ void I2Cinit( void) ; void I2C_init( void); void Start (void) {outp( COM1 +;4 ) = 2 ;
#dene COM1 0x3F8 /*adresse base port srie COM1*/ #dene MCR /*adresse du registre MCR (utiliser COM1)*/
{outp (MCR , 2 ) ;/* SCL = 1 ; SDA = 0 ; */ outp (MCR , 0 ) ;/* SCL = 0 ; SDA = 0 ; */ } void Stop (void) ; {outp (MCR , 0 ) ;/* SCL = 0 ; SDA = 0 ; */ outp (MCR , 2 ) ;/* SCL = 1 ; SDA = 0 ; */ outp (MCR , 3 ) ;/* SCL = 1 ; SDA = 1 ; */ }
/* SCL = 1; SDA = 1 */
void ACK (void) ; {int compt ; /* compteur pour boucle tempo 20 ( ajuster) */ /* dpend de la frquence processeur */ outp (MCR , 0 ) ;/* SCL = 0 ; SDA = 0 ; */ outp (MCR , 2 ) ;/* SCL = 1 ; SDA = 0 ; */ for (compt = 0 ; compt <= 20 ; compt ++) {outp (MCR , 0 ) ;/* SCL = 0 ; SDA = 0 ; */ } } 108
Chapitre 8
USB
Sommaire
8.1 8.2 8.3 8.4 8.5 8.6 Introduction . . . . . . . . . . . . . Transactions et Transferts . . . . . Protocole USB . . . . . . . . . . . . Types de transferts (terminaisons) Enumration et Descripteurs USB Sur votre PC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 113 114 121 125 127
8.1 Introduction
La dmocratisation d'appareils numriques grand public ncessitant des taux de transfert soutenus (camscope, scanner, appareils photos numriques, etc. . .), a oblig les constructeurs dvelopper des interfaces plus rapides, plus universelles tout en pouvant y raccorder un maximum de ces priphriques htroclites. Les ports srie / parallle, avec leurs caractristiques dsutes, voient leur utilit dcrotre au prot de rcentes interfaces comme l'USB (Universal Serial Bus), le FireWire (domaine grand public) ou d'autres plus anciennes mais qui ne cessent d'tre amliore comme le SCSI (domaine professionnel). Nous allons tudier l'interface USB qui reprsente une nouvelle liaison srie synchrone.
Chapitre 8. USB
Parmi les priphriques pouvant tre raccords au micro-ordinateur, nous pouvons citer claviers, souris, joysticks, scanners, imprimantes, tlphones, assistants personnels, baladeurs mp3, lecteurs/graveurs de cd-rom, disques optiques et magntiques, webcams, modems, etc. . .. Autant dire que cette interface est voue remplacer court terme toutes les autres interfaces d entres/sorties de nos micro-ordinateurs (au moins celles du domaine grand public). Les principaux critres du dveloppement de ce bus ont t les suivants : 3 dbits (maximum thorique) cohabitent : faible, pleine et haute vitesse (Low Speed 1.5 Mbit/s, Full (Medium) Speed 12 Mbit/s et High Speed 480 Mbit/s pour USB 2.0). Les dbits rels sont en fait plus faibles. En eet, le bus doit faire passer, outre les donnes, les bits d'tats, de contrles et les bits d'erreurs. De plus, plusieurs priphriques peuvent se partager le bus et diminuer (dans certains modes o la bande passante n'est pas garantie) le dbit rel. Facilit d'emploi et d'utilisation : hot plug and play (dtection du changement de la tension entre D+ et D-), hot swapping. Une seule IRQ pour tous les priphriques connects au port (n aux pb de conits). Energie (faible : 100 mA) distribue par le cble (moins de prises). Bas-prix pour les dbits faibles (12 Mbit/s = 1.5Mo/s). Transmission en temp rel (voix, audio, vido comprime). Protocole souple pour dirents modes : Transmission de paquets. Mode isochrone. Messages courts. Sparation des commandes et des donnes. Adaptation direntes conguration sur le terrain Adaptation aise de nouveaux types de priphriques (adressage dynamique). Support de l architecture CTI (Computer Telephony Integration) Topologie en toile (via des Hubs) ou en bus (chans les uns aux autres). Nombre maximum de priphriques lev (127). Rcemment, carte multi-ports gre par 2 ou + contrleurs. Principalement half-duplex
8.1.2 Cbles
Le bus USB ncessite une connectivit propre compose de connecteurs de deux types, les connecteurs de type A disposs aux entres du contrleur matre et des HUB (upstream), et des connecteurs de type B sur les priphriques (downstream), ainsi un seul type de cble est ncessaire pour relier tous priphriques au micro-ordinateur :
8.1. Introduction
Ce cble se compose de 4 ls, une paire torsade pour le transfert des donnes, un l au potentiel de +5V qui permet d alimenter les priphriques USB si ncessaire et enn la masse (tlalimentation) :
gure 8.2: Composition (signaux) du cble USB On tablit la correspondance des signaux selon les types de connecteurs (A ou B) de la manire suivante : 1 (rouge) : 1. alimentation (Vbus), rouge 2. D- (Data), blanc 3. D+ (Data), vert 4. masse (GND), noir
gure 8.3: Correspondance des signaux pour les connecteurs A et B ce cble peut tre blind ou non, le mode basse vitesse de 1.5 Mbits/s ayant une tolrance suprieure aux perturbations lectromagntiques. Un blindage est fortement recommand pour une utilisation pleine vitesse 12 Mbits/s (longueur max de 5 mtres de cble entre 2 lments). Enn, un autre atout de ce bus est qu il peut transporter l alimentation des priphriques s y raccordant, dans la limite de 500 mA pour un appareil reli un port le permettant.
8.1.3 Topologie
L USB propose une topologie physique peer-to-peer, il tablit donc des connexions point point entre le contrleur matre (host) et chaque priphrique branch suppos esclave (device). Mme si thoriquement, la topologie du bus USB permet de connecter dans n importe quel ordre des priphriques, certaines rgles doivent tre respectes. Ainsi, une architecture USB se construit base de 3 lments : 1. Un contrleur matre USB(Host) + Root Hub. 2. Des priphriques USB (Devices) nomms de manire plus gnrale fonctions. 3. Des concentrateurs : Hubs qui sont des priphriques particuliers disposant de plusieurs ports de connexion au bus USB. Port unique ct upstream et multiple ct downstream. La structure de connexion des priphriques USB au contrleur matre se fait sous forme d toile tage (tiered star) , o le centre est le contrleur matre et les extrmits de celle-ci les priphriques : 111
Chapitre 8. USB
gure 8.4: Structure toile srie Un lment supplmentaire s avre indispensable la connexion d un certain nombre de priphriques USB au contrleur principal (situ dans le South Bridge du chipset de la carte mre ou sur une carte additionnelle). En gnral, on ne dispose pas de plus de 5 connecteurs USB. Il devient alors ncessaire d introduire dans l arborescence des HUB USB :
gure 8.5: Topologie logique La topologie physique du bus USB devient ainsi un arbre, o les nuds sont alors les HUB et les feuilles les priphriques. Remarque 8.1. En tudiant la topologie logique de l'USB, on met en vidence la nature partage du bus. Chaque logiciel client (ct host) qui va manipuler une fonction (ct device) la verra comme si elle tait la seule sur le bus. Les concepteurs de logiciel n'ont plus se proccuper des problmes lis au partage du bus. Pas d'interconnexion possible entre 2 PC (ou de manire quivalente pas de partage de pri112
phriques par 2 PC). Il ne peut y avoir qu'un host par bus (pas d'arrangement multi-matre). La nouvelle spcication USB 2.0 (2002) on-the-go introduit une possibilit d'arbitrage (ngociation) pour le choix du rle de host (reserv une connexion simple p2p entre 2 hosts)). 2 types de HUB USB : ceux possdant un circuit d alimentation individuel pour chaque port (hub classique) et d autres dpourvus de cette caractristique (hub interne au clavier). 3 contrleurs d'hte : contrleur UHCI (Intel) : aspect logiciel > matriel. contrleur OHCI (Compaq, Microsoft, NSC) : aspect matriel > logiciel. contrleur EHCI (Standard USB 2.0) : 1 seul driver. s
8.2.5 Squencement
Bus synchrone : 1 ms par trame (donc bus cadenc 1 KHz) 113
Chapitre 8. USB
gure 8.6: Couches du protocole USB La communication se fait entre le Host (ordinateur) et les Device (priphriques) selon le principe de l'anneau jeton (Token Ring) : la bande passante est partage temporellement entre tous les priphriques connects et l'hte met un signal de dbut de squence (Frame) chaque milliseconde, intervalle de temps pendant lequel il va donner simultanment la parole chacun d'entre-eux (sensation de connexion privilgie). Le protocole de communication est quali de host scheduled token based protocol : le host initie toutes les transactions. Le premier paquet (le jeton) est produit par le host pour dcrire ce qui va suivre, si la transaction de donnes sera en lecture ou en criture, ce que sera l'adresse de l'appareil et la terminaison (mode de transfert) dsigne. Le jeton contient donc une grande partie de l'information sur la nature de la communication. Lors de la connection d'un nouveau priphrique, le host procde la phase d'numration. Le jeton contient l'adresse du priphrique (code sur 7 bits = 27 =128 priphriques-1 car adresse 114
'0' est rserve, adresse par dfaut avant aectation) qui dsigne le priphrique concern. Si ce dernier reconnat son adresse dans le jeton, il envoie un paquet de donnes en rponse, sinon, il fait suivre aux autres priphriques qui lui sont chans. En dtail, un client envoie au systme USB une requte transforme en IRP (Input-output Request Packet) par le driver USB. Le host gre la liste des IRP (numration). Chacune se concrtise par la succession d'une ou de plusieurs transactions (s'il faut fragmenter les donnes) sur le bus. Chaque transaction se dcompose alors en la succession d'au plus 3 paquets dont les rles sont bien dnis (Token, Data, Handshake) dans les protocoles.
8.3.1 PIPE
Dnit au niveau de la couche fonction, un Pipe est un prliminaire la communication : rservation d'un canal entre logiciel du Host et la terminaison (End-Point) du priphrique. A chaque canal est associ : la bande passante requise les caractristiques du End-Point (direction, taille max donnes, etc. . .) le type de transfert de donnes 2 type de PIPE : 1. STREAM : les ux de donnes brutes n'ont pas de format USB prdni. Prise en charge des transferts en Bloc, Isochrone et Interruption. 2. MESSAGE : les canaux ont un format USB dni. Prise en charge uniquement des transferts de commande.
La communication entre priphriques et htes sur le bus physique se prsente sous la forme d'un ot de bits mis en srie. C'est le SIE (Serial Interface Engine) qui s'occupe de transformer le ot de bits arrivant en parallle dans les buers du contrleur hte, en un ux de donnes srie conforme la spcication USB. Ce ux est constitu d'un ensemble de bits interprtables dans une fentre de temps dtermine. Cette taille de fentre est xe une milliseconde et l'ensemble des bits contenus dans cette fentre constitue une trame (Frame). Une trame est divises en 3 parties : _______________________________________________________________________________________ un marqueur de dbut de trame (SOF : Start Of Frame) qui est un paquet spcial mis par l'hte toute les millisecondes. un ensemble de transactions de dirents types entre hte et priphriques. un intervalle de n de trame (EOF : End Of Frame) qui est une priode comprise entre la dernire transaction mise dans la trame et le jeton SOF de la trame suivante.
Trame N 1 (1 ms) EOF SOF Trame N (1 ms) Trame N + 1 (1 ms) EOF SOF Temps SOF Start of Frame : marqueur de dbut de trame EOF End of Frame : intervalle de fin de trame Figure 24 Gnration de trame sur le bus physique
Gro
115
Chapitre 8. USB
Un bit isol ne signie rien. On trouvera toujours un paquet. Dans le cas o il n'y a aucun travail a eectuer, on envoie SOF toutes les ms :
gure 8.8: Paquet SOF Un priphrique doit d'abord isoler une trame l'intrieur de laquelle on retrouve des ensembles de paquets (Token, Data, Handshake) :
gure 8.9: Paquets de la trame USB La composition de ces 3 paquets ralise une transaction :
gure 8.10: Transaction C'est toujours l'hte qui initie la transaction et c'est le priphrique qui a t slectionn par le host qui peut alors utiliser le bus. Il reoit la permission de parler au moment o il reoit le jeton 116
initiateur (SOF). La manire de distribuer le jeton et l'ordre dans lequel les paquets vont circuler sur le bus sont dnis dans le protocole rgissant le fonctionnement du bus.
gure 8.11: Structure d'un paquet USB) Il faut noter que le LSB est envoy en premier et que chaque paquet est prcd d'un champ de synchronisation utilisant le codage NRZI (un 1 logique est un non changement d'tat au contraire du 0 logique) et le bit stung (on met un 0 aprs six 1 logique conscutifs pour forcer une transition NRZI et ainsi viter les pertes de donnes) :
TOKEN : Les paquets token vont du hub racine (host) vers un priphrique et servent au contrle du systme. Ce paquet jeton indique le type de la transaction qui va suivre et a pour but de transporter l'adresse et le sens du transfert. Il contient un champ PID, un champ ADDResse, un champ terminaison (ENDP) et un champ de contrle d'erreur CRC 5. Il y a 3 sortes de
jetons possibles : Jeton IN informe l'appareil que le host veut lire des informations.
117
v1.0 - 21/09/02
4 bits 3 bits
Chapitre 8. USB
PID
ADDR ACK
Les paquets
IN OUT informe l'appareil que le host veut envoyer des informations. Jeton OUT Jeton SETUP utilis pourau commencer transferts de commande (gnralement pour Token doivent se est conformer formatles suivant, SETUP la conguration d'un12 dispositif). Figure : Format du paquet Handshake
NACK STALL
ENDP
CRC
8 bits
7 bits
4 bits
3 bits
d. Les paquets SOF Figure 10 : Format Token ADDR du paquet ENDP PID
CRC
IN b. OUT Lesd'une paquets Data Le paquet SOF compos trame de 11 bits est envoy par l'hte toutes les 1ms SETUP 500ns sur un bus Full Speed vitesse ou bien toutes les 125s 0,0625s sur un bus
Speed. y High a 2 sortes de paquets de donnes pour la norme 1.1 ( Data0 et Data1) gure 8.13: Champ du paquet Token (Jeton) e mode High Speed dfinit 2 autres PIDs de donnes, DATA2 et MDATA. Les paquets SOF ont le format suivant : Figure 10 : Format du paquet Token o
SOF : paquet de dbut de trame : il est envoy par le host toutes les 1ms (en Full speed) ou bien
toutes les 125ms (en High speed). Il est compos de 3 champs : PID-Frame-CRC 5 :
La taille maximale de donnes " donnes utiles " pour les priphriques 8 bits 11 bits 5 bits b. Les paquets Low Speed vitesse est de 8 Data octets.
Frame Number CRC5 PID o Lade taille maximale de donnes donnes " pour les priphriques Il y a 2 sortes paquets de donnes pour la"norme 1.1 utiles ( Data0 et Data1) Full Speed est de 64 octets. Le mode High Speed dfinit 2 autres PIDs de donnes, DATA2 et MDATA.
SOF
La taille maximale de donnes " donnes utiles " pour les priphriques High Speed est de 1024 octets. o La taille maximale de donnes " donnes utiles " pour les priphriques gure 8.14: Champ du paquet SOF Low Speed doivent vitesse est de 8 octets. o Les donnes tre envoyes en multiple d'octets. Figure 13 : Format du paquet SOF DATA : paquet de donnes. Il y a 3 sortes de paquets de donnes : o La taille maximale despeed) donnes " donnes utiles " pour les priphriques DATA 0 : 8 octets (Low USB 1.1. DATA 1 : est 64 octets (Full speed) USB 1.1. Full Speed de 64 octets. es paquets de Data ont le : DATA2 et format MDATA suivant : 1024 octets speed) USB 2. Le standard Il USB assure une grande (High fiabilit des transferts par la dtection de est compos de 3 champs : PID-DATA-CRC 16. o La taille maximale de donnes " donnes utiles " pour les priphriques nombreuses erreurs au niveau hardware. : High Speed est de 1024 octets. 8 bits 16 bits 0-1023 bytes o
Erreur de paquets Les donnes doivent tre envoyes DATAen multiple d'octets. CRC16 PID o Paquet ID o Bit Stuff DATA0 o CRC DATA1 Data suivant Toggle : Les paquets de Data ont leoformat Time-out ( absence de rponse ) Babling 8 bits 16 bits 0-1023 bytesDATA gure 8.15: Champ du paquet LOA (Loss of Activity) Figure 11 : Format du paquet Data 118 DATA CRC16 PID
ACK : validation de bonne rception du paquet. NAK : indique que l'appareil ne peut (temporairement) pas envoyer ou recevoir des donnes ou bien sert terminer une communication lorsque le host le dcide. STALL : indique que l'appareil est bloqu.
Chapitre 8. USB
faux, le rcepteur ignore ainsi ce(s) champ(s), voire le paquet entier. Pour un PID jeton, le CRC est de 5 bits, il est calcul partir des champs ADDR et ENDP. Le polynme gnrateur est : G(X ) = X 5 + X 2 + 1. Si tous les bits sont reus sans erreur, le CRC au niveau du rcepteur est : 01100. Pour un PID FRAME, le CRC est de 5 bits, calcul partir des 11 bits du champ FRAME. Pour un PID DATA, le CRC est compos de 16 bits, calcul partir du champ donnes. Le polynme gnrateur est : G(X ) = X 16 + X 15 + X 2 + 1. Si tous les bits de donnes et de CRC sont reus sans erreur, le CRC est 1000000000001101.
valeur PID 0001 1001 0101 1101 0011 1011 0111 1111 0010 1010 1110 0110 0000
type de paquet OUT : informe le device que le host veut mettre IN : informe le device que le host veut recevoir SOF (Start Of Frame) : dbut de tableau SETUP : conguration, dbut des transferts commande DATA 0 : low speed, 8 octets DATA 1 : full speed, 64 octest DATA 2 : high speed,1024 max MDATA : high speed,1024 max ACK (ACKnowledge) : validation, accus rception NAK (No AcKnowledge) : le priphrique ne peut accepter (envoyer) les donnes sur Rx (Tx). STALL : bloqu NYET (No response YET) : pas encore de rponse PREamble : synchroniseur initial
Data (Donnes)
La spcification du Bus Srie Universel dfinit 4 types rts de ou transfe de terminaisons, Transferts de commande Transferts d'interruption Transferts Isochrone Transferts en Bloc (BULK) Gestion de la bande champ passante.
PID FRAME Number
CM_InfoIndus:version du mardi 29 novembre 2005 2 h 17
type d'erreur
vrication du PID errone, pb de bit stung CRC d'adresse incorrect, pb de bit stung CRC de frame incorrect, pb de bit stung
DATA CRC de donnes incorrect, pb de bit stung donnes ignores s Transferts ed commande sont rgulirement utiliss pour les oprations de command tat. Ils sont essentiels pour installer appareil tableau 8.2: Erreur un des paquets USB USB avec toutes les fonction i seront excuts en utilisant les Transferts de commande. Il surviennent ement gnral en quets directs et par rafales qui sont initis par l'hte et utilisent le meilleur vraison. La longueur du paquet du Transfert de commande pour appareil basse vites 8 octets, les appareils pleine vitesse autorise tailleune de paquet de 8, 16, 32 ou 64 oc s appareils haute vitesse doivent avoir une taille de paquet de 64 octets.
tape d'installation L' se passe lorsqu'une demande est envoye. Elle est pose com de 3 paquets. Le jeton (token) d'installation envoy le premier est celui qui co Control Transfers et le 8.4.1 numro de la terminaison. Le paquet de donnes est envoy aprs et a to type PID de Data0 et inclut paquet un d'installation qui dtaille le type de la deman Nous dtaillerons le paquet d'installation plus tard. Le dernier paquet est u Il est constitu plusieurs tapes. Chaque tape (ou transaction) est compose de 3 paquets mains utilis pourdevalider la bonne rception ou pour indiquer Si unela erreur. fonction (TDH : Token, Data, Handshake). Il est utilis principalement pour les oprations d'initialisations reoitetcorrectement la donne d'installation ( CRC et PID etc...Ok) elle rpo de congurations. sinon elle ignore la donne et n'envoie pas un paquet de poigne de mains. Le ne peuvent pasd'installation mettre : un paquet STALL ou NAK en rponse paquet un d'installatio l'tape
tape de dones facultative consiste en un ou plusieurs L' transferts IN (Entre) ou O (sorties). La demande d'installation indique la quantit de donnes qui doit l'tape de donnes (facultative) : dans cette tape. Si elle dpasse la taille maximale du paquet, les donnes s envoyes en plusieurs transferts, chacune ayant ngueur la lo maximale du paquet 121 l'exception du dernier paquet.
que le PID ne correspond pas avec les bits inverss du PID, il ignore paquet. Si le jeton est reu correctement, l'appareil peut soit rpond paquet de donnes contenant les donnes de commande envoyer, soit un pa CM_InfoIndus:version du mardi 29 novembre 2005 terminaison 2 h 17 "d'arrt" signalant que la a eu une erreur soit un pacquet signalant l'hte que la terminaison fonctionne, mais provisoirement Chapitre 8. USB donnes envoyer.
OUT (Sortie):Si l'hte envoie un (ou des) jeton(s) OUT pendant l'tape donnes pour transme ttre des donnes, la fonction validera la bonne rcep donnes en envoyant un paquet de longueur nul en rponse un jeton IN. Toutefois si une erreur intervenait, cela dboucherait sur un STALL ou s fonction tait encore occup traiter nnes, les do cela dboucherait sur un NAK gure 8.18: Transfert de commande : transaction dde donnes (facultatif) demandant l'hte retenter l'tape d'tat ultrieurement. (Sortie): Quand de l'hte a besoin d'envoyer l'appareil un paquet OUT
de commande, il emet un jeton OUTivi su par un paquet de donnes contenan l'tape de d'tat : donnes commande comme "charge utile" (payload). Si une partie du j OUT ou du paquet de donnes est altr alors la fonction ignore le pac buffer de terminaison de la fonction tait vide a cadenc et qu'il les donnes da le buffer de terminaison, il produit un ACK avisant l'hte qu'il a bie donnes. Si le buffer de terminaison n'est pas vide cause du traitem paquet prcdent, alors la fonction retourne un NAK. Toutefois erminaison si la t comporte une erreur et que son bit "halt" ai t positionn, elle reto (Bloqu). tape d'tat L' rend compte des tats de l'ensemble de demandes et cette fois change selon la direction du transfert. Le rapport d'tat ours est ralis touj par la fonction.
IN (Entre): Si l'hte envoie un (ou des) jeton(s) IN pendant l'tape de recevoir des donnes, alors l'hte doit valider la bonne rception de ces est ralis par l'hte qui envoie un jetoniOUT parsuiv un apquet de donnes de Transferts de Commande: Le coeur du problme. longueur nul. La fonction peut maintenant rendre compte de son tat dans poigne de mains. Un ACK indique que la fonction a achev la commande et est maintenant prte accepter une autre commande. Si une r s'est erreu produite Maintenant, voyons comment tout cela s'accorde? Supposons par exemple que l'hte veu pendant l'excution de cette commande, alors la fonction mettra un STALL Toutefois si la fonction continue l'excution, elle retourne un NAK indiq demander un descripteur d'appareil pendant l'numration. Les paquets qui sont envoy ncessit de rpter l'tape d'tat ultrieurement.
les suivant s:
8.19: Transfert dedisant commande d'tat que le paquet suivant es L'hte enverra un jeton gure d'installation : transaction la fonction o OUT (Sortie):Si l'hte envoie un (ou des) jeton(s) OUT pendant d'installation. Le4 champ adresse fixera l'adresse de l'appareil 14/06/02 qui l'htel'tape a deman ER Bernard CHAP Page 2/8 Caractristiques : descripteur. Le numro la terminaison devrait la tre uniquant zro, une ind ligne donnes pourde transme ttre des donnes, fonction validera la dfectueuse bonne rcep Message Stream. L'hte enverra alors paquet DATA0. -ci Celui aura 8 octets de en "charge utile" donnes enun envoyant un de longueur nul rponse un (payload) jeton IN. Conguration, status, set up despaquet priphriques. correspondant la Demande de d'Appareil comme soulign auchapitre de la ou s taille des paquets : 8,Descripteur 16, 32, 64 octets (Full Speed) et 8 octets (Low Speed). Toutefois si une erreur intervenait, cela dboucherait sur un9 STALL Protocole overhead : 45 octets spcification USB. La fonction USB annoncera alors que do le paquet d'installation t fonction tait encore occup traiter nnes, les cela dboucherait sur un a NAK correctement et sans aucune erreur. Si le paquet tait reu altr, l'appareil ignor demandant l'hte de retenter l'tape d'tat ultrieurement. 122 simplement ce paquet. L'hte renverra alors le aprs paquet un court dlai.
Les Transferts en Bloc peuvent tre utiliss pour de grandes quantits de donnes sporadiq De tels exemples pourraient inclure un travail d'impression envoy rimante une imp ou une CM_InfoIndus: version du mardi 29 novembre 2005 2 h 17 image provenant d'un scanner. Les Transferts en Bloc se prmunissent de correction d'erreu sous la forme d'un champ CRC16 sur les donnes " charge utile " et sur les mcanismes de 8.4. Types de transferts (terminaisons) dtection et de retransmission d'erreurs qui assure smission la tran et la rception de donnes de manire infaillible.
Les Transferts en Bloc utiliseront une par bande passante de rserve attribue Le caractre Plug and Play est assur une phase de reconnaissance et de non conguration auto- sur le Bus que toutes les autres transactions aient t alloues. Si le Bus est occup avec de l'Isoc matique des priphriques connects au bus. En fait, le host dtecte tout priphrique nouvellement et/ ou de l'interruption, les donnes en bloc peuvent alors s'couler doucement sur le Bus. branch, l'aideen de transferts de contrle pour connatretre ses caractristiques et choisit en communicati consquence, lesl'interroge transferts bloc devraient seulement utiliss pour des consquence le driver adquat pour le contrler. De mme, toute dconnection est automatiquement insensibles au temps du fait de la non garantie du temps d'attente.
dtecte (en hard) par le hub concern qui le signale alors au host an que celuici en tienne compte.
Le s Transferts en Bloc. Utiliss pour de grandes quantit de donnes sporadiques. Dtection d'erreurs via le CRC, avec la garantie de livraison. Pas de garantie de bande passante ou du temps d'attente minimum. Des flux de donnes - Unidirectionnel. Seulemen t des modes pleine et haute vitesse.
Les Transferts en Bloc sont seulement supports par des appareils pleine et haute vitesse. des terminaisons pleine vitesse, la longueur maximale du paquet en Bloc est soit 8, 16, 32 8.4.2 Bulk Data octets. Pour des terminais ons Transfers haute vitesse, la longueur maximale du paquet peut aller jusqu' 512 octets. Si la charge utile des donnes est infrieure la taille maximale du paquet, pas besoin d'tre remplie avec des zros. Un transfert en Bloc est considr et comme compl quand il a transfr la quantit exacte de donnes demandes, ou un paquet infrieur la maximale de la terminaison, ou un paquet de longueur zro.
Caractristiques : Pipe Stream. CHAP Paquets en (ex : Scanners, imprimantes). QUIER Bernard 4 rafale de donnes Page 7/8 Taille des paquets : 8, 16, 32, 64 octets (uniquement Full Speed). Utilise la bande passante quand elle est libre (dbit variable) ! Protocole overhead : 13 octets, data 1023 octets max.
14/06/02
123
La taille maximale de "charge utile" (payload) pour eils des appar basse vitesse est de 8 CM_InfoIndus:version du mardi 29 novembre 2005 2 h 17 octets Chapitre 8. maximale USB La taille de "charge utile" (payload) pour des appareils pleine vitesse est octets La taille maximale de "charge utile" (payload)pour des appareils haute vitesse est de 1024 octets
priodiquement la terminaison d'interruption. Le taux d'interrogatio IN: L'hte interrogera Message court (petite quantit de donnes) mis de temps en temps (pas de relles interrupspcifi dans descripteur le plutt un polling de terminaison aque Ch interrogation tions, frquent). qui sera examin plus tard. obligera l'hte envoyer un jeton IN. Si le jeton IN est altr, la fonction ignore le paq Taille des paquets : < 64 octets (Full Speed) et < 8 octets (Low Speed). continue la surveillance du Bus pour de nouveaux jetons.
Pipe Stream.
Si une interruption a t mise en attente par l'appareil, la fonction paquet enverra Data un contenant des donnes ayant rapport l'interruption quand il recevra le jeton IN. Sur des rceptions au Isochronous niveau de l'hte, -ci celui retournera un ACK. Toutefois si les donnes sont altres 8.4.4 Transfers l'hte ne mentionnera aucun tat. Si, d'autre nepart, condition u d'interruption n'tait pas
DATAx
14/06/02
DATAx
Data Packet
gure 8.22: Transfert isochrone Caractristiques : Pipe Stream. Transmission isochrone (intervalles de temps rguliers). Taille des paquets : < 1023 octets par frame : applications temps rel (exemple : Phonie, voix, vido, ISDN ...). Bande passante garantie. 124
Protocole overhead : 9 octets. Les changes isochrones sont les plus privilgies dans le sens o le host leur rserve une bande passante garantie. Ainsi, celui-ci peut refuser l'accs au bus un priphrique s'il juge que les ressources qu'il requiert ne sont pas disponibles. Type Transfert Mode (format data) Direction Taille max Data (par trame) ACK\ Reprise sur Erreur Bande rserve Control Message (prdni) bidirectionnelle 8,16,32,64 o (Full) 8 o (Low) oui 10% de la trame best eort Isochronous Stream (pas prdni) 1023 o (Full) non Interrupt Stream (pas prdni) 64 o (Full) 8 o (Low) oui Bulk Stream (pas prdni) Unidirectionnelle 8,16,32,64 o (Full) oui non good eort
Unidirectionnelle Unidirectionnelle
8.5.2 Descripteurs
Dnition 8.2 (descripteur). On peut dnir les descripteurs comme tant des blocs d'informations pr-formats. Tous composants USB doit obligatoirement possder les descripteurs standards. Tous les transferts d'informations durant cette phase d'numration se font suivant le type commande (Control transfert). Il va de soi que tout composant USB doit pouvoir tre capable de supporter ce type de transfert. s Il existe sur le march de nombreux priphriques USB. Il a fallu, lors de la cration de la norme USB , trouver un dispositif pour reconnatre chaque composant USB. Cela tait indispensable puisque l'USB devait tre un dispositif plug & play. Lors du branchement du priphrique, le host
125
Chapitre 8. USB
doit reconnatre tous les priphriques qui lui sont branch. Le processus d'numration se fait grce aux descripteurs qui sont rassembls dans un chier texte qui est ensuite programm dans le systme USB. Lorsque l'on connecte ou dconnecte un priphrique, celui ci fournit l'hte toutes les informations ncessaires son identication, c'est dire ses descripteurs. Ils sont trs utiles pour l'hte puisqu'il peut, de ce fait, connatre les caractristiques compltes du priphrique comme par exemple la puissance utile, le type de priphrique, le dispositif de transfert des donnes, le module de gestion, . . . etc.
Gnralement, dans la plupart des priphriques, toutes ces informations sont stockes dans la ROM des composants, et lors de l'numration, le priphrique envoie simplement ce chier pour se faire connatre.
1. 2. 3. 4.
Device descriptor (descripteur d'appareils) Conguration descriptor (descripteur de conguration) Interface descriptor (descripteur d'interface) Endpoint descriptor (descripteur de terminaison)
Par la suite, d'autres descripteurs ont vu le jour : String descriptor (VID) Device Qualier descriptor (idem Device pour Full & High speed) Other Speed Conguration descriptor (Full & High speed) Interface Power descriptor (gestion d'nergie, USB 2) 126
127
Chapitre 9
IEEE-1394
Sommaire
9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 Introduction . . . . . . . . . . . . . Architecture . . . . . . . . . . . . . Fonctionnement du bus FireWire . Un protocole, trois couches . . . . Une couche physique optimise . . Un arbitrage ecace et juste . . . Plug and Play et Hot Plugging ? . IEEE 1394 b, des amliorations . . . Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 129 131 133 135 135 136 136 137
9.1 Introduction
Le FireWire (IEEE 1394-1995) est une partie intgrante de la norme SCSI-3. Il utilise un bus srie et facilite la connexion de priphriques externes. On s'oriente de plus en plus vers une gestion bus rseaux
9.2. Architecture
SLLA067
Topologie exible : support du Daisy Chaining (marguerite). Garantie de bande passante pour tous les priphriques raccords.
9.1.3 Utilisation
The transmission of data without burdening the host unit creates a huge market for IEEE1394. Grce sesthe performances, l IEEE-1394 est destine particulirement require relier : an interface solution Not only does computer-based equipment in private households Les ordinateurs. for the home and home office network, but also the evolving markets of digital broadcasts, interactive services, games, and a high speed network. The Les produits manipulant de l home audio, shopping des imagesrequires et de la vido. introduction of digital set top boxes, which enable the reception of these services, enables the Les imprimantes et les scanners. capability transmit digital data not only to consumer devices like digital TV, but also to PC and Les to disques durs. storage media. Beside the consumer, and PC peripheral Les camscopes (connecteurs 1394aPC, 2000 appels mini DV).markets, many industrial applications can be covered by IEEE1394.
gure 9.1:Interconnections Topologie physique de l'IEEE 1394 Figure 11. Possible Using 1394 as Interface D une topologie trs proche de celle de l USB, le FireWire se dmarque par sa bande passante bien suprieure. Il ne ncessite pas de HUBs FireWire (en plus de l utilisation d une transmission isochrone, le FireWire supporte le transport de deux ux vido temps rel avec une qualit broadcast en simultane) et possde galement des ports pour une utilisation interne.
9.2 Architecture
9.2.1 Chipset VIA Fire xx
VIA propose des chipsets intgrant le FireWire (sans passer par le bus PCI). Prvu pour concurrencer le FireWire, l USB2 propose des caractristiques attrayantes mais est destin un march un peu dirent. Dans sa nouvelle dclinaison, l IEEE 1394b propose des caractristiques et fonctionnalits encore plus avances que son concurrent et son prdcesseur : Bande-passante amliore, passant ainsi de 400 Mbits/s 800 Mbits/s puis 1.6 Gbits/s (et mme 3.2 Gbits/s grce l utilisation de bre optique plastique multimodes). Dans cette conguration, les cbles reliant deux appareils pourront dpasser les 100 mtres ! (cbles UTP5 en 100 Mbits/s). Nouveau protocole visant amliorer la disponibilit de la bande passante grce une implmentation BIOS du protocole d adressage. Compatibilit avec les priphriques IEEE 1394-1995 par un mode bilingue.
20
129
Chapitre 9. IEEE-1394
Nouvelles applications (automobile, acquisition audio - vido), intgration IEEE 488 (GPIB) et cartes d'E/S pour l'instrumentation industrielle. gestion du bus comparable celle d'un rseau.
9.2.3 Cbles
Deux paires de cbles (TPA et TPB) servent pour le transport des informations (donnes + horloge) et une paire (VPVG) est utilise pour la tlalimentation (1,5 A sous 8 40V).
gure 9.2: Exemple de connecteur Firewire 6 broches Cette alimentation permet d'alimenter les cartes rseau an que l'arrt d'un quipement ne provoque pas de coupure sur le rseau. Le support (moins rapide que la bre optique) ore des gammes de vitesse amplement susantes pour les applications du multimedia : 100 Mbit/s (12.5 Mo/s) en half-duplex, 200 Mbit/s (25 Mo/s) et 400 Mbit/s (50 Mo/s) en full-duplex (2, 4 : possibilit due aux cbles) et 800 Mbit/s (100 Mo/s). Pour IEEE 1394-b les vitesses sont de 1.6 (200 Mo/s) et 3.2 Gbits/s (400 Mo/s).
9.2.4 Norme
La norme dnit deux environnements distincts : chssis (backplane) : il permet d'interconnecter les cartes d'un microordinateur, et vient en quelque sorte suppler les bus de fond de panier. cble (cable). il est dni pour l'interconnexion d'quipements externes. Ses caractristiques principales sont : 63 quipements au plus sur un rseau, relis point point, 27 ports au plus sur chaque quipement, topologie acyclique (pas d'anneau) daisy chain en arbre (voir gure 1), distances maximales autorises : 4,5 m entre deux nuds voisins, 72 m entre deux nuds quelconques (c'est dire 16 sauts), adressage sur 16 bits (norme IEEE 1212, systmes multibus), spcication des registres mmoires de chaque nud et des commandes (transactions read, write et lock) qui permettent d'y accder. 130
Contrairement au SCSI classique qui possde un cblage supervis (daisy chain, adresse en manuel ou xe, terminaison obligatoirement en bout de chane), avec IEEE 1394, on se retrouve en non - supervis (daisy chain hirarchis, rseau acyclique, selection des adresse automatiques, pas de terminaison, situation physique des priphriques quelconque au plug).
Philips Semiconductors
Chapitre 9. IEEE-1394
Isochronous Packets
Asynchronous Packets
Arbitration Gaps
la trame standard est un cycle dont chaque paquet (isochrone ou asynchrone) est spar par un intervalle de temps (gap) dpendant de la nature du paquet :
gure 9.5: Dtails de la trame mission / rception par paquets de donnes de 280 octets maximum (Header = 20 octets +Payload = 256 octets + CRC = 4 octets),
gure 9.6: Contenu des paquets asynchrone et isochrone dtection automatique de la vitesse des changes. envoi des donnes avec une vitesse compatible au rcepteur. nuds : rception sur un port, mission sur plusieurs ports possibles, pendant la transmission chaque nud (priphrique) peut accder au bus communication half-duplex, 2 modes : direntiel : pour reset, arbitrage, conguration, transmission paquets. commun : pour dtection d'attachement/dtachement de priphrique, commande du signal de vitesse, et du signal de suspension / reprise de transmission sur le bus. 132
PS - XXX.XX.XX-11
squence mission : ARBitrage / Prexe-Data Payload-End / Liberation Bus, squence rception : Data reue (sur couche physique) puis envoye couche liaison.
7UDQVDFWLRQ /D\HU
3DFNHWV
,VRFKURQRXV &KDQQHOV
/LQN /D\HU
&\FOH &RQWURO 3DFNHW 7UDQVPLWWHU 6\PEROV 3DFNHW 5HFHLYHU
3K\VLFDO /D\HU
(QFRGH'HFRGH $UELWUDWLRQ 0HGLD ,QWHUIDFH
)LUPZDUH
+DUGZDUH
gure 9.7: Architecture en couche
=D\DQWH ,QF 0LFKDHO -RKDV 7HHQHU 7HFKQLFDO 6XPPDU\ 6OLGH
3HUPLVVLRQ WR FRS\ JUD QWH G DV OR QJ D V WKLV QRWLILFDWLRQ LV UHWDLQHG VRPH WH[W DQG ILJXUH V ED VHG RQ 7HFKQLFDO 6XPPDU\ IURP $SSOH &RPSXWHU
La couche physique doit grer le signal de mise sous tension distance, la reconnaissance du signal de slection de l'appareil, le signal d'initialisation du bus et la rception / mission des donnes. La couche liaison formate les donnes en paquets pour la transmission via le cble. La couche liaison supporte 2 modes de communications (possible car 2 ls d'horloge) : 1. Mode asynchrone : Le mode de transfert asynchrone est bas sur une transmission de paquets intervalles de temps variables. Cela signie que l'hte envoie un paquet de donnes et attend de recevoir un accus de rception du priphrique. Si l'hte reoit un accus de rception, il envoie le paquet de donnes suivant, sinon le paquet est nouveau rexpdi au bout d'un temps d'attente. Ce temps de latence ne peut pas tre quanti car il dpend de taux d utilisation du bus par d autres transmissions pour d autres appareils communicants entre eux. 133
Chapitre 9. IEEE-1394
gure 9.8: Transaction asynchrone) 2. Mode isochrone : Le mode de transfert isochrone permet l'envoi de paquets de donnes de taille xe intervalle de temps rgulier (cadenc grce aux deux ls d'horloge). De cette faon aucun accus de rception n'est ncessaire, on a donc un dbit xe et donc une bande passante garantie. De plus, tant donn qu'aucun accus de rception n'est ncessaire, l'adressage des priphriques est simpli et la bande passante conomise permet de gagner en vitesse de transfert. Les communications isochrones sont prioritaires aux asynchrones (de sorte que la bande passante est assure). La communication isochrone entre deux appareils ou plus est assimilable un canal (PIPE). Une fois un canal tablit, l appareil demandeur est garanti d avoir l'espace-temps demand chaque cycle (donnes vido ou autres besoins temps rel).
gure 9.9: Transaction isochrone) La co-existence de ces modes est assure par une mthode dterministe d'accs au support. La racine du rseau est particularise au cours des phases d'initialisation et distribue le droit de parole au cours de la phase d'arbitrage qui prcde systmatiquement tout change de donnes en cadenant les changes isochrones (rle de cycle master ). La gestion de rseau est distribue dans les nuds qui se rpartissent en six prols, selon leurs performances. Les nuds peuvent tre : 1. repeater : simples couches physique actives, 2. transaction capable : transfert de donnes en asynchrone, 3. isochronous capable : supportant le transfert isochrone (obligatoire pour tout type d'change isochrone), 4. cycle master capable : chef d'orchestre pour l'arbitrage, 5. isochronous ressource manager capable : capables de grer les numros de canaux isochrones et leur taille, 6. bus manager capable : gestion de la tlalimentation, optimisation de la vitesse et de la topologie (ce nud n'est pas indispensable). 134
Chapitre 9. IEEE-1394
9.9. Annexes
9.9 Annexes
137
Chapitre 10
10.1 Introduction
Dans le domaine des sciences pour l'ingnieur, le systme de mesure le plus simple et le plus rpandu consiste utiliser un micro ordinateur interfac avec le systme sur lequel on travaille. Etablir un dialogue entre un micro ordinateur et un systme extrieur au PC est possible par l'intermdiaire de cartes d'interface. Ces cartes dites d'Entres/Sorties sont directement implantes l'intrieur du PC et connectes sur le bus PC via des Slots. Elles sont gnralement quipes de compteurs (timers), de circuits convertisseurs orant des entres et des sorties analogiques et des circuits base de portes logiques orant des entres et des sorties logiques l'utilisateur. Cet ensemble PC et carte d'interface est complt par un logiciel (gnralement appel driver) permettant la gestion de l'ensemble des fonctions de la carte Entres/Sorties par l'intermdiaire d'un programme. 138
Nous engloberons aussi sous ce terme les techniques ncessaires pour isoler lectriquement et amplier les tensions disponibles cette fois en sortie, de manire les rendre aptes commander les actionneurs des processus externes comme le dclenchement d'un chauage, le lancement d'un moteur ou l'ouverture d'une lectrovanne.
10.2.3 Le multiplexage
Le multiplexage des voies est une mthode permettant de scruter successivement plusieurs voies d'entre dans un systme d'acquisition. Bien entendu, cela allonge d'autant l'intervalle de temps qui s'coule entre deux mesures sur un mme canal. Le multiplexage peut consister simplement en une commutation sur l'une ou l'autre voie par l'intermdiaire de relais lectromagntiques pilots par le PC lui-mme, mais beaucoup de dispositifs de mesure comportent en entre un systme de multiplexage ralis entirement en semi-conducteurs, et aussi programmable. Lorsque l'on dsire une acquisition plus rapide, ou bien une mesure quasi-simultane sur plusieurs voies, on prfre consacrer un convertisseur analogique-numrique chaque voie.
Objectif : Lorsque l'on doit eectuer des mesures selon des intervalles de temps dnis, plusieurs
Ces 2 mthodes prsentent des inconvnients puisqu'elles ne permettent pas de mesures prcises, de plus elles mobilisent l'utilisation du processeur. C'est pourquoi les cartes d'acquisition sont munies d'une horloge indpendante et de compteurs/dcompteurs programmables appels communment timer. Les timers possdent en gnral 4 registres : 1. le registre d'entre (prcompte) : chargement de la donne en 2 fois (LSB+MSB) uniquement en criture. 2. le registre de dcomptage : chargement partir du registre d'entre, dcomptage chaque front descendant de l'horloge du quartz et autorisation du dcompte par la gchette gate. La dure de dcomptage maximale avec un compteur 16 bits et un quartz de 4 MHz (Frquence 16 de travail) vaut : dure= 42106 16.4ms. Avec 2 timers en cascade dure de dcompte plus importante. 3. le registre de contrle (gnralement 8 bits) : dnit le mode de fonctionnement. 4. le registre d'tat du timer (gnralement 8 bits) : indication sur l'tat du dcompteur opration de lecture.
10.4.2 Description
La carte tudi (Impulsion) possde 2 groupes d'adresses slectionnables par l'utilisateur :
groupe 1 adresse 0x330 : CAN, CNA, Timer. groupe 2 adresse 0x340 : E/S logiques.
gure 10.3: Schma de principe d'un CNA Le circuit intgr de cette carte qui ralise cette fonction se nomme AD7537 et contient deux convertisseurs dans son botier (voir gure 10.4). Par consquent, l'utilisateur dispose de deux sorties analogiques totalement indpendantes. En tudiant le diagramme de fonctionnement de ce circuit, on remarque qu'il est prvu pour se connecter sur un bus de donnes 8 bits. Le registre interne d'un CNA est scind en deux parties (structure 8+4) : 8 bits de LSB et 4 bits de MSB, ce qui oblige charger une donne en deux fois dans deux registres d'entre temporaires (DAC A ou B LS et DAC 142
A ou B MS) placs deux adresses direntes. En fait, la donne ne sera prsente dans le registre 12 bits (DAC A ou DAC B register) que si on agit sur la broche (19) U P D du convertisseur. Un signal logique 0 sur cette broche transfre simultanment les donnes des registres d'entre vers les registres des deux CNA.
gure 10.4: Le CNA MX7537 Toute conversion se fait en 2 tapes : 1. chargement dans 2 registres d'entre A ou B (2 adresses direntes). 2. lancement de la conversion (ce qui revient charger le registre du DAC) en agissant sur la broche 19 (U P D ) qu'il faut forcer l'tat bas. La formule gnrale pour le calcul de conversion de la tension analogique dlivre en sortie est donn par (N = nombre de bits du registre, Nb = valeur numrique convertir) :
Vsortie = Vref
L'erreur de quantication est donne par le LSB :
2N
Nb 1
Vmin = 10
1 = 2, 44mV 212 1
5 adresses sont susantes pour grer le CNA 7537 : 2 adresses pour les registres du DAC A. 2 adresses pour les registres du DAC B. 1 adresse pour activer U P D. Les 2 registres d'entre ne sont valids qu'en criture et U P D est activ par l'intermdiaire d'un dcodeur d'adresse. C'est donc l'adresse (et non la donne) et le mode d'adressage qui importent ! DA1L=ADR1+4 DA1H=ADR1+5 CONVDA=ADR1+7 D7 D6 D5 D4 D3 D2 D1 D0 W W R
D11 D10 D9 D8
gure 10.5: Schma de principe d'un CAN Le circuit intgr ralisant cette fonction est l'AD574 et contient un seul convertisseur dans son botier. AD574A
+5V SUPPLY VLOGIC DATA MODE SELECT 12/8 CHIP SELECT CS BYTE ADDRESS/ SHORT CYCLE AO READ/CONVERT R/C CHIP ENABLE CE +12/+15V SUPPLY VCC +10V REFERENCE REF OUT ANALOG COMMON AC REFERENCE INPUT REF IN -12/-15V SUPPLY VEE BIPOLAR OFFSET BIP OFF 10V SPAN INPUT 10VIN 1 2 3 4 5 6 7 8 9 10 11 12 13 9.95k 5k 5k DAC N VEE 19.95k 10V REF CLOCK 3k COMP 12 IDAC IDAC = 4 x N x IREF IREF 8k SAR CONTROL 3 S T 12 A T E O U T P U T B U F F E R S
MSB
28 N I B B L E A N I B B L E B N I B B L E C
LSB
STATUS STS DB11 27 MSB 26 DB10 25 DB9 24 DB8 23 DB7 22 DB6 21 DB5 20 DB4 DIGITAL DATA OUTPUTS
AD574A 12
La conversion analogique fera trois tapes VCC to Digital Common . . . . . . .numrique . . . . . . . . . . . 0 V se to +16.5 V enChip Temperature . .: ...........................
V to Digital Common . . . . . . . . . . . . . . . . . . . 0 V to 16.5 V
EE 1. dclenchement de la. .conversion de lecture Lead Temperature (Soldering, d'un 10 sec). registre . . . . . . . . . . .(situ . +300C l'adresse VLOGIC to Digital Common . . . . . . . . . . . . . . par . . 0 V une to +7 Vopration Storage Temperature (Ceramic) . . . . . . . . . . 65C to +150C Analog Common to Digital Common . . . . . . . . . . . . . . . 1 V adconv ). (Plastic) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25C to +100C Control Inputs (CE, CS, AO 12/8, R/C) to 2. attente de la n de conversion ( 25 s ). L'indicateur de n de conversion est le bit busy du *Stresses above those listed under Absolute Maximum Ratings may cause Digital Common . . . . . . . . . . . . . . 0.5 V to VLOGIC + 0.5 V permanent damage to the device. This is a stress rating only and functional registre situ l'adresse Tant que la conversion en cours, busy reste l'tat logique haut. Analog Inputs (REF IN, BIP OFF, adh 10 VIN. ) to operation of the device at these or any other conditions above those indicated in the Analog Common . . . . . . . . . . . . . . . . . . . . . . . . .VEE to VCC operational sections of this specification is uniquement not implied. Exposure toen absolute 3. lecture du rsultat en 2 fois. On utilisera 2 registres (accessibles lecture) aux 20 VIN to Analog Common . . . . . . . . . . . . . . . . . . . . . . 24 V maximum rating conditions for extended periods may affect device reliability. adresses adh et adl . REF OUT . . . . . . . . . . . . . . . . . . Indefinite Short to Common
144
ORDERING GUIDE
mdiate et ncessite un temps de conversion d'environ 25s pour l'AD574. Pendant que la conversion est en cours, le botier le signale par le bit d'tat busy l'tat haut. L'attente de n de conversion peut tre ralise soit par une boucle d'attente de longueur suprieure ou gale au temps de conversion soit par une lecture dans le registre situ l'adresse adh . busy passe l'tat bas lorsque la conversion est termine et que le rsultat peut tre lu.
La conversion : la technique se fait par approximations successives, la conversion n'est pas im-
Le multiplexage : le convertisseur analogique numrique est en gnral le circuit le plus coteux. Par consquent, lorsque l'on souhaite plusieurs voies d'entres analogiques, on prfre adjoindre au CAN un multiplexeur analogique plutt que de multiplier ce circuit. Ce multiplexeur permet de choisir par programmation entre x voies d'entres celle qui sera connecte au CAN. Un tel circuit 8 voies est utilis sur la carte tudie. La voie est choisie par criture de son numro dans un registre 8 bits situ l'adresse mux. La polarit : ce circuit a aussi la possibilit de traiter les signaux bipolaires (valeurs ngatives). Un bit (nomm pol ) non utilis dans ce registre mux a t utilis pour commander le mode
de polarit du CAN, ce qui vite un registre supplmentaire. Le choix du mode de conversion V Vref (unipolaire : 0 Vref Volts ou bipolaire : de ref 2 + 2 ) se fait par une simple action d'un signal logique, ce qui consiste en une criture dans le registre situ l'adresse mux . Si pol = 0, alors le mode choisit est bipolaire sinon il est unipolaire.
ADL = ADR1+5 ADH = ADR1+4 ADCONV = ADR1+6 MUX = ADR2+1 D7 BUSY D6
D4 D3 D2 D1 D0 8 LSb (CAN) D11 D10 D9 D8 busy+4 MSb (CAN) Lancement de la Conversion NX2 NX1 NX0 POL pol = 1 : unipolaire (0/10V) pol = 0 : bipolaire (-5/+5V ou -10/+10V)
D5
R R R W
Six programmable timer modes allow the 82C54 to be used as an event counter elapsed time indicator programmable one-shot and in many other applications
CM_InfoIndus:version du mardi 29 The novembre 2h 82C54 is2005 fabricated on17 Intels advanced CHMOS III technology which provides low power consumption
with performance equal to or greater than the equivalent HMOS product Chapitre 10. Acquisition de Donnes - Temps Rel and 28-pin plastic leaded chip carrier (PLCC) packages The 82C54 is available in 24-pin DIP
Diagrams are for pin reference only Package sizes are not to scale
10.4.3.1 Fonctionnement
Pour commencer, il faut charger le registre d'entre avec un nombre de son choix (0 65535). Le October 1994 Order Number 231244-006 front de l'horloge suivant provoque le transfert de ce nombre dans le registre de comptage o il sera dcrment chaque front descendant de l'horloge. Lorsque le compte est arriv 0, soit le compteur attend une nouvelle initialisation (mode dit monocoup ), soit il se rinitialise avec le nombre toujours prsent dans le registre d'entre et on recommence le dcomptage (mode cyclique ou priodique ). On peut aussi demander un signal de sortie symtrique (signaux carrs ) ou impulsionnel. Une tension d'entre logique activant gate autorise ou non le dcompte. L'ensemble des caractristiques de fonctionnement (monocoup, priodique, forme du signal de sortie et rle de gate ) dnit le mode de fonctionnement.
Remarque 10.1 (Latch). Il vaut mieux viter de lire le compteur l'instant o sa valeur change.
On opre donc en 2 temps. La valeur instantane est d'abord transfre dans un registre tampon et c'est celui-ci que l'on interroge alors que le (d)compteur continue de dcrmenter. s 146
Registre d'entre : chaque compteur possde son propre registre d'entre 16 bits spar en deux octets (MSByte-LSByte). Le registre est accessible en criture adresses count0 (resp. count1, count2 ) pour le timer0 (resp. timer1, timer2 ). Il y a donc 3 registres d'entre. Le bus (interne) de donnes tant de 8 bits, il faut donc crire dans ce registre d'entre en 2 fois : la 1re criture se fait dans le LSB et la 2me dans le MSB (cela est rendu possible par une logique interne). Registre de contrle : on devrait avoir trois registres de contrle correspondant chacun des 3 compteurs. En ralit, les trois registres sont multiplexs l'intrieur du botier et l'aiguillage est assur par les deux bits de poids fort de ce registre situ l'adresse timcw (timer control word). Avantage : on n'a besoin que d'une seule adresse pour les 3 timers. Les autres bits du mot de contrle servent dnir le mode de fonctionnement du compteur slectionn. Pour ce botier, il y a six modes disponibles :
terminal). Une action sur la gachette (gate 1) autorise le dcomptage, un zro provoque une pause. Mode 1 : monostable rarmable monocoup (ou pulsation de longueur variable hard). Un front montant sur la gachette provoque le dcompte. Une nouvelle action sur la gachette relance partir de la valeur du prcompte. Mode 2 : oscillateur diviseur par N (gnrateur de tops hard). Le dcompte est initi par un front montant sur la gachette. La sortie (initialement 1) passe 0 le temps d'une priode d'horloge lorsque le dcompte passe de 1 0. Ensuite on recommence jusqu'au prochain tops intervalles rguliers. Mode 3 : gnrateur de signaux carrs. Identique au mode 2 sauf que la sortie est 1 pendant le dcomptage de N (valeur du prcompte) N/2 puis 0 de N/2 0. Mode 4 : gnrateur d'impulsions synchronis par programme (soft). La gachette est initialement active ( 1). Le dcompte se dclenche ds chargement du prcompte. La sortie passe 0 pendant une priode d'horloge puis on recommence partir de la valeur du prcompte. Un changement logiciel de la valeur du prcompte relance un nouveau cycle. La mise 0 de la gachette permet de geler le dcomptage. Mode 5 : gnrateur d'impulsions synchronis par gate (hard). Identique au mode 4 sauf que c'est l'action sur la gachette qui permet de dclencher le dcomptage.
Registre d'tat : outre l'accs aux registres de contrle des trois compteurs (codes 00, 01 ou 10), il y a une 4me possibilit : le code 11 (bits D7-D6) qui est la commande de readback. Le 8254 possde trois registres 16 bits supplmentaires appels latchs, mmoires ou tampons. La commande readback permet de recevoir des informations du compteur (lecture des comptes ou lecture d'un mot d'tat). Dans cette commande, on peut soit latcher simultanment le contenu de plusieurs compteurs ce qui donne le temps de lire le contenu en temps dir, soit latcher l'tat des compteurs (le mot d'tat de 8 bits contient en particulier un ag retant l'tat de sortie du compteur). Il faut dans ce cas tester le bit output du registre d'tat. Les adresses de ces trois latchs sont celles dj utilises pour les registres d'entre mais cette fois avec un accs en lecture. La dtection de n de comptage est ralise en scrutant le bit D7 (output ) du Status Byte : la sortie est 1 pendant le dcompte et passe 0 en n de comptage durant une priode d'horloge (lire count0 tant que ([count0]&0x80) = 0x80 puis lire count0 tant que ([count0]&0x80) = 0).
147
82C54
CM_InfoIndus:version du mardi
Acquisition de If anChapitre initial count 10. is written while GATE e 0 it will MODE 1 HARDWARE RETRIGGERABLE still be loaded on the next CLK pulse When GATE ONE-SHOT After writing a Control Word and initial count the If a new count is written to the Counter during a onegoes high OUT will go high N CLK pulses later no shot pulse the current one-shot is not affected unCounter will be loaded on the next CLK pulse OUT CLK pulse is needed to load the Counter as this has OUT will be initially high OUT will go low on the CLK less the Counter is retriggered In that case the goes low N CLK Pulses after the initial count is writalready been done pulse following trigger to begin the one-shot pulse Counter is loaded with a the new count and the oneten This allows the Counter to be synchronized by and continues will remain low until Counter reaches zero shot pulse until the newthe count expires software also OUT will then go high and remain high until the CLK pulse after the next trigger
After writing the Control Word and initial count the Counter is armed A trigger results in loading the Counter and setting OUT low on the next CLK pulse thus starting the one-shot pulse An initial count of N will result in a one-shot pulse N CLK cycles in duration The one-shot is retriggerable hence OUT will remain low for N CLK pulses after any trigger The one-shot pulse can be repeated without rewriting the same count into the counter GATE has no effect on OUT If a new count is written to the Counter during a oneshot pulse the current one-shot is not affected unless the Counter is retriggered In that case the Counter is loaded with the new count and the oneshot pulse continues until the new count expires
thus starting the one-shot pulse An initial count of N counting If GATE goes low during an output pulse will result in a one-shot pulse N CLK cycles in duraOUT is set high immediately A trigger reloads the tion The one-shot is retriggerable hence OUT will Counter with the initial count on the next CLK pulse remain low for N CLK pulses after any trigger The OUT goes low N CLK pulses after the trigger Thus one-shot pulse can be repeated 29 novembre 2005 2 h 17 without rewriting the the GATE input can be used to synchronize the same count into the counter GATE has no effect on Counter OUT Donnes - Temps Rel
of OUT OUT w tial count has e der of the coun above is repea results in a sq cycles
GATE e 1 ena counting If GAT set high immed trigger reloads the next CLK p used to synchro
2312448
NOTE The Following Conventions Apply To All Mode Timing Diagrams 1 Counters are programmed for binary (not BCD) counting and for Reading Writing least significant byte (LSB) only 2 The counter is always selected (CS always low) 3 CW stands for Control Word CW e 10 means a control word of 10 hex is written to the counter 4 LSB stands for Least Significant Byte of count 5 Numbers below diagrams are count values The lower number is the least significant byte The upper number is the most significant byte Since the counter is programmed to Read Write LSB only the most significant byte cannot be read N stands for an undefined count Vertical lines show transitions between count values
Writing a new c the current cou ceived after wri of the current Counter will be next CLK pulse new count Oth at the end of th
Mode 3 is imple
Figure 15 Mode 0
After writing the Control Word and initial count the counter will not be loaded until the CLK pulse after a trigger This CLK pulse does not decrement the count so for an initial count of N OUT does not strobe low until N a 1 CLK pulses after a trigger A trigger results in the Counter being loaded with the initial count on the next CLK pulse The counting sequence is retriggerable OUT will not 23124410 strobe low for N a 1 CLK pulses after any trigger GATE has NOTE noGATE effecttransition on OUT should not occur one clock prior to 2A
Even counts O loaded on one by two on succ expires OUT ch loaded withLow the Signal repeated Or indefin Status Goin
Modes
82C54
2312448
2312449
NOTE Figure 16 Mode 1 The Following Conventions Apply To All Mode Timing OUT will Diagrams be high for (N a 1) 2 counts and low for 1) Writing the first byte has no effect on counting terminal count 10 (N b 1) 2 counts 82C54 1 Counters are programmed for binary (not BCD) 2) Writing the second byte allows the new count to If a new count is written during counting the current Figure 17 Mode 2 counting and for Reading Writing least significant byte be loaded on the next CLK pulse counting sequence will not be affected If a trigger (LSB) only occurs after the new count is written but before the 2 The counter is always selected (CS always low) current count expires the Counter will be loaded This allows the sequence to be retriggered by 10 means a 3 CWwill stands for Control Word CW e and OUT be high for (N a 1) 2 counts low for 1) Writing the first byte has no effect on countingwith the new count on the next CLK pulse and software OUT strobes low N a 1 CLK pulses after control word of 10 hex is written to the counter (N b1) 2 counts will continue from there count the of N is written 2) Writing second byte allows the new count counting to 4 LSB stands for Least Significant Byte of count the new 5 Numbers below diagrams are count values be loaded on the next CLK pulse The lower number is the least significant byte The upper number is the most significant byte Since This allows the sequence to be retriggered by the counter is programmed to Read Write LSB only software OUT strobes low N a 1 CLK pulses after the most significant byte cannot be read N stands for an undefined count the new count of N is written Vertical lines show transitions between count values
Odd counts O 0 Disable minus one (an pulse andcountin then 1 CLK pulses ing pires OUT goe with the initial pulses decreme expires OUT g reloaded th 2 1) with Disable process is repe countin
Low
4 5
Disable countin
Figure 15 Mode 0
Figure 21 Gat
2312449
Figure 16 Mode 1 10
MODE 0 1 2 3 4
23124411
NOTE A GATE transition should not occur one clock prior to terminal count
Figure 22 Minimu
Figure 18 Mode 3 MODE 4 SOFTWARE TRIGGERED STROBE OUT will be initially high When the initial count expires OUTNOTE will go low for one CLK pulse and then go high again Thetransition counting sequence is triggered A GATE should not occur one clock prior to by writing the initial count terminal count GATE e 1148 enables counting GATE e 0 disables Figureon 18 OUT Mode 3 counting GATE has no effect
23124411
23124412
23124413
Figure 19 Mode 4 gure 10.10: 8254 : modes 3,4 et 5 MODE 5 HARDWARE TRIGGERED STROBE (RETRIGGERABLE)
Figure 20 Mode 5
10.5. Annexes
10.5 Annexes
10.5.1 Les Fonctions du Langage C
La communication avec les registres de la carte s'eectue avec les fonctions inp et outp : char inp(int AdressePort) lit un caractre (ASCII) sur le port situ l'adresse AdressePort et le retourne outp (int AdressePort, char val) crit la valeur val sur le port situ l'adresse AdressePort.
10.5.2 Programmation
On veut envoyer la tension Vout sur le DAC A.
.Vout 1. convertir la tension Vout en un nombre de bits N b = 4095 , 10 2. convertir ce rsultat (N b) rel en entier, 3. rcuprer les 8 bits de poids faible (reste de la division entire du nombre par 256) et les placer dans DA1L, 4. rcuprer les 4 bits de poids fort (le quotient de la division entire du nombre par 256 donne les 8 bits de poids fort) et les placer dans DA1H, 5. dclencher la conversion par une lecture (action sur U P D),
CNA
CAN
TIMER
LOGIQUE
82C54
CM_InfoIndus:version du mardi 29 novembre 2005 2 h 17
Programming the 82C54 OPERATIONAL DESCRIPTION Chapitre Acquisition de Counters Donnes - Temps gramming10. operations of other may be in-Rel
82C54
serted General
between them
Latch Comand is written is selected ol Word the Counters but his command
Counters are programmed by writing a Control Word and then an initial count The control word format is shown in Figure 7
COUNTER LATCH COMMAND The second method uses the Counter Latch Command Like a Control Word this command is written to the Control Word Register which is selected when A1 A0 e 11 Also like a Control Word the SC0 SC1 bits select one of the three Counters but two other bits D5 and D4 distinguish this command from a Control Word
All Control Words are written into the Control Word Another feature of theRegister 82C54 is when that reads and which is selected A1 A0 e 11 The Control Word itself specifies which Counter is being writes of the same may be interleaved for How each Counter operates is determined whenCounter it is programmed 10.7 Registres du Timer programmed Each Counter must be programmed example if the Counter is programmed for two byte before it can be used Unused counters need not be By contrast initial counts are written into the Counprogrammed ters not the Control Word Register The A1 A0 incounts the following sequence is valid puts are used to select the Counter to be written into The format of the initial count is determined by the Control Word used
After power-up the state of the 82C54 is undefined The Mode count value and output of all Counters are undefined
Another feature writes of the sam example if the C counts the follow 1 2 3 4
1 Read least significant byte 2 Write new least significant byte Control Word Format 3 e Read significant byte 0 RD e 1 most WR e 0 A1 A0 e 11 CS 4 Write new most significant byte D D D D D D D D
7 6 5 4 3 2 1 0
82C54 A1
A0 e 11 CS e 0 RD e 1 WR e 0 D6 SC0 D5 0 D4 0 D3 X D2 X D1 X D0 X
D7 SC1
D1 X
D0 X
hed
If a Counter is programmed to read write two-byte SC Select Counter M MODE counts A program SC1 SC0 the following precaution M2 M1 applies M0 0 0 Select Counter 0 control 0 between 0 0reading Mode 0 the first must not transfer 0 1 Select Counter 1 0 0 1 Mode 1 and second byte to another routine which also reads 1 0 Select Counter 2 X 1 0 Mode 2 from that Read-Back same Counter Otherwise an incorrect Command X 1 1 Mode 3 1 1 (See Read Operations) count will be read 1 0 0 Mode 4
RW Read Write RW1 RW0 BCD 1 0 1 Mode 5 0 0 Counter Latch Command (see Read READ-BACK COMMAND 0 Operations) 0 1 Read Write least significant byte only 1
count all but the first are ignored i e the count SC1 SC0 - specify counter to be latched which will be read is the count at the time the first read-back command was issued Counter SC1 SC0
0 0 0 0 command 1 1 used to latch The read-back may also be 1 0 2 status information of 1selected counter(s) by setting 1 Read-Back Command e STATUS bit D4 0 Status must be latched to be D5 D4 00 designates Counter Latch read status of- a counter is accessed by aCommand read from that counter X - dont care
Dont status care bits (X) should be 0 to in insure compatibility The counter format is shown Figure 11 Bits with future Intel products D5 through D0 contain the counters programmed Figure 9 Command Mode exactly asCounter writtenLatching in the last ModeFormat Control Word The OUTPUT bit D7 contains the current state of selected Counters output latch (OL) latches the count at the time the Counter Latch Command is the registres OUT pin du This allows the user to monitor the des 8254 received This count is held in the latch until it is read counters output viauntil software possibly eliminating by the CPU (or the Counter is reprogrammed) The count from is then some hardware a unlatched system automatically and the NOTE
If a Counter is p counts the follow must not transfe and second byte from that same THIS count will beACT read
A Write to READ-BACK wordCO re B Write to The third metho This command a register value programm C and NewNu co OUT pin ter(s) into CE
mand Command
The the(4 Decades) Read-Back command 1 0 third Read Write method most significant byte uses only 1 1 command Read Write least significant byte first This allows the user to check the count then most significant byte value programmed Mode and current state of the NOTE Dont care bits (X) should be 0 to insure compatibility with future Intel products OUT pin and Null Count flag of the selected counter(s) Figure 7 Control Word Format The command is written into the Control Word Reggure 10.11: Dtails ister and has the format shown in Figure 10 The command applies to the counters selected by set5 ting their corresponding bits D3 D2 D1 e 1
The 1 command Only the is c ister and has the have its null command appliec ting their corresp counters are u
compatibility
nd Format
A0 A1 e 11 D 7 D6 1 D5 D4 D3 D2 D1 D0 D5 CS e 0 D4 RD e 1 D3 WR e 0 D2 D1 D0
L) latches the Command is until it is read rogrammed) cally and the lement (CE) he Counters in progress y be used to tched Counounter Latch med Mode of
1 COUNT STATUS CNT 2 CNT 1 CNT 0 0 0 e Latch count of selected counter(s) 0 e Latch status of selected counter(s) 1 e Select counter 2 1 e Select counter 1 1 e Select counter 0 Reserved for future expansion must be 0
OL returns to following the counting element (CE) This allows reading the contents of the Counters on the fly without affecting counting in progress Multiple Counter Latch Commands may be used to D7 more D6 D5 Counter D4 D3 D2 latched D1 D0 latch than one Each Counters OL holds its count until it is read Counter Latch NULL Commands do not affect the programmed Mode of OUTPUT RW1 the Counter in any wayRW0 M2 M1 M0 BCD COUNT
If multiple stat are performed first are ignore the Figure status 10 of R t The read-back co read-back com
Figur
If a Counter is latched and then some time later latched the count is read the second e Outagain D7 1 Pin isbefore 1 Counter Command is ignored The count read e Out Latch Pin is 0 0 will be the count at the time the first Counter Latch e Null count D6 1 Command was issued
0 e Count available for reading With either method the count must be read accordCounter Programmed Mode (See Figure 7) D5-D 0 to ing the programmed format specifically if the
Counter is programmed for two byte counts two bytes must be read The two bytes do not have to be 11 the Status read oneFigure right after otherByte read or write or pro-
ple counter out COUNT bit D5 e ter(s) single Both This count an lent to several c may be latch each counter latc is held until it S i COUNT and grammed) That tionally the sam when read but o they are read at If m commands are issued to the
Figure 10 Read-Back Command Format The read-back command may be used to latch multigure 10.12: Dtailsthe des ple counter output latches (OL) by setting COUNT bit D5 e 0 and selecting the desired counter(s) This single command is functionally equivalent to several counter latch commands one for each counter latched Each counters latched count is held until it is read (or the counter is reprogrammed) That counter is automatically unlatched when read but other counters remain latched until they are read If multiple count read-back commands are issued to the same counter without reading the
NULL COUNT bit D6 indicates when the last count registres du 8254 (suite)
written to the counter register (CR) has been loaded into the counting element (CE) The exact time this happens depends on the Mode of the counter and is described in the Mode Definitions but until the count is loaded into the counting element (CE) it cant be read from the counter If the count is latched or read before this time the count value will not reflect the new count just written The operation of Null Count is shown in Figure 12
ply here also status read-ba counter(s) with first are ignore
If both count a first read opera status regard next one or tw counter is prog return latched latched count
150
Chapitre 11
Conclusion
Les anciennes entres/sorties de nos micro-ordinateurs ont largement prot des dveloppements rapide de ces dernires annes. Les ports srie et parallle dj prsent sur les premiers PC commencent tre bout de soue et ne rpondent plus vraiment aux besoins des utilisateurs. Deux principaux bus se disputent dsormais le march, l USB et l IEEE-1394. Dans leur dernire dclinaison, ces deux interfaces proposent toutes les deux des caractristiques trs intressante (gestion de type rseau). Dans sa premire version, l USB tait jusqu alors limit des priphriques lents (claviers, imprimantes, souris, webcam). Avec sa version 2.0, il investit des domaines qui taient jusqu alors rservs l IEEE 1394 ou au SCSI (priphriques de stockage externe ou camscopes DV). Reste que l IEEE 1394 restera certainement l interface privilgie des priphriques trs gourmand, notamment en ce qui concerne l audio vido (camscopes, TV numriques, DVD). En eet, il ore d une part une bande passante plus importante dans sa dernire volution, et est plus apte grer plusieurs priphriques haut dbit.
151
Les ponts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scrutation . . . . . . . . . . . . . . . . . . . . Interruption . . . . . . . . . . . . . . . . . . . Table des vecteurs d'interruptions . . . . . . . Exemple de partage d'IRQ . . . . . . . . . . . Architecture d'un PIC . . . . . . . . . . . . . Liaison entre les 2 PIC et le microprocesseur . Liaisons matrielles d'un PIC . . . . . . . . . Sous programme d'interruption . . . . . . . . Connecteur DB25 pour SPP . Dialogue avec une imprimante Handshake : timing . . . . . . Protocole Centronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
152
4.5 4.6 4.7 4.8 4.9 4.10 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 7.1 7.2 7.3 7.4 7.5 7.6
Signaux et DB25 en mode tendu (EPP) . . . . Lecture et criture d'une donne en mode EPP Lecture et criture d'une adresse en mode EPP Signaux et DB25 en mode tendu (ECP) . . . . Commande et Data forward . . . . . . . . . . . Commande et Data reverse . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
64 64 65 65 66 66 68 69 69 70 70 70 71 71 72 73 73 74 74 75 75 76 76 77 78 78 79 80 81 81 82 83 84 85 86 86 87 89 94 95
Liaisons multipoint et directe point point (utilisant la tension) . . . . . Principe d'une communication srie RS232 . . . . . . . . . . . . . . . . . Ecacit d'une communication srie RS232 . . . . . . . . . . . . . . . . Niveau logique en communication srie RS232 . . . . . . . . . . . . . . . Parit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmission de C, 2 Stop, parit impaire, ASCII non tendu . . . . . Trame de communication RS232 : rsum . . . . . . . . . . . . . . . . . Relation entre niveau logique et tension . . . . . . . . . . . . . . . . . . Signaux sur les connecteurs DB25 et DB9 . . . . . . . . . . . . . . . . . Liaison duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connections pour liaisons simplex et duplex . . . . . . . . . . . . . . . . Connections DTE-DCE . . . . . . . . . . . . . . . . . . . . . . . . . . . direntes phases d'une communication DTE vers DCE . . . . . . . . . DTE-DTE half-duplex sans contrle . . . . . . . . . . . . . . . . . . . . DTE-DTE full-duplex sans contrle . . . . . . . . . . . . . . . . . . . . . Cblage Null Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DTE-DTE avec contrle de ux . . . . . . . . . . . . . . . . . . . . . . . DTE-DTE avec contrle de ux complet . . . . . . . . . . . . . . . . . . Exemple de trame en protocole RTS CTS . . . . . . . . . . . . . . . . . Direntes phases d'une communication entre 2 DTE (A et B) . . . . . Exemple de trame en protocole Xon - Xo . . . . . . . . . . . . . . . . . Algorithme Xon-Xo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proprits du port COM 1 sur PC . . . . . . . . . . . . . . . . . . . . . Algorithmes d'mission / rception d'un caractre ASCII avec utilisation UART : architecture interne . . . . . . . . . . . Transmission avec modem . . . . . . . . . . . . IRQ pour UART sur PC . . . . . . . . . . . . . Principe d'mission - rception . . . . . . . . . Mcanisme d'mission sans FIFO . . . . . . . . Exemple de squence temporelle en mission . . Mcanisme de rception sans FIFO . . . . . . . Rglages des FIFO sur PC . . . . . . . . . . . . Tampon Circulaire (FIFO) . . . . . . . . . . . . Structure interne (registres) d'un UART 16550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . des buers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Raccordement sur le bus I2C . . . . . . . . . . . . . . Validit des donnes . . . . . . . . . . . . . . . . . . . Conditions de dpart et d'arrt de transmission du bus Re dpart (bit SR) . . . . . . . . . . . . . . . . . . . . Validation de transmission : ACKnowledge . . . . . . . Ecriture simple (1 octet) . . . . . . . . . . . . . . . . .
. . . . . . I2C . . . . . . . . .
7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 8.18 8.19 8.20 8.21 8.22 8.23 8.24 9.1 9.2 9.3 9.4 9.5 9.6 9.7 154
Pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lecture simple (1 octet) . . . . . . . . . . . . . . . . . . . Exemple de collision (ou conit) . . . . . . . . . . . . . . Sens du transfert : lecture ou criture . . . . . . . . . . . . Adressage standard (7 bits) . . . . . . . . . . . . . . . . . Ecriture multiple . . . . . . . . . . . . . . . . . . . . . . . Lecture multiple . . . . . . . . . . . . . . . . . . . . . . . format combin . . . . . . . . . . . . . . . . . . . . . . . . Exemple de lecture d'une mmoire (24C02) . . . . . . . . Exemple d'criture d'une page dans une mmoire (24C02) Adressage tendu (10 bits) . . . . . . . . . . . . . . . . . . Ecriture en mode tendu . . . . . . . . . . . . . . . . . . . Lecture en mode tendu . . . . . . . . . . . . . . . . . . . Ecriture puis lecture en mode tendu . . . . . . . . . . . . Ecriture en mode standard puis tendu . . . . . . . . . . . Exemple de connection du bus I2C au port srie . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101 101 102 103 104 105 105 105 106 106 106 107 107 107 107 108 110 111 111 112 112 114 115 116 116 116 117 117 118 118 118 119 121 122 122 123 124 124 126 127 129 130 131 132 132 132 133
Exemple de connecteurs USB (A et B) . . . . . . . . . . . . . Composition (signaux) du cble USB . . . . . . . . . . . . . . Correspondance des signaux pour les connecteurs A et B . . . Structure toile srie . . . . . . . . . . . . . . . . . . . . . . . Topologie logique . . . . . . . . . . . . . . . . . . . . . . . . . Couches du protocole USB . . . . . . . . . . . . . . . . . . . . Frame USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paquet SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paquets de la trame USB . . . . . . . . . . . . . . . . . . . . Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure d'un paquet USB) . . . . . . . . . . . . . . . . . . . Codage NRZI) . . . . . . . . . . . . . . . . . . . . . . . . . . Champ du paquet Token (Jeton) . . . . . . . . . . . . . . . . Champ du paquet SOF . . . . . . . . . . . . . . . . . . . . . . Champ du paquet DATA . . . . . . . . . . . . . . . . . . . . Champ du paquet Handshake . . . . . . . . . . . . . . . . . . Transfert de commande : transaction d'installation . . . . . . Transfert de commande : transaction dde donnes (facultatif) Transfert de commande : transaction d'tat . . . . . . . . . . Transfert en vrac . . . . . . . . . . . . . . . . . . . . . . . . . Transfert par interruption . . . . . . . . . . . . . . . . . . . . Transfert isochrone . . . . . . . . . . . . . . . . . . . . . . . . Hierarchie des descripteurs USB . . . . . . . . . . . . . . . . . Contrleur et Hub USB sur votre PC . . . . . . . . . . . . . . Topologie physique de l'IEEE 1394 . . . . . . Exemple de connecteur Firewire 6 broches . . Topologie logique de l'IEEE 1394 . . . . . . . Cycle nominal du bus IEEE 1394 . . . . . . . Dtails de la trame . . . . . . . . . . . . . . . Contenu des paquets asynchrone et isochrone Architecture en couche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction asynchrone) . Transaction isochrone) . . Intervalles pour l'arbitrage Split transaction . . . . . Concatenation transaction Unied transaction . . . .
. . . . . . . . (mode . . . . . . . . . . . .
. . . . . . . . . . . . isochrone) . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
134 134 136 137 137 137 139 142 142 143 144 144 146 146 148 148 150 150
10.1 Exemple de systme d'acquisition de donnes . 10.2 Architecture sommaire d'une carte d'acquisition 10.3 Schma de principe d'un CNA . . . . . . . . . . 10.4 Le CNA MX7537 . . . . . . . . . . . . . . . . . 10.5 Schma de principe d'un CAN . . . . . . . . . . 10.6 Le CAN AD574 . . . . . . . . . . . . . . . . . . 10.7 Architecture du timer 8254 . . . . . . . . . . . 10.8 Etapes du fonctionnement . . . . . . . . . . . . 10.9 8254 : modes 0,1 et 2 . . . . . . . . . . . . . . . 10.108254 : modes 3,4 et 5 . . . . . . . . . . . . . . . 10.11Dtails des registres du 8254 . . . . . . . . . . . 10.12Dtails des registres du 8254 (suite) . . . . . . .
155
Adresses rserves pour le bus I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Valeurs des PID (USB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Erreur des paquets USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Caractristiques principales des types de transferts USB . . . . . . . . . . . . . . . . 125
10.1 registres du CNA (MX 7537) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 10.2 registres du CAN (AD 574) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.3 Rsum des registres de la carte IMPULSION . . . . . . . . . . . . . . . . . . . . . 149
156
Bibliographie
[Bey04] Beyondlogic USB in a Nutshell . www.beyondlogic.org, 2004. [HWe98] Hirsch E., Wendling S. Structure des ordinateurs . Armand Colin, 1998. [Pea97] Peacock C. Using Interrupts, www.senet.com.au/ cpeacock, 1997.
Interfacing
the
Serial
and
Parallel
ports .
[Tan03] Tanenbaum A. Architecture de l'ordinateur . 4me dition. Dunod, 2003. [TCGG02] Tichon J., Couwenbergh C., Giot R. et Garcia Acevedo S. Communication avec les priphriques . Techniques de l'Ingnieur, trait Informatique Industrielle, 2002.
157