Auslegung der Temperaturmessung mit Pt100-Sensor
Zur Kompensation der Kaltstelle des Thermoelements wird ein hochpräziser Temperaturmess chip (Si7051) verwendet. Um Temperatur↔Spannung umzuwandeln, wird in der Thermoelement-Indexierungstabelle eine bidirektionale lineare Interpolation mit hoher Dichte durchgeführt. Verwenden Sie einen dreiadrigen Pt100 als bewegliche Schulter, um eine unsymmetrische Widerstandsbrücke zu bilden und den Wärmewiderstandswert zu ermitteln. Die Temperatur wird durch analytische Lösung der eindimensionalen Wärmewiderstandsgleichung vierter Ordnung von Pt100 ermittelt. Verwenden Sie einen hochpräzisen Σ-Δ-Analog-Digital-Wandler (ADC) mit einfach zu steuernden Funktionen. Ausgewählt wird der leistungsstarke 32-Bit-Mikroprozessor STM32F103 mit ARM Cortex-3-Struktur. Durch die Kombination dieser Technologien kann die Temperaturmess auflösung des Thermostats 0,001 °C erreichen. Die Fehleranalyse der oben genannten verwandten Inhalte und die Programmierimplementierung auf STM32F103 stehen im Mittelpunkt dieses Artikels. Was in diesem Artikel beschrieben wird, dient nicht nur der Temperaturmessung, sondern auch der Messung anderer schwacher elektrischer und nichtelektrischer Signale (wie Druck, Gewicht usw.).
0 Vorwort
Viele Thermostate verwenden immer noch die traditionelle Struktur der Temperaturmess schaltung: Sensor → Filter → Vorverstärker 1 → Sensortypumschaltung → Vorverstärker 2 → Filter → ADC → MCU-Verarbeitung. Darüber hinaus sind ADCs meist in MCUs integriert, die nicht nur eine geringe Auflösung haben (meist 12 Bit oder weniger), sondern auch die Referenzstromversorgung oft unveränderlich ist. Diese Art von Struktur weist viele Komponenten und ein hohes Rauschen auf und ist nicht für hochpräzise Messungen und Steuerungen geeignet. Am Beispiel von Thermoelementen ist es im Bereich von 0 bis 661 °C schwierig, die Auflösung 0,1 °C zu überschreiten. Die Genauigkeit kann kaum 0,5 % überschreitenimage.png (1631081939725930.png ist der absolute Wert der Temperatur, die Einheit ist °C). In den letzten Jahren haben viele IC-Unternehmen die oben genannten traditionellen Temperaturmess strukturen integriert und hohe Auflösungen (16 Bit, 20 Bit und 24 Bit) für schwache Sensorsignale im Mikrovoltbereich wie Thermoelemente auf den Markt gebracht. Und es gibt Mehrkanal-ADCs wie den LTC2486. Dies stellt eine gute Wahl für das hochpräzise Temperaturmess design des Thermostats dar.
1: Hochpräzises Design der Temperaturmess schaltung
1.1 Schaltungsaufbau
Abbildung 1 zeigt ein konventionelleres Design, das relativ einfach ist. Ohne spezielle Signalverstärkung und Kanalumschaltkreise ist der Filterkreis auch der einfachste passive RC erster Ordnung.
1.2 Temperatursensor
Normalerweise benötigt der Thermostat zwei Haupttypen von Sensoren: Thermoelemente (TC) und Widerstände (RTD).
Abbildung 1 Struktur des hochpräzisen Temperaturmess kreises des Thermostats
1.2.1 Thermoelement
Der neueste internationale Standard für Thermoelemente ist die Version 2013 von IEC60584-1:2013, und der entsprechende (IDT) nationale Standard ist GB/T1639.1-2018[4]. Die Norm unterteilt Thermoelemente in mehrere Typen (E, K, J usw.), von denen Typ E die höchste Empfindlichkeit aufweist [3]. Es eignet sich für relativ hochpräzise Temperaturmess ungen. Aus Sicht der Hochpräzision sollte Typ E mit einem Fehler der Klasse 1 (0,004 für eine Temperatur von –40 bis 800 °C) [4], Mantel- und Verbindung isolierung [3], aber mit der Abschirmung verbunden erworben werden, um eine Differential verbindung herzustellen und Rauschen zu reduzieren.
1.2.2 FTE
Bei Thermostaten bezieht sich dies im Allgemeinen auf Pt100, der aktuelle internationale Standard ist IEC 60751:2008 und der entsprechende nationale Standard ist GB/T30121-2013. Die Formel für den thermischen Widerstand von Pt100 lautet wie folgt [5]
Darunter ist die Einheit von t °C; Rt ist der Widerstand von Pt100; R0 ist der Widerstand von Pt100 bei 0 °C (100 Ω) [5] (dasselbe unten).
Die Fehler- (oder Toleranz-)Stufe von Pt100 ist in 4 Stufen unterteilt [5]. Hier wählen wir die höchste Stufe AA (±(0,1+ 0,001 7) (bei −50 ~ 250 °C) oder Stufe A (die nächsthöhere). Niveau, ±( 0,15 + ) bei −100 ~ 450 °C).
1.3 Temperatursignale erkennen
1.3.1 Thermoelement
1) Tiefpassfilterung
Da es sich um ein Spannungssignal handelt, kann es nach einer einfachen RC-Tiefpassfilterung erster Ordnung direkt an den Differenzeingang des LTC2486 (CH2-CH3) angeschlossen werden, wie in Abbildung 2 dargestellt. Grenzfrequenz des Filters
Abbildung 2 Temperaturerkennung und ADC-Schaltplan
2) Die Thermoelement-Temperaturmessung am kalten Ende (auch Referenzende genannt [4]) muss ein Kompensationsproblem am kalten Ende lösen. Die konkreten Schritte sind:
① Verwenden Sie einen hochpräzisen Temperaturmess chip, um die Kaltendtemperatur tcj von TC zu messen [6].
② Aufgrund der unvollständigen linearen Beziehung zwischen Temperatur und Spannung muss tcj mithilfe eines linearen Interpolationsalgorithmus auf einer E-Typ-Skala [4] auf die Spannung Vcj [3] zurückgesetzt werden.
③ Addieren Sie Vcj zur Ausgangsspannung Vtc des TC als Teil der Ausgangsspannung des TC.
Neben Si7051 kann der Temperaturmess chip auch TMP275 (Auflösung bis 0,065 °C) und ADT7410 (0,007 8 °C) wählen.
3) Ausgangsspannungsbereich. Für Thermoelemente vom Typ E liegt der Temperaturmess bereich von −68 bis 661 °C in der Skalatabelle [4]. Der entsprechende Spannungsbereich (Vi) liegt bei −3,711 bis 49,997 mV. Um die Auflösung zu verbessern, kann die Reichweite reduziert und der GAIN erhöht werden. Siehe 1.4 für die Definitionen von FS und GAIN.
In Abbildung 2 stellt das „M“ im Thermoelement symbol das Abschirmung ende dar.
1.3.2 Pt100
Es ist notwendig, den nichtelektrischen Widerstand in ein Spannungssignal umzuwandeln. Der Leitungsfehler des Zweitleitungs-Pt100 kann nicht beseitigt werden und die Temperatur messabweichung ist groß (bei r = 0,225 Ω beträgt sie etwa 1 ~ 1,5 °C). Eine dreiadrige unsymmetrische Pt100-Widerstandsbrücke ist in Abbildung 3 (oder Abbildung 2) dargestellt. ist der Leitungswiderstand. ist ein fester Widerstand; ΔR stellt die Temperaturänderung relativ zu R0 dar, die positiv oder negativ ist; Vcb ist die Brückenstromversorgung; Vb ist die Brückenspannung im unsymmetrischen Zustand. Die Dreileiter-Pt100-Brücke verfügt über einen kontrollierbaren Leitungsfehler.
Bei dieser Thermostat konstruktion ist der Temperaturmessbereich entsprechend der Genauigkeit in zwei Stufen unterteilt:
①(−68 ~ 68) °C, Auflösung 0,001 °C;
②(−68 ~ 466) °C, Auflösung 0,007 °C.
In der folgenden Designdiskussion wird jedoch nur ① als Beispiel verwendet.
Abbildung 3 Analysemodell der Dreileiter-Pt100-Widerstandsbrücke
1.3.2.1 Brücken widerstand bemessung
1) Widerstand auswahl
① Die tatsächliche Messung zeigt, dass der Widerstand der 2 m langen Pt100-Leitung r = 0,225 Ω beträgt. Gemäß der Anforderung innerhalb von 20 m beträgt er etwa 2,25 Ω. Gemäß Formel (4) müssen R1 und R2 wiederum mehr als das Tausendfache von r betragen, um den Steigungsfehler zu verringern. Nehmen Sie also image.png= ≥2,25 kΩ;
②Der durch Pt100 fließende Strom (I p ) sollte nicht größer als 1 mA [5] sein, um die Selbsterwärmung zu kontrollieren. Er darf jedoch nicht zu klein sein, da er sonst die Empfindlichkeit der Brücken widerstandsmessung beeinträchtigt. Der tatsächliche Wert beträgt I p = (1 ~ 2) mA;
③Je größer der Widerstand, desto größer das Rauschen [8]. Aus dieser Perspektive gilt: Je kleiner der Widerstand, desto besser;
④ Die Widerstandsbrücke sollte bei 0 °C ausgeglichen bleiben (Vb = 0), was Folgendes erfordert:
⑤ Bedenken Sie, dass Vcb von TL431 erzeugt wird. Wählen Sie daher Vcb ≥ 2,5 V (siehe unten). Basierend auf den oben genannten vier Punkten ist R1=R2= 2 400 Ω. Wenn wir Formel (3) kombinieren, erhalten wir
R1 ~ R3 verwenden Chipwiderstände mit einer Genauigkeit von 0,01 % und einem Temperaturkoeffizienten von 5×10−6/°C (ca. 0,45 Yuan/Stück in Chargen). Diese Anforderung ist sehr wichtig.
2) Vcb-Auswahl und Auswahl des Brückenspannung ausgang bereichs
Aus Gleichung (9) ist ersichtlich, dass die Auswahl von Vcb mit dem Temperaturmessbereich (ΔR), dem Brückenspannungs-Vb-Bereich und der Auswahl des Brückenwiderstands zusammenhängt. Im Messbereich ① gilt bei ΔR = 26,31 Ω, wenn (4 ist GAIN) ausgewählt ist, zu diesem Zeitpunkt gemäß Gleichung (9) Vcb = 5.000 mV, und dann können wir aus Gleichung (9) erhalten: bei − 68 °C, Vb = −52,2 mV, der Bereich von Vb beträgt also (−52,2 ~ 50) mV. Die Brückenspannung Vb wird außerdem tiefpassgefiltert (R89, R90, C26 und C33), bevor sie in den Differenzkanal (CH0-CH1) des ADC gelangt.
1.3.2.2 Fehleranalyse der Dreileiterbrücke
Nehmen Sie zunächst an, dass der Brückendruck gemäß Gleichung (6) ist:
Wenn der Leitungswiderstand image.png auch Gleichung (3) berücksichtigt, ergibt sich für die Brückenspannung:
In,
Es kann davon ausgegangen werden, dass:
Dann kann r im Additionsterm von Vbr und VG ignoriert werden, also gilt
Berücksichtigen Sie zwei weitere Faktoren für VG:
Verfügbar:
Um sicherzustellen, dass die Auflösung der Temperaturmessung höher als 0,001 ist, ist es erforderlich, dass in Formel (4b)
Dies kann in der Praxis umgesetzt werden. Auf diese Weise kann die folgende Formel (4a) erhalten werden:
Zu diesem Zeitpunkt ist der relative Fehler
Gleichung (6) zeigt, dass ① ε positiv oder negativ sein kann, da ΔR und ΔR positiv oder negativ sein können; ② Je kleiner ΔR ist, d. h. je näher die Temperatur an 0 °C liegt, desto größer ist der relative Fehler ε ; ③ Gemäß Gleichung (3a) ist ε = 0 .
Die beiden oben genannten Punkte ① und ② stehen im Einklang mit dem allgemeinen Wahrnehmung verständnis.
Das aktuelle Beispiel sieht wie folgt aus: Wie oben erwähnt, ist bei einer Länge von 2 m der Leitungswiderstand r = 0,225 Ω, wenn ΔR = 0,195 (entspricht einer Ω-Temperatur von 0,5 °C) und R1 = 2402 Ω, R2 = 2400 Ω die Formel (3),
Dieser relative Fehler ist sehr gering, und sobald die Temperatur mehr als 0,5 °C beträgt, nimmt der Fehler allmählich wieder ab. Basierend auf dem oben Gesagten kann, solange Formel (3a) erfüllt ist, der Einfluss des Leitungswiderstands r auf 100 % oder sogar noch kleiner reduziert werden (entsprechend den tatsächlichen Anforderungen ausgelegt).
Die in Referenz [10] genannten Analysebedingungen weichen davon ab. Ist es besser, auf Gleichung (3a) umzusteigen?
Es ist wichtig zu beachten, dass Fehler auftreten, wenn die Widerstände der drei Drähte ungleich sind (was in der Praxis der Fall ist). Derzeit kann die Dreileiterschaltung das Problem nicht vollständig lösen. Daher müssen Sie beim Kauf eine Anfrage an den Lieferanten stellen, dass die drei Linien gleich sind.
1.4 Auswahl und Verwendung von ADC
Die Wahl des LTC2486 (als 2486 bezeichnet) ist hauptsächlich auf die folgenden vier Gründe zurückzuführen [1].
①Hohe umfassende Auflösung und kleiner Fehler. Es ist nominell 16 Bit groß, hat aber tatsächlich eine Auflösung von 17 Bit (einschließlich des Vorzeichenbits). Idealerweise kann eine Spannung von 1 μV aufgelöst werden.
② Es gibt zwei Differenzkanäle, die lediglich die Eingangsanforderungen von Thermoelementen und Pt100 allgemeiner Thermostate erfüllen, ohne dass zusätzliche Schaltkreise erforderlich sind (die zu Rauschfehlern führen würden).
③Es gibt einen eingebauten Verstärker mit programmierbarer Verstärkung (PGA, 1 ~ 256, unterteilt in 8 Stufen).
④ Geringes Rauschen und kleiner Fehler.
1.4.1 ADC-Anwendung schaltungsdesign
Die Schnittstellenschaltung zwischen LTC2486, Sensor und STM32F103 ist in Abbildung 2 dargestellt.
1) Vcc und REF +, REF − Spannungsdesign
① Aufgrund des geringen Stromverbrauchs (0,8 mW) und der Genauigkeit von 2486 wird Vcc ausgewählt
Wählen Sie die Stromversorgung über die Referenzspannung, TL431 erzeugt einen Ausgang über 5 V;
② Definieren Sie ADC_Data als Konvertierungsdaten; GAIN als internen Verstärkungswert; Vref als Referenzspannung; Fs als Vollspannung, Fs = 0,5 Vref[1].
Im Allgemeinen werden Konvertierungsfehler (Offset, Nichtlinearität usw.) ignoriert und die Konvertierungsdaten sind umgekehrt proportional zu Vref, also ADC_Data. Je kleiner Vref ist, desto kleiner ist die Spannung, die das LSB auflösen kann. Aber Vref darf nicht zu klein sein, nicht weniger als 400 mV [8]. Nehmen Sie hier REF+ = 400 mV.
③ Die positive Referenzstromversorgung (REF+) von 2486 wird vom Chip mit höherer Präzision (0,5 %) LT6650 erzeugt. Wenn der Eingang dieses Chips 5 V beträgt, kann der Ausgang eingestellt werden (0,4 ~ 4) V.
④ REF – Masse. Vref = REF + −REF− = 400 mV, Fs =200 (mV).
2) Auswahl von GAIN
Um eine vollständige Umwandlung zu erreichen (positive Umwandlungsdaten erreichen 0×10000), befolgen Sie für Thermoelemente Abschnitt 1.3.1, GAIN ≈ 4, nehmen Sie 4 Pt100-Paare, folgen Sie Abschnitt 1.3.2, GAIN = 4. Beachten Sie, dass je größer der Wert von GAIN ist, desto größer das Rauschen [1] und desto größer die Schwankung des ADC_Data-Werts. Die Auswahl von GAIN kann über die Tasten des Controllers erfolgen.
3) Schnittstelle zu STM32F103 (kurz F103)
Schnittstelle mit F103 über Vierdraht-SPI.
① Bidirektionaler Modus, F103 ist der Master und 2486 ist der Slave;
② F103 verwendet eine Arbeitsspannung von 3,3 V, während 2486 5 V verwendet, und in der Mitte muss eine Pegelumwandlung erfolgen. Aus diesem Grund sollte das Ausgangssignal (MOSI, SCK, NSS) von F103 auf offenen Schaltkreis (OD) eingestellt werden und der Pull-up-Widerstand beträgt (3,3 ~ 5,1) kΩ; während das Ausgangssignal SDO von 2486 geteilt werden sollte über einen Widerstand auf 3,3 V und dann MISO an F103 angeschlossen. wie in Bild 2 gezeigt.
2 Programmierung
Durchgeführt unter IAR-Version 7.20.5.624. Verwenden Sie die neueste Bibliotheksfunktion der Version 3.5.0 [9], die 2011 veröffentlicht wurde.
2.1 F103- und LTC2486-Schnittstellenprogrammierung
2.1.1 SPI-Initialisierungsfunktion
1) Vorgehensweise
void SPI2_Init(void)
{
Siehe Bibliotheksfunktionsprogrammierung. Achten Sie einfach darauf, die Leitungen PB13 und PB15 als gemultiplexte Open-Drain-Ausgänge festzulegen. Diese Methode dient zur Pegelkonvertierung zwischen F103 und 2486.
GPIO_InitStructure.GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_
OD;}
2.1.2 Schreiben Sie eine Byte-Datenfunktion auf 2486
1) Vorgehensweise
void SPI2_reg_write(u8 data)
{
① SPI2->DR = data; // Geben Sie die Daten in das Datenregister des SPI2-Ports ein und senden Sie sie aus.
② while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_
FLAG_RXNE) == RESET);
}
2) Programmhinweise
Anweisung ② bestimmt, ob das Schreiben eines Datenbytes erfolgreich ist. Es gibt viele ähnliche Anweisungen in SPI- und I 2C-Bibliotheksfunktionen, die verstanden werden müssen. Aus Platzgründen wird hier keine weitere Einführung gegeben. Einzelheiten finden Sie in den Referenzen [9] und [13].
2.1.3 Lesen Sie 1 Byte Daten von 2486
Lesen Sie es einfach direkt aus dem Datenregister des SPI2-Ports. Es werden keine Funktionen verwendet. Das heißt: b = SPI 2→ DR; b ist eine vorzeichenlose Bytevariable.
2.1.4 Lesen Sie die Konvertierungsdatenfunktion von 2486
1) Algorithmus
Vor dem Lesen von Daten muss zunächst der Arbeitsmodus 2486 eingestellt (geschrieben) werden. Unterschiedliche Anforderungen erfordern unterschiedliche Einstellungen. Dies ist nur ein Beispiel. Beachten Sie die Verwendung von Standardwerten.
①Die Datenkonvertierungsrate von 2486 wird normalerweise auf 6 Mal/s gewählt. Auch 12 mal/s sind wählbar, allerdings verringert sich dadurch die Genauigkeit [1] und wird generell nicht gewählt.
②Wählen Sie den Konvertierungskanal aus. Wählen Sie zwischen 4 Single-Ended- oder 2 Differenzkanälen.
③Wählen Sie den GAIN-Wert. Treffen Sie unterschiedliche Auswahlen, wie in 1.4.1 beschrieben.
Danach können die Daten gelesen werden.
④ 2486 gibt nach Abschluss der Konvertierung ein 1-Bit-Low-Pegel am SDO-Pin aus, das als Konvertierungsende-Flag (dh EOC-Signal) zur Beurteilung verwendet werden kann, im Allgemeinen mithilfe der Abfragemethode.
⑤ 2486 gibt nach jeder Konvertierung 3 8-Bit-Datenbytes aus. Jedes Ausgabebyte wird mit 1 Schreibbyte an Daten synchronisiert. Daher ist das richtige Timing: Zuerst 1 Byte schreiben, dann 1 Byte lesen; erneut 1 Byte schreiben, dann 1 Byte lesen und wiederholen. Wenn die Anzahl der zu lesenden Bytes größer ist als die gültigen Schreibbytes, schreiben Sie stattdessen 0 Daten (Null-Schreiben).
0 Vorwort
Viele Thermostate verwenden immer noch die traditionelle Struktur der Temperaturmess schaltung: Sensor → Filter → Vorverstärker 1 → Sensortypumschaltung → Vorverstärker 2 → Filter → ADC → MCU-Verarbeitung. Darüber hinaus sind ADCs meist in MCUs integriert, die nicht nur eine geringe Auflösung haben (meist 12 Bit oder weniger), sondern auch die Referenzstromversorgung oft unveränderlich ist. Diese Art von Struktur weist viele Komponenten und ein hohes Rauschen auf und ist nicht für hochpräzise Messungen und Steuerungen geeignet. Am Beispiel von Thermoelementen ist es im Bereich von 0 bis 661 °C schwierig, die Auflösung 0,1 °C zu überschreiten. Die Genauigkeit kann kaum 0,5 % überschreitenimage.png (1631081939725930.png ist der absolute Wert der Temperatur, die Einheit ist °C). In den letzten Jahren haben viele IC-Unternehmen die oben genannten traditionellen Temperaturmess strukturen integriert und hohe Auflösungen (16 Bit, 20 Bit und 24 Bit) für schwache Sensorsignale im Mikrovoltbereich wie Thermoelemente auf den Markt gebracht. Und es gibt Mehrkanal-ADCs wie den LTC2486. Dies stellt eine gute Wahl für das hochpräzise Temperaturmess design des Thermostats dar.
1: Hochpräzises Design der Temperaturmess schaltung
1.1 Schaltungsaufbau
Abbildung 1 zeigt ein konventionelleres Design, das relativ einfach ist. Ohne spezielle Signalverstärkung und Kanalumschaltkreise ist der Filterkreis auch der einfachste passive RC erster Ordnung.
1.2 Temperatursensor
Normalerweise benötigt der Thermostat zwei Haupttypen von Sensoren: Thermoelemente (TC) und Widerstände (RTD).
Abbildung 1 Struktur des hochpräzisen Temperaturmess kreises des Thermostats
1.2.1 Thermoelement
Der neueste internationale Standard für Thermoelemente ist die Version 2013 von IEC60584-1:2013, und der entsprechende (IDT) nationale Standard ist GB/T1639.1-2018[4]. Die Norm unterteilt Thermoelemente in mehrere Typen (E, K, J usw.), von denen Typ E die höchste Empfindlichkeit aufweist [3]. Es eignet sich für relativ hochpräzise Temperaturmess ungen. Aus Sicht der Hochpräzision sollte Typ E mit einem Fehler der Klasse 1 (0,004 für eine Temperatur von –40 bis 800 °C) [4], Mantel- und Verbindung isolierung [3], aber mit der Abschirmung verbunden erworben werden, um eine Differential verbindung herzustellen und Rauschen zu reduzieren.
1.2.2 FTE
Bei Thermostaten bezieht sich dies im Allgemeinen auf Pt100, der aktuelle internationale Standard ist IEC 60751:2008 und der entsprechende nationale Standard ist GB/T30121-2013. Die Formel für den thermischen Widerstand von Pt100 lautet wie folgt [5]
Darunter ist die Einheit von t °C; Rt ist der Widerstand von Pt100; R0 ist der Widerstand von Pt100 bei 0 °C (100 Ω) [5] (dasselbe unten).
Die Fehler- (oder Toleranz-)Stufe von Pt100 ist in 4 Stufen unterteilt [5]. Hier wählen wir die höchste Stufe AA (±(0,1+ 0,001 7) (bei −50 ~ 250 °C) oder Stufe A (die nächsthöhere). Niveau, ±( 0,15 + ) bei −100 ~ 450 °C).
1.3 Temperatursignale erkennen
1.3.1 Thermoelement
1) Tiefpassfilterung
Da es sich um ein Spannungssignal handelt, kann es nach einer einfachen RC-Tiefpassfilterung erster Ordnung direkt an den Differenzeingang des LTC2486 (CH2-CH3) angeschlossen werden, wie in Abbildung 2 dargestellt. Grenzfrequenz des Filters
Abbildung 2 Temperaturerkennung und ADC-Schaltplan
2) Die Thermoelement-Temperaturmessung am kalten Ende (auch Referenzende genannt [4]) muss ein Kompensationsproblem am kalten Ende lösen. Die konkreten Schritte sind:
① Verwenden Sie einen hochpräzisen Temperaturmess chip, um die Kaltendtemperatur tcj von TC zu messen [6].
② Aufgrund der unvollständigen linearen Beziehung zwischen Temperatur und Spannung muss tcj mithilfe eines linearen Interpolationsalgorithmus auf einer E-Typ-Skala [4] auf die Spannung Vcj [3] zurückgesetzt werden.
③ Addieren Sie Vcj zur Ausgangsspannung Vtc des TC als Teil der Ausgangsspannung des TC.
Neben Si7051 kann der Temperaturmess chip auch TMP275 (Auflösung bis 0,065 °C) und ADT7410 (0,007 8 °C) wählen.
3) Ausgangsspannungsbereich. Für Thermoelemente vom Typ E liegt der Temperaturmess bereich von −68 bis 661 °C in der Skalatabelle [4]. Der entsprechende Spannungsbereich (Vi) liegt bei −3,711 bis 49,997 mV. Um die Auflösung zu verbessern, kann die Reichweite reduziert und der GAIN erhöht werden. Siehe 1.4 für die Definitionen von FS und GAIN.
In Abbildung 2 stellt das „M“ im Thermoelement symbol das Abschirmung ende dar.
1.3.2 Pt100
Es ist notwendig, den nichtelektrischen Widerstand in ein Spannungssignal umzuwandeln. Der Leitungsfehler des Zweitleitungs-Pt100 kann nicht beseitigt werden und die Temperatur messabweichung ist groß (bei r = 0,225 Ω beträgt sie etwa 1 ~ 1,5 °C). Eine dreiadrige unsymmetrische Pt100-Widerstandsbrücke ist in Abbildung 3 (oder Abbildung 2) dargestellt. ist der Leitungswiderstand. ist ein fester Widerstand; ΔR stellt die Temperaturänderung relativ zu R0 dar, die positiv oder negativ ist; Vcb ist die Brückenstromversorgung; Vb ist die Brückenspannung im unsymmetrischen Zustand. Die Dreileiter-Pt100-Brücke verfügt über einen kontrollierbaren Leitungsfehler.
Bei dieser Thermostat konstruktion ist der Temperaturmessbereich entsprechend der Genauigkeit in zwei Stufen unterteilt:
①(−68 ~ 68) °C, Auflösung 0,001 °C;
②(−68 ~ 466) °C, Auflösung 0,007 °C.
In der folgenden Designdiskussion wird jedoch nur ① als Beispiel verwendet.
Abbildung 3 Analysemodell der Dreileiter-Pt100-Widerstandsbrücke
1.3.2.1 Brücken widerstand bemessung
1) Widerstand auswahl
① Die tatsächliche Messung zeigt, dass der Widerstand der 2 m langen Pt100-Leitung r = 0,225 Ω beträgt. Gemäß der Anforderung innerhalb von 20 m beträgt er etwa 2,25 Ω. Gemäß Formel (4) müssen R1 und R2 wiederum mehr als das Tausendfache von r betragen, um den Steigungsfehler zu verringern. Nehmen Sie also image.png= ≥2,25 kΩ;
②Der durch Pt100 fließende Strom (I p ) sollte nicht größer als 1 mA [5] sein, um die Selbsterwärmung zu kontrollieren. Er darf jedoch nicht zu klein sein, da er sonst die Empfindlichkeit der Brücken widerstandsmessung beeinträchtigt. Der tatsächliche Wert beträgt I p = (1 ~ 2) mA;
③Je größer der Widerstand, desto größer das Rauschen [8]. Aus dieser Perspektive gilt: Je kleiner der Widerstand, desto besser;
④ Die Widerstandsbrücke sollte bei 0 °C ausgeglichen bleiben (Vb = 0), was Folgendes erfordert:
⑤ Bedenken Sie, dass Vcb von TL431 erzeugt wird. Wählen Sie daher Vcb ≥ 2,5 V (siehe unten). Basierend auf den oben genannten vier Punkten ist R1=R2= 2 400 Ω. Wenn wir Formel (3) kombinieren, erhalten wir
R1 ~ R3 verwenden Chipwiderstände mit einer Genauigkeit von 0,01 % und einem Temperaturkoeffizienten von 5×10−6/°C (ca. 0,45 Yuan/Stück in Chargen). Diese Anforderung ist sehr wichtig.
2) Vcb-Auswahl und Auswahl des Brückenspannung ausgang bereichs
Aus Gleichung (9) ist ersichtlich, dass die Auswahl von Vcb mit dem Temperaturmessbereich (ΔR), dem Brückenspannungs-Vb-Bereich und der Auswahl des Brückenwiderstands zusammenhängt. Im Messbereich ① gilt bei ΔR = 26,31 Ω, wenn (4 ist GAIN) ausgewählt ist, zu diesem Zeitpunkt gemäß Gleichung (9) Vcb = 5.000 mV, und dann können wir aus Gleichung (9) erhalten: bei − 68 °C, Vb = −52,2 mV, der Bereich von Vb beträgt also (−52,2 ~ 50) mV. Die Brückenspannung Vb wird außerdem tiefpassgefiltert (R89, R90, C26 und C33), bevor sie in den Differenzkanal (CH0-CH1) des ADC gelangt.
1.3.2.2 Fehleranalyse der Dreileiterbrücke
Nehmen Sie zunächst an, dass der Brückendruck gemäß Gleichung (6) ist:
Wenn der Leitungswiderstand image.png auch Gleichung (3) berücksichtigt, ergibt sich für die Brückenspannung:
In,
Es kann davon ausgegangen werden, dass:
Dann kann r im Additionsterm von Vbr und VG ignoriert werden, also gilt
Berücksichtigen Sie zwei weitere Faktoren für VG:
Verfügbar:
Um sicherzustellen, dass die Auflösung der Temperaturmessung höher als 0,001 ist, ist es erforderlich, dass in Formel (4b)
Dies kann in der Praxis umgesetzt werden. Auf diese Weise kann die folgende Formel (4a) erhalten werden:
Zu diesem Zeitpunkt ist der relative Fehler
Gleichung (6) zeigt, dass ① ε positiv oder negativ sein kann, da ΔR und ΔR positiv oder negativ sein können; ② Je kleiner ΔR ist, d. h. je näher die Temperatur an 0 °C liegt, desto größer ist der relative Fehler ε ; ③ Gemäß Gleichung (3a) ist ε = 0 .
Die beiden oben genannten Punkte ① und ② stehen im Einklang mit dem allgemeinen Wahrnehmung verständnis.
Das aktuelle Beispiel sieht wie folgt aus: Wie oben erwähnt, ist bei einer Länge von 2 m der Leitungswiderstand r = 0,225 Ω, wenn ΔR = 0,195 (entspricht einer Ω-Temperatur von 0,5 °C) und R1 = 2402 Ω, R2 = 2400 Ω die Formel (3),
Dieser relative Fehler ist sehr gering, und sobald die Temperatur mehr als 0,5 °C beträgt, nimmt der Fehler allmählich wieder ab. Basierend auf dem oben Gesagten kann, solange Formel (3a) erfüllt ist, der Einfluss des Leitungswiderstands r auf 100 % oder sogar noch kleiner reduziert werden (entsprechend den tatsächlichen Anforderungen ausgelegt).
Die in Referenz [10] genannten Analysebedingungen weichen davon ab. Ist es besser, auf Gleichung (3a) umzusteigen?
Es ist wichtig zu beachten, dass Fehler auftreten, wenn die Widerstände der drei Drähte ungleich sind (was in der Praxis der Fall ist). Derzeit kann die Dreileiterschaltung das Problem nicht vollständig lösen. Daher müssen Sie beim Kauf eine Anfrage an den Lieferanten stellen, dass die drei Linien gleich sind.
1.4 Auswahl und Verwendung von ADC
Die Wahl des LTC2486 (als 2486 bezeichnet) ist hauptsächlich auf die folgenden vier Gründe zurückzuführen [1].
①Hohe umfassende Auflösung und kleiner Fehler. Es ist nominell 16 Bit groß, hat aber tatsächlich eine Auflösung von 17 Bit (einschließlich des Vorzeichenbits). Idealerweise kann eine Spannung von 1 μV aufgelöst werden.
② Es gibt zwei Differenzkanäle, die lediglich die Eingangsanforderungen von Thermoelementen und Pt100 allgemeiner Thermostate erfüllen, ohne dass zusätzliche Schaltkreise erforderlich sind (die zu Rauschfehlern führen würden).
③Es gibt einen eingebauten Verstärker mit programmierbarer Verstärkung (PGA, 1 ~ 256, unterteilt in 8 Stufen).
④ Geringes Rauschen und kleiner Fehler.
1.4.1 ADC-Anwendung schaltungsdesign
Die Schnittstellenschaltung zwischen LTC2486, Sensor und STM32F103 ist in Abbildung 2 dargestellt.
1) Vcc und REF +, REF − Spannungsdesign
① Aufgrund des geringen Stromverbrauchs (0,8 mW) und der Genauigkeit von 2486 wird Vcc ausgewählt
Wählen Sie die Stromversorgung über die Referenzspannung, TL431 erzeugt einen Ausgang über 5 V;
② Definieren Sie ADC_Data als Konvertierungsdaten; GAIN als internen Verstärkungswert; Vref als Referenzspannung; Fs als Vollspannung, Fs = 0,5 Vref[1].
Im Allgemeinen werden Konvertierungsfehler (Offset, Nichtlinearität usw.) ignoriert und die Konvertierungsdaten sind umgekehrt proportional zu Vref, also ADC_Data. Je kleiner Vref ist, desto kleiner ist die Spannung, die das LSB auflösen kann. Aber Vref darf nicht zu klein sein, nicht weniger als 400 mV [8]. Nehmen Sie hier REF+ = 400 mV.
③ Die positive Referenzstromversorgung (REF+) von 2486 wird vom Chip mit höherer Präzision (0,5 %) LT6650 erzeugt. Wenn der Eingang dieses Chips 5 V beträgt, kann der Ausgang eingestellt werden (0,4 ~ 4) V.
④ REF – Masse. Vref = REF + −REF− = 400 mV, Fs =200 (mV).
2) Auswahl von GAIN
Um eine vollständige Umwandlung zu erreichen (positive Umwandlungsdaten erreichen 0×10000), befolgen Sie für Thermoelemente Abschnitt 1.3.1, GAIN ≈ 4, nehmen Sie 4 Pt100-Paare, folgen Sie Abschnitt 1.3.2, GAIN = 4. Beachten Sie, dass je größer der Wert von GAIN ist, desto größer das Rauschen [1] und desto größer die Schwankung des ADC_Data-Werts. Die Auswahl von GAIN kann über die Tasten des Controllers erfolgen.
3) Schnittstelle zu STM32F103 (kurz F103)
Schnittstelle mit F103 über Vierdraht-SPI.
① Bidirektionaler Modus, F103 ist der Master und 2486 ist der Slave;
② F103 verwendet eine Arbeitsspannung von 3,3 V, während 2486 5 V verwendet, und in der Mitte muss eine Pegelumwandlung erfolgen. Aus diesem Grund sollte das Ausgangssignal (MOSI, SCK, NSS) von F103 auf offenen Schaltkreis (OD) eingestellt werden und der Pull-up-Widerstand beträgt (3,3 ~ 5,1) kΩ; während das Ausgangssignal SDO von 2486 geteilt werden sollte über einen Widerstand auf 3,3 V und dann MISO an F103 angeschlossen. wie in Bild 2 gezeigt.
2 Programmierung
Durchgeführt unter IAR-Version 7.20.5.624. Verwenden Sie die neueste Bibliotheksfunktion der Version 3.5.0 [9], die 2011 veröffentlicht wurde.
2.1 F103- und LTC2486-Schnittstellenprogrammierung
2.1.1 SPI-Initialisierungsfunktion
1) Vorgehensweise
void SPI2_Init(void)
{
Siehe Bibliotheksfunktionsprogrammierung. Achten Sie einfach darauf, die Leitungen PB13 und PB15 als gemultiplexte Open-Drain-Ausgänge festzulegen. Diese Methode dient zur Pegelkonvertierung zwischen F103 und 2486.
GPIO_InitStructure.GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_
OD;}
2.1.2 Schreiben Sie eine Byte-Datenfunktion auf 2486
1) Vorgehensweise
void SPI2_reg_write(u8 data)
{
① SPI2->DR = data; // Geben Sie die Daten in das Datenregister des SPI2-Ports ein und senden Sie sie aus.
② while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_
FLAG_RXNE) == RESET);
}
2) Programmhinweise
Anweisung ② bestimmt, ob das Schreiben eines Datenbytes erfolgreich ist. Es gibt viele ähnliche Anweisungen in SPI- und I 2C-Bibliotheksfunktionen, die verstanden werden müssen. Aus Platzgründen wird hier keine weitere Einführung gegeben. Einzelheiten finden Sie in den Referenzen [9] und [13].
2.1.3 Lesen Sie 1 Byte Daten von 2486
Lesen Sie es einfach direkt aus dem Datenregister des SPI2-Ports. Es werden keine Funktionen verwendet. Das heißt: b = SPI 2→ DR; b ist eine vorzeichenlose Bytevariable.
2.1.4 Lesen Sie die Konvertierungsdatenfunktion von 2486
1) Algorithmus
Vor dem Lesen von Daten muss zunächst der Arbeitsmodus 2486 eingestellt (geschrieben) werden. Unterschiedliche Anforderungen erfordern unterschiedliche Einstellungen. Dies ist nur ein Beispiel. Beachten Sie die Verwendung von Standardwerten.
①Die Datenkonvertierungsrate von 2486 wird normalerweise auf 6 Mal/s gewählt. Auch 12 mal/s sind wählbar, allerdings verringert sich dadurch die Genauigkeit [1] und wird generell nicht gewählt.
②Wählen Sie den Konvertierungskanal aus. Wählen Sie zwischen 4 Single-Ended- oder 2 Differenzkanälen.
③Wählen Sie den GAIN-Wert. Treffen Sie unterschiedliche Auswahlen, wie in 1.4.1 beschrieben.
Danach können die Daten gelesen werden.
④ 2486 gibt nach Abschluss der Konvertierung ein 1-Bit-Low-Pegel am SDO-Pin aus, das als Konvertierungsende-Flag (dh EOC-Signal) zur Beurteilung verwendet werden kann, im Allgemeinen mithilfe der Abfragemethode.
⑤ 2486 gibt nach jeder Konvertierung 3 8-Bit-Datenbytes aus. Jedes Ausgabebyte wird mit 1 Schreibbyte an Daten synchronisiert. Daher ist das richtige Timing: Zuerst 1 Byte schreiben, dann 1 Byte lesen; erneut 1 Byte schreiben, dann 1 Byte lesen und wiederholen. Wenn die Anzahl der zu lesenden Bytes größer ist als die gültigen Schreibbytes, schreiben Sie stattdessen 0 Daten (Null-Schreiben).