RFM12B LANGATON LÄHETIN/VASTAANOTIN MODULI SULAUTETUISSA JÄRJESTELMISSÄ



Samankaltaiset tiedostot
LYHYEN KANTAMAN LANGATTOMAT SIIRTOTAVAT

Lyhyen kantaman radiotekniikat ja niiden soveltaminen teollisuusympäristössä. Langaton tiedonsiirto teollisuudessa, miksi?

LYHYEN KANTAMAN LANGATTOMAT SIIRTOTAVAT

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Langattomat kenttäväylät rakennusautomaatiossa

ELEC-A4010 Sähköpaja Arduinon väylät tutuiksi

Taitaja2005/Elektroniikka. 1) Resistanssien sarjakytkentä kuormittaa a) enemmän b) vähemmän c) yhtä paljon sähkölähdettä kuin niiden rinnankytkentä

FTR960 RADIODATATOISTIN

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

1 Määrittele seuraavat langattoman tiedonsiirron käsitteet.

Tehtävä 2: Tietoliikenneprotokolla

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

6.3. AVR_rauta. EEPROM-muisti pva

Langaton kuuntelujärjestelmä. E-Lab.

Jos sinulla on kysyttävää 10. Vastaanotin toimi.

Kehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa

Radioamatöörikurssi 2016

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

/ * PROSESSORIN C-KIELINEN OHJELMA */

Piirien väliset ohjaus- ja tiedonsiirtoväylät H. Honkanen

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

83950 Tietoliikennetekniikan työkurssi Monitorointivastaanottimen perusmittaukset

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietoliikennetekniikan suuntautumisvaihtoehto. Opinnäytetyö.

KILPAILIJAN TEHTÄVÄT ARVIOINTIOSA 5

7.10. Oheisrautaa. sms Kooste vanhoista, kaipaa vielä fixsaamista,se tulee seuraavaan painokseen.

Langattoman verkon spektrianalyysi

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>

Kotikarjalan IPTV:n asetukset ja ohjeet

1 Muutokset piirilevylle

Taitaja2007/Elektroniikka

Käyttöohje Ohjelmistoversio V MTR kanavainen langaton lähetin mv- ja TC-tuloilla

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

Ohjelmistoradio. Mikä se on:

7.3. Oheisrautaa. DS

KÄYTTÖOHJE. M2M Point - to - Point

8. VIDEO-LÄHTÖ 9. Toimintapainikkeet 10. POWER-merkkivalo 11. PAL-merkkivalo 12. Kanavavalitsimen kytkin 13. VIDEO-TULO

Mikrokontrollerit. Mikrokontrolleri

Teknisiä käsitteitä, lyhenteitä ja määritelmiä

Tietotyypit ja operaattorit

2 Käynnistä tietokone. MI-7550Xp WIRELESS LASER MINI MOUSE. Tuotetiedot A B C F K

Öljysäiliöiden palosammutusjärjestelmien webpohjainen

Verilogvs. VHDL. Janne Koljonen University of Vaasa

KAAPELITESTERI / PAIKANNIN TRIFITEK TR-383 PIKAKÄYTTÖOHJE V1.0

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

Radiokurssi. Modulaatiot, arkkitehtuurit, modulaattorit, ilmaisimet ja muut

MTR260C LÄMPÖTILALÄHETIN

ECC:n päätös ECC/DEC/(06)04. Standardi EN sekä EN

5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

PROGNOS. Panostusnosturin tiedonsiirto ja mittaukset. Tommi Parkkila

Elektroniikan uudet pakkausteknnikat ja integrointi mekaniikkaan

Ohjelmointiharjoituksia Arduino-ympäristössä

Tervetuloa Pika-aloitusopas

Tervetuloa Pika-aloitusopas

Verkkodatalehti ISD ISD400 OPTINEN TIEDONSIIRTO

Tervetuloa Pika-aloitusopas

Kotitalouksien kiinteät internet - liittymät. Tero Karttunen Oy Mikrolog Ltd

Tervetuloa Pika-aloitusopas

Radioamatöörikurssi 2017

Vapaat ja langattomat näkökulmat tulevaisuuteen

ZigBee-ohjaus kuorma-autolle

HS-8100 BLUETOOTH CAR KIT Tuotetiedot

Toimintaperiaate: 2. Kytke virta vastaanottimeen käyttämällä virtalaitetta, jossa on merkintä "horsealarm receiver only".

mikä sen merkitys on liikkuvalle ammattilaiselle?

Radiolaitteet. Ostajan opas. Opas myyjille ja maahantuojille

A15 - Inertial Measurement Unit

2 Käynnistä tietokone. MI-4550Xp WIRELESS OPTICAL MINI MOUSE. Tuotetiedot A B C

Taajuusjakotaulukko (liite määräykseen M4S)

PIKAOPAS MODEM SETUP FOR NOKIA Copyright Nokia Oyj Kaikki oikeudet pidätetään.

Langattoman kotiverkon mahdollisuudet

U-REMIX USB RF 2 RF 1 POWER

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Asetuksen mukaan tarkoituksenmukaisen internetyhteyden vähimmäisnopeudesta

MP:n senioreiden kilpakoulu 2010

TERVEYDENHUOLLON XXVI ATK-PAIVAT Uudet langattomat tekniikat. professori Hannu J. Koivisto, Tampereen teknillinen korkeakoulu

Radioyhteys: Tehtävien ratkaisuja. 4π r. L v. a) Kiinteä päätelaite. Iso antennivahvistus, radioaaltojen vapaa eteneminen.

AED Plus. Trainer2. Ohjeet ja valmistajan ilmoitus Sähkömagneettinen säteily Sähkömagneettisen ilmoitus Suositeltu etäisyys siirrettävien

VID-TRANS150KN SUOMI. 2.4GHz LANGATON AUDIO/VIDEO LÄHETINJÄRJESTELMÄ KÄYTTÖOHJE PATENTTI.

Testiympäristömme koostui seuraavista verkoista: a. Wlan-yhteys Ciscon EPC3825 kaapelimodeemilla

Kojemeteorologia. Sami Haapanala syksy Fysiikan laitos, Ilmakehätieteiden osasto

ABB i-bus KNX taloautomaatio. Sakari Hannikka, Kiinteistöjen ohjaukset KNX vai ABB Group May 11, 2016 Slide 1

Pikaohje Ohjelmistoversio V KMR260. langaton käsimittari. Nokeval

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Satelliittipaikannus

1 db Compression point

Dynatel 2210E kaapelinhakulaite

GSM OHJAIN FF KÄYTTÖOHJE PLC MAX S03

Petri Vehkaoja IPCS-SISÄVERKON JA WLAN-VERKON YHTÄAIKAINEN TOIMINTA

6.2. AVR_rauta. Analogia-komparaattori-ohjelmointia , pva

Tehtävä 5. ECIO dataloggeri lämpötila-anturilla

SDR-Ohjelmistoradio. Esitelmä ohjelmistoradiosta (SDR-Tikku) Esitetty OH7AA kerhoillassa Tehnyt OH7NW

CMP-WNUSB10 Langaton LAN USB 54 Mbps sovitin Käyttöohje SUOMI

PIKAOPAS MODEM SETUP

Valtioneuvoston asetus

KÄYTTÖOHJE TEHR LU / TEHR-M

1 YLEISTÄ. Taitaja2002, Imatra Teollisuuselektroniikkatyö Protorakentelu 1.1 PROJEKTIN TARKOITUS

Aloitus. TellStick Net. Telldus Technologies AB

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström

Transkriptio:

3.1.2010 RAPORTTI RFM12B LANGATON LÄHETIN/VASTAANOTIN MODULI SULAUTETUISSA JÄRJESTELMISSÄ 0278116 Hans Baumgartner

1 SISÄLTÖ KÄYTETYT MERKINNÄT JA LYHENTEET... 2 1. JOHDANTO... 3 2. LYHYEN KANTAMAN LANGATON TIEDONSIIRTO... 4 2.1 Langattomat tiedonsiirtotekniikat... 4 2.2 Tiedonsiirtonopeudet... 5 2.3 Tekniikoiden kustannukset... 5 2.4 Käyttökohteet... 6 3. RFM12B... 7 3.1 Modulaatio... 8 3.2 Lähetysteho... 8 3.3 Ajurit... 9 3.4 Tietoliikenneprotokolla... 9 4. Testaus... 11 4.1 Lähetin... 11 4.2 Vastaanotin... 12 5. YHTEENVETO... 14 LÄHTEET... 15

2 KÄYTETYT MERKINNÄT JA LYHENTEET F c FSK IEEE IrDA ISM ISP PC RF WLAN kantoaaltotaajuus Frequency Shift Keying Institute of Electrical and Electronics Engineers Infrared Data Association Industrial, Scientific and Medical In-System Programming Personal Computer Radio Frequency Wireless Local Area Network

3 1. JOHDANTO Langattoman tiedonsiirron avulla voidaan kasvattaa sulautettujen järjestelmien sovelluskohteiden määrää sekä laajennettavuutta. Lyhyen kantaman langattomalla tiedonsiirrolla voidaan yhdistää eri laitteita toisiinsa sekä lähettää langattomasti esimerkiksi mittausdataa. Seminaarityössä on tarkasteltu langattoman lyhyen kantaman tiedonsiirron käyttökohteita ja toimintaa yleisesti sekä perehdytty tarkemmin Hope Microelectronics Co., Ltd. RFM12B -moduulin ominaisuuksiin. Kaksi RFM12B-moduulia on lisäksi implementoitu AVR-mikrokontrollereiden avulla testiympäristöön.

4 2. LYHYEN KANTAMAN LANGATON TIEDONSIIRTO Lyhyen kantaman langattoman tiedonsiirron avulla voidaan yhdistää laitteita ja mittausantureita toisiinsa. Käytettävät moduulit toimivat tavallisesti lisenssivapailla kantoaaltotaajuuksilla, alhaisilla lähetystehoilla, joten radiolaitteiden käyttö ei vaadi erityisiä lupia. Usein moduulit käyttävät hajaspektritekniikoita, kuten taajuushyppelyä, jolloin todennäköisyys, että kaksi laitetta toimivat samaan aikaan samalla taajuudella on pieni. Lisäksi, koska lähetystehot ovat pieniä, eivät vastaanottimet häiriinny mahdollisesti muista samalla taajuudella toimivista vastaavista laitteista, mikäli laitteiden välinen etäisyys on riittävä. Mikäli samanlaisia laitteita joudutaan käyttämään samalla alueella, voidaan laitteiden kantoaaltotaajuutta muuttaa tai käyttää protokollaa, joka erottelee datavirrasta kullekin laitteelle kuuluvan datan. Lisäksi osa valmiista protokollista määrittelee, kuinka samalla alueella sijaitsevat laitteet kommunikoivat keskenään [1]. 2.1 Langattomat tiedonsiirtotekniikat Lyhyen kantaman langattomia RF-tekniikoita (Radio Frequency) on useita eri käyttötarkoituksiin. Esimerkiksi kodinelektroniikassa yleisesti käytössä olevia tekniikoita ovat WLAN (Wireless Local Area Network) ja Bluetooth. Myös IrDA (Infrared Data Association) eli infrapuna voidaan laskea kuuluvaksi lyhyen kantaman langattomaksi tekniikaksi. Radiotaajuuksiin perustuva tiedonsiirto tosin on syrjäyttänyt monissa laitteissa infrapunaan perustuvan linkin. RF-taajuudet eivät vaadi näköyhteyttä, jolloin niiden luotettavuus on parempi. Infrapunan näköyhteyteen perustuva linkki tosin suojaa tehokkaasti salakuuntelulta ja samalla taajuudella toimivat laitteet eivät häiritse toisiaan. Myös teollisuudessa käytetään kodinelektroniikasta tuttuja tekniikoita WLAN:a, Bluetooth:a ja infrapunaa. Lisäksi teollisuuden kenttälaitteissa käytetään erityisesti teollisuusympäristöön suunniteltuja tekniikoita kuten ZigBee, Wireless Profibus ja Wireless HART sekä standardoimattomia radiopiirejä [2].

5 Standardoimattomalla radiopiirillä tarkoitetaan piiriä, jonka yhteensopivuus on rajoittunut jopa laitevalmistajatasolle [2]. Lähemmän tarkastelun kohteena oleva RFM12B-moduuli voidaan laskea kuuluvaksi standardoimattomiin piireihin. Kyseinen piiri ei oletusarvoisesti tue mitään kaupallisesti saatavilla olevaa protokollaa, joten kyseinen moduuli pystyy keskustelemaan vain saman valmistajan moduuleiden kanssa. 2.2 Tiedonsiirtonopeudet Kodinelektroniikassa käytettävät protokollat kykenevät parhaimmillaan jopa 54 Mbit/s nopeuksin (WLAN) [3]. Tavallisesti teollisuudessa siirrettävä data on kuitenkin hitaasti päivittyvää ohjaus- tai oloarvotietoa, joka ei vaadi suurta tiedonsiirtonopeutta. Suurempia nopeuksia tarvitaan vain erityiskohteissa kuten videokuvan siirrossa tai erittäin nopeassa säädössä. Muiden langattomien tekniikoiden nopeudet jäävätkin huomattavasti WLAN:n nopeudesta. Esimerkiksi Wireless HART kykenee 250 kbit/s nopeuteen ja Bluetooth lyhytaikaisesti parhaimmillaan 3 Mbit/s nopeuteen. Lähemmin tarkasteltava RFM12B kykenee ilman ulkoisia komponentteja tiedonsiirtonopeuteen 115.2 kbit/s, joka riittää moniin yksinkertaisiin sovelluksiin. Tiedonsiirtonopeuksia tarkasteltaessa on hyvä ottaa huomioon, että useimmiten tarkoitetaan fyysisen kerroksen bittinopeutta, joka sisältää usein huomattavankin määrän otsikkotietoja. Hyötydatan siirtonopeus on siis fyysisen kerroksen siirtonopeutta pienempi. 2.3 Tekniikoiden kustannukset Radiomoduuleiden hinnat vaihtelevat huomattavasti. Yleisesti käytössä, niin kodinelektroniikassa, kuin teollisuudessakin olevia WLAN-laitteita on hyvin saatavilla. Tekniikan monimutkaisuus rajoittaa kuitenkin WLAN-tekniikan käytön valmiisiin laitteisiin. WLAN:n vaatima TCP/IP-protokollapino on erittäin raskas eikä tavallisesti mahdu yksinkertaiseen mikrokontrolleriin. Osa WLAN-moduleista hoitaa

6 verkkoprotokollat rautatasolla tai omalla prosessorillaan, jolloin protokollapinon implementoinnista ei tarvitse huolehtia. Muista langattomista tekniikoista esimerkiksi Bluetooth-moduulit maksava noin 10 euroa (lynx-dev.com) ja ZigBee 15 euroa (sparkfun.com). Lähemmin tarkasteltava RFM12Bmoduuli maksaa alle 5 euroa (lynx-dev.com). 2.4 Käyttökohteet Langattomat radiomoduulit laajentavat huomattavasti sulautettujen järjestelmien käyttökohteita ja monipuolisuutta. Yksinkertaisia esimerkkejä langattomien lähettimien käytöstä ovat esimerkiksi langaton lämpömittari tai periaatteessa mikä tahansa anturi, johon on liitetty langaton lähetin. Langattomuus pienentää anturin asennuskustannuksia, kun kaapeleita ei tarvita. Lisäksi joissain sovelluksissa langattomuus on ainoa tapa toteuttaa mittaus, sillä mittari voi olla liikkuva tai kaapeleita on mahdotonta jälkikäteen asentaa esimerkiksi suljettuun säiliöön. Tarkasteltava RFM12B on suunniteltu tulevan langattomaksi ohjausyksiköksi satamanosturin etäisyysmittariin. Laitteessa ultraäänitoimiset etäisyysmittarit kirjoittavat nosturin ja nostettavan kontin välisen etäisyyden kohdetta kuvaavan videokameran kuvan päälle. Kuva lähetetään langattomasti ohjauskoppiin, josta voidaan langattomasti ohjata mm. etäisyysanturin offset-arvoa, hälytyksiä ja näkyykö etäisyys ylipäänsä näytöllä. Kyseisessä kohteessa käytetään langatonta tekniikkaa, sillä nosturille tulee ainoastaan sähköt. Tarvittavalle video- ja ohjaussignaalille olisi ilman langatonta tekniikkaa pitänyt vetää omat johdotukset, joka olisi ollut erittäin kallista, sillä nosturin liikerata on yli 20 metriä ja kaapeleilta vaaditaan suurta rasituksen- ja säänkestävyyttä.

7 3. RFM12B RFM12B on edullinen, ISM-taajuusalueella (Industrial, Scientific and Medical) toimiva lähetin-vastaanotin. Käytettävät taajuusalueet ovat 433, 868 ja 915 MHz:a. Käytettävä taajuusalue voidaan valita täysin ohjelmallisesti. Moduulin tärkeimmät ominaisuudet on listattu alla. - edullinen, hinta alle 5 yksittäni ostettuna - ei vaadi ulkoisia komponentteja, antennin lisäksi - datanopeus jopa 256 kbit/s, sisäisellä demodulaattorilla 115.2 kbit/s - automaattinen antennin viritys - SPI-väylä - 2.2 3.8 V toimintajännite - matala tehonkulutus, enintään 26 ma lähetysmoodissa, 15 ma vastaanottomoodissa - standby-virta alle 0.3 µa - tukee pientä pakettikokoa, 3 tavua Kuva 1 Lähetinyksikkö. RFM21B-moduuli merkitty punaisella ympyrällä.

8 3.1 Modulaatio RFM12B moduloi lähetettävän signaalin FSK-modulaatiolla (Frequency Shift Keying). FSK on taajuusmodulaatiotekniikka, jossa digitaalisen signaalin bitit esitetään eri kantoaaltotaajuuksina. Kuvassa 2 on esitetty FSK-modulaation periaate. Kuva 2 FSK-modulaation periaate [4] Kuvasta 2 voidaan havaita 0- ja 1-bittejä kuvattavan eri kantoaaltotaajuuksilla. RFM12Bmodulilla voidaan ohjelmallisesti määrittää kilohertseinä kyseinen taajuusdeviaatio välillä 15 240 khz:ä. Deviaation kasvattaminen tekee bittien havaitsemisen helpommaksi, mutta kasvattaa tarvittavaa kaistanleveyttä. Deviaation suuruuden lisäksi voidaan valita deviaation polariteetti eli kuvaako korkeampi taajuus ykköstä vai nollaa. 3.2 Lähetysteho Lähetysteho voidaan valita ohjelmallisesti välillä -21 0 dbm. Yksikkö dbm kuvaa lähetystehoa suhteessa 1 mw lähetystehoon. 0 dbm on absoluuttisena tehona 1 mw ja -21 dbm 0.008 mw.

9 Moduulin tehoa testattiin Lappeenrannan Pesuparkki Oy:ssa, jonka toimitilat ovat metallija betoniseinäisiä. 0 dbm lähetysteholla kiinteistön sisällä olevan lähettimen lähettämä datasignaali pystyttiin vastaanottamaan virheettömästi koko kiinteistön alueella. Lähetin toimii siis erinomaisesti myös sisätiloissa teollisuusympäristössä ainakin kymmeniä metrejä. Saatavilla on myös tehokkaampia 500 mw lähetin-vastaanottimia. Kyseisille moduuleille luvataan jopa 3 km kantosädettä. Viestintävirasto tosin rajoittaa ISM-taajuuksien lähetystehoja huomattavasti, joten tehokkaiden lähettimien käyttö jää henkilökohtaisen harkinnan ja riskinottokyvyn varaan. [5] 3.3 Ajurit RFM12B-moduulille on saatavilla ilmaiset ajurikoodit suoraan AVR- ja PICmikrokontrollereille. Hyvin kommentoitu esimerkkikoodi on myös helppo portata muille prosessoreille, sillä moduulin vaatimat alustukset ovat selkeitä ja suoraviivaisia. Valmiit esimerkkikoodit ovat yhdessä.c-lähdekooditiedostossa, joten koodien käyttö sellaisenaan ajureina omiin sovelluksiin ei onnistu. Ajurikoodit olisi hyvä lajitella omiin.h- ja.ctiedostoihinsa, jolloin koodien uudelleenkäyttö on huomattavasti joustavampaa. Vastaanottimen esimerkkikoodi on toteutettu pollaavana, joskin moduuli tukee myös keskeytykseen perustuvaa vastaanottoa. Kyseisistä puutteista johtuen esimerkkiajurit eivät ole täysin valmiita, vaan vaativat omaa työtä. Seminaarityöhön kuuluvassa implementoinnissa onkin hieman siistitty esimerkkiajureita ja siirretty lähetinpään koodit omiin.h- ja.c-tiedostoihinsa. Vastaanotin tosin on edelleen toteutettu pollaavana, eikä keskeytykseen perustuvana. 3.4 Tietoliikenneprotokolla Testiympäristössä käytetty moduuli ei sisältänyt minkäänlaista tietoliikenneprotokollaa. Lähetetty paketti sisältää ainoastaan siirrettävät tavut eikä lainkaan otsikkotietoa. Yksinkertaisessa sovelluksessa ei protokollaa välttämättä tarvita, mutta esimerkiksi jonkinlainen virheentarkistus on hyvä olla aina.

10 Mikäli useampi moduuleja halutaan käyttää samalla alueella, jolloin moduulit kuulevat toistensa liikenteen on jonkinlainen tietoliikenneprotokolla välttämätön. Jokaiselle laitteelle voidaan asettaa esimerkiksi osoite, jonka perusteella päätetään tarvitseeko vastaanotettuun dataan reagoida. IEEE määrittelee myös avoimia tietoliikennestandardeja joita voidaan käyttää tietoliikenteen suunnittelussa. RFM12B-moduulilla voidaan myös ohjelmallisesti muuttaa kantoaaltotaajuutta kantoaaltotaajuuden ympäristössä. Esimerkiksi 868 MHz kantoaaltotaajuutta voidaan säätää yhtälön (1) mukaan jossa 36 F 3903 F c = 860 + F*0.005Mhz, (1) Yhtälön (1) parametri F määritellään 12-bittisenä kokonaislukuna RFM12B-moduulin rekisterissä 0xA6. Muuttamalla kantoaaltotaajuutta voivat samalla kuuluvuusalueella olevat laitteet toimia toisistaan häiriintymättä. Esimerkiksi 868 MHz keskikantoaaltotaajuus voi vaihdella välillä 860.18-879.515 MHz. Mikäli kaistanleveys on 500 khz, voi samalla alueella kommunikoida 40 eri laitetta. Laitteet voivat toimia myös samalla kantoaaltotaajuudella eri aikaikkunoissa, mutta tällöin laitteet täytyy suunnitella toimimaan yhdessä.

11 4. TESTAUS RFM12B-moduuleita testattiin AVR-mikrokontrollereiden ja PC-tietokoneen avulla. Lähetinyksikkö muodostui RF-modulista sekä Arduino kehitysalusta. Vastaanottimena toimi STK500-kehitysalusta sekä PC-tietokone. 4.1 Lähetin Lähetin muodostuu Arduino-kehitysympäristöstä sekä RFM12B-moduulista, kuva 1. Arduino käyttää ATmega328p-mikroprosessoria ja sitä voidaan ohjelmoida, joko ohjelmointikaapelin avulla tai Arduinon omalla ohjelmointikielellä usb-väylällä. Testauksessa käytettiin ensimmäistä vaihtoehtoa ja käytettynä ohjelmointilaitteena oli AVR ISP-mk2. Lähettimen koodi on esitetty alla. #include <avr/io.h> #include "rfm12b.h" int main(void) { volatile unsigned int i,j; for(i=0;i<1000;i++)for(j=0;j<123;j++); rfm12b_portinit(); rfm12b_init(); rfm12b_writecmd(0x0000); rfm12b_send(0xaa); // PREAMBLE rfm12b_send(0xaa); rfm12b_send(0xaa); rfm12b_send(0x2d); // SYNC rfm12b_send(0xd4); for(i=0; i<1; i++) { rfm12b_send(0x30+i); rfm12b_send(0xaa); // DUMMY BYTES

12 rfm12b_send(0xaa); rfm12b_send(0xaa); return 0; Koodissa alustetaan RF-modulin portit ja itse moduli. Alustuksessa rfm12b_init() määritellään mm. käytettävä kantoaaltotaajuus, lähetysteho sekä lähetysnopeus. Ennen varsinaisen hyötydatan lähetystä lähetetään kolmen tavun preamble rfm12b_send(0xaa) sekä sykronointitavut 0x2D ja 0xD4. Näiden tavujen avulla vastaanotin huomaan, että dataa on tulossa ja valmistautuu vastaanottamaan dataa. Dataosio koostuu 16 tavusta, jotka ovat ascii-merkit 0x30-0x46. Lopussa olevat 0xAA tavut eivät ole välttämättömiä. Lähetin lähettää uuden paketin aina käynnistyttyään ja lopettaa toimintansa tämän jälkeen. Uusi paketti voidaan lähettää painamalla Arduino-kehitysalustan reset-painiketta. 4.2 Vastaanotin Vastaanotin muodostuu STK500-kehitysalustasta sekä PC-tietokoneesta. STK500- kehitysalustassa oleva ATtiny2313-mikroprosessori on liitetty RFM12B-moduuliin, kuva 3. Kuva 3 Vastaanotin

13 Mikrokontrolleri lähettää vastaanotetut tavut sarjaportin välityksellä PC-tietokoneelle. Havaitessaan tulevaa liikennettä sarjaportissa, PC-tietokoneen sovellus kirjoittaa näytölle tekstin hello, world sekä soittaa äänimerkin, kuva 4. Kuva 4 Moduulin toimintaa havainnollistava Windows-ohjelma Kuvan 4 sovellus on toteutettu Microsoft Visual Studio 2008 ohjelmistolla, C++/CLIohjelmointikielellä (Common Language Infrastructure). Sovellus kirjoittaa tekstin näytölle vastaanotettuaan sarjaportista minkä tahansa tavun. Vastaanottavan AVR-mikrokontrollerin koodi on kopioitu lähes suoraan esimerkkikoodeista, joten siinä ei ole erillisiä ajuritiedostoja, vaan kaikki toiminnallisuus on toteutettu yhdessä.c-tiedostossa. Koodi on melko pitkä ja sekava, joten se on raportin liitteenä. Lisäksi mikrokontrollerin ohjelma on pollaava, joten se soveltuu melko huonosti mihinkään todelliseen käyttöön.

14 5. YHTEENVETO Seminaarityössä perehdyttiin Hope Microelectronics RFM12B -langattomaan tiedonsiirtomoduuliin. Raportissa käytiin läpi yleisesti langatonta tiedonsiirtoa sulautetuissa järjestelmissä ja testattiin käytännön laitteessa tutkittua RFM12B-moduulia. Raportissa on selostettu RFM12B-moduulin ominaisuuksia ja toimintaa. Lisäksi raportissa on esitetty moduulin liittäminen AVR-mikrokontrolleriin sekä liitteenä tarvittavat ohjelmistokoodit.

15 LÄHTEET [1] ZigBee, Wikipedia, viitattu 16.11.2009 [2] Kaupallisten lyhyen kantaman radiotekniikoiden kartoitus ja soveltuvuus analyysi metallisorvin ohjauksessa käytettävään point-to-point yhteyteen, kandidaatintyö, Niskanen, V., 2009 [3] WLAN, Wikipedia, viitattu 16.11.2009 [4] FSK, Wikipedia, viitattu 16.11.2009 [5] Määräys 15 (15 Z/2009 M), Viestintävirasto, http://www.ficora.fi/attachments/suomiry/5l1x1fiik/viestintavirasto15z2009 M.pdf, viitattu 3.1.2010 Lisätietoa: RFM12B datalehti, Hope Microelectronics Co. Ltd. RFM12B programming guide, Hope Microelectronics Co. Ltd. RFM12B and AVR quick start, http://zenburn.net/~goroux/rfm12b/rfm12b_and_avr%20quick_start.pdf, 16.11.2009

LIITE #define SCK 7 // SPI clock #define SDO 5 // SPI Data output (RFM12B side) #define SDI 6 // SPI Data input (RFM12B side) #define CS 4 // SPI SS (chip select) #define NIRQ 2 // (PORTD) #define HI(x) PORTB = (1<<(x)) #define LO(x) PORTB &= ~(1<<(x)) #define WAIT_NIRQ_LOW() while(pind&(1<<nirq)) #define LED 6 #define LED_OFF() PORTD &= ~(1<<LED) #define LED_ON() PORTD = (1<<LED) #define BAUDRATE 25 // 19200 at 8MHz #include <avr/io.h> void rsinit(unsigned char baud) { UBRRL = baud; UCSRC = (1<<UCSZ0) (1<<UCSZ1); // 8N1 UCSRB = (1<<RXEN) (1<<TXEN); // enable tx and rx void rssend(unsigned char data) { while(!(ucsra & (1<<UDRE))); UDR = data; unsigned char rsrecv() { while(!(ucsra & (1<<RXC))); return UDR; void portinit() {

HI(CS); HI(SDI); LO(SCK); DDRB = (1<<CS) (1<<SDI) (1<<SCK); DDRD = (1<<LED); unsigned int writecmd(unsigned int cmd) { unsigned char i; unsigned int recv; recv = 0; LO(SCK); LO(CS); for(i=0; i<16; i++) { if(cmd&0x8000) { HI(SDI); else { LO(SDI); HI(SCK); recv<<=1; if( PINB&(1<<SDO) ) { recv =0x0001; LO(SCK); cmd<<=1; HI(CS); return recv; void FIFOReset() { writecmd(0xca81); writecmd(0xca83);

void waitfordata() { unsigned int status; while(1) { status = writecmd(0x0000); if ( (status&0x8000) ) { return; void rfinit() { writecmd(0x80e7); //EL,EF,868band,12.0pF writecmd(0x8299); //er,!ebb,et,es,ex,!eb,!ew,dc writecmd(0xa640); //freq select writecmd(0xc647); //4.8kbps writecmd(0x94a0); //VDI,FAST,134kHz,0dBm,-103dBm writecmd(0xc2ac); //AL,!ml,DIG,DQD4 writecmd(0xca81); //FIFO8,SYNC,!ff,DR writecmd(0xced4); //SYNC=2DD4; writecmd(0xc483); //@PWR,NO RSTRIC,!st,!fi,OE,EN writecmd(0x9850); //!mp,90khz,max OUT writecmd(0xcc17); //!OB1,!OB0, LPX,!ddy,DDIT,BW0 writecmd(0xe000); //NOT USE writecmd(0xc800); //NOT USE writecmd(0xc040); //1.66MHz,2.2V /* unsigned char rfrecv() { unsigned int data; writecmd(0x0000); data = writecmd(0xb000); return (data&0x00ff); */ unsigned char rfrecv() {

unsigned int data; while(1) { data = writecmd(0x0000); if ( (data&0x8000) ) { data = writecmd(0xb000); return (data&0x00ff); int main(void) { unsigned char data, i; LED_ON(); portinit(); rfinit(); rsinit(baudrate); FIFOReset(); while(1) { waitfordata(); for (i=0; i<16; i++) { data = rfrecv(); rssend(data); FIFOReset(); return 0;