Microcontroller an den Regalen zum Auslesen von RFID-Tags an den Produkten.

Datenübertragung an eine zentrale Datenbank zur Echtzeit-Verfolgung des Lagerbestands.

Technische Herausforderung & Lösung

Die Hardware (STM32-basiert) war bereits gefertigt, als sich herausstellte, dass der verwendete RFID-Transceiver ein nicht standardkonformes SPI-ähnliches Protokoll benötigte. Er wies unterschiedliches Verhalten bei der Initialisierung und dem eigentlichen Lesevorgang auf (z. B. wechselnde Taktflanken-Anforderungen).

Ein klassisches Software-Bitbanging funktionierte zwar, blockierte die MCU jedoch so stark, dass die parallele Netzwerkkommunikation nicht mehr stabil möglich war.

”Hardware Bitbanging” via DMA & Timer

Als Workaround wurde die Kommunikation in die Hardware-Peripherie ausgelagert:

  1. Das Protokoll-Muster (Zustände der Leitungen und Zeitspannen) wurde im Speicher abgelegt.
  2. Mittels DMA (Direct Memory Access) und Timer-Interrupts wurde dieser Speicherinhalt direkt auf die GPIOs ausgegeben.
  3. Dies ermöglichte ein Bitbanging “aus der Hardware heraus”, wodurch die CPU entlastet wurde und weiterhin Netzwerk-Tasks bearbeiten konnte.

Obwohl diese Lösung durch die Abhängigkeit von präzisem Timing und DMA-Kanälen komplex und tendenziell fehleranfällig war, ermöglichte sie letztendlich die Abbildung jedes beliebigen Protokolls direkt in Hardware. Dies hielt die Ressourcen der MCU für kritische Aufgaben wie die Netzwerkkommunikation und das RTOS-Scheduling frei – ein entscheidender Vorteil, wenn die Hardware bereits feststeht und keine Standard-Peripherie mehr genutzt werden kann.