DDS130/DDS30 – das eigene Softwareinterface programmieren

0,00
Aus ELVjournal 02/2014     0 Kommentare
 DDS130/DDS30 – das eigene Softwareinterface programmieren

Inhalt des Fachbeitrags

PDF- / Onlineversion herunterladen

Die beiden mikroprozessorgesteuerten Funktionsgeneratoren DDS130 und DDS30 sind nicht nur über eine PC-Schnittstelle bzw. die internen Bedienelemente steuerbar, ihre Kommunikationsschnittstelle bietet sich für weitere Steuerungsmöglichkeiten an. Mit der hier aufgeführten Offenlegung und Beschreibung der Übertragungsprotokolle eröffnen sich dem ambitionierten Programmierer genau diese Möglichkeiten. Eine Demosoftware ermöglicht die ersten praktischen Schritte dahin.

Schnittstelle offengelegt

Der Funktionsgenerator DDS130 wurde so konzipiert, dass die gesamte Bedienung des Geräts über eine PC-Software erfolgt. Mit Kenntnis des Kommunikationsprotokolls ist aber auch eine Integration des Funktionsgenerators in ein eigenes Projekt bzw. in eine eigene Anwendung möglich, und zwar unabhängig von der beiliegenden PC-Software. Diese Möglichkeit ergibt sich ebenso für den DDS30, mit beiden lässt sich über dasselbe Protokoll kommunizieren. Da der DDS30 als autarkes Gerät konzipiert wurde, muss zur Ansteuerung durch ein externes Gerät zuerst am DDS30 eine USB-Schnittstelle installiert werden. Zur Ansteuerung beider Geräte steht eine Demosoftware und die Protokollbeschreibung [1] zur Verfügung.

USB-Schnittstelle für DDS30

Anders als der DDS130 verfügt der DDS30 nicht über eine eigene USB-Schnittstelle. Jedoch befinden sich an der Stiftleiste ST2 des DDS30 alle notwendigen Daten- und Versorgungsleitungen, um eine USB-Schnittstelle mit einfachen Mitteln nachzurüsten. Für die Nachrüstung einer USB-Schnittstelle eignen sich hervorragend das Mini-USB-Modul UM2102 [2] sowie das optisch getrennte USB-Modul UO2102 [3], welches zusätzlich eine galvanische Trennung zwischen dem PC und dem DDS30 erzeugt. Durch die galvanische Trennung werden zusätzlich eventuelle Störsignale verhindert, die über das USB-Kabel in den Signalpfad des DDS30 gelangen könnten. In den Tabellen 1 bis 3 sind die für die Datenkommunikation der einzelnen Komponenten relevanten Stiftleisten und deren Pins aufgelistet.



In den zugehörigen Bildern 1 und 2 sind die jeweiligen Anschlussverbindungen des DDS30 mit dem UM2102 bzw. dem UO2102 dargestellt.
Bild 1: Anschluss des DDS30 an das USB-Interface UM2102
Bild 1: Anschluss des DDS30 an das USB-Interface UM2102
Bild 2: Anschluss des DDS30 an das USB-Interface UO2102
Bild 2: Anschluss des DDS30 an das USB-Interface UO2102

Firmware-Update für DDS30

Damit der DDS30 mit der Demosoftware verwendet werden kann, muss zunächst ein Firmware-Update auf die Version 2.0 oder höher eingespielt werden. Erst durch dieses Update werden die benötigten Kommunikationsprotokolle über die UART-Schnittstelle aktiviert. Dazu ist der Bootloader des DDS30 über den Menüpunkt 5.5 Firmwareupdate zu starten und das auf der Produktseite bereitgestellte Firmware-Update über die Updatesoftware zu installieren.

Verbindung des DDS30 mit dem PC

Der Zugriff auf den DDS30 erfolgt mittels virtuellem COM-Port (VCP). Hierfür muss zuvor der entsprechende Treiber von Silabs auf dem System installiert werden. Die Verbindung des DDS30 mit dem PC über den VCP kann mit einem beliebigen Terminalprogramm getestet werden, beispielsweise HTerm [4]. Die Verbindungseinstellungen für die Verbindung zum COM-Port finden sich in Tabelle 4.

Der entsprechende Treiber für den DDS130 für die USB-Kommunikation liegt sowohl der beiliegenden PC-Software als auch der Demosoftware bei. Die benötigten Kommunikationsparameter für die USB-Verbindung finden sich in Tabelle 5.

Das Kommunikationsprotokoll

Beide Funktionsgeneratoren nutzen ein Kommunikationsprotokoll, welches dem des 5x5x5-RGB-Cube oder des ID100 stark ähnelt. Die Datenübertragung an den DDS30 bzw. DDS130 erfolgt in einem festen Kommunikationsrahmen (siehe Tabelle 6).

Bei der Übertragung gibt es zwei Steuerzeichen, die in den zu übertragenden Daten nicht vorkommen dürfen: Das Start-Zeichen (0x02) und das Escape-Zeichen (0x10). Wenn eines dieser Steuerzeichen in der Länge, den Nutzdaten oder der Prüfsumme enthalten ist, wird diesem das Escape-Zeichen vorangestellt und das höchstwertige Bit (0x80) gesetzt. Hieraus ergeben sich folgende Umsetzungen: 0x02 wird zu 0x1082 und 0x10 wird zu 0x1090. Die einzelnen Befehle mit Parameterbeschreibungen können den Tabellen 7a–c entnommen werden.



Bei allen 16-Bit- (2 Byte) und 32-Bit-Werten (4 Byte) wird das jeweils höchstwertige Byte zuerst übertragen (Big Endian). Das folgende Beispiel zeigt die zu sendenden Byte, die die Verbindung des DDS mit einem PC aktiviert:

Zur Sicherung der Übertragung wird aus den zu übertragenden Daten eine Prüfsumme (CRC) mit einer Länge von 16 Bit (2 Byte) berechnet. Die Parameter für die Berechnung sind der Initialwert (0xFFFF) und das CRC-Polynom (0x8005). Details zur Prüfsummenberechnung sind beispielsweise auf Wikipedia [5] zu finden. In der Demosoftware wird für die Berechnung eine eigene „CRC16“-Klasse verwendet, die die CRC-Berechnung letztlich durchführt. Nach der Initialisierung wird die Prüfsumme durch Übergabe der Daten an die Shift-Methoden berechnet. Hierbei ist zu beachten, dass zuvor die Steuerzeichen aus der Länge und den Nutzdaten ersetzt werden müssen, bevor diese an die Shift-Methoden übergeben werden. Anschließend werden eventuelle Steuerzeichen aus dem errechneten CRC entfernt und zusammen mit den übrigen Daten an das Gerät übertragen. Die Antwort des Geräts setzt sich nach demselben Muster zusammen, einzig das Feld für die Parameter wird durch die Nutzdaten der Antwort ersetzt. In der Demosoftware sind Routinen definiert, die die Byte eines Befehls automatisch anhand des Befehlszeichens und der Parameter erzeugen und die die Nutzdaten aus der Antwort auf einen gesendeten Befehl extrahieren. Die Kommunikationsprotokolle des 5x5x5-RGB-Cube oder des ID100 unterscheiden sich nur durch das Fehlen der Paketnummer.

Verfügbare Befehlszeichen

Bevor mit dem DDS30 bzw. DDS130 über eine PC-Software kommuniziert werden kann, muss die Verbindung mittels des Befehlszeichens „x“ und des Parameters 0x01 (siehe Befehlszeichenübersicht in den Tabellen 7a–c) initialisiert bzw. aktiviert werden. Das DDS130 besitzt auf der Vorderseite unterhalb der LED zur Energieversorgung eine LED, die den aktuellen Status der Geräteverbindung anzeigt. Das DDS30 zeigt die aktive Verbindung im Display an. Nach Ansteuerung des DDS muss mit demselben Befehl und dem Parameter 0x00 die Verbindung zwischen DDS und PC-Software wieder getrennt werden, um einen konsistenten Zustand des Geräts zu gewährleisten. Das erfolgreiche Umschalten des Verbindungsstatus wird mit einem 0x06 (ASCII-Zeichen für ein Acknowledge/Bestätigung) quittiert. Beide Geräte besitzen drei Betriebsmodi: einen Standard-, einen Wobble- und einen Modulationsmodus. Der Betriebsmodus kann mit dem Befehl „e“ (0x65) gesetzt und mit „E“ (0x45) ausgelesen werden. Bei den Befehlen zum Setzen („f“/0x66) und Auslesen („F“/0x46) der Frequenz wird der jeweilige Wert in Form von vier Byte ausgedrückt. Der DDS30 und der DDS130 erzeugen Frequenzen zwischen 0,25 Hz bis 30 MHz in einem Intervall von 0,25 Hz. Die zu setzende Frequenz wird zuerst mit 100 multipliziert, um sich möglicher Dezimalstellen zu entledigen. Dieser Wert wird, ausgedrückt als 32-Bit-Zahl (Big Endian), zur Kommunikation genutzt. Infolgedessen ergibt sich beispielsweise für die Frequenz 2.150.300,75 Hz folgendes Muster:

Parameter 1: (215030075 >> (0 * 8)) & 0xFF = 0x0C
Parameter 2: (215030075 >> (1 * 8)) & 0xFF = 0xD1
Parameter 3: (215030075 >> (2 * 8)) & 0xFF = 0x19
Parameter 4: (215030075 >> (3 * 8)) & 0xFF = 0x3B

Diese Vorgehensweise kann beispielhaft für alle Parameter angewandt werden, die mehr als 1 Byte benötigen.

Ansteuerung mit der Demosoftware

Die mit ihrem Quelltext veröffentlichte Demosoftware zeigt eine Ansteuerung des DDS30 bzw. DDS130 anhand des zuvor erläuterten Protokolls. Sie ist eine Konsolenanwendung und wurde in der Sprache C# für das .NET-Framework 3.5 erstellt. Die Bearbeitung und das Starten können beispielsweise über eine der kostenlos verfügbaren Visual-Studio-Express-Versionen [6] erfolgen. Sowohl der DDS30 als auch der DDS130 lassen sich über die Demosoftware ansprechen, eine entsprechende Auswahl erfolgt beim Starten der Software. Nach einer erfolgreichen Verbindung kann einer von vier Menüpunkten ausgewählt werden, die jeweils einzelne mögliche Befehle der Befehlstabelle verdeutlichen. Hierzu gehören die explizite Aktivierung und Deaktivierung der PC-Verbindung zum DDS (Befehl „x“), jeweils die Ausgabe und Änderung der aktuellen Frequenz (Befehle „f“ und „F“) und der aktuellen Signalform (Befehl „s“ und „S“) sowie eine Ausgabe aller aktuell gesetzten Einstellungen des Geräts (Befehl „P“). Die genutzten Klassen für die Gerätekommunikation und der unter Umständen dazugehörigen DLL für die USB-Verbindung, zur Prüfsummenberechnung und der Generierung der Ansteuerungsbefehle können in eigene Projekte übernommen und genutzt werden.

Weitere Infos:

[1] Download der Demosoftware mit folgenden Web-Codes:
      DDS130: #1282           DDS30: #1283
[2] UM2102 – mehr unter Web-Code: #1269
[3] UO2102 – mehr unter Web-Code: #1270
[4] HTerm zur Kommunikation des DDS30 über VSP ohne separate Software: www.der-hammer.info/terminal
[5] Wikipedia-Artikel zur Prüfsummenberechnung: http://de.wikipedia.org/wiki/Zyklische_Redundanzprüfung
[6] Kostenlose Entwicklungsumgebung: Microsoft Visual Studio 20XX Express unter: www.elv.de/l/?l=visualstudio

Fachbeitrag als PDF-Download herunterladen

Inhalt

Sie erhalten den Artikel in 1 Version:

pdf  als PDF (6 Seiten)

Sie erhalten folgende Artikel:
  • DDS130/DDS30 – das eigene Softwareinterface programmieren
ProdukteForen
DDS-Funktionsgenerator DDS 130, 30 MHz, Komplettbausatz

DDS-Funktionsgenerator DDS 130, 30 MHz, Komplettbausatz


EUR 109,95*
sofort versandfertig Lieferzeit:1-2 Werktage2
30-MHz-DDS-Funktionsgenerator-Board DDS30, Komplettbausatz

30-MHz-DDS-Funktionsgenerator-Board DDS30, Komplettbausatz


EUR 129,95*
sofort versandfertig Lieferzeit:1-2 Werktage2
Optisch getrenntes USB-Modul UO2102, Komplettbausatz

Optisch getrenntes USB-Modul UO2102, Komplettbausatz


EUR 12,95*
sofort versandfertig Lieferzeit:1-2 Werktage2


Hinterlassen Sie einen Kommentar:
(Anmeldung erforderlich)
  Name
  E-Mail