Die Maschinenbestandteile (Spiel, Ausgabe, Münzautomat,…) werden über handelsübliche Netzwerkkabeln (RJ45 Stecker mit einem Twisted Pair Kabel) verbunden. Die Kabeln wurden gewählt, weil sie überall verfügbar sind und eine Steckerverriegelung haben.

Allerdings werden in den Maschinen leistungsschwache Mikrocontroller verwendet (2kB RAM, ein PC hat heute typischerweise 1Mio. mal soviel), dadurch kann keine klassische Netzwerkkommunikation über diese Kabeln stattfinden. Weiters soll auch die Stromversorgung der einzelnen Module über diese Kabeln erfolgen, was über „normales“ Netzwerk auch nur mit „Power over Ethernet“ und viel mehr Elektronikaufwand funktioniert.

Nachdem die Datenmenge zwischen den Geräten auch sehr niedrig ist, habe ich die Kabeln mit einer anderen Beschaltung versehen und schicke mein eigenes Protokoll darüber.

I2C – Inter Integrated Circuit

Die Datenübertragung erfolgt bei meiner Schnittstelle über den sogenannten I2C Bus. Ein Bussystem hat den Vorteil, das eine fast beliebige Anzahl an Geräten an den selben Busleitungen hängen kann und die Anzahl der Kabeln nicht von der Menge der angeschlossenen Geräte abhängig ist.

I2C.svg

I2C.svg () von , CC-BY-SA-3.0-migrated.

I2C ist in praktisch allen Mikrocontrollern als Hardwarebaustein verfügbar und ermöglicht eine einfache Kommunikation. Nicht nur die Verbindung zwischen den Mikrocontrollern erfolgt mit I2C, auch andere Bausteine werden in meinen Maschinen mit I2C angesteuert:

  • „Port Expander“: mehrere einzelne Anschlüsse können durch 2 Leitungen ausgelesen und angesteuert werden
  • Displays: meine verwendeten Displays werden ebenfalls mit I2C angesteuert um möglichst wenige Leitungen zu benötigen

Protokoll

Über die I2C Leitungen müssen dann kontrolliert die Daten ausgetauscht werden. In diesem Fall wird die Kommunikation immer vom Spielgerät aus angesteuert (Primary oder Master Device genannt).

Entweder wird ein Secondary / Slave Device aufgefordert Daten zu senden (zum Beispiel: „wieviel Geld wurde in den Münzautomat eingeworfen?“) oder es werden Daten gesendet (zum Beispiel: „50ml Ausgabe von Pumpe 3“).

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar