ispitni rad1

25
Univerzitet u Novom Sadu – FTN - EET INSTRUMENTACIJA I MERENJE Programiranje merno-akvizicionih sistema ISPITNI RAD Merenje temperature pomoću senzora DS18B20 Studenti: Profesor:

Upload: zlajaar4081

Post on 24-Jun-2015

550 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ISPITNI RAD1

Univerzitet u Novom Sadu – FTN - EET

INSTRUMENTACIJA I MERENJEProgramiranje merno-akvizicionih sistema

ISPITNI RAD

Merenje temperature pomoću senzora DS18B20

Studenti: Profesor: Nenad Zlatković Vladimir VujičićMladen Karaklić Asistent: Petar Zobenica Mirjana Trobok

Septembar, 2010. Novi Sad

Page 2: ISPITNI RAD1

Sadržaj

Zadatak ispitnog projekta ............................................................................. 3

Opis rešenja................................................................................................... 3

Kratak opis osnovnih komponenti................................................................ 4

Mikrokontroler pic16f887.................................................................. 4

MAX 232 drajver............................................................................... 7

Digitalni temperaturni senzor DS1820.............................................. 8

Uputstvo za upotrebu................................................................................... 14

Opis programa ds1820_prog ...................................................................... . 16

Opis programa Temperature Measurement................................................. 18

- 2 -

Page 3: ISPITNI RAD1

Zadatak ispitnog projekta

Realizovati sistem za merenje temperature senzorom DS1820 i dobijene rezultate prikazati na PC-u.

Opis rešenja

Razvijena je aplikacija za PC u programskom paketu Delphi 6, kojom korisnik šalje zahteve za dobijanje vrednosti trenutne temperature, i prikaz istih. Korisniku je omogućeno da rezultate dobija automatski sa odgovarajućim periodom ponavljanja, koji sam odabere, ili da zahteva prikaz u momentu koji sam odabere. Rezultati se prikazuju i na grafiku što omogućava praćenje trenda temperature. Rad senzora ne bi bio moguć bez hardverskog dela, kojeg u našem slučaju čini razvojni sistem MIKRO ELEKTRONIKA Easy pic 5. Hardverom upravlja mikrokontroler pic 16f887. Razvijen je softver u programskom paketu MikroC, koji omogućava rad hardvera. Prikaz rezultata merenja se takođe ispisuje na LCD displeju koji je deo razvojnog sistema.

Slika1 Merni sistem

- 3 -

Page 4: ISPITNI RAD1

Potrebna oprema za realizaciju projekta

Desktop računar (PC, Windows platforma), Programski paket Delphi6 sa dodatnom RS232 kontrolom, Razvojni sistem mikroelektronika Easypic5 (uc pic 16f887), LCD displej, Senzor DS1820, Dallas semiconductor, Programski paket mikroC 8.02, Mikroelektronika

Kratak opis osnovnih komponenti

Pošto je ovo eksperimentalni projekat za njegovu realizaciju je upotrebljen razvojni sistem (Easy pic 5). Za praktičnu realizaciju projekta on nije potreban već bi srce tog mernog sistema činio mikrokontroler. Jedno od pitanja koje se nameće prilikom planiranja ovog projekta je bio izbor mikrokontrolera. Kako se opredeliti za pravi? Morate razmišljati koliko je ulazno/izlaznih linija potrebno za rad, koje će sve poslove uređaj obavljati, da li postoji potreba za korišćenjem modula za serijsku vezu, A/D konverziju... Mi smo se opredelili za pic 16f887, kompanije microchip.

Mikrokontroler PIC 16f887

Pic 16f887 je mikrokontroler široke namene, kojeg karakteriše niska cena, velike mogućnosti i laka nabavka. Predstavlja idealan izbor za: kontrolu različitih procesa u industriji, upravljanje mašinama i uređajima, merenje različitih veličina i dr. Ovaj mikrokontroler predstavlja integraciju mikroprocesora, memorije i periferija pa zato ne zahteva složeni eksterni hardver da bi se realizovao mikroračunarski sistem. Izrađen je u CMOS tehnologiji sa ugrađenom FLASH i EEPROM memorijom za memorisanje programa i podataka. Pic 16f887 ima RISC arhitekturu, koju karakteriše manji skup instrukcija koje se brzo izvršavaju. Osnovne karakteristike mikrokontrolera:

RISC arhitektura Potrebno je poznavati 35 instrukcija Radna frekvencija 0- 20 MHz Hardverski magacin sa osam nivoa Tri načina adresiranja (direktno, indirektno, relativno) Programska flash memorija kapaciteta 8K x 14-bitnih reči RAM memorija za podatke kapaciteta 368 bajta EEPROM memorija kapaciteta 256 bajta U/I portovi: A, B, C, D, E Tri tajmera:

1. Timer0 (TMR0): 8-bitni tajmer/brojač događaja 2. Timer1 (TMR1): 16-bitni tajmer/brojač događaja 3. Timer2 (TMR2): 8-bitni tajmer/brojač događaja

- 4 -

Page 5: ISPITNI RAD1

10-bitni 8-kanalni analogno-digitalni (A/D) konvertor Serijska komunikacija: MSSP, USART Paralelna komunikacija: PSP Power- on Reset – reset pri uključenju napajanja (POR) Power- up timer – unošenje kašnjenja nakon uključenja napajanja (PWRT) Oscillator Start- up Timer – unošenje kašnjenja nakon stabilizovanja radne frekvencije

oscilatora (OST) Sleep mode – režim rada sa malim utroškom energije Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad Izbor tipa oscilatora Radni napon od 2V do 5.5V Mala potrošnja energije:

<0.6 mA pri naponu od 3V i radnoj frekvenciji od 4MHz20μA pri naponu od 3V i radnom taktu od 32KHz<1μA u standby režimu rada.

Slika 2 Raspored pinova mikrokontrolera PIC16f887 u kućištu DIP40

- 5 -

Page 6: ISPITNI RAD1

Slika 3 Arhitektura mikrokontrolera PIC16f887

- 6 -

Page 7: ISPITNI RAD1

Portovi mikrokontrolera PIC 16f887

Ovaj mikrokontroler poseduje pet portova (PORT A, PORT B, PORT C, PORT D i PORT E) i oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom. Svaki od njih može da se konfiguriše kao ulazni ili kao izlazni. Pomenuti portovi su različitog obima:

8-pinski (PORT B, PORT C, PORT D) 6-pinski (PORT A) 3-pinski (PORT E).

PORT A – ima mogućnost analogne-digitalne konverzije i prvenstveno se koristi u te svrhe. A/D konvertor, koji je integrisan u mikrokontroleru je 10-bitni sa 8 ulaznih kanala jer se u ove svrhe koriste i svi pinovi PORT-a E (i pinovi PORT-a A izuzev RA4). Pin RA4 je sa otvorenim drejnom i može da se koristi za ulazni takt za tajmer TMR0.

PORT B – četiri pina na PORT-u B (RB7-RB4) imaju mogućnost generisanja prekida. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju prekid. Kombinacija prekida na promenu stanja PORT-a B i pull-up otpornik mogu se iskoristiti kao jednostavan interfejs za tastaturu.

PORT C – poseduje ugrađen USART modul, koji služi za serijsku komunikaciju. Modulu se pristupa preko pinova RC7 i RC6. Pinove treba softverski konfigurisati da budu u funkciji USART modula.

PORT E – ima mogućnost A/D konverzije. Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfigurišu kao digitalni ili analogni kao i u slučaju PORT-a A.

MAX 232 drajver

RS 232 komunikacija omogućava point- to- point transfer podataka. Pošto naponski nivoi mikrokontrolera i PC-a nisu direktno kompatibilni sa RS 232 protokolom potrebno je koristiti dodatni drajver kao na primer MAX 232, koji je prilagođavač naponskih nivoa. Šema veze čipa MAX 232 sa mikrokontrolerom je prikazana na slici.

- 7 -

Page 8: ISPITNI RAD1

Slika 3 Veza čipa MAX 232 sa PIC 16f887

Digitalni temperaturni senzor DS1820

Kao što smo već napomenuli za merenje temperature koristi se senzor DS1820. To je digitalni temperaturni senzor sa sledećim karakteristikama:

1 WIRE protokol komunikaje Svaki senzor ima svoj lični 64-bitni kod koji se nalazi u ROM memoriji Radi samostalno Može biti napajan preko DATA linije. Napon napajanja se kreće u opsegu od 3.0V do

5.5V Merena temperatura je u opsegu od -55°C do + 125°C U opsegu od -10°C do +85°C preciznost je ±0.5°C Temperatura se čita kao 9-bitna digitalna vrednost Konvertovanje temperature u digitalnu reč za 200mS Postoji mogućnost podešavanja alarma Lako konstruisanje senzorskih mreža.

DS1820 je veoma popularan temperaturni senzor koji obavlja komunikaciju 1 WIRE protokolom, i zbog toga je veoma pogodan za korišćenje u senzorskim mrežama. Senzor ima tri pina: Vdd-napajanje, DQ-data, GND-masa. Svaki senzor ima sopstvenu 64-bitnu adresu, koja omogućava da više senzora bude povezana preko 1 WIRE protokola.

- 8 -

Page 9: ISPITNI RAD1

Slika 4 Raspored pinova senzora DS1820

Struktura memorijske mape (Scratchpad) prikazana je na slici ispod.

Slika 5 Struktura memorijske mape kola DS1820

Prva dva bajta u memoriji se koriste za merenje temperature, kada kolo meri temperaturu u koracima po 0.5°C. Sve dok se ne pozove komanda za merenje temperature sadržaj prvog bajta

- 9 -

Page 10: ISPITNI RAD1

je AAh, a drugog 00h što odgovara temperaturi od 85°C. Sadržaj LSB i MSB bajta prikazan je na slici ispod.

Slika 6 Struktura LS i MS bajtova izmerene temperature kola DS1820

LS bajt sadrži očitanu temperaturu, pri čemu bit najniže težine predstavlja vrednost temperature iza decimalnog mesta. Bajt više težine sadrži sve nule ili jedinice i određuje da li je temperatura pozitivna ili negativna. Ako su sve nule temperatura je pozitivna a ako su sve jedinice onda je negativna. U tabeli ispod dato je nekoliko primera očitane temperature.

Tabela 1 Primeri izmerenih vrednosti

Protokol za pristup DS1820 preko 1 WIRE porta sastoji se iz sledećeg:

Inicijalizacije ROM FUNCTION komande MEMORY FUNCTION komande Prenosa podataka.

- 10 -

Page 11: ISPITNI RAD1

Procedura inicijalizacije

Slika 7 Procedura inicijalizacije

Sekvenca inicijalizacije se sastoji od reset impulsa koji šalje MASTER i impulsa kojim SLAVE potvrđuje prisustvo.

Slika 8 DS1820 komandni set

- 11 -

Page 12: ISPITNI RAD1

Slika 9 Postupak inicijalizacije temperaturne konverzije i očitavanja izmerene temperature

Slika 10 Postupak upisa u memoriju temperaturnog senzora DS1820

- 12 -

Page 13: ISPITNI RAD1

Slika 11 Zahtev za konverziju temperature

Slika 12 Čitanje izmerene temperature

- 13 -

RESETUJ SENZORreset ( )

PRESKOČI ADRESIRANJEwrite_byte(0xCC)

POŠALJI ZAHTJEV ZA KONVERZIJU TEMPERATUR

Ewrite_byte(0x44)

1

2

OČITAJ NIŽI BAJT IZ

MEMORIJE SENZORA

read_byte(0xBE)

RESETUJ SENZORreset ( )

PRESKOČI ADRESIRANJEwrite_byte(0xCC)

1

OČITAJ VIŠI BAJT IZ

MEMORIJE SENZORA

read_byte(0xBE)

2

Page 14: ISPITNI RAD1

Uputstvo za upotrebu

Što se hardverskog dela tiče najpre je potrebno senzor DS1820 smestiti u razvojni sistem na za to predviđeno mesto, koje se nalazi u gornjem desnom uglu razvojnog sistema i ima oznaku DS1820. Voditi računa o džamperu da li je podešen na RE2 ili RA5 pin, jer prilikom pisanja softvera je potrebno navesti jedan od ova dva pina. Razvojni sistem možete napajati preko USB porta ili eksternim napajanjem, dok se komunikacija sa računarom vrši preko RS232 porta.

Slika 13 priključak za senzor DS1820

Za potrebe upravljanja ovim mernim sistemom razvijena je aplikacija Temperature Measurement u programskom paketu Delphi 6. Pokretanje aplikacije se vrši duplim klikom mišem na ikonicu TM.exe. Osnovni prozor aplikacije je prikazan na slici ispod.

Slika 14 Izgled osnovnog prozora aplikacije TM

- 14 -

Page 15: ISPITNI RAD1

Prvo što korisnik treba da uradi je da odabere port preko koga razvojni sistem vrši komunikaciju sa računarom. Ako ne izaberete port, program će sam postaviti na port COM1. Naredni korak je uspostavljanje veze sa razvojnim sistemom koje se obavlja pritiskom na dugme Connect. Postoje dve mogućnosti da korisnik dobije izmerenu temperaturu:

Auto mod, Manual mod.

Ako korisnik želi da automatski dobija izmerene rezultate on prvo mora iz menija Select delay odabrati vremenske razmake u kojima će dobijati te vrednosti pa onda kliknuti na dugme Auto. Ponuđeni intervali vremena su: 0.5s, 1s, 5s, 10s, 30s, 60s. Bez obzira da li se korisnik opredelio za automatsko dobijanje temperature ili ne, on može u svakom trenutku dobiti trenutnu vrednost temperature, pritiskom na dugme Manual. Trenutna vrednost temperature se može očitati u gornjem levom uglu, dok se promene vrednosti temperature mogu pratiti na grafiku. Linija na grafiku koja prati promene temperature je obeležena plavom bojom. Program ima mogućnost alarma koji upozorava korisnika da je vrednost trenutne temperature prešla zadatu vrednost, koju korisnik može uneti u polje pod imenom MAX Temp. Nakon unosa te vrednosti, potrebno je da korisnik pritisne na dugme SET da bi program prihvatio unetu vrednost. Vrednost te temperature na grafiku je obeležena crvenom bojom. Kada trenutna vrednost temperature pređe tu zadatu vrednost u gornjem središnjem delu prozora aktivira se crveni podprozor kao znak upozorenja.

Slika 15 Izgled osnovnog prozora u Auto modu

- 15 -

Page 16: ISPITNI RAD1

Slika 16 Izgled osnovnog prozora kada je vrednost temperature veća od zadate

Alarm se uključuje samo kada je vrednost temperature veća od zadate. Pritiskom na taster STOP, korisnik zaustavlja merenje. Dugme Reset služi za brisanje grafika, i početak novog prikaza. Prekid veze sa mernim sistemom, korisnik obavlja pritiskom na dugme Disconnect, dok pritiskom na dugme Close, on zatvara program i automatski prekida vezu sa mernim sistemom.

Opis programa ds1820_prog

Program ds1820_prog upravlja radom mikrokontrolera. Inicijalizacija potrebnih pinova je izvršena u sledećem delu koda.

- 16 -

Page 17: ISPITNI RAD1

Deo koda u kome se uspostavlja veza mikrokontrolera sa senzorom DS1820 i čita vrednost njegove memorijske mape prikazan je ispod.

U programu je podešeno da senzor vrši merenje na svakih 0.5s, a izmerene vrednosti šalje preko USART-a na PC kada dobije zahtev od korisnika (karakter ‘s’). Deo koda u kome je izvršena konverzija binarnog niza u vrednost temperature je prikazana ispod.

- 17 -

Page 18: ISPITNI RAD1

Prenos izmerene temperature preko USART-a ka PC-u vrši se bajt po bajt.

Deo koda u kojem program od korisnika očekuje zahtev za prenos podataka.

Opis programa Temperature Measurement

Izgled forme prikazan je na slici ispod.

Slika 17 Forma programa Temperature Measurement

- 18 -

Page 19: ISPITNI RAD1

Najvažniji deo koda se odnosi na prijem podataka sa razvojnog sistema i ispih temperature.

Priliko pisanja ovog programa javio se problem. Primljene podatke od mikrokontrolera nismo mogli da čitamo kao string nego bajt po bajt.

Literatura:

- 19 -

Page 20: ISPITNI RAD1

Milan Verle- „PIC Mikrokontroleri“

Vojo Milanović- „PC Interfejsi“

MikroC- http://www.mikroe.com/eng/home/index/

Delphi 6- http://www.borland.com/

PIC16f887- http://www.microchip.com/

DS1820- http://pdfserv.maxim-ic.com/en/ds/DS18S20.pdf

- 20 -