Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

TD - DISPOZITIV DE TRANSMITERE A DATELOR

calculatoare



+ Font mai mare | - Font mai mic



 



 

DISPOZITIV DE TRANSMITERE A DATELOR

 

Partea teoretica:

1.1 Prezentarea metodei folosite, in cazul nostru, pentru a efectua transmisia de date.

1.2 Pasii ce trebuie urmariti in constructia unui asemenea dispozitiv.

2. Partea practica:

2.1Componentele folosite in constructia dispozitivului nostru de transmisie a datelor si descrierea acestora.

2.2Modul de functionare al dispozitivului

3. Concluzii

4. Codul sursa al programarii transmitatorului si receptorului

Bibliografie

1.1 Amplitude shift keying (ASK)

ASK este o forma de modulatie, reprezentand informatii digitale ca variatii ale amplitudinii unei unde transportoare.

Amplitudinea unui semnal transportor analogic variaza in concordanta cu semnalul de modulatie, pastrand frecventa si faza constante. Nivelul amplitudinii poate fi folosit pentru a reprezenta in binar 0 si 1 logic. Ne putem gandi la semnalul transportor ca la un intrerupator (inchis/deschis). In semnalul de modulatie 0 logic este reprezentat de absenta transportorului, evidentiind astfel operatia de inchis/deschis.

Asemeni modulatiei de amplitudine (AM), ASK este de asemenea liniar si sensibil la zgomotul atmosferic, distorsiuni, la conditii de propagare pe diferite rute din PSTN (public switched telephone network-reteaua de telefonie publica).

Modulatia si demodulatia ASK sunt doua procese relativ ieftine. Tehnica ASK este de asemenea folosita frecvent pentru a transmite informatii digitale prin fibra optica. Pentru emitatoare LED, 1 binar este reprezentat de un scurt puls de lumina, iar 0 binar de absenta luminii. Emitatoarele cu laser au un 'bias' fix al curentului, care determina aparatul sa emita un nivel scazut de lumina. Acest nivel scazut reprezinta 0 in binar, iar o unda luminoase cu o amplitudine mai mare reprezinta 1 in binar.

Codificare

Cel mai simplu si mai des intalnit mod de utilizare a ASK functioneaza ca un intrerupator, folosind prezenta unei unde transportoare pentru a indica 1 logic si absenta ei pentru 0 logic. Acest tip de modulatie este denumit 'on-off keying' si este folosit pe frecvente radio pentru a transmite cod Morse.

Au fost proiectate si scheme de codificare mai complexe, care reprezinta informatia in grupuri folosind nivele aditionale de frecventa. De exemplu, o schema de codificare pe patru nivele poate reprezenta doi biti cu fiecare schimbare de amplitudine; o schema pe opt nivele poate reprezenta trei biti si asa mai departe. Aceste tipuri de ASK necesita un raport mare semnal-la-zgomot (raportul puterilor semnalului si zomotului) pentru recuperarea lor deoarece, prin natura lor, transmit o mare parte a semnalului la putere redusa.

DIAGRAMA UNUI MODEL IDEAL DE TRANSMITERE PRIN MODULATIE ASK

Poate fi impartita in trei blocuri:

- transmitatorul

- modelul liniar al efectelor canalului

- receptorul

S-au folosit urmatoarele notatii pentru :

- semnalul purtator pentru transmisie: ht(f)

- raspunsul impuls al canalului: hc(f)

- zgomotul introdus de canal: n(t)

- filtrul de la receptor: hr(f)

- timpul dintre generarea a doua simboluri: Ts

Diferite simboluri sunt reprezentate cu voltaje diferite. Daca valoarea maxim admisa pentru voltaj este A, atunci toate valorile posibile se afla in intervalul [-A,A] si sunt date de :

diferenta dintre un voltaj si altul este:

Considerand schema din figura de mai sus, simbolurile v[n] sunt generate aleator de sursa S, iar apoi generatorul de impulsuri creeaza impulsuri cu aria de v[n]. Acestea sunt trimise catre filtrul ht(f) pentru a fi directionate apoi catre canal. Cu alte cuvinte, pentru fiecare simbol se trimite o unda purtatoare diferita, cu amplitudinea relativa.

La iesirea din transmitator, semnalul s(t) poate fi exprimat sub forma:

In receptor, dupa filtrare, semnalul este :

Acesta este apoi transformat in semnalul discret z(k), prin introducerea unui convertor analogic/digital pentru a putea fi interpretat ulterior de catre o masina de calcul numeric.

Pasii ce trebuie urmariti in constructia unui asemenea dispozitiv

Pentru a construi un dispozitiv capabil sa transmita date, prin diferite metode, este necesar ca acesta sa contina un minim de elemente functionale. De cele mai multe ori, ca si in cazul nostru, datele primite la intrare (indiferent de natura lor), pentru a putea fi interpretate corespunzator la iesire, trebuie transformate cu ajutorul unor echipamente ce modifica semnalul primit, dar fara a-i modifica "intelesul" (adica, ceea ce se transmite trebuie sa fie echivalent cu ceea ce se receptioneaza, luand in calcul, evident, si erorile).

Pana si cel mai rudimentar dispozitiv de transmitere contine:

- o sursa: de aici porneste informatia ce trebuie transmisa

- un transmitator: dispozitiv ce primeste semnalul de intrare venit de la sursa si il transmite mai departe

- un receptor: dispozitiv ce receptioneaza semnalul venit de la transmitator, ce reda apoi iesirea corespunzatoare.

- un canal de transmitere a informatiei: ce face legatura intre cele 2 componente importante (transmitator si receptor)

In functie de tipul datelor transmise, de complexitatea acestei operatii, de perturbatiile mediului ambiant (ce afecteaza si influenteaza acest proces), de echipamentele ce interpreteaza semnalul de iesire, etc, un dispozitiv de transmisie mai poate contine:

convertoare (analogic/digitale, digital/analogice):

display-uri (in cazul in care dorim sa afisam datele)

LED-uri (care indica diferite stari ale componentelor sau stagii ale transmisiei)

senzori

interfete (seriale, paralele, prin care se realizeaza comunicatia intre calculator si placutele de transmisie si receptie)

2.1 C omponentele dispozitivului

Aplicatia noastra contine, in primul rand, doua placute, un transmitator si

emitator, denumite modul de emisie (900-6896) si modul de receptie (900-6895). In continuare prezentam descrierea acestora, precum si caracteristicile lor:

Modulul de transmisiemisie (900-6896)

Caracteristici:

- nu necesita alte ajustari

- iesire stabila

- potrivit pentru telecomenzi, telemetrie, si altele

Specificatii:

- frecventa: 433 MHz

- modulatie: ASK

- forma circuitului: SAW

- rata de transfer: 100kbps

- puterea maxima de la iesire: 10mV

- sursa de curent:3 -12 Vdc

- numar de pini:

1: GND

2: data in

3: Vcc

4: ANT

Modulul de receptie (900-6895)

Caracteristici:

- nu necesita alte ajustari

- iesire stabila

- potrivit pentru telecomenzi, telemetrie, si altele

Specificatii:

- raza de actiune: 200m in spatiu deschis

- frecventa: 433 MHz

- modulatie: ASK

- sensibilitate: -106 dBm

- sursa de curent: 4.5-5.5 Vdc

- iesire digitala si liniara

- numar de pini:

1: GND

2: iesire digitala

3: iesire liniara

4: Vcc

5: Vcc

6: GND

7: GND

8: antena ( 30-35 cm)

Semnalul de intrare este dat de senzorul de temperatura LM135, care este apoi transformat in semnal digital cu ajutorul convertorului analog-digital al microcontrolerului ATMEL AVR pe 8 biti.

Senzorul de temperatura LM135

Senzorul analogic de temperatura LM135 de la National Semiconductor este un senzor foarte precis, usor de calibrat si integrabil pe circuit. Cu mai putin de W impedanta dinamica, dispozitivul opereaza parctic fara schimbari in performanta pe tot domeniul de variatie al curentului, de la 400 μA pana la 5 mA. Cand este calibrat 25 de grade Celsius, LM135 are o eroare mai mica de 1C pe o variatie a temperaturii de pana la 100C. spre deosebire de alti senzori, LM135 are o iesire liniara.

Aplicatiile pentru LM135 includ aproape orice tip de temperatura, de la −55C pana la +150C.

Caracteristici:

direct calibrat in Kelvin

acuratete disponibila de 1C

opereaza intre 400 μA si 5 mA

usor de calibrat

domeniu mare de variatie al temperaturii

costuri reduse

Diagrama schematica a senzorului:

Microcontrolerul ATMEL AVR

(ATmega32)

Acesta este folosit pentru a transforma semnalul analogic in semnal digital, printr-o transmisie pe 8 biti.

Caracteristici:

performante ridicate la putere scazuta

arhitectura RISC avansata (131 de instructiuni, 32*8 registrii generali, operatie complet statica)

segmente de memorie cu anduranta mare si memorie non-volatila (32KB memorie flash de program, 1024 baiti EEPROM, 2KB SRAM intern, retinere de date 20 de ani la 85 de grade Celsius / 100 de ani la 25 de grade Celsius.

Interfata JAG

Intrari/iesiri: 32 de linii I/O programabile

Voltajul la care opereaza 4.5-5.5 V

Viteza: 0-16 MHZ

Configuratia pinilor microcontrolerului:

Pentru debugging ambele echipamente sunt prevazute cu interfata seriala pentru comunicatia cu calculatorul. Aceasta se numeste MAX232.

Caracteristici:

indeplineste si depaseste recomandartile V.28 TIA/EIA-232-F si ITU

opereaza de la o singura sursa de 5V

opereaza cu pana la 120 KB/sec

are doua drivere si doaua transmitatoare

30-V Input Levels

sursa slaba de curent : 8 mA

aplicatii: TIA/EIA-232-F, sisteme alimentate de baterii, terminale, modemuri si calculatoare

Pentru afisearea temperaturii rezultate in urma transmisiei, am folosit un display LCD, ca in figura de mai jos:

2.2 Modul de functionare al dispozitivului

Modulele de transmisie si receptie sunt setate sa functioneze corect la 433MHz, folosind metodat ASK, descrisa in partea teoretica.

Dispozitivul transmitator:

Acesta preia semnalul analogic al senzorului de temperatura si cu ajutorul convertorului analog-digital al microcontrollerului este transformat in semnal digital cu valori intre 0 si 1023. Valoarea rezultata de la ADC este transmisa receptorului prin modulul de transmisie.

Dispozitivul receptor:

Acesta preia cu ajutorul modulului receptor valoarea transmisa de dispozitivul transmitator, transforma aceasta valoare in grade celsius si o afiseaza pe LCD. Pentru transformarea in grade celsius s-a preluat valoarea indicata de ADC la temperatura camerei si la 0 grade si s-a calculat ecuatia dreptei rezultate.

Pentru comunicatia cu PC-ul si debugging, ambele placute (transmitator si receptor) sunt prevazute cu o interfata seriala, iar pentru programarea lor s-a folosit limbajul WinAvr. Putem verifica astfel corectitudinea si coerenta datelor receptionate, iar pentru a testa acest lucru noi am implementat un algoritm CRC.

3. Concluzii

Dupa testarea dispozitivului in diferite conditii, observam ca rata de eroare (de pierdere a pachetelor) este destul de mare si creste o data cu cresterea distantei. Aceasta a fost de aproximativ 20%, la o distanta de 1.5 m.

Am fi putut evita acest lucru folosind niste antene corespunzatoare (antene wireless) pentru a creste randamentul.

Vom lua in calcul intotdeauna perturbatiile mediului, care pot in orice moment bruia sau intrerupe transmisia (de ex: telecomenzi pentru alarma autoturismelor, etc)

4. Codul sursa al dispozitivului

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <lcd_lib.h>
#include <avr/pgmspace.h>
#include <stdio.h>
#include <stdlib.h>

const uint8_t welcomeln1[] PROGMEM='Senz Temperatura0';
const uint8_t ledon[] PROGMEM='LED ON 0';
const uint8_t ledoff[] PROGMEM='LED OFF0';
const uint8_t cel[] PROGMEM=' deg celsius0';
const uint8_t clr[] PROGMEM=' 0';


#ifndef F_CPU
//define cpu clock speed if not defined
#define F_CPU 4000000
#endif
//set desired baud rate
#define BAUDRATE 1200
//calculate UBRR value
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)
//define receive parameters
#define SYNC 0XAA// synchro signal
#define RADDR 0x44
#define LEDON 0x11//LED on command
#define LEDOFF 0x22//LED off command

/*initialise the USART module*/
void USART_Init(void)


/*receive byte via USART*/
uint8_t USART_vReceiveByte(void)


void delayms(uint8_t t)//delay in ms


/*send integer value to LCD*/
void LCDint(int d)

else if (d<100)

else if (d<1000)

else if (d>=1000)

}

ISR(USART_RXC_vect)

if(data==LEDON)

else if(data==LEDOFF)

else

}
}
}

/*initialise all the components*/
void Main_Init(void)


int main(void)

//nothing here interrupts are working
return 0;

}

#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <string.h>

#ifndef F_CPU
//define cpu clock speed if not defined
#define F_CPU 8000000
#endif
//set desired baud rate
#define BAUDRATE 1200
//calculate UBRR value
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)
//define receive parameters
#define SYNC 0XAA// synchro signal
#define RADDR 0x44//receiver address
#define LEDON 0x11//switch led on command
#define LEDOFF 0x22//switch led off command

/*changing the RADDR we can send data to more than one receiver*/

/* initialize the ADC */
void adc_init(void)


/* starts ADC conversion */
void adc_start_conversion(void)


/* returns boolean value indicating if the ADC conversion is still in
prgress */
int adc_conversion_in_progress(void)


/* clears the ADC interrupt flag */
void adc_clear_interrupt_flag(void)


/*initialise the USART*/
void USART_Init(void)


/*send byte via USART*/
void USART_vSendByte(uint8_t u8Data)


/*send a packet containing the synch byte, the receiver address, the
data and the checksum*/
/*we have implemented a CRC algorythm*/
void Send_Packet(uint8_t addr, uint8_t cmd)


void delayms(uint8_t t)//delay in ms


int main(void)

return 0;
}

4. Bibliografie

https://en.wikipedia.org/wiki/Amplitude-shift_keying

https://focus.ti.com/lit/ds/symlink/max232.pdf

https://www.national.com/ds/LM/LM135.pdf

https://www.atmel.com/dyn/resources/prod_documents/2503S.pdf

https://winavr.scienceprog.com/example-avr-projects/avr-gcc-4-bit-and-8-bit-lcd-library.html



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2791
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved