Academic Über NI Veranstaltungen NI Developer Zone Support Lösungen Online Store Kontakt MyNI

Verwendung des taktgenauen ARM-Mikrocontroller-Simulators

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken

Verwendung des taktgenauen ARM-Mikrocontroller-Simulators

Das LabVIEW Embedded Module for ARM Microcontrollers unterstützt den RealView-µVision-ARM-Simulator, der taktgenaues Timing und Logiksimulation ermöglicht. Des Weiteren ist der Simulator mit vielen Peripherieschnittstellen des Prozessors kompatibel, so dass Stimulus-Antwort-Funktionen für die Fehlerbehebung und Überprüfung von Anwendungen genutzt werden können. Mithilfe dieser Funktion können große Teile der Anwendung bereits vor Fertigstellung der Hardware entwickelt und überprüft werden.

In diesem Tutorium werden verschiedene Methoden näher beschrieben, welche die schnellere Entwicklung von hochwertigem Code ermöglichen, einschließlich der Co-Simulation mit der SPICE-Simulationsumgebung NI Multisim.

 

Ausführung einer Anwendung auf dem Simulator

  1. Bevor eine Anwendung auf dem LabVIEW-Simulator ausgeführt werden kann, muss zuerst ein LabVIEW-Projekt erstellt werden.
  • Wählen Sie aus dem Dropdown-Menü ARM-Projekt aus und klicken Sie auf Starten (Go), um den ARM-Projektassistenten zu starten.

     
    • Klicken Sie auf Weiter (Next), um ein neues VI zu erstellen.
    • Wählen Sie den Prozessor aus, den Sie simulieren möchten. In diesem Tutorium wird die Evaluierungskarte MCB2300 simuliert. Klicken Sie auf Weiter (Next).

 

  • Wählen Sie die Option Auf Simulator ausführen (Run on Simulator) und klicken Sie anschließend auf Fertigstellen (Finish). LabVIEW erzeugt nun eine Projektdatei und zwei VIs. Sie werden aufgefordert, alle diese Dateien zu speichern.

 

 

  1. Nun können Sie Ihre Anwendung erstellen. In diesem Beispiel wurde ein einfaches VI entwickelt, das einen Analogeingang liest und die Werte mit einem festgelegten Grenzwert vergleicht. Wird dieser Grenzwert überschritten, leuchtet LED0 auf. 
  • Über einen Rechtsklick im LabVIEW-Projekt auf das Zielgerät MCB2300 wählen Sie Neu>>Elemente-I/O (New>>Elemental I/O) und fügen dem Projektbaum einen I/O-Knoten hinzu.

  • Fügen Sie dem Projekt Analogeingang >> AIO  (Analog Input >> AIO) und Digitalausgang >> LED0  (Digital Output >> LED0) hinzu.

  • Wechseln Sie über das Menü Fenster>>Blockdiagramm anzeigen (Window>>Show Block Diagram) in die Blockdiagrammansicht des geöffneten VIs.

  • Legen Sie die Elemente-I/O-Knoten des Projekts per Drag-and-drop im Blockdiagramm ab.

  • Vervollständigen Sie das Blockdiagramm und das Frontpanel wie dargestellt. Beachten Sie, dass der vom A/D-Wandler ausgegebene Wert die Integer-Darstellung des 10-bit-A/D-Werts ist, d. h. ein Wert von 512 entspricht ca. 1,66 V.

 

  1. Klicken Sie auf den Ausführpfeil (Run), um den C-Code zu generieren und zu kompilieren und die Anwendung auf dem Simulator auszuführen. Im Prozessorstatusfenster wird der Status des Simulators angezeigt.

 

Manuelle Änderung des Analogeingangswerts

Während die Anwendung ausgeführt wird, kann in den simulierten A/D-Wandler ein Analogwert eingegeben werden, um die Codelogik zu überprüfen. Hierfür gibt es zwei Möglichkeiten: manuell oder automatisch. Um den Wert manuell zu ändern, muss direkt auf die µVision-Umgebung zugegriffen werden.

  1. Um µVision zu starten, klicken Sie mit der rechten Maustaste auf das MCB2300-Ziel im Projektbaum und wählen Sie Keil µVision.

 

  1. In der Keil-µVision-Umgebung wählen Sie Peripheriegeräte>>A/D-Wandler>>A/D-Wandler 0 (Peripherals>>A/D Converter>>A/D Converter 0). Dadurch wird die Oberfläche für die Simulation von Peripheriegeräten gestartet.


  2. Im Bereich Analogeingänge (Analog Inputs) ändern Sie den Wert des AD00 auf 2,0. Dies verändert den Wert, den der simulierte A/D-Wandler an LabVIEW ausgibt. Der Wert wird in Volt angegeben. Der 10-bit-A/D-Wandler verfügt über einen gültigen Eingangsbereich von 0 bis 3,3 V, so dass 2 V einen Integer-Wert von 620 haben. Dies kann über die folgende Formel errechnet werden.

  1. Mithilfe des LabVIEW-Anzeigeelements kann der Ausgabewert angezeigt werden. Zusätzlich kann der Wert der digitalen Anschlüsse über Peripherie>>GPIO Fast Interface>>Anschluss 2 (Peripherals>>GPIO Fast Interface>>Port 2) angezeigt werden. Die LED-Anzeige ist mit Anschluss 2, Kanal 0 verbunden.

 

Automatisierung von Stimulus-Antwort-Funktionen

Die Alternative zur oben beschriebenen manuellen Methode ist die Verwendung eines VIs zum Senden und Empfangen von Daten vom und zum simulierten Peripheriegerät. Das LabVIEW Embedded Module for ARM Microcontrollers installiert eine zusätzliche Palette für die einfache Entwicklung komplexer und automatisierter Stimulus-Antwort-Prüfanwendungen für simulierte Embedded-Systeme. 

  1. Öffnen Sie das vom Assistenten erzeugte Simulierte-I/O-VI. Es befindet sich finden im LabVIEW-Projekt unter Mein Computer.

  2. Wenn Sie das Blockdiagramm öffnen, sehen Sie, dass bereits Code für die Kommunikation mit dem Simulator besteht. 

  • Der Code konfiguriert den Zeitschritt der Simulation, öffnet eine Verbindung zum Simulator und unterbricht den Simulator, damit LabVIEW Daten übertragen kann.

  • Eigener Code zur Durchführung von Stimulus-Antwort-Funktionen kann im mittleren Frame der Sequenzstruktur eingefügt werden.

  • Sobald die Daten aktualisiert sind, wird der Simulator wieder ausgeführt. Sobald die Simulation vollständig ausgeführt ist, wird die Verbindung beendet.
  1. In diesem Tutorium wird eine in einer LabVIEW-Messdatei gespeicherte Eingabesequenz an den Simulator gesendet.

  • Klicken Sie mit der rechten Maustaste auf die While-Schleife und ersetzen Sie sie durch eine For-Schleife.

  • Wählen Sie aus der Funktionenpalette Express>>Datei-I/O (Express>>File I/O) ein VI zum Lesen der LabVIEW-Messdatei aus und konfigurieren Sie es entsprechend. Weitere Informationen zu LabVIEW-Messdateien entnehmen Sie bitte dem Tutorium Analysieren und Speichern eines Signals.

  • Mithilfe der VIs in der Palette ARM>>ARM-Signalerzeugungssimulation (ARM>>ARM Simulation Signal Generation) können Simulationsdaten Punkt für Punkt gelesen und geschrieben werden.

  • Die Daten werden gesammelt und anschließend in einem Signalverlaufsdiagramm dargestellt.
  1. Sobald die Simulation vollständig ausgeführt wurde, können die Ergebnisse mit dem erwarteten Verhalten verglichen werden. In diesem Screenshot steigt der Signalverlauf des Booleschen Ausgangs an, wenn der Eingangswert 1,66 V überschreitet.

 

Validierung des vollständigen Designs

Ein Embedded-ARM-Mikrocontroller ist nur ein Teil eines größeren Designs. Das vollständige Design umfasst zudem analoge und digitale Bestandteile, die sich außerhalb des Embedded-Geräts befinden. Aufgrund dessen müssen Signale, die an den Mikrocontroller gesendet werden, häufig konditioniert werden, z. B. durch Filterung und Verstärkung, um zu einem geeigneten Stimulus zu werden. Diese externen Geräte beeinflussen das Verhalten eines Embedded-Geräts, so dass nur die Simulation des ARM-Mikrocontrollers nicht unbedingt ausreichenden Einblick in das Systemverhalten bietet.

Um die Simulationsumgebung des LabVIEW Embedded Module for ARM Microcontrollers in vollem Maße zu nutzen, kann das Design in NI Multisim integriert werden. Eine Simulation zwischen den beiden Designstadien ermöglicht eine bessere Analyse des Einflusses externer Signalkonditionierung. Die Simulation über mehrere Umgebungen wird Co-Simulation genannt und dient zur Eliminierung typischer Fehler sowie zur präzisen Fehlerbehebung und Überprüfung von Anwendungscode, bevor dieser implementiert wird.

Multisim ist eine einfach zu handhabende, intuitive und leistungsstarke Mixed-Mode-Simulationsumgebung für die Schaltungsentwicklung. Durch die Integration in die LabVIEW-Umgebung steht Anwendern nun eine einzigartige Plattform zur Koordination von Leiterplattenentwurf und -validierung zur Verfügung. Alle in Multisim und LabVIEW simulierten Messungen können im LabVIEW-Messdateiformat gespeichert werden. Die native Kommunikationssprache zwischen diesen NI-Produkten ist die LabVIEW-Messdatei, so dass Ausgabewerte einfach von einem simulierten Knoten zum nächsten übertragen werden können.

Simulation des vollständigen Designs mit LabVIEW und Multisim

Das vorhergehende LabVIEW-Beispiel soll auch zur Validierung des Verhaltens des vollständigen Designs dienen.
Eine gängige Voraussetzung zum Anschluss eines Signals an einen ARM-Mikrocontroller ist die Signalkonditionierung. So muss z. B. ein Spannungsteiler eingesetzt werden, um eine Spannung zu reduzieren, damit diese als Stimulus für einen ARM-Prozessor eingesetzt werden kann.

1. Um ein Analogsignal an einen Mikrocontroller anzuschließen, muss zuerst eine Schaltung in Multisim entwickelt werden.

 

  • Öffnen Sie NI Multisim über Start > Programme > National Instruments > Circuit Design Suite 10.0 > Multisim  (Start > All Programs > National Instruments > Circuit Design Suite 10.0 > Multisim).

  • Erstellen Sie die nachfolgend dargestellte Schaltung (sie können auch die Schaltungsdatei im Anhang simple_voltage_divider.ms10 öffnen).

  • Doppelklicken Sie auf den Funktionsgenerator (XFG1) und legen Sie die Frequenz auf 10 KHz sowie die Amplitude auf 5 Vp fest.

  • Klicken Sie anschließend auf die Schaltfläche zum Starten der Simulation (in der Abbildung rot hervorgehoben).

  • Doppelklicken Sie nun auf das Oszilloskop (XSC2), um die simulierten Ausgabewerte des Spannungsteilers zu sehen.

  • Klicken Sie auf die Schaltfläche Speichern (Save) im Oszilloskop (siehe Abbildung).

  • Ändern Sie den Dateityp im Drop-Down-Menü "Speichern als" ("Speichern als") in Textbasierte Messdatei (*.lvm) und speichern Sie die Datei unter dem Namen multisim_output.lvm.
  • Klicken Sie anschließend im Dialog Einstellungen für Datenneuabtastung (Data resampling settings) auf OK.

 

  1. Jetzt kann die simulierte Antwort multisim_output.lvm in die LabVIEW-Simulationsumgebung übertragen und an den ARM-Mikrocontroller angeschlossen werden.
  • Vor der Simulation sollten die folgenden Anpassungen am LabVIEW-VI vorgenommen werden.
  • Der neue VI-Algorithmus speichert die Ausgabewerte des ARM-Mikrocontrollers in einer LVM-Datei.
  • Doppelklicken Sie auf das Express-VI Messwerte aus Datei lesen (Read from Measurement File).
  • Im Dialog Dateiname rufen Sie die vor kurzem gespeicherte Datei multisim_output.lvm auf.
  • Klicken Sie auf den Ausführpfeil (Run), um den Code zu kompilieren und auszuführen.

 

Sobald die Simulation vollständig ausgeführt wurde, können die Ergebnisse mit dem erwarteten Verhalten verglichen werden. In diesem Screenshot steigt der Signalverlauf des Booleschen Ausgangs erneut an, wenn der Eingangswert 1,66 V überschreitet.


Diese integrierte Plattform bietet eine flexible Strategie zur Validierung des vollständigen Embedded-Designs.

Die gespeicherten Simulationsdaten des VIs (gespeichert unter dem Namen LabVIEW_output.lvm) können nun erneut in der Multisim-Umgebung verwendet werden. Die simulierten Daten können entweder gespeichert oder als Stimulus in Multisim eingesetzt werden. Die Verwendung sowohl von analogen Schaltungen als auch dem Embedded-Prozessor ermöglicht einen besseren Einblick in die simulierten Daten und somit ein besseres Verständnis des gesamten Systems.

Downloads

multisim_output.lvm

simple_voltage_divider.ms10

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken

AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).