Software-Schnittstelle der Funktionsgeneratoren DDS 10/DDS 110
Aus ELVjournal
03/2008
0 Kommentare
Mit
der Veröffentlichung und Beschreibung der Übertragungsprotokolle der
beliebten DDS-Funktionsgeneratoren DDS 10/DDS 110 wird es dem
ambitionierten Hobbyprogrammierer ermöglicht, ein
eigenes Software-Interface zu programmieren. Dadurch ist es möglich, die
Signalgeneratoren über
ein simples Konsolenfenster oder über eine an die jeweiligen Bedürfnisse
angepasste grafische
Programmoberfläche zu bedienen.Vielseitige DDS-Generatoren
Die
beiden programmierbaren DDS-Funktionsgeneratoren DDS 10/DDS 110 sind
sehr universell im Frequenzbereich von 0,1 Hz bis 10 MHz einsetzbar. Sie
verfügen nicht nur über feine Einstellschritte von 0,1 Hz, eine Wobbel-
und Modula tions- Funktion und geben Sinus-, Rechteck- und
Dreiecksignale ab, sie sind auch vielseitig für die
Frequenzaufbereitung, z. B. von PLL-Synthesizern oder KW-Empfängern,
einsetzbar. Beide laufen zur Höchstform auf, wenn die zahlreichen
vorhandenen Möglichkeiten der Programmierung und Steuerung durch einen
PC genutzt werden. Ein kostenloses Programm hierzu ist im
ELV-Internet-Angebot bereits verfügbar. Natürlich liegt es, z. B. im
Amateurfunk- und Messtechnik- Bereich, nahe, dass der ambitionierte
Nutzer seine eigenen Programm-Applikationen an diese interessanten und
vielseitigen Funktionsgeneratoren „anbinden” möchte. Genau dies soll
durch die Veröffentlichung der Software- Schnittstelle möglich gemacht
werden. Der folgende Artikel gibt dem Programmierer alle Werkzeuge für
die Steuerung der beliebten Funktionsgeneratoren über eine Software-
Schnittstelle in die Hand.Verbindung mit Computer
Um
eine Datenverbindung zu dem PC herzustellen, muss eine
Hardware-Schnittstelle vorhanden sein, worüber die Kommunikation
stattfinden kann. Hier gehen die beiden DDS-Boards unterschiedliche
Wege.Das PC-Interface (Schnittstelle)
Das
DDS-10-Board ist als Stand-alone-Gerät mit eigenem Display und
vollständigen Bedienelementen konzipiert und kann so auch autark
arbeiten. Es verfügt über eine serielle UART-Schnittstelle des zentralen
Mikrocontrollers. Zur Anbindung an einen PC benötigt dieses Gerät einen
zusätzlichen Schnittstellenwandler, um die UART-Schnittstelle des
Mikrocontrollers für den Computer nutzbar zu machen. Dabei wird entweder
der reelle COM-Port des Computers verwendet oder über USB ein
virtueller COM-Port eingesetzt. Welche Schnittstellenwandler genutzt
werden können und wie diese anzuschließen sind, ist in der
Bedienungsanleitung der DDS-10-PC-Software nachzulesen. Das ELV-Programm
hält dazu zwei geeignete USB-Module sowie ein RS232-Modul bereit.Die
Datenübertragung beim DDS 10 erfolgt mit einer Datenübertragungsrate
von 9600 Bit/s mit 8 Datenbits, 2 Stoppbits und gerader Parität. Nur mit
diesen Einstellungen ist die Kommunikation möglich. Der
Funktionsgenerator DDS 110 hingegen verfügt bereits über einen
USB-zu-UART-Schnittstellenwandler der Firma Silicon Laboratories auf der
Platine. Durch diesen Baustein kann der Computer über die
USB-Schnittstelle direkt mit dem DDS 110 kommunizieren, dazu ist nur der
beigefügte Treiber zu installieren. Es wird keine zusätzliche Hardware
benötigt. Beispielprogramm
Um
den Einstieg zur Programmierung eines eigenen Software- Interfaces für
den DDS 110 zu erleichtern, wird auf der Produktseite des DDS 110 der
Quellcode eines kleinen Konsolenprogramms angeboten. Zusätzlich sind
alle notwendigen Datenblätter und Dateien zur Verwendung des
USB-zu-UARTSchnittstellenwandlers CP2102 von Silicon Laboratories
zusammengefasst. Der DDS 110 überträgt seine Daten mit einer Datenrate
von 76.800 Bit/s, 8 Datenbits, 1 Stoppbit und keiner Parität. Diese
Einstellungen sind dann im eigenen Programmcode vorzunehmen.Kommen
wir damit zur eigentlichen Protokollbeschreibung. Jeder gesendete
Befehl und die dazugehörige Antwort wird in einem definierten
Protokollrahmen übertragen. Innerhalb dieses Rahmens werden die
eigentlichen Nutzdaten übertragen. Der Aufbau dieser Protokollrahmen ist
in den Tabellen 1 und 2 dargestellt. Wie aus den Tabellen zu erkennen
ist, sind die Protokollrahmen der beiden DDS-Boards unterschiedlich
aufgebaut. Beim DDS 10 wird ein Datenpaket mit dem Startzeichen „STX“
(0x02) eingeleitet und mit dem Stoppzeichen „ETX“ (0x03) beendet. Die
Zeichen stammen aus dem ASCII-Zeichensatz. Diese Start- und Stoppzeichen
dürfen innerhalb der Nutzdaten nicht wieder vorkommen, da das
Datenpaket in diesem Fall nicht korrekt ausgewertet werden kann. Falls
entsprechende Zeichen in den Nutzdaten vorhanden sind, müssen diese
umcodiert werden. 
|
Bild 1: Codierungsanweisung von Steuerzeichen beim DDS 10 |
Dazu
wird das ASCII-Steuerzeichen „ENQ“ (0x05) verwendet und nach dem Schema
in Abbildung 1 umgesetzt. Ebenfalls ist in Beispielen zu den
Protokollrahmen die Verwendung dieser Codierung zu sehen. Im Gegensatz
zum DDS 10 ist der Protokollrahmen des DDS 110 etwas umfangreicher. Es
werden zusätzliche Informationen übertragen, die der
Kommunikationssicherheit dienen. Der Protokollrahmen des DDS 110 beginnt
wie der des DDS 10 mit dem Startzeichen „STX“. Anschließend wird eine
Paketnummer übertragen, diese hat beim DDS 110 jedoch keine Relevanz und
besitzt deshalb immer den Wert NULL. Die nachfolgenden 2 Byte enthalten
die Länge der nicht codierten Nutzdaten. Dabei wird zuerst das untere
und anschließend das obere Byte dieses 16-Bit-Wertes übertragen. Nun
folgen die Nutzdaten selbst, auch hier erfolgt wieder eine Umcodierung
der Daten. Anders als beim DDS 10 braucht das Stoppzeichen „ETX“ nicht
beachtet zu werden, da es der Protokollrahmen des DDS 110 nicht nutzt.
Außerdem ist das zur Umcodierung genutzte ASCII-Steuerzeichen hier das
„DLE“ (0x10) anstatt des „ENQ“.
|
Bild 2: Codierungsanweisung von Steuerzeichen beim DDS 110 |
Abbildung
2 zeigt das Schema der Umcodierung beim DDS 110. Nach den Nutzdaten
folgt zum Abschluss die 2 Byte lange CRC16-Checksumme. Sie wird mit dem
Polynom 0x8005 nach dem allgemein bekannten Berechnungsverfahren
bestimmt. Die Checksumme wird über alle übertragenen Zeichen gebildet,
für die beiden Checksummenbytes selbst wird jeweils eine NULL
eingesetzt. Auch hier erfolgt zuerst die Übertragung des unteren und
anschließend des oberen Bytes dieses 16-Bit-Wertes.Befehlsübersicht
Die
beiden DDS-Boards verfügen für die Kommunikation mit einem Computer
über einen Befehlssatz mit einer Vielzahl von Befehlen. Die folgenden
Tabellen geben eine Übersicht hierzu. In der Tabelle 3 sind zunächst die
von DDS 10 und DDS 110 gemeinsam benutzten Befehle dargestellt. Die
beiden Tabellen 4 und 5 zeigen hingegen Befehle, die speziell zu einem
der DDS-Boards gehören.Beschreibung der Befehle
Nachdem
wir uns eine generelle Übersicht über die verfügbaren Befehle
verschafft haben, sollen diese in der Folge genauer erläutert werden.
Dazu ist es notwendig, die Grundlagen der Kommunikation zwischen PC und
DDS-Board zu verstehen. Neben dem Protokollrahmen sind auch die
Nutzdaten von gesendeten Befehlen und deren Antworten klar strukturiert.Aufbau eines Befehls
Im
ersten Byte der Nutzdaten ist das Befehlswort enthalten, im Anschluss
folgen die Parameter. Einige Befehle benötigen keine Parameterangabe,
bei diesen Befehlen bestehen die Nutzdaten nur aus dem Befehlswort.Aufbau einer Antwort
Nachdem ein Befehl zum DDS-Board gesendet wurde, erwartet
der PC eine Antwort auf den Befehl. Das erste Byte der
Nutzdaten enthält das zuvor gesendete Befehlswort, damit ist
eindeutig zu erkennen, worauf geantwortet wird. Nach dem
Befehlswort werden die Antwortparameter übertragen:Neben
den Antworten, die konkrete Werte wie die aktuelle Frequenz
zurückgeben, gibt es auch allgemeine Antworten. Die se werden
eingesetzt, um einfache Befehle zu bestätigen oder einen Fehler zu
zeigen. Hierfür werden zwei ASCII-Steuerzeichen eingesetzt. Mit dem
Zeichen „ACK“ (0x06) werden positive Quittierungen bestätigt. Das
Zeichen „NAK“ (0x15) weist auf einen Fehler hin, dies kann durch einen
unbekannten Befehl oder durch ungültige Parameter verursacht werden. Bei
Parametern und Antworten, die einen 16-Bit- bzw. 32-Bit- Wert
benötigen, wird zuerst das oberste und dann die nachfolgenden Bytes
übertragen, wie es im nachfolgenden Beispiel zu sehen ist. Eine
detaillierte Übersicht der Befehle und der zu erwartenden Antworten ist
in der Befehlstabelle dargestellt, die Sie auf der Produktseite
einsehen können. Fachbeitrag online und als PDF-Download herunterladen
Inhalt
Sie erhalten den Artikel in 2 Versionen:
als Online-Version
als PDF (3 Seiten)
Sie erhalten folgende Artikel:
- Software-Schnittstelle der Funktionsgeneratoren DDS 10/DDS 110
Hinterlassen Sie einen Kommentar: