Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο...
description
Transcript of Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο...
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Περίγραμμα Ο μικροελεγκτής M68HC908GP32
Γενικά χαρακτηριστικάΠεριγραφή ακροδεκτώνΧάρτης μνήμηςΕνσωματωμένα περιφερειακά συστήματα
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Γενικά χαρακτηριστικά
Ο MC68HC908GP32 είναι ένας χαμηλού κόστους και γενικής χρήσης μικροελεγκτής με ενσωματωμένη CPU08.32KB μνήμη προγράμματος (Flash)512Β μνήμη δεδομένων (RAM) 33 ακροδέκτες εισόδου/εξόδου Λειτουργίας χαμηλής κατανάλωσηςΔυνατότητα παροχής τροφοδοσίας 3V ή 5V Μέγιστη εσωτερική συχνότητα λειτουργίας 8MHzΔιαθέτει επίσης αρκετά ενσωματωμένα περιφερειακά συστήματαΔιατίθεται σε τρεις διαφορετικές συσκευασίες
40, 42 και 44 ακροδεκτών (PDIP, SDIP, QFP αντιστοίχως)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Περιγραφή ακροδεκτών (40 PDIP)
Παροχή τροφοδοσίας (VDD & VSS) Ακροδέκτες ταλαντωτή
(κρυσταλλικός ταλαντωτής στο OSC) Ακροδέκτης μηδενισμού (RST) Ακροδέκτης εξωτερικής διακοπής (IRQ) Παροχή τροφοδοσίας του CGM (VDDΑ & VSSΑ)
(σύνδεση όπως VDD & VSS) Εξωτερικός πυκνωτής φίλτρου (CGMXFC)
(ακροδέκτης φίλτρου PLL) Παροχή τροφοδοσίας ADC (VDDΑD & VSSΑD)
(σύνδεση όπως VDD & VSS) Θύρα Α (PTA7-PTA0) / KBI Θύρα B (PTB7-PTB0) / ADC Θύρα C (PTC4-PTC0) Θύρα D (PTD5-PTD0) / SPI / TIM Θύρα E (PTE1, PTE0) / SCI
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
Ο έλεγχος των εσωτερικών κυκλωμάτων του μικροϋπολογιστικού συστήματος πραγματοποιείται μέσα από ειδικούς καταχωρητές που εντοπίζονται στη μνήμη του ολοκληρωμένου M68HC908GP32. Οι καταχωρητές αυτοί ονομάζονται καταχωρητές εισόδου/εξόδου (I/O registers) και διακρίνονται σε 3 κατηγορίες: α) καταχωρητές ελέγχου (control
registers)β) καταχωρητές κατάστασης (status
registers)γ) καταχωρητές δεδομένων (data
registers).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση
0x0000 Port A Data Register PTA
0x0001 Port B Data Register PTB
0x0002 Port C Data Register PTC
0x0003 Port D Data Register PTD
0x0004 Data Direction Register A DDRA
0x0005 Data Direction Register B DDRB
0x0006 Data Direction Register C DDRC
0x0007 Data Direction Register D DDRD
0x0008 Port E Data Register PTE
0x0009 Unimplemented U
0x000A Unimplemented U
0x000B Unimplemented U
0x000C Data Direction Register E DDRE
0x000D Port A Input Pullup Enable Register PTAPUE
0x000E Port C Input Pullup Enable Register PTCPUE
0x000F Port D Input Pullup Enable Register PTDPUE
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση
0x0010 SPI Control Register SPCR
0x0011 SPI Status and Control Register SPSCR
0x0012 SPI Data Register SPDR
0x0013 SCI Control Register 1 SCC1
0x0014 SCI Control Register 2 SCC2
0x0015 SCI Control Register 3 SCC3
0x0016 SCI Status Register 1 SCS1
0x0017 SCI Status Register 2 SCS2
0x0018 SCI Data Register SCDR
0x0019 SCI Baud Register SCBR
0x001A Keyboard Status and control Register INTKBSCR
0x001B Keyboard Interrupt Enable Register INTKBIER
0x001C Time Base Module Control Register TBCR
0x001D IRQ Status and Control Register INTSCR
0x001E Configuration Register 2 CONFIG2
0x001F Configuration Register 1 CONFIG1
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση
0x0020 Timer 1 Status and Control Register T1SC
0x0021 Timer 1 Counter Register High T1CNTH
0x0022 Timer 1 Counter Register Low T1CNTL
0x0023 Timer 1 Counter Modulo Register High T1MODH
0x0024 Timer 1 Counter Modulo Register Low T1MODL
0x0025 Timer 1 Channel 0 Status and Control T1SC0
0x0026 Timer 1 Channel 0 Register High T1CH0H
0x0027 Timer 1 Channel 0 Register Low T1CH0L
0x0028 Timer 1 Channel 1 Status and Control T1SC1
0x0029 Timer 1 Channel 1 Register High T1CH1H
0x002A Timer 1 Channel 1 Register Low T1CH1L
0x002B Timer 2 Status and Control Register T2SC
0x002C Timer 2 Counter Register High T2CNTH
0x002D Timer 2 Counter Register Low T2CNTL
0x002E Timer 2 Counter Modulo Register High T2MODH
0x002F Timer 2 Counter Modulo Register Low T2MODL
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση
0x0030 Timer 2 Channel 0 Status and Control T2SC0
0x0031 Timer 2 Channel 0 Register High T2CH0H
0x0022 Timer 2 Channel 0 Register Low T2CH0L
0x0033 Timer 2 Channel 1 Status and Control T2SC1
0x0034 Timer 2 Channel 1 Register High T2CH1H
0x0035 Timer 2 Channel 1 Register Low T2CH1L
0x0036 PLL Control Register PCTL
0x0037 PLL Bandwidth Register PBWC
0x0038 PLL Multiplier Select High PMSH
0x0039 PLL Multiplier Select Low PMSL
0x003A PLL VCO Range Select Register PMRS
0x003B PLL Reference Divider Select Register PMDS
0x003C Analog-to-Digital Status and Control ADSCR
0x003D Analog-to-Digital Data Register ADR
0x003E Analog-to-Digital Clock Register ADCLK
0x003F Unimplemented U
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση
0xFE00 SIM Break Status Register SBSR
0xFE01 SIM Reset Status Register SRSR
0xFE02 SIM Upper Byte Address Register SUBAR
0xFE03 SIM Break Flag Control Register SBFCR
0xFE04 Interrupt Status Register 1 INT1
0xFE05 Interrupt Status Register 2 INT2
0xFE06 Interrupt Status Register 3 INT3
0xFE07 Reserved R
0xFE08 FLASH Control Register FLCR
0xFE09 Break Address Register High BRKH
0xFE0A Break Address Register Low BRKL
0xFE0B Break Status and Control Register BRKSCR
0xFE0C LVI Status Register LVISR
0xFF7E FLASH Block Protect Register FLBPR
0xFFFF COP Control Register COPCTL
0xFE00 SIM Break Status Register SBSR
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(vectors)Διεύθυνση Όνομα ανύσματος
0xFFFF Reset Vector (Low)
0xFFFE Reset Vector (High)
0xFFFD SWI Vector (Low)
0xFFFC SWI Vector (High)
0xFFFB IRQ Vector (Low)
0xFFFA IRQ Vector (High)
0xFFF9 PLL Vector (Low)
0xFFF8 PLL Vector (High)
0xFFF7 TIM1 Channel 0 Vector (Low)
0xFFF6 TIM1 Channel 0 Vector (High)
0xFFF5 TIM1 Channel 1 Vector (Low)
0xFFF4 TIM1 Channel 1 Vector (High)
0xFFF3 TIM1 Overflow Vector (Low)
0xFFF2 TIM1 Overflow Vector (High)
0xFFF1 TIM2 Channel 0 Vector (Low)
0xFFF0 TIM2 Channel 0 Vector (High)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(vectors)Διεύθυνση Όνομα ανύσματος
0xFFEF TIM2 Channel 1 Vector (Low)
0xFFEE TIM2 Channel 1 Vector (High)
0xFFED TIM2 Overflow Vector (Low)
0xFFEC TIM2 Overflow Vector (High)
0xFFEB SPI Receive Vector (Low)
0xFFEA SPI Receive Vector (High)
0xFFE9 SPI Transmit Vector (Low)
0xFFE8 SPI Transmit Vector (High)
0xFFE7 SCI Error Vector (Low)
0xFFE6 SCI Error Vector (High)
0xFFE5 SCI Receive Vector (Low)
0xFFE4 SCI Receive Vector (High)
0xFFE3 SCI Transmit Vector (Low)
0xFFE2 SCI Transmit Vector (High)
0xFFE1 Keyboard Vector (Low)
0xFFE0 Keyboard Vector Vector (High)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης
(vectors)Διεύθυνση Όνομα ανύσματος
0xFFDF ADC Conversion Complete Vector (Low)
0xFFDE ADC Conversion Complete Vector (High)
0xFFDD Timebase Vector (Low) Vector (High)
0xFFDC Timebase Vector (High)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα
Το υποσύστημα ADC
Το υποσύστημα μετατροπής αναλογικού σήματος σε ψηφιακό (ADC – Analog to Digital Converter) διαθέτει 8 κανάλια εισόδου (δηλαδή δυνατότητα καταγραφής 8 διαφορετικών αναλογικών σημάτων από το εξωτερικό περιβάλλον μέσω των ακροδεκτών της θύρας Β) με 8-bit ακρίβεια. Η διαδικασία μετατροπής πραγματοποιείται με την τεχνική διαδοχικών προσεγγίσεων (successive approximation ADC).
Το υποσύστημα BRK
Το υποσύστημα διακοπής λειτουργίας (BRK – Break Module) προκαλεί διακοπή που σταματά την ομαλή εκτέλεση του προγράμματος σε προκαθορισμένη διεύθυνση μνήμης, για την εξυπηρέτηση της εκτέλεσης ενός ετέρου προγράμματος.
Το υποσύστημα CGMC
Το υποσύστημα παραγωγής ρολογιού (CGMC – Clock Generator Module) δημιουργεί το εσωτερικό ρολόι συγχρονισμού του μικροελεγκτή, ενώ διαθέτει και σύστημα ελέγχου PLL (Phase-Locked-Loop).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα
Το υποσύστημα COPΤο υποσύστημα ελέγχου ορθής λειτουργίας υπολογιστή (COP – Computer Operating Properly) εποπτεύει την ορθή λειτουργία του μικροελεγκτή, προκαλώντας επανεκκίνηση στον τελευταίο όταν η ροή προγράμματος «παγώσει» αθέμιτα σε κάποιο σημείο (δηλαδή σε κάποια γραμμή του κώδικα).
Το υποσύστημα IRQΤο υποσύστημα εξωτερικής διακοπής (IRQ – external interrupt) προκαλεί διακοπή στη ροή προγράμματος, όταν ανιχνευτεί αλλαγή τιμής στον ακροδέκτη IRQ του μικροελεγκτή (σήμα που προέρχεται από το εξωτερικό περιβάλλον).
Το υποσύστημα KBIΤο υποσύστημα διακοπής πληκτρολογίου (KBI – Keyboard Interrupt Module) προορίζεται για τον έλεγχο πληκτρολογίου που συνδέεται στους ακροδέκτες της θύρας Α μέσω εξωτερικής διακοπής.
Το υποσύστημα LVIΤο υποσύστημα παρεμπόδισης χαμηλής τάσης (LVI – Low Voltage Inhibit) εποπτεύει το επίπεδο της τάσης στον ακροδέκτη τροφοδοσίας (VDD), προκαλώντας την επανεκκίνηση του μικροελεγκτή όταν η τιμή της πέσει κάτω από ένα συγκεκριμένο όριο.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα
Το υποσύστημα SCIΤο υποσύστημα διεπαφής σειριακής επικοινωνίας (SCI – Serial Communication Interface) καθιστά εφικτή την ασύγχρονη σειριακή επικοινωνία του μικροελεγκτή με εξωτερικές μονάδες εισόδου/εξόδου.
Το υποσύστημα SIMΤο υποσύστημα SIM (System Integration Module) ελέγχει (σε συνεργασία με τη CPU08) όλες τις εσωτερικές διεργασίας του μικροελεγκτή (όπως π.χ. τη λειτουργία χαμηλής κατανάλωσης, τους μηχανισμούς διακοπής, κ.τ.λ.).
Το υποσύστημα SPIΤο υποσύστημα σειριακής περιφερειακής διεπαφής (SPI – Serial Peripheral interface) καθιστά εφικτή τη σύγχρονη σειριακή επικοινωνία του μικροελεγκτή με εξωτερικές περιφερειακές συσκευές.
Το υποσύστημα TBMΤο υποσύστημα TBM (Timebase module) παράγει περιοδικά επαναλαμβανόμενη διακοπή στη ροή προγράμματος, σε χρόνους που προκαθορίζει ο προγραμματιστής.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα
Το υποσύστημα TIMΤο υποσύστημα ρύθμισης χρόνου (TIM – Timer) διαθέτει δύο μετρητές για την καταγραφή/δημιουργία παλμών, ή ακόμη και την καταμέτρηση χρόνου με υψηλή ακρίβεια. Το υποσύστημα αυτό διαθέτη επίσης και μηχανισμό διαμόρφωσης εύρους παλμού (PWM – Pulse Width Modulation).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32
Ευχαριστώ για την προσοχή σας