Embedded Systems mit RISC-V und ESP32-C3

Book description

»Embedded Systems mit RISC-V und ESP32-C3« vermittelt grundlegende Konzepte und Funktionsweisen von Mikrocontrollern und erläutert dabei den Einsatz von RISC-V, eine auf freier Technologie basierende Befehlssatzarchitektur. Die praktischen Übungen des Buchs können Sie auf dem kostengünstigen Mikrocontroller ESP32-C3 ausführen.Teil I des Buchs geht auf den Aufbau eines RISC-V-Mikroprozessors und die selbstständige Programmierung des Mikrocontrollers ein. Auf dieser Grundlage werden Performanz und Möglichkeiten zur Code-Optimierung vermittelt. Der zweite Teil setzt den Fokus auf den Aufbau eines Mikrocontrollers und die Ansteuerung seiner Peripheriemodule sowie auf das Erlernen von elektrotechnischen Grundlagen. Als Beispiel dient die Implementierung eines Pulsoximeters. Im dritten Teil wird das Pulsoximeter herangezogen, um den Einsatz des Echtzeitbetriebssystems FreeRTOS und verschiedener Internetprotokolle zu demonstrieren. Eine praktische Betrachtung von Bluetooth LE rundet diesen Teil ab.Dieses Buch bietet Ihnen viele Beispiele, um mit einem ESP32-C3-Mikrocontroller die Erläuterungen praktisch nachzuvollziehen. Vorkenntnisse in der Programmiersprache C und RISC V-Assembler erleichtern die Umsetzung der Übungen. Teilweise sind weitere Komponenten wie eine Steckplatine und andere kostengünstige Bauteile notwendig. Jeder Teil des Buchs enthält theoretische und praktische Übungen sowie Musterlösungen, anhand derer Sie Ihre eigenen Fortschritte beurteilen können.

Table of contents

  1. Cover
  2. Über den Autor
  3. Titel
  4. Impressum
  5. Vorwort
  6. Inhaltsverzeichnis
  7. I Mikrocontrollergrundlagen
    1. 1 Einleitung
    2. 1.1 Ziel des Buchs
    3. 1.2 Struktur des Buches
    4. 1.3 Zielpublikum
    5. 1.4 Gebrauchsanweisung
    6. 1.4.1 Konventionen
    7. 2 Hallo, Welt!
    8. 2.1 Wahl der Programmiersprache
    9. 2.2 Benötigte Komponenten für die Applikationsentwicklung
    10. 2.2.1 Development Board
    11. 2.2.2 Software für die Entwicklung
    12. 2.3 Die erste Applikation
    13. 3 Der Mikroprozessor
    14. 3.1 Prozessorarchitektur
    15. 3.1.1 Eine kleine Aufgabe
    16. 3.1.2 Die Registerbank
    17. 3.1.3 Die Arithmetic Logic Unit (ALU)
    18. 3.1.4 Datenspeicher
    19. 3.1.5 Befehlsspeicher
    20. 3.1.6 Steuerwerk
    21. 3.1.7 Weitere Einheiten
    22. 3.1.8 Der Prozessor
    23. 3.1.9 Pipeline
    24. 3.2 Instruction Set Architecture
    25. 3.2.1 RISC-V
    26. 3.2.2 sum_up_n in Assembler
    27. 3.2.3 sum_up_n-Maschinensprache
    28. 3.3 Performance
    29. 3.3.1 Control and Status Registers
    30. 3.3.2 Funktionsaufruf
    31. 3.3.3 Optimierung des Codes
    32. 3.3.4 Änderung des Verfahrens
    33. 4 Der Mikrocontroller
    34. 4.1 Aufbau eines Mikrocontrollers
    35. 4.1.1 Test des Zufallszahlengenerators
    36. 4.1.2 Das Bussystem
    37. 4.1.3 ESP32-C3 Memory Map
    38. 4.2 Speicher
    39. 4.2.1 Speichertechnologien
    40. 4.2.2 Speicherzugriffe in Software
    41. 4.2.3 Cache
    42. 4.2.4 Linker
    43. 4.3 Peripheriemodule
    44. 4.3.1 Peripheriezugriff
    45. 4.3.2 Durchführung des Zufallszahlentests
    46. 4.3.3 Informationen der Hersteller
    47. 4.3.4 Speicherlayout der Peripherie
    48. 4.3.5 Bits als Schalter
    49. 4.4 Bitmaskierung
    50. 4.4.1 Klassische Aussagenlogik
    51. 4.4.2 Bitweise Operatoren in C
    52. 4.4.3 Bitmaskierung
    53. 4.5 Zusammenfassung
  8. II Peripheriemodule
    1. 5 Digitale Ein-/Ausgabe
    2. 5.1 Peripherie
    3. 5.2 Projekt Pulsoximeter
    4. 5.3 Elektrotechnische Grundlagen
    5. 5.3.1 Strom und Spannung
    6. 5.3.2 Widerstand und Ohm’sches Gesetz
    7. 5.3.3 Halbleiter und Diode
    8. 5.3.4 Schaltungsaufbau »LED an Batterie«
    9. 5.4 LED schalten
    10. 5.4.1 Transistor
    11. 5.4.2 Logische Funktionen mit CMOS
    12. 5.4.3 GPIO-Modul
    13. 5.4.4 Schaltungsaufbau ESP32-C3 mit LEDs
    14. 5.4.5 Pin-Multiplexing
    15. 5.4.6 Set-/Reset-Register
    16. 5.4.7 Bitfeld und Union in C
    17. 5.4.8 Gesamtes Modul kapseln
    18. 5.4.9 API des Herstellers
    19. 5.4.10 Oszilloskop als Hilfsmittel
    20. 5.4.11 Kondensator
    21. 5.4.12 Leistung, Arbeit, Batterielebensdauer
    22. 5.5 Taster anschließen
    23. 5.5.1 GPIO Eingangssignalpfad
    24. 6 Interrupts und Exceptions
    25. 6.1 Exceptions und Interrupts
    26. 6.1.1 RISC-V-Ausnahmebehandlung
    27. 6.1.2 Aktivierung des Interrupts
    28. 6.1.3 Exception Handler
    29. 6.2 Schichtenarchitektur und Callback
    30. 6.2.1 Schichtenarchitektur
    31. 6.2.2 Callbacks
    32. 6.3 Interrupt bei Tastendruck
    33. 6.4 Sourcecodeverwaltung
    34. 6.4.1 Module in Unterverzeichnissen
    35. 6.4.2 Komponentenmodell des ESP-IDF
    36. 6.4.3 Versionsverwaltung
    37. 7 Externe Komponenten digital anschließen
    38. 7.1 Display ansteuern
    39. 7.2 Konfiguration im ESP-IDF
    40. 7.3 I2C-Protokoll
    41. 7.3.1 SMBus
    42. 7.4 SPI-Schnittstelle
    43. 7.4.1 Bit-Banging
    44. 7.4.2 DMA: Direct Memory Access
    45. 7.4.3 Dateispeicherung auf SD-Karten
    46. 7.5 WS2812B
    47. 7.6 Weitere Kommunikationsschnittstellen
    48. 7.6.1 Serielle Schnittstelle, RS-232
    49. 7.6.2 I2S
    50. 7.6.3 CAN
    51. 7.6.4 Funkschnittstellen
    52. 8 Analoge Werte verarbeiten
    53. 8.1 Die Welt ist analog
    54. 8.1.1 Abtastung (Sampling)
    55. 8.1.2 Analog-Digital-Wandlung
    56. 8.1.3 Messen am Spannungsteiler
    57. 8.2 Werte filtern
    58. 8.2.1 Filterimplementierung
    59. 8.3 Den Herzschlag erkennen
    60. 8.3.1 Diskrete Fourier-Transformation
    61. 8.4 Die Zeit messen
    62. 8.4.1 Taktgeber
    63. 8.5 Das Timer-Modul
    64. 8.5.1 Timer des ESP32-C3
    65. 8.5.2 Systemzeit und Kalenderzeit
    66. 8.5.3 Zeitsynchronisierung
    67. 8.5.4 Pulsweitenmodulation (PWM)
    68. 8.5.5 Weitere Komponenten
    69. 8.6 Zusammenfassung
  9. III Embedded System
    1. 9 Embedded Betriebssystem
    2. 9.1 Embedded Applikationsmodell
    3. 9.2 Multitasking
    4. 9.3 Echtzeitbetriebssystem
    5. 9.3.1 FreeRTOS
    6. 9.4 Nebenläufigkeit
    7. 9.4.1 Semaphor
    8. 9.4.2 Kritische Region
    9. 9.4.3 Deadlock
    10. 9.4.4 Producer/Consumer
    11. 9.4.5 Message-Queue
    12. 9.4.6 Mutex und Signalisierung
    13. 9.4.7 Prioritätenbasiertes Scheduling
    14. 9.5 Systemkontext
    15. 9.6 Gerätetreiber
    16. 9.6.1 POSIX-Standard
    17. 10 Internet der Dinge
    18. 10.1 Internet
    19. 10.1.1 Wi-Fi-Konfiguration
    20. 10.1.2 Berkeley Sockets
    21. 10.1.3 UDP
    22. 10.1.4 TCP
    23. 10.1.5 Datenformate
    24. 10.1.6 Header
    25. 10.2 Cloud-Zugriff
    26. 10.2.1 REST und CoAP
    27. 10.2.2 MQTT-Protokoll
    28. 10.2.3 Webserver
    29. 10.3 Bluetooth
    30. 10.3.1 NimBLE Stack
    31. 10.3.2 Generic Access Profile (GAP)
    32. 10.3.3 GATT-Profil und ATT-Protokoll
    33. 10.4 Power-Management
    34. 10.4.1 Sleep Modes
    35. 10.4.2 Power-Management-Algorithmus
    36. 11 Schlusswort
  10. IV Anhang
    1. A Webseite zum Buch
    2. A.1 Material zum ESP32-C3 und ESP-IDF
    3. A.2 Beispiele des Buchs
    4. A.3 Übungsbeispiele
    5. A.4 Errata
  11. Literaturverzeichnis
  12. Index

Product information

  • Title: Embedded Systems mit RISC-V und ESP32-C3
  • Author(s): Patrick Ritschel
  • Release date: April 2023
  • Publisher(s): dpunkt
  • ISBN: 9783864909375