Aeronautica | Comunicatii | Constructii | Electronica | Navigatie | Pompieri | |
Tehnica mecanica |
Sa se proiecteze un subsistem de masurare a temperaturii avand urmatoarele caracteristici generale :
Intervalul de temperatura 0.500°C
Rezolutie 8 biti
Precizie 1% cap de scara ± 1 bit
Domeniul de temperatura
al functionarii aparatului 0.40°C
Traductor RTD din platina
cu rezistenta nominala
la 0°C de 100Ω
Microcontroler AT89 C51
Sursa de alimentare circuit integrat monolitic
Transmisia rezultatelor sau masuratorilor este data prin intermediul interfetei seriale RS 232C catre un sistem central de calcul (PC).
CONTINUTUL PROIECTULUI
Dependenta R(T) a traductorului de temperatura
T(°C) |
R(Ω) |
T(°C) |
R(Ω) |
Pentru conversia temperatura-tensiune se foloseste un generator de curent constant, care furnizeaza un curent de 1 mA.
La bornele traductorului se culege o tensiune, care va corespunde intervalului de masurare, intre 100 si 280,93 mV.
Deoarece caracteristica R(°C) a traductorului este neliniara, este necesara liniarizarea acesteia. Se procedeaza la liniarizarea caracteristicii, deoarece tensiunea rezultata in urma masuratorilor va fi aplicata unui convertor analog-numeric (CAN).
Liniarizarea caracteristicii traductorului
Liniarizarea caracteristicii traductorului se realizeaza cu ajutorul unui amplificator operational montat in schema de redresare monoalternanta.
Atunci cand vI > 0 , dioda D1 este blocata, iar D2 este deschisa, tensiunea de la iesire este data de relatia care caracterizeaza functionarea unui amplificator inversor:
vo = - (R2/R1) vI
Atunci cand vI < 0 , D1 este deschisa, iar D2 blocata, astfel incat tensiunea de iesire vo este nula.
Tensiunea de shiftare vsh permite functionarea amplificatorului de la un prag de tensiune.
ΔV = m1· Δt ΔVlin = 1· Δt
ΔVlin = x · ΔV = x · m1· Δt
x · m1 = 1 , deci x = m1-1
Procesul de liniarizare se face cu erori importante, de aceea se cauta obtinerea unei liniarizari cu erori cat mai mici.
Etapa I
°C |
Neliniar |
Liniar |
Diferenta |
|
|||
Valoare maxima
m = (280,93 - 100) / 500 = 0,362 Ω/°C
Etapa II
Se alege primul punct de frangere la 240°C --- 190,46 Ω.
°C |
Neliniar |
Liniar |
Diferenta |
°C |
Neliniar |
Liniar |
Diferenta |
Valoare maxima
m = (190,46 - 100) / 240 = 0,377 Ω/°C
= 0,82 / (190,46 - 100) = 0,9%
mn = (280,93 - 190,46) / 260 = 0,348 Ω/°C
n = 0,97 / (280,93 - 190,46) = 1,1%
Etapa III
Se aleg doua puncte de frangere la 120°C si la 360°C.
°C |
Neliniar |
Liniar |
Diferenta |
|
|||
°C |
Neliniar |
Liniar |
Diferenta |
°C |
Neliniar |
Liniar |
Diferenta |
°C |
Neliniar |
Liniar |
Diferenta |
m (Ω/°C) | ||||
Erorile sunt acceptabile.
Amplificarile corespunzatoare sunt:
A1 = 2,60
A2 = 2,70
A3 = 2,80
A4 = 2,93
Convertorul analog - numeric
Este folosit ADC 10061 , care are urmatoarele caracteristici:
Timpul de conversie in 10 biti 600ns
Rata de esantionare 800kHz
Erori totale ± 1 LSB
Acest convertor utilizeaza conversia multistep. Intrarea analogica este esantionata si retinuta cu un circuit de esantionare intern. Pot fi digitizate semnale ale caror frecvente sunt de la 0 la 200kHz.
Pentru a fi usor de interfatat cu un microprocesor ADC 10061 a fost proiectat ca o locatie de memorie sau port IN / OUT fara a mai fi nevoie de o interfata logica.
Conversia este initializata prin punerea la nivelul logic "0" a pinilor S/H si RD. dupa 850ns (adica dupa punerea pinilor la "0" logic), INI va fi "0" , indicand ca s-a terminat conversia. Dupa alte 20ns "data" apare la iesirile TRI-STATE si sunt utilizabile.
Numai dupa ce INI devine "0" logic, putem fi siguri ca datele furnizate apartin conversiei anterioare. Intrarea analogica este protejata fata de eventuale tensiuni mai mari decat cele pe care le poate suporta la intrare.
Interfata dintre portul serial al microcontrolerului
si unitatea centrala de calcul
Intre portul serial si calculator este necesar un protocol de transmisie a datelor si de un "translator" de protocol.
Translatorul de protocol este realizat cu un circuit MAX 232. Intarzierea de propagare la transmisie este de 1,3μs (tipic) din "high" in "low" si 1,5μs (tipic) din "low" in "high". In consecinta, pentru transmisia protocolului care contine 11 biti, la o frecventa de ceas de 12kHz, va fi necesar un timp cuprins in intervalul 13μs .15μs.
PROGRAME
com1.h :
extern double buffer
extern double * buffer_in ;
extern double * buffer_out ;
void init_com1 (void) ;
void write_com1 (int caracter) ;
int read_com1 (void) ;
void interrupt new_int och ( ) ;
com1.c :
# include "com1.h"
double buffer [100] ;
volatile double * buffer_in = buffer ;
volatile double * buffer_out = buffer ;
void init_com1 (void)
Rutina de citire a caracterului de la port
int read_com1 (void)
return (-AX)
Rutina de scriere
void write_com1 (int caracter)
asm
mov dx , 0x3fd
not_empty
asm
{
int al , dx
test al , 0x20
jz not_empty
mov ax , caracter
mov dx , 0x3f8
out dx , al
Programul rezident in memoria ROM
ORG #0X07H
JNP FIRST
FIRST SETB SCON 6
SETB SCON 5
SETB SCON 2
MOV TMOD , 0X01H
SETB TCON 4
SETB TCON 0
SETB IPO
SETB IE7
SETB IE0
MOV PCON , 0X01H
MOV TH1 , 0XFDH
SET PSW3
Rutina de intrerupere
ORG #0X03H
JMP #0X50H
MOV R1 , 0X30H
MOV R1 , P1
MOV P3.1 , R1
JB SCON2
CLR P3.5
CLR P3.7
JMP FIRST
Copyright © 2024 - Toate drepturile rezervate