Cod Gray
De la Wikipedia, enciclopedia liberă.
Un cod Gray este un cod care îi atribuie unei mulţimi continue de întregi, sau fiecărui
membru al unei liste circulare, un cuvânt de simboluri, prin care două cuvinte
alăturate diferă printr-un singur simbol. Poate exista mai mult de un cod Gray pentru o
lungime dată de cuvânt, iar termenul a fost folosit pentru codul binar pentru întregi
nenegativi. Versiunea pe patru biţi este aceasta:
0 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
8 1100
9 1101
10 1111
11 1110
12 1010
13 1011
14 1001
15 1000
Codul Gray binar pentru n biţi poate fi generat prin recursivitate prin prefixarea unui
bit 0 în faţa codului Gray pentru n-1 biţi, apoi prefixând un bit 1 pentru aceluiaşi cod
pentru n-1 biţi, dar reflectat (în ordine inversă).
Algoritmul pentru generare cod Gray ar trebui să arate aşa:
Fie B[n:0] vectorul de biţi în reprezentare binară obişnuită
Fie G[n:0] vectorul de biţi în reprezentare binară Gray
G[n]=B[n]
pentru i=n-1 până la i=0 {
G[i]=B[i+1] XOR B[i]
}
sau în C:
unsigned int grayencode(unsigned int g) {
return(g^g>>1);
}
Decodarea ar fi:
B[n]=G[n]
pentru i=n-1 până la i=0 {
B[i]=B[i+1] XOR G[i]
}
sau în C:
unsigned int graydecode(unsigned int b) {
b^=b>>1; b^=b>>2; b^=b>>4; b^=b>>8; return(b^b>>16);
}
TEORII DESPRE COD GRAY
6.6.2 Traductoare pentru deplasari unghiulare
Se folosesc in cazul:
- unor masurari unghiulare propriu - zise in domeniul 0° …360° ;
- masurarea indirecta a unor deplasari liniare convertite in deplasare unghiulara.
[Link] Traductoare rezistive
Cuprind elemente sensibile care functioneaza ca si cele liniare, de
regula in montaj potentiometric, motiv pentru care se mai numesc si
servopotentiometre . Relatia de functionare este:
(6.51)
Au aceleasi dezavantaje in ce priveste neliniaritatea si erorile de
temperatura.
Ele pot fi:
- uniturn, când executa o singura rotatie de la 0 la α max (unghi limitat de
zona in care se afla contactele);
- multiturn, care se pot utiliza in domenii peste 360° , deoarece au
rezistenta bobinata pe un suport elicoidal. Variantele standard au 3 sau 10
rotatii. Pot fi folosite si pentru masurarea unor deplasari liniare (5..10 mm)
actionate corespunzator prin reductoare mecanice.
[Link] Traductoare capacitive
Singura varianta este cea cu modificarea suprafetei elementului sensibil,
intâlnita sub forma de:
- varianta simpla asemanatoare cu condensatoarele de acord din tehnica
radio;
- varianta diferentiala (fig.6.27).
[Link] Traductoare inductive
Principial se aseamana cu cele pentru deplasari liniare mici, cu adaptarea elementelor
sensibile la deplasarea unghiulara. Intâlnim:
- elemente sensibile inductive cu miez feromagnetic mobil. Cel mai utilizat este
transformatorul diferential variabil TRDV (fig.6.28). Consta dintr-o bobina primara si doua
secundare dispuse pe miez feromagnetic (tole E) la care inductanta de cuplaj se modifica
datorita deplasarii unui rotor feromagnetic inchizând astfel diferit fluxul magnetic in cele
doua bobine secundare. Din cauza neliniaritatii se folosesc intr-un domeniu restrâns: ±40° …
±60° . Singura modificare fata de varianta liniara, ca performante, este aparitia unor frecari
suplimentare la rotor, dar cuplul fiind mic, acestea pot fi neglijate. Necesita ecranari fata de
câmpuri magnetice externe. Frecventa de alimentare se alege in gama 400 Hz…2 kHz.
- elemente sensibile inductive de tip selsin.
Principiul de functionare este urmatorul (fig. 6.29): statorul inductor este parcurs de o
tensiune e1 = E1 sinω t, care induce in rotor tensiunea e2 = E2 cosθ sinω t. θ este unghiul
dintre axele electrice ale celor doua infasurari. La o variatie a lui θ intre 0° si 360° se obtine
o tensiune sinusoidala de valoare maxima E2, care la fiecare trecere prin zero isi schimba faza.
Se pune deci in evidenta fiecare semirotatie (prin schimbarea fazei), iar in cadrul unei
semirotatii (0°…180°) amplitudinea tensiunii induse este functie de unghi.
Se realizeaza in variantele rezolver si inductosin.
Rezolverul (inductosinul bifazat) - fig.6.30 - contine doua infasurari statorice, decalate
electric cu 90° . Rotorul este monofazat. In functie de modul de alimentare, inductorul poate fi
rotorul sau statorul. Daca rotorul este alimentat cu tensiunea:
(6.52)
in stator se induc tensiunile:
(6.53)
(6.54)
Considerând raportul de transformare intre infasurari 1:
(6.55)
deci:
(6.56)
In cazul alimentarii pe stator rezulta doua variante de utilizare:
– cu modulatie de amplitudine. Infasurarile se alimenteaza cu tensiunile:
(6.57)
(6.58)
In rotor se induce o tensiune:
(6.59)
unde α este pozitia de referinta fata de care se masoara pozitia relativa a axului. Semnul ±
este determinat de sensul de parcurgere a infasurarilor s1, s2. Se obtine o tensiune cu
amplitudinea modulata cu sin(cos) de .
- cu modulatie de faza. Statorul se alimenteaza cu doua tensiuni, de aceeasi frecventa si
amplitudine, decalate cu 90° electrice:
(6.60)
(6.61)
Tensiunea indusa in rotor va fi:
(6.62)
Faza tensiunii induse este proportionala cu unghiul relativ dintre rotor si stator.
Adaptoare pentru rezolvere. Problema esentiala este asigurarea tensiunilor de alimentare
statorice. O solutie consta in utilizarea unui alt rezolver alimentat pe rotor (generare
analogica); o alta solutie presupune generarea tensiunilor de alimentare sub forma discreta,
prin utilizarea de tensiuni dreptunghiulare dependente de unghiul de referinta α , in scopul
folosirii acestui gen de traductoare in echipamente numerice de masurare a pozitiei.
Selsinele pot fi executate si in varianta multipolara, cu acelasi mod de functionare, insa
corelarea dintre unghiul de rotire si variatia fazei sau amplitudinii. Daca la un selsin bipolar la
o rotatie completa (360° mecanice) corespund 360° electrice, la un selsin cu 10 poli la o
rotatie de 360° mecanice corespunde 5 x 360° electrice, sau, pentru a obtine o deplasare de
360° electrice selsinul trebuie sa se roteasca cu 72° mecanice.
Inductosinul circular. Poate fi echivalat cu un selsin multipolar desfasurat in plan, cu un
numar foarte mare de poli. Constructiv, el consta din doua discuri plane, separate intre ele
printr-un interstitiu de aer de 0,1…0,3 mm. Unul din discuri este mobil (rotorul), cuplat
solidar cu obiectul in miscare, iar celalalt fix, asociat cu sistemul de referinta (statorul). Pe
discul fix, de regula inductor, sunt dispuse doua infasurari multipolare plane, realizate in
tehnica cablajelor imprimate (fig.6.31). Ele sunt decalate intre ele cu 90° electrice (½ din
latimea unei spire). Rotorul, uzual indus, contine o infasurare cu acelasi pas. Se constata ca
pentru p = 100 se obtine o deplasare de 360° electrice la 0,36° mecanice. De regula pasul de
divizare este τ = 2° si prin divizare electronica se pot obtine precizii de 5", chiar 1". Precizia
ridicata presupune dificultati constructive: interstitiul paralel perfect dintre stator si rotor,
cuplaj inductiv armonic, uniformitatea pasului infasurarilor, omogenitatea materialului suport.
Cu toate acestea, el este unul din cele mai utilizate traductoare in asociere cu echipamentele
de comanda numerica.
[Link] Traductoare numerice
Elementul sensibil propriu-zis il constituie un disc codat, iar prelucrarea
informatiei este specifica modului de codare. Deosebim:
- discuri codate absolut, la care se obtine in orice moment informatia de
pozitie in raport cu un punct de referinta;
- discuri incrementale, care ofera o succesiune de impulsuri in raport cu
ultima pozitie atinsa, fiecare impuls constituind un increment de
deplasare.
1. Traductoare numerice absolute. La acestea se imparte domeniul de masurare intr-un numar
de cuante elementare, a caror marime determina rezolutia, se alege codul de exprimare a
valorilor cuantificate, se inscrie pe disc respectivul cod, care va permite citirea pozitiei unui
cursor fata de disc. Exista:
a) Discuri absolute cu contact - fig.6.32. Pistele concentrice sunt codificate si formeaza zone
conductoare sau izolate. Suprafetele conductoare sunt legate electric printr-o perie fixata la un
inel colector, prin care se alimenteaza colectorul. Pistele sunt parcurse prin contact de un set
de perii, pozitionate la distante radiale corespunzatoare, fiecare fiind conectata printr-un
conductor separat. La rotirea discului periile vor sesiza o zona conductoare (1 logic) sau
izolata (0 logic). Tranzitiile de pe o pista pe alta trebuie sa se faca lin, uzura trebuie sa fie
aceeasi la disc ca si la perii. Un disc cu 10 piste are o rezolutie de 1:210 (1:1024), dar se pot
realiza sisteme cu mai multe discuri cuplate prin reductoare adecvate. Codurile cele mai
folosite:
- cod binar natural;
- cod BCD - binar codificat zecimal - folosit când traductorul este cuplat cu echipamente
lucrând in acelasi cod;
- cod Gray, care are avantajul ca doua combinatii succesive difera printr-un singur bit (cod
monostropic).
b) Discuri absolute magnetice. Sunt discuri acoperite cu material magnetic folosite in tehnica
inregistrarilor magnetice. O zona magnetizata reprezinta un 0 logic, iar una nemagnetizata un
1 logic. Ele sunt mai complexe decât cele cu contact dar au o durata de viata mult sporita. Nu
pot fi folosite in medii industriale, datorita câmpurilor magnetice perturbatoare.
c) Discuri absolute optice. Stau la baza majoritatii traductoarelor numerice actuale. Discul
optic este realizat din sticla speciala pe care sunt trasate spatii transparente si opace,
corespunzatoare zonelor conductoare si izolate de la varianta cu contact. La disc se asociaza o
sursa de lumina cuplata cu un sistem optic si o matrice de fotoelemente dispuse radial. La
realizarea discurilor se folosesc tehnici foto de inalta precizie (linii radiale distantate la 0,067
sec, deci rezolutie de 1:108). Coduri folosite: Gray, binar natural, binar codificat zecimal,
coduri care simuleaza functii sin, cos, log. Ca sursa de lumina pot fi folosite diode Ga As cu
durata mare de viata (mai mare de 105 ore). Receptorul este realizat din fotoelemente,
eventual celule fotovoltaice, fiind asociate cu amplificatoare si formatoare adecvate.
Ca si traductoarele selsin, discurile codate se pot folosi la masurarea indirecta a
deplasarilor liniare, prin cuplarea de dispozitive mecanice de transformare a miscarii de
rotatie in miscare liniara.
2. Traductoare numerice incre-mentale - genereaza un numar fix de impulsuri la fiecare unitate de rotatie
unghiulara a discului codat. Procedeul de sesizare a incrementelor de miscare poate fi magnetic sau optic, cel
optic fiind in prezent cel mai raspândit, datorita unei simplitati relative constructive si a unor facilitati in
prelucrarea semnalelor.
Circuitele asociate discului trebuie sa contina un numarator care sa ofere o iesire numerica, intr-un anume
cod, in functie de incrementii generati de disc. De asemenea este necesar sa indice sensul de rotatie, care nu
apare in informatia data la numarator. Discurile codate pot fi realizate fie prin transparenta (procedeu
diascopic) fie prin reflexie (procedeu episcopic).
Indiferent de procedeul de iluminare, circuitele de prelucrare realizeaza aceleasi functii. Cel mai raspândit
mod este obtinerea prin grila de scanare a patru semnale sinusoidale decalate fiecare cu 90° . Cele patru
fotoelemente sunt astfel asociate perechi, in montaj diferential, incât se obtine câte o sinusoida, decalate intre
ele cu 90° (fig. 6.34). Se genereaza si un semnal de zero 1N, pentru reproducerea unei pozitii de referinta.
Semnalele astfel obtinute sunt prelucrate, amplificate si adaptate pentru tipul de logica in care se va lucra.
Datorita robustetii, simplitatii constructive, costului scazut, rezolutiei ridicate (pâna la 360.000 imp /
rotatie) traductoarele incrementale rotative sunt din cele mai utilizate si in masurarea indirecta a deplasarii
liniare, cu precautiile corespunzatoare pentru compensarea jocurilor mecanice.