COMPUTERARCHITECTUUR Versie: 3.0 Datum: 05/07/2014 Auteur: Roggemans M.
roggemans marc
Pagina 1
6-7-2014
Inhoudsopgave: Inhoudsopgave: .......................................................................................................... 2 Inleiding: ..................................................................................................................... 7 Hoofdstuk 1 Historiek ............................................................................................. 8 1.1 Inleiding ............................................................................................................. 8 1.2 Technologische evolutie .................................................................................... 8 Hoofdstuk 2 Soorten computers .......................................................................... 28 2.1 Inleiding ........................................................................................................ 28 2.2 Embedded & her-programmeerbare computers ........................................... 30 2.3 Administratieve toepassingen ....................................................................... 30 2.4 Industriële toepassingen ............................................................................... 31 2.5 Automotive toepassingen ............................................................................. 32 2.6 Info-tainment toepassingen .......................................................................... 33 2.7 Diverse toepassingen ................................................................................... 34 Hoofdstuk 3 Basisarchitectuur ............................................................................. 35 3.1 Inleiding ........................................................................................................ 35 3.2 Mechanisch equivalent ................................................................................. 35 3.3 Elektronisch blokschema .............................................................................. 37 3.4 Microcontroller, microprocessor of S.O.C ..................................................... 41 Hoofdstuk 4 Talstelsels, codes, bits en bytes ...................................................... 43 4.1 Inleiding ........................................................................................................ 43 4.2 Codes & getallen .......................................................................................... 43 4.3 Binair, hexadecimaal en BCD ....................................................................... 44 4.4 ASCII codes en UNICODE ........................................................................... 47 4.5 Poorten ......................................................................................................... 48 4.5.1 De inverter (NOT) ............................................................................... 49 4.5.2 De AND gate....................................................................................... 49 4.5.3 OR gate .............................................................................................. 50 4.5.4 Exclusive or gate ................................................................................ 51 4.5.5 De flip-flop........................................................................................... 52 4.5.6. Adder .................................................................................................. 52 Hoofdstuk 5 Soorten geheugen &toepassingen ................................................... 54 5.1 Inleiding ........................................................................................................ 54 5.2 ROM ............................................................................................................. 55 5.2.1 PROM .................................................................................................... 56 5.2.2 EPROM ................................................................................................. 57 5.2.3 EEPROM ............................................................................................... 59 5.2.4 FLASH ................................................................................................... 59 5.3 RAM.............................................................................................................. 60 5.3.1 SRAM ..................................................................................................... 60 5.3.2 DRAM ..................................................................................................... 61 5.3.3 NVRAM ................................................................................................... 62 5.3.4 FRAM & MRAM ...................................................................................... 63 5.3.5 Memristor ................................................................................................ 64 Hoofdstuk 6 Soorten I/O & toepassingen ............................................................. 65 6.1 Inleiding ........................................................................................................ 65 6.2 Parallelle I/O ................................................................................................. 65 6.3 Seriële I/O ..................................................................................................... 69 6.4 Counters / Timers / RTC ............................................................................... 70 roggemans marc
Pagina 2
6-7-2014
6.5 AD en DA ...................................................................................................... 72 6.6 Allerhande controllers ................................................................................... 74 Hoofdstuk 7 Programma, stack en interrupt......................................................... 76 7.1 Inleiding ........................................................................................................ 76 7.2 Lagere programmeertalen ............................................................................ 76 7.3 Hogere programmeertalen ............................................................................ 77 7.4 Programmaverloop jump/call ........................................................................ 79 7.5 Doorgeven van parameters .......................................................................... 81 7.6 Interrupt routines........................................................................................... 82 Hoofdstuk 8 Massageheugens ............................................................................ 83 8.1 Inleiding ........................................................................................................ 83 8.2 Floppy disk ................................................................................................... 83 8.3 Harddisk ....................................................................................................... 85 8.4 Bandgeheugen ............................................................................................. 92 8.5 CD ................................................................................................................ 94 8.6 DVD .............................................................................................................. 98 Hoofdstuk 9 Communicatie .................................................................................. 99 9.1 Inleiding ........................................................................................................ 99 9.2 Parallelle communicatie .............................................................................. 100 9.3 Seriële communicatie ................................................................................. 101 RS232:.............................................................................................................. 102 RS485:.............................................................................................................. 102 Optisch: ............................................................................................................ 103 Modems: ........................................................................................................... 104 Andere: ............................................................................................................. 105 9.3.1 Synchrone seriële communicatie .......................................................... 105 9.3.2 Asynchrone seriële communicatie ........................................................ 107 9.4 Aard van de verbinding .............................................................................. 108 9.4.1 Simplex ................................................................................................ 108 9.4.2 Half duplex ........................................................................................... 109 9.4.3 Full Duplex ........................................................................................... 109 9.5 Topologieën ................................................................................................ 109 9.5.1 Punt tot punt ........................................................................................ 109 9.5.2 Bus ...................................................................................................... 110 9.5.3 Ster ...................................................................................................... 111 9.5.4 Ring ..................................................................................................... 112 9.5.5 Web ..................................................................................................... 112 9.5.6 Boom ................................................................................................... 113 9.6 Protocol ...................................................................................................... 113 9.7 Voorbeelden ............................................................................................... 115 9.7.1 LPT poort ............................................................................................. 115 9.7.2 COM poort ........................................................................................... 116 9.7.3 USB ..................................................................................................... 117 9.7.4 Ethernet ............................................................................................... 117 9.7.5 WiFi ..................................................................................................... 118 Hoofdstuk 10 Besturingssystemen ....................................................................... 119 10.1 Inleiding ................................................................................................... 119 10.2 BIOS of monitor ....................................................................................... 119 10.3 DOS ......................................................................................................... 120 10.4 Windows .................................................................................................. 120
Roggemans M.
Pagina 3
6-7-2014
Hoofdstuk 11 Systeemprestaties .......................................................................... 122 11.1 Inleiding ................................................................................................... 122 11.2 Kloksnelheid ............................................................................................ 123 11.3 Cache ...................................................................................................... 124 11.4 Pipelining ................................................................................................. 126 11.5 FPU ......................................................................................................... 127 11.6 RISC & CISC ........................................................................................... 128 11.7 Hyperthreading ........................................................................................ 130 11.8 Multi processor ........................................................................................ 131 Hoofdstuk 12 Standaard I/O componenten .......................................................... 132 12.1 Inleiding ................................................................................................... 132 12.2 Muis ......................................................................................................... 132 12.3 Toetsenbord ............................................................................................ 135 12.4 CRT en LCD schermen ........................................................................... 136 12.5 Aanraakbeeldschermen ........................................................................... 139 12.6 Touchpad ................................................................................................. 142 12.7 Touchstick ............................................................................................... 142 12.8 Toekomst? ............................................................................................... 143 Besluit ..................................................................................................................... 144 Bibliografie .............................................................................................................. 145
Roggemans M.
Pagina 4
6-7-2014
Roggemans M.
Pagina 5
6-7-2014
roggemans marc
Pagina 6
6-7-2014
Inleiding: Deze cursus is geschreven voor studenten in de professionele bachelor opleiding (alle richtingen). Het is een introductie naar de vakken informatica en microprocessoren of microcontrollers. Er is geen specifieke voorkennis nodig. De cursus wordt gebruikt als leidraad tijdens een hoorcollege van 12 uur. We gaan er van uit dat extra notities vanuit de les noodzakelijk zijn om alle leerstof te kunnen verwerken. De cursus kan ook voor zelfstudie gebruikt worden. In dat geval kan het noodzakelijk zijn het www te gebruiken om bepaalde begrippen verder te verduidelijken. De cursus legt ook historische verbanden om de leerstof in de tijd te duiden. Het is niet de bedoeling om een geschiedkundig werk te produceren. Data en plaatsen zijn dus louter indicatief en moeten helpen om een beter inzicht te bekomen in (minder) recente gebeurtenissen (je kan het heden maar begrijpen als je het verleden kent, en waarschijnlijk blijft de toekomst zoals steeds onvoorspelbaar). Aangezien dit een technologie vak is (hier worden enkel begrippen en technologieën verduidelijkt die in andere vakken gebruikt worden), zal geheugenwerk noodzakelijk zijn om aan de evaluatie zinvol deel te nemen. Probeer ook in te zien en te begrijpen waarom bepaalde evoluties zich doorzetten. De beoordeling van het vak verloopt via een schriftelijk examen. De student moet een professionele oplossing kunnen aanreiken voor gerelateerde problemen. Dit houdt in (indien van toepassing) een schema opstellen, verklaren van de principiële werking en verduidelijken van gebruikte begrippen. Het is duidelijk dat een combinatie van verschillende technieken noodzakelijk kan zijn. De wijze van evaluatie is voor alle types van studiecontracten, en voor alle evaluatieperiodes dezelfde. Doorheen de cursus worden opzettelijk afbeeldingen en voorbeelden gebruikt die op het WWW te vinden zijn. Die bieden niet steeds een correcte en afdoende oplossing voor gestelde problemen. Door de uitvoerige bespreking van die voorbeelden tijdens de hoorcolleges willen we een kritische ingesteldheid aanmoedigen. Een actieve participatie aan de lessen is dan ook aanbevolen.
Roggemans M.
Pagina 7
6-7-2014
Hoofdstuk 1
Historiek
1.1 Inleiding De geschiedenis van de mens start ongeveer 1.000.000 jaar geleden (denken de wetenschappers). Stel dat je een lijn van 1km zou trekken, dan stelt elk jaar 1 millimeter voor. De geboorte van Christus is 2000 jaar geleden, of zo'n 2 meter van het einde van de lijn. De Gulden Sporenslag van 1302 (de Vlaamse feestdag) ligt op een kleine 70 centimeter van het einde van de lijn (De Chinezen kenden het buskruid toen reeds dertig centimeter!). Om de eerste stoomboot te zien varen moet je maar 20 centimeter terug gaan. Aan 12 cm heb je voldoende om de eerste gloeilamp te zien branden. 10 cm voor de eerste auto met verbrandingsmotor en het eerste vliegtuig. Voor de raket moet je maar 5 cm terug. Die laatste 5 cm komt overeen met 50 jaar. In die periode ontstaan zowat alle belangrijke elektronische toestellen en uitvindingen. Enkele mijlpalen in de geschiedenis van de elektronica worden hieronder vermeld.
1.2 Technologische evolutie De uitvinding van de elektronenbuis (uitgevonden in 1904 door Sir Ambrose Fleming (en dus 10 cm terug)) markeert de start van een nieuw tijdperk (figuur 1.2.1).
Figuur 1.2.1 Elektronenbuis van Sir Ambrose Fleming
Roggemans M.
Pagina 8
6-7-2014
De transistor in 1947 (door William Schockley, Brattain en Bardeen) verhoogt de betrouwbaarheid en verlaagt het volume en stroomverbruik (figuur 1.2.2)
Figuur 1.2.2 De transistor (W. Schockley, Brattain & Bardeen)
De microchip in 1958 (door Jack St. Clair Kilbey) is de start van de miniaturisatie, en toenemende complexiteit (figuur 1.2.3)
Figuur 1.2.3 De microchip (St. Clair Kilbey)
Roggemans M.
Pagina 9
6-7-2014
Deze uitvindingen hebben het uitzicht en de inzetbaarheid van computers drastisch veranderd, maar zijn niet verantwoordelijk voor het ontstaan ervan. In onderstaande tekst geven we een chronologisch overzicht van de computer in de evolutie. In de dertiende eeuw gebruikt men in China het telraam (nu trouwens nog, en ook elders) (figuur 1.2.4).
Figuur 1.2.4 Telraam
In 1623 Maakt Wilhelm Schickard de calculating clock, de eerste rekenmachine (figuur 1.2.5).
Figuur 1.2.5 W. Schickard
Roggemans M.
Pagina 10
6-7-2014
In 1642 doet Blaise Pascal een poging met de niet erg betrouwbare Pascaline (figuur 1.2.6).
Figuur 1.2.6 De Pascaline De arithmometer van de Fransman Thomas was het eerste commerciële toestel. Het werd in 1820 op de markt gebracht (er zijn 1500 toestellen verkocht)(figuur 1.2.7).
Figuur 1.2.7 Arithmometer van Thomas
Roggemans M.
Pagina 11
6-7-2014
Het probleem met bovenstaande machines was de onmogelijkheid om opeenvolgende bewerkingen uit te voeren. De sturing van een weefgetouw (figuur 1.2.8), ontworpen door Basil Bouchon kon met ponskaarten bediend worden. Hierin vinden we de fundamentele onderdelen terug van de moderne computer (1725). Dit systeem werd verder aangepast door Vaucanson (1745) en uiteindelijk door Jacquard in 1805.
Figuur 1.2.8 Weefgetouw Het idee om ponskaarten te gebruiken werd door Charles Babbage (1830) gebruikt om zijn Analythical Engine te bouwen (figuur 1.2.9).
Figuur 1.2.9 Analythical Engine C. Babbage Roggemans M.
Pagina 12
6-7-2014
De machine heeft nooit praktische toepassingen gekend. Een variant werd door Scheutz op de markt gebracht in 1855. De machine kan 44 32-bit getallen per minuut bewerken (figuur 1.2.10).
Figuur 1.2.10 Versie Scheutz Felt's comptograph is een optel machine met ingebouwde printer?! (figuur 1,2,11).
Figuur 1.2.11 Felt’s comptograph
Roggemans M.
Pagina 13
6-7-2014
Herman Hollerith gebruikte de ponskaarten als techniek om in 1890 zijn telmachine te bouwen die gebruikt werd tijdens de volkstelling in de Verenigde Staten (figuur 1.2.12).
Figuur 1.2.12 Hollerith systeem met ponskaarten
Roggemans M.
Pagina 14
6-7-2014
Figuur 1.2.12 Hollerith systeem met ponskaarten
Van 1900-1910 worden mechanische rekenmachines op grote schaal geïntroduceerd. In 1919 publiceren W.H. Eccles en F.W. Jordan een artikel over hoe een flipflop gebouwd kan worden (figuur 1.2.13). Dit laat toe om 1 bit aan informatie op te slaan.
Figuur 1.2.13 Opbouw van een Flip-Flop
Roggemans M.
Pagina 15
6-7-2014
George Stibitz bouwt tussen 1937 en 1940 de eerste elektromechanische computer ooit. Het model K (omdat het thuis op de keukentafel geboren werd) wordt in onderstaande figuur (1.2.14) weergegeven. De machine bestaat uit 450 relais, en kan het quotiënt van 2 8 bit getallen in 30 seconden berekenen. De machine gebruikt een teletype voor input en output. Hiermee was het ook de eerste "computer" met bediening op afstand.
Figuur 1.2.14 Model K van Stibitz WO2 heeft voor gevolg dat de technische evolutie versneld wordt. Door buizen te gebruiken i.p.v. relais worden computers sneller. In de U.S.A., Engeland en Duitsland worden bijna gelijktijdig nieuwe machines ontworpen. Sommige worden te laat vrijgegeven om een commercieel succes te kunnen worden.
Roggemans M.
Pagina 16
6-7-2014
In de periode van 1939 tot 1942 maak Konrad Zuse verschillende computers die nooit door het Duitse leger gebruikt zullen worden (wegens geen directe bijdrage tot de oorlogsvoering zo dacht men). In de periode tussen 1949 en 1969 bouwde zijn bedrijf 250 computers (figuur 1.2.15).
Figuur 1.2.15 Computer van Konrad Zuse
Roggemans M.
Pagina 17
6-7-2014
In de Verenigde Staten (1944) wordt de Harvard Mark 1 ontworpen door IBM (figuur 1.2.16). Het toestel weegt 5 ton en bevat ongeveer 750000 componenten. Hij is in staat om in 0.3 seconden een optelling uit te voeren. Voor een vermenigvuldiging zijn er 6 seconden nodig. De computer bestaat hoofdzakelijk uit (elektro)mechanische onderdelen.
Figuur 1.2.16 Harvard Mark I De computer bleef in gebruik tot 1959. Hij was gemiddeld 1 keer per week defect.
Roggemans M.
Pagina 18
6-7-2014
De ENIAC (1943-1945) was de eerste volledig elektronische computer (figuur 1.2.17). Hij bevatte 18000 buizen, woog 30 ton en nam 72 vierkante meter in beslag. Het opgenomen vermogen was 200kW. Voor een optelling was 200uS nodig, voor een vermenigvuldiging 6mS. Het apparaat was niet erg betrouwbaar en leverde maar 20% juiste resultaten. (Atanasoff en Berry leverden de inspiratie, Eckert en Mauchly waren de bouwers).
Figuur 1.2.17 Eniac
Roggemans M.
Pagina 19
6-7-2014
In Engeland wordt de Colossus (figuur 1.2.18) gebouwd door Tommy Flowers (1944). Het apparaat werd in het grootste geheim gebruikt door het leger voor het decoderen van geheime boodschappen. De computer gebruikt parallel processing technieken.
Figuur 1.2.18 Colossus
Roggemans M.
Pagina 20
6-7-2014
In de jaren na de oorlog volgen de ontwerpen elkaar op. Lampen worden vervangen door transitoren, en vanaf de jaren 1970 door geïntegreerde schakelingen. De introductie van de “home computer” zorgt er voor dat de computer niet enkel voor bedrijven betaalbaar is. Onderstaande computers zijn hier enkele voorbeelden van. 1977: TANDY TRS-80 (4-16kRAM, kostprijs 600$ (Z80 CPU))
1977: APPLE2 (4-64kRAM, kostprijs 700$)
1980: SINCLAIR ZX80 (4k ROM, 1k RAM (ZW TV als scherm))
Roggemans M.
Pagina 21
6-7-2014
1984: IBM PC (64k RAM, 64k ROM, 8088 CPU)
1986: APPLE MACINTOSH (1Mbyte RAM 128kROM. 16 bit processor)
Na de introductie van de 16 bit processoren zijn de rekenkracht en de grafische mogelijkheden steeds verder uitgebouwd. De PC wordt ook gebruikt voor ontspanning en multi media. Intel opteerde om zijn 8086 familie steeds verder uit te bouwen. Op volgende blz. zie je de evolutie van de Intel processoren. We zouden dit verhaal ook voor andere CPU’s kunnen herhalen (68000, MIPS, ARM, …). De x86 is wel de meest gebruikte voor PC’s.
•
•
1971: Intel invents microprocessor – 4004 kloksnelheid:108kHz 4 bit processor 2300 transistors 640 bytes geheugen maximaal
1972: 8008 introduced kloksnelheid:200kHz 8 bit processor
Roggemans M.
Pagina 22
6-7-2014
3500 transistors 16kbyte maximaal geheugen
• • • • •
1975: 8080 introduced kloksnelheid:2MHz 8 bit processor 4500 transistors 64kbyte maximaal geheugen 1978: 8086 introduced kloksnelheid:5-10MHz 16 bit processor 29000 transistors 1Mbyte maximaal geheugen 1980: IBM selects 8088 as basis for IBM PC
–
8088 is 8-bit external bus version of 8086
1980: 8087 floating point coprocessor
– – –
adds 60 floating point instructions 80 bit floating point registers uses hybrid stack/register scheme
1982: 80286 introduced
– –
24-bit address
memory mapping & protection kloksnelheid:6-12.5MHz 16 bit processor 134000 transistors 16Mbyte maximaal geheugen
•
1985: 80386 introduced
– –
32-bit address
32-bit GP registers kloksnelheid:16-33MHz 32 bit processor 275000 transistors 4Gbyte maximaal geheugen
• •
1989: 80486 introduced kloksnelheid:16-33MHz 32 bit processor 1185000 transistors 4Gbyte maximaal geheugen 1992: Pentium introduced kloksnelheid:60-66MHz
Roggemans M.
Pagina 23
6-7-2014
32 bit processor 3100000 transistors 4Gbyte maximaal geheugen
• • • •
•
•
1995: Pentium Pro introduced kloksnelheid:150-200MHz 32 bit processor 5500000 transistors 64Gbyte maximaal geheugen 1996: Pentium with MMX extensions
– –
57 new instructions Primarily for multimedia applications
1997: Pentium II (Pentium Pro with MMX) 1999: Pentium III Introduced
•
Supports Intel’s Internet Streaming SIMD technology
– – – –
Additional multimedia instructions Four 32-bit floating point operations in parallel Average, absolute difference, packed maximum/minimum Useful in speech recognition, video encoding/decoding
2000: Intanium introduced
– – – – – –
Release of IA-64 (RISC-like) architecture Explicitly Parallel Instruction Computing (EPIC) 128-bit bundle with three instructions and a template 128 general purpose registers and 128 floating point registers Done by a partnership between HP and Intel Able to run both UNIX and Microsoft windows
2004: Pentium 4 Prescott Clock speeds starting at 3.4GHz, 3.2GHz, 3GHz, and 2.8GHz New .09 micron "Strained SI" manufacturing process Improved Hyperthreading Technology 1MB on chip, Full Speed L2 Cache Increased 16KB L1 Data Cache Streaming SIMD Extensions - SSE2 and 13 new SSE3 Instructions 31 stage "Hyper Pipelined" Technology for extremely high clock speeds 800MHz "Quad Pumped" Front Side Bus Rapid Execution Engine - ALU clocked at 2X frequency of core 128bit Floating Point/Multimedia unit
Roggemans M.
Pagina 24
6-7-2014
•
Intel "NetBurst" micro-architecture Supported by the Intel i875P and i865G chipsets, with Hyperthreading support Intel MMX media enhancement technology Memory cacheability up to 4 GB of addressable memory space and system memory scalability up to 64 GB of physical memory 1.25 - 1.4V operating voltage range 89 - 103 Watts max power dissipation Transistor count: 125 million Die size: 112 mm2
Intel architecture was due to the desire for backward compatibility
–
Highly irregular architecture Over 50 million sold per year
Figuur 1.2.19 Intel core i7 In figuur 1.2.19 is een in 2014 actuele Intel processor afgebeeld. Dit zijn enkele gegevens van de chip: Product information: Intel® Core™ i7-4930X processor Extreme Edition 3.4 GHz core speed Up to 3.9 GHz with Intel® Turbo Boost Technology 6 cores and 12 processing threads with Intel® Hyper-Threading Technology 12 MB Intel® Smart Cache 5 Giga bit per second memory transfer rate (GT/s) 22nm manufacturing process technology 1150-land LGA package
Tenslotte nog een foto van de 4004 (figuur 1.2.20) en de p4 van INTEL (figuur 1.2.21).
Roggemans M.
Pagina 25
6-7-2014
Figuur 1.2.20 Intel 4004 processor
Roggemans M.
Pagina 26
6-7-2014
Figuur 1.2.21 Intel P4 processor
Roggemans M.
Pagina 27
6-7-2014
Hoofdstuk 2 2.1
Soorten computers
Inleiding
Computers bestaan er in verschillende uitvoeringsvormen, gaande van een silicium chip overdekt met epoxy hars (figuur 2.1.1), tot een PCB met tientallen geïntegreerde schakelingen (IC’s) en connectoren voor verdere uitbereiding (figuur 2.1.2).
Figuur 2.1.1 Chip op CB , afscherming epoxy hars
Figuur 2.1.2 PCB met individuele componenten
Roggemans M.
Pagina 28
6-7-2014
Het toepassingsgebied is heel divers. Van eenvoudige toepassingen zoals speelgoed (figuur 2.1.3) tot systemen om gegevens van radiotelescopen te verwerken (figuur 2.1.4).
Figuur 2.1.3 Speelgoed
Figuur 2.1.4 Computer voor bewerken gegevens radiotelescoop
Roggemans M.
Pagina 29
6-7-2014
(De meetlat gaat per 10 cm (de hoogte is dus 65 cm)) Het gebruik van een programmeerbare bouwsteen laat toe om met standaard hardware een waaier aan toepassingen te bouwen. Door het programma aan te passen kan een nieuwe functionaliteit bekomen worden.
2.2
Embedded & her-programmeerbare computers
Bij de beschrijving van computers komt de term ”embedded” regelmatig voor. Het woordenboekje geeft als letterlijke vertaling: ”insluiten, vastzetten in”. Embedded computers zitten als het ware begraven in een toepassing. De computer is er dus een integraal onderdeel van. Het is niet de bedoeling om het toestel een andere toepassing te geven. Als voorbeeld kan je een GSM nemen. Dit toestel bevat meerdere computers die verschillende taken uitvoeren: besturing van het beeldscherm en het toetsenbord, verzorgen van de communicatie met de zendmast, het omzetten van de digitale signalen naar audio en of visuele communicatie. Het is niet de bedoeling dat gebruiker het toestel van nieuwe programmatuur zal voorzien, zodat het bvb. een motorsturing wordt. Bij een PC is dit wel het geval. Het toestel is speciaal ontworpen om veelvuldig van taak te veranderen. Je kan er zelf ook een programma voor schrijven.
2.3
Administratieve toepassingen
In administratieve toepassingen (figuur 2.3.1) vinden we zowel embedded systemen als her-programmeerbare computers terug. In hulptoestellen zoals scanners, printers, de computermuis, het klavier, … vinden we embedded computers terug. De PC is een voorbeeld van een her-programmeerbaar systeem.
Figuur 2.3.1 Administratieve toepassingen
Roggemans M.
Pagina 30
6-7-2014
2.4
Industriële toepassingen
In industriële omgeving wordt er veel belang gehecht aan betrouwbaarheid van besturingssystemen. (Let op, een frituur is voor ons ook een industriële omgeving. We zouden beter kunnen spreken over een productie en of controle omgeving). De PLC (Programmable Logic Controller) wordt in bedrijven gebruikt voor het sturen van machines (figuur 2.4.1). Het toestel is heel betrouwbaar, zowel op hardware als software gebied. De fabrikanten garanderen dat ze gedurende lange tijd onderdelen blijven produceren.
Figuur 2.4.1 PLC Er bestaan ook heel kleine uitvoeringen die geschikt zijn voor kleinschalige toepassingen zoals de LOGO van Siemens (figuur 2.4.2).
Figuur 2.4.2 LOGO van Siemens
Roggemans M.
Pagina 31
6-7-2014
Eenvoudige (bvb. temperatuur) regelaar of een intelligente sensor is ook een industriële toepassing (figuur 2.4.3).
Figuur 2.4.3 Temperatuurregelaar
2.5
Automotive toepassingen
Automotive toepassingen hebben te maken met alles wat mobiel is. Deze categorie kan verder onderverdeeld worden in luchtvaart, ruimtevaart, voertuigen en militaire toepassingen. Dit type van toepassingen moet aan strengere voorwaarden voldoen dan industriële toepassingen. Vooral de mechanische belastingen, klimatologische omstandigheden en eventuele straling zijn veel ingrijpender. Onderstaande afbeeldingen (figuur 2.5.1) geven enkele toepassingen weer:
Figuur 2.5.1 Automotive toepassingen
Roggemans M.
Pagina 32
6-7-2014
Figuur 2.5.1 Automotive toepassingen
2.6
Info-tainment toepassingen
Tenslotte is er de groep van computertoepassingen voor informatie verwerking of entertainment. Zowat alle audio visuele toepassingen vallen hieronder. Ook een GSM (figuur 2.6.2), GPS, en andere persoonlijke elektronica zoals spelconsoles (figuur 2.6.1).
Figuur 2.6.1 Spelconsole NINTENDO
Roggemans M.
Pagina 33
6-7-2014
Figuur 2.6.2 GSM
2.7
Diverse toepassingen
Tenslotte al die toepassingen die we over het hoofd zien zoals: vaatwassers, microgolf ovens, koffiezet apparaten, radio gestuurde uurwerken, polsuurwerken, automatisch antwoordapparaat, meettoestellen, …..
Roggemans M.
Pagina 34
6-7-2014
Hoofdstuk 3 3.1
Basisarchitectuur
Inleiding
Computers kunnen op verschillende manieren opgebouwd worden. Afhankelijk van de toepassing wordt er meer aandacht geschonken aan bepaalde mogelijkheden van de computer. In allemaal vinden we echter dezelfde fundamentele onderdelen terug:
3.2
een geheugen voor het bewaren van programma en constanten (ROM) een geheugen voor het bewaren van variabelen (RAM) verschillende mogelijkheden om gegevens in te voeren of naar buiten te sturen (wordt Input Output of I/O genoemd) een centrale verwerkingseenheid die het programma kan uitvoeren en als gevolg daarvan berekeningen uitvoert met getallen (CPU of central processing unit) een blokgolf generator met een bepaalde frequentie die ook de werksnelheid van de computer is (de klok) een opstart circuit dat alle componenten in een gekende toestand brengt alvorens de computer het programma mag uitvoeren (POR of power on reset) de elektrische bedrading die de verschillende onderdelen met elkaar verbinden (de bussen) en de mechanische drager van verbindingen en componenten (PCB of printed circuit board) een voedingssysteem om het geheel van energie te voorzien (power supply)
Mechanisch equivalent
In de figuren 3.2.1 en 3.2.2 zijn afbeeldingen opgenomen van een weefgetouw (ontwerp Jacquard) en een pianorol. Dit zijn de eerste mechanische “computers”. Ze maken gebruik van ponsband voor het opslaan van een programma. Een CPU leest het programma, en via pneumatische of mechanische actie wordt de informatie omgezet in een reeks bewerkingen. Het geheel wordt door een motor (klok) aangedreven. Omdat deze apparaten geen gegevens kunnen opslaan, en eigenlijk geen berekeningen uitvoeren, kan je het moeilijk computers noemen. Input kan eventueel wel voorzien worden. Eigenlijk zijn het automaten, zoals je ze wel eens kan terugvinden in wasmachines (figuur 3.2.3).
roggemans marc
Pagina 35
6-7-2014
Figuur 3.2.1 Mechanisch equivalent computer=weefgetouw Jacquard
Figuur 3.2 Mechanisch uitlezen van geheugen (pianorol)
Roggemans M.
Pagina 36
6-7-2014
Figuur 3.2.3 Mechanische automaat wasmachine
3.3
Elektronisch blokschema
Door de mechanische onderdelen te vervangen door elektronische onderdelen met een principiële gelijkaardige functie wordt een systeem bekomen dat (relatief) geen snelheidsbeperkingen meer heeft. Hierdoor wordt het takenpakket uitgebreid. Door de miniaturisatie van elektronische componenten kan de functionaliteit uitgebreid worden. Deze overgang is vergelijkbaar met de overstap van hout, als voornaamste grondstof voor werktuigen, naar ijzer. Een volgende technologische revolutie zal waarschijnlijk ingeluid worden met het gebruik van licht als drager van informatie. In figuur 3.3.1 is een vereenvoudigd blokschema van een computer weergegeven. In de volgende lessen zullen we een volledig model uitwerken. Figuur 3.3.2 is een voorbeeld van een praktische realisatie van een computer. In de pagina’s die daar op volgen is het schema van de betrokken computer weergegeven. In de verdere hoofdstukken zullen de verschillende onderdelen uitvoeriger aan bod komen. Merk op dat in nieuwere computersystemen het aantal verbindingen drastisch toeneemt. Het eigenlijke blokschema blijft grotendeels hetzelfde.
Roggemans M.
Pagina 37
6-7-2014
Figuur 3.3.1 Eenvoudig blokschema computer
Figuur 3.3.2 Praktisch voorbeeld computer
Roggemans M.
Pagina 38
6-7-2014
Roggemans M.
Pagina 39
6-7-2014
Roggemans M.
Pagina 40
6-7-2014
3.4
Microcontroller, microprocessor of S.O.C
Wanneer de elementen uit het blokschema als afzonderlijke componenten op een PCB de computer vormen, dan noemen we dat een microprocessor systeem. Wanneer de CPU samen met het geheugen en de I/O in een component zit, wordt de term microcontroller gebruikt. Figuur 3.4.1 geeft het blokschema van een populaire microcontroller:
Figuur 3.4.1 ADuC832 microcontroller
Een S.O.C. of System On Chip is vergelijkbaar met een microcontroller. Het verschil tussen beide is vooral een software aangelegenheid. In figuur 3.4.2 geven we een globaal blokdiagram dat toepasbaar is op een willekeurig computer systeem.
Roggemans M.
Pagina 41
6-7-2014
Figuur 3.4.2 Blokschema computer systeem
Roggemans M.
Pagina 42
6-7-2014
Hoofdstuk 4 4.1
Talstelsels, codes, bits en bytes
Inleiding
Inwendig in een computer worden maar twee spanningen gebruikt, 0V en de voedingsspanning. Omdat de voedingsspanning afhankelijk is van de gebruikte technologie (meestal 5 of 3.3 Volt) wordt die met een 1 aangeduid. Voor de 0V gebruiken we gewoonweg een 0. Op die manier hoeven we geen rekening te houden met de hardware van het systeem. Elke draad of geheugenplaats kan alleen een 0 of een 1 dragen. Dit elementaire gegevenselement noemen we een bit (binary digit). Uit het blokschema kunnen we afleiden dat groepen van geleiders meerdere bits gelijktijdig gaan transporteren. Inwendig in de componenten worden meerdere bits ook samen als een gegevenselement opgeslagen. Zijn het 4 bits samen, dan spreken we van een nibble. Acht bits of twee nibbles vormen een byte (by eight). Een word bestaat uit meerdere bytes. Hier wordt de definitie vaag. Gebruikelijk bestaat een word uit 16 bits, en een long word uit 32. Sommige microprocessoren werken voornamelijk met 32 bits, en noemen dat dan een word. Niet alleen informatie zit in de computer onder de vorm van bits, bytes en woorden, maar ook alle controlesignalen hebben deze voorstelling. Om de werking van een computer te begrijpen is het dan ook noodzakelijk om goed te begrijpen wat de betekenis van de gegevens is, en hoe het systeem er mee omgaat.
4.2
Codes & getallen
Niet alle getallen hebben een numerische waarde. Zo kan 2015 het saldo zijn van uw bankrekening. In dat geval heeft een numerische betekenis. Je kan 2015 keer 1 euro uitgeven. Het kan ook de PIN code van uw bankkaart zijn. In dat geval heeft het numerisch geen enkele betekenis. Het is een code. Helaas gebruiken we wel getallen om de code voor te stellen. Als we niet weten waarvoor de getallen gebruikt gaan worden, kunnen we er ook geen betekenis aan toekennen. In een computer doet zich een gelijkaardig probleem voor. De complexiteit zal nog toenemen omdat we ook verschillende talstelsels door elkaar gebruiken. Het
roggemans marc
Pagina 43
6-7-2014
programma (de programmeur) moet daarom goed weten hoe de hardware in elkaar zit en wat het probleem is dat hij moet oplossen.
4.3
Binair, hexadecimaal en BCD
Alle getallen zitten in de computer in binaire vorm (figuur 4.3.1), als een reeks van eentjes en nullen. Afhankelijk van de rekencapaciteit van de CPU per 8 of 16 of 32 of….
Figuur 4.3.1 Binaire weergave van getallen
In deze cursus gaan we er van uit dat de rekencapaciteit van de CPU 8 bits of 1 byte is. Alle mogelijke waarden van die byte staan in onderstaande tabel: 00000000 00000001 00000010 00000011 00000100 . . . 11111100 11111101 11111110 11111111 In totaal zijn er 256 mogelijkheden (2**8). Deze voorstelling (want eigenlijk zouden we voor elke bit de spanning moeten noteren die op die lijn of in dat
Roggemans M.
Pagina 44
6-7-2014
geheugenelement zit) wordt de binaire voorstelling genoemd. Omdat deze schrijfwijze communicatief problemen geeft, werd een andere voorstelling bedacht. Per 4 bits (nibble) wordt een cijfer of een letter gebruikt: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F
De rechter kolom wordt de hexadecimale voorstelling genoemd omdat er 16 mogelijke toestanden zijn. De voorstelling 3C = 0011 1100. Omdat er mogelijk vergissingen kunnen optreden tussen de voorstellingen wordt een achtervoegsel b (binair)of h (hexadecimaal) gebruikt: 3Ch = 00111100b. De gebruikte letters (zowel voor het hexadecimale getal, als voor het achtervoegsel) kunnen zowel in hoofdletters als kleine letters genoteerd worden. Beide voorstellingen kunnen gebruikt worden voor getallen of codes. Je kan maar weten wat de betekenis van een reeks 1en en 0en is als je weet hoe ze door de CPU verwerkt gaan worden. Een computerprogramma bestaat uit een reeks van codes. Die codes worden door de CPU uitgevoerd (geïnterpreteerd als opdrachten). Ook getallen hebben die voorstelling. Als we geen voorzorgen nemen kan de CPU niet weten wanneer het instructies zijn of wanneer getallen, met ongekende gevolgen (een blauw scherm zegt U niets?). Wanneer het duidelijk is welke voorstelling gebruikt wordt, kunnen de achtervoegsels weggelaten worden (wat we echt niet aanraden!!). Als we er van uit gaan dat we getallen voorstellen, zijn er verschillende talstelsels mogelijk. In het binaire talstelsel is de getalwaarde van elke bit afhankelijk van zijn positie in de byte. 101b = 1*22 + 0*21 + 1*20 = 5 10011101b = 1*27 + 0*26 + 0*25 + 1*24 + 1*23 + 1*22 + 0*21 + 1*20 = 157
Roggemans M.
Pagina 45
6-7-2014
Als de hexadecimale voorstelling gebruikt werd, moet je in principe eerst naar de binaire voorstelling. Vanuit de hexadecimale voorstelling kan je ook rechtstreeks omrekenen. 3Ch = 3*16+C*1 = 48d + 12d = 60d Het is duidelijk dat onze decimale getallen omgerekend moeten worden naar de binaire voorstelling alvorens de CPU er berekeningen kan op uitvoeren. Als de uitkomst gekend is moet het binaire resultaat opnieuw omgezet worden naar de decimale voorstelling. Afhankelijk van de toepassing kunnen die omrekeningen vermeden worden. In dat geval zullen de getallen in BCD (Binary Coded Decimal) notatie opgeslagen worden. In onderstaande tabel staan de bitpatronen die toegelaten zijn voor BCD getallen. Zolang we de 4 bits afzonderlijk gebruiken, is er geen verschil tussen de numerische waarde van het binaire en het BCD getal. Maar in een byte kan de getalwaarde ernstig verschillen: 99h = 10011001b = 153d Indien we niet weten wat het gebruikte talstelsel is loopt het grondig mis. Zo is 99h+1 = 9Ah en bij een BCD voorstelling moet dat 100 worden. Binair 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Roggemans M.
hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
Pagina 46
BCD 0 1 2 3 4 5 6 7 8 9 -
6-7-2014
Onderstaande tabel is een deel van de instructieset van een CPU. Merk op dat de instructies ook bestaan uit binaire codes. Adres code
label
0000 0000 0002 0004 0006 0009 000B
74FF 2401 4003 020002 7400 020002
loop1:
loop:
mnemonic operand org
00000h
mov add jc ljmp mov ljmp
a,#0ffh a,#001h loop loop1 a,#000h loop1
De getallen in de kolom Adres en code staan in de hexadecimale waarde.
4.4
ASCII codes en UNICODE
In veel toepassingen worden er tekstbestanden verwerkt. Elk symbool moet in het geheugen van computer opgeslagen kunnen worden. Je kan dit grafisch doen door een matrix van x*y bit te voorzien. Een letter bestaat dan uit meerdere bytes informatie (zie figuur 4.4.1):
Figuur 4.4.1 Grafische voorstelling van een letter in een matrix Dit neemt veel geheugen in beslag. Er is immers per beeldpunt 1 bit nodig. Als er een intensiteit en een kleur per bit moet zijn, wordt dat 3 bytes per beeldpunt (RGB). Het is veel eenvoudiger om de bitmap van alle symbolen in het geheugen van de computer op te slaan. Elke bitmap krijgt een unieke code toegewezen. Het volstaat nu om die unieke codes op te slaan in een bestand. Als de gegevens naar het scherm gestuurd worden, zullen ze vervangen worden door hun respectievelijke bitmap. Die codes worden de ASCII codes genoemd. Ze zijn in onderstaande tabel opgenomen.
Roggemans M.
Pagina 47
6-7-2014
* 0 1 NU SO 0 L H DC 1 DLE 1 2 ! 3 0 1 4 @ A 5 P Q 6 ` a 7 p q
2
3
4 EO STX ETX T DC DC DC 2 3 4 " # $ 2 3 4 B C D R S T b c d r s t
5 EN Q NA K % 5 E U e u
6 AC K SY N & 6 F V F V
7
8
BEL BS ETB ' 7 G W g w
CA N ( 8 H X h x
9
B
C
TAB LF
VT
FF
SU B * : J Z j z
ES C + ; K [ k {
EM ) 9 I Y i y
A
FS , < L \ l |
D C R G S = M ] m }
E
F
SO SI RS US . > N ^ n ~
/ ? O _ o
De tabel bevat niet alleen codes voor symbolen, maar ook commando’s voor een I/O apparaat. Wanneer je een tekst aanmaakt, zullen in een bestand alleen de codes van de symbolen waaruit de tekst bestaat opgeslagen worden (per karakter 1 byte). Allen bij het visualiseren of afdrukken worden die codes omgezet naar de bijhorende bitmaps. Omdat een moderne PC over gans de wereld toepasbaar moet zijn, of symbolen uit andere landen moet kunnen weergeven, zijn er onvoldoende ASCII codes (256). Om dit op te vangen werd vanaf 1988 de UNICODE ingevoerd. Dit codesysteem gebruikt codes van meerdere bytes. Meer informatie kan je terugvinden op www.unicode.org . De ASCII code set is een subset van de UNICODE. Programma’s die UNICODE gebruiken kunnen dus ook bestanden in ASCII code verwerken. Omgekeerd is dat niet het geval.
4.5
Poorten
Poorten zijn elektronische schakelingen die elementaire logische bewerkingen kunnen uitvoeren op bits. In een computer worden een logische “0” en een logische “1” voorgesteld door een spanning van 0 Volt en X Volt. X is afhankelijk van de gebruikte technologie. Vroeger was X=5 Volt, nu kan dat ook een lagere spanning zijn (0,8V). Voor elke bit moet er in de computer een aparte draad gebruikt worden. Daardoor krijg je al vlug een massa verbindingen om de “data” te transporteren tussen de verschillende onderdelen. De poorten worden dan gebruikt om elementaire bewerkingen uit te voeren tussen die bits. Men kan aantonen dat combinaties van die elementaire bewerkingen kunnen gebruikt worden om complexe berekeningen uit te voeren. Zo kan je een vermenigvuldiging als een reeks van optellingen bekijken. De elementaire bewerkingen worden ook in programmeertalen (zoals in een PLC of PC) gebruikt.
Roggemans M.
Pagina 48
6-7-2014
4.5.1
De inverter (NOT)
Een invertor (NOT poort) (figuur 4.5.1.1) zal het niveau van een bit inverteren: 01 en 10 De linkse afbeelding is het elektrisch schema van de poort, de rechtse afbeelding is de grafische weergave van een kant en klaar IC.
Figuur 4.5.1.1 Inverter (NOT poort) I.P.V poort wordt ook dikwijls de naam GATE gebruikt.
4.5.2
De AND gate
Een AND gate is een poort die 2 ingangen heeft en een uitgang. Wanneer beide ingangen op “1” staan, zal de uitgang ook de waarde “1” aannemen. In alle andere gevallen zal de uitgang “0” blijven. Je kan dit ook in een zin formuleren: Als ingang a en ingang b beide 1 zijn, zal de uitgang ook 1 zijn. Als ingang a en ingang b NIET beide 1 zijn, zal de uitgang 0 zijn In figuur 4.5.2.1 is het symbool van een en-poort opgenomen, alsook de waarheidstabel. Die geeft de relatie tussen ingangen en uitgangen weer in een tabel. Hierdoor krijg je vlug een overzicht van de toestanden waarin de poort zich kan bevinden.
Roggemans M.
Pagina 49
6-7-2014
Figuur 4.5.2.1 AND gate (en poort)
4.5.3
OR gate
In figuur 4.5.3.1 staan de gegevens van een of-poort. Hier zal de uitgang 1 zijn wanneer ingang a OF ingang b gelijk is aan 1. Met combinaties van deze en de twee voorgaande poorten kunnen andere functies gemaakt worden. Enkele hiervan worden in de volgende paragrafen bondig besproken.
Roggemans M.
Pagina 50
6-7-2014
Figuur 4.5.3.1 OR gate
4.5.4
Exclusive or gate
Figuur 4.5.4.1 Excusieve of poort
Roggemans M.
Pagina 51
6-7-2014
4.5.5
De flip-flop
De flip-flop (figuur 4.5.5.1) is een schakeling met een geheugen functie. Een aangelegd signaal aan de D-klem wordt met een puls op de CLK klem in de schakeling opgeslagen, en blijft aan de Q uitgang beschikbaar, ook wanneer het signaal aan de D-klem een andere waarde krijgt. Op dit principe is het cache geheugen van een PC gebaseerd (zie later SRAM).
Figuur 4.5.5.1. De Flip-Flop
4.5.6.
Adder
In figuur 4.5.6.1 is het schema van een optel-schakeling weergegeven. Hoe het werkt is in deze context niet belangrijk. We willen enkel aantonen dat je met fundamentele schakelingen complexere functies kan maken. Zo bestaan er ook schakelingen voor de ander 3 hoofdbewerkingen (-, x, /). Je kan er ook bouwen voor sin, cos, ….
Roggemans M.
Pagina 52
6-7-2014
Figuur 4.5.6.1 4 bit adder
Roggemans M.
Pagina 53
6-7-2014
Hoofdstuk 5 5.1
Soorten geheugen &toepassingen
Inleiding
Het geheugen in een computer wordt gebruikt om data en programma vast te houden. Data zijn de gegevens die door een programma bewerkt worden (verzamelen, visualiseren, aanmaken). Het programma bestaat uit een reeks van opdrachten die door de CPU uitgevoerd kunnen worden. Beide soorten gegevens worden als bytes opgeslagen. Geheugens kunnen in twee grote groepen worden opgesplitst. Er zijn geheugens die hun gegevens verliezen bij het uitschakelen van de spanning (volatile memory), andere behouden hun inhoud zodat na het inschakelen van de spanning de gegevens terug beschikbaar zijn (non volatile memory). Bij het inschakelen van de computer moet er een programma in het geheugen zitten. Dit verklaart waarom er steeds ROM (Read Only Memory) aanwezig is. Dit type geheugen is non volatile. De computer start dus ALTIJD op met een programma in het geheugen. Mocht dat niet het geval zijn, voort de CPU willekeurige opdrachten uit, met onvoorspelbare gevolgen. Omdat er altijd wel variabelen zijn die door het programma aangepast worden is RAM (Random Access Memory) onmisbaar. Dit type geheugen kan door de CPU geschreven en gelezen worden. Het vormt het werkgeheugen van de computer. Er bestaan echter verschillende soorten ROM en RAM, die afhankelijk van de toepassing in aanmerking komen om toegepast te worden. Het bouwen van geheugen is niet eenvoudig. De eerste vormen van mechanisch geheugen zijn ponskaarten. Het al of niet aanwezig zijn van een gaatje bepaald welke data er opgeslagen wordt. Computers gebruiken geheugen dat gegevens opslaat onder de vorm van magneetvelden, elektronen of de toestand van een schakeling (geleiden of sperren). In figuur 5.1.1 zie je een afbelding van een magnetic core memory. De gegevens worden op minuscule ferrietkernen opgeslagen als magneetvelden. Dit type geheugen gebruikt hetzelfde principe als een harde schijf.
roggemans marc
Pagina 54
6-7-2014
Figuur 5.1.1 Magnetic core memory
5.2
ROM
ROM geheugen is exact wat zijn naam aangeeft: Read Only Memory. Het kan enkel gelezen worden. Hoe kan je er dan data in krijgen? Een eerste mogelijkheid is bij de productie van het IC. De schakelingen worden zo opgebouwd dat de gegevens vast liggen. Figuur 5.2.1 geeft een wafer weer. Dit is een schijf silicium waarop de schakelingen zijn aangebracht. Deze wafer wordt versneden tot meerdere dies of schijfjes. Die worden dan in een verpakking geplaatst en het IC is klaar. Omdat het productieproces aangepast moet worden afhankelijk van de data in het IC, kan je deze technologie maar gebruiken wanneer je duizenden IC’s nodig hebt met dezelfde info. Bij elke herziening van die gegevens zijn de andere schakelingen onbruikbaar. In het voorbeeldschema kan je de benamingen van de klemmen van het IC nagaan. Naast een adresbus, databus en voedingsklemmen zijn er controlesignalen aanwezig. Bij een ROM chip is dat enkel een CS en een RD lijn. De notering met een lijntje erboven of een # teken na de benaming van het signaal geeft aan dat het over een actief laag signaal gaat.
Roggemans M.
Pagina 55
6-7-2014
Figuur 5.2.1 Een silicium chip
5.2.1
PROM
Bij de PROM (Programmable Read Only Memory) worden op elke bitpositie zekeringen geplaatst (figuur 5.2.1.1). Bij het programmeren worden de zekeringen opgeblazen. Hierdoor kunnen de IC’s op grote schaal gemaakt worden zonder dat ze gegevens bevatten, waardoor de kostprijs laag blijft. De gebruiker heeft geen minimale hoeveelheden meer aan te kopen. De gegevens worden last minute in de chip geprogrammeerd.
Roggemans M.
Pagina 56
6-7-2014
Figuur 5.2.1.1 Fuse in een PROM chip Om de IC’s te programmeren wordt een device programmer gebruikt (figuur 5.2.1.2).
Figuur 5.2.1.2 Device programmer
5.2.2
EPROM
Een PROM geheugen kan niet gewist worden. Het is dus niet herprogrammeerbaar. Een EPROM (Erasable Read Only Memory) kan met UV licht gewist worden (figuur 5.2.2.1). Om dit mogelijk te maken wordt het IC voorzien van een venster. Het programmeren gebeurt op een analoge manier als bij de PROM. Om het IC te wissen is een UV lichtbron nodig (figuur 5.2.2.2). Dit UV licht is erg schadelijk voor ons, zodat de lichtbron in een gesloten behuizing geplaatst wordt. Met een timer wordt de belichtingstijd ingesteld. Roggemans M.
Pagina 57
6-7-2014
Figuur 5.2.2.1 EPROM
Figuur 5.2.2.2 UV lichtbron voor het wissen van geheugen IC’s Het element dat gebruikt wordt om de informatie op te slaan is een floating gate MOSFET (figuur 5.2.2.3).
Figuur 5.2.2.3 Floating gate geheugencel
Roggemans M.
Pagina 58
6-7-2014
Er bestaan ook EPROM IC’s in een plastic behuizing zonder venster. Hierdoor kan je ze niet meer wissen. De goedkope verpakking maakt ze een alternatief voor de PROM. Ze worden verkocht als OTPROM (One Time Programmable Read Only Memory), en hebben de fuse PROM van de markt verdrongen.
5.2.3
EEPROM
De EPROM heeft twee belangrijke nadelen. De kostprijs van de verpakking maakt het IC relatief duur (keramisch materiaal). Bovendien is het niet mogelijk om het IC inwendig in de computer te herprogrammeren (bvb. een BIOS update in een PC) (tenzij je een UV lamp in de computer zou monteren…). Een EEPROM (Electrically Erasable Read Only Memory) werkt analoog als een EPROM. Alleen wordt er geen UV licht gebruikt bij het wissen, maar kan dat elektrisch gebeuren. Hierdoor is het mogelijk om het IC inwendig in de computer te herprogrammeren. Je zal dus voorzorgen moeten nemen om te voorkomen dat dit per ongeluk gebeurt. Door de goedkopere behuizing kan de prijs omlaag. Een EEPROM blijft echter relatief duur omdat er heel wat silicium nodig is om elke geheugenplaats afzonderlijk te kunnen wissen en te programmeren.
5.2.4
FLASH
Om de kostprijs per bit te drukken kan je de wis-elektronica vereenvoudigen. Hierdoor wordt het geheugen sector wisbaar. Een sector of pagina (page) is een verzameling van meerdere bytes. Hierdoor komt er silicium vrij voor extra geheugenopslag. De capaciteit van FLASH geheugens is meestal erg groot (enkele Mbyte tot Gbyte). Hierdoor krijgen de verpakkingen veel aansluitingen, zoals in figuur 5.2.4.1 wordt weergegeven.
Figuur 5.2.4.1 FLASH geheugen IC Roggemans M.
Pagina 59
6-7-2014
5.3
RAM
RAM is een soort geheugen dat onbeperkt gelezen en geschreven kan worden. De informatie wordt opgeslagen door de toestand van een halfgeleider schakeling. Na het inschakelen van de voedingsspanning is de toestand van de halfgeleiders onbekend. Het geheugen is dus vluchtig. De bovenstaande geheugens hebben allemaal een beperkte levenscyclus. Je kan ze maar een beperkt aantal keer wissen en herprogrammeren (tussen de 10000 en 10000000 keer). Hierdoor zijn ze niet geschikt als werkgeheugen van de computer. De CPU zal variabelen in het werkgeheugen tot miljoenen keer per seconde manipuleren.
5.3.1
SRAM
RAM (Random Access Memory) is vluchtig, maar kan door zijn constructie onbeperkt gelezen of geschreven worden. Een betere naam zou schrijf/lees geheugen zijn. De SRAM (Static RAM) bestaat uit flip flop schakelingen (figuur 5.3.1.1).
Figuur 5.3.1.1 Flip-flop schakeling
Om deze schakeling te bouwen zijn meerdere transistoren nodig. Onderstaand equivalent schema is dat van een RS flip flop (figuur 5.3.1.2). Voor een D flip flop komt dar nog een invertor bij. De flip flop zal de data vasthouden zolang er spanning aanwezig is. Bij het inschakelen van de voeding bevat de flip flop willekeurige data.
Roggemans M.
Pagina 60
6-7-2014
Figuur 5.3.1.2 Equivalent schema RS flip-flop
5.3.2
DRAM
DRAM (Dynamic RAM) gebruikt condensatoren om informatie op te slaan (figuur 5.3.2.1). Hierdoor wordt er per bit minder silicium gebruikt.
Figuur 5.3.2.1 DRAM
Roggemans M.
Pagina 61
6-7-2014
Dit geheugen is goedkoper dan SRAM, of bevat meer data voor dezelfde prijs. Een nadeel is wel dat het geheugen na enkele milliseconden zijn informatie verliest. Dit wordt voorkomen door het geheugen te refreshen. Er is een minimale geheugen capaciteit voordat het gebruik van DRAM economisch verantwoord is. Die grens is echter afhankelijk van economische omstandigheden. Wanner DRAM gebruikt wordt is bijkomende refresh logica noodzakelijk.
5.3.3
NVRAM
Een belangrijk nadeel van RAM geheugen is het vluchtige karakter. In sommige toepassingen willen we niet dat de inhoud van het geheugen verloren gaat als de spanning uitgeschakeld wordt (dataloggers, instellingen van machines,…). Om dit te voorkomen kunnen we een batterij gebruiken om bepaalde delen van de computer onder spanning te houden. Bij een NVRAM (Non Volatile RAM) zit die batterij in het IC verwerkt (figuur 5.3.3.1). Soms wordt ook een supercap gebruikt. Dat is een condensator van enkele Farad. Dit type geheugen is relatief duur en zal enkel gebruikt worden als het noodzakelijk is.
Figuur 5.3.3.1 NVRAM met inwendige batterij Het andere alternatief is battery back up waarbij de batterij niet in het IC zit (figuur 5.3.3.2).
Figuur 5.3.3.2 Battery back up met externe/interne batterij
Roggemans M.
Pagina 62
6-7-2014
5.3.4
FRAM & MRAM
FRAM (Ferroelectric RAM) maakt gebruik van een capaciteit om een bit informatie op te slaan (vergelijkbaar met DRAM). Door echter een diëlectricum te gebruiken dat, niet vluchtig, polariseerbaar is krijgt die condensator een vaste lading. Door te meten hoeveel lading er nodig is om de condensator in een gekende toestand te brengen, kan de vorige toestand herkend worden. Het uitschakelen van de spanning verandert niets aan de toestand van het diëlectricum, zodat het ook een niet vluchtig geheugen is (figuur 5.3.4.1).
Figuur 5.3.4.1 Inwendige opbouw FRAM Ondanks de naam van het geheugen heeft het niets met ijzer te maken. Ferroelectric slaat op de karakteristiek van het diëlectricum met betrekking op polarisatie, die overeenkomt met die van ijzer voor magnetisme. Het schrijven en lezen naar dit type geheugen kan heel snel, en er is principe geen beperking op het aantal keer dat je informatie kan lezen of schrijven. Fabrikanten zoals RAMTRON geven een levenscyclus van 10000000000 operaties op.
Roggemans M.
Pagina 63
6-7-2014
MRAM (Magnetic RAM) werkt met een magnetiseerbaar materiaal in het IC (figuur 5.3.4.2).
Figuur 5.3.4.2 Inwendige opbouw MRAM
5.3.5
Memristor
De Memristor (Memory Resistor) is een component die informatie kan opslaan door een wijziging van zijn eigenschappen. Dit verschijnsel werkt enkel op nanoschaal. Meer gedetailleerde informatie is beschikbaar via het internet.
Roggemans M.
Pagina 64
6-7-2014
Hoofdstuk 6 6.1
Soorten I/O & toepassingen
Inleiding
Een computer heeft weinig zin als er geen gegevens kunnen uitgewisseld worden met de omgeving. Gegevens hoeven niet steeds bestanden te zijn. Het kan ook gaan over het inlezen van schakelaars, aansturen van LED’s of het opslaan van data op een harde schijf. Er bestaan vele soorten van I/O die bovendien aangepast worden aan de toepassing. Zo zal het schakelen van een ABS-ventiel anders gebeuren dan het schakelen van een hoogspanningslijn. Het begrip “interface” slaat soms op de schakeling die de 0 en 1 waarden van het digitale systeem moet omzetten naar de gewenste grootheden voor de omgeving (een LED is een interface die stroom omzet naar licht). Soms wordt een interface ook gebruikt als omschrijving van de schakeling die de signalen van de CPU omzet naar een specifieke I/O vorm. Zo zal een seriële interface de parallelle signalen van de CPU omvormen naar seriële signalen. De I/O vormen die wij hier bespreken behoren tot die laatste categorie. De interface van de eerste categorie behoort thuis in de cursussen analoge elektronica, vermogen elektronica en digitale technieken.
6.2
Parallelle I/O
Parallelle I/O wordt gebruikt om meerdere ingangen of uitgangen gelijktijdig aan te sturen. Meestal worden poorten van 8 bits gebruikt (historische redenen). In het geval van output schrijft de CPU een byte data naar een adres. Op die plaats zit een elektronische schakeling die de data zal vasthouden (onthouden) en door geeft als spanning naar de buitenwereld. In de eenvoudigste vorm wordt hiervoor een latch gebruikt (figuur 6.2.1). Wordt een buffer gebruikt tussen het ingangssignaal en de CPU, dan kan de CPU door de buffer te activeren data inlezen (figuur 6.2.2). In figuur 6.2.3 zijn beide componenten verbonden met een CPU. Er wordt een decodering toegepast op de adreslijnen om de betreffende (74HC574 en 74HC541) I/O componenten te activeren. In figuur 6.2.4 zie je de opbouw van de decoder. Deze schakeling zal je in hedendaagse ontwerpen niet meer terug vinden. Een ontwerper zal gebruik maken van programmeerbare I/O bouwstenen. Die laten toe om te bepalen welke klemmen als input, en welke klemmen als output gebruikt gaan worden. In het hoofdstuk over datacommunicatie wordt ook de noodzaak van interrupts en handshake lijnen besproken.
Roggemans M.
Pagina 65
6-7-2014
Figuur 6.2.1 8 bit latch 74HC574
Figuur 6.2.2 8 bit buffer 74HC541
Roggemans M.
Pagina 66
6-7-2014
Figuur 6.2.3 Voorbeeld I/O met decoder
Figuur 6.2.4 74HC138 decoder
Roggemans M.
Pagina 67
6-7-2014
In figuur 6.2.5 is een standaard parallelle I/O bouwsteen opgenomen. Als voorbeeld werd een Z80 PIO gebruikt. De eerste figuur geeft een blokschema van de inwendige componenten. De tweede figuur geeft de aansluitingen weer.
Figuur 6.2.5 Z80 PIO Nieuwere componenten hebben een hogere pincount, en zullen meerdere I/O functies groeperen. Bij een microcontroller (figuur 6.2.6) zijn alle klemmen in eerste instantie parallelle poorten. Door de instellingen in de chip aan te passen kunnen de klemmen ook voor andere functies gebruikt worden.
Roggemans M.
Pagina 68
6-7-2014
Figuur 6.2.6 Aansluitingen van een XC888 microcontroller
6.3
Seriële I/O
Bij het gebruik van parallelle I/O treden er elektrische problemen op als de gegevens over grote afstanden moeten verplaatst worden (meer dan 1.5m). De voornaamste oorzaak hiervan zijn de elektrische karakteristieken van de gebruikte poort elektronica. Bovendien maakt het grote aantal geleiders de kabels en connectoren duur en onhandelbaar. Door de bits na elkaar te versturen kan een byte in de tijd verschoven door 1 draad verzonden worden. Er wordt een kloksignaal over een tweede draad verstuurd, zodat de ontvanger weet wanneer de bits beschikbaar zijn. Dit is de meest eenvoudige vorm van synchrone seriële communicatie (figuur 6.3.1).
Figuur 6.3.1 Synchrone seriële communicatie
In het hoofdstuk over datacommunicatie worden verschillende systemen van dataoverdracht verder besproken. Roggemans M.
Pagina 69
6-7-2014
Een PC beschikt over meerdere seriële poorten: COM, USB, ETHERNET,….
6.4
Counters / Timers / RTC
Counters zijn hardware tellers. Die kunnen gebruikt worden om externe signalen te tellen. Hierdoor is er voor die tel-operatie geen programma nodig. Als de counter gebruikt wordt voor het tellen van een signaal met een gekende frequentie, dan wordt de term timer gebruikt (er wordt tijd afgepast). Een voorbeeld van een 8051 microcontroller timer/counter is opgenomen in figuur 6.4.1. Timers worden dikwijls gebruikt om de CPU op bepaalde tijdsintervallen een andere taak te laten uitvoeren.
Figuur 6.4.1 8051 timer/counter Met de schakelaar C/T wordt het ingangssignaal voor de teller gekozen. Is de waarde van C/T=1 dan wordt een ingangssignaal op klem P3.4 geteld (counter werking). Is de waarde van C/T=0 dan wordt de systeemklok geteld (en dus wordt er tijd afgepast) en spreekt men van timer werking. Dergelijke counters en timers worden gebruikt om o.a.: Toerental van een motor te meten ABS systemen Kilometer teller Frequentie meting Meten van tijdsintervallen …
Roggemans M.
Pagina 70
6-7-2014
Een RTC (Real Time Clock) is ook een timer, maar telt de tijd in uren, minuten, seconden enz. In figuren 6.4.2 (discrete component) en 6.4.3 (inwendig in een controller) kan je de opbouw van een RTC zien.
Figuur 6.4.2 RTC (real time clock)
Figuur 6.4.3 RTC als onderdeel van een microcontroller
Roggemans M.
Pagina 71
6-7-2014
Een batterij zal voorkomen dat bij het uitschakelen van de PC de tijdsinformatie verloren gaat.
6.5
AD en DA
De meeste signalen in de reële wereld zijn analoog. Er zijn een oneindig aantal variaties mogelijk. Inwendig in de computer kunnen we maar met discrete getallen werken (bvb. 8bit). Een analoog signaal wordt daarom eerst naar een digitale waarde omgezet (figuur 6.5.1).
Figuur 6.5.1 Digitaliseren van een analoog signaal Die digitale waarde kan dan bewerkt worden, en terug naar een analoog signaal omgezet (figuur 6.5.2).
Figuur 6.5.2 Digitale bewerkingen op een analoog signaal
De digitalisatie gebeurt met een AD (Analog to Digital) convertor. Het genereren van een analoog signaal gebeurt via een DA (Digital to Analog) convertor. Afhankelijk van
Roggemans M.
Pagina 72
6-7-2014
de toepassing zal een ander type omvormer gebruikt worden. In figuur 6.5.3 en 6.5.4 staan een SAR ADC en een DAC met weerstandsnetwerk weergegeven.
Figuur 6.5.3 SAR ADC
Figuur 6.5.4 DAC met weerstanden
Roggemans M.
Pagina 73
6-7-2014
6.6
Allerhande controllers
Een computer gebruikt een divers gamma aan randapparatuur. Sommige van de randapparaten zijn erg complex. Om te vermijden dat de CPU hier veel tijd zou aan besteden worden ze via een controller aangestuurd. Een beeldscherm (CRT of TFT) is hier een voorbeeld van. De controller beschikt over voldoende geheugen om een beeld op te slaan. Het omzetten van die informatie naar een weergave op het scherm wordt door de controller uitgevoerd, zonder tussenkomst van de CPU. In sommige gevallen kan de controller ook bewerkingen op de informatie uitvoeren. Gamers gebruiken dan ook speciale controllers (3D accelerators) (figuur 6.6.1).
Figuur 6.6.1 Grafische kaart (CRT controller)
Roggemans M.
Pagina 74
6-7-2014
Ook de harde schijf en DVD lezer behoren tot de complexe I/O en beschikken over eigen controllers. Die zitten op de elektronische schakeling van het betreffende medium (figuur 6.6.2).
Figuur 6.6.2 Controller op een harde schijf
Roggemans M.
Pagina 75
6-7-2014
Hoofdstuk 7 7.1
Programma, stack en interrupt
Inleiding
Het tastbare bestanddeel van een computer is de hardware. Het is uiteindelijk de software die zal bepalen wat de computer doet. De software (programma), bestaat uit een lijst van opdrachten (instructies) die in het geheugen opgeslagen zitten. Een hardware mechanisme zal na het resetten van de computer een eerste instructie ophalen en naar de CPU transporteren. Afhankelijk van de ingelezen code wordt een opdracht uitgevoerd. Het aantal mogelijke opdrachten is relatief beperkt: data op een adres lezen data op een adres wegschrijven een bewerking uitvoeren op een getal (+, -, *, /, AND, OR, XOR, …) naar een andere plaats in het programma springen (al of niet na een test) een subroutine (procedure, functie) opstarten en beëindigen Een programmeur moet de hardware dan ook heel goed kennen om te weten waar welke data mag opgeslagen worden. Het besturen van de I/O gebeurt ook door het lezen en schrijven van data op I/O adressen. Ook al deze componenten moeten gekend zijn. Een programma is dan ook gebonden aan een bepaald soort hardware. Een Intel CPU (standaard PC) gebruikt andere codes dan een Atmel. Niet elk type PC is inwendig op dezelfde manier opgebouwd. De syntax die gebruikt wordt om een programma te schrijven noemen we een programmeertaal.
7.2
Lagere programmeertalen
Machinetaal bestaat uit uitvoerbare codes. Er is dus geen enkele vertaling nodig om het programma uitvoerbaar te maken. In onderstaande tabel zie je een voorbeeld van een programma in machinetaal. In de eerste kolom staat het adres waar de code in het geheugen van de computer moet staan. De tweede kolom is de code die door de CPU uitgevoerd moet worden. De waarden staan in hexadecimale notatie, eigenlijk zouden we de binaire notatie moeten gebruiken. Adres code 0000 0002 0004 0006 0009 000B
Roggemans M.
74FF 2401 4003 020002 7400 020002
Pagina 76
6-7-2014
Merk op dat in ons voorbeeld elk geheugenadres 1 byte data kan bevatten. Op adres 0000h zal de byte 74h staan. Op adres 0001h staat de byte FFh, op 0002h staat 24h etc. Als je op die manier een computer programmeert, moet je over een apparaat beschikken dat toelaat rechtstreeks in het geheugen de machinecodes te plaatsen. Bij het schrijven van het programma moet je bovendien weten wat de betekenis is van elke machinecode (welke actie de CPU zal uitvoeren) Omdat dit niet leesbaar (onthoudbaar) is worden menmonics gebruikt. Dit zijn verkorte omschrijvingen van wat een instructie voor de CPU betekend. Adres
code
0000 0002 0004 0006 0009 000B
74FF 2401 4003 020002 7400 020002
label
loop1:
loop:
mnemonic operand mov add jc ljmp mov ljmp
a,#0ffh a,#001h loop loop1 a,#000h loop1
Het programma wordt nu wel leesbaar (mov=verplaats, add=+, jc=jump if Carry, ljmp=long jump). De lijst met mnemonics wordt assembly language genoemd (machinetaal). Deze taal is voor een programmeur eenvoudiger in gebruik dan de uitvoerbare codes. Een assembler is een hulpprogramma dat de lijst met mnemonics omzet in een lijst met codes. (vroeger werd dat met de hand uitgevoerd via tabellen). Assembly of machinetaal worden lagere talen genoemd, omdat er een eenduidig verband is tussen de opdracht en wat de CPU zal doen. Je kan deze taal maar gebruiken als je de hardware 100% beheerst. Deze taal is heel krachtig, omdat er geen enkele controle is op de opdrachten die je door de CPU laat uitvoeren. Lagere talen kan je moeilijk gebruiken op grote systemen, omdat de hardware complex is, en er bovendien interactie is met andere programma’s in de computer.
7.3
Hogere programmeertalen
Een hogere programmeertaal bestaat uit een syntax die dichter aanleunt bij de manier waarop mensen een probleem omschrijven. Je hoeft als programmeur niet te weten hoe de computer inwendig werkt. Sommige hogere talen werken zelfs grafisch (o.a. Flowcode en Labview) Bij een hogere taal zal een compiler of interpreter de opdrachten in het programma omzetten in codes die door de CPU uitgevoerd kunnen worden. Een compiler zal het gehele programma in een keer omzetten. De uitvoerbare code (*.exe) wordt in de computer opgeslagen.
Roggemans M.
Pagina 77
6-7-2014
Bij een interpreter wordt de broncode (het programma zoals het door de programmeur is geschreven) in het geheugen geladen. De interpreter zal dan lijn per lijn het programma vertalen en uitvoeren. Het is duidelijk dat een gecompileerd programma sneller uitgevoerd zal worden. In de verdere tekst gebruiken we een compiler als voorbeeld. Het verhaal is analoog voor een interpreter. Door een compiler te gebruiken moet de programmeur de hardware niet meer grondig kennen. De taal die hij kan gebruiken leunt dichter aan bij onze leefwereld. De compiler is gemaakt voor een bepaald type computer. Op een PC moet een andere compiler gebruikt worden dan op een Mac, de taal kan volledig identiek blijven (de compiler is immers zelf een programma dat door de CPU uitgevoerd moet worden). De compiler moet ook rekening houden met eventuele andere software in het systeem. Als voorbeeld het assembly programma met daaronder het BASIC equivalent. ASSEMBLY : Adres code 0000 0002 0004 0006 0009 000B
74FF 2401 4003 020002 7400 020002
label
loop1:
loop:
mnemonic
operand
mov add jc ljmp mov ljmp
a,#0ffh a,#001h loop loop1 a,#000h loop1
BASIC : Lijnnummer 10 20 30 40 50
opdracht a = 255 a=a+1 if a = 256 goto 40 else 20 a=0 goto 20
Bij het programmeren in een hogere taal zal de compiler er ook op toezien dat je het systeem niet in gevaar brengt. Je moet dus braaf zijn of de vertaling wordt afgebroken. Programmeurs die systeemsoftware schrijven (XP, Windows) willen echter alle mogelijkheden open laten. Zij gebruiken daarom de C taal. Deze taal zit in het midden tussen assembly en een hogere taal. Het gevaar bestaat wel dat je brokken zal maken (systeem dat vastloopt). Er wordt van C ook wel eens gezegd dat de taal de programmeur genoeg touw geeft om zich op te hangen. Assembly laat de programmeur ook nog toe om het stoeltje weg te duwen.
Roggemans M.
Pagina 78
6-7-2014
7.4
Programmaverloop jump/call
Een belangrijk onderdeel van elke programmeertaal zijn de mogelijkheden om het programmaverloop te veranderen. We onderscheiden twee manieren om dat te doen. Je kan die manieren vergelijken met bungee springen (figuur 7.4.1).
De CALL
De JUMP
Figuur 7.4.1 Vergelijking tussen jump en call Het oproepen van een procedure (subroutine) gebeurt met een call functie. Het is de bedoeling dat het programma terugkeert naar de plaats waar de functie opgeroepen is. Bij de jump of sprong is het de bedoeling het programma elders verder te zetten. De PC (Program Counter of adresteller) is een register dat door de CPU gebruikt wordt om te onthouden waar hij in het geheugen instructies aan het uitvoeren is. Bij het resetten wordt deze teller met het startadres van het geheugen geladen (hier moet een programma staan!). De jump instructie zal de program counter laden met het geheugenadres van de volgende uit te voeren instructie (figuur 7.4.2).
Roggemans M.
Pagina 79
6-7-2014
1233
Bla bla bla
1234
Jump 2000
1235
2000
hier gaan we verder
Figuur 7.4.2 Werking van de jump instructie
1233
Bla bla bla
1234
Call 2000
1235
return adres voor call
1236
Call 2000
1237
return adres voor call
2000
hier gaan we verder
2xxx
return
3000
Return adres
stackpointer
Figuur 7.4.3 Werking van de call instructie
Roggemans M.
Pagina 80
6-7-2014
Bij de call zal er een mechanisme (elastiek) moeten bestaan zodat de CPU kan bepalen van waar het aanroepen van de procedure werd uitgevoerd. Om dit mogelijk te maken moet de RETURN instructie gebruikt worden, en zal een deel van het geheugen als STACK ruimte gebruikt worden (figuur 7.4.3). De STACKPOINTER is een register dat door de CPU gebruikt wordt om bij te houden waar de stack zich bevindt. Het opzetten van dit stack systeem moet in een lagere taal door de programmeur in het programma voorzien worden. Bij het doorgeven van parameters wordt dikwijls de stack gebruikt. Omdat met de stack heel voorzichtig moet omgesprongen worden, loopt het hier dikwijls mis in een programma. In onderstaand voorbeeld is er een stack voorzien vanaf 3000. De stackpointer wordt met deze waarde geladen. Bij een call wordt het return adres in de stack weggeschreven. Voor de eerste call zal dat 1235 zijn, voor de tweede call 1237. Na wegschrijven op het adres in de stackpointer van het return adres wordt de stackpointer aangepast. Het is dus mogelijk om subroutines te nesten. De return instructie leest het return adres van de stack en schrijft het in de program counter. Zo weet de CPU waar hij verder moet gaan.
7.5
Doorgeven van parameters
Bij het gebruik van functies (subroutines) zal in de meeste gevallen de functie een input en een output hebben. Stel dat je “HALLO!” op het scherm zal afdrukken dan heb je een print functie nodig. De input is de tekst “HALLO!”, de output zijn de karakters op het scherm. “Print HALLO!” zou de syntax kunnen zijn van het commando in de hogere programmeertaal. “HALLO!” is dan de parameter die aan de functie doorgegeven moeten worden. Er zijn verschillende manieren om een parameter door te geven: In de CPU registers. Elke CPU heeft een aantal inwendige geheugenplaatsen om berekeningen uit te voeren. Je kan met instructies de parameter(s) daar in laden. De functie kan dan zo geschreven zijn dat ze weet welke registers de parameter(s) bevatten. Helaas is het aantal registers in een CPU beperkt. Door de parameter(s) in geheugenplaatsen te stoppen en dan het startadres in een CPU register te laden. Door de parameter(s) op de stack te schrijven.
Roggemans M.
Pagina 81
6-7-2014
7.6
Interrupt routines
Figuur 7.6.1 Interrupt bij mensen
Een CPU voert instructies sequentieel uit. Elke instructie heeft een bepaalde uitvoeringstijd. Als een programma uit 1000 instructies bestaat, en elke instructie duurt 1 microseconde, dan zal de CPU 1 milliseconde nodig hebben om het programma uit te voeren. Als de CPU moet reageren op een extern signaal, dan zijn er twee manieren om dat op te vangen: Polling is een systeem waarbij er in het programma instructies zijn opgenomen die de betreffende input zullen opvragen en testen. Als gebeurtenissen zich na korte tijd herhalen, bestaat het gevaar dat de CPU nog niet opnieuw dat deel van het programma uitvoert dat de ingang test. Er kunnen dan gebeurtenissen verloren gaan. Interrupt is een systeem waarbij een hardware schakeling de CPU zal verwittigen dat de gebeurtenis heeft plaatsgehad, en dat bijhorende software moet uitgevoerd worden. De CPU start dan een interruptroutine op die de gebeurtenis zal verwerken. Je kan een interrupt het best vergelijken met een hardware geactiveerde call instructie. Op deze manier kan de CPU binnen de microseconde reageren op een gebeurtenis. Uiteindelijk zal dit systeem onze computer sneller maken. De CPU hoeft geen tijd meer te gebruiken om gebeurtenissen af te vragen.
Roggemans M.
Pagina 82
6-7-2014
Hoofdstuk 8 8.1
Massageheugens
Inleiding
Geheugen is een fundamenteel onderdeel van een computer. Hoe groter het geheugen, hoe meer informatie beschikbaar is in het apparaat. Hoeveel geheugen is veel? Deze vraag is erg tijdsgebonden. Mijn eerste computersysteem beschikte over 4000 bytes ROM, en 2000 bytes RAM. Nooit vol gekregen. Computers evolueren, net zoals de toepassingen waarvoor ze gebruikt worden. Door de evolutie in halfgeleider technologie kan voor dezelfde prijs steeds meer geheugen aangeboden worden. Helaas blijven halfgeleidergeheugens in prijs per bit relatief hoog. Daarom worden andere systemen gebruikt om bestanden op te slaan. Het gaat hier niet over werkgeheugen, maar opslagmedia voor informatie die beschikbaar moet zijn. In dit hoofdstuk beperken we ons tot magnetische en optische media. Flash geheugen wordt ook als massageheugen toegepast, maar de capaciteit blijft relatief beperkt. Het belangrijkste voordeel van massageheugen is de lage prijs per bit. Het belangrijkste nadeel is de snelheid waarmee de CPU informatie uit dit type geheugen kan opvragen. In dit hoofdstuk worden ook types van massageheugen behandeld die niet meer gebruikt worden. Dit doen we enkel om aan te tonen dat ook hier er een geleidelijke evolutie is geweest.
8.2
Floppy disk
De floppy disk werd in 1971 op de markt gebracht door IBM. Onder leiding van Alan Shugart werd de 8 duim floppy ontwikkeld om informatie te kunnen opladen op harddisk drives. Het kreeg de naam floppy omdat het een flexibel geheel was. De opslagcapaciteit bedroeg ongeveer 100000 bytes (0,1 Mega Byte). In 1976 Werd door Alan Shugart voor WANG een 5 ¼ duim uitvoering gemaakt voor een homecomputer van WANG. In 1981 introduceerde SONY de 3 ½ duim uitvoering (figuur 8,2,1). De capaciteit van de 8” drive werd nog opgevoerd tot 1.6 mega byte. Voor de 5.25“ drive is dat 1.2 mega byte en op de 3.5” drive kan 1.44 mega byte aan informatie opgeslagen worden. Een floppy is een kunststof film bedekt met een magnetische laag. Een lees/schrijf kop wordt gebruikt om magnetische informatie op te slaan en te lezen (figuur 8.2.2).
Roggemans M.
Pagina 83
6-7-2014
Figuur 8.2.1 Vergelijking tussen floppy diskettes
Figuur 8.2.2 Mechanische opbouw van een floppy drive De koppen komen in contact met het magnetische medium (figuur 8.2.3). Hierdoor moet de rotatiesnelheid laag blijven, en zal het medium verslijten. Het voordeel van deze constructie is dan weer dat stofdeeltjes de werking niet beïnvloeden.
Roggemans M.
Pagina 84
6-7-2014
Figuur 8.2.3 Lees/schrijf koppen op een floppy disk
In nieuwe computers wordt geen floppy meer gebruikt. Een flash stick (figuur 8.2.4) met een capaciteit van 1 Giga Byte vervangt dus 700 floppy’s.
Figuur 8.2.4 USB-stick
8.3
Harddisk
De harddisk is een verdere ontwikkeling van de Magnetic drum (figuur 8.3.1). Die werd in 1953 door IBM ontwikkeld en op de markt gebracht. Het toestel kan 2000 woorden aan informatie opslaan. In onderstaande figuren kan je de werking achterhalen.
Roggemans M.
Pagina 85
6-7-2014
Figuur 8.3.1 Magnetic drum
Roggemans M.
Pagina 86
6-7-2014
In 1956 komt brengt IBM een computer op de markt die 50 24” schijven gebruikt. De opslagcapaciteit is 5 mega byte (figuur 8.3.2).
Roggemans M.
Pagina 87
6-7-2014
Figuur 8.3.2 IBM computer met 5MB HD capaciteit
Figuur 8.3.3 Lees/schrijfkop per harde schijf Roggemans M.
Pagina 88
6-7-2014
Figuur 8.3.2 laat duidelijk zien dat er in de beginfase maar een set koppen gebruikt werd voor de vele schijven, wat de toegang traag maakt. In figuur 8.3.3 kan je zien dat er per schijf koppen gebruikt worden. Bij de harde schijf zweven de koppen boven het medium. In de eerste modellen werd er perslucht gebruikt om de kop te laten zweven. Bij latere modellen gaat de kop automatisch zweven boven de schijf (zoals een blad papier dat je boven een tafel beweegt). Figuur 8.3.4 laat de HDD zien zoals die vele jaren gebruikt werd.
Figuur 8.3.4 HD unit Het systeem van grote HD-units wordt nog steeds gebruikt voor bedrijven. In figuur 8.3.5 staat een moderne drive van HP met zijns specificaties afgebeeld.
Roggemans M.
Pagina 89
6-7-2014
Figuur 8.3.5 HP HD Roggemans M.
Pagina 90
6-7-2014
Na een verdere miniaturisatie krijg je de HDD zoals we die nu kennen (figuur 8.3.6).
Figuur 8.3.6 Moderne HD
Het werkingsprincipe wordt in figuur 8.3.7 verduidelijkt. Wanneer je het vergelijkt met de werking van de floppy, blijkt hoe gelijklopend beide principes zijn. Het belangrijkste verschil is dat de koppen de HD niet raken, bij de floppy is dat wel het geval. Hierdoor kan het medium sneller draaien, en is de data ook sneller toegankelijk. Bovendien is er geen slijtage, waardoor het medium langer meegaat. Door de geometrie van de koppen kleiner te maken kan er bovendien meer data op eenzelfde oppervlakte opgeslagen worden.
Figuur 8.3.7 Principiële werking HD
Roggemans M.
Pagina 91
6-7-2014
Figuur 8.3.8 geeft schematisch weer hoe de data op de schijf weggeschreven wordt:
Figuur 8.3.8 Verdeling van de HD in tracks en sectoren
Uiteindelijk zijn de verschillen tussen een harde schijf en een floppy fundamenteel miniem. Een harde schijf is wel veel gevoeliger voor mechanische trillingen. Hierdoor kan het luchtkussen tussen de schijf en de kop (figuur 8.3.9) verdwijnen met een crash voor gevolg.
Figuur 8.3.9 Luchtkussen tussen HD en lees/schrijf kop
8.4
Bandgeheugen
Bandgeheugen kan je best vergelijken met een floppy. Er is een flexibele drager waarop een magnetiseerbaar materiaal is aangebracht. Figuur 8.4.1 laat een wat ouder model zien. De technologie wordt nog altijd aangeboden (figuur 8.4.2).
Roggemans M.
Pagina 92
6-7-2014
Figuur 8.4.1 Tape memory
Figuur 8.4.2 HP tape memory
Roggemans M.
Pagina 93
6-7-2014
8.5
CD
In de jaren 196x kwam James Russel op het idee om muziek op te slaan en weer te geven met behulp van licht. In 1970 had hij een patent klaar voor een toestel dat met optische schijven werkte. In 1985 had hij reeds 26 patenten met betrekking tot CDROM technologie. Aanvankelijk bleken weinig bedrijven interesse te tonen in zijn ontwerp. Vanaf 1982 Zijn Philips en SONY de grote ontwikkelaars van apparatuur. Figuur 8.5.1 laat de principiële werking zien. Een meer gedetailleerde werking zie je in figuur 8.5.2. Figuur 8.5.3 laat zien hoe de data op de CD opgeslagen wordt.
Figuur 8.5.1 Optisch systeem CD
Roggemans M.
Pagina 94
6-7-2014
Figuur 8.5.2 detail optisch systeem CD
Figuur 8.5.3 Data op een CD
Roggemans M.
Pagina 95
6-7-2014
Figuur 8.5.4 geeft de relatie tussen digitale informatie en het putjespatroon.
Figuur 8.5.4 Relatie tussen data en optisch patroon Putjes en land (geen putje) geven een andere lichtintensiteit (figuur 8.5.5).
Figuur 8.5.5 Relatie lichtintensiteit en pit/land verhouding
Roggemans M.
Pagina 96
6-7-2014
Ten slotte nog even het inwendige van een drive in figuur 8.5.6.
Figuur 8.5.6 Inwendige van een CD drive Vanaf 1988 wordt er werk gemaakt van schrijfbare CD’s (figuur 8.5.7).
Figuur 8.5.7 RW CD’s Roggemans M.
Pagina 97
6-7-2014
Het (her)schrijven van de CD kan alleen wanneer de laser op twee vermogens gebruikt kan worden. Voor het schrijven (wissen) is een hoger vermogen nodig. De CD wordt niet verdeeld in sectoren en tracks zoals bij de HD, maar als een spiraal. De spiraal maakt ongeveer 20000 omwentelingen en heeft een totale lengte van 4,5 km.
8.6
DVD
De DVD verschijnt in 1996 op de markt. De technologie verloopt analoog aan die van de CD. De golflengte van de laser verkleint, zodat de geometrie van de “putjes” en de afstanden tussen de sporen kleiner worden. Informatie wordt ook op twee diepten aangebracht (zelfs dubbelzijdig) waardoor de totale capaciteit toeneemt.
De volgende stap is het gebruik van blauwe lasers. Hierdoor neemt de capaciteit verder toe (27 giga byte per laag).
Roggemans M.
Pagina 98
6-7-2014
Hoofdstuk 9 9.1
Communicatie
Inleiding
In dit hoofdstuk komt de communicatie tussen computers onderling of hun randapparaten aan bod. Aangezien randapparaten ook een vorm van computer bevatten, gaat het steeds over inter-computer communicatie (communicatie tussen computers). Die communicatie beperkt zich niet alleen tot data (zoals bij het surfen op het internet), maar kan ook betrekking hebben op multi-processing, waarbij meerdere computers samen een probleem oplossen. Dit hoofdstuk zal zich beperken tot enkele fundamentele begrippen met betrekking tot datacommunicatie. (Meestal is
Roggemans M.
Pagina 99
6-7-2014
het eenvoudiger om met meerdere computers 1 probleem op te lossen, dan met 1 computer meerdere problemen).
9.2
Parallelle communicatie
Deze vorm van communicatie is het logische gevolg van de PIO mogelijkheden van een computer. Over 8 draden zal informatie uitgewisseld worden. Omdat er synchronisatie tussen de twee apparaten noodzakelijk is, worden handshake lijnen voorzien (figuur 9.2.1). Hierdoor zullen er minimaal 10 (8+2) draden gebruikt worden. Tenslotte is er een massadraad nodig als spanningsreferentie.
Figuur 9.2.1 Handshake signalen bij PIO Wil men over dezelfde draden in twee richtingen communiceren, dan zullen meer handshake signalen nodig zijn. Deze vorm van communicatie heeft dezelfde nadelen als de PIO: beperking in afstand, dikke kabels, grote connectoren. Deze communicatie zal meestal TTL specificaties gebruiken (figuur 9.2.2). Door de beperkte ruisniveau’s kan het vlug mislopen.
Figuur 9.2.2 TTL specificaties voor signalen
Roggemans M.
Pagina 100
6-7-2014
Daarnaast zijn er ook de capacitieve, resistieve en inductieve effecten van de geleiders (figuur 9.2.3).
Figuur 9.2.3 RLC gedrag geleiders De elektrische karakteristieken van geleiders zijn verantwoordelijk voor het vervormen van de signalen die overgedragen worden. Je kan hieraan verhelpen door de signalen zelf aan te passen (hogere spanningen gebruiken, stroom sturen i.p.v. spanning, modulatietechnieken). Op parallelle communicatie wordt dat niet toegepast omdat dit per geleider zou moeten gebeuren, wat opnieuw (gelet op het grote aantal geleiders) geen goede zaak zou zijn.
9.3
Seriële communicatie
Figuur 9.3.1 Parallelle en seriële communicatie
Roggemans M.
Pagina 101
6-7-2014
Zoals bij seriële I/O reeds vermeld, zijn er verschillende voordelen verbonden aan seriële communicatie. Je merkt dadelijk dat het aantal geleiders vermindert (figuur 9.3.1), er kan dus een eenvoudigere connector gebruikt worden. Bovendien wordt seriële communicatie over grotere afstanden gebruikt dan parallelle communicatie. Dit wordt mogelijk gemaakt door het gebruik van “level shifters” en/of modulatietechnieken. Het signaal wordt niet op TTL niveau verzonden. Hieronder worden enkele veel gebruikte interfaces besproken. RS232:
Door het gebruik van grotere spanningen kunnen grotere afstanden overbrugd worden. (15m theoretisch) RS485:
Roggemans M.
Pagina 102
6-7-2014
Hier wordt gewerkt met 0 en 5 volt signalen, maar volgens een differentieel signaal. Uiteindelijk wordt er gereageerd op een spanningsverschil tussen de A en B lijn van 100 millivolt. De drivers kunnen meer stroom leveren dan TTL chips, zodat de capacitieve effecten onder controle blijven. (Bruikbaar tot 1000m, afhankelijk van de snelheid, zie figuur 9.3.2)
Figuur 9.3.2 How fast, how far?
Optisch:
Roggemans M.
Pagina 103
6-7-2014
Bovenstaande figuur geeft weer hoe optische communicatie uitgevoerd kan worden. Een afstandsbediening van een TV werkt gelijkaardig. Om een grotere afstand te kunnen overbruggen wordt een glasvezel tussen zender en ontvanger aangebracht.
Glasvezel heeft tal van voordelen t.o.v. elektrische systemen: Geen elektromagnetische uitstraling Niet gevoelig voor elektromagnetische straling Heel hoge communicatiesnelheden Niet gevoelig aan corrosie Grote afstanden overbrugbaar … Als belangrijkste nadeel is er de prijs.
Modems:
Er bestaan verschillende soorten modems: ADSL, kabel modems, voice band modems, … . Een MOdulator DEModulator zal digitale signalen omzetten naar analoge om ze over een analoog medium te kunnen transporteren. Bij ontvangst worden de analoge signalen terug omgezet naar digitale waarden (figuur 9.3.3).
Roggemans M.
Pagina 104
6-7-2014
Figuur 9.3.3 Toepassing van een modem
Afhankelijk van de beschikbare analoge bandbreedte kunnen hogere transfersnelheden gehaald worden. Bij een telefoonmodem is de bandbreedte tussen 300 en 3400 Hz, voor een ADSL modem wordt dat 1MHz.
Andere: Bovenstaande opsommingen zijn maar een beperkte greep uit de mogelijkheden om signalen te transporteren. Je kan ook met stroom werken i.p.v. spanning. Maar ook draadloos behoort tot de mogelijkheden. De US navy gebruikt zelfs een akoestisch systeem. Automotive toepassingen vragen dan weer een robuust systeem. Daar zal je o.a. CAN en LIN terugvinden.
9.3.1 Synchrone seriële communicatie
Bij synchrone seriële communicatie zal samen met de data een kloksignaal verzonden worden (figuur 9.3.1.1). Hierdoor kan de ontvanger bepalen waar de bits zich in het signaal bevinden. In figuur 9.3.1.1 worden klok en data via aparte geleiders verzonden.
Dit zal in de meeste gevallen niet via een aparte draad gebeuren, maar beide zullen gemengd worden tot een nieuw signaal (figuur 9.3.1.2).
Roggemans M.
Pagina 105
6-7-2014
Figuur 9.3.1.1 Synchrone seriële communicatie
Figuur 9.3.1.2 Combinatie klok en data bij HD dataopslag
Roggemans M.
Pagina 106
6-7-2014
Het grote voordeel van synchrone communicatie is de hogere communicatiesnelheid die gehaald kan worden. Het nadeel is complexe elektronica om klok en data uit elkaar te halen. Synchrone communicatie wordt o.a. gebruikt voor internet verbindingen.
9.3.2 Asynchrone seriële communicatie
Asynchrone communicatie vindt zijn oorsprong in elektromechanische dataoverdracht. Rond 1900 was er een tekort aan goede telegrafisten. Verschillende ontwerpers gingen op zoek naar een toestel dat eenvoudig te bedienen was (zoals een schrijfmachine), en zelf de codering voor zijn rekening nam. Aan de andere kant moest een gelijkaardig toestel de codes opnieuw omzetten naar leesbare symbolen. In figuur 9.3.2.1 staat een toestel van 1915. Deze toestellen gebruikten asynchrone dataoverdracht. Het signaal bevat geen klokinformatie. Elke bit wordt een vaste tijd op de lijn geplaatst. Om aan te geven waar de informatie start wordt een startbit toegevoegd. Een stopbit moet vermijden dat de startbit niet gezien wordt. (De lijn moet na elke “byte” terug in rust komen.)
Figuur 9.3.2.1 Primitieve teletype
Binnen elke bit wordt nagegaan wat het niveau ervan is. Als de snelheid van de zender en ontvanger afwijken kan de overdracht falen (figuur 9.3.2.2)
Roggemans M.
Pagina 107
6-7-2014
Figuur 9.3.2.2 Zender en ontvanger lopen niet synchroon
Bij hoge transfersnelheden zal het minste verschil op de aan beide zijden ingestelde bittijd fouten veroorzaken. 110 bits per seconde was een gebruikelijke snelheid. Door deze signalen elektronisch te verzenden en te ontvangen kan nu 115000 bits per seconde gehaald worden. De communicatiesnelheid wordt uitgedrukt in baud (bits per seconde). Door de eenvoud van de hardware zijn zowat alle computersystemen met dit type communicatie. Bij een PC is dat de COM poort.
9.4
Aard van de verbinding
Afhankelijk hoe we computers met elkaar verbinden krijgen we een andere topologie. Ongeacht de topologie kan een verbinding simplex, half duplex of full duplex verlopen.
9.4.1
Simplex
Bij simplex communicatie verloopt de gegevensoverdracht uitsluitend in een richting. Dit is bvb. het geval bij de afstandsbediening van een TV toestel.
Roggemans M.
Pagina 108
6-7-2014
9.4.2
Half duplex
Als er om beurten communicatie mogelijk is in beide richtingen omschrijven we de verbinding als half duplex. Dit is bvb. gebruikelijk bij een radioverbinding.
9.4.3
Full Duplex
Bij een full duplex verbinding is er communicatie mogelijk in beide richtingen gelijktijdig. Wanneer twee personen met elkaar praten, kan dat full duplex verlopen (of dat zinvol is?).
9.5
Topologieën
Topologieën omschrijven hoe computers met elkaar verbonden kunnen worden. De verbindingen kunnen in sommige gevallen simplex, half duplex of full duplex verlopen. Dat is in grote mate afhankelijk van het communicatie medium. De verbindingen die in de verschillende topologieën worden gebruikt kunnen van uiteenlopende aard zijn: koperdraad, glasvezel, draadloos. Afhankelijk van de topologie worden dan ook gepaste modems of level shifters gebruikt.
9.5.1
Punt tot punt
Dit is de eenvoudigste verbinding. Ze zal twee computers met elkaar verbinden. Roggemans M.
Pagina 109
6-7-2014
Deze verbinding is eenvoudig te beheren. De communicatie protocols blijven dan ook relatief eenvoudig. Het is immers altijd duidelijk wie met wie wil communiceren. Alleen wanneer de verbinding half duplex verloopt kunnen er problemen ontstaan wanneer de twee toestellen gelijktijdig met elkaar willen communiceren. Vb: COM poort van een PC
9.5.2
Bus
Bij een busverbinding worden verschillende computers via hetzelfde medium met elkaar verbonden. Dit geeft een eenvoudige bekabeling, maar het communicatieprotocol zal complexer worden (botsingen in het dataverkeer worden mogelijk). Bovendien is dit systeem kwetsbaar (mechanisch), en mogelijk ook niet erg veilig naar onrechtmatig gebruik van data. Door gebruik te maken van routers of switches kan je een bus netwerk opsplitsen in gescheiden delen (figuur 9.5.2.1 en figuur 9.5.2.2).
Figuur 9.5.2.1 Bus netwerk
Roggemans M.
Pagina 110
6-7-2014
Figuur 9.5.2.2 Bus netwerk in de praktijk 9.5.3
Ster
Bij de ster topologie wordt een centrale node gebruikt. Alle computers maken een punt tot punt verbinding met die centrale node. De verbindingen tussen de centrale node en de deelstations verloopt volgens een punt tot punt verbinding.
Roggemans M.
Pagina 111
6-7-2014
9.5.4
Ring
Bij een ringtopologie wordt de informatie in een vaste richting doorgegeven. Meestal wordt een redundante tweede verbinding in de andere richting aangebracht (figuur 9.5.4.1). Wanneer een verbinding uitvalt (mechanische beschadiging), neemt de andere verbinding over.
Figuur 9.5.4.1 Redundante ringverbinding 9.5.5
Web
Roggemans M.
Pagina 112
6-7-2014
Een web topologie geeft de hoogste graad van betrouwbaarheid. Vooral telefoonnetwerken en het www gebruiken dit systeem. Alle deelnemers in het netwerk worden met meerdere deelnemers verbonden. Wanneer een verbinding uitvalt kan er altijd een alternatief pad uitgewerkt worden om twee willekeurige deelnemers met elkaar te verbinden.
9.5.6
Boom
Bovenstaande figuur laat een boomtopologie zien. Dit wordt o.a. gebruikt bij een USB verbinding. (Universele Seriële Bus).
9.6
Protocol
Een protocol is een lijst van afspraken die communicatie tussen twee of meer deelnemers mogelijk maakt. Die lijst van afspraken moet alle onderdelen van de communicatie behandelen, vanaf het fysische communicatiemedium tot en met de toepassing. Pas dan zal er gegarandeerd communicatie mogelijk zijn. Protocols vormen een complex geheel en maken geen expliciet deel uit van deze cursus. Figuur 9.6.1 geeft het lagensysteem weer dat de verschillende activiteiten tijdens de communicatie beschrijft. Figuur 9.6.2 is een praktisch voorbeeld hiervan.
Roggemans M.
Pagina 113
6-7-2014
Figuur 9.6.1 OSI (Open Systems Interconnection) lagen model communicatie
Roggemans M.
Pagina 114
6-7-2014
Figuur 9.6.2 Praktisch voorbeeld lagen model
9.7
Voorbeelden
In de volgende paragrafen geven we summier enkele toepassingen van communicatie. Hier ook een foto waarop de stekkers staan.
9.7.1
LPT poort
De LPT poort van een computer is een parallelle communicatie poort. Origineel enkel bedoelt om een printer aan te sturen. Later kon er informatie in twee richtingen verstuurd worden. Het was vooral de bedoeling om snel data tussen twee apparaten over te dragen. In figuur 9.7.1.1 wordt de gebruikte connector en signalen weergegeven.
Roggemans M.
Pagina 115
6-7-2014
Figuur 9.7.1.1 LPT poort PC
9.7.2
COM poort
De COM poort laat toe om een asynchrone seriële verbinding te maken met RS232 level shifters. Helaas hebben de meeste laptops deze verbinding niet meer. Je kan ze wel via een USB naar serieel adapter verkrijgen. Heel wat industriële toepassingen maken van deze verbinding gebruik. Figuur 9.7.2.1 geeft de functie van de klemmen van een DB9 connector weer.
Figuur 9.7.2.1 DB9 COM aansluitingen
Roggemans M.
Pagina 116
6-7-2014
9.7.3
USB
USB werd ontworpen door een consortium van verschillende bedrijven. Het was de bedoeling om een standaard communicatiesysteem te bekomen tussen een computer en zijn randapparatuur. Pas nadat de bestuurssystemen USB zijn gaan ondersteunen is het medium populair geworden. USB is geen bussysteem zoals de naam laat vermoeden, maar een boomstructuur. Het protocol om het geheel te besturen is niet bepaald eenvoudig ( www.usb.org/developers/docs/ ). In figuur 9.7.3.1 staan de aansluitingen en hun functie weergegeven.
Pin 1 2 3 4
Signal VCC – Data +Data Ground
Definition Cable power N/A N/A Cable ground
Figuur 9.7.3.1 USB aansluitingsgegevens Er bestaan verschillende standaarden voor USB verbindingen. Er is vooral een groot verschil in transfersnelheid. Bij het maken van de connectie wordt altijd de hoogst mogelijke communicatiesnelheid gebruikt.
9.7.4
Ethernet
Via de ethernet stekker kan een computer verbonden worden met andere computers. De ethernet verbinding is een bussysteem. Ethernet verbindingen bestaan er in verschillende snelheden. Omdat met ethernet grote afstanden overbrugd kunnen worden, is het medium bij uitstek om een netwerk op te zetten. Eigenlijk is het www een grote bus. Om te vermijden dat over die ene bus alle communicatie verloopt, wordt ze onderverdeeld in segmenten.
Roggemans M.
Pagina 117
6-7-2014
9.7.5
WiFi
Dit systeem laat toe om draadloos een netwerk op te zetten tussen computers. Aangezien het een draadloos medium is, moet de gebruiker aandacht schenken aan de veiligheid. Dit kan je door de data te versleutelen.
Roggemans M.
Pagina 118
6-7-2014
Hoofdstuk 10
Besturingssystemen
10.1 Inleiding Na het inschakelen van de voedingsspanning zal een computer instructies uitvoeren. Er moet dan ook steeds een programma aanwezig zijn in het geheugen. Is dat niet het geval, dan zal de computer, hoe dan ook, de inhoud van geheugenplaatsen lezen en de zinloze codes als programma uitvoeren. Computersystemen zullen dus altijd een minimale hoeveelheid software moeten bevatten die bij het opstarten uitgevoerd wordt. Daarna zijn er twee mogelijkheden: De computer start een operating system op: Dit systeem ken je van de PC. Op het moederbord zit een minimale hoeveelheid software die na het inschakelen van de spanning de computer laat booten (=opstarten (de software is de BIOS)). Die software is verantwoordelijk voor het zoeken naar een ander programma (het operating system (zeg maar Windows)) dat er zal voor zorgen dat de computer door de gebruiker bediend kan worden. Als je niets doet zal de computer als het ware blijven wachten tot de gebruiker een programma opstart. Start een programma automatisch, dan zal de gebruiker door een aantal manipulaties toch de controle over de computer kunnen verwerven. De computer start een gebruikersprogramma op: In dit geval wordt automatisch een toepassing opgestart na het inschakelen van de spanning. De minimale hoeveelheid software die nodig is bij het opstarten kan in de applicatie verwerkt zitten. Zowat alle kleine embedded applications werken op deze manier. Bij een embedded applicatie zal de software (firmware) zelden aangepast worden. Het is duidelijk dat er op de markt een grote verscheidenheid aanwezig is aan operating systemen zoals o.a. LINUX, UNIX en verschillende RTOS. Ook een GSM bevat een OS.
10.2 BIOS of monitor Een monitor, een bios of een kernel zijn minimale programma’s die in ROM aanwezig zijn in de computer. Na het inschakelen van de voedingsspanning wordt dit programma opgestart. In de meeste gevallen zal het een aantal elementaire initialisaties doorvoeren (stack, communicatie met de buitenwereld, initialisatie noodzakelijke hardware). Daarna laat het via een console (scherm en klavier) de gebruiker toe om de computer te bedienen of start het een ander programma op
Roggemans M.
Pagina 119
6-7-2014
(eventueel operating system of een applicatie). Omdat die opstartsoftware eigen is aan de hardware (zit in ROM op het moederbord), moet de programmeur ervan die hardware grondig kennen. Hij zal dan meestal ook routines aanbieden voor het gebruik van de standaard I/O op het moederbord. Een gebruiker van de computer hoeft die hardware niet grondig te kennen, hij moet zich enkel zorgen maken over de functie die hij wil uitvoeren.
10.3 DOS DOS (Disk Operating System) voor 8086 is geschreven door Tim Patterson in 1980. De rechten van DOS werden door Microsoft gekocht voor minder dan $100000 in 1980. In 1981 komt de software op de markt als MS-DOS. Vanaf 1988 wordt MSDOS 4 op de markt gebracht, met de mogelijkheid om een grafische muis te gebruiken. In 1995 wordt MS-DOS 7 op de markt gebracht, het is dan een onderdeel van WINDOWS 95 dat in hetzelfde jaar beschikbaar wordt. Dit betekent het einde van MS-DOS voor PC. DOS is een command line operating system (figuur 10.3.1). De gebruiker moet na een prompt zijn bevel ingeven. Er kan maar 1 programma actief zijn op de PC. Het OS kan wel in de achtergrond taken blijven uitvoeren. Alhoewel het niet meer gebruikt wordt op PC’s blijven afgietsels ervan opduiken in kleine 80x86 systemen.
Figuur 10.3.1 Promt command line DOS
10.4 Windows Windows 1 verscheen op de markt in 1985. Omdat er niet veel toepassingen beschikbaar waren, kende het geen groot succes. In 1987 komt Windows 2 op de markt. In 1990 komt na een grondige opkuis Windows 3 in de winkels. Deze versie kon programma’s laten lopen boven het 640kbyte geheugen van de PC. Van deze uitvoering werden 10000000 exemplaren op de markt gebracht. Vanaf 2001 verschijnen de XP uitvoeringen van Windows. Windows is een grafisch systeem dat meerdere programma’s en gebruikers toelaat op een systeem. Het OS maakt gebruik van de beschikbare hardware in de PC om memory management toe te passen. Het gebruikt ook de system en user modes van de CPU. Helaas vraagt de grafische omgeving veel van het systeem, waardoor de
Roggemans M.
Pagina 120
6-7-2014
snelheid van de CPU niet steeds tot zijn recht komt in een applicatie. XP en NT controleren ook strak de toegang naar de I/O van de computer. De latere versies (VISTA en WINDOWS 7) bestaan in 32 bit en 64 bit uitvoeringen. Niet alle oude software draait onder beide versies. Voor de gebruiker is het voornaamste verschil het maximale RAM geheugen dat gebruikt kan worden (32 bit = 4 Gbyte, 64 bit = 18446744073 Gbyte).
Roggemans M.
Pagina 121
6-7-2014
Hoofdstuk 11
Systeemprestaties
11.1 Inleiding Heel dikwijls worden computers met elkaar vergeleken op basis van hun performantie. De vraag is alleen welke performantie? Is de snelheid waarmee instructies verwerkt worden belangrijk? De capaciteit van het geheugen? . Laten we even een tractor vergelijken met een Porsche (figuur 11.1.1).
Figuur 11.1.1 Maak uw keuze!
Voor een snelheidsrace lijkt de Porsche de ideale keuze, maar om een veld te ploegen helemaal niet (tenzij er maar 1 geul gemaakt moet worden). Wil je liever een Porsche met een 2PK (figuur 11.1.2) vergelijken?
Figuur 11.1.2 2PK van CITROEN
Roggemans M.
Pagina 122
6-7-2014
Als het op zuinigheid, laag gewicht en lage aankoopprijs gaat, is de keuze evident. De samenstelling van een computer kan gericht zijn op verschillende doelstellingen. Je zou willen dat hij piepklein is, geen stroom verbruikt, bijna gratis is, super snel kan rekenen en een gigantisch geheugen heeft. Dat zijn in de meeste gevallen tegenstrijdige doelstellingen. Er zijn zelfs heel veel toepassingen waar er bijna geen behoefte is aan geheugen en rekensnelheid. Denk maar aan een digitaal uurwerk. In de volgende paragrafen overlopen we de factoren die de systeemperformantie gaan beïnvloeden.
11.2 Kloksnelheid De kloksnelheid van een computer is evenredig met de uitvoeringssnelheid (aantal instructies per seconde dat de CPU uitvoerd). Wil je de rekensnelheid opvoeren, dan kan dat als de klok een hogere frequentie heeft. De maximale werkfrequentie is echter afhankelijk van de inwendige opbouw van de CPU. Waar dat in 1980 rond de 1MHZ was, zijn we nu bij 4000MHz. Dit is enkel mogelijk door een kleinere geometrie van de componenten. Niet alleen de CPU zal de maximale snelheid bepalen. Ook de andere componenten moeten een voldoende lage propagation delay hebben en een korte acces tijd. Het verhogen van de klok kan alleen wanneer alle componenten voldoende snel zijn. Het verhogen van de klok brengt mee dat er sneller geschakeld wordt. Hierdoor zal het stroomverbruik toenemen, en dus ook de warmte dissipatie. Wanneer een toepassing batterijspanning gebruikt willen we het stroomverbruik laten dalen. Dat kan door de kloksnelheid te verlagen. In een laptop zal de werksnelheid van de CPU aangepast worden aan de gevraagde rekenkracht. Op die manier tracht de fabrikant de levensduur van de batterij te verlengen. Je kan dit merken aan het toerental van de ventilator. Die moet de gedissipeerde warmte afvoeren. Hoe hoger de snelheid, hoe hoger het stroomverbruik, hoe sneller de ventilator moet draaien. Figuur 11.2.1 geeft het stroomverbruik (in Ampere) van een P4 CPU in functie van de CPU klok.
Figuur 11.2.1 Stroomverbruik (in Ampere) in functie van kloksnelheid CPU PC
Roggemans M.
Pagina 123
6-7-2014
Figuur 11.2.2 geeft het stroomverbruik t.o.v. de werkfrequentie voor een single chip computer.
Figuur 11.2.2 Stroomverbruik (in mA) in functie van kloksnelheid CPU microcontroller
11.3 Cache De snelheid van de CPU en het geheugen zouden van dezelfde orde moeten zijn. Als het geheugen sneller is, dan heb je te veel betaald voor het geheugen (prijs is afhankelijk van de snelheid). Als de CPU sneller is, dan moeten wait states gebruikt worden. Een wait state is een actie waarbij de CPU opzettelijk vertraagd wordt. De klok wordt als het ware tijdelijk lager gezet. In een PC is de CPU veel sneller dan OFF chip memory. Hierdoor zou er dus permanent met een lagere kloksnelheid gewerkt worden. Figuur 11.3.1 geeft het principe van cache weer in een PC. In de CPU wordt een klein geheugen ingebouwd met dezelfde snelheid als de CPU. De processor kan daaruit tegen maximale snelheid informatie ophalen en instructies uitvoeren. De capaciteit is mega bytes groot (tussen 8 en 64). De hoeveelheid is beperkt door het maximale aantal transistoren dat on chip kan zitten. De L2 cache is groter maar zal trager zijn. Het uiteindelijke geheugen (zeg maar de RAM) is giga bytes groot, maar veel trager. Tenslotte zien we dat de harde schijf nog groter, maar ook nog trager is. Figuur 11.3.2 geeft de structuur van een PC weer met de verschillende bussen en hun toepassingen.
Roggemans M.
Pagina 124
6-7-2014
Figuur 11.3.1 Cache memory in een PC
Figuur 11.3.2 PC met verschillende bussen
Roggemans M.
Pagina 125
6-7-2014
Je kan besluiten dat het opvoeren van de kloksnelheid niet noodzakelijk een evenredige stijging in performantie voor gevolg heeft. Door verschillende deelsystemen te gebruiken die elk op hun maximale snelheid draaien kan je wel optimaliseren. Het is duidelijk dat wanneer de data in vb. L1 cache aangepast moet worden, het systeem tijdens die aanpassing op de snelheid van L2 cache, RAM of harde schijf zal werken. De snelheid van het systeem zal dus in grot mate afhangen van de applicatie die uitgevoerd wordt.
11.4 Pipelining Een CPU doorloopt een vaste cyclus bij het uitvoeren van een instructie. Eerst moet de instructie uit het geheugen gelezen worden (fetch). Daarna moet de instructie gedecodeerd worden (uitzoeken wat er moet gebeuren) (decode). Uiteindelijk moet de instructie uitgevoerd worden (execute) (figuur 11.4.1).
Figuur 11.4.1 Onderdelen CPU De uitkomst van de bewerking wordt ook terug naar het geheugen geschreven. Voor al die transacties worden de bussen gebruikt. Door de bussen optimaal te gebruiken kan de snelheid van het systeem opgevoerd worden. Zo kan terwijl de CPU inwendig een instructie decodeert (en de bussen niet gebruikt worden), reeds een volgende instructie gelezen worden. Hierdoor worden de bussen, maar ook de andere onderdelen in de CPU optimaler gebruikt (figuur 11.4.2). Dit gaat ook op voor het uitvoeren van berekeningen etc. Deze structuur is echter niet zonder gevaar. Het is best mogelijk dat een instructie de uitkomst nodig heeft van de vorige, en die is dan nog niet beschikbaar. De programmeur, of de compiler zal hier rekening mee moeten houden. Ook bij spronginstructies gaat het voordeel van een pipeline verloren.
Roggemans M.
Pagina 126
6-7-2014
Figuur 11.4.2 Pipelining vergeleken met sequentiële uitvoering Volgens de figuur 11.4.2 is de snelheid van het systeem een factor 5 sneller geworden. Dit is echter alleen het geval wanneer er geen wijziging is in programmaverloop (opnieuw vullen van de pipeline) of wanneer de opeenvolgende instructies niet dezelfde data wijzigen.
11.5 FPU Figuur 11.5.1 is het blokschema van een P4 CPU. Door meerdere rekeneenheden in de CPU in te bouwen kan de snelheid opgevoerd worden. Een FPU (Floating Point Unit) Is een hardware schakeling om berekeningen uit te voeren op getallen in exponentiele notatie. Omdat de berekeningen in hardware uitgevoerd worden, bespaar je de instructies die anders nodig zijn om de berekening uit te voeren. Als de CPU niet kan vermenigvuldigen, dan moet die instructie vervangen worden door een reeks van optellingen, wat natuurlijk meer tijd in beslag zal nemen. Omdat een berekening met een FPU (zelfs in hardware) wel wat tijd nodig heeft om een berekening uit te voeren worden verschillende rekeneenheden ingebouwd. Afhankelijk van de aard van de berekening wordt de Integer Unit gebruikt of de FPU. Door meerdere van deze units in te bouwen kunnen berekeningen parallel uitgevoerd worden. Dit is wat vergelijkbaar met de pipelining van vorige paragraaf. Ook hier mag de ene berekening niet het resultaat van een simultaan uitgevoerde berekening nodig hebben.
Roggemans M.
Pagina 127
6-7-2014
Figuur 11.5.1 Functieblokken in een P4 CPU
11.6 RISC & CISC Figuur 11.6.1 geeft de verschillen weer tussen RISC (Reduced Instruction Set Computer) en CISC (Complex Instruction Set Computer).
Roggemans M.
Pagina 128
6-7-2014
Figuur 11.6.1 Vergelijking RISC en CISC CPU’s
De CISC processor was er eerst. In 1974 bedacht John Cocke van IBM dat maar 20 % van de CPU instructies gebruikt werden. Door de andere 80% niet te implementeren kon het aantal transistoren in de chip omlaag, en dus ook de kostprijs. Door een eenvoudigere structuur kan de decodering van de instructies ook sneller gebeuren. Het nadeel is wel (zie vorige paragraaf) dat er meer RISC instructies nodig zijn om de CISC equivalenten uit te voeren. Vandaag is blijkbaar de prijs van de CPU bepalend voor de keuze. Op gebied van performantie raken voor en tegenstanders het niet echt eens. Een bijkomend voordeel van een RISC is lagere stroomverbruik. Voor veel embedded applicaties wordt dan ook een RISC systeem gebruikt (ARM7, CORTEX).
Roggemans M.
Pagina 129
6-7-2014
11.7 Hyperthreading Niet alle onderdelen in een CPU worden permanent gebruikt. Je kan meerdere programma’s zodanig gaan opsplitsen en samenvoegen dat de CPU optimaal gebruikt wordt (figuur 11.7.1).
Figuur 11.7.1 Hyperthreading Superscalar: de CPU beschikt over meerdere rekenunits. Het programma kan dus opgesplitst worden in onderdelen die simultaan door de CPU uitgevoerd kunnen worden (de sofware moet dit toelaten) Multiprocessing: 2 CPU’s voeren 2 programma’s uit. De CPU’s zijn van het superscalar type. Hyperthreading: 1 CPU voert 2 programma’s uit. De twee programma’s gebruiken optimaal de functionele onderdelen van de CPU Multiprocessing & hyperthreading: Er lopen nu 4 programma’s op 2 CPU’s. Zou er 1 CPU gebruikt worden met maar 1 rekeneenheid, dan zou die er t.o.v. de superscalar uit de eerste kolom van figuur 11.7.1 ongeveer 3 keer langer over doen om hetzelfde programma uit te voeren (heeft maar 1 unit i.p.v. 3) De echte tijdswinst kan dus niet objectief bepaald worden, maar is afhankelijk van de applicatie!!
Roggemans M.
Pagina 130
6-7-2014
11.8 Multi processor Uit de figuur 11.7.1 kan je aflijden dat de samenwerking tussen meerdere processoren duidelijk tijdswinst kan opleveren. Processoren die over communicatie poorten beschikken om dit te realiseren worden ook wel transputers genoemd (figuur 11.8.1).
Figuur 11.8.1 Transputer Om multi-processing te gebruiken kan het ook zijn dat de verschillende CPU’s een gemeenschappelijk geheugen gebruiken. Sommige grafische kaarten van PC’s gebruiken samen met de CPU een gemeenschappelijk deel van het RAM geheugen. Langs deze weg wisselen ze met elkaar gegevens uit.
Roggemans M.
Pagina 131
6-7-2014
Hoofdstuk 12
Standaard I/O componenten
12.1 Inleiding Een computer is meer dan alleen een CPU en wat geheugen. Heel wat componenten en randapparaten vormen de computer. Door standaarden af te spreken kan je componenten gebruiken van verschillende fabrikanten. Hierdoor ontstaat er ook concurrentie met lage prijzen tot gevolg. Niet alle componenten zullen hier besproken worden. We beperken ons tot enkele algemene principes en toepassingen.
12.2 Muis In 1983 brengt microsoft zijn eerste muis op de markt voor de luttele prijs van $195. In figuur 12.2.1 is de opbouw van de originele muis te zien.
Figuur 12.2.1.a Originele muis
roggemans marc
Pagina 132
6-7-2014
Figuur 12.2.1.b Originele muis
Door de stalen kogel en de optische sluizen te vervangen door een camera en een DSP processor bekom je een optische muis (figuur 12.2.2).
Roggemans M.
Pagina 133
6-7-2014
Figuur 12.2.2 Optische muis
In onderstaande tabellen is opgenomen hoe de data er uit ziet die door de muis verzonden wordt (LB=left button, RB=right button, X en Y slaat op de verplaatsing in die richting)
1. 2. 3.
D7
D6
X X X
1 0 0
D5 LB X5 Y5
D4 RB X4 Y4
D3 Y7 X3 Y3
D2 Y6 X2 Y2
D1 X7 X1 Y1
D0 X6 X0 Y0
Een optische muis bevat minimaal 1 microcontroller, en is dus een autonomm computersysteem !!
Roggemans M.
Pagina 134
6-7-2014
12.3 Toetsenbord Een toetsenbord wordt via een synchrone seriële verbinding aangesloten op de computer. Het toetsenbord bevat een eigen microcontroller die de schakelaars verwerkt. In het klavier zit een microcontroller die de schakelaars inleest en doorgeeft wat de actie is naar de PC (klavier is dus ook een computer!) Figuren 12.3.1, 12.3.2 en 12.3.3 geven 3 manieren om een keyboard te scannen.
Figuur 12.3.1 Deze manier vraagt ontzettend veel aansluitingen om al de schakelaars te kunnen lezen.
Figuur 12.3.2 Door gebruik te maken van diodes kan het aantal aansluitingen verminderd worden.
Roggemans M.
Pagina 135
6-7-2014
Figuur 12.3.3 Tenslotte een matrix opstelling. Dit laat toe om met een minimum aan aansluitingen en componenten een maximum aan schakelaars in te lezen. Door het eenvoud in gebruik is de standaard seriële verbinding tussen klavier en PC vervangen door een USB aanluiting.
12.4 CRT en LCD schermen De werking van een CRT scherm kan je terugvinden in figuur 12.4.1. CRT staat voor Cathode Ray Tube. Hierbij wordt er een elektronenbundel op de voorste glasplaat van het display gericht. Door de intensiteit van de bundel i.f.v. de plaats te variëren kunnen beelden bekomen worden. Een CRT scherm is log en zwaar. Bovendien genereert het een (beperkte) hoeveelheid X-stralen. Het opgenomen vermogen van een beeldscherm is ongeveer 100W. Een LCD scherm (figuur 12.4.2) heeft bovenstaande nadelen niet. Geleidelijk verdwijnen dan ook alle CRT’s ten voordele van de LCD schermen. Door massaproductie worden ze alsmaar goedkoper en performanter. Figuur 12.4.3 geeft de principiële werking van een LCD scherm.
Roggemans M.
Pagina 136
6-7-2014
Figuur 12.4.1 Principiële werking CRT
Figuur 12.4.2 LCD scherm
Figuur 12.4.3 Principiële werking LCD
LCD schermen zijn in continue evolutie. Enkele belangrijke ontwikkelingen zijn de plooibare LCD schermen (figuur 12.4.4) en de schermen die enkel energie verbruiken als de uitlezing aangepast wordt. Deze laatste worden gebruikt in Roggemans M.
Pagina 137
6-7-2014
“elektronische boeken” (figuur 12.4.5). Het contrast van deze schermen is van die aard dat ook in zonlicht perfect uitleesbaar zijn.
Figuur 12.4.4 Flexibel LCD scherm
Figuur 12.4.5 Elektronisch papier
Roggemans M.
Pagina 138
6-7-2014
Een andere evolutie zijn de OLOD display’s (figuur 12.4.6). Die maken gebruik van LED’s die op een drager “afgedrukt” worden. De LED’s zijn piepklein, in kleur, en geven licht. Hierdoor kan de achtergrondverlichting weggelaten worden. Er zijn heel wat MP3 spelers en GSM’s op de markt die dit type display gebruiken.
Figuur 12.4.6 OLED display (arm gedragen militaire toepassing)
12.5 Aanraakbeeldschermen Ingave via het beeldscherm kan in bepaalde toepassingen voordelen bieden. In onderstaande figuren staan enkele werkingsprincipes weergegeven. Ultrasoon (figuur 12.5.1) is gebaseerd op geluidsgolven die door een object op het scherm weerkaatst worden. Resistief (figuur 12.5.2) is gebaseerd op dunne filmen die bekleed zijn met een elektrische geleider die een bepaalde weerstandswaarde per lopende cm heeft. Door de twee folies tegen elkaar te drukken kan bepaald worden waar een object zich bevindt. Capacitief (figuur 12.5.3) is gebaseerd op het capacitief doorgeven van lading. Dit type scherm heeft als voornaamste voordeel dat er geen folies op het scherm aangebracht moeten worden. Dit zou bij een GSM al snel zorgen voor een verminderde leesbaarheid van het scherm (krassen).
Roggemans M.
Pagina 139
6-7-2014
Figuur 12.5.1 Ultrasoon aanraakbeeldscherm
Roggemans M.
Pagina 140
6-7-2014
Figuur 12.5.2 Resistief aanraakscherm
Figuur 12.5.3 Capacitief aanraakbeeldscherm
Roggemans M.
Pagina 141
6-7-2014
12.6 Touchpad Een andere manier om iet in te geven is het touchpad (figuur 12.6.1).
Figuur 12.6.1 Touchpad Het touchpad bestaat uit een aantal geleiders met een isolatie laag afgedekt. Een vinger veroorzaakt een verandering in diëlectricum tussen de geleiders. Door dit te detecteren kan de plaats van de vinger gemeten worden. Worden doorschijnende folies en geleiders gebruikt, dan kan je hier ook een aanraakbeeldscherm mee maken (zie capacitief aanraakbeeldscherm).
12.7 Touchstick De touchstick gebruikt ook een capacitieve meting om de kracht te meten (figuur 12.7.1).
Figuur 12.7.1 Touchstick
Roggemans M.
Pagina 142
6-7-2014
12.8 Toekomst? Het is duidelijk dat scherm en klavier belangrijke I/O devices zijn van onze computers (een I-phone is dat ook). Fabrikanten van deze apparaten zijn permanent op zoek naar aangenamere manieren om met deze apparaten te communiceren. Het gebruik van camera’s om de positie (een specifiek systeem van 3D TV met LCD scherm), gelaatsuitdrukkingen of bewegingen van lichaamsdelen te detecteren (vervangen van toetsenbord) is geen SF meer (figuur 12.8.1).
Figuur 12.8.1 Klavier?
Roggemans M.
Pagina 143
6-7-2014
Besluit Deze cursus tracht een inzicht te geven in de geschiedenis en de evolutie van computers. Het is duidelijk dat niet alle topics aan bod zijn gekomen. De diepgang is afgestemd op een divers publiek. De cursus vormt ook de inleiding tot de cursussen microcontrollers en informatica. Het is duidelijk dat de student zich vragen zal stellen bij het studeren van de cursus. We verwijzen dan ook naar het WWW voor het opzoeken van verdere informatie.
roggemans marc
Pagina 144
6-7-2014
Bibliografie Om deze cursus samen te stellen werd informatie gebruikt van het www. Enkele van de belangrijkste links staan hieronder. www.intel.com www.ibm.com en.wikipedia.org/wiki/Main_Page www.homecomputer.de www.synaptics.com www.zilog.com www.unicode.org www.siemens.com www.microsoft.com www.arm.com inventors.about.com www.computerhistory.com www.pbs.org/nerds/timeline/ www.computer.org
roggemans marc
Pagina 145
6-7-2014