© Youpi/Shutterstock.com
PHPoC: Eine IoT-Lösung für PHP-Entwickler – Teil 1

Mit PHP on Chip erweitert sich die IoT-Welt


Die permanente Weiterentwicklung von Mikrocontrollern hat dafür gesorgt, dass einst Unmögliches möglich wurde. Bei all der Miniaturisierung von Werkzeugen des Internet of Things blieb allerdings der Golden Oldie PHP zurück. Sollae Systems versucht seit 2018, diesem Problem ein Ende zu setzen. Was die als PHPoC, kurz für PHP on Chip, bezeichnete Lösung in der Praxis bringt, wollen wir uns in diesem Artikel gemeinsam ansehen.

Wer die Webseite des südkoreanischen Anbieters Sollae Systems aufruft, bekommt eine Gruppe von Boards und eine Reihe von Resellern angeboten [1]. Der Autor arbeitete in den folgenden Schritten mit dem in Leipzig ansässigen Unternehmen Elektonikladen Microcomputer, als Testplatine entschied er sich für einen PHPoC Blue. Wenn man wie der Autor schon in einem Labor sitzt, bietet es sich bei derartigen Systemen an, als Erstes einen Blick auf die Hauptplatine zu werfen. Dort finden wir einen mit einem Schutzsticker versiegelten Mikrocontroller (Abb. 1). Aus der Logik folgt, dass eine Pinzette den Blick auf die darunterliegenden Chipbezeichnungen freigibt, die uns darüber informiert (Abb. 2), dass wir es hier mit einem Klassiker aus dem Hause SGS Thomson zu tun haben.

hanna_phpoc_1.tif_fmt1.jpgAbb. 1: Ist der Sticker entfernt …
hanna_phpoc_2.tif_fmt1.jpgAbb. 2: … offenbart sich des Pudels Kern

Erste Vorbereitungen

Mit dieser Seriennummer können wir uns auf die Suche nach weiteren Informationen über den Controller machen, und auch Rückschlüsse ziehen, wie die Implementierung wahrscheinlich erfolgt. Der STM32F407 ist ein absoluter Evergreen aus dem Hause SGS Thomson, der in der vorliegenden Konfiguration 1 024 Kilobyte ROM und 192 Kilobyte RAM mitbringt. Da es nicht wie auf den von Linux unterstützten Boards zusätzliche externe Speicherchips auf der Platine gibt, ist klar, dass wir es hier nicht mit einem kombinatorischen Prozessrechner zu tun haben.

Weitere Informationen zum Thema finden wir auf der Webseite des Anbieters. Sollae listet dort eine ganze Gruppe von Funktionen der PHP-Syntax auf, die am PHPoC nicht erlaubt sind [2]. So können wir feststellen, dass die Plattform sehr wahrscheinlich auf einem hauseigenen PHP-Interpreter basiert, der mit dem offiziellen PHP-Interpreter bis auf die (sehr ähnliche) Syntax nicht viel zu tun hat. Daraus folgt weiter, dass die Latenzneigung wahrscheinlich relativ positiv ausfallen dürfte. Erspart man sich die bei kombinatorischen Prozessrechnern normalerweise auftretende Makelei zwischen den Kernen, erreichen auch eher performanceschwache Programmiersprachen gute Leistungen. Auf der offiziellen Webseite des Produkts findet sich dann auch das in Abbildung 3 gezeigte Architekturübersichtsdiagramm, dass dieses Verhalten bzw. diese Annahmen bestätigt. Die praktische Erfahrung des Autors lehrt, dass Unternehmen, die Mehrkernprozessoren wie den STM32MP1 verwenden, diese (verkaufsfördernd) in ihren Architekturdiagrammen zeigen.

hanna_phpoc_3.tif_fmt1.jpgAbb. 3: Der STM32F407 erweist sich als wahrer Tausendsassa

Weitere Vorbereitungshandlungen

Die Arbeit mit PHP findet im Allgemeinen unter Linux oder anderen unixoiden Betriebssystemen statt – die Südkoreaner tanzen insofern aus der Reihe, als ihre bevorzugte Arbeitsumgebung Windows ist. Sei dem, wie es sei, wir besuchen im ersten Schritt die entsprechende Seite des Anbieters [3] und klicken danach auf das Tools-Tab, um das als „PHPoC Debugger“ bezeichnete Werkzeug herunterzuladen. Zum Zeitpunkt der Drucklegung dieses Artikels liegt es in Version 2.0 vor – der Autor lädt die rund 9 MB große Datei herunter, um sie danach auf seiner Windows-10-Workstation zur Ausführung zu bringen. Wer hier auf seinen Workstations noch nicht mit STM32-Controllern gearbeitet hat, sollte darauf achten, dass während der Abarbeitung des Installationsprozesses ein separater Treiber-Installer auftaucht: Er befindet sich manchmal hinter einem anderen Fenster, was das Deployment anhält. Während der Bereitstellung der Software können wir dazu übergehen, uns Gedanken über die Inbetriebnahme der Hardware zu machen – Abbildung 4 zeigt ein Überblicksdiagramm, das die einzelnen Komponenten unseres Evaluationsboards aufsplittet.

hanna_phpoc_4.tif_fmt1.jpgAbb. 4: Dieses Diagramm listet die Komponenten des PCB auf

Für die Inbetriebnahme greifen wir uns ein von Raspberry Pi und Co. bekanntes Micro-USB-Kabel, das wir mit dem Rechner verbinden. Im nächsten Schritt starten wir die PHPoC-Entwicklungsumgebung und prüfen, ob in der COM-Port-Combobox ein neuer serieller Port erschienen ist. Wählen Sie dort den zu Ihrem Board gehörenden Port, und klicken Sie danach auf das Verbinden-Symbol. Prozessrechner und Evaluationsboard zählen – extreme Blockbuster wie den aktuellen Raspberry Pi ausgenommen – im Allgemeinen nicht zu Produkten, mit denen Distributoren schnell viel Umsatz machen. Daraus folgt, dass ein aus der Verpackung entnommenes Evaluationsboard meist eine veraltete Firmware aufweist. Nach dem Verbindungsaufbau klicken wir im PHPoC Debugger deshalb auf Functions | System Information, um ein Fenster mit Informationen über den gerade mit PHPoC verbundenen Prozessrechner zu erhalten. Dort klicken wir danach auf die den Knopf Check for Update, der uns das Herunterladen und Einspielen einer Betriebssystemaktualisierung erlaubt: Der Autor dieser Zeilen arbeitete in den folgenden Schritten mit Version 2.3.1.

Interessant ist in diesem Zusammenhang auch noch, dass der Aufbau einer WLAN-Verbindung das Anstecken des in der Verpackung mitgelieferten USB-WLAN-Dongles verlangt. Sollae entschied sich – wohl auch zur Vermeidung regulatorischer Probleme – dazu, die Funkfunktionen ihres Prozessrechners über ein separates Modul zu realisieren. Für erste Versuche wollen wir auf das Anschließen des Moduls allerdings verzichten. Angemerkt sei, dass die Firmware nicht mit beliebigen Modulen zusammenarbeitet. Das beigelegte Modul identifizierte sich in einem Test des Autors gegenüber lsusb jedenfalls folgendermaßen:

tamhan@TAMHAN18:~$ lsusb . . . Bus 001 Device 005: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

Erste Schritte mit PHPoC

Ist die Firmware des Boards erst aktualisiert, können wir mit der eigentlichen Programmentwicklung beginnen. Am Bildschirmrand findet sich unter der Auswahl für den zu verwendenden COM-Port eine als Filelist bezeichnete Dateiübersicht, die den Inhalt des Flashspeichers des Prozessrechners ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang