# GPIOChip ```{index} single: GPIOChip ``` image * * * * * * * * * * ## Einleitung Der GPIOChip Funktionsblock ist ein Service Interface Function Block zur Ansteuerung von GPIO-Chips unter Linux-Systemen. Er ermöglicht den Zugriff auf GPIO-Lines über das Linux GPIO Character Device Interface (/dev/gpiochipX) und unterstützt verschiedene Betriebsmodi für das Lesen und Schreiben von GPIO-Signalen. ## Schnittstellenstruktur ### **Ereignis-Eingänge** - **INIT**: Service Initialisierungs-Ereignis mit den zugehörigen Daten QI, VALUE, ChipNumber, LineNumber, ReadWriteMode, BiasMode und ActiveLow ### **Ereignis-Ausgänge** - **INITO**: Initialisierungsbestätigung mit QO und STATUS - **IND**: Indikation vom Resource mit QO und STATUS ### **Daten-Eingänge** - **QI** (BOOL): Event Input Qualifier - **VALUE** (WSTRING): Receiver IX/QX block name - **ChipNumber** (UINT): ID des /dev/gpiochipX Devices (Initialwert: 0) - **LineNumber** (UINT): ID der GPIO-Line innerhalb des ausgewählten Chips (Initialwert: 0) - **ReadWriteMode** (UINT): Lese-/Schreibmodus der Line (0=read, 1=write push/pull, 2=open drain, 3=open source) (Initialwert: 0) - **BiasMode** (UINT): Bias-Modus der Line (0=none, 1=pull up, 2=pull down) (Initialwert: 0) - **ActiveLow** (BOOL): True, wenn logisch 1 niedriger Spannung entspricht (Initialwert: 0) ### **Daten-Ausgänge** - **QO** (BOOL): Event Output Qualifier - **STATUS** (WSTRING): Service Status ### **Adapter** Keine Adapter-Schnittstellen vorhanden. ## Funktionsweise Der GPIOChip FB initialisiert bei Empfang des INIT-Ereignisses eine Verbindung zu einem spezifischen GPIO-Chip und einer definierten GPIO-Line. Die Konfiguration umfasst den Betriebsmodus (Lesen/Schreiben), den Bias-Modus und die Polaritätseinstellung (ActiveLow). Nach erfolgreicher Initialisierung bestätigt der Block mit INITO+, bei Fehlern mit INITO- und einem entsprechenden STATUS. ## Technische Besonderheiten - Unterstützt verschiedene GPIO-Betriebsmodi: Lesen, Schreiben (Push/Pull), Open Drain und Open Source - Konfigurierbare Bias-Einstellungen: None, Pull-Up, Pull-Down - Aktiv-Niedrig Modus für invertierte Logik - Linux GPIO Character Device Interface basiert - Automatische Fehlerbehandlung mit Statusrückmeldung ## Zustandsübersicht Der Funktionsblock durchläuft folgende Zustände: 1. **Nicht initialisiert**: Ausgangszustand vor INIT 2. **Initialisierung**: Während der GPIO-Chip Konfiguration 3. **Bereit**: Nach erfolgreicher Initialisierung (INITO+) 4. **Fehler**: Bei Initialisierungsfehlern (INITO-) ## Anwendungsszenarien - Ansteuerung von GPIO-Pins in Embedded Linux Systemen - Hardware-nahe E/A-Operationen in Automatisierungssystemen - Schnittstelle zu externen Sensoren und Aktoren - Prototyping und Entwicklung von IoT-Geräten - Industrielle Steuerungsanwendungen ## ⚖️ Vergleich mit ähnlichen Bausteinen Im Vergleich zu einfachen digitalen I/O-Blöcken bietet GPIOChip erweiterte Funktionen wie konfigurierbare Bias-Modi, verschiedene Schreibmodi und direkten Zugriff auf das Linux GPIO-Subsystem. Er ist spezifisch für Linux-Systeme mit GPIO-Chip Unterstützung ausgelegt. ## Fazit Der GPIOChip Funktionsblock stellt eine leistungsfähige Schnittstelle zur GPIO-Hardwaresteuerung unter Linux bereit. Durch die umfangreiche Konfigurierbarkeit und das standardisierte Service Interface eignet er sich ideal für anspruchsvolle Embedded-Anwendungen, die direkten Hardwarezugriff erfordern.