SPLIT_WORD_INTO_QUARTERS
🎧 Podcast
Einleitung
Der Funktionsblock SPLIT_WORD_INTO_QUARTERS dient dazu, ein 16-Bit-Wort in acht 2-Bit-Quarter-Bytes aufzuteilen. Dies ist besonders nützlich, wenn komprimierte Daten verarbeitet oder bestimmte Bitmuster extrahiert werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Verarbeitung des Eingangsworts. Wird mit dem Daten-EingangINverknüpft.
Ereignis-Ausgänge
CNF: Signalisiert den Abschluss der Verarbeitung. Wird mit allen acht Quarter-Byte-Ausgängen verknüpft.
Daten-Eingänge
IN(WORD): Das 16-Bit-Eingangswort, das in Quarter-Bytes aufgeteilt wird.
Daten-Ausgänge
QUARTER_BYTE_00bisQUARTER_BYTE_07(BYTE): Die acht extrahierten 2-Bit-Quarter-Bytes. Jeder Ausgang enthält eines der Quarter-Bytes des Eingangsworts.
Adapter
Keine Adapter vorhanden.
Funktionsweise
Der Funktionsblock nutzt Bitmasken und Schiebeoperationen, um die einzelnen 2-Bit-Abschnitte aus dem Eingangswort zu extrahieren. Jedes Quarter-Byte wird durch eine bitweise UND-Verknüpfung mit einer spezifischen Maske isoliert und dann an die entsprechende Position geschoben, um es als BYTE auszugeben.
Technische Besonderheiten
Verwendet Konstanten (
quarterconst::WORD_QUARTER_XXundquarterconst::SHIFT_QUARTER_XX) für die Masken und Schiebepositionen.Die Extraktion erfolgt durch Kombination von UND-Verknüpfungen und Rechts-Schiebeoperationen.
Zustandsübersicht
Idle: Wartet auf das
REQ-Ereignis.Processing: Extrahiert die Quarter-Bytes aus dem Eingangswort.
Completion: Sendet das
CNF-Ereignis und gibt die Quarter-Bytes aus.
Anwendungsszenarien
Dekodierung von komprimierten Daten.
Extraktion von Steuerbits aus einem Statuswort.
Verarbeitung von kodierten Sensordaten.
⚖️ Vergleich mit ähnlichen Bausteinen
SPLIT_WORD_INTO_BYTES: Teilt ein Wort in zwei Bytes auf, nicht in acht Quarter-Bytes.
BIT_EXTRACT: Extrahiert einzelne Bits oder Bitgruppen, ist aber weniger spezialisiert für Quarter-Bytes.
Fazit
Der SPLIT_WORD_INTO_QUARTERS-Funktionsblock ist ein spezialisiertes Werkzeug zur effizienten Extraktion von 2-Bit-Daten aus einem 16-Bit-Wort. Seine klare Schnittstelle und effiziente Implementierung machen ihn ideal für Anwendungen, die mit komprimierten oder bitkodierten Daten arbeiten.