1. Einführung

Die folgenden Abschnitte zeigen die Pins, Parameter und Funktionen, die von "kanonischen Geräten" bereitgestellt werden. Alle HAL-Gerätetreiber sollten die gleichen Pins und Parameter bereitstellen und das gleiche Verhalten implementieren.

Beachten Sie, dass nur die Felder <io-type> und <specific-name> für ein kanonisches Gerät definiert sind. Die Felder <device-name>, <device-num> und <chan-num> werden auf der Grundlage der Eigenschaften des realen Geräts festgelegt.

2. Digitaler Eingang

Der kanonische Digitaleingang (E/A-Typfeld: "digin") ist recht einfach.

2.1. Pins

(bit) in:: Zustand des Hardware-Eingangs. (bit) in-not:: Invertierter Zustand des Eingangs.

2.2. Parameter

Keine

2.3. Funktionen

(funct) read:: Lesen der Hardware und Setzen der HAL-Pins "in" und "in-not".

3. Digitaler Ausgang

Der kanonische digitale Ausgang (engl. output) (E/A-Typfeld: digout) ist ebenfalls sehr einfach.

3.1. Pins

(bit) out:: Wert, der (eventuell invertiert) an den Hardware-Ausgang geschrieben werden soll.

3.2. Parameter

(bit) invert:: Wenn TRUE, wird out vor dem Schreiben in die Hardware invertiert.

3.3. Funktionen

(funct) write:: Lesen Sie out und invert und stellen Sie die Hardwareausgabe entsprechend ein.

4. Analoger Eingang

Der kanonische Analogeingang (E/A-Typ: adcin). Dieser wird voraussichtlich für Analog-Digital-Wandler verwendet, die z. B. Spannung in einen kontinuierlichen Wertebereich umwandeln.

4.1. Pins

(float) Wert:: Der Hardware-Messwert, skaliert gemäß den Parametern Skala und Offset.
Wert = ((Eingangsmesswert, in hardwareabhängigen Einheiten) * Skala) - Offset

4.2. Parameter

(Float) Skala (engl. scale):: Die Eingangsspannung (oder der Strom) wird mit Skala multipliziert, bevor sie als Wert ausgegeben wird. (float) Offset:: Dieser Wert wird nach Anwendung des Skalenmultiplikators von der Hardware-Eingangsspannung (oder dem Strom) subtrahiert. (float) bit_weight:: Der Wert eines niederwertigen Bits (LSB). Dies ist effektiv die Granularität des Eingangswertes. (float) hw_offset:: Der Wert, der am Eingang anliegt, wenn 0 Volt an den Eingangspin(s) angelegt wird.

4.3. Funktionen

(funct) read:: Lesen Sie die Werte dieses analogen Eingangskanals. Dies kann zum Lesen einzelner Kanäle verwendet werden, oder es können alle Kanäle gelesen werden.

5. Analoger Ausgang

Der kanonische Analogausgang (E/A-Typ: adcout). Dieser ist für jede Art von Hardware gedacht, die einen mehr oder weniger kontinuierlichen Wertebereich ausgeben kann. Beispiele sind Digital-Analog-Wandler oder PWM-Generatoren.

5.1. Pins

(float) Wert:: Der zu schreibende Wert. Der tatsächliche Wert, der an die Hardware ausgegeben wird, hängt von den Parametern Skala und Offset ab. (bit) aktivieren (engl. enable):: Wenn false, dann wird 0 an die Hardware ausgegeben, unabhängig vom value Pin.

5.2. Parameter

(float) Offset:: Dies wird zu dem Wert (engl. value) hinzugefügt, bevor die Hardware aktualisiert wird. (Float) Skala (engl. scale):: Dies sollte so eingestellt werden, dass eine Eingabe von 1 am value-Pin dazu führt, dass der Analogausgangspin 1 Volt anzeigt. (float) high_limit (optional):: Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset größer ist als high_limit, wird stattdessen high_limit verwendet. (float) low_limit (optional):: Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset kleiner als low_limit ist, wird stattdessen low_limit verwendet. (float) bit_weight (optional):: Der Wert des niedrigstwertigen Bits (LSB) in Volt (oder mA bei Stromausgängen). (float) hw_offset (optional):: Die tatsächliche Spannung (oder Stromstärke), die ausgegeben wird, wenn 0 in die Hardware geschrieben wird.

5.3. Funktionen

(funct) write:: Dies bewirkt, dass der berechnete Wert an die Hardware ausgegeben wird. Wenn enable false ist, wird 0 ausgegeben, unabhängig von value, scale und offset. Die Bedeutung von "0" ist von der Hardware abhängig. Bei einem bipolaren 12-Bit-A/D kann es z. B. erforderlich sein, 0x1FF (mittlere Skala) an den D/A zu schreiben, um 0 Volt vom Hardware-Pin zu erhalten. Wenn enable true ist, werden Skala, Offset und Wert gelesen und an den ADC ausgegeben (scale (Skala) * value (Wert)) + offset. Wenn enable false ist, dann wird 0 ausgegeben.