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
The canonical digital input (I/O type field: digin) is quite simple.
2.1. Pins
(bit) in:: Zustand des Hardware-Eingangs. (bit) in-not:: Invertierter Zustand des Eingangs.
2.2. Parameter
None
2.3. Funktionen
(funct) read:: Lesen der Hardware und Setzen der HAL-Pins "in" und "in-not".
3. Digitaler Ausgang
The canonical digital output (I/O type field: digout) is also very simple.
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
The canonical analog input (I/O type: adcin). This is expected to be used for analog to digital converters, which convert e.g. voltage to a continuous range of values.
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
The canonical analog output (I/O Type: adcout). This is intended for any kind of hardware that can output a more-or-less continuous range of values. Examples are digital to analog converters or PWM generators.
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.