Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

System zum Testen asynchroner serieller Schnittstellen mit NI LabVIEW

  Print

Bild 1: Bedienoberfläche

Author(s):
Dipl.-Ing. (FH) Martin Brunner - Siemens AG Österreich
Dipl.-Ing. Martin Misura - Siemens Program and System Engineering
Stefan Lechner - Fachhochschule Technikum Wien

Industry:
ATE/Instrumentation

Products:
FPGA Module, LabVIEW

The Challenge:
In der Fernwirktechnik werden häufig immer noch asynchrone serielle Schnittstellen eingesetzt. Standard-Datentester zur Überprüfung dieser Schnittstellen sind einerseits teuer, andererseits sind sie nicht in der Lage, alle geforderten Schnittstelleneigenschaften zu überprüfen. Es wurde daher nach einer Lösung gesucht, die sowohl die Funktionalität von Standard-Datentestern abdeckt und zusätzlich die speziellen Anforderungen zum Test der Fernwirkkanäle erfüllt.

The Solution:
Entwicklung eines Messgerätes für die Überprüfung von seriellen asynchronen Schnittstellen, welches es ermöglicht mehrere Kanäle von einander unabhängig zu testen und bestimmte Sendeparameter wie auch die überwachten Eigenschaften zu konfigurieren.

"Mit LabVIEW FPGA lassen sich ohne spezielle VHDL-Kenntnisse komplexe Anwendungen mit FPGA Hardware realisieren. "

1 Kurzfassung

In der Fernwirktechnik werden häufig immer noch asynchrone serielle Schnittstellen eingesetzt. Standard-Datentester zur Überprüfung dieser Schnittstellen sind einerseits teuer, andererseits sind sie nicht in der Lage, alle geforderten Schnittstelleneigenschaften zu überprüfen. Es wurde daher nach einer Lösung gesucht, die sowohl die Funktionalität von Standard-Datentestern abdeckt und zusätzlich die speziellen Anforderungen zum Test der Fernwirkkanäle erfüllt.

Der entwickelte Datentester ist in der Lage, bis zu vier Fernwirkkanäle gleichzeitig und unabhängig von einnander zu testen und dabei die Einhaltung der Protokolle IEC 60870-5-1 / IEC 60870-5-101 zu überwachen.

Der Datentester besteht aus einem Desktop-PC mit einer eingebauten National Instruments 7813R PCI-FPGA-Karte und einer selbst entwickelten Leiterplatte für die Umsetzung zwischen FPGA- und RS-232-Pegel.

Sowohl die Software für die graphische Bedienoberfläche wie auch das Design für das FPGA wurden mit LabVIEW erstellt.

2 Einleitung

Messgeräte für die Überprüfung von seriellen asynchronen Schnittstellen sind Standard und werden (immer noch) in vielen Ausprägungen hergestellt. Problematisch wird es aber, wenn mehrere Kanäle von einander unabhängig getestet, und bestimmte Sendeparameter wie auch die überwachten Eigenschaften konfiguriert werden können sollen.

Für den Test von Fernwirkkanälen, die die Normen IEC 60870-5-1 / IEC 60870-5-101 einhalten müssen, ist es einerseits notwendig im Sender den Abstand zwischen den einzelnen Zeichen, bzw. zwischen Blöcken von Zeichen, einzustellen, andererseits ist es notwendig diese Abstände im Empfänger zu messen.

Der Hintergrund für diese Forderungen besteht darin, dass die oben genannten Normen innerhalb eines Datentelegramms kein (IEC 60870-5-1) bzw. maximal ein (IEC 60870-5-101) zusätzliches Bit Pause zwischen zwei Zeichen zulassen. Wird dieses Kriterium verletzt, so wird das Telegramm als fehlerhaft abgelehnt.

In Zeiten analoger Übertragung der Daten über Frequency-Shift-Keying-(FSK)-Modems stellte diese Einschränkung kaum ein Problem dar, da FSK-Modems für die Daten einen transparenten Kanal darstellen. Weiters wurde für jeden Kanal ein FSK-Modem verwendet.

In modernen Systemen werden mehrere über die RS-232-Schnittstelle empfangenen Datenströme oftmals über Multiplexer mit anderen Diensten (wie z.B. komprimierter Sprache) zusammengefasst und übertragen. Je nach Strategie des Multiplexers können dadurch mehr oder wendiger große Lücken in den ausgegebenen Datentelegrammen entstehen. Ein konventioneller Datentester ist üblicherweise nicht in der Lage, solche Lücken zu erkennen oder gar auszumessen. Er würde das empfangene Signal, solange keine Bitfehler o.ä. auftreten, als fehlerfrei qualifizieren.

Der hier vorgestellte Datentester ist in der Lage, Datenpakete definierter Länge zu erzeugen und empfangsseitig neben der Überprüfung u.a. auf Bitfehler auch die Lücken zwischen einzelnen Zeichen zu bestimmen und bei Überschreitung eines konfigurierbaren Limits den Fehlerfall anzuzeigen. 

3. Systembeschreibung

Der Datentester besteht aus drei Komponenten:

• Einem Standard Desktop-PC,
• einer National Instruments 7813R PCI-FPGA-Karte, und
• einer Adapterleiterplatte.

Bild 1 zeigt den hardwaremässigen Aufbau des Datentesters. Die PCI-FPGA-Karte ist in den PC eingebaut und die Adapterleiterplatte ist über ein Kabel an die PCI-FPGA-Karte angeschlossen.

3.1 Adapterleiterplatte

Die Adapterleiterplatte dient der Umsetzung zwischen den Logikipegeln der FPGA-Karte und RS-232 Pegeln. Es sind acht voll belegte RS-232-Schnittstellen vorgesehen. Die Stromversorgung erfolgt über die FPGA-Karte. Als Interfacebausteine kommen handelsübliche Pegelwandler für Single-Supply-Betrieb zum Einsatz.

 

3.2 FPGA-Karte

Das FPGA-Design der FPGA-Karte enthält folgende Komponenten:

• UARTs (Universal Asynchronous Receiver Transmitter)
• Bitmustergenerator nach der ITU-Empfehlung O.150
• Bitfehleranalysator
• Messung der Lücken zwischen einzelnen Zeichen
• Target-to-Host/Host-to-Target-Kommunikation


3.2.1 UARTs

Es wurden vier von einander unabhängig arbeitende UARTs implementiert. Von jedem UART ist der Sende- und der Empfangsteil wiederum getrennt konfigurierbar. Im Unterschied zu den als intergrierte Bausteine verfügbaren Standard-UARTs, verfügen die hier realisierten UARTs über zusätzliche, spezielle Konfigurationsmöglichkeiten:

• in 1 Bit/s Schrittweite konfigurierbare Bitrate
• konfigurierbare Anzahl von Zeichen pro Sendeblock
• konfigurierbare Pause zwischen den gesendeten Zeichen
• konfigurierbare Pause zwischen den gesendeten Blöcken


Weiters werden die für Fernwirkkanäle relevanten UART-Modes (7 / 8 Datenbits, keine / gerade / ungerade Parität, 1 / 2 Stop-Bits) unterstützt.

3.2.2 Bitmustergenerator

Für den Test der Fernwirkkanäle kommen standartisierte Bitmuster entsprechend der International Telecommunication Union (ITU) Empfehlung O.150 zum Einsatz. Diese Bitmuster haben in den meisten Fällen Eigenschaften, die einem Datenstrom im Realeinsatz sehr nahe kommen.

Der Bitmustergenerator ist als rückgekoppeltes Schieberegister ausgeführt. Implementiert wurden die Testsequenzlängen 29-1 Bit, 211-1 Bit und 215-1 Bit. Da diese Bitsequenzen auch in Standard-Datentestern eingesetzt werden, können sowohl der Bitmustergenerator wie auch der später beschriebene Bitfehleranalysator mit einem Standard-Datentester überprüft werden.

Der Bitmustergenerator wurde für jeden der vier Kanäle getrennt implementiert.

3.2.3 Bitfehleranalysator

Der im FPGA implementierte Bitfehleranalysator synchronisiert sich auf den ankommenden Datenstrom auf und überprüft dann fortwährend die empfangenen Daten. Der Bitfehleranalysator kann die Fehlerfälle „Parityfehler“, „Bitfehler“ und „Slip“ unterscheiden.

Ein Parityfehler ist aufgetreten, wenn das empfangene Paritäts-Bit nicht mit dem berechneten Paritäts-Bit übereinstimmt.

Ein Bitfehler wird ekannt, wenn sich empfangene und das erwartete Bits unterscheiden. Steigt die Bitfehlerrate auf über 20% an, wird der Bitfehleranalysator neu synchronisiert.

Bei einem Slip sind Bits in den Datenstrom eingefügt worden oder Bits im Datenstrom verloren gegangen. Slips können z.B. durch schlechte Taktsynchronsation in Übertragungssystemen entstehen. Weitere Ursachen für Slips können Buffer-Management-Fehler in Multiplexern oder ein schlechter Signalempfang sein. Slips lassen sich durch die Tatsache, dass eine Neusynchronisation sofort zu einem fehlerfreien Zustand führt, von normalen Bitfehlern unterscheiden.

Der Bitfehleranalysator wurde für jeden der vier Kanäle getrennt implementiert.

3.2.4 Lückenauswertung

Für die Bestimmung der Lücke zwischen zwei Zeichen wird die Zeit zwischen zwei empfangenen Start-Bits herangezogen. Die Auswertung der gemessenen Ticks erfolgt in der PC-Applikation.


3.2.5 Target-to-Host-Kommunikation und Host-to-Target-Kommunikation

Die Host-to-Target-Kommunikation, d.h. die Übertragung der Konfigurationsparameter von der PC-Applikation in das FPGA erfolgt über FPGA-Frontpanelelemente. Diese Art der Kommunikation ist zwar relativ langsam und verbraucht dabei viele Logikeinheiten im FPGA, ist aber übersichtlich. Die Konfigurationsparameter werden nur dann zum FPGA übertragen, wenn sie sich tatsächlich ändern.

Die Target-to-Host-Kommunikation, d.h. die Übertragung von Messdaten vom FPGA in die PC-Applikation erfolgt über DMA. Zu diesem Zweck werden die Messdaten (erkannte Paritäts-, Bit- und Slipfehler, Abstand zwischen zwei empfangenen Zeichen) aller vier Empfänger in einem DMA-FIFO zusammengefasst und an die PC-Applikation zur Auswertung übertragen.

4.3 Bedienoberfläche

Die Bedienoberfläche des Datentesters ist in Bild 2 (siehe Bildergalerie) dargestellt. Die Oberfläche gliedert sich in drei Hauptteile:

• UART-Konfigurationspanel (1)
• Globale Einstellungs- und Bedienelemente (2)
• Analyse- und Statistikanzeigeelemente (3)

Im UART-Konfigurationspanel (1) werden die UART-Parameter entstprechend den Testanforderungen eingestellt. Weiters kann der Sender und Empfänger jedes UARTs getrennt mit den Bedienelementen „Enable-TX“ bzw. „Enable-RX“ aktiviert bzw. deaktiviert werden. Mit den Knöpfen „Start“ und „Stop“ wird der Testvorgang für den jeweiligen UART gestartet bzw. angehalten.

Mit Hilfe der globalen Einstellungs- und Bedienelemente (2) ist es einerseits möglich einen Test auf alle UARTs gleichzeitig zu starten bzw. zu beenden sowie alle Statistikdaten auf einmal zurückzusetzten, andererseits wird damit die Ausgabe der weiter unten beschriebenen Log-Datei kontrolliert.

Die Analyse- und Statistikanzeigeelemente (3) geben Auskunft über aufgetretene Fehler sowie über allgemeine Testparameter wie z.B. Startzeitpunkt des Testvorganges oder die effektive Bitrate.

Die Auswertung und Darstellung der Ergebnisse erfolgt in Echtzeit, die Anzeige wird dabei im Sekundentakt aktualisiert.

Durch die Implementierung des Bitmustergenerators und Bitfehleranalysators im FPGA und den damit verbundenen Wegfall eines großteils an Kommunikation zwischen Host und Target ist der verwendete PC (Intel Pentium Core 2 duo mit 2,8GHz) nur zu etwa 5% ausgelastet.

5 Protokollierung der Messergebnisse

Alle Ereignisse können bei Bedarf in einer Log-Datei mitgeschrieben werden.

Die Daten werden dabei in einer ASCII-Datei im „Comma Separated Values“-Format (Dateiendung „.csv“) abgelegt. Diese Dateien können somit einfach in Tabellenkalkulationsprogramme wie z.B. Microsoft Excel importiert und nachbearbeitet werden. Bild 3 zeigt die Log-Datei eines erfolgreich verlaufenen Tests.

6 Zusammenfassung

In diesem Beitrag ist ein Datentester zur Überprüfung von Fernwirkkanälen vorgestellt worden. Die Programmierung der Bedienoberfläche sowie das Erstellen des FPGA-Designs erfolgte vollständig in LabVIEW.

Während die Entwicklung der Bedienoberfläche relativ einfach mit nur wenig vorherigem LabVIEW-Know-How durchgeführt werden konnte, stellte die Entwicklung des FPGA-Designs und der Kommunikation zwischen Host und Target eine größere Herausforderung dar:

• Zum Erreichen genauer Timings ist detailiertes Wissen, wie LabVIEW ein Blockdiagramm auf das FPGA umsetzt notwendig.

• Die Effizienz des umgesetzten Codes ist im Vergleich zu einer direkten Implementierung in VHDL nicht so hoch und es hängt stark von der Art der Implementierung ab, ob ein LabVIEW-Blockdiagramm im FPGA Platz findet oder nicht. Es muss daher auf eine effiziente Programmierung des FPGAs geachtet werden.

• Relativ lange Übersetzungszeiten (im Bereich von einer bis eineinhalb Stunden) machen die Fehlerbehebung mitunter mühsam.

Dennoch kann der Einsatz von LabVIEW sowohl zur Applikationsentwicklung wie auch zur FPGA-Programmierung durchaus empfohlen werden. Die Vorteile, die sich daraus ergeben, liegen auf der Hand:

• Für kleine Erweiterungen des Systems reichen LabVIEW-Kenntnisse aus – es werden keine speziellen VHDL/FPGA-Designmethoden oder Kenntnisse von anderen Programmiersprachen benötigt.

• Die Erweiterung des Datentesters zu einem Testautomatisierungssystem, das auch das automatische Umkonfigurieren des zu testenden Gerätes gestattet, sollte mit relativ geringem Aufwand möglich sein.

• Bei Problemen hat man mit dem National Instruments Team einen kompetenten Ansprechpartner.

 

Weiterführende Informationen:

Erfahren Sie mehr zu LabVIEW FPGA
Testen Sie LabVIEW online
Aktuelle LabVIEW-Evaluierungsversion kostenfrei herunterladen

Author Information:
For more information on this Case Study, contact:
Dipl.-Ing. (FH) Martin Brunner
Siemens AG Österreich

Browse All Case Studies »

  Print