USB Datenerfassungskarte

MI16080Die USB Datenerfassungskarte vereinigt 16 analoge Eingangskanäle, 8 analoge Ausgänge und 10 digitale Ports auf einer kleinen Platine. Es ist galvanisch isoliert; d.h. alle Messein- und Ausgänge sind potentialfrei.

Es wird ein Maxim MAX1258 "Datenerfassungssystem auf einem Chip" verwendet. Der ADC hat einen Messbereich von 4V, der über einen Spannungsteiler erweitert werden kann.

Als USB Schnittstelle ist ein FTDI FT2232D eingebaut. Er arbeitet als USB - SPI Wandler. Der MAX Chip ist über SPI mit 6MHz angebunden.

Zwischen dem MAX und dem FTDI Chip arbeitet ein NVE 712 Isolator, der die Potentiale trennt. Der MAX Chip und die eine Hälfte des NVE Isolators werden über einen DC/DC Wandler versorgt. NVE Isolator und DC/DC Wandler haben mindestens 2500V Isolationsspannung laut Datenblatt.

Wird zum Beispiel versehentlich ein analoger Eingang auf die Phase des 220V Netzes gelegt, dann sollte nichts passieren. Ohne die galvanische Trennung wären Karte, USB Schnittstellen und PC mit Sicherheit defekt.

In Tests (die nicht am Stromnetz, sondern mit einem Spannungsvervielfacher in Villard Schaltung gemacht wurden) hielt die Karte Spannungen von 1200V gegenüber der "PC Masse" über 1 Minute aus, während sie arbeitete!

Das Besondere an der Karte ist, dass sie keinen Mikrocontroller hat, sondern der MAX1258 selbsttätig (nach Empfang eines Kommandos über den SPI Bus) alle Kanäle abtastet und die Messwerte im Fifo ablegt. Der Handshake mit dem FT2232D erfolgt über das EOC Signal des MAX. Ist die Abtastung komplett, signalisiert er, dass die Daten abgeholt werden können. Nach dem Abholen geht das Ganze von vorne los; der MAX startet die Abtastung und wandelt, bis alle Kanäle komplett sind.

Aufgabe der Software ist es, dafür zu sorgen, dass dieser Prozess kontinuierlich läuft.Wir haben es hier mit einem Echtzeitsystem zu tun, dass synchron läuft. Der PC, der das ganze steuert, ist kein Echtzeitsystem, sondern arbeitet mit Prozessen, die unterbrochen werden können.

Wie soll nun die Software es schaffen, einen kontinuierlichen Datenstrom zu gewährleisten?

Jetzt kommen mehrere Fifos in's Spiel. Im USB Treiber sind (Software-) Fifos vorhanden, damit Daten blockweise übertragen werden können. Der FT2232D hat einen 384Byte Fifo in Hardware, der Max1258 hat Platz für 16 12bit Werte.

Wenn dafür gesorgt wird, dass in den Sende-Fifos, die die Abtastung im MAX1258 anstossen, immer genügend Werte stehen, sie also nie leer werden, während die Abtastung läuft, dann kann der Wandlungsprozess ununterbrochen laufen.

Um das zu gewährleisten, sieht der Treiber periodisch nach, ob noch genügend Kommandos im Sende -Fifo (der zum MAX geschickt wird) stehen. Wenn nicht, wird nachgelegt. Am besten so, dass der Fifo immer mehr als halb voll ist.

Die Software (der unter Window laufende Prozess) muss regelmäßig ausgeführt werden. Daher wird die sog. Prozesspriorität auf Echtzeit gesetzt, damit auch wirklich alle 10ms geprüft wird, ob genügend Kommandos da sind. Gleichzeitig müssen die Messdaten abgeholt werden, da sonst der Empfangs-Fifo überläuft und Daten verlorengehen.

Da in 10 Sekunden 1 Mio. Werte verarbeitet werden müssen und entsprechende Kommandos gesendet werden müssen, ist eine effiziente Programmierung wichtig. Der Treiber wurde daher in C++ geschrieben.

Technisch werden diese Aufgaben von einem Automaten ausgeführt, der unter Windows als Echtzeitprozess läuft. Er kommuniziert mit der eigentlichen Messanwendung, die ein anderer Prozeß ist und jeder selbst programmieren kann, über einen gemeinsamen Speicherbereich, sog. Shared memory. Die Treiber übernehmen die Kommunikation mit dem Echtzeit-Erfassungsprozess über die Shared Memory Schnittstelle. Die Messanwendung läuft als ganz normaler Prozess (Task) unter Windows.

Soweit die Erklärung, wie das Ganze funktioniert, obwohl keine CPU auf der Karte vorhanden ist.

Alle typischen Einstellungen wie Abtastrate setzten, Triggerfunktionen usw. sind per Software realisiert.

Nach diesen Erklärungen nun zu den Eigenschaften der Karte mit Software:

Specification

Analog Inputs

Inputs:

16 single ended or 8 differential channels, software-selectable

Coupling:

DC

Resolution:

12 bits / 4096 steps

Input ranges:

MI16081: +10V or +/-5V
MI16082: +24V or +/-12V
MI16084: +4.096V or +/-2.048V 

(+/- ranges require differential input)

Sample modes:

Continuous, Trigger, Snapshot (<720 values, no trigger)

Sample rate:

Snapshot: 100kHz (single input), Single channel: 1Hz-35kHz, Multi-channel: 1Hz-100kHz sum sample rate at 16 channels

Channel capture delay:

10µs +/-1µs at all sample rates!

DNL:

1.0 LSB maximum error

INL:

0.5 LSB typ.

T/H acquisition time:

0.6 µs

Gain accuracy:

MI16084: 0.25% at +/-8ppm/K drift
All other: 1% at +/-50ppm/K drift

Reference voltage drift:

< 30 ppm/K

Input impedance:

MI16084: 24pF || 100kΩ
MI16082: 24pF || 40kΩ
MI16081: 24pF || 25kΩ

Trigger:

Trigger source is one of the input channels.

Posttrigger:

Unlimited number of samples

Trigger events:

- Rising (positive) edge
- Falling (negative) edge.
- Above threshold level.
- Below threshold level.

Isolation:

All analog, digital I/O and sensor supply isolated from USB. Rated 2500V/1sec

Analog Outputs

Outputs and Ranges:

8 x 12 bit DAC with 0..+4.096V voltage outputs (1mV resolution)

Coupling:

DC

Sample rate:

Asynchronous "port like" DAC outputs, low speed only.

Accuracy:

± 0.2%

DNL:

+/-0.5 LSB. typ.

Output impedance:

0.5 Ohm typ.

Output current:

<=2mA each output

Settling time:

2us to 1 LSB, at 30pF load

Digital Port

Input/Output:

10 bits, direction can be set for each bit

Input levels:

Low: <=0.8V, High: >=2.4V
High impedance inputs, I=0.01µA typ.
Input capacitance 15pF typ.

Output levels:

Low: 0.4V @ Isink= 2mA
High: >4.0V @ Isource<= 2mA (6 ports), >3.7V @ Isource<= 15mA (4 ports, connection to 5V reed relays possible)

General

Compliance:

USB 2.0 full speed interface (12MBit) compatible to USB1.1

Environment:

0...85°C operating temperature
Humidity < 80 % non-condensing

Dimensions:

Following mechanical data applies only if case "Fischer AKG 7116100" is used:

105mm x 72mm x 16mm (LxBxH) including DSUB connector

Mass:

125g

Case material:

2mm Aluminum

Connectors & lights:

37 pole male DSUB connector for signals
Mini USB-B device type connector
LED for activity/power control

Power consumption:

0.4W (5V/80mA) typ.

Sensor power supply:

+5V/25mA max, provided by onboard DC/DC converter

Weitere Unterlagen: