De seriële poort Jan Genoe KHLIM De seriële poort 1
De seriële poort Een PC bezit een aantal seriële poorten: COM1, COM2,... Er zijn 1 of 2 seriële poorten voorzien op het moederbord Plug-in kaarten laten toe extra seriële poorten toe te voegen Deze poorten kunnen gebruikt worden voor een modem, een muis of een terminal Normale data transfersnelheden zijn 50, 75, 110, 300, 1200, 2400, 9600,... 115200 bps (bits per seconde) De seriële poort 2
De connector In het originele ontwerp van de seriële poort waren 25 pinnen voorzien. In de praktijk volstaan 9 pinnen voor de meeste toepassing Vandaar dat voor een COM poort meestal een connector met 9 pinnen voorzien is De seriële poort 3
Beschrijving van de pinnen De seriële poort 4
Beschrijving van de pinnen TD: gegevens te verzenden RD: ontvangen gegevens RTS: verzoek om verzending te starten CTS: start verzending DSR: data klaar voor verzending DRT: gereed om data te ontvangen CD: de kiestoon wordt waargenomen RI: de bel rinkelt bij de ontvanger... Enkel nuttig voor een modem De seriële poort 5
Werkwijze seriële verbindingen Per byte die doorgestuurd wordt (asynchroon) volgt eerst een startbit de minst significante bit de volgende 6 bits de meest significante bit de pariteitsbit (meestal) een (of meer) stop-bits Ook hier is het belangrijk dat zender en ontvanger hetzelfde protocol hanteren De seriële poort 6
Opbouw van de seriële poort De seriele poort heeft meestal een eigen klok waaruit door deling de verschillende zendfrequenties (50, 75, 110, 300, 1200, 2400, 9600,... 115200 bps) kunnen bekomen worden. Om te zenden: een parallel naar serie omzetter als het register leeg is wordt een interrupt gegeven zodat de PC dit register kan bijvullen Om te ontvangen: een serie naar parallel omzetter als het register vol is wordt een interrupt gegeven zodat de PC dit register kan leeghalen. De seriële poort 7
Interrupts en adressen voor de seriële poort De normale adressen en IRQ voor de seriële poort zijn COM1: 03F8 IRQ4 COM2: 02F8 IRQ3 COM3: 03E8 IRQ4 COM4: 02E8 IRQ3 Poort 1 en 3 hebben dezelfde interrupt en ook poort 2 en 4. Dit kan problemen opleveren. Bv: muis (COM1) die niet meer werkt als je de modem (COM3) insteekt, enz... De seriële poort 8
De interrupt request (IRQ) IRQ 0 Timer channel 0 IRQ 1 Keyboard IRQ 2 Cascade for controller 2 IRQ 3 Serial port 2 IRQ 4 Serial port 1 IRQ 5 Parallel port 2 IRQ 6 Floppy diskette IRQ 7 Parallel port 1 IRQ 8 Real-time clock IRQ 9 Redirected to IRQ2 IRQ 10 not assigned IRQ 11 not assigned IRQ 12 not assigned IRQ 13 Math coprocessor IRQ 14 Hard disk controller IRQ 15 not assigned 0, 0, 1, 1, 6, 6, 8, 8, 13 13 en en 14 14 nooit gebruiken 10, 10, 11, 11, 12 12 en en 15 15 kan je je gebruiken voor 16 16 bit bit brede ISA dochterkaarten De seriële poort 9
Multiport serial boards Deze speciaal ontworpen plug-in kaarten laten soms toe van meerdere seriële poorten te gebruiken met maar één IRQ De hardware van deze kaarten zorgt voor een juiste afhandeling van deze interrupt. De seriële poort 10
Wat zijn UARTs? Universal Asyncronous Receiver Transmitters worden gebruikt om data langs de seriële poort naar buiten te sturen en/of binnen te halen. Eenvoudige UARTs zijn 1byte serie-parallel omzetters (bv:8250 en 16450 UARTs) Telkens er een byte binnengekomen is moet er een interrupt request naar de processor gezonden worden. Deze moet dan zijn werkzaamheden staken en deze binnengekomen byte verwerken. Wanneer de interrups sneller dan 2 ms (>38400 bps) komen, kan het zijn dat de PC een aantal bytes mist.» Voor een terminal of een muis is dit geen probleem» Voor een snelle externe modem kan dit een beperking zijn De seriële poort 11
UARTs Geavanceerde UARTs bezitten een FIFO (bv: de 16550A UART bezit een 16 byte FIFO) De processor moet niet zo frequent onderbroken worden. Dit is belangrijk voor snelle modems Deze FIFO kan afgezet worden Op deze manier wordt de processor telkens onderbroken als er één byte binnengekomen is. De seriële poort 12