Download Mikrocontroller-Einstieg mit myAVR
Transcript
Zentraleinheit (CPU, Prozessor), wie wir sie etwa vom PC her kennen, ist die Ausstattung mit weiteren Bausteinen wie Speicher, analogen und digitalen I/O-Baugruppen, Schnittstellencontrollern, Timern usw. Natürlich darf man die Rechenleistung und den Befehlsumfang der kleinen Zentraleinheit eines solchen Controllers nicht mit der einer PC-CPU vergleichen, für die Ausführung der für diese Controller spezifischen Aufgaben sind Rechenleistung und Befehlsumfang (hieraus leitet sich auch der Begriff RISC-Prozessor ab: Reduced Instruction Set Computer – eingeschränkter Befehlssatz) jedoch ausreichend. Nur durch diese Architektur sind MikrocontrollerBaugruppen extrem kompakt (und stromsparend) aufzubauen, man benötigt kaum Peripherie. Da der Befehlsaufbau mit nur wenigen, einfach strukturierten Befehlen (Tabelle 1 am Ende des Artikels zeigt eine Kurzübersicht aller von den AVR-Mikrocontrollern unterstützten Befehle, hierauf kommen wir im Verlauf der Serie zurück) erfolgt, konnte man den Rechnerkern auf hohe Rechengeschwindigkeit optimieren, so sind die Controller auch bis hin zu Echtzeitaufgaben einsetzbar. Dazu kommt eine auf die Controller-Architektur speziell zugeschnittene Programm-Übersetzung und -Bearbeitung, die die Abarbeitungsgeschwindigkeit von Befehlen nochmals erhöht – RISC-Prozessoren sind VCC in der Welt der Ein-Chip-Rechner die schnellsten Prozessoren! Abbildung 7 zeigt bereits ein komplexeres Bild – den Aufbau unseres ver- GND wendeten AVR ATmega8. Hier finden AVCC sich alle besprochenen Baugruppen in AGND detaillierter Aufteilung wieder. AREF Register, RAM, ROM, Flash … Wichtig für das Verständnis bei der späteren Programmierung ist hier noch der etwas detailliertere Blick in die Speicherausstattung. Mikrocontroller verfügen über mehrere Speicherarten, die jeweils unterschiedliche Aufgaben haben. Direkt im Kontakt mit dem Prozessorkern, dem Rechenwerk (ALU), verbunden sind die Register. Diese dienen der Verwaltung des Befehlscodes, sie sind die Operanden und Ergebnisspeicher für die direkten Maschinen- Bild 6: Grundaufbau eines Mikrocontrollers Zentraleinheit InterruptController ....... befehle des Rechenwerks. Die einzelnen Register haben jeweils bestimmte Aufgaben, wie wir noch im Verlaufe der Programmentwürfe sehen werden. Wichtig zu wissen ist die Tatsache, dass die Speicherinformationen der Register beim Abschalten der Betriebsspannung gelöscht sind! Das sind auch die des SRAM-Datenspeichers. Der dient zur Speicherung der bei der Abarbeitung von Programmen anfallenden Programmdaten sowie aller Informationen, die nicht fest im eigentlichen Programm des Controllers verankert sind, etwa auch von außen erfasster bzw. eingegebener oder zwischengespeicherter Daten. Seine Leseund Schreibzeiten sind sehr kurz, so dass der SRAM der schnellste Speicher des hier besprochenen Verbunds ist. Die dritte Klasse von Speichern sind die nicht flüchtigen Speicher. Diese kommen als ROM oder (E)EPROM vor. Sie behalten grundsätzlich einmal hier gespeicherte Informationen, auch bei Abschalten der Betriebsspannung, und eignen sich so z. B. für die Speicherung des Betriebsprogramms eines Controllers, das beim Wiedereinschalten sofort zur Verfügung steht. Im ROM werden Daten fest gespeichert, PC 0.....PC 5 PORT C DRIVERS DATA REGISTER PORT C DATA DIR REG PORT C 8-BIT DATA BUS ADC ANALOG MUX PROGRAM COUNTER STACK POINTER PROGRAM FLASH SRAM INSTRUCTION REGISTER GENERAL PURPOSE REGISTERS INSTRUCTION DECODER X Y Z CONTROL LINES ALU INTERNAL OSCILLATOR OSCILLATOR WATCHDOG TIMER TIMING AND CONTROL XTAL1 XTAL2 RESET MCU CONTROL REGISTER TIMER/ COUNTERS INTERRUPT UNITS EEPROM STATUS REGISTER SPI DATA DIR REG PORT B PORT B DRIVERS AVR kl-MB.indd 79 COUNTER/ TIMER Analog-/ DigitalWandler serielle Schnittstelle ....... DATA REGISTER PORT B ELVjournal 2/06 EEPROM/ FLASH Interner Bus parallele I/O PROGRAMMING LOGIC Bild 7: Blockschaltbild des ATmega8 SRAM PB 0.....PB 5 UART DATA REGISTER PORT D DATA DIR REG PORT D + - ANALOG COMPARATOR PORT D DRIVERS PD 0.....PD 7 79 15.03.2006 10:06:08 Uhr