Zum Inhalt springen
Kapitel 2 · MesSy

Interne Schnittstellen des Messsystems

2.1SPI-Schnittstelle

Die beiden Controller kommunizieren mit dem sbRIO über zwei getrennte SPI-Busse, die mit Taktraten von bis zu 18 MHz betrieben werden können. Die Mikrocontroller sind als Slaves konfiguriert. Sie können eine Interrupt-Leitung aktivieren, um das FPGA des sbRIO (das Master ist) zum Abholen der Mikrocontroller-Daten zu veranlassen. Die Datengröße beträgt immer 16 Bit (als ein Wort bezeichnet).

2.1.1Übertragungsprotokoll

Das folgende Kommunikationsprotokoll wird für die Kommunikation in beide Richtungen verwendet (FPGA zu Mikrocontroller, Mikrocontroller zu FPGA).

WortNameBereich/Wert
0LEN (Anzahl der Datenwörter) N1…65.535
1 (High-Byte)SIGNATUREimmer 0x4D
1 (Low-Byte)CRC8 (aller folgenden Datenbytes)0x00…0xFF
2 (High-Byte)COMMAND0x00…0xFF
2 (Low-Byte)DATA (Byte 0)0x00…0xFF
………
2+N-1 (Low-Byte)DATA (Byte N-1)0x00…0xFF

Beachten Sie, dass im Datenbereich nur das Low-Byte verwendet wird. Das High-Byte enthält bei Datennachrichten immer die Konstante 0x40 (außer bei Datenwort 0, das zusätzlich das Befehlsbyte enthält) und bei Statusnachrichten 0x80 (aus Kompatibilitätsgründen; das FPGA verwirft empfangene Datenwörter mit einem Wert kleiner oder gleich 0x00FF). Ein Datenwort mit dem Wert 0x0000 wird vom Mikrocontroller automatisch angehängt, um seinen SPI-Puffer zu leeren.

2.1.2Statuscodes

Der Mikrocontroller beantwortet jeden vom sbRIO empfangenen Befehl. Dies geschieht entweder mit einer Datennachricht (die von RT/PC verarbeitete Anwendungsdaten enthält) oder mit einer Statusnachricht. Diese Funktion kann per Befehl deaktiviert werden.

Folgende Statuscodes sind definiert.

WertInhalt
0x01ACK (Befehl erfolgreich verarbeitet, aber keine Datenbytes als Antwort zu senden)
0x02PAR (mindestens ein Parameter liegt außerhalb des zulässigen Bereichs)
0x04CMD (Befehl unbekannt)
0x08IDX (Objektindex außerhalb des zulässigen Bereichs)
0x10CRC (Prüfsummenprüfung fehlgeschlagen)
0x20SIG (falsche Signatur gelesen)
0x40TIM (SPI-Timeout erkannt)
0x80LEN (Befehlslänge stimmt nicht überein)

2.1.3Befehlsbeschreibung

Die aktuellen Beschreibungen finden Sie in der VI-Dokumentation.

2.2Nichtflüchtige Datenspeicherung

Der On-Board-Datenflash der beiden STM32 kann als EEPROM zur nichtflüchtigen Speicherung von Daten verwendet werden (zum Beispiel Baudraten, ID-Filtereinstellungen, Abschlusswiderstände …).

2.3Analogeingang

Die Schnittstelle der Analogeingangsplatine besteht aus

  • 3 Adressbussen zum Multiplexen der Analogkanäle, für jede Analoggruppe getrennt
  • Signalen für die serielle Kommunikation mit den ADCs.
  • einer seriellen Schnittstelle zum EEPROM für die Kalibrierdaten.

2.3.1Multiplexer

Wie im Funktionsblockschaltbild dargestellt, werden die Kanäle auf ADCs mit je zwei Kanälen gemultiplext. 32 Single-Ended-Kanäle werden von einem 32:1-Multiplexer mit den Adressleitungen ADR1_0 bis ADR1_4 verarbeitet, die übrigen 16 Single-Ended-Kanäle von einem 16:1-Multiplexer mit den Adressleitungen ADR2_0 bis ADR2_3, und die differenziellen Kanäle werden über zwei 8:1-Multiplexer mit gemeinsamen Adressleitungen ADR3_0 bis ADR3_2 geschaltet.

Alle Adressleitungen sind mit High-Speed-CMOS-Puffern gepuffert, um die Last für die Ausgangstreiber des FPGA zu verringern und saubere Signale auf der Leiterplatte bereitzustellen.

Die Adressleitungen werden während der Haltephase der ADCs umgeschaltet, damit die Wandlungsergebnisse nicht beeinflusst werden.

Die Eingänge werden von der internen Sample-&-Hold-Stufe der ADCs zwischen der 32. steigenden Flanke von SCK und der steigenden Flanke von CONV abgetastet.

2.3.2ADCs

Timingdiagramm des LTC1407A-1 mit SCK, CONV, internem S/H-Status und SDO sowie Tabelle der Timing-Parameter (Abtastfrequenz, Durchsatz, Taktperiode, Wandlungszeit, t1 bis t12)

Beide ADCs werden von denselben Signalen CONV und SCK getaktet.

Die ADC-Ausgänge sind mit High-Speed-CMOS-Puffern gepuffert, um die Kapazität des Flachbandkabels treiben zu können.

2.3.3EEPROM

Das EEPROM enthält eine ID, die die Leiterplatte als analoge Messkarte kennzeichnet, den Typ (Version mit 128 oder 64 Kanälen), einen Kalibrierzeitstempel und die Hardwareversion. Außerdem sind für jeden Kanal Offset- und Verstärkungs-Kalibrierdaten gespeichert sowie der Skalierungsfaktor der Eingangsspannung entsprechend den Spannungsteilern auf der Leiterplatte. Jedes Analog-Subsystem hat ein eigenes EEPROM. Die folgende Tabelle zeigt einen Auszug aus dem EEPROM-Inhalt. Eine detaillierte Speicherbelegung finden Sie in der separaten Datei „EEPROM Memory Map Analog_LDSA.xlsx“.

AdresseInhaltWerteKommentar
0ID0xAAKennzeichnet die Leiterplatte als analoge Messkarte
1Hardwarerevisionz. B. 0x14Hardwarerevision: z. B. Version 1.3 => 0x13
2Hardwarerevision: z. B. Version 1.3 => 0x13
3Kalibrierzeitstempel oberes Byte0x02Datum der letzten Kalibrierung: z. B. 16.08.2010 => 160810 = 0x2742A
4Kalibrierzeitstempel mittleres Byte0x74Datum der letzten Kalibrierung: z. B. 16.08.2010 => 160810 = 0x2742A
5Kalibrierzeitstempel unteres Byte0x2ADatum der letzten Kalibrierung: z. B. 16.08.2010 => 160810 = 0x2742A
6
7
8
9Offset Byte 1 Single-Ended-Kanal 1Bit31…24Offset in Schritten von µV
10Offset Byte 2 Single-Ended-Kanal 1Bit23…16Offset in Schritten von µV
11Offset Byte 3 Single-Ended-Kanal 1Bit15…8Offset in Schritten von µV
12Offset Byte 4 Single-Ended-Kanal 1Bit7…0Offset in Schritten von µV
13Verstärkung Byte 1 Single-Ended-Kanal 1Bit31…24Verstärkung des Eingangsspannungsteilers multipliziert mit 109
14Verstärkung Byte 2 Single-Ended-Kanal 1Bit23…16Verstärkung des Eingangsspannungsteilers multipliziert mit 109
15Verstärkung Byte 3 Single-Ended-Kanal 1Bit15…8Verstärkung des Eingangsspannungsteilers multipliziert mit 109
16Verstärkung Byte 4 Single-Ended-Kanal 1Bit7…0Verstärkung des Eingangsspannungsteilers multipliziert mit 109
17Offset Byte 1 Single-Ended-Kanal 2Bit31…24Offset in Schritten von µV
18Offset Byte 2 Single-Ended-Kanal 2Bit23…16Offset in Schritten von µV
19Offset Byte 3 Single-Ended-Kanal 2Bit15…8Offset in Schritten von µV
20Offset Byte 4 Single-Ended-Kanal 2Bit7…0Offset in Schritten von µV
21Verstärkung Byte 1 Single-Ended-Kanal 2Bit31…24Verstärkung des Eingangsspannungsteilers multipliziert mit 109
22Verstärkung Byte 2 Single-Ended-Kanal 2Bit23…16Verstärkung des Eingangsspannungsteilers multipliziert mit 109
23Verstärkung Byte 3 Single-Ended-Kanal 2Bit15…8Verstärkung des Eingangsspannungsteilers multipliziert mit 109
24Verstärkung Byte 4 Single-Ended-Kanal 2Bit7…0Verstärkung des Eingangsspannungsteilers multipliziert mit 109
:::
:::
511Verstärkung Byte 3 differenzieller Kanal 15Bit15…8Verstärkung des Eingangsspannungsteilers multipliziert mit 109
512Verstärkung Byte 4 differenzieller Kanal 15Bit7…0Verstärkung des Eingangsspannungsteilers multipliziert mit 109
513Offset Byte 1 differenzieller Kanal 16Bit31…24Offset in Schritten von µV
514Offset Byte 2 differenzieller Kanal 16Bit23…16Offset in Schritten von µV
515Offset Byte 3 differenzieller Kanal 16Bit15…8Offset in Schritten von µV
516Offset Byte 4 differenzieller Kanal 16Bit7…0Offset in Schritten von µV
517Verstärkung Byte 1 differenzieller Kanal 16Bit31…24Verstärkung des Eingangsspannungsteilers multipliziert mit 109
518Verstärkung Byte 2 differenzieller Kanal 16Bit23…16Verstärkung des Eingangsspannungsteilers multipliziert mit 109
519Verstärkung Byte 3 differenzieller Kanal 16Bit15…8Verstärkung des Eingangsspannungsteilers multipliziert mit 109
520Verstärkung Byte 4 differenzieller Kanal 16Bit7…0Verstärkung des Eingangsspannungsteilers multipliziert mit 109

2.4Digitalausgang

Wie im Blockschaltbild dargestellt, werden die Relais über zwei I²C-Portexpander angesprochen. Alle Pins sind nach dem Einschalten als Eingänge konfiguriert und müssen als Ausgänge umkonfiguriert werden, bevor die Relais geschaltet werden können.

Adressen für den Schreibzugriff:

  • Portexpander 1 (Relais 01 bis 15): 0b11101000 = 0xE8
  • Portexpander 2 (Relais 16 bis 32): 0b11101100 = 0xEC
  • Portexpander 3 (Relais 33 bis 48): 0b11101110 = 0xEE
  • Portexpander 4 (Relais 49 bis 64): 0b11101010 = 0xEA

Für den Schreibzugriff ist das LSB auf null gesetzt.

Schreiben in die Ausgangsports:

I2C-Timing: Schreiben in die Ausgangsports mit Slave-Adresse, Befehlsbyte, Daten an Port 0 und Daten an Port 1

Schreiben in die Konfigurationsregister:

I2C-Timing: Schreiben in die Konfigurationsregister mit Slave-Adresse, Befehlsbyte und Daten an das Register

Dokumente und Downloads

Weitere Dokumente und Dateien zu Ihrem IRS-Produkt finden Sie auf myIRS.

Zu den Downloads