Ihre eigenen vernetzten Testgeräte programmieren

Mark Harris
|  Erstellt: Januar 18, 2024  |  Aktualisiert am: Juli 1, 2024
Ihre eigenen vernetzten Testgeräte programmieren

Einführung

Wenn Sie jemals Zeit damit verbracht haben, manuell Chargen von Komponenten zu testen, wissen Sie, wie mühsam und zeitaufwendig der gesamte Prozess ist. Jeder Test folgt den gleichen grundlegenden Schritten, die für jedes zu testende Element wiederholt werden. Sie werden auch die Macht des Einsatzes von Testgeräten verstehen, die Sie programmieren können, um diese Schritte für Sie auszuführen, sodass es einfach eine Frage der Einrichtung und des Zusammensteckens alles ist, damit Sie einen Knopf drücken können, um einen Test durchzuführen. Sie können noch mehr Zeit sparen, indem Sie die Konfiguration all Ihrer Testgeräte mit einem Klick einer Computermaus automatisieren.

Was aber, wenn Sie maßgeschneiderte Testgeräte erstellen möchten, um sie Ihrer automatisierten Testumgebung hinzuzufügen? Dieser Schritt-für-Schritt-Leitfaden zeigt Ihnen, wie Sie Code schreiben, der es Ihnen ermöglicht, Ihre vernetzten Testgeräte bequem von Ihrem Computer aus zu konfigurieren.

Die vernetzte Automatisierung eliminiert die Notwendigkeit, jedes Testgerät separat einzurichten und spart Zeit, wenn Sie dieselben Tests in der Zukunft wiederholen müssen. Der Bonus ist, dass das Wiederherstellen der Einstellungen nach einem Stromausfall oder einem versehentlichen Ausschalten des Geräts schnell und unkompliziert ist.

Einführung in SCPI

Wenn Sie mit der Vernetzung von Testgeräten nicht vertraut sind, müssen Sie etwas über die Standardbefehle für programmierbare Instrumente (SCPI) wissen. Hewlett-Packard kam damals mit dem Konzept eines Standard-Interface-Busses auf, der es jedem Computer mit der richtigen Schnittstelle ermöglichen würde, sich mit jedem Testgerät zu verbinden. Dieser HPIB-Standard wurde als General Purpose Interface Bus (GPIB) mit seiner eigenen IEEE-488-Standardbezeichnung bekannt. Diese Standardisierung ermöglichte es, dass jedes Stück vernetzter Testausrüstung auf Befehle vom Computer reagieren konnte, um Funktionen wie das Ausgeben eines Signals oder das Durchführen einer Messung auszuführen.

SCPI erweiterte das Prinzip der standardisierten Vernetzung von Testgeräten, indem eine zusätzliche Schicht für den IEEE-488-Standard hinzugefügt wurde, um die Computerbefehle zu regulieren, die die Testgeräte verstehen konnten. Dieser Ansatz bedeutet nun, dass ein Oszilloskop von HP auf dieselben Befehle reagieren wird wie ein Oszilloskop von Keysight. Vor der Standardisierung der Befehle reagierten oft verschiedene Modelle, die vom selben Hersteller produziert wurden, auf unterschiedliche Befehle. Diese Standardisierung bedeutet, dass das Testgeräte-Kontrollprogramm auf einem Computer mit allen Marken und Modellen von Laborequipment funktionieren wird, sodass beispielsweise der Wechsel einer vernetzten Labornetzteil zu einem besseren Modell keine Änderungen am Kontrollprogramm erfordert.

Diese Standardisierung bedeutet auch, dass jeder Code, der für diesen Schritt-für-Schritt-Leitfaden geschrieben wurde, in jedem anderen Labor funktionieren wird, wenn Sie dieselben Typen von vernetzten Testgeräten haben, die an einen geeigneten Computer angeschlossen sind.

Einführung in SCPI

SPCI-Befehle sind in Form von einfachen ASCII-Zeichenketten, die recht intuitiv zu lesen und zu verstehen sind. Zum Beispiel wird durch das Senden des Befehls „*RST“ an ein Testgerät dieses zurückgesetzt; das Senden des Befehls „*WAI“ weist es an zu warten.

SPCI-Befehle können das Testgerät anweisen, eine Aktion auszuführen oder Informationen anzufordern, je nach Format. Zum Beispiel wird der Befehl „TIM:ACQT 20ms“ die Erfassungszeit eines Oszilloskops auf 20ms ändern, während der Befehl „TIM:ACQT?“ dazu führt, dass es seine aktuelle Erfassungszeit zurückgibt.

Wichtige Punkte, die zu beachten sind, sind, dass Befehle nicht groß- und kleinschreibungsempfindlich sind und abgekürzte Formen unterstützen, so sind zum Beispiel „TRIG SOUR CH1“ und „Trigger source Channel1“ beide gültige Alternativen desselben Befehls. Man kann auch Befehle verketten, so können zum Beispiel „TRIG SOUR CH1“, „TRIG LEVEL1 10“ und „TRIG POL INV“ als „TRIG:SOUR CH1;LEVEL1 10;POL INV“ geschrieben werden, da alle Befehle denselben TRIG betreffen. Diese Befehle legen den Quellkanal, sein Niveau in Volt und die Polarität fest. Dieses Beispiel setzt das Niveau von Kanal 1 auf 10V mit invertierter Polarität. Es ist nicht notwendig, sein Trigger 1 zu spezifizieren, da dies angenommen wird, aber man könnte „TRIG1:“ verwenden, um Mehrdeutigkeiten zu vermeiden.

Das Coding-Projekt

Das begleitende Video dieses Artikels zeigt, wie man seine eigene vernetzte Testausrüstung erstellt, die SCPI-Befehle verwendet. Dies baut auf einem vorherigen Video auf, das zeigt, wie man mit Testgeräten für die Automatisierung kommuniziert.

Ziel dieser Übung ist es, kundenspezifische Testhardware nahtlos in jede vorhandene Testsoftware zu integrieren, die SCPI-Befehle verarbeiten kann, wie solche, die die LAN-Erweiterungen für Instrumentierung (LXI) oder die Virtual Instrument Software Architecture (VISA) verwenden. Das ultimative Ziel ist es, ein umfassendes, integriertes Testgerät zu entwickeln, indem ein Mikrocontroller in die automatisierte Testhardware eingebaut wird.

Eigene vernetzte Testausrüstung programmieren

Im Mittelpunkt des Projekts steht das Entwicklungsboard Infineon XMC4700 Relax Kit, das für industrielle Anwendungen konzipiert ist. Das Board umfasst einen Mikrocontroller mit statischem und dynamischem Speicher, Uhren, Stromversorgungen, Standard-Schnittstellen und grundlegenden Steuerungen. Es beinhaltet auch eine Onboard-Ethernet-Verbindung mit einer Media-Access-Control-(MAC-)Adresse für die Vernetzung.

Ein wichtiger Vorteil dieses Setups ist die Verfügbarkeit der integrierten Entwicklungsumgebung Digital Application Virtual Engineer (DAVE), die Infineon bereitstellt. DAVE ist ein C-basiertes Softwareentwicklungs- und Codegenerierungstool für Mikrocontroller-Anwendungen. Es ermöglicht eine Vereinfachung des Codierungsprozesses, indem es die meisten Einrichtungsaufgaben bequem handhabt, sodass man sich auf die Implementierung von SCPI-Befehlen konzentrieren kann.

Der Testcode, den wir erstellen werden, liest die Position eines Knopfes und steuert den Zustand einer LED. Dieser einfache Test bietet ein leicht verständliches Beispiel und liefert einen großartigen Ausgangspunkt für die weitere Erkundung der Kraft und Vorteile des automatisierten Testens.

Schritt-für-Schritt Programmieranleitung

Projekteinstellung:

Programmieren Sie Ihr eigenes vernetztes Testgerät Schritt-für-Schritt Anleitung

Wenn Sie das DAVE-Tool für ein neues Projekt verwenden, ist der erste Schritt das Erstellen einer neuen Projektdatei mit der Befehlsfolge „Datei -> Neu -> DAVE-Projekt“. Diese Aktion öffnet ein neues Fenster, in dem Sie die Option „DAVE CE-Projekt“ auswählen und ihm einen passenden Namen geben können.

Programmieren Sie Ihr eigenes vernetztes Testgerät Schritt-für-Schritt Anleitung

Anschließend müssen Sie Ihre Zielhardware auswählen; in diesem Fall das XMC4700 Relax Kit.

Sofern Ihr Projekt nicht ressourcenbeschränkt sein wird, ist es immer eine gute Praxis, die voll ausgestattete Standardbibliothek newlib anstelle der Nano-Größenoption zu verwenden.

Programmieren Sie Ihr eigenes vernetztes Testgerät Schritt-für-Schritt Anleitung

Der nächste Schritt ist das Einrichten der Peripheriegeräte für das Projekt mit dem Befehl „DAVE -> Neues APP hinzufügen“.

Programmieren Sie Ihr eigenes vernetztes Testgerät Schritt-für-Schritt Anleitung

Die erste Konfiguration, die eingerichtet werden muss, ist die Netzwerkverbindung, und dies tun Sie mit dem Befehl „Ethernet -> ETH_LWIP“, der einen Lightweight Internet Protocol (IP) Stack zum Projekt hinzufügt, um diese Schnittstelle zu handhaben.

Programmieren Sie Ihr eigenes vernetztes Testgerät Schritt-für-Schritt Anleitung

Sie müssen auch die Ein-/Ausgabe (IO) Schnittstellen für die Testausrüstung hinzufügen, in diesem Beispiel den Knopf und die LED-Anzeige. Beides sind diskrete Komponenten, daher müssen Sie unter der Systembefehlsoption zwei „DIGITAL_IO Apps“ hinzufügen, jeweils eine für jedes Element.

Test

Es ist eine gute Praxis, die IO-Apps umzubenennen, um ihre Funktionen in ihren Namen zu identifizieren, was das Leben einfacher macht und verhindert, dass versehentlich die falsche App aufgerufen wird. Dieser Fehler kann schwer zu erkennen sein, wenn man versucht, ein Testprogramm zu debuggen, das unerwartet reagiert.

Testen

Sie müssen auch den IP-Stack für die Ethernet-Verbindung konfigurieren, indem Sie mit der rechten Maustaste auf die „ETH_LWIP App“ klicken und „APP-Instanz konfigurieren“ auswählen. Sie werden feststellen, dass das XMC4700 Relax Kit bereits vorkonfiguriert ist, was Zeit spart. Sie müssen die statische IP-Adresse auf der IP-Einstellungsseite ändern, damit sie mit dem Subnetz des Computers übereinstimmt, den Sie für Ihre automatisierten Tests verwenden. Außerdem ist das User Datagram Protocol (UDP) in diesem Beispiel nicht erforderlich, sodass Sie dies im Protokolleinstellungstab deaktivieren können.

Testen

Schließlich müssen Sie die Zuordnung zwischen den APP-Pin-Einstellungen und der Mikrocontroller-Hardware unter Verwendung der Option für die manuelle Pin-Zuweisung für jede Komponente bereitstellen. Um den diskreten Knopf zu konfigurieren, klicken Sie mit der rechten Maustaste auf den Knopf und wählen den Befehl „Manuelle Pin-Zuweisung“.

Testen

Sie können dann die passende Pin-Nummer für den Knopf am Relax Kit aus dem Dropdown-Menü auswählen, das bequem Beschriftungen bietet, um dies unkompliziert zu machen. Die Konfiguration der LED und der Ethernet-Verbindung folgen dem gleichen Prozess. Sie werden feststellen, dass die Pin-Zuweisungsfunktion diesen Prozess vereinfacht, indem sie Ihnen nur erlaubt, Pins mit der benötigten Funktionalität auszuwählen. Das Tool stellt automatisch alle Beschriftungen des XMC4700 Relax Kits zur Verfügung, um dies unkompliziert zu machen.

Diese Schritte vervollständigen die Einrichtung für Ihr automatisiertes Testprojekt, und Sie sind jetzt bereit, den Testcode zu schreiben.

Projekt-App-Codierung

Test

Sie können den Code für die Apps generieren, indem Sie einfach auf den Button „Generate Code“ in der DAVE-Toolbar klicken und dann warten, bis die Operation abgeschlossen ist.

Bevor Sie ernsthaft zu programmieren beginnen, wird empfohlen, die Konsole vom Mikrocontroller auf den Computer zu übertragen, um einfachen Zugriff auf `printf` zu ermöglichen. Dies erlaubt es Ihnen, Daten zu formatieren und auszudrucken, um das Schreiben und Debuggen von Code schneller und einfacher zu machen. Sie können dies tun, indem Sie „GDB Semi-Hosting“ in den Konfigurationseinstellungen aktivieren. Sie können dies tun, indem Sie zu den „Projekteigenschaften“ navigieren, zu „C/C++ Build“ gehen und dann „Einstellungen“ auswählen.

Testen

Unter „ARM-GCC, C Linker, Verschiedenes“ müssen Sie „–specs=rdimon.specs“ zu den „Anderen“ Flags hinzufügen. Dieser Schritt integriert die Semi-Hosting-Konfiguration für den Linker.

Test

Dann können Sie zum Abschnitt „ARM-GCC C Compiler, Präprozessor“ gehen und ein neu definiertes Symbol „XMC_DEBUG_ENABLE“ hinzufügen. Diese Einstellung stellt sicher, dass die Konsole in der Debug-Build-Konfiguration umgeleitet wird.

Testen

Sie müssen in den Projekteinstellungen das Kontrollkästchen deaktivieren, das „standardmäßige newlib Systemaufrufe“ unter den „ARM-GCC C Linker, Allgemein“ Einstellungen bereitstellt. Wenn Sie dies aktiviert lassen, werden Sie feststellen, dass es die Initialisierung des Monitor-Handles unterbricht und den Build fehlschlagen lässt.

Als Nächstes müssen Sie das Monitoring initialisieren, was Sie tun können, indem Sie „extern void initialise_monitor_handles(void);“ am Anfang Ihres Codes hinzufügen. Diese Funktion muss nach dem DAVE_Init(); Aufruf aufgerufen werden.

Beachten Sie, dass die Schreibweise von „initialise“ die britische Englischvariante ist, da die ARM-Basis in Cambridge, England, liegt. Die Verwendung der amerikanischen Schreibweise führt zu einem Fehler, der schwer zu lösen sein kann, wenn Sie den subtilen Unterschied in der Schreibweise nicht bemerken.

Projekt Netzwerkprogrammierung

Der erste Schritt, um das Ethernet-Netzwerk zum Laufen zu bringen, ist die Aktivierung des Lightweight IP-Stacks, um regelmäßig nach neuen Nachrichten zu suchen. Dies können Sie tun, indem Sie einen Aufruf der Funktion „sys_check_timeouts();“ innerhalb Ihrer unendlichen While-Schleife hinzufügen, die nach der Initialisierung läuft.

Diese Funktion muss debuggt werden, um auf dem Mikrocontroller ausgeführt werden zu können. Dies können Sie tun, indem Sie eine neue Debug-Konfiguration erstellen. Es wird empfohlen, die Option „Set breakpoint at: main“ auszuschalten, damit der Code sofort läuft, sobald der Mikrocontroller startet. Wenn Sie die Debug-Option auswählen, wird Ihr neuer Code in den Mikrocontroller geladen.

Testen

Sie können bestätigen, dass der Code läuft, indem Sie eine Windows-Konsole auf Ihrem Computer öffnen und die IP-Adresse des Entwicklungsboards anpingen, das in diesem Beispiel das XMC4700 Relax Kit ist. Das Entwicklungsboard sollte auf jeden Ping antworten, was bestätigt, dass das Board funktioniert und die Netzwerkverbindung aktiv ist.

Der Lightweight IP-Stack-Code wird automatisch die Internet Control Message Protocol (ICMP)-Funktionen handhaben. Dennoch müssen Sie Code erstellen, um eingehende Transmission Control Protocol (TCP)-Verbindungen und Daten zu verarbeiten. Dies können Sie tun, indem Sie standardmäßige Lightweight IP-Stack-Code-Anweisungen verwenden, die nicht mikrocontrollerspezifisch sind.

Jetzt, da Sie die Netzwerkverbindungskonfiguration abgeschlossen haben, können Sie den Protokollsteuerungsblock so einstellen, dass er auf Port 5025 hört, den der SCPI-Code für Kommunikationen verwendet. Sie sollten den Lightweight IP-Stack so konfigurieren, dass alle neuen Verbindungen an eine Funktion namens client_accept delegiert werden, die Sie erweitern müssen, um neue Clients zu verarbeiten. Alle empfangenen Daten müssen an eine separate Verarbeitungsfunktion umgeleitet werden, die auch eine Debug-Nachricht ausgibt, um den Empfang einer neuen Verbindung anzuzeigen.

Die Implementierung einer client_recv-Methode wird die empfangenen Daten in einen Puffer zum Verarbeiten kopieren. Diese Funktion sollte auch auf Verbindungen ohne Daten prüfen, was darauf hinweist, dass der entfernte Host die Verbindung geschlossen hat. Für diesen Zustand kann der Code Bereinigungsaktionen durchführen, um unerwünschte Artefakte, die durch die geschlossene Verbindung hinterlassen wurden, zu entfernen.

Das Kompilieren des Codes wird einen funktionsfähigen Build erzeugen, wenn es keine Programmierfehler zum Debuggen gibt.

Projekt IO-Codierung

Der nächste Schritt ist die Konfiguration der „Digital IO Apps“, um ihre erforderlichen Operationen durchzuführen.

Test

Klicken Sie mit der rechten Maustaste auf jede App und wählen Sie die Option „App-Instanz konfigurieren“. Die Standardeinstellung für IO-Komponenten ist ein Tristate-Eingang, perfekt für den Knopf. Für die LED müssen Sie jedoch die Einstellungen auf „Eingang/Ausgang“ mit starkem Antrieb und weichem Übergang ändern. Diese starke Antriebskonfiguration stellt sicher, dass die Platine genügend Antriebsstrom erzeugt, um die LED zu beleuchten. Die weiche Übergangskonfiguration bezieht sich auf die Übergangsgeschwindigkeit des Pins. Ein weicher Übergang mildert jegliche Übergangseffekte auf das Stromverteilungsnetzwerk und reduziert das Risiko einer negativen Auswirkung auf die elektromagnetische Kompatibilität. Die Verwendung dieser Option für diskrete Ausgänge ist eine gute Praxis, es sei denn, Sie benötigen ein Signal mit Nanosekunden-Übergangsraten.

Das Regenerieren des aktualisierten Codes wird diese neuen Änderungen in den funktionalen Build einfügen. Es ist wichtig, sich daran zu erinnern, immer den Code zu regenerieren, nachdem Änderungen an einer DAVE-App vorgenommen wurden.

Projekt SCPI-Codierung

Mit den Konfigurations- und Initialisierungsfunktionen abgeschlossen, kann die Projektprogrammierung endlich damit beginnen, die SCPI-Befehle für Tests zu implementieren. Es ist nicht notwendig, die SCPI-Befehle von Grund auf neu zu implementieren; eine außergewöhnliche SCPI-Parser-Bibliothek von Jan Breuer ist auf GitHub als Ausgangspunkt verfügbar.

Sie können diesen Ressourcenvorteil nutzen, indem Sie den Ordner libscpi in den Bibliotheksordner Ihres Projekts extrahieren. Extrahieren Sie dann die Ordner scpi-def aus „Beispiele -> gemeinsam“ in Ihren Projektordner. Dieser Schritt importiert die SCPI-Parser-Bibliothek und bietet einen guten Ausgangspunkt für die Implementierung Ihres Projekts.

Sie müssen den Testordner und die Makefile in der libscpi-Bibliothek innerhalb der integrierten Entwicklungsumgebung von DAVE löschen, da diese mit der verwendeten ARM-GCC-Bibliothek inkompatibel sind.

Testen

Navigieren Sie dann zurück zum Projekteigenschaftenfenster unter „Build, Einstellungen, Compiler, Verzeichnisse“ und fügen Sie einen Verweis auf den libscpi-Includes-Ordner hinzu.

Sie müssen auch die Datei scpi-def.c öffnen und eine Include-Anweisung für „dave.h“ hinzufügen, um Ihre IO-Funktionen mit der scpi-def-Datei zu verknüpfen.

Als Randbemerkung enthält diese Datei eine fantastische Demo-Implementierung eines Digitalmultimeters und Funktionen für automatisierte Tests. Leider sind diese Funktionen mit dem für dieses Beispiel verwendeten ARM-Compiler inkompatibel und müssen daher entfernt werden. Wenn Sie jedoch in Zukunft eigene Funktionen implementieren müssen, können Sie sich auf die Originaldateien als Referenz zurückbeziehen.

Beim Bearbeiten der Datei löschen Sie alle DMM- und Testfunktionen im Befehlskonfigurationsblock, behalten aber den Code für den TST-Befehl und alle folgenden Anweisungen bei, zusammen mit den Standard-SCPI-Befehlen, die die Bibliothek behandeln wird.

Sie können die Identifikationsinformationen für den Testaufbau in der Datei „scpi-def.h“ definieren, sodass der SCPI-Befehl *IDN nützliche Informationen als Antwort auf jede Identifikationsanfrage zurückgibt.

Sie können die SCPI-Befehle in der „main.c“-Datei des Projekts einrichten. Sie müssen den SCPI-Kontext zur Hauptfunktion hinzufügen, indem Sie die Eigenschaft user_context verwenden, um eine Referenz auf den Lightweight IP-Protokollsteuerblock zu übergeben, was die Initialisierung der SCPI-Bibliothek ermöglicht. Dann müssen Sie Ihre Funktionen hinzufügen, um libscpi die Kommunikation über die Netzwerkverbindung zu ermöglichen. In diesem Beispiel müssen die folgenden Funktionen definiert werden:

  • Die Funktion „SCPI_Write“ ermöglicht es libscpi, Daten über die Netzwerkverbindung zu senden.

  • Die Funktion „SCPI_Flush“ weist den Lightweight IP-Stack an, alle Daten im Puffer sofort zu senden.

  • Die Funktion „SCPI_Error“ bietet eine Möglichkeit, SCPI-Fehler zu behandeln. Für dieses einfache Beispiel können Sie dies mit einem einfachen Aufruf der printf-Funktion umgehen.

  • Die Funktion „SCPI_Control“ ist eine optionale Funktion, die es Ihnen ermöglicht, auf den Steuerkanal auf TCP-Port 5026 zu schreiben, was Sie für dieses Beispiel nicht benötigen werden.

  • Die Funktion „SCPI_Reset“ wird als Reaktion auf den Empfang eines Reset-Befehls aufgerufen und setzt alle Testinstrumente auf ihre Standardeinstellungen zurück. Da es für dieses einfache Beispiel keine verbundenen Testgeräte gibt, können Sie dies mit einem einfachen Aufruf der printf-Funktion umgehen.

Test

Schließlich muss der user_context für die neue Clientverbindung beim Herstellen einer Verbindung zum Lightweight IP-Stack festgelegt werden. Dies ermöglicht es, Daten über die Funktion client_recv aus dem Puffer an die SCPI-Bibliothek zu „SCPI_Input“ zu übergeben, um verarbeitet zu werden. Es ist zu beachten, dass diese Implementierung nicht mehrere Verbindungen gleichzeitig behandeln wird, aber eine gute Praxis der Netzwerkkonfiguration darstellt.

Das Kompilieren des aktualisierten Codes und das Hochladen auf den Mikrocontroller sollte zu einem Testsystem führen, das nicht nur weiterhin auf Pings aus einer Windows-Konsole reagiert, sondern auch auf SCPI-Befehle antwortet.

Projekt SCPI-Code-Testung

Dieses Beispielprojekt verwendete eine Rohde & Schwarz VISA Tester-Anwendung zum Testen von SCPI-Befehlen.

Test

Nachdem die Anwendung mit dem Testgerät verbunden wurde, ist der erste Test, eine Identitätsanfrage (IDN?) zu stellen. Dies ist ein empfohlener erster Schritt, und der Befehl wird vollständig von der SCPI-Bibliothek gehandhabt, was sicherstellt, dass die Kommunikation funktioniert und die Bibliothek korrekt eingerichtet ist. Das bedeutet, dass bei der Lösung von Problemen, die Tests mit einer Antwort von einem Peripheriegerät oder Testgerät erfordern, davon ausgegangen werden kann, dass die Kommunikation und die Bibliothek im Debugging-Prozess nicht in Frage kommen.

Das Testen der Peripheriegeräte erfordert das Hinzufügen neuer Muster zum `scpi_commands` Array, um die erforderlichen Funktionen zu implementieren. Aufrufe der Funktion „printf“ können für das Debugging der Funktionalität eingeschlossen werden und bieten eine einfache Methode, um die Ausführung des Codes zu überprüfen.

Test

Im Beispiel liest der Code den Zustand des Knopfes mit der Funktion „scpi_result_t IO_Btn“ in der zuvor für den Knopfhandler eingerichteten DAVE-App, wobei der Zustand mit der Antwort „SCPI_ResultBool“ gesendet wird. Der zurückgegebene Wert wird invertiert, da dieser Knopf ein aktives Low-Element ist.

Test

Die LED-Handler-Funktion parst den empfangenen Knopfzustandsparameter und setzt den entsprechenden LED-Zustand. Existieren keine Parameter, wird in diesem Beispiel keine Aktion durchgeführt. Dieser Schritt verwendet die Funktion „scpi_result_t IO_Led“, um seine Funktion auszuführen.

Mit dem programmierten Mikrocontroller können Sie den Code mithilfe der Konsole im DAVE-Tool testen. Dies wird den Empfang der Verbindung und die Operation des Identitätsanfragebefehls demonstrieren.

Test

Sie können den Zustand des Knopfes überprüfen, indem Sie eine SCPI-Abfrage senden und die Funktionalität testen, indem Sie beobachten, dass sich der zurückgegebene Zustand ändert, wenn Sie den Knopf drücken.

Sie können die LED-Funktionalität einfach testen, indem Sie Ein- und Ausschaltbefehle senden, den Zustand des Lichts beobachten und den Status der Konsole überwachen.

Mit einem korrekt funktionierenden Knopf und LED haben Sie die Grundlage für ein voll funktionsfähiges netzwerkverbundenes Instrument. Die Verbindung mit einer Testautomatisierungsplattform oder das Schreiben Ihres eigenen Testcodes ermöglicht es Ihnen, den Zustand des Knopfes aus der Ferne zu überprüfen und die LED zu steuern.

Fazit

Der Artikel zeigt, wie die Verwendung der integrierten Testumgebung DAVE mit einem Entwicklungsboard es Ihnen ermöglicht, Ihre eigene vernetzte Testausrüstung zu erstellen und mit Ihrer Laborausrüstung zu verbinden, um Labortests zu automatisieren.

Diese Schritt-für-Schritt-Anleitung ist für eine elementare Machbarkeitsdemonstration gedacht, aber das Befolgen der Schritte und das Erhalten eines funktionierenden Testsytems wird Sie mit allem ausstatten, was Sie benötigen, um Ihre eigenen Testinstrumente zu erstellen.

Wir werden die Prinzipien, die wir in diesem Projekt erkundet haben, nutzen, um in naher Zukunft ein praktisches Testgerät zu erstellen, also bleiben Sie dran für weitere Entwicklungen.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Mark Harris ist Ingenieur mit mehr als 12 Jahren vielfältiger Erfahrung in der Elektronikindustrie, die von Aufträgen für die Luft- und Raumfahrt und Verteidigung bis hin zu kleinen Produktanläufen, Hobbys und allem dazwischen reicht. Bevor er nach Großbritannien zog, war Mark Harris bei einer der größten Forschungsorganisationen Kanadas angestellt; jeder Tag brachte ein anderes Projekt oder eine andere Herausforderung mit sich, bei der es um Elektronik, Mechanik und Software ging. Er veröffentlicht außerdem die umfangreichste Open-Source-Datenbank-Bibliothek von Komponenten für Altium Designer, die so genannte Celestial Database Library. Mark hat eine Affinität zu Open-Source-Hardware und -Software und den innovativen Problemlösungen, die für die täglichen Herausforderungen dieser Projekte, erforderlich sind. Elektronik ist Leidenschaft; zu beobachten, wie ein Produkt von einer Idee zur Realität wird und mit der Welt interagiert, ist eine nie endende Quelle der Freude.

Sie können Mark direkt kontaktieren unter: mark@originalcircuit.com

Verwandte technische Dokumentation

Zur Startseite
Thank you, you are now subscribed to updates.