rc232 razvojni sistem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/seminar works das/rc232 razvojni sistem -...

34
Univerzitet u Nišu Elektronski fakultet Katedra za elektroniku Predmet: Sistemi za akviziciju podataka Maj 2012 RC232 razvojni sistem Profesor: Studenti: Branislav Petrović Nemanja Savić 12367 Željko Banković 12154

Upload: others

Post on 08-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Univerzitet u Nišu

Elektronski fakultet Katedra za elektroniku

Predmet: Sistemi za akviziciju podataka Maj 2012

RC232 razvojni sistem

Profesor: Studenti: Branislav Petrović Nemanja Savić 12367 Željko Banković 12154

2

Sadržaj RC1xx-RC232 ..................................................................................................................... 3 - višekanalni radio-primopredajni modul za aplikacije sa niskom cenom – ....................... 3

Raspored pinova .............................................................................................................. 4 Opis pinova ..................................................................................................................... 4 Blok dijagram .................................................................................................................. 5 Opis kola ......................................................................................................................... 5 RC232™ ugrađeni protokol ............................................................................................ 6 Upravljanje potrošnjom (Power Management) ............................................................... 6

Informacije o tajmingu .................................................................................................... 7 Frekvencije, izlazna snaga i brzina podataka .................................................................. 9 Očitavanje snage primljenog signala (RSSI) ................................................................ 10 Očitavanje vrednosti temperature.................................................................................. 11 Očitavanje vrednosti napona napajanja ......................................................................... 11 Konfigurisanje modula .................................................................................................. 11

Konfiguraciona memorija ............................................................................................. 13 Povezivanje antene ........................................................................................................ 15 Preporuke za projektovanje štampanog kola (PCB-a) .................................................. 16 Mehanički crteži ............................................................................................................ 16 Fizičke dimanzije .......................................................................................................... 17 Apsolutno maksimalne vrednosti .................................................................................. 17 Električne specifikacije ................................................................................................. 17

Napon napajanja ............................................................................................................ 18 Povezivanje kola za resetovanje.................................................................................... 19

RC232 RF protokol ........................................................................................................... 20

Baferovani režim slanja paketa ..................................................................................... 21

Adresiranje .................................................................................................................... 21 CRC otkrivanje greške .................................................................................................. 23 UART interfejs .............................................................................................................. 23

RC232 razvojni sistem ...................................................................................................... 24 Program mikrokontrolera .................................................................................................. 26

Funkcije za konfigurisanje modula RC1180 ................................................................. 26 Funkcije za komunikaciju sa računarom ....................................................................... 29 Test program 1 .............................................................................................................. 31 Test program 2 .............................................................................................................. 31 Test program 3 .............................................................................................................. 32

Zaključak ........................................................................................................................... 33 Literatura ........................................................................................................................... 34

3

RC1xx-RC232 - višekanalni radio-primopredajni modul za aplikacije sa niskom cenom –

RC11xx-RC232 primopredajnici su kompaktni SMD (Surface Mounted Device) moduli koji se odlikuju visokim performansama, FSK (Frequenczy Shift Keying) tipom modulacije i ugrađenim komunikacionim protokolom. Moduli su potpuno oklopljeni i u skladu sa Evropskim radiodifuznim regulativama. Najčešće aplikacije u kojima se koriste ovi moduli su:

• Bežične senzorske mreže • Automatsko očitavanje brojila • Alarmni i bezbednosni sistemi • Trgovačke kase • Bar kôd čitači • Telemetrijske stanice

Osnovne odlike RC11xx-RC232 modula su:

• Male dimenzije (12.7 x 25.4 x 3.3 mm), oklopljenost i prilagođenost za površinsko montiranje (SMD)

• Mala potrošnja u stanju mirovanja, što omogućava korišćenje kod sistema koji se napajaju baterijski

• Ugrađeni RC232™ protokol sa adresiranjem i proverom greške • Bafer podataka do 1018 bajtova • Dvožični UART interfejs sa opcionim handshake signalima • Nema eksternih komponenti • Za jednokanalnu komunikaciju nije potrebna nikakva konfiguracija • Interfejs podataka jednostavan za korišćenje • Napon napajanja u širokom opsegu 2.0V – 3.9V

U tabeli 1 su prikazani osnovni katalošli podaci za RC11xx-RC232 module:

Parametar RC1140-RC232 RC1170-RC232 RC1180-RC232 RC1190-RC232 Jedinica mere

Frekventni opseg 433.05 – 433.79 865.0 – 867.0 865.0 – 867.0 865.0 – 867.0 MHz

Bro j kanala 17 15 16 50 Brzina prenosa

podataka 1.2 - 100 1.2 – 100 1.2 -100 1.2 -100 kbit/s

Makcimalna izlazna snaga 10 10 10 -1 dBm

Osetljivost -110 -110 -110 -110 dBm

Napon napajanja 2.0 – 3.9 2.0 – 3.9 2.0 – 3.9 2.0 – 3.9 V Potrošnja struje

RX / TX 24 / 35 24 / 35 24 / 37 24 / 37 mA

Potrošnja struje SLEEP Tipično 0.3 Tipično 0.3 Tipično 0.3 Tipično 0.3 µA

Temperaturn i opseg -40 do 85 -40 do 85 -40 do 85 -40 do 85 °C

Tabela 1

4

Tipično kolo RC11xx-RC232 modula prikazano je na slici 1.

Slika 1

Raspored pinova

Na slici 2 prikazan je raspored pinova RC11xx-RC232 modula.

Slika 2

Opis pinova

U tabeli 2 je dat opis pinova RC11xx-RC232 modula.

Br. pina Ime pina Tip pina Opis Ekvicalentno kolo

1 GND Masa

2 CTS/RXTX Izlazni UART Clear to Send ili

UART RXTX

3 RTS/SLEEP Ulazn i

UART Request to Send. Postaviti na nulu, da bi se ušlo u stanje mirovanja (Sleep), ukoliko se ne koristi RTS handhake. (Napomena 2)

4 CONFIG Ulazn i

Configuration Enable. Aktivan nulom, inače se postavlja na visok nivo, u normalnom rešimu rada. (Napomena 2)

5 TXD Izlazni UART TX Data

6 RXD Ulazn i

UART RX Data. Ukoliko je povezan na izlaz tipa open-collector ili neki drugi izlaz sa visokom impedansom (npr. pomerač napona), potrebno je koristiti pull-up otpornik od najviše 8.2kΩ (Napomena 1)

7 GND Masa

5

8 GND Masa

9 RF Visokkofrekventni antenski priključak

10 GND Masa

11 NC Ne povezuje se

12 RESET Ulazn i Reset signal. Obično se ne povezuje. Ima interni pull-up optornik od 12kΩ.

13 VCC Priključak za izvor napajanja. Postoji interna regulacija napona.

14 GND Masa

15-22 Rezervisano Test pinovi ili pinovi koji u rezervisani za buduće namene. NE POVEZIVATI!

23-30 Rezervisano Test pinovi ili pinovi koji u rezervisani za buduće namene. NE POVEZIVATI!

Tabela 2

Napomena 1: Kod UART komunikacije, TXD i RXD se koriste kao serijski podaci, dok su CTS i RTS opcioni i koriste se za kontrolu toka komunikacije. RXD treba da bude visoko kad god se ne šalju podaci ka modulu i kada je modul u stanju mirovanja.

Napomena 2: Interni pull-up otpornici na pinovima CONFIG i RTS/SLEEP su isključeni u režimu mirovanja, kako bi se smanjila struja curenja.

Blok dijagram

Blok dijagram RC11xx-RC232 modula je prikazan na slici 3.

Slika 3

Opis kola

Modul se sastoji od komunikacionog kontrolera sa ugrađenim RC232™ protokolom, radio prijemnik i predajnik visokih performansi i interni naponski regulator.

6

Komunikacioni kontroler manipuliše radio paketima, upravlja UART interfejsom i RF primopredajnikom. Podaci koje glavni kontroler sistema šalje, pristižu preko pina RXD i baferuju se u komunikacionom kontroleru, da bi zatim bili dopunjeni preambulom, start-of-frame delimiterom (SOF), informacijom o adresi i CRC kontrolnom sumom, pre nego što se pošalju u etar. Preambula i SOF su obavezni, dok su adresa i CRC opcioni.

RF primopredajnik moduliše na frekvenciju nosioca podatke koji se šalju i demoduliše primljene podatke.

Nakon prijema podataka, komunikacioni kontroler proverava adresu i CRC. Ukoliko se adresa poklapa sa adresom prijemnika i CRC ispravan, primljeni podaci se nakon uklanjanja okvira (header) šalju preko pina TXD glavnom kontroleru.

Asinhroni UART interfejs se sastoji od RXD i TXD signala. CTS i RTS se mogu koristiti po potrebi, za hardersko upravljanje toka komunikacije. RXTX se može koristiti za odabiranje orijentacije RS485 drajvera.

Kada je CONGIF pin aktivan (nizak naponski nivo), komunikacioni kontroler interpretira primljene podatke sa RXD pina, kao komande za konfigurisanje. Postoje komande za promenu radio kanala, izlazne snage, odredišne adrese, itd. Trajne promene kofiguracije se čuvaju u postojanoj memoriji.

Napon napajanja se dovodi na VCC pin. U okviru modula postoji naponski regulator, koji obezbeđuje rad za širok opseg ulaznog napona.

RC232™ ugrađeni protokol

RC11xx-RC232 moduli omogućavaju baferovanje radio paketa u okviru RC232™ ugrađenog protokola. U režimu sa baferovanim paketima, svi podaci bivaju smešteni unutar modula pre slanja u etar. Slično se dešava i prilikom prijema, podaci se smeštaju unutar modula pre slanja glavnom kontroleru. Ovo omogućava komunikacionom kontroleru da podacima doda informaciju o adresi i CRC kontrolnu sumu. U baferovanom režimu, za komunikaciju sa glavnim kontrolerom se koristi UART.

Detaljni opis RC232™ ugrađenog protokola je dat u drugom delu ovog izveštaja.

Upravljanje potrošnjom (Power Management)

U svrhu smanjenja potrošnje, modul se može uvesti u ređim mirovanja (SLEEP). Kada funkcija SLEEP pina nije dozvoljena (RF_SLEEP_MODE = 0x00), modul se može

uvesti u režim mirovanja aktiviranjem pina CONFIG i slanjem komande 'Z' (ASCII vrednost). Modul se izvodi iz stanja mirovanja deaktiviranjem pina CONFIG (visok naponski nivo), uz napomenu da u stanju mirovanja, CONFIG pin nema pull-up otpornike, tako da mora biti direktno postavljen na visok naponski nivo da bi modul bio izveden iz stanja mirovanja. Svaka promena na RXD pinu će dovesti do buđenja modula (izvođenja iz stanja mirovanja) i trenutnog vraćanja u stanje mirovanja dokle god je na pinu CONFIG aktivan nizak naponski nivo. Ovakve promene na RXD pinu bi trebalo izbegavati, kako bi se smanjila potrošnja struje.

Kada je funkcija SLEEP pina uključena (RF_SLEEP_MODE = 0x02), modul se uvodi u stanje mirovanja postavljanjem RTS/SLEEP pina na nizak naponski nivo. Modul se izvodi iz stanja mirovanja postavljanjem visokog naponskog nivoa na pin RTS/SLEEP. Treba

7

napomenuti da su u stanju mirovanja pull-up otpornici RTS/SLEEP pina isključeni, pa se buđenje modula ostvaruje spoljašnjim dovođenjem visokog naponskog nivoa na pin. Nikakve promene na pinovima RXD i CONFIG neće dovesti do buđenja modula. Promene na pinovima 16 i 17 mogu dovesti do izvođenja modula iz stanja mirovanja, pa se stoga moraju izbeći (ovi pinovi se ne povezuju, kao što je ranije naglašeno). Naponski nivo na pinu CONFIG mora biti visok prilikom buđenja modula, kako bi se izbeglo direktno postavljanje modula u režim konfigurisanja.

Sva podešavanja i sadržaj RAM memorije, ostaju nepromenjeni tokom stanja mirovanja. Pull-up otpornici na pinovima RTS/SLEEP i CONFIG nisu uključeni u stanju mirovanja da bi se smanjila potrošnja struje. Ukoliko se modul isključi u potpunosti, sva prethodna podešavanja smeštena u postojanoj memoriji bivaju povraćena, dok se vrednosti RAM memorije pune podrazumevanim vrednostima.

Slika 4

Informacije o tajmingu

Na slici i tabeli ispod su prikazane informacije o tajmingu prilikom promene režima rada modula.

IDLE stanje je stanje u kome modul čeka na preambulu iz etra i na podatak sa UART-a. RXD je stanje u kome se primaju i smeštaju u interni bafer podaci koje šalje glavni kontroler. U TX stanju se podaci šalju u etar. U RX stanje se ulazi nakon detekcije preambule i odlikuje se prijemom podata iz etra. TXD stanje je stanje u kome se primljeni podaci iz etra šalju glavnom kontroleru preko UART-a.

Dovođenjem aktivnog nivoa (nizak naponski nivo) na pin CONFIG, modul ulazi u stanje CONFIG u kome konfigurišu određeni parametri modula. Stanje MEMORY CONFIG je podstanje u koje se ulazi slanjem komande 'M' i u ovom stanju je moguće programirati configuracionu memoriju modula. Potrebno je obratiti pažnju na maksimalni broj ciklusa upisivanja u memoriju korišćenjem komande 'M' (pogledati poglavlje Električne specifikacije).

8

Simbol Vrednost Opis

tRX−TXD 180µs Vreme od prijema poslednjeg bajta iy etra do slanja prvog karaktera preko UART-a

tTXD min 590µs tTXD = (broj primljenih bajtova) x 590 us/char (10 bitova sa 19.2 kBd + 70 us kašenjanja po karakteru)

tTXD −IDLE 900µs Vreme od poslednjeg karaktera poslatog preko UART-a do ulaska modula u IDLE stanje

tRXD −CTS 20µs Vreme od prijema poslednjeg karaktera preko UART-a (uključujući sve timeout-e) do aktiviranja CTS signala

tRXD −TX 960µs Vreme od prijema poslednjeg karaktera preko UART-a (uključujući sve timeout-e) do slanja prvog bajta u etar

9

tTX−IDLE 960µs Vreme od slanja poslednjeg karaktera u etar do ulaska modula u IDLE stanje (stanje spreman za RXD i RX)

tOFF −IDLE 3.2ms

tRESET −IDLE 3.0ms

tSLEEP −IDLE 1.28ms

tCONFIG −PROMPT 590µs Vreme od postavljanja niskog naponskog nivoa na pin CONFIG do odziva modula karakterom ''>''

tC#−CONFIG 1.1ms Kašnjenje od slanja komande za odabir kanala do slanja karaktera za potvrdu “<”. (Kod ostalih komandi, kao što su 'M' ili 'T', nema kašnjena, već odmah sledi karakter potvrde)

tMEMORY −CONFIG 30.52ms

U ovom periodu se programira interni fleš. Svako isključivanje modula i dipovi u naponu napajanja mogu dovesti do permanentne greške u konfiguracionoj fleš memoriji. Nakon što glavni kontroler pošalje modulu bajt 0xFF, potrebno je da sačeka na odgovor ‘>’ pre bilo kakve dalje aktivnosti, kako bi se osigurala korektna rekonfiguracija.

tCONFIG −IDLE 1.42ms

tTX min 20ms tTX = (broj bajtova za slanje) x 1.67 ms/bajtu (za 4.8 kbit/s) + 7 bajtova preambule, sinhronizacije i dužine + 2 bajta adresa + 2 bajta CRC

tRSSI 4ms Vreme od slanja S komande do početka RSSI početka prijema RSSI bajta na UART-u

Tabela 3

Frekvencije, izlazna snaga i brzina podataka

U narednoj tabeli su prikazani dostupni RF kanali sa odgovarajućom frekvencijom, nominalnim izlaznim snagama i dostupnim brzinama prenosa podataka.

Tip modula RF kanal Izlazna snaga Brzina prenosa podataka

RC1140-RC232 1: 433.100 MHz 2: 433.200 MHz 3: 433.300 MHz 4: 433.400 MHz 5: 433.500 MHz 6: 433.600 MHz 7: 433.700 MHz 8: 433.800 MHz 9: 433.900 MHz 10: 434.000 MHz 11: 434.100 MHz 12: 434.200 MHz 13: 434.300 MHz 14: 434.400 MHz 15: 434.500 MHz 16: 434.600 MHz 17: 434.700 MHz

1: -20 dBm 2: -10 dBm 3: 0 dBm 4: 5 dBm 5: 10 dBm

1: 1.2 kbit/s 2: 4.8 kbit/s 3: 19.0 kbit/s 4: 32.768 kbit/s 5: 76.8 kb it/s 6: 100 kbit/s 7: Za buduće namene

RC1170-RC232 1: 865.100 MHz 2: 865.300 MHz 3: 865.500 MHz 4: 865.700 MHz 5: 865.900 MHz 6: 866.100 MHz 7: 866.300 MHz 8: 866.500 MHz 9: 866.700 MHz 10: 866.900 MHz 11: 867.100 MHz 12: 867.300 MHz 13: 867.500 MHz

1: -20 dBm 2: -10 dBm 3: 0 dBm 4: 5 dBm 5: 10 dBm

1: 1.2 kbit/s 2: 4.8 kbit/s 3: 19.0 kbit/s 4: 32.768 kbit/s 5: 76.8 kb it/s 6: 100 kbit/s 7: Za buduće primene

10

14: 867.700 MHz 15: 867.900 MHz

RC1180-RC232 1: 868.050 MHz 2: 868.150 MHz 3: 868.250 MHz 4: 868.350 MHz 5: 868.450 MHz 6: 868.550 MHz 7: 868.650 MHz 8: 868.750 MHz 9: 868.850 MHz 10: 868.950 MHz 11: 869.050 MHz 12: 869.150 MHz 13: 869.525 MHz 14: 869.750 MHz 15: 869.950 MHz

1: -20 dBm 2: -10 dBm 3: 0 dBm 4: 5 dBm 5: 9 dBm

1: 1.2 kbit/s 2: 4.8 kbit/s 3: 19.0 kbit/s 4: 32.768 kbit/s 5: 76.8 kb it/s 6: 100 kbit/s 7: Za buduće primene

RC1190-RC232 50 kanala: 902 + n*0.5 MHz n = 1, … , 50 Podrazumevani kanal: 1: 902.05 MHz

1: -20 dBm 2: -10 dBm 3: 0 dBm 4: Nepreporučljivo 1 5: Nepreporučljivo 2

1: 1.2 kbit/s 2: 4.8 kbit/s 3: 19.0 kbit/s 4: 32.768 kbit/s 5: 76.8 kb it/s 6: 100 kbit/s 7: Za buduće primene

Tabela 4

RF kanal se odabira slanjem konfiguracione komande 'C', dok se izlazna snaga odabira slanjem konfiguracione komande 'P'. Brzina slanja podataka se može promeniti isključivo upisivanjem željene vrednosti u konfiguracionu memorije korišćenjem komande 'M', odnosno postavljanjem parametra RF_DATA_RATE. Podrazumevani RF kanal i izlazna snaga se mogu takođe postaviti upisivanjem parametara RF_CHANNEL i RF_POWER u konfiguracionu memoriju korišćenjem komande 'M'.

Podrazumevane vrednosti se koriste nakon uključivanja ili resetovanja modula. Fabričke podrazumevane vrednosti su istaknute tamnijim slovima u prethodnoj tabeli.

Više detalja o promeni RF kanala, izlazne snage i brzine prenosa podataka, će biti dato u delu koji opisuje konfiguracione komande.

Korišćenje frekventnih opsega, maksimalna dozvoljena izlazna snaga i faktor ispune su regulisani nacionalnim regulativama.

Očitavanje snage primljenog signala (RSSI)

Digitalna vrednost jačine primljenog signala (RSSI-Received Signal Strength Indicator) je dostupna nakon slanja komande 'S', na koju modul odgovara 8-bitnom vrednošću, koja označava trenutnu snagu signala na ulazu. Ukoliko se modul nalazi u režimu za konfigurisanje, nakon slanja vrednosti jačine signala, sledi slanje bajta potvrde ' > '. Vrednost jačine primljenog signala se može koristiti za indikaciju margine fedinga ili za osluškivanje nosioca, kako bi se izbegla kolizija.

1 Ne preporučuje se zbog toga što izlazna snagal prevazilazi nivo defin isan regulativama. 2 Ne preporučuje se zbog toga što izlazna snagal prevazilazi nivo defin isan regulativama.

11

Snaga signala koja se dobija nakon slanja 'S' komande predstavlja trenutnu vrednost. Dodavanje informacije o snazi signala primljenog paketa je moguće postavljanjem parametra RSSI_MODE = 1.

RSSI vrednost se povećava za jedan, svaki put kada se snaga signala poveća za 0.5 dB. Snaga primljenog signala predstavljena u dBm se računa prema sledećoj formuli:

P = -RSSI /2 [dBm]

Dinamički opseg vrednosti snage primljenog signala je od nivoa osetljivosti pa najčešće do -30dBm (zasićenje RSSI vrednosti).

Očitavanje vrednosti temperature

U okviru modula se nalazi temperaturni senzor. Digitalna vrednost senzora (TEMP) se očitava slanjem 'U' komande modulu. Modul na pomenutu komandu odgovara 8-bitnim karakterom, koji predstavlja vrednost temperature u stepenima Celzijusa (°C). Nakon vrednosti temperature sledi karakter potvrde ' > '.

Vrednost temperature, TEMP, se povećava za jedan, svaki put kada se temperatura poveća za 1°C. Tačnost izmerene temperature je ±2°C.

Vrednost temperature se izračunava prema sledećoj formuli:

T = TEMP(dec) -128 [°C] (Primer: TEMP = 0x98, predstavlja temperaturu od 24°C)

Očitavanje vrednosti napona napajanja

Modul omogućava očitavanje internog senzora za merenje napona napajanja (VCC), slanjem komande 'V', na koju modul odgovara 8-bitnim karakterom, (jedan bajt) koji predstavlja trenutni nivo napona napajanja, za kojim sledi karakter potvrde ' > '.

Ova komanda može biti korisna kod baterijski napajanih sistema. Rezolucija merene vrednosti napona napajanja iznosi 30mV. Napon napajanja se računa prema sledećoj formuli:

V = VCC(dec)*0.030[V] (Primer: VCC = 0x68, predtsvlja 3.12 V)

Konfigurisanje modula

Konfiguraciju modula može promeniti glavni kontroler u toku rada. Konfiguracija se menja slanjem komande modulu preko UART-a, nakon što je modul

doveden u stanje za konfigurisanje, postavljanjem niskog naponskog nivoa na pin CONFIG. Nakon ulaska u konfiguracioni mod, modul šalje ' > ' preko TXD pina, što znači da je

spreman da primi komande i CONFIG pin se može vratiti na visok naponski nivo. Treba imati u vidu da CONFIG pin mora biti vraćen na visok naponski nivo pre nego što

kontroler pošalje komandu za povratak u normalni režim rada (Exit) 'X'. Nakon izvšrenja komande, modul odgovara karakterom potvrde ' > ' i time ukazuje da je

spreman za sledeću komandu. Slanje nove komande pre prijema karaktera potvrde nije dozvoljeno.

12

Vreme izvršenja komande zavisi od komande (pogledati poglavlje Informacije o tajmingu). Nakon komande za povratak u normalni režim rada, 'X', modul ne šalje karakter potvrde, ' > '.

Vrednosti parametara koje su promenjene u režimu konfigurisanja stupaju na snagu odmah nakon povratka u normalni režim rada (IDLE stanje), a novonastale promene neće biti smeštene u postojanu memoriju i nestaće ukoliko se isključi napajanje ili se resetuje modul. Ovi parametri su na primer, RF kanal i izlazna snaga.

Lista komandi je prikazana u tabeli 5.

Parametar Komanda Argument u heksadecimalnom formatu (decimalni format) Opis

Kanal ‘C’ – 0x43 0x01 – 0x0C (1 – 12) Podaci su smešteni isključivo u nepostojanoj memoriji (RAM).

Izlazna snaga ‘P’ – 0x50 0x01 – 0x05 (1 – 5) Podaci su smešteni isključivo u nepostojanoj memoriji (RAM).

Snaga signal (RSSI) ‘S’ – 0x53 Modul vraća jedan bajt čija vrednost ukazuje na jačinu primljenog signala Pogledati stranu 8.

Odredišna adresa ‘T’ – 0x54 0x00 – 0xFF (0 - 255) Podaci su smešteni isključivo u nepostojanoj memoriji (RAM).

Temperatura ‘U’ – 0x55 Modul vraća jedan bajt čija vrednost ukazuje na temperaturu Pogledati stranu 8.

Napon napajanja ‘V’ – 0x56 Modul vraća jedan bajt čija vrednost ukazuje na napon napajanja Pogledati stranu 8.

Čitanje memorije (jedan bajt) ‘Y’ – 0x59 0x00 – 0x7F (Argument predstavlja adresu u

konfiguracionoj memoriji) Vraća jedan bajt iz konfiguracione memorije.

Konfiguracija memorije ‘M’ – 0x4D (Adresa, podatak): pogledati listu parametara ispod. 0xFF – izlazak iz režima za konfigurisanje memorije

Koristi se za ulazak u režim za konfigurisanje. Parametri koji se promene ostaju zapamćeni u postojanoj memoriji.

Reset memorije ‘@RC’ Nema argumenata, ali pin CONFIG mora biti na niskom naponskom nivou

Resetuje konfiguracionu memoriju na fabrička podešavanja.

Exit komanda ‘X’ – 0x58 Izlazak u normalan režim rada, nakon čega stupaju na snagu nove vrdnosti parametara.

Režim mirovanja ‘Z’ – 0x5A

CONFIG pin mora biti aktivan u režimu mirovanja. Izlazak iz režima mirovanja se vrši deaktiviranjem CONFIG pina.

Test mod 0 ‘0’ – 0x30 Lista svih konfiguracionih parametara.

Test mod 1 ‘1’ – 0x31 TX nosilac.

Test mod 2 ‘2’ – 0x32 TX modulisani signal, PN9 sekvenca.

Test mod 3 ‘3’ – 0x33 RX môd

Test mod 4 ‘4’ – 0x34 Isključivanje primopredajnog bloka.

Tabela 5

13

Primer: Ukoliko se želi da postavi RF kanal na vrednost 3, potrebno je poslati sledeću sekvencu nakon što je aktiviran signal CONFIG i pristigao odgovor ‘>’:

Komanda Heksadecimalna vrednost Odgovor Komentar

aktiviran CONFIG ‘>’ Nakon pristiglog odgovora, deaktivirat i CONFIG

'C' 0x43 '>' 3 0x03 '>'

ostale komande 'X' 0x58 nema odgovora Modul se vraća u IDLE stanje

Konfiguraciona memorija

U tabeli 6 su prikazani svi konfigurabilni parametri smešteni u postojanoj memoriji. Vrednosti ovih parametara se menjaju korišćenjem komande ‘M’.

Parametar Opis Adresa [heksa

vrednost]

Argument [heksadecimalna

(decimalna) vrednost]

Fabrička heksa

(decimalna) vrednost

Opis

Podešavanja RF sekcije

RF_CHANNEL Podrazumevani RF kanal

0x00 RC1140: 1-17 RC1180: 1-16 RC1190: 1-50

0x01 (1) Pogledati tabelu 4.

RF_POWER Podrazumevana izlazna snaga

0x01 1 – 5 0x05 (5) Pogledati tabelu 4.

RF_DATA_RATE Podrazumevana bitska brzina

0x02 1 – 7 0x03 (3) Pogledati tabelu 4.

SLEEP_MODE

Režim mirovanja

0x04 0: isključena funkcija SLEEP

pina 1: rezerv isano

2: funkcija SLEEP pina

uključena

0x00 (0) Ka da je uključena funkcija SLEEP pina, modul ulazi u režim mirovanja aktiviranjem CONFIG pina. Ova funkcija se ne koristi u kombinaciji sa upravljanjem toka komunikacije kod UART-a.

RSSI_MODE

Dodavanje informacije o jačini primljenog signala (RSSI) u primljenu poruku.

0x05 0 - 1 0x01 (0) 0: RSSI vrednosti nije dodata poruci 1: RSSI vrednost jeste dodata poruci

Podešavanja paketa koji se šalju

PACKET_LENGTH_H

Maksimalna dužina paketa (viši bajt)

0x0E 0x01 – 0x03 (0 – 3)

0x00 (0)

Dužina paketa veća od 128 bajtova je moguća kod 1.28 verzije firmware-a. Za starije verzije, uvek staviti PACKET_LENGTH_H = 0. Ukoliko je PACKET_LENGTH_H = 0, programi pisani za verziju firmware-a 1.28 biće kompatibilni sa starijim verzijama firmware-a.

PACKET_LENGTH_L

Maksimalna dužina paketa (niži bajt)

0x0F 0x01- 0x80 (1 – 128)

0x80 (128)

14

PACKET_TIMEOUT

Vreme između pristizanja poslednjeg bajta preko UART-a, do početka slanja podataka u etar.

0x10 0x00 – 0xFE (0 – 254) 0x00: Bez timeouta 0x01 (1): 32 ms 0x02 (2): 48 ms 0x03 (3): 64 ms 0x7C (124): 2 s 0xF9 (249): 4 s

0x7C (124)

Bez timeout-a ne znači 0 s, već da se ova opcija ne koristi. Vrednost timeout-a se računa: (PACKET_TIMEOUT x 16 ms) + 0/16 ms min/max 0xFE (254) je najveća vrednosti i iznosi 4.080 s Podrazmevanih 2 s = 0x7C (124)

PACKET_END_CHARACTER

0x11 0x00: Isključeno 0x01 – 0xFF: Uključeno

0x00 0: Nema karaktera koji označava kraj poruke 1 – 255: Vrednost karaktera za kraj poruke

Podešavanja na nivou mreže

ADDRESS_MODE

0x14 0, 2, 8 0x02 (2) 0: Nema adresiranja 2: 1 bajt adrese 8: 4 bajta adrese (FW (firmware) verzija 1.28 ili novija) Korišćenjem adresiranja, radio paketu se dodaju SID i DID bajtovi.

CRC_MODE 0x15 0x02 (2) 0: Isključeno 2: CRC16

UNIQUE_ID1 (UID1) 0x19 0 – 255 0x01 (1) Ukoliko je ADDRESS_MODE = 8, tada je: UID = UID4:UID3:UID2:UID1 SID = SID4:SID3:SID2:SID1 DID = DID4:DID3:DID2:DID1 BID=BID:BID:BID:BID ADDRESS_MODE = 2, tada je: UID = UID1 SID = SID1 DID = DID1 BID = BID

SYSTEM_ID1 (SID1) 0x1A 0 – 255 0x01 (1)

UNIQUE_ID2 (UID2) 0x1B 0 – 255 0x01 (1)

SYSTEM_ID2 (SID2) 0x1C 0 – 255 0x01 (1)

UNIQUE_ID3 (UID3) 0x1D 0 – 255 0x01 (1)

SYSTEM_ID3 (SID3) 0x1E 0 – 255 0x01 (1)

UNIQUE_ID4 (UID4) 0x1F 0 – 255 0x01 (1)

SYSTEM_ID4 (SID4) 0x20 0 – 255 0x01 (1)

DESTINATION_ID1 (DID1)

0x21 0 – 255 0x01 (1)

DESTINATION_ID2 (DID2)

0x22 0 – 255 0x01 (1)

DESTINATION_ID3 (DID3)

0x23 0 – 255 0x01 (1)

DESTINATION_ID4 (DID4)

0x24 0 – 255 0x01 (1)

BROADCAST_ADDRESS 0x28 0 – 255 0xFF (255)

Podešavanja UART interfejsa

UART_BAUD_RATE

Bitska brzina 0x30 0x00: Ne koristi se 0x01: 2400 0x02: 4800 0x03: 9600 0x04:14400 0x05: 19200 0x06: 28800 0x07: 38400 0x08: 56700 0x09: 76800 0x0A: 115200 0x0B: 230400

0x05 (5) TREBA BITI OPREZAN PRILIKOM PROMENE OVOG PARAMETRA, ZBOG TOGA ŠTO MOŽE DOĆI DO GUBITKA VEZE IZMEĐU KONTROLERA I MODULA. Nova vrednost ovog parametra stupa na snagu tek nakon resetovanja modula.

15

UART_NUMBER_OF_ BITS

0x31 8: 8 bita 9: 8 bita + 1 bit parnosti

0x08 (8) TREBA BITI OPREZAN PRILIKOM PROMENE OVOG PARAMETRA, ZBOG TOGA ŠTO MOŽE DOĆI DO GUBITKA VEZE IZMEĐU KONTROLERA I MODULA. Nova vrednost ovog parametra stupa na snagu tek nakon resetovanja modula.

UART_PARITY 0x32 0: parna parnost 1: neparna parnost

0x00 (0)

UART_STOP_BITS

0x33 1: 1 stop bit 2: 2 stop bita

0x01 (1)

UART_FLOW_CTRL

Kontrola toka komunikacije preko UART-a

0x35 0: isključeno 1: samo CTS 2: CTS/RTS 4: RXTX (RS485)

0x00 (0)

PART_NUMBER 0x3C – 0x49 RCxxxx RC232

HW_REV_NO 0x4B – 0x4E x.yz

FW_REV_NO 0x50 – 0x53 x.yz

Tabela 6

Vrednosti na adresama koje nisu prikazane u tabeli 6, ne treba menjati.

Povezivanje antene

Antena se povezuje sa modulom preko RF pina. RF pin je prilagođen na impedansu od 50 oma. Ukoliko rastojanje između konektora za antenu i modula, nije zanemrljivo, tada je potrebno da vod između konektora antene i RF pina ima karakterističnu impedansu od 50 oma.

Na štampanoj ploči sa dva sloja, izrađenoj od FR4 materijala, širina mikrostrip linije treba da bude 1.8 puta veća od debljine ploče, ukoliko se uzme da je dielektrična konstanta 4.8. Mikrostrip linija treba da se nalazi u gornjem sloju, dok se donji sloj koristi za masu.

Primer: Za FR4 ploču, debljine 1.6 mm, širina voda iznosi 1.8 x 2.6 mm = 2.88 mm. Najprostija antena koja se može koristiti je četvrttalasna “bič” antena. Pomenuta antena

ispod koje se nalazi poligon mase, ima impedansu od 37 oma, tako da u najvećem broju slučajeva kolo za prilagođenje na impedansu od 50 oma nije potrebno.

PCB antena se može realizovati kao kao bakarna traka bez mase sa druge strane, s tim što u tom slučaju ostatak ploče treba da ima poligon mase, što je moguće veći (željena veličina je kao veličina same antene), kako bi predstavljao protivtežu anteni. Ukoliko je traka (antena) kraća od četvrtine talasne dužine, antenu treba prilagoditi na 50 oma.

Dužine četvrt-talsnih antena za različite radne frekvencije su prikazane ispod, u tabeli 7. Frekvencija [МHz] Dužina [cm]

433 16.4 865-867 8.2

868 8.2 915 7.8

Tabela 7

16

Preporuke za projektovanje štampanog kola (PCB-a)

Preporučeni raspored pinova modula na štampanom kolu prikazan je na slici 5. Sve veličine su date u stotim delovima inča (mils). Krug u gornjem desnom uglu označava orijentaciju pa stoga ne treba da bude izrađen u bakru.

Slika 5

Štampana ploča sa dva ili više slojeva, od kojih je jedan obavezno sloj mase (ground plane) je preporučena. Svi GND pinovi bi trebalo da budu povezani najkraćim mogućim vezama sa slojem mase koristeći isključivo jednu viu po pinu.

Na donjoj strani modula se nalazi sedam test pinova, koji bi trebalo da ostanu nepovezani. Ukoliko je pak neophodno da se neka od veza ili via, nađu ispod modula, potrebno je prekriti ih solder resist slojem kako ne bi došlo do kratkog spoja sa test pinovima. Preporučuje se da vie budu prekrivene.

Rezervisane pinove treba zalemiti ali ostaviti nekonektovane (otkačene).

Mehanički crteži

17

Fizičke dimanzije

Dimenzije modula su (12.7 x 25.4 x 3.3)mm.

Apsolutno maksimalne vrednosti

Parametar Min Max Veličina

Napon napajanja, VCC -0.3 3.9 V

Napon na bilo kom pinu -0.3 VCC+0.3V max 3.9V V

Nivo ulaznog RF signala 10 dBm Temperatura skladištenja -50 150 °C Radna temperatura -40 85 °C

Tabela 8

Premašivanje gore navedenih vrednosti može dovesti do permanentnog oštećenja modula.

Električne specifikacije

U tabeli 9 su date električne specifikacije modula za temperaturu T=25°C i VCC=3V, ukoliko nije drugačije navedeno.

Parametar Min. Typ. Max. Jedinica Uslov/Napomena Radna frekvencija RC1140 RC1170 RC1180 RC1190

433.05 865.0 868.0 902.0

434.79 868.0 870.0 928.0

MHz

Broj kanala RC1140 RC1170 RC1180 RC1190

17 15 16 50

Ulazna/Izlazna impedansa 50 Ω

Brzina prenisa podataka 1.2 4.8 19.0 32.768 76.8 100

Kbit/s

Stabilnost frekvencije ±40 ppm Uključujući starenje od 10 godina

Starenje stabilnosti frekvencije 1 ppm/godina Počinje nakon 10 godina. Izlazna snaga -20 9 dBm

FSK devijacija 5.2 127 KHz Zavisno od brzine prenosa.

Širina filtra kanala 58 540 KHz Zavisno od brzine prenosa.

Spurious emission, TX < 1GHz > 1GHz 47 – 74 MHz 87.5 – 118 MHz 174 – 230 MHz 470 – 862 MHz

-36 -30 -54 -54 -54 -54

dBm

18

Osetljivost 1.2 kbit/s 4.8 kbit/s 19.0 kbit/s 32.768 kbit/s 76.8 kbit/s 100 kbit/s

-110 -106 -104 -101 -99 -97

dBm

1% PER (Packet Error Rate), za 20 bajtne pakete

Potiskivanje susednog kanala 29 dB

Naizmenična selektivnist kanala

53 dB

Potiskivanje simetričnog signala

28 dB

Blokada / desenzitizacija ±1MHz ±2MHz ±5MHz ±10MHz

30 35 50 60

43 49 68 72

dB

Željeni signal je 3dB iznad nivoa osetljivosti, CW

Zasićenje -14 dBm

Spurious emission, RX -57 dBm

Napon napajanja 2.0 3.9 V

Potrošnja struje, RX/IDLE 24 mA Važi za celokupni opseg napona napajanja

RC1140 TX Potrošnja struje, TX -20dBm -10dBm 0dBm 5dBm 9dBm

18 20 22 25 35

mA

Važi za celokupni opseg napona napajanja

RC1170/RC1180/RC1190 TX Potrošnja struje, TX -20dBm -10dBm 0dBm 5dBm 9dBm

16 17 22 30 37

mA

Potrošnja struje, SLEEP 0.3 1 µA

Digitalni ulazi/izlazi Ulazni niski nivo Ulazni visoki nivo Izlazni niski nivo (1µA) Izlazni visoku nivo (-1µA)

70% 0

30% VCC

V Procenti su dati u odnosu na VCC.

RESET pin Ulazni niski nivo Ulazni visoki nivo

70%

30% V Minimalna širina impulsa

je 250ns.

Tolerancija brzine prenosa UART-a

±2 % Odnosi se na UART prijemnik i predjnik.

Broj ciklusa upisivanja u konfiguracionu memoriju. 1000

Garantovani broj upisivanja korišćenjem ‘M’ komande je ograničen.

Napon napajanja

Spoljašnje kolo koje stvara šum, može u nekim okolnostima da utče na signal koji šalje modul. Primer jednog takvog kola je DC-DC konvertor, kao i neki naponski pomerači koji se koriste kod RS232 i RS485 komunikacije. Kako bi se povećala margina spektra, poželjno je dodavanje feritnog viltra ispred VCC pina modula. Alternativno rešenje jeste da se modul napaja iz zasebnog naponskog regulatora. Navedena rešenja omogućavaju filtriranje

19

prekidačkog šuma na pinu za napajanje modula. Blok dijagram tipične interfejsa modula i PC-a.

Povezivanje kola za resetovanje

Kako bi se smanjio šum na liniji za resetovanje modula, RESET pin (pin 12) mora biti povezan sa spoljašnjim kolom preko RC mreže. Preporuka je da se reset signal generše iz nekog kontrolnog kola ili pomoću mikrokontriolera. Ukoliko se reset signal generiše iz push-pull izlaza, potrebno je redno sa izlazom postaviti otpornik, čija je otpornost 5.6kΩ, kako bi se omogućilo eksternom programatoru za promenu firmware-a da postavi reset signal na niski nivo. Ukoliko se reset signal generiše iz izlaza koji nije push-pull, preporučuje se postavljanje jednog ili više pull-up otpornika u tački A sa slike 6, čija je ekvivalentna otpornost reda 5.6kΩ.

Slika 6

20

RC232 RF protokol

RC232 je protkol za bidirekciono bežično slanje podataka od predajnika do prijemnika. Podaci predati sa jedne strane bivaju primljeni na drugoj strani, bajt po bajt. Osnovne karakteristike RC232 protokola su:

• Celokupni protokol za upravljanje paketima na MAC nivou • Transparentni i baferovani režim komunikacije • Adresiranje • Broadcasting • Provera ispravnosti paketa • Bafer podataka od 128 bajtova • Režimi za malu potrošnju • Jednostavan za korišćenje UART interfejs • Kompatibilnost sa RS232/422/485/USB protokolima preko eksternih pomerača

napona • Opcioni hardverski UART handshake • Point-to-point komunikacija • Point-to-multipoint komunikacija • Peer-to-peer komunikacija

Na slici 7 je prikazana tipična aplikacija u kojoj se koristi RC232 protokol.

Slika 7

RC232 protokol implementira MAC (Medium Access Control) nivo koji sadrži sledeće funkcije:

• Baferovani režim slanja paketa • Promenljiva dužina paketa, poslednji karakter paketa i timeout

21

• Opciono adresiranje paketa ka jedinstvenom čvoru ili broadcast slanje ka svim čvorovima u sistemu

• Opciona kontrola paketa na sadržaj grešaka korišćenjem CRC-16 algoritma za računanje kontrolne sume

• Podešavanje radio modema u toku rada • Nebaferovani (transparentni) režim slanja paketa (samo na nekim uređajima)

RC232 protokol je kompatibilan sa RS232, RS422 i RS485 tipovima serijskih magistrala. Podaci se šalju do, i primaju od, modula preko neke od navedenih magistrala, korišćenjem pomerača naponskih nivoa (3-5V).

UART interfejs se koristi i za komunikaciju i za konfiguraciju.Podešavanje modula se vrši pomoću jednostavnih komandi, koje su date u heksadecimalnom formatu.

Baferovani režim slanja paketa

Baferovani režim je načešće korišćeni režim slanja paketa. Paketi podataka predati modulu preko UARTA će automatski biti poslati ukoliko je ispunjen jedan od sledećin uslova:

• Bafer za smeštanje poruke je pun. Veličinu bafera je moguće konfigurisati, promenom parametra PACKET_LENGTH koji se nalazi u konfiguracionoj memoriji.

• Ukoliko je isteklo predefinisano vreme od prijema poslednjeg bita poslednjeg bajta. Ovo vreme se naziva timeout i moguće je podešavati ga, promenom parametra PACKET_TIMEOUT iz konfiguracione memorije.

• Ukoliko je primljen karakter koji označava kraj poruke. Paket koji označava kraj poruke se podešava promenom parametra PACKET_END_CHARACTER u konfiguracionoj memoriji.

Da bi modul slao poruke, potrebno je da bude ispunjen samo jedan od gore navedenih uslova.

Napomena:

• PACKET_TIMEOT=0 znači da se ova osobina modula ne koristi, odnosno modul će slati poruke samo ako je ispunjen neki od preostala dva uslova. Preporučuje se postavljanje ove vrednosti na 0x02, kako bi modul sam ispraznio bafer ukoliko je došlo do neželjenog slanja start bita na UART-u.

• Ukoliko je trenutak početka slanja podataka zavisi od toga da li je bafer podataka pun ili je preko UART-a primljen karakter koji označava kraj poruke, tada se vrednost parametra PACKET_TIMEOUT ignoriše.

Adresiranje

RC232 moduli podržavaju kako slanje paketa na specificiranu adresu, tako i slanje paketa ka svim modulima u sistemu, tzv., broadcasting. Svaki modul ima svoj sistemski identifikacioni broj (sistemska adresa) SYSTEM_ID (najčešće jedan bajt) i jedinstveni identifikacioni broj UNIQUE_ID (naješće jedan bajt). SYSTEM_ID i UNIQUE_ID se mogu

22

podešavati, putem konfiguracionog interfejsa. Adresni način rada se omogućava postavljanjem parametra ADDRESS_MODE u konfiguracionoj memoriji.

Svaki modul ima svoju podrazumevan odredišnu adresu, DESTINATION_ID, DID, koja se dodaje paketu podataka ukoliko se koristi adresni način rada.

Svi moduli u okviru jednog sistema bi trebalo da imaju identičnu adresu sistema, SYSTEM_ID, dok je UNIQUE_ID različit za svaki modul.

Da bi se poslao paket to željenog čvora, potrebno je da se odredišna adresa bude identična kao i UNIQUE_ID željenog čvora, kao što je prikazano na slici 8..

Slika 8

Ukoliko se želi poslati broadcast, poruka, odredišnu adresu treba postaviti na BROADAST_ID (slika 9). Predefinisana vrednost BROADCAST_ID je 0xFF, s tim što se ona može postaviti na drugu vrednost, putem konfiguracionog interfejsa. Treba napomenuti da BROADCAST_ID ne može biti isto kao i UNIQUE_ID.

Slika 9

Da bi adresiranje radilo korektno potrebno je:

• Da je uključen režim adresiranja kod svih čvorova (ADDRESS_MODE). • Da svi čvorovi u jednom sistemu imaju identičan SYSTEM_ID. • Da svi čvorovi unutar sistema imaju identičan BROADCAST_ID. • Da svaki čvor unutar sistema ima jedinstveni UNIQUE_ID.

23

CRC otkrivanje greške

RC232 protokol ima ugrađeni algoritam za detekciju grešaka, zasnovan na 16 bitnoj cikličnoj proveri redudantnosti (CRC). Da bi se omogućila provera paketa na grešku, potrebno je postaviti parametar CRC_MODE iz konfiguracione memorije na odgovarajuću vrednost. Ukoliko se ispostavi da pristigli paket ima grešku, on će biti odbačen i neće biti prosleđen dalje do kontrolera.

UART interfejs

Kao serijski interfejs između kontrolera i modula (i za slanje i za konfigurisanje) koristi se UART, tako da svaki mikrokontroler, bilo sa hardverskim ili softverskim UART-om može da komunicira sa modulom.

Po želji se mogu koristiti dodatni signali CTS i (ili) RTS/RXTX, za kontrolu toka komunikacije (handshake):

• CTS pin, Clear to send: Kada je CTS na niskom naponskom nivou, serijski podatak može biti poslat do modula. Ukoliko je modul zauzet nekom aktivnoću, kao što je na primer slanje podataka (u etar) ili prijem podataka, CTS će biti postavljenna visok naponski nivo, kako bi se onemogućilo bilo kakvo slanje podataka do modula.

• RTS pin, Ready to send: Kada je RTS aktivno (nizak naponski nivo), mikrokontroler dozvoljava modulu da mu pošalje podatke. Mikrokontroler može da zaustavi modul u slanju podataka, deaktiviranjem RTS (postavljanjem na visok naponski nivo) signala. Ukoliko unutar prijemnog bafera modula postoje podaci koji čekaju, tada modul neće biti u mogućnosti da prima niti da šalje sve dok se RTS ponovo ne aktivira i podaci iz bafera pošalju do kontrolera.

• RXTX pin, kontrola RS485 drajvera: RXTX je na niskom naponskom nivou kada modul može da primi podatke na svom RXD pinu. RXTX je na visokom naponskom nivou sve dok modul šalje podatke preko TXD pina, uz dodatnih 5ms, koje su potrebne da modul pređe iz stanja TXD u stanje IDLE (pogledati tabelu 3). RXTX je obično povezan sa /RE i DE pinovima RS485 drajvera.

Podešavanje kontrole komunikacije UART interfejsa se vri postavljanjem parametra UART_FLOW_CONTROL koji se nalazi u konfiguracionoj memoriji.

24

RC232 razvojni sistem

U svrhu upoznavanja mogućnosti RC1180-RC232 modula, projektovali smo jednostavni razvojni sistem koji omogućava brzo i lako konfigurisanje navedenog modula kao i prototipovanje budućih aplikacija. S obzirom da ovaj, kao i slični moduli, najčešću primenu nalaze kod bežičnih senzorskih mreže, kod kojih se vrši praćenje određenog procesa pomoću odgovarajućih senzora ili po potrebi deluje uključivanjem određenog aktuatora, osnovni zahtevi pre projektovanja su bili:

• Da celokupnim radom sistema upravlja mikrokontroler. • Da se sistem napaja baterijski. • Da se omogući praćenje napona baterije kako bi se signaliziralo ukoliko je došlo

do pražnjenja. • Da postoji veza sa računarom. • Da postoji veći broj ulaza za merenje analognih napona. • Da postoji ulaz za merenje frekvencije signala koji bi bio generisan od strane

određenog senzora. • Da postoji veći broj tastera i LED dioda za praćenje i dovođenje sistema u

određena stanja.

Veza sa računarom je bitna, zato što bi u sistemu postojao jedan master čvor koji bi bio povezan sa računarom, dok bi ostali slejv čvorovi bili raspoređeni u prostoru i povremeno slali podatke do master čvora, koji bi ih dalje prosleđivao računaru. S obzirom da bi se čvorovi nalazili na mestima gde se najčešće ne može naći stalni izvor napajanja, obavezno je baterijsko napajanje, što samo po sebi nameće i malu potrošnju, kako bi se produžio vek trajanja baterije.

Šema celokupnog sistema je prikazana na slici 10. Upotrebljeni mikrokontroler je marke Silabs iz serije C8051F31x, model C8051F310.

Mikrokontroleri ove serije se odlikuju sledećim osobinama:

• Protočno jezgro velike brzine, kompatibilno sa 8051 arhitekturom (do 25 MIPS) • Ugrađen (na čipu) interfejs za debagiranje. • 10-bitni, 200ksps AD konvertor za simetrične i nesimetrične signale i analognim

multiplekserom (C8051F310/1/2/3/6) • Precizni, programabilni interni oscilator (do 25 MHz) • 16 kB (C8051F310/1/6/7) ili 8 kB (C8051F312/3/4/5) interne on-chip Flash

memorije. • 1280 bajtova on-chip RAM memorije • SMBus/I2C, UART i SPI interfejsi implementirani u hardveru • Četiri 16-bitna brojača opšte namene • Programabilno Counter/Timer polje (PCA) sa pet capture/compare modula i

funkcijom Watchdog tajmera • On-chip, Power-On reset logika, praćenje napona napajanja, VDD, i temperaturni

senzor • On-chip naponski komparatori

25

• 29/25/21 ulazno izlaznih pinova (tolerantni na napon 5 V)

Blok za napajanje se sastoji od LDO naponskog regulatora TS5204 i pratećih kondenzatora za filtriranje jednosmernog napona na ulazu i zlazu, C1, C2 (elektrolit) i C3. Izlazni napon regulatora iznosi 3.3V. Pomoću kratkospajača, JP2 (POW_SEL), vrši se odabiranje izvora napona napajanja. Ukoliko je kratkospajač JP2 u gornjem položaju, na ulaz naponskog regulatora dolazi 5V iz USB-a i ova mogućnost se najčešće koristi kod master čvora. Postavljanjem pomenutog kratkospajača u donji položaj, na ulaz naponskog regulatori dolazi napon iz baterije. Sa donje strane ploče, nalazi se držač za četiri redno vezane baterije tipa AAA.

Veza mikrokontrolera i računara ostvaruje se pomoću USB/RS232 konvertora, preko JP1 (RS232_USB) konektora.

Praćenje vrednosti napona baterije se vrši pomoću naponskog razdelnika, R2 - R3, čiji se izlaz, VDD_MEASURE vodi na analogni ulaz mikrokontrolera, a zatim dalje do AD konvertora.

Merenje analognih napona koji se dovode spolja na ploču preko konektora JP4 (V1_IN) i JP5 (V2_IN) se vrši preko razdelnika napona R4 – R5 i R6 – R7, čiji se izlazi, V_IN1_PIN i V_IN2_PIN, respektivno, vode na analogne ulaze mikrokontrolera.

Preko konektora JP6 (FREQ_IN) se do mikrokontrolera dovodi signal čija se frekvencija želi da izmeri. Diode D1 i D2, kao i otpornik R12, služe za zaštitu pina mikrokontrolera.

Signali SW1 i SW2 se vode do pinova mikrokontrolera i mogu se kontrolisati od strane korisnika, pritiskom na tastere S1 i S2, respektivno. Pull-up otpornici R8 i R9, postavljaju signale SW1 i SW2, respektivno, na 3.3V, ukoliko su prekidači otvoreni.

Otpornici R10 i R11 ograničavaju struju kroz LED diode D4 i D3, respektivno. Diode D4 i D3 uključuje mikrokontroler postavljanjem signala LED1 i LED2, na nizak naponski nivo.

RC1180 komunicira sa mikrokontrolerom preko UART interfejsa, dok se dodatna kontrola ostvaruje preko signala REC_RST, RC232_SLEEP i CONFIG koje direktno kontroliše mikrokontroler. Otpornik R1 i kondenzator C6, su preporučeni od strane proizvođača i služe za filtriranje smetnji na RESET pinu. SMA konektor, CON1, je namenjen za povezivanje antene. Vod koji spaja konektor i RF ulaz modula je optimizovan tako da njegova karakteristična impedansa iznosi 50Ω.

Programiranje mikrokontrolera se obavlja putem C2K interfejsa, povezivanjem programatora na konektor JP3.

26

Program mikrokontrolera

Program mikrokontrolera je najpre podeljen na dve osnovne grupe funkcija. U prvu grupu spadaju funkcije za konfiguraciju RC1180 modula, dok u drugu spadaju funkcije za komunikaciju sa račnarom. Nakon projektovanja i testiranja funkcija, projektovana su tri test programa, koja demonstritaju osnovne funkcionalnosti RC1180 modula.

Funkcije za konfigurisanje modula RC1180

Kako je prikazano u tabeli 5, postoje nekoliko tipova funkcija koje se koriste za postavljanje i čitanje određenih parametara koji se nalaze u nekoj od memorija RC1180 modula.

Prva funkcija postavlja željeni kanal ili željenu snagu na izlazu ili odredišnu adresu, odnosno postavlja parametre koji se nalaze u RAM memoriji modula. Prototip funkcije napisane u C-u je:

unsigned char set_command (unsigned char C, unsigned char value);

Funkcija set_command vraća 1 ukoliko je uspešo izvršena, odnosno 0 ukoliko je došlo do neke greške tokom izvršenja. Parametri koji se prosleđuju funkciji su komanda, C, i vrednost parametra, value.

Radi lašeg korišćenja funkcije postoje makroi koji su definisani u main.h fajlu:

#define SET_CHANNEL(a) set_command('C', a) #define SET_OUTPUT_POWER(p) set_command('P', p) #define SET_DESTINATION_ADDRESS(a) set_command('T', a)

Primer komunikacije između mikrokontrolera i modula prilikom izvršenja ove funkcije je prikazan u tabeli ispod. U ovom primeru se vrši postavljanje odredišne adrese na 0x32. Funkcija se poziva na sledeći način:

x = set_command('T', a);

Komanda Heksadecimalna vrednost Odgovor Komentar

aktiviran CONFIG ‘>’ Nakon pristiglog odgovora, deaktivira se CONFIG

'T' 0x43 '>' 50 0x32 '>'

[ostale komande] 'X' 0x58 nema odgovora Modul se vraća u IDLE stanje

Talasni oblik signala CONFIG (grafik ljubičaste boje), RX (plavi grafik) i TX

(narandžasti grafik) nakon poziva makroa za izvršenje ove funkcije SET_CHANNEL(8) su prikazani na slici 10.

27

Slika 10

Funkcija, read_parameter, služi za čitanje parametara kao što su: snaga primljenog signala, temperatura i napon napajanja. Ova funkcija može da vrati vrednos 0 ukoliko je došlo do greške priliko izvršavanja, odnosno 1, ukoliko nije došlo do greške. Kao parametri se prosleđuju, komanda, C, i pokazivač na lokaciju u koju će biti smeštena pročitana vrednost, *value. Prototip ove funkcije je:

unsigned char read_parameter(unsigned char C, unsigned char *value);

Primer komunikacije između mikrokontrolera i modula prilikom korišćenja ove funkcije za očitavanje RSSI, prikazan je u tabeli ispod. Način na koji je pozvana funkcija je sledeći:

x = read_parameter(‘S’, &p);

Komanda Heksadecimalna vrednost Odgovor Komentar

aktiviran CONFIG ‘>’ Nakon pristiglog odgovora, deaktivirat i CONFIG

'S' 0x53 '>' vrednost RSSI ‘>’

'X' 0x58 nema odgovora Modul se vraća u IDLE stanje Talasni oblik signala CONFIG (grafik ljubičaste boje), RX (plavi grafik) i TX

(narandžasti grafik) nakon poziva read_parameter('V', &i) prikazani su na slici 11.

Slika 11

28

Treća funkcija, read_memory, čita vrednost iz konfiguracione memorije (fleš memorija) modula sa željene lokacije. Protip ove funkcije je:

unsigned char read_memory (unsigned char address, unsigned char *value);

Parametri koji se prosleđuju funkciji su: adresa sa koje se čita, address, i pokazivač na lokaciju u kojoj će biti smeštena pročitana vrednost, *value. Ukoliko funkcija vrati vrednost 1, tada nije došlo do greške tokom izvršenja, dok vrednost 0 znači da je došlo do greške.

U tabeli ispod je prikazan primer komunikacije između mikrokontrolera i modula prilikom čitanja podrazumevane vrednosti kanala, koja se nalazi na adresi 0x00. Funkcija je prethodno pozvana na sledeći način:

x = read_memory (0x00, &p);

Nakon izvršenja funkcije, u promenljiva p čuva vrednost podrazumevanog kanala.

Komanda Heksadecimalna vrednost Odgovor Komentar

aktiviran CONFIG ‘>’ Nakon pristiglog odgovora, deaktivirat i CONFIG

'Y' 0x59 '>' 0 0x00 '>' Slanje adrese

broj

podrazumevanog kanala kanala

Odgovor

‘>’ 'X' 0x58 nema odgovora Modul se vraća u IDLE stanje

Talasni oblik signala CONFIG (grafik ljubičaste boje), RX (plavi grafik) i TX

(narandžasti grafik) nakon poziva x=read_memory(0x01,&i) prikazani su na slici 12.

Slika 12

Funkcija memory_configuration se koristi za podešavanje parametara unutar konfiguracione memorije. Prototipove funkcije u C-u je:

unsigned char memory_configuration(unsigned char *memory_data, unsigned char *memory_address, unsigned char n)

29

Ulazni parametri su: pokazivač na početak niza u kome se nalaze podaci koji se upisuju, *memory_data, pokazivač na početak niza u kome se nalaze adrese na koje se upisuje, *memory_address, tako da elementi sa istim indeksom predstavljaju parove, podatak-adresa (podatak memory_data[1] smešta se na adresu koja se nalazi u memory_

address[1]). Poslednji parametar koji se prosleđuje jeste broj elemenata koji se upisuje u konfiguracionu memoriju, n.

Primer komunikacije izmežu mikrokontrolera i modula prilikom promene podrazumevanog RF kanala (adresa 0x00) na vrednost 3, podrazumevane snage na izlazu (adresa 0x01) na vrednost 5dBm (4), podrazumevane brzine podataka (adresa 0x02) na vrednost 4.8kbps (2), prikazan je u tabeli ispod. Pre poziva funkcije u navedene nizove su smeštene sledeće vrednosti:

memory_address[0] = 0x00; memory_address[1] = 0x01; memory_address[2] = 0x02; memory_data[0] = 3; memory_data[1] = 4; memory_data[2] = 2;

Funkcija je pozvana na sledeći način:

x = memory_configuration(&memory_data, &memory_address, 3);

Komanda Heksadecimalna vrednost Odgovor Komentar

aktiviran CONFIG ‘>’ Nakon pristiglog odgovora, deaktivirat i CONFIG

'M' 0x43 '>' memory_address[0] 0x00 nema odgovora Slanje adrese

memory_data[0] 0x03 nema odgovora Slanje vrednosti memory_address[1] 0x01 nema odgovora Slanje adrese

memory_data[1] 0x04 nema odgovora Slanje vrednosti memory_address[2] 0x02 nema odgovora Slanje adrese

memory_data[2] 0x02 nema odgovora Slanje vrednosti

0xFF 0xFF ‘>’ Izlazak iz rećima za konfiguraciju memorije

'X' 0x58 nema odgovora Modul se vraća u IDLE stanje

Funkcije za komunikaciju sa računarom

Komunikacija između modula i mikrokontrolera koristi hardverski UART kontroler koji se nalazi unutar C8051F310 mikrokontrolera. Kako bi se ostvarila komunikacija sa računarom preko RS232 interfejsa, potrebno je programski realizovati UART.

Kako se radi o asinhronoj komunikaciji, unapred je definisana bitska brzina od 57600bps, što omogućava da se odmeravanje prijemnog signala obavi u adekvatnim trenucima vremena. Za generisanje vremenskih prekida koristi se TIMER0, koji radi u 8-bitnom auto-reload režimu. Da bi se detektovao početak slanja poruke, potrebno je odabrati RX pin softverskog

30

UART-a tako da ima mogućnost generisanja eksternog prekida, kada dodje do opadajuće ivice na RX pinu. Nakon detektovanog START bita, zabranjuje se eksterni prekid i dozvoljava se prekid i rad TIMER0-a. Početna vrednost TIMER0-a je prethodno napunjena tako da on generiše prekid tačno na sredini intervala START bita (odnosno nakon polovine bitskog intervala od početka START bita). Nakon prvog prekida, TIMER0 će se na dalje puniti početnom vrednošću koja omogućava generisnje prekida nakon isteka bitskog intervala. Signal se odmerava ukupno deset puta, nakon čega se provera da li su korektno primljeni START i STOP bitovi. Ukoliko je podatak primljen korektno, program postavlja fleg, RX_flag, koji ukazuje da je doslo do prijema podataka. Program zadužen za prijem, smešten je u potpunosti unutar prekidnih rutina. Talasni oblik napona na RX liniji (narandžasti grafik), kao i trenuci u kojima se vrši odmeravanje (zeleni grafik), prikazani su na slici 13.

Slika 13

Slanje podataka je nešto jednostavniji zadatak od prijema i zahteva dovođenje željene vrednosti na TX liniju u određenim vremenskim trenucima. Kao generator bitske brzine, koristi se TIMER0, što ukazuje na to da nije moguće istovremeno primati i slati podatke korišćenjem softverskog UART-a. Funkcija koja se koristi za slanje jednog bajta ima sledeću deklaraciju:

unsigned char Soft_UART_Send_byte (unsigned char byte);

Funkcija za slanje niza bajtova ima sledeći prototip:

unsigned char Soft_UART_Send_message(unsigned char *message, unsigned int message_length);

Ulazni parametri ove funkcije su pokazivač na početak niza u kome je smeštena poruka, *message, i broj bajtova koji se šalje, n.

31

Test program 1

U okviru prvog test programa, demonstrira se funkcionalnost RF predajnika. Modul je najpre korišćenjem funkcije RC1180_Init(), inicijalizovan, tako što su pročitane vrednosti određenih parametara iz konfiguracione memorije, a zatim i upisane nove vrednosti ukoliko je za time bilo potrebe. Modul je podešen tako da dužina paketa iznosi 16 bajtova. Suština programa jeste da pokaže promenu kanala, što se najlakše uočava pomoću analizatora spektra. Modul salje 20 paketa od po 16 bajtova po kanalu, i nakon čega se vrši promena kanala i ponovno slanje. Deo main funkcije koji se ozvršava nakon inicijalizacije mikrokontrolera je prikazan ispod.

while(1) { for (j=0;j<=10;j++){ for (i=0;i<=15;i++) { SBUF0 = 'U'; while (!UART0_TX_flag); UART0_TX_flag = 0; } } p=0; while(p++<0x0FFF); if (channel == 17) {channel = 1;} x=SET_CHANNEL(channel); channel++; }

Test program 2

Drugi test program istovremeno pokazuje funkcionalnost RF predajnika i softverskog UART-a. U okviru main funkcije, mikrokontroler čeka na prijem karaktera ‘s’ sa računara preko softverskog UART-a. Nakon uspešnog prijema navedenog karaktera, mikrokontroler odgovara računaru istim karakterom, i istovremeno započinje slanje 20 paketa od 15 bajtova po svakom kanalu (1 – 16). Kada se završi slanje po svim kanalima, mikrokontroler ponovo ulazi u stanje čekanja na jarakter ‘s’.

while(1) { if ((RX_flag) && (UART_RX_reg == 's')) { RX_flag = 0; Soft_UART_Send_byte(UART_RX_reg); while(channel<17) { for (j=0;j<=20;j++){ for (i=0;i<=15;i++)

32

{ SBUF0 = 'U'; while (!UART0_TX_flag); UART0_TX_flag = 0; } } p=0; while(p++<0xFFFF); channel++; x=SET_CHANNEL(channel); } channel = 1; x=SET_CHANNEL(channel); } }

Test program 3

Test program broj 3 je najsloženiji i demonstrira komunikaciju između dva modula od kojih je jedan master a drugi slave.

Master modul je konfigurisan tako da ima jedinstvaenu adresu 1 i adresu sistema 1. Za odredišnu adresu je postavljena adresa slave čvora (adresa 2). Zadatak master čvora je da u tačno definisanim vremenski intervalima prozove slave modul i od njega prikupi potrebne informacije. Generisanje vremenskih prekida se vrši pomoću tajmera 2. Komanda prozivke je dužine dva bajta i sastoji se od sledećih karaktera {‘a’, ‘a’}. Nakon što je poslao komandu prozivke, master čeka na odgovor slave čvora. Odgovor se sastoji od 16 bajtova.

Slave modul je kofigurisan tako da ima jedinstvenu adresu 2 i adresu sistema 1. Odredišna adresa je postavljena na adresu master čvora (1). Program slave čvora je realizovan kao konačni automat. U prvom stanju slave čvor čeka na komandu prozivke. Ukoliko je pristigla komanda korektna, do master čvora se šalje 16 bajtova poruke. S obzirom da se radi o test programu, paket koji se šalje master čvoru je fiksan, što u konačnoj verziji sistema ne bi bio slučaj, već bi se sastojala od parametara čije merenje vrši slave.

33

Zaključak

Projektovani razvojni sistem omogućava brzo projektovanje prototipa bežičnih senzorskih mreža, čije razvijanje postaje sve više popularno. Osnovni trendovi su svakako mala potrošnja, niska cena i pouzdanost sistema. Kako se radi o razvojnom sistemu, niska cena svakako ne može biti njegova odlika, ali korišćenje gotovih programskih segmenata kao i ugrađeni komunikacioni protokol omogućava jednostavno razvijanje novih programa za realtivno kratko vreme.

Nakon projektovanja i izrade razvojnog sistema, pristupili smo testiranju. Najpre su razvijene osnovne funkcije za podešavanje radio modula. U svrhe testiranja postoje tri test programa koji se mogu koristiti za proveru osnovnih funkcionalnosti sistema. Dalje aktivnosti za poboljšanje ovog sistema se mogu odnositi na projektovanje usmerenih antena za poboljšanje dometa komunikacije, poboljšanje i optimizacija programa, itd.

34

Literatura

[1] http://www.radiocrafts.com/uploads/rc11xx-rc232_data_sheet_1_43.pdf [2] http://www.radiocrafts.com/uploads/rc232_user_manual_1_5.pdf [3] http://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F34x.pdf [4] http://en.wikipedia.org/wiki/RS-232