Ελεγκτής VGA βασισμένος σε μικροελεγκτή περιορισμένων πόρων

Implementation of a VGA Controller on a Resource‑Constrained Microcontroller (Αγγλική)

  1. Bachelor’s thesis
  2. ΠΑΝΑΓΙΩΤΗΣ ΑΡΓΥΡΟΠΟΥΛΟΣ
  3. Πληροφορική (ΠΛΗ)
  4. 9 Μαίου 2026
  5. Ελληνικά
  6. 114
  7. Κακαρούντας Αθανάσιος
  8. Κακαρούντας Αθανάσιος | Πλαγιανάκος Βασίλης | Τοπάλης Ευάγγελος
  9. VGA | NTSC | SPI | CLC | PWM | R-2R | DMA | Multiplexing | Reactor Pattern | State Pattern | Circular Buffer | Layered Architecture | Event-Driven Design | Embedded Systems
  10. Πληροφορική / ΠΛΗ40
  11. 2
  12. 17
  13. Συμπεριλαμβάνει πίνακες, διαγράμματα, φωτογραφίες, και τμήματα κώδικα
    • Η παρούσα πτυχιακή εργασία πραγματεύεται τη μελέτη, τη σχεδίαση και την ολοκληρωμένη υλοποίηση ενός αυτόνομου ελεγκτή VGA, βασισμένου στον 8-bit μικροελεγκτή PIC18F47K42 της Microchip. Το σύστημα λειτουργεί ως μια ανεξάρτητη κάρτα γραφικών, σχεδιασμένη να αποτελεί εξωτερικό περιφερειακό υποσύστημα για embedded εφαρμογές περιορισμένων πόρων, επιτρέποντας την οπτική απεικόνιση δεδομένων χωρίς να επιβαρύνεται ο κεντρικός επεξεργαστής του συστήματος.

      Η εργασία καλύπτει αναλυτικά τις τεχνικές προδιαγραφές του προτύπου VGA, ενώ επικεντρώνεται στον σχεδιασμό και την υλοποίηση όλων των απαραίτητων λειτουργικών μονάδων για την υποστήριξή του. Κεντρικό σημείο της αρχιτεκτονικής υλικού αποτελεί η μονάδα παραγωγής σημάτων συγχρονισμού, η οποία αξιοποιεί εσωτερικούς απαριθμητές (timers) και μονάδες PWM για τη δημιουργία των παλμών συγχρονισμού (HSync, VSync) με υψηλή ακρίβεια. Η παραγωγή του αναλογικού σήματος χρώματος (4‑bit RGBI) επιτυγχάνεται μέσω εξωτερικού κυκλώματος που συνδυάζει πολυπλέκτες 74AC257 και R‑2R ψηφιοαναλογικούς μετατροπείς (DAC). Το κύκλωμα οδηγείται από μια βοηθητική μονάδα παραγωγής σήματος ορατής περιοχής, η οποία αξιοποιεί λογικές κυψέλες (CLC) και γεννήτριες PWM για να δημιουργήσει παλμό ενεργοποίησης κατάλληλου εύρους,  διασφαλίζοντας ότι το αναλογικό σήμα παράγεται μόνο εντός του ενεργού τμήματος σάρωσης της οθόνης.

      Στο επίπεδο του λογισμικού υιοθετήθηκε μια πολυεπίπεδη αρχιτεκτονική (layered architecture), η οποία προάγει τη συντηρησιμότητα και την επεκτασιμότητα του συστήματος. Η επικοινωνία με τον ελεγκτή πραγματοποιείται μέσω της διεπαφής UART, από την οποία λαμβάνονται εντολές και αποστέλλονται οι αντίστοιχες απαντήσεις. Η διαχείριση των δεδομένων υλοποιείται ασύγχρονα μέσω μηχανισμών Circular Buffer σε συνεργασία με τη μονάδα DMA, ενώ για τη διαχείριση συμβάντων και τη διερμήνευση εντολών εφαρμόστηκαν τα σχεδιαστικά πρότυπα Reactor και State Pattern αντίστοιχα. Ιδιαίτερη έμφαση δόθηκε στη βελτιστοποίηση της απόδοσης, με την υλοποίηση της μονάδας Pixel Generator σε γλώσσα Assembly, εξασφαλίζοντας την τήρηση ενός κρίσιμου χρονικού παραθύρου 8 κύκλων ανά pixel.

      Ο ελεγκτής υποστηρίζει τρεις διακριτές καταστάσεις λειτουργίας (Text, Plot και Graphics Mode), ενσωματώνοντας αλγορίθμους Bresenham για τη σχεδίαση γεωμετρικών σχημάτων και τεχνικές χρωματικής συμπίεσης για την προβολή εικόνων παρά τους περιορισμούς μνήμης του μικροελεγκτή.

      Η λειτουργικότητα και η σταθερότητα του συστήματος επιβεβαιώθηκαν μέσω στοχευμένων stress tests, κατά τα οποία ο ελεγκτής λειτούργησε υπό αυξημένο φορτίο και συνεχείς ακολουθίες εντολών, διατηρώντας πλήρως σταθερή εικόνα. Οι μετρήσεις παλμογράφου έδειξαν ότι οι χρονισμοί των παραγόμενων σημάτων παρέμειναν εντός των προδιαγραφών του προτύπου VGA, με αποκλίσεις μικρότερες του ±0.5%, διασφαλίζοντας πλήρη συμβατότητα με σύγχρονες οθόνες VGA.

    • This BSc thesis details the research, design, and comprehensive implementation of an autonomous VGA controller based on the 8-bit PIC18F47K42 microcontroller by Microchip. The system functions as a standalone graphics card, specifically designed to serve as an external peripheral subsystem for resource-constrained embedded applications, enabling visual data representation without burdening the host processor.

      The thesis provides a detailed analysis of the technical specifications of the VGA standard and focuses on the design and implementation of all functional modules required for its support. A central component of the hardware architecture is the synchronization signal generator, which employs internal timers and PWM units to produce the HSync and VSync pulses with high precision. The analog color signal (4‑bit RGBI) is generated by an external circuit combining 74AC257 multiplexers with R‑2R digital‑to‑analog converters (DAC). This circuit is driven by an auxiliary visible‑area signal generator that uses configurable logic cells (CLC) and PWM modules to produce an activation pulse of appropriate width, ensuring that the analog output is enabled only during the active portion of the display scan.

      At the software level, a layered architecture was adopted to enhance system maintainability and scalability. Communication with the controller is handled via a UART interface, utilizing an asynchronous data management scheme based on circular buffers in conjunction with the DMA unit. For event handling and command interpretation, the Reactor and State design patterns were applied, respectively. Performance optimization was prioritized through the implementation of the Pixel Generator in Assembly, ensuring strict compliance with a critical 8-cycle-per-pixel timing window.

      The controller supports three distinct operating modes—Text, Plot, and Graphics Mode—incorporating Bresenham algorithms for geometric rendering and color compression techniques for image display despite the microcontroller’s memory constraints.

      The functionality and stability of the system were verified through targeted stress tests, during which the controller operated under increased load and continuous command sequences while maintaining a fully stable image. Oscilloscope measurements confirmed that the timing of the generated signals remained within the VGA specification, with deviations below ±0.5%, ensuring full compatibility with modern VGA displays.

  14. Hellenic Open University
  15. Αναφορά Δημιουργού 4.0 Διεθνές