BLUETOOTH LOW ENERGY EKG-LÄHETIN - AMMATTIKORKEAKOULUTUTKINTO TEKNIIKAN JA LIIKENTEEN ALA

BLUETOOTH LOW ENERGY EKG-LÄHETIN -   AMMATTIKORKEAKOULUTUTKINTO TEKNIIKAN JA LIIKENTEEN ALA
OPINNÄYTETYÖ - AMMATTIKORKEAKOULUTUTKINTO
TEKNIIKAN JA LIIKENTEEN ALA
BLUETOOTH LOW ENERGY
EKG-LÄHETIN
TEKIJÄ:
Ville Tikkanen
SAVONIA-AMMATTIKORKEAKOULU
OPINNÄYTETYÖ
Tiivistelmä
Koulutusala
Tekniikan ja liikenteen ala
Koulutusohjelma
Elektroniikan koulutusohjelma
Työn tekijä(t)
Ville Tikkanen
Työn nimi
Bluetooth low energy EKG-lähetin
Päiväys
19.4.2013
Sivumäärä/Liitteet
56
Ohjaaja(t)
Väinö Maksimainen, Aki Tiihonen
Toimeksiantaja/Yhteistyökumppani(t)
Mega Elektroniikka Oy
Tiivistelmä
Tämän opinnäytetyön tarkoituksena oli tehdä markkinaselvitys tarjolla olevista Bluetooth low energy-moduuleista ja
mikropiireistä. Tehdyn selvityksen perusteella valittiin yksi tuote, johonka pohjautuvalla kehitysalustalla tutkittiin
ohjelmoimalla jatkuvan EKG-signaalin mittausta, analogia-digitaalimuunnosta sekä muunnetun datan lähetystä
päätelaitteelle. Keskeisenä osa-alueena oli Bluetooth low energy -teknologian hyödyntäminen työn toteutuksessa.
Työn tarkoituksena oli tarkastella Bluetooth low energy langattoman tiedonsiirtoteknologian soveltuvuutta EKGsignaalia mittaavan anturin keräämän datan välittämiseen päätelaitteelle.
Työ toteutettiin Kuopiolaiselle Mega Elektroniikka yritykselle, joka suunnittelee, kehittää sekä valmistaa biosignaalien mittaamiseen käytettäviä laitteistoja. Useissa heidän tuotteisssa hyödynnetään Bluetooth-teknologiaa moduulien avulla anturin ja päätelaitteen väliseen tiedonsiirtoon. Tämän hetkiset laitteet pohjautuvat tällä hetkellä jo vanhempiin Bluetooth -protokolliin ja näin ollen tarve selvitystyölle alkoi olla paikallaan.
Opinnäytetyön tuloksena ohjelmoitiin CC2540-mikropiiriin pohjautuva kehitysalusta mittaamaan ja muuntamaan
jatkuvaa EKG-signaalia sekä lähettämään muunnettu data päätelaitteelle, jossa vastaanotetusta datasta piirrettiin
graafia reaaliajassa Mega Elektroniikan omalla vastaanotto-ohjelmistolla. Lopputuloksena saatiin Bluetooh low
energy Heart Rate Sensor -profiilin mukainen toimiva ohjelmisto, joka on helposti räätälöitävissä tarpeiden mukaan.
Avainsanat
Bluetooth, Bluetooth low energy, Bluetooth Smart, BLE, ECG, EKG
Julkinen
SAVONIA UNIVERSITY OF APPLIED SCIENCES
THESIS
Abstract
Field of Study
Technology, Communication and Transport
Degree Programme
Degree Programme in Electronic Engineering
Author(s)
Ville Tikkanen
Title of Thesis
Bluetooth Low Energy ECG-transmitter
Date
April 19, 2013
Pages/Appendices
56
Supervisor(s)
Mr Väinö Maksimainen, Principal Lecturer and Aki Tiihonen, Operations Director
Client Organisation /Partners
Mega Electronics Ltd
Abstract
The aim of this project was to conduct a market research of available Bluetooth low energy modules and ICs. One
of the key aspects of this project was to implement Bluetooth low energy for data transfer.
On the basis of the survey the most suitable product was selected which was used to measure a continuous ECGsignal. Analog-to-digital conversion was made to the ECG-signal which was then transmitted to the receiver by
using wireless data transfer. The project was commissioned by a local Mega Electronics company which focuses on
designing and manufacturing equipment used in the measurement of human based biosignals. Many of their current products uses Bluetooth for data transfer between a sensor and a terminal device. Current devices are based
on older versions of Bluetooth, and therefore products using the new version of Bluetooth need to be researched.
The work was conducted by using a development platform which is based on CC2540-IC. The platform was programmed to measure and convert a continuous ECG-signal and transmit the converted data by using BLE. As a result of the project, a working program was made which is based on BLE Hear Rate Sensor-profile.
Keywords
Bluetooth, Bluetooth low energy, Bluetooth Smart, BLE, ECG, EKG
Public
ESIPUHE
Tein opinnäytetyöni opintojeni ohella Kuopiossa alkuvuonna 2013. Työtä tehdessä sain laajalti kokemusta biosignaalien mittaamiseen käytettävästä elektroniikasta, sulautettujen laitteiden ohjelmoinnista sekä langattomasta tiedonsiirrosta ja sen toteuttamisesta Bluetooth low energyteknologialla.
Haluan kiittää Mega Elektroniikka Oy:n Arto Remestä ja Aki Tiihosta opinnäytetyöni mahdollistamisesta, Sami Hynystä ja Heikki Turusta omasta osuudestaan työni loppuun saattamisessa ja opinnäytetyöni ohjaajaa yliopettaja Väinö Maksimaista sekä kaikkia muita, jotka ovat olleet avustamassa
opinnäytetyötäni.
Kuopiossa 19.4.2013
Ville Tikkanen
SISÄLTÖ
LYHENTEET JA KÄSITTEET ...................................................................................................... 7
1 JOHDANTO ....................................................................................................................... 9
2 MARKKINASELVITYS BLUETOOTH LOW ENERGY TUOTTEISTA ............................................ 10
2.1
2.2
Bluetooth-teknologian toteutustavat ......................................................................................... 10
2.1.1
Moduulit ..................................................................................................................... 11
2.1.2
Application Specific Integrated Circuit ........................................................................... 11
2.1.3
Bluetooth-piirisarjat ..................................................................................................... 12
Tuotevertailu .......................................................................................................................... 12
2.2.1
Bluegiga BLE112 ......................................................................................................... 12
2.2.2
Blueradios BR-LE4.0-S2 ............................................................................................... 13
2.2.3
connectBlue OLP425 ................................................................................................... 14
2.2.4
Panasonic PAN1720 ..................................................................................................... 14
2.2.5
Texas Instruments CC2540 .......................................................................................... 15
3 VALITTU TUOTE .............................................................................................................. 17
4 BLUETOOTH LOW ENERGY .............................................................................................. 19
4.1
Bluetooth low energy protokollapinon rakenne .......................................................................... 20
4.1.1
Physical Layer (PHY) ................................................................................................... 22
4.1.2
Link Layer ................................................................................................................... 23
4.1.3
HCI ............................................................................................................................ 27
4.1.4
L2CAP ........................................................................................................................ 27
4.1.5
Security Manager ........................................................................................................ 28
4.1.6
Generic Acces Profile ................................................................................................... 28
4.1.7
ATT ............................................................................................................................ 29
4.1.8
Generic Attribute Profile............................................................................................... 30
5 TEXAS INSTRUMENTS CC2540 ......................................................................................... 33
5.1
CC2540 Ohjelmointiympäristö .................................................................................................. 33
5.1.1
Operating System Abstraction Layer (OSAl) .................................................................. 33
5.1.2
Hardware Abstraction Layer (HAL) ............................................................................... 36
5.1.3
BLE-protokollapino ...................................................................................................... 36
5.1.4
Profiilit........................................................................................................................ 36
6 (54)
5.1.5
Sovellus ...................................................................................................................... 37
6 TOTEUTUS...................................................................................................................... 38
6.1
Työkalut ................................................................................................................................. 41
6.2
Mittauskytkentä ...................................................................................................................... 44
6.3
Analogiasignaalin mittaus ja AD-muunnos ................................................................................ 45
6.4
Tiedon lähettäminen kehitysalustalla ........................................................................................ 46
6.5
Datan vastaanottaminen Mega Elektroniikan ohjelmistolla ......................................................... 47
7 POHDINTA ...................................................................................................................... 49
7 (54)
LYHENTEET JA KÄSITTEET
8051
Intelin kehittämä suoritinarkkitehtuuri.
ADC
(Analog-to-digical converter) Analogia-digitaalimuunnin. On mikrokontrollerin suorittama operaatio analogiasignaalin muuntaminen digitaaliseen muotoon.
ASIC
Application Specific Integrated Circuit. Sovelluskohtainen mikropiiri, joka on suunniteltu tietyn valmistajan vaatimuksien mukaan.
Bluetooth
Langattomaan 2,4GHz-aallonpituudella tapahtuvaan tiedonsiirtoon kehitetty avoin
standardi, jota ylläpitää Bluetooth SIG (Special Interest Group)
BLE
Bluetooth Low Energy, kts.Single mode.
BOM
(Bill of material) Osaluettelo, listaus kaikista materiaaleista lopputuotteen rakennusta
varten.
CC2540
Texas Instrumentsin kehittämä Bluetooth low energy-SoC.
Classic Bluetooth
Käytetään usein kuvaamaan Bluetooth-standardeja aina 2.1+EDR asti.
Debug
Menetelmä, jolla pyritään löytymään mahdolliset virheet ohjelmakoodista
Dual-mode
Bluetooth 4.0-standardin mukaisen matalan virrankulutuksen sekä nopean 3.0 HSyhteyden mahdollistava piirisarja. Yhteensopiva kaikkien Bluetooth-protokollien kanssa.
EKG (ECG)
Elektrokardiogrammi, arkikielessä sydänfilmi.
Flash
Haihtumaton puolijohdemuistityyppi, tänne ohjelmoidaan mikropiirille tuleva ohjelmakoodi.
GPIO
General Purpose Input/Output. Mikropiirin liityntänasta, joka voidaan ohjelmallisesti
ohjelmoida joko sisään- tai ulostuloksi.
HS
Bluetooth 3.0-standardin nopeatoiminen yhteysmuoto, joka tarjoaa Classic Bluetoothin ominaisuudet sekä mahdollisuuksien mukaan käyttää hyväkseen mahdollisia
WLAN-tukiasemia suurien nopeuksien saavuttamiseen.
Kehitysympäristö
Tarkoitetaan ohjelmointityökaluja, joilla ohjelmakoodi tuotetaan mikrokontrollerille.
Mikropiiri
Puolijohdekomponentti, johon on integroitu suuri määrä niin passiivisia kuin aktiivisia
elektroniikan komponentteja.
MCU
Microcontroller Unit, sulautetun elektroniikan suoritinyksikkö.
Mega Elektroniikka
Kuopiolainen biosignaalien mittaamiseen käytettäviä laitteistoja suunnitteleva ja tuottava yritys
Moduuli
Tässä tapauksessa useista eri osista esim. mikropiireistä, elektroniikan komponenteista ja piirilevystä koostuva valmis kokonaisuus.
Suoritin
Ohjelmakoodia suorittava sekä laitteistoa ohjaava yksikkö.
Protokolla
Standardi, joka määrittelee tässä tapauksessa langattoman yhteyden toimintaperiaatteen laitteistovaatimuksineen.
Prototyyppi
Ensimmäinen versio tuotekehityksen varsinaisesta tuotteesta.
RAM
Puolijohdemuistityyppi, jonka sisältö tyhjenee virran katkaisun yhteydessä.
8 (54)
ROM
Lukumuisti, jonne tallennettu tieto pysyy siellä ja yleensä sitä ei voi muokata käytön
aikana.
RX
Receive, vastaanottotapahtumaa kuvaava lyhenne.
Sigma-Delta
AD-muuntimen käyttämä menetelmä analogia signaalin muuntamiseen digitaaliseksi.
Tämä menetelmä sopii hyvin signaaleille, jotka muuttuvat nopeasti niin taajuus- kuin
jännitetasossa.
Single mode
Bluetooth 4.0-spesifikaation matalaan virrankulutukseen tähtäävä protokolla, joka
toimii murto-osalla classic Bluetoothin vaatimasta virrasta. Ei ole yhteensopiva vanhempien protokollien kanssa.
SoC
(System-on-Chip) Elektroniikassa käytetty termi kuvaamaan mikropiiriä, joka sisältää
runsaasti oheiselektroniikkaa ja puolijohdekomponentteja varsinaisen kohdepiirin lisäksi.
TI
Texas Instruments, johtava puolijohdekomponentteja suunnitteleva ja valmistava
yritys.
TX
Transmit, lähetystapahtumaa kuvaava lyhenne.
WiFi
Langaton tiedonsiirtoteknologia, tunnetaan paremmin nimellä WLAN.
9 (54)
1
JOHDANTO
Aiheen Bluetooth low energy -pohjaiselle jatkuvalle EKG-datan mittausjärjestelmän selvitys- sekä
prototyypin rakennustyölle sain paikalliselta Mega Elektroniikka yritykseltä. Mega Elektroniikka valmistaa biosignaalien mittaamiseen käytettäviä laitteistoja ja useissa heidän tuotteissa hyödynnetään
Bluetooth-moduuleita anturin ja päätelaitteen väliseen tiedonsiirtoon. Tämän hetkiset laitteet pohjautuvat tällä hetkellä jo vanhempiin Bluetooth protokolliin ja näin ollen tarve selvitystyölle alkoi olla
paikallaan.
Bluetooth-standardi on päivittynyt melkoisesti viime vuosina ja uusimman 4.0 spesifikaation sekä
sen mukana tulleen Bluetooth low energy protokollan myötä se tarjoaa murto-osaan pudonneen virrankulutuksen edeltäviin protokolliin verrattuna. Näin ollen se soveltuu erittäin hyvin Mega Elektroniikan sensorituotteisiin, joiden toimintaa osittain rajoittaa rajallinen akkukapasiteetti ja laitteiston
virrankulutus sekä asiakaskunnalta tulleet kyselyt BLE-tekniikkaa hyödyntävistä laitteista.
Selvitystyön tarkoituksena on kartoittaa markkinoilta sellaiset Bluetooth-moduulit ja mikropiirit, jotka
on toteutettu SoC-tekniikalla eli ne pitävät sisällään tarpeellisen oheiselektroniikan BLE-osion lisäksi
toimivan laitteiston rakentamista varten hyvin pienillä kustannuksilla. Tämmöiset Bluetooth-moduulit
ja SoC-mikropiirit tarjoavat myös laajan liitettävyyden ja niihin voidaan liittää monenlaisia antureita
sekä muuta oheiselektroniikkaa käyttötarkoituksesta riippuen. Selvitystyössä tulee myös käydä ilmi
vertailtavien laitteistojen ominaisuudet ohjelmistoympäristöineen, että niistä voidaan tehdä lopullinen valinta viimeisessä vaiheessa tehtävää prototyypin ohjelmointia ja rakennusta varten.
10 (54)
2
MARKKINASELVITYS BLUETOOTH LOW ENERGY TUOTTEISTA
Selvitystyössä tutkin niin puolijohdekomponentti- kuin Bluetooth-valmistajien kotisivuja selvittääkseni tämän hetkisen tilanteen markkinoilla olevista Bluetooth-moduuleista sekä mikropiireistä. Tutkin
myös huomattavan määrän erilaisia artikkeleita ja uutisotsikoita elektroniikka-alan julkaisuista mahdollisesti lähiaikoina markkinoille tulevien tuotteiden varalta.
Vaatimuksena vertailuun tuleville moduuleille ja mikropiireille on niiden valmistustapa eli niiden täytyy olla toteutettu SoC-tekniikalla (System-on-Chip). SoC-tekniikka tarkoittaa, että ne sisältävät itsessään jo kaiken olennaisen toimivan laitteiston rakentamiseksi huomattavasti vähemmällä oheiselektroniikan määrällä. Tämä mahdollistaa alhaisemmat tuotanto- ja suunnittelukustannukset. Edellisen vaatimuksen lisäksi niiden täytyy olla toteutettu uusimman Bluetooth-spesifikaation low energytekniikalla.
Lopulliseen selvitykseen tulee korkeintaan 5 parhaiten soveltuvaa moduulia tai mikropiiriä, joiden
olennaisimmista ominaisuuksista tehdään listaus mm. seuraavista asioista.

Kehitysympäristö

Ohjelmointikapasiteetti
o
Mikrokontrolleri
o
Muisti

Tekniset ominaisuudet

Oheiselektroniikan liitettävyys ja käytettävyys.
Näiden perusteella yritys valitsee seuraavan vaiheeseen parhaiten soveltuvan tuotteen, josta tilataan
tähän tarkoitukseen parhaiten soveltuva kehitysalusta. Kehitysalusta ohjelmoidaan mittaamaan jatkuvaa EKG-signaalia, tekemään sille AD-muunnos ja lähettämään muunnettu data BLE-yhteyden yli
päätelaitteelle.
2.1
Bluetooth-teknologian toteutustavat
Bluetooth teknologian sisällyttäminen lopputuotteeseen voidaan käytännössä toteuttaa kolmella eri
tavalla ja ne ovat moduuli (Module), piirisarja (Chip sets) sekä sovelluskohtainen mikropiiri (ASIC).
Tässä vertailussa ASIC-tekniikan tilalla keskitytään System-on-Chip (SoC) vaihtoehtoon, koska ASICmenetelmällä tuotetut mikropiirit ovat yleensä suunnattu jonkun tietyn valmistajan tarpeisiin ja näin
ollen soveltuvat huonosti muiden tuotteisiin mikäli niitä on ylipäätään saatavilla. SoC-menetelmä on
vastaavanlainen tuotantotapa, paitsi sen suunnittelun lähtökohtana on laajan asiakaskunnan tarpeiden täyttäminen. (EE Times-Asia, 2002)
11 (54)
Bluetooth-teknologian käyttöönoton menetelmiä ja riskejä on vertailtu yrityksen näkökulmasta taulukossa 1, josta käy ilmi erilaisten teknologioiden hintojen, riskien, monimutkaisuuden, kehitysajan
ja lopputuotteen koon vertailua keskenään.
TAULUKKO 1. Erilaisten Bluetooth-teknologioiden käyttöönotto vertailua yrityksen näkökulmasta (EE
Times-Asia, 2002)
Bluetooth-teknologian toteutustapojen vertailu
Hinta
Riski
Monimutkaisuus
Bluetooth Moduuli
Korkea
Matala Matala
Piirisarja
Keskitaso Matala Keskitaso
ASIC
(a)
(b)
Korkea
Kehitysaika
Erittäin nopea
Nopea
(c)
Kokoluokka
Erittäin suuri
Keskitaso
Erittäin pieni
(a)=Korkea yrityksen sisäisesti kehitettynä, keskitasoa/matala mikäli käytetään lisensoituja valmiita piirejä. Pitkällä
aikavälillä kustannukset voi olla alhaisimmat kaikista kolmesta.
(b) Korkea yrityksen sisäisesti kehitettynä, keskitasoa mikäli käytetään lisensoituja valmiita piirejä.
(c) Hidas yrityksen sisäisesti kehitettynä, nopea kun käytetään lisensoituja valmiita piirejä.
2.1.1 Moduulit
Bluetooth-moduulit ovat yleensä helpoin ratkaisu lisätä omaan tuotteeseen langattomuus tiedonsiirtoa varten, mutta usein myös erittäin kallis vaihtoehto lopputuotteen materiaalikustannuksiin nähden. Tämä seikka on myös osaltaan mukana tämän selvitystyön aloituksessa, koska yrityksen näkökulmasta Mega Elektroniikan käyttämät valmiit moduulit ovat kalliita ja lopulta heikosti räätälöitävissä asiakkaiden muuttuvien tarpeiden mukaan. Tämä johtuu siitä, että moduulien valmistajat pohjaavat oman tuotteensa johonkin tiettyyn mikropiiriin ja he ovat lisänneet siihen tarpeelliseksi näkemiään ominaisuuksia asiakaskunnan ja markkinoiden tarpeen mukaan. Näiden ominaisuuksien ja toimintojen lisääminen rajoittaa yleensä mikropiirin sovellusaluetta (Application layer), joka sijaitsee
Flash-muistissa.
2.1.2 Application Specific Integrated Circuit
ASIC-tuotantotekniikan alaisuuteen kuuluvalla SoC-tekniikalla valmistetut mikropiirit ovat toinen
vaihtoehto ja näistä selvitystyössä olevista vaihtoehdoista se halvin. Tällä valmistustavalla tuotettu
mikropiiri voidaan ostaa suoraan valmistajalta, eikä siinä ole välikäsiä aiheuttamassa lisäkustannuksia. SoC-tekniikkaan pohjautuvan piirin käyttöönotto nostaa tuotteen kehityksen aloituskustannuksia
ja käyttöönottoaikaa huomattavasti yrityksen omasta suunnittelu- ja kehitystyöstä johtuen. Tämä
tekniikka tosin mahdollistaa sen, että yritys voi mikropiiriä hyväksikäyttäen räätälöidä kaikki ominaisuudet heidän asiakaskunnan tarpeiden mukaan. Mega Elektroniikalla on jo entuudestaan kokemusta elektroniikkasuunnittelusta vuosikymmenten verran, joten tämä lähestymistapa ei ole ongelma.
12 (54)
2.1.3 Bluetooth-piirisarjat
Kolmas tapa ottaa käyttöön Bluetooth-ominaisuus on lisätä tuotteeseen Bluetooth-piirisarja, joka oli
ensimmäinen yleensä useisiin mikropiireihin pohjautuva tuotantosovellus tälle teknologialle. Tällä
menetelmällä pyrittiinkin vain lisäämään nopeasti omaan tuotteeseen Bluetooth-ominaisuus, joten
sitä käyttivät pääasiassa suuret tietokonevalmistajat. Tämä lähestymistapa Bluetooth-ominaisuuden
lisäämiselle omaan tuotteeseen alkaa kuitenkin jo nykyään olla vähentymään päin sen joustamattomuuden takia. Näin ollen tähän teknologiaan pohjautuvia tuotteita ei tulla ottamaan lopulliseen vertailuun.
2.2
Tuotevertailu
Vertailuun otettiin tuotteita viisi kappaletta viideltä eri valmistajalta. Tuotteista neljä on ns. Bluetooth-moduuleita ja yksi on SoC-tekniikalla toteutettu mikropiiri, johonka pohjautuen kaikki vertailuun otetut moduulit on toteutettu.
Tuotevertailua tehdessä sen alkuvaiheilla kävi ilmi, että hyvin monet valmistajat ovat rakentaneet
oman tuotteensa Texas Instrumentsin kehittämän CC2540-mikropiirin ympärille. Monet Bluetoothmoduuli valmistajat eivät tätä välttämättä suoraan ilmoittaneet ja tarkempien tuotetietojen saaminen vaati näissä tapauksissa yleensä rekisteröitymisen heidän sivuilleen, että pääsi käsiksi tarkempiin tuotetietoihin.
2.2.1 Bluegiga BLE112
Bluegigan BLE112-moduuli (kuva 1) on rakennettu CC2540-mikropiirin pohjautuen ja he ovat luoneet sen päälle oman tuotteen. Pelkän tuotteistamisen lisäksi Bluegiga on luonut heidän tuotteilleen
oman BGScript-ohjelmointikielen, joka mahdollistaa nopean ohjelmistojen tekemisen kielen helppouden vuoksi. BGScript-ohjelmointikielen etuja on myös riippumattomuus kehitysympäristöistä eli ohjelma voidaan kehittää periaatteessa vaikka tekstieditorilla, joka käännetään Bluegigan omalla kääntäjällä. BGScript-ohjelmointikielen lisääminen mikropiirille puolittaa käytössä olevan Flash-muistin
puoleen näin ollen pienentäen siinä olevaa sovellusaluetta. (Bluegiga Technologies, 2012)
13 (54)
KUVA 1. Bluegigan BLE112 Bluetooth-moduuli (Bluegiga Technologies, 2012)
2.2.2 Blueradios BR-LE4.0-S2
BlueRadios BR-LE4.0-S2-moduuli (kuva 2) pohjautuu CC2540-mikropiiriin ja he ovat luoneet oman
ohjelmointikielen pienentäen käyttöön jäävää Flash- ja RAM-muistia merkittävästi. BlueRadios:n ohjelmointikieli mahdollistaa helpon tuotteen käyttöönoton. Sen käyttäminen edellyttää kuitenkin IAR
Embedded Workbenchin hankkimista, mikäli tuotteelle aikoo tehdä omia sovelluksia. (BlueRadios
Inc, 2012)
KUVA 2. BlueRadios BR-LE4.0-S2-moduuli (BlueRadios Inc, 2012)
14 (54)
2.2.3 connectBlue OLP425
connectBluen OLP425-moduuli (kuva 3) pohjautuu CC2540-mikropiiriin, mutta he eivät ole luoneet
omaa ohjelmointikieltä moduulia varten, joten sovelluksia ohjelmoitaessa joudutaan käyttämään IAR
Embedded Workbench:iä. connectBlue on keskittynyt tarjoamaan maailmanlaajuiset standardit täyttävän lopputuotteen jättäen asiakkaalle vapaat kädet moduulin hyödyntämiseen ohjelmoinnin näkökulmasta. (connectBlue Inc, 2012)
KUVA 3. connectBlue OLP425-moduuli (connectBlue Inc, 2012)
2.2.4 Panasonic PAN1720
Panasonicin tarjoama PAN1720-moduuli (kuva 4) pohjautuu CC2540-mikropiiriin ja on enemmänkin
suunnattu suuria kappalemääriä vaativille asiakkaille. PAN1720-moduulin mukana tulevan BLEprotokollapinon voi valita ja ne ovat Texas Instrumentsin tai BlueRadios™ kehittelemät. Moduuli tarjoaa hyvin pitkälti samat ominaisuudet kuin muutkin vertailussa olleet moduulit ja sen ohjelmointi
tapahtuu IAR Embedded Workbench:llä. (Panasonic Corporation, 2012)
KUVA 4. PAN1720-moduuli (Panasonic Corporation, 2012)
15 (54)
2.2.5 Texas Instruments CC2540
Texas Instrumentin kehittämä CC2540-mikropiiri (kuva 5) on vertailun mielenkiintoisin tuote, koska
kaikki edeltävät moduulit on rakennettu sen ympärille. CC2540-mikropiiri tarjoaa myös vertailun laajimmat ominaisuudet, kun siinä ei ole laitevalmistajien omia ohjelmistorajapintoja ja laiteliitäntöjä
varaamassa mikropiirin tarjoamia ominaisuuksia. (Texas Instuments, 2013)
KUVA 5. CC2540-mikropiiri (Texas Instuments, 2013)
Kaikki tuotteet pohjautuivat samaan mikrokontrolleriin johtuen siitä, että ne ovat rakennettu vertailuun otetun CC2540-mikropiirin ympärille. Tästä johtuen kaikkien tuotteiden lähtöominaisuudet ovat
samat, mutta niissä on pieniä eroja johtuen valmistajien omista ratkaisuista. Mm. Bluegigan ja Blueradios yritysten valmistamien Bluetooth-moduulien muita pienempi Flash- ja RAM-muistiosiot johtuvat mikropiirille sisälletyistä heidän omista ohjelmointikielistä.
Edellä mainittujen tuotteiden vertailua olennaisten ominaisuuksien osalta tarkemmin taulukossa 2.
TAULUKKO 2. Markkinaselvityksen tuotteiden ominaisuuksien vertailu
Tyyppi
MCU
Flash
RAM
ADC
GPIO
I2C
PWM
SPI
UART
USB
Ohjelmointi
Bluegiga
BLE112
8051
128kB
8kB
7x12bit
21 kpl
Ohjelmistopohj.
4 kanavaa
kyllä
kyllä
kyllä
Bluegigan oma
Blueradios
BR-LE4.0-S2A
8051
130kB
2,5kB
8x12bit
21 kpl
Ohjelmistopohj.
kyllä
kyllä
kyllä
IAR Embebbed
ConnectBlue
OLP425
8051
128kB
8kB
4x12Bit
18 kpl
Ohjelmistopohj.
kyllä
kyllä
ei
IAR Embebbed
Panasonic
PAN1720
8051
256kB
8kB
8x12bit
19 kpl
Ohjelmistopohj.
kyllä
kyllä
kyllä
IAR Embebbed
TI
CC2540
8051
256kB
8kB
8x12bit
21 kpl
Ohjelmistopohj.
4 kanavaa
kyllä
kyllä
kyllä
IAR Embebbed
16 (54)
Vertailuun otetut Bluetooth-moduulit ovat mitoiltaan keskenään samassa kokoluokassa, joista tarkemmin taulukossa 3. CC2540-mikropiiri erottuu joukosta edukseen koon puolesta, mutta sen mitat
ovat pelkän mikropiirin osalta. Tuotteiden tiedot ovat otettu kunkin tuotteen osalta sen valmistajan
kotisivuilta saatavilla olevista datalehdestä.
TAULUKKO 3. Vertailuun otettujen tuotteiden fyysiset mitat, jotka ovat ilmoitettu millimetreissä
Tyyppi
Mitat
Pituus (mm)
Leveys (mm)
Korkeus (mm)
Bluegiga
BLE112
Blueradios
BR-LE4.0-S2A
ConnectBlue
OLP425
Panasonic
PAN1720
TI
CC2540
18
12
2,3
12,6
11,8
1,9
22
15
3
14,5
8,2
3
6,15
6,15
1
Tuotteiden virrankulutusarvot noudattivat hyvin pitkälti samoja linjoja johtuen tuotteiden ytimenä olleesta CC2540-mikropiiristä, joka toimi tietynlaisena referenssipisteenä moduulien valmistajille. Panasonicin moduulin vastaanotto- ja lähetystehot poikkesivat muista tuotteista huomattavasti ollen
miltei kaksinkertaiset. connectBluen valmistaman moduulin osalta ei ollut tarkempia tietoja saatavilla. Taulukossa 4 olevat arvot ovat valmistajien ilmoittamia arvoja. Taulukossa olevat Power Modet
ovat erilaisia virransäästötiloja ja niiden selitteet ovat:

Power Mode 1: Laite on lepotilassa ja herää 3µs kuluessa

Power Mode 2: Laite on lepotilassa ja herää ajastetusti

Power Mode 3: Laite on lepotilassa ja herää ulkoisiin keskeytyskäskyihin

RX: Receive, yksittäisen lähetystapahtuman virrankulutus

TX: Transmit, vastaanottotapahtuman virrankulutus.
TAULUKKO 4. Vertailutuotteiden virrankulutusarvoja
Bluegiga
BLE112
Power Mode 1 235µA
Power Mode 2 0,9µA
Power Mode 3 0,4µA
19,6mA
RX
24mA
TX(-6dBm)
Tyyppi
Blueradios
BR-LE4.0-S2A
235µA
0,9µA
0,4µA
19,6mA
23,8mA
ConnectBlue
OLP425
-
Panasonic
PAN1720
0,5µA
37mA
40mA
TI
CC2540
235µA
0,9µA
0,4µA
19,6mA
24mA
17 (54)
3
VALITTU TUOTE
Vertailuun otetuista tuotteista päädyttiin valitsemaan Texas Instrumentsin valmistama CC2540, johonka vertailun muut Bluetooth-moduulit pohjautuivat. CC2540-mikropiiriin valitsemiseen johtavia
syitä oli useita, jotka olivat seuraavanlaiset:

CC2540-mikropiiri tarjoaa laajimmat ominaisuudet ja liitännät

Sen ominaisuuksia ei rajaa muiden valmistajien omat kehitysympäristöt ja oheislaitekytkennät
Kehitysympäristönä oleva IAR Embebbed Workbench on jo Megaelektroniikalla ennestään
käytössä
Mikropiirin käyttöönotolla päästään eroon moduulirakenteista, joka mahdollistaa pienemmän
lopputuotteen koon
Yksittäisellä SoC-mikropiirillä päästään alhaisempiin tuotantokustannuksiin moduuleihin verrattuna, tosin aloituskustannukset ovat korkeammat johtuen suunnittelu ja tuotekehityksestä sekä kehitysympäristön lisenssihankinnoista.



Texas Instrumentsin kehittämä CC2540 on kustannustehokas, alhaisen virrankulutuksen omaava
SoC-mikropiiri BLE-sovelluksiin. Se mahdollistaa niin isäntä- kuin orjalaitteiden rakentamisen alhaisilla BOM-kustannuksilla. CC2540 tarjoaa lähetinvastaanottimen, parannellun version 8051 mikrokontrollerista, ISP ohjelmoitavan Flash-muistin sekä laajat oheislaitekytkentöjen mahdollisuudet. CC2540
on saatavilla 128kB ja 256kB Flash-muistilla, joista jälkimmäinen mahdollistaa laajempien sovellusten kehittämisen mikropiirille. Näiden ominaisuuksien lisäksi mikropiirillä on Texas Instrumentsin
luoma Bluetooth low energy protokollapino. (Texas Instuments, 2013)
18 (54)
TAULUKKO 5. TI 2540-mikropiirin ominaisuudet (Texas Instuments, 2013)
Bluetooth versio
BLE protokollat
GAP
Yleisominaisuudet
4.0, BLE, single mode
ATT/GATT
SMP
L2CAP
Standardit
Mikrokontrolleri
Ohjelmamuistia
Käyttömuisti
Kehitysympäristö
Oheislaitteet
ADC-muuntimet
Ajastimet
Input/Output
Battery monitor
Lämpötila-anturi
DMA
Radio-ominaisuudet
Radiotaajuus
Siirtonopeus
Kanavien lukumäärä
Virrankulutus
Lähetys
Vastaanotto
Power Mode 1
Power Mode 2
Power Mode 3
Käyttöjännite
Central, Peripheral, Observer,
Broadcaster, Combination roles
Client+Server
AES-128 bittinen yhteyden salaus
Bluetooth low energy-versio
ETSI EN 300 328 (EU)
ETSI EN 300 440 Class 2 (EU)
FCC CFR47 part 15 (US)
ARIB STD-T66 (Japan)
8051
256kB Flash-muistia
8kB RAM
IAR Embedded Workbench for 8051
8x 12bit
1x16bit, 2x8bit
21 kpl, 19x4mA, 2x20mA
Kyllä
Kyllä
5-kanavainen
2402-2480MHz, 2MHz askelin
1 Mbps, Gaussian FSK
40, 37 datalle, 3 mainostukselle
24mA
19,6mA
235µA
0,9µA
0,4µA
2V-3,6V
19 (54)
4
BLUETOOTH LOW ENERGY
Teknologian kehittämisen aloitti matkapuhelinvalmistaja Nokia vuonna 2001 nimellä BTLite, koska
sen aikaiset langattomat tekniikat eivät olleet kovin hyvin mobiililaitteisiin soveltuvia. Lopullinen teknologia julkaistiin vuonna 2006 nimellä Wibree, jota oli suunnittelemassa useiden yritysten foorumi.
Samoihin aikoihin alkoivat neuvottelut Wibree teknologian integroimisesta Bluetooth standardiin.
Vuonna 2007 teknologia julkaistiin Bluetooth Special Interest Groupin alaisuudessa Bluetooth low
energy-nimellä. (Nokia Developer Portal, 2012)
Bluetooth low energy (BLE) on vuonna 2010 Bluetooth Special Interest Group (SIG) esittelemä uusin
Bluetooth-teknologia standardi. Ensimmäiset tätä teknologiaa hyödyntävistä tuotteista saapui markkinoille vuoden 2011 aikana. Bluetooth low energyn kehittämisen tarkoituksena oli luoda uusi yhteysprotokolla, joka mahdollistaa Bluetooth-yhteyden muodostamisen ja tiedonsiirron murto-osalla
aikaisempien Bluetooth-laitteiden virrankulutuksesta. Tästä syystä BLE on suunnattu pääasiassa lyhyenkantaman laitteiden ohjaus- ja valvontasovelluksille, kuten esimerkiksi tämä minun opinnäytetyöni aihe.
On myös tärkeää tietää, että vaikka BLE esiteltiin Bluetooth 4.0-spesifikaation myötä, niin se on sen
muista osa-alueista ja edeltävistä Bluetooth-teknologioista selvästi toteutukseltaan erottuva teknologia ja tiedonsiirtoprotokolla ja näin ollen ei ole yhteensopiva vanhempien teknologioiden kanssa. BLE
voidaan toteuttaa myös ns. dual-mode tekniikalla, joka sisältää sekä single-moden eli low energy tekniikan ja vanhemman Classic Bluetooth-tekniikan mahdollistaen täyden yhteensopivuuden. Tämmöisen ratkaisun myötä käytännössä menetetään Bluetooth low energyn tarjoama vähäinen virrankulutus, joten dual mode-tekniikkaa käytetäänkin yleensä hyväksi isäntälaitteessa kun orjalaite on
toteutettu low energy-teknologialla. (Texas Instuments, 2012)
Bluetooth low energy on myös säilyttänyt Classic Bluetoothin edut, joita ovat mm.( Bluetooth Special
Interest Group, 2013):

Toimintavarmuus

Yhteentoimivat laitteistot valmistajasta riippumatta

Maailmanlaajuinen

Rojaltivapaa

Eritäin pieni koko

Tietoturva.
Näiden lisäksi teknologian käyttöönottokustannukset ovat alhaisemmat sekä lopullisen laitteiston virrankulutus on huomattavasti alhaisempi. Alhainen virrankulutus on saavutettu lyhyillä lähetyspaketeilla, joka johtaa alhaisempaan TX-tapahtuman virran huippuarvoon. Lyhyet lähetyspaketit taasen
mahdollistavat ajallisesti lyhyemmän vastaanottoajan (RX).
20 (54)
Käytössä olevien kanavia on vähennetty, jolla on mahdollistettu nopeammat laitteiden löytämis- sekä yhteydenmuodostamisajat. Mahdollisia yhteystiloja on karsittu huomattavasti ja tästä tarkemmin
jäljempänä kohdassa 4.1.2 Link Layer sekä sen yhteydessä kuvassa 7. Yksinkertaistetumman yhteysarkkitehtuurin lisäksi BLE käyttää vain yhtä protokollaa, joka mahdollistaa yksinkertaisemmat ja
kevyemmät sovellukset.
Eräs osatekijä vähävirtaisuudelle on myös muistinkäyttö, joka kasvattaa laitteen vuotovirtoja täten
lisäten virrankulutusta. Edellä mainitut pienet tiedonsiirtopaketit ja yksinkertainen protokolla vaativat
vähemmän puskurointia. Nämä yhdistettynä yksinkertaistettuun yhteysarkkitehtuuriin johtavat pienempään muistin tarpeeseen, joka vähentää mahdollisia vuotovirtoja.
Näiden muutoksien ansiosta on pystytty luomaan uusi vähävirtainen versio aikaisemmasta Bluetoothista, jolla pystytään luomaan esim. lämpötilanmittaus anturisovelluksia joiden käyttöaika saattaa olla miltei vuoden luokkaa kun käytössä on tavallinen 200-230mAh nappiparisto.
4.1
Bluetooth low energy protokollapinon rakenne
Kuten aikaisemmissakin Bluetooth-teknologioissa niin myös BLE-protokollapino (kuva 6) koostuu
kahdesta ydinkomponentista, jotka ovat ohjain- (Controller) sekä isäntämoduuli (Host). Tällainen
moduulien erottelu on saanut alkunsa jo aikaisemmissa Bluetooth-protokollissa käytännön syistä.
BLE kehityksen myötä protokollapinon monimutkaisuutta ja kokoa karsittiin, jotta saatiin aikaiseksi
vähäinen virrankulutus. Tätä on havainnollistettu kuvassa 7, josta huomaa kuinka merkittävästi protokollapinon erilaisia yhteystiloja on jätetty pois. Tämän arkkitehtuurin muutoksen ansioista saatiin
myös BLE-yhteyksien vasteajat huomattavasti pienemmiksi.
Ohjain koostuu käytännössä kahdesta tasosta, jotka ovat Physical Layer ja Link Layer ja nämä olivat
aikaisemmin yleensä tarjolla eri mikropiireillä. (Texas Instuments, 2013)
21 (54)
KUVA 6. CC2540-mikropiirin sisältämä BLE-protokollapino (Texas Instuments, 2013)
KUVA 7. BLE-protokollan (alla) ja varhaisemman BR/EDR-protokollan (yllä) erilaisten yhteystilojen
vertailu (Elke Mackensen, Matthias Lai, Thomas M. Wendt., 2012)
22 (54)
Isäntämoduuli sisältää kaiken ylemmän tason toiminnot, joihin kuuluu L2CAP, ATT, GATT, SMP sekä
GAP. Ylemmän tason isäntämoduulin ja alemman tason ohjainmoduulin välinen kommunikointi tapahtuu standardoidun Host Controller Interface:n (HCI) kautta. Protokollapinon päällimmäisenä on
itse Application Layer eli osio koostuu tuotteeseen ohjelmoitavasta ohjelmakoodista, jolla päästään
aina ohjelmakoodin tarvittaessa käsiksi alempien kerroksien toimintoihin aina HCI-väylään asti.
4.1.1 Physical Layer (PHY)
Yksinkertaistettuna Physical Layer on BLE:n radiolähetinvastaanotin, joka käyttää hyväkseen GFSKmodulaatiota. Physical Layer toimii lisensoimattomalla 2,4GHz ISM (Industrial, Scientific, Medical)
radiotaajuusalueella käsittäen 40 kanavaa 2MHz välein. BLE-teknologia käyttää kahdenlaisia radiokanavia ja ne ovat mainoskanavat (Advertising) ja datakanavat (Data) (kuva 8).
Mainoskanavia käytetään BLE-laitteiden etsimiseen, yhteydenmuodostusparametrien vaihtamiseen
sekä Broadcast-tyyppisen datan lähetykseen. Näitä kiinteitä kanavia on yhteensä kolme kappaletta
ja ne on sijoitettu taajuusalueelle siten, että ne ovat mahdollisimman vähän päällekkäin samalla taajuusalueella vaikuttavan WiFi:n kanssa (kuva 9).
Datakanavia on yhteensä 37 kappaletta ja niitä käytetään kaksisuuntaiseen sovellusdatan siirtoon
yhteydessä olevien laitteiden välillä. Datakanavat hyödyntävät Adaptive Frequency Hoppingmenetelmää kanavien vaihdossa välttyäkseen taajuusalueilta, joilla on ruuhkaa tai muuta häiriötä.
Jokaiselle näistä edellä mainituista kanavista on määrätty uniikki kanavaindeksi. Radiokanavien ominaisuuksiltaan BLE eroaa edeltävästä Classic Bluetoothista siten, että se viipyy pitempään aktiiviselle
kanavalla ja näin ollen sen toiminta ei ole ajallisesti niin hektistä kuin aikaisempien Bluetoothprotokollien. (Bluetooth Special Interest Group, 2010)
23 (54)
KUVA 8. BLE:n käytössä olevat kanavat. Vihreällä olevat kolme kanavaa ovat mainoskanavia ja loput
sinisellä olevat datakanavia. Taajuuden jälkeen oleva numeroarvo on taajuusalueen kanavaindeksi
(Digikey, 2011)
KUVA 9. Bluetooth low energy mainoskanavien sijoittelua suhteessa Wi-Fi-kanaviin nähden häiriöiden minimoimiseksi (Digikey, 2011)
4.1.2 Link Layer
Link Layer on yksinkertainen tilakone, jolla on kuvan 13 mukaiset tilat käytettävissä. Se muistuttaa
hyvin paljon aikaisempien Bluetooth-protokollien Link Manager:ia. Tilakone mahdollistaa vain yhden
aktiivisen tilan kerrallaan. Link Layerin tehtäviin kuuluu myös pakettien ja radion toiminnan ohjaus.
Tilakoneella on käytettävissä kahdenlaisia kanavia ja ovat (Bluetooth Special Interest Group, 2010):

Mainostuskanavat

Datakanavat.
24 (54)
Kyseiset kanavat mahdollistavat kaksi eri tiedonsiirron pakettimuotoa (Bluetooth Special Interest
Group, 2010):

Mainostuspaketit

Datapaketit.
KUVA 10. Mainostuspaketin rakenne (Texas Instuments, 2013)
KUVA 11. Datapaketin rakenne (Texas Instuments, 2013)
Yksinkertaistettu tilakone mahdollistaa kaksi eri verkkotopologiaa ja ne ovat point-to-point ja tähtiverkko (kuva 12).
25 (54)
KUVA 12. Esimerkki tilakoneen mahdollistamasta verkkotopologiasta (Texas Instuments, 2013)
KUVA 1. BLE-laitteen erilaiset yhteystilat (Bluetooth Special Interest Group, 2010)
26 (54)
Standby: Käynnistyessään laite aloittaa tästä tilasta ja pysyy siinä niin kauan kuin kunnes hostrajapinta määrää toisin. Tästä tilasta on mahdollista siirtyä Advertising, Initiating tai Scanning tilaan.
Tähän tilaan voidaan saapua myös kaikista muista tiloista. Tästä voidaankin jo päätellä, että tämä tila on koko BLE-teknologian ydin, vaikkakin passiivinen tila joka mahdollistaa laitteen alhaisen virrankulutuksen. Tässä tilassa laite ei lähetä eikä vastaanota dataa, eikä ole yhteydessä muihin laitteisiin.
(Bluetooth Special Interest Group, 2010)
Advertising: Mainostustilassa laite lähettää pääasiassa mainostuspaketteja ennaltamäärätyillä mainostuskanavilla ja se voi vastata saapuneisiin skannauspyyntöihin. Mainostuspaketit voi olla kohdennettu jollekin tietylle skannaavalle laitteelle tai lähettää välittämättä siitä kuka sitä vastaanottaa.
Mainostuspaketit voivat olla luonteeltaan myös joko semmoisia, jotka sallivat yhteydenmuodostamisen tai semmoisia jotka eivät salli yhteydenmuodostusta. Tällöin Mainostuspaketti sisältää dataalueen, jonka avulla välitetään dataa kuunteleville laitteille.
Tämä tila vaaditaan mikäli laite haluaa olla löydettävissä ja löytää muita laitteita sekä lähettää dataa
niille. Tästä tilasta voidaan siirtyä Standby-tilaan mikäli mainostus lopetetaan tai muodostaa yhteys
mikäli Initiating-tilassa oleva laite lähettää pyynnön. (Bluetooth Special Interest Group, 2010)
Scanning: Skannaavassa tilassa oleva laite kuuntelee laitteita, jotka lähettävät dataa mainostuskanavilla. Scanning-tilassa olevalla laitteella on kaksi alitilaa, jotka ovat:


Passiivinen: Tässä tilassa laite vain vastaanottaa mainostuspaketteja.
Aktiivinen: Laite lähettää pyyntöjä mainostaville laitteille lisätiedon hankkimiseksi.
Tähän tilaan voidaan tulla ainoastaan Standby-tilasta ja palata takaisin lopettamalla skannaus.
Initiating: Aloitetilassa oleva laite odottaa mainostuskanavalta tulevaa dataa tietyltä laitteelta seuraavaksi tapahtuvaa yhteyden muodostusta varten. Mikäli laitteet hyväksyvät toisensa, niin laite siirtyy Connection tilaan. (Bluetooth Special Interest Group, 2010)
Connection: Tilakoneen viimeinen tila on yhteystila, johonka voidaan tulla joko Aloitetilasta tai Mainostustilasta. Riippuen laitteen roolista yhteydenmuodostuksen aikana sille määräytyy yksi alitila, joita ovat Master ja Slave. Tämä tila on ainut, joka hyödyntää datakanavia laitteiden väliseen tiedonsiirtoon. (Bluetooth Special Interest Group, 2010)
Master eli isäntä alitilassa olevan laitteen täytyy lähettää säännöllisin väliajoin tietoa siihen yhteydessä oleviin orjalaitteisiin. Slave eli orjalaite taasen ei voi lähettää mitään ennen kuin isäntälaitteelta on saatu käsky lähetystä varten. Tästä eteenpäin datan lähetys tapahtuu vuoropohjaisesta aina
isäntälaitteen pyytäessä ja orjalaitteen vastatessa. Orjalaite voidaan myös ohjelmoida niin, että mikäli sillä ei ole mitään lähetettävää niin se sivuuttaa lähetyspyynnöt ja näinollen säästää virtaa.
27 (54)
Laitteiden välistä yhteyden muodostusta varten täytyy yhden laitteen olla Mainostustilassa ja sallia
saapuvia yhteyksiä sekä yhden laitteen Aloitetilassa. Aloitetila on ominaisuuksiltaan Mainostustilan
kaltainen, mutta sen funktio on muodostaa yhteys. Aloitetilassa oleva laite kuuntelee mainostuskanavia ja niiltä saapuvia paketteja ja niiden perusteella aloittaa tarvittaessa yhteyden muodostuksen mainostaneen laitteen kanssa. Yhteyden muodostettua laitteiden välille tulee mainostaneesta
laitteesta orjalaite (Slave) ja Aloitetilassa olleesta laitteesta isäntälaite (Master). Orjalaite voi olla yhteydessä vain yhteen isäntälaitteeseen kerrallaan kun taas isäntälaite voi olla yhteydessä useisiin orjalaitteisiin.
Tilakoneen tarkoituksena on määrittää se, että mitenkä laitteet löytävät ja kommunikoivat keskenään sekä erottaa lähetys, laitteiden löytäminen ja yhteydenmuodostaminen varsinaisesta lähetettävästä datasta. Tämä yhdessä vähentyneiden mainostuskanavien kanssa mahdollistaa pienemmän
virrankulutuksen yhteyden ylläpidossa. Tilakone ratkaisu vaatii myös sen, että mainostustila on erotettu mainostuspaketeista. Tilakoneella on kolme tilaa joissa voidaan lähettää ja vastaanottaa mainostuspaketteja, mutta ainoastaan yksi tila datapakettien lähettämiselle ja vastaanottamiselle.
4.1.3 HCI
Host/Controller Interface on kevyt rajapinta, jota BLE-protokollapino käyttää Host ja Controller väliseen kommunikointiin. Tämä voidaan toteuttaa joko ohjelmallisen rajapinnan avulla tai käyttäen hyväksi hardware-rajapintoja, kuten UART, SPI tai USB. [10]
4.1.4 L2CAP
Logical Link Control and Adaptation Protocol toimii kehysrakenteisena rajapintana ja sen tehtävä on
kanavoida ATT-, SMP-, Link Layer-kerroksilla kulkeva data Link Layerin ohjaussignaaleja mukaillen
muodostaen jatkuvan tietovanan kahden eri päätelaitteen välille. (Texas Instuments, 2013)
L2CAP hoitaa näiden kerroksien tiedonvälitystä parhaansa mukaan ilman datavirran kontrollointia ja
uudelleenlähetys mahdollisuutta, jotka ovat olemassa aikaisemmissa Bluetooth-protokollissa. Myöskään datan segmentointia tai uudelleenjärjestelyä ei ole käytettävissä. Yhteysparametrien päivitys
tapahtuu tämän rajapinnan kautta.
28 (54)
4.1.5 Security Manager
Security Manager protokolla huolehtii laitteiden todentamisesta ja niiden välisen viestinnän salauksesta tarvittaessa sekä niihin liittyvistä salausavaimien hallinnasta. (Texas Instuments, 2013)
Tiedon salaus tapahtuu AES-128 algoritmilla. Security Manager toimii yhteistyössä Generic Access
Profilen (GAP) kanssa laitteiden välisen suhteen ylläpidossa seuraavanlaisesti:



Paritus: Ensisijainen tehtävä laitteiden välisen yhteyden muodostuksen jälkeen. Tässä vaiheessa laitteet muodostavat ja vaihtavat keskenään short-term avaimet (STK), jotta vaihdettavan datan suojaus voidaan aloittaa.
Todennus: Varmennetaan, että viestitettävä laite on luotettava ja tällä estetään tiettyjä tietoturvariskejä.
Bonding: Pidempiaikainen todennuskeino; laitteiden väliset tiedot tallennetaan myöhemmin
tapahtuvaa yhteyden muodostusta varten. Tämän toimenpiteen aikana laitteet luovat toisilleen long-term avaimet (LTK), jotka myös vaihdetaan ja tallennetaan. Tämä mahdollistaa
nopean yhteyden salaamisen uudelleen yhdistettäessä.
4.1.6 Generic Acces Profile
Generic Access Profile määrittelee yleiset toimenpiteet yhteyden muodostamiseen liittyen, kuten
(Bluetooth Special Interest Group, 2010):





Laitteiden etsintä
Yhteyden luonti
Yhteyden ylläpito
Yhteyden katkaisu
Turvatoimenpiteiden aloitus, johon kuuluu:
o Paritus
o Todentaminen
o Bonding, eli pidempiaikainen paritus.
Monet GAP:n toiminnot vastaavat suoraan ohjainmoduulin Link Layer:n toimintoja. GAP:n toimintaroolit ovat seuraavat (Bluetooth Special Interest Group, 2010):




Broadcaster: Advertiser-tilassa oleva laite, johonka ei voida muodostaa yhteyttä.
Observer: Laite skannaa mainostusviestejä, muttei voi muodostaa yhteyttä.
Peripheral: Advertiser-tilassa oleva laite, johonka voidaan muodostaa yhteys ja näin tapahtuessa se toimii orjalaitteena.
Central: Skannaa mainostusviestejä ja muodostaa yhteyksiä niiden perusteella. Toimii isäntälaitteena ja voi olla yhteydessä yhteen tai useampaan orjalaitteeseen kerralla.
29 (54)
GAP mahdollistaa myös eri toimintaroolien yhdistelmiä, joita ovat (Bluetooth Special Interest Group,
2010):



Peripheral + Broadcaster: Laite toimii orjalaitteena, mutta samalla lähettää mainostusviestejä, joihinka ei voi vastata.
Peripheral + Observer: Laite toimii orjalaitteena, mutta samalla skannaa mainostusviestejä
ilman yhteydenmuodostus mahdollisuutta.
Central + Broadcaster: Laite skannaa mainostusviestejä ja muodostaa yhteyksiä toimien
isäntälaitteena sekä myös lähettää mainostusviestejä, joihin ei voi vastata.
GAP mahdollistaa laitteelle erilaisia näkyvyystiloja, joita ovat (Bluetooth Special Interest Group,
2010):



Non-discoverable: Laite ei lähetä mainostusviestejä.
Limited Discoverable Mode: Laite lähettää mainostusviestejä määritellyn ajan verran, jonka
jälkeen se palaa Standby-tilaan.
General Discoverable Mode: Laita lähettää mainostusviestejä jatkuvasti.
Peripheral roolissa oleva laite voi lähettää joko connectable tai non-connectable tyyppisiä mainostusviestejä ollessaan Discoverable-tilassa. Broadcaster roolissa oleva laite voi lähettää ainoastaan
non-connectable tyyppisiä mainostusviestejä ollessaan Discoverable-tilassa. GAP hallinnoi mitä dataa
lähetetään mainostusviesteissä sekä skannaukseen vastatessa.
4.1.7 ATT
ATT on uusi protokolla, joka esiteltiin Bluetooth 4.0-spesifikaation myötä ja se on suunniteltu low
energy-sovelluksia silmälläpitäen. Sen suunnittelun lähtökohtani oli, että tietoa siirrettäessä sitä siirretään vain silloin kun se on tarpeellista ja silloinkin siirretään vain tarpeellinen tieto eli mahdollisimman vähän ja nopeasti. Näiden lähtökohtien ansioista saatiin luotua kevyt ja vähän virtaa kuluttava tiedonsiirtoprotokolla.
Attribute protokollan ansiosta laite voi paljastaa dataa eli attribuutteja toiselle laitteelle. ATT:n näkökulmasta laite, joka paljastaa tietoja on server (palvelin) ja näitä tietoja lukeva laite on client (asiakas). Attribute protokollan server/client-määrittely ei ole tekemisissä Link Layer:n määrittämien laitteiden orja/isäntä-roolien kanssa. Näin ollen isäntälaite voi olla joko ATT-client tai ATT-server ja sama pätee orjalaitteeseen. Laite voi myös toimia molemmissa tiloissa yhtä aikaa. (Bluetooth Special
Interest Group, 2010)
30 (54)
Käsiteltävä data paljastetaan attribuutteina, jolla on seuraavanlaiset ominaisuudet:

Arvo, joka voi olla 0-512 tavua suuruudeltaan.

Arvo voi olla kiinteä tai vaihteleva pituudeltaan.
Attribuuteilla on seuraavanlaiset ominaisuudet:



Handle eli attribuutin sijainnin osoitttava 16-bittinen luku.
Type/UUID, joka määrittelee attribuutin tyypin eli mitä luettava/kirjoitettava data on. Nämä
arvot on määritelty Bluetooth-spesifikaatiossa. Tyypin suuruus voi olla joko 16- tai 128bittiä.
Käyttöoikeudet eli voidaanko ATT:n arvoa esim. lukea tai kirjoittaa ja minkälaiset käyttöoikeudet sen käyttämiseen vaaditaan.
KUVA 14. Esimerkki Heart Rate Sensor-tyyppisen Bluetooth low energy laitteen attribuuteista ja niiden arvoista. Mnenomic sarake kääntää Type-kentän heksadesimaali-arvon ymmärrettävään muotoon
Attribuuttien käyttö tapahtuu seuraavanlaisesti:


Palvelinlaite tallentaa dataa, jota asiakaslaite käyttää
Palvelin paljastaa tämän datan attribuuttien avulla, joita asiakas voi joko pyytää tai kirjoittaa
lisää.
Attribuuttiprotokollan mahdollistamat menetelmät attribuuttien käytölle ovat seuraavanlaiset:

Client to server: Luku, kirjoitus

Server to Client: Ilmoitus (Notification), Merkki (Indication).
Attribuuteilla tapahtuva viestintä toimii vuoropohjaisesti:

Pyyntö (Request) -> Vastaus (Response)

Komento (Command)

Ilmoitus (Notification)

Merkki (Indication).
Notification eli ilmoitusoperaation avulla lähetetään dataa kun se on muuttunut esim. lämpötila-arvo.
Näin ollen ei tarvita jatkuvaa yhteyttä laitteiden välillä. Indicate eli merkinanto-operaation avulla palvelin lähettää dataa kun se muuttuu ja asiakaslaite vastaa, että on saanut datan vastaan.
4.1.8 Generic Attribute Profile
31 (54)
Generic Attribute Profile esiteltiin myös uutena ominaisuutena Bluetooth 4.0-spesifikaation myötä.
Sen tehtävä on määritellä tietuerakenne, jota käytetään ATT-protokollan avulla tiedonsiirtoon yhteydessä olevien laitteiden välillä. GATT-profiilit on pyritty pitämään mahdollisimman yksinkertaisina rakenteiltaan, jotta vältyttäisiin turhalta tietoliikenteeltä laitteiden välillä. Tällä vähennetään niin tehonkulutusta kuin myös pyritään pitämään laitteen rajalliset resurssit käytettävissä.
Generic Attribute Profile tarjoaa 11 erilaista toimintoa erilaisten menetelmien ja niiden alimenetelmien avulla, joita ovat

Server Configuration
o


Primary Service Discovery
o
Discover All Primary Services
o
Discover Primary Services by Service UUID
Relationship Discovery
o




o
Discover All Characteristics of a Service
o
Discover Characteristics by Service UUID
Characteristic Descriptor Discovery
o
Read Characteristic Value
o
Read Using Characteristic UUID
o
Read Long Characteristic Values
o
Read Multiple Characteristic Values
Writing a Characteristic Value
o
Write Without Response
o
Signed Write Without Response
o
Write Characteristic Value
o
Write Long Characteristic Values
o
Reliable Writes
Notification of a Characteristic Value

Notification
Indication of a Characteristic Value
o

Discover All Characteristic Descriptors
Reading a Characteristic Value
o

Find Included Services
Characteristic Discovery
o

Exchance MTU
Indication
Reading a Characteristic Descriptor
o
Read Characteristic Descriptors
o
Read Long Characteristic Descriptors
Writing a Characteristic Descriptor
o
Write Characteristic Descriptors
o
Write Long Characteristic Descriptors.
32 (54)
Nämä toiminnot ja niiden alitoiminnot kertovat laitteille sen, että kuinka ATT-protokollaa käytetään
suorittamaan esim. kirjoitus tai luku toimenpide laitteiden välillä.
GATT-profiilin client/server-arkkitehtuuri (kuva 15) on sama kuin ATT-protokollassa, paitsi data kapseloidaan palveluiksi (Services) ja luettava data paljastetaan ominaisuuksina (Characteristic). Profiili
koostuu yhdestä tai useammasta palvelusta, riippuen käyttötarkoituksesta. Palvelu koostuu attribuuteista, joita kutsutaan ”characteristic values” eli ominaisarvoiksi jotka ovat palvelun käyttämiä tietoja. Esimerkiksi sykemittarissa, attribuutti joka sisältää sykearvon on sen palvelun ominaisarvo. Ominaisarvon yhteydessä täytyy olla myös määriteltynä, että mitä se on ja sykemittarin tapauksessa yksikkö on bpm eli beats per minute.
KUVA 15. GATT-profiilin client- ja server-laitteen välinen toimintaperiaate (Texas Instuments, 2013)
Kuvassa 16 on näkymä Heart Rate Sensor tyyppisen laitteen tarjoamista palveluista (Services) ja
palveluiden sisältämistä ominaisuuksista (Characteristic). Heart Rate Sensor laite tarjoaa myös pariston tarkkailuun tarkoitetun palvelun Battery Service (handle 43), joka on ilmoitettu kymmenjärjestelmän mukaisesti. Palvelun Characteristic Declaration-kohdassa (handle 44) määritellään sen
käyttö- ja lukuoikeudet sekä mitä se ilmaisee, tässä tapauksessa kyseessä on Battery Level. Tämän
jälkeen on palvelun Characteristic Value (handle 45), joka ilmaisee Battery Level arvon. Kuvan tapauksessa Battery Level arvo on heksadesimaalijärjestelmän mukaisesti ilmoitettu eli 64, joka vastaa
kymmenjärjestelmän arvoa 100. Koska Battery Service-palvelun ilmoittamat arvot ovat prosenttilukuja, niin paristonjännitetasoksi voidaan tulkita 100 %.
KUVA 16. Esimerkki Heart Rate Sensor-laitteen palveluista
33 (54)
5
TEXAS INSTRUMENTS CC2540
Selvitystyössä tehdyn vertailun perusteella tässä työssä päädyttiin käyttämään EKG-signaalin mittaamiseen, AD-muuntamiseen sekä lähettämiseen päätelaitteelle BLE-tekniikalla Texas Instrumentsin valmistamalla CC2540-mikropiirillä. Mega Elektroniikalla oli jo entuudestaan tähän mikropiiriin
pohjautuva mini development kit, jonka lisäksi tilattiin vielä hieman kattavampi kehitysalusta. Molempien kehitysalustojen mikropiirit pohjautuivat CC2540F256 versioon eli ne sisälsivät 256kB Flashmuistia.
Kehitysalustojen ohjelmointi tapahtuu käytännössä joko Texas Instrumentsin omalla SmartRF Flash
Programmer-ohjelmalla tai IAR Embedded Workbench:llä. Texas Instruments ei tarjoa mikropiirin
ohjelmien kehitykseen omaa työkalua, joten oman ohjelman kehitys tapahtuu käytännössä IAR Embedded Workbench:llä, jolloin myös sen käyttö mikropiirin ohjelmointiin on suositeltavaa. Tähän tarkoitukseen IAR tarjoaa kehitysympäristöstä käyttöön kaksi eri versiota. 30 päivän kokeiluversio ilman mitään rajoituksia ja aikarajoitukseton kokeiluversio, mutta siinä ohjelmakoodin koko on rajoitettu neljään kilotavuun mikä sulkee pois sen käytön tämän työn yhteydessä. (IAR Systems, 2012)
5.1
CC2540 Ohjelmointiympäristö
CC2540-mikropiirille ohjelmoitava kokonaisuus koostuu viidestä pääkomponentista, jotka ovat OSAL,
HAL, BLE-protokollapino, profiilit ja itse sovellus (kuva 17). BLE-protokollapino toimitetaan ohjelmiston mukana kohdekoodina, koska se on Texas Instrumentsin kehittelemä ja näin ollen suljetun lähdekoodin kokonaisuus. OSAL- ja HAL-rajapinnat ovat saatavilla lähdekoodeina. Ohjelmiston mukana
toimitetaan myös kolme GAP-profiilia (peripheral, central ja peripheral bond manager) ja useita
GATT-profiileja muutaman esimerkkisovelluksen kanssa. (Texas Instuments, 2013)
5.1.1 Operating System Abstraction Layer (OSAl)
Koska CC2540-mikropiiri koostuu useista eri rauta- ja ohjelmistorajapinnoista sekä BLEprotokollapinosta niin täytyy sen hallinnoimiseen olla jonkinlainen järjestelmä. Tätä varten Texas
Instruments on sisällyttänyt mikropiirille alkeellisen ohjelmistoarkkitehtuurin nimeltään OSAL. Sanan
varsinaisessa merkityksessä OSAL ei ole käyttöjärjestelmä vaan ohjaussilmukka, joka mahdollistaa
ohjelmiston asettaa ajettavat tehtävät eli taskit ja suorittaa niitä kontrolloidusti. Ohjaussilmukan
vuokaavio kuvassa 18. (Texas Instuments, 2013)
34 (54)
KUVA 17. CC2540-mikropiiri ohjelmoinnin näkökulmasta (Texas Instuments, 2013)
KUVA 18. OSAL-ympäristön ohjaussilmukan vuokaavio (Texas Instuments, 2013)
35 (54)
Jokainen ohjelman alijärjestelmä ajaa yhtä OSAL taskia eli tehtävää ja sille on määrätty uniikki task
identifier (ID). Task identifierillä on tärkeä rooli OSAL-järjestelmässä, koska mitä pienempi arvo
ID:llä on niin sitä suurempi prioriteetti sillä on järjestelmää ajettaessa. Tyypillisessä BLE ohjelmistossa on vähintään 11–12 eri tehtävää, joista esimerkki taulukossa 6. Taulukon tehtävät väliltä 0-10
ovat CC2540-mikropiirin ja BLE toimintaan liittyviä tehtäviä ja näin ollen niiden prioriteetti on korkea.
Tehtävät tästä eteenpäin ovat yleensä itse suoritettava ohjelmakoodi ja sen aliohjelmat, joidenka
prioriteetti on alhaisempi ja näin ollen niiden taskID on suurempi.
TAULUKKO 6. Esimerkki OSAL-järjestelmän tehtävätaulukosta
task
Link Layer
HAL
HCI
OSAL Callback timer
L2CAP
GAP
GATT
SM
GAP Role Profile
GAP Bond Manager
GATT Server
Ohjelmakoodi
taskID
0
1
2
3
4
5
6
7
8
9
10
11
Tehtävien hallinnoimisen lisäksi OSAL tarjoaa useita muitakin palveluja, kuten viestien välitys, muistinhallinta, keskeytykset sekä ajastimet. Näiden ominaisuuksien vuoksi OSAL-järjestelmä muistuttaa
hyvin paljon reaaliaikakäyttöjärjestelmää.
Alustus
OSAL-järjestelmän käyttämiseksi täytyy ohjelman main-funktion lopussa olla kutsu
osal_start_system(), joka aloittaa OSAL-järjestelmän alustusrutiinit. Alustuksen tehtyään
osal_start_system kutsuu osalInitTasks()-funktiota, joka alustaa taulukossa 6 mainitut tehtävät. Jokainen ohjelmiston osa-alue, jonka halutaan käyttävän OSAL-palveluita, täytyy määritellä osalInitTasks()-funktioon ja yleensä se lisätään listan viimeiseksi. Järjestelmän alustusrutiinit suoritettua
siirrytään tehtävien alustukseen, jolloin jokaiselle tehtävälle annetaan uniikki 8-bittinen task ID.
Nämä vaiheet suoritettuaan OSAL-järjestelmä alkaa suorittaa ohjaussilmukkaa suorittaen tehtäviä ja
niiden palvelupyyntöjä.
36 (54)
5.1.2 Hardware Abstraction Layer (HAL)
CC2540-mikropiirin HAL toimii rajapintana itse ohjelmakoodin, fyysisen laitteiston sekä BLE-pinon
välillä. Erillisen laitteistorajapinnan etuina on suunnittelun ja ohjelmoinnin näkökulmasta se, että mikäli joudutaan tekemään laitteisto- tai piirilevymuutoksia niin ne eivät vaikuta itse ohjelmakoodiin.
Texas Instrumentsin toimittava HAL-rajapinta pitää sisällään kirjastot SPI ja UART kommunikointiväylille, AD-muuntimelle, painonapeille sekä LED:lle. Tämä rajapinta on yhteensopiva kaikkien Texas
Instrumentsin tarjoamien kehitysalustojen kanssa CC2540-mikropiirille. Uutta tuotetta suunnitellessa
näitä kirjastoja voi käyttää esimerkkinä ja tehdä niihin tarvittavia muutoksia oman laitteiston vaatimuksien mukaan.
5.1.3 BLE-protokollapino
Bluetooth low energy protokollapino toimitetaan ohjelmiston mukana suljettuna lähdekoodina ja
näin ollen siihen ei pääse käsiksi. Protokollapinon käyttämistä varten omassa ohjelmassa käyttäjän
täytyy ymmärtää GAP- ja GATT-profiilien toiminta kun kommunikointi pinon kanssa tapahtuu näiden
avulla.
5.1.4 Profiilit
Profiilit toimivat standardoituna rajapintana ohjelmiston ja BLE-protokollapinon välillä mahdollistaen
datan lähettämisen ja vastaanottamisen. Profiilien ansiosta ohjelmiston kehittäjällä ei välttämättä
tarvitse olla syvempää tietämystä itse protokollapinon toiminnasta vain riittää, että ymmärtää kuinka
sen kanssa kommunikoidaan GAP- ja GATT-profiileilla. Näiden ennalta määrättyjen profiilien ansioista laitevalmistajat voivat luoda omia sovelluksia, jotka ovat kuitenkin yhteensopivia muiden valmistajien Bluetooth-laitteiden kanssa. Bluetooth low energy profiilit kuvassa 19.
37 (54)
KUVA 19. Bluetooth low energyn GATT-profiilit
5.1.5 Sovellus
Järjestelmän viimeisenä osiona on ohjelmoitava sovellus, joka käyttää hyväkseen edellä mainittuja
rajapintoja sekä profiileja. Kaikkia edellä mainittuja osa-alueita ei välttämättä tarvitse sisällyttää
vaan käyttää niitä osioita, joita oman ohjelman toiminta edellyttää. Esimerkkinä oma opinnäytetyöni,
joka pohjautuu Heart Rate Service (HRS) GATT-profiiliin ja BLE peripheral GAP-rooliin.
38 (54)
6
TOTEUTUS
Tässä opinnäytetyössä toteutettiin sovellus analogiasignaalin muuntamiseen digitaaliseen muotoon
ja sen lähettämiseen langattomasti Bluetooth low energy -teknologiaan perustuvilla kehitysalustoilla.
Kehitysalustojen mukana tuli viisi eri ohjelmaa, jotka ovat:

BTool

SmartRF Flash Programmer

SmartRF Packet Sniffer

SmartRF Studio 7

IAR Embedded Workbench.
Neljä ensimmäistä on suunnattu kehitysalustojen toiminnan tutkimiseen, Bluetooth liikenteen tarkkailuun sekä asetusten muuttamiseen. Viides ohjelma on omien ohjelmien kehittämiseen tarkoitettu
sulautettujen järjestelmien ohjelmointiympäristö.
BTool (kuva 20) on ohjelma, jolla voi muodostaa yhteyden kehitysalustoihin USB Donglen avulla. Yhteyden muodostamisen jälkeen ohjelmalla pystyy muuttamaan päätelaitteen asetuksia sekä seuraamaan niiden välillä tapahtuvaa liikennettä.
KUVA 20. BTool ohjelman yleisnäkymä. Vasemmalla käytössä olevat Bluetooth laitteet, keskellä lokinäkymä sekä oikealla asetusten määritykseen käytettävä valintaikkuna
39 (54)
SmartRF Flash Programmer (kuva 21) mahdollistaa kehitysalustojen uudelleen ohjelmoinnin halutulla .hex-tiedostolla.
KUVA 21. SmartRF Flash Programmer, jota käytettiin CC2540-mikropiirien flashaukseen
SmartRF Packet Sniffer (kuva 22) ohjelmalla pystyy tarkkailemaan lähialueella tapahtuvaa Bluetoothliikennettä ja tallentamaan lokia siepatuista paketeista. Ohjelmalla pystyy suodattamaan halutut paketit sekä havainnollistamaan ne graafisessa muodossa tulkitsemisen helpottamiseksi.
40 (54)
KUVA 22. SmartRF Packet Sniffer ohjelman sieppaamia mainostuspaketteja
SmartRF Studio 7 (kuva 23) on monipuolinen ohjelma, joka tarjoaa huomattavasti kattavammat
ominaisuudet langattoman tuotteen radio- ja rekisteriominaisuuksien tutkimiseen sekä asetuksien
muuttamiseen.
KUVA 23. SmartRF Studio ohjelmalla tehty signaalinvoimakkuus mittaus
41 (54)
IAR Embedded Workbench (kuva 24) on ainut Texas Instrumentsin tukema kehitysympäristö heidän
omille tuotteilleen, joten vaihtoehtoisia ohjelmia tähän tarkoitukseen ei ole tarjolla.
KUVA 24. IAR Embedded Workbench kehitysympäristön projektinäkymä
6.1
Työkalut
Työssä käytetyt kehitysalustat olivat CC2540DK (kuva 25) ja CC2540DK-MINI (kuva 26), joista jälkimmäistä käytettiin lopullisessa toteutuksessa lähinnä käytännön syistä.
Laajempi CC2540DK mahdollistaa nopean ja helpon tutustumisen CC2540-mikropiirin tarjoamaan
BLE-ympäristöön. Kytkentäalustoilla olevat ledit ja LCD-näytöt mahdollistivat niiden käyttämisen
mm. debuggaukseen alustojen ohjelmointiin tutustuessa. Laajemman kehitysalustan huonona puolena ilmeni sen työläämpi muokkaaminen omille kytkennöille, koska itse CC2540-mikropiiriin liitäntöihin ei päässyt käsiksi suoraan. Tästä johtuen joutui aina muutoksia tehdessä selvittämään, että
mikä mikropiirin nasta kytkeytyy minnekin ja aiheuttaako siihen kytkeytyminen jotain ristiriitoja johtuen kytkentäalustojen omista oheislaitteista.
42 (54)
KUVA 25. CC2540DK-kehitysalusta pakkauksen sisältö. Kuvassa kaksi kytkentäalustaa, joihin on kytketty CC2540-moduulit lisäantenneineen. Vasemman puoleinen toimii isäntälaitteena ja oikeanpuoleinen orjalaitteena
CC2540DK-MINI kehitysalusta päätyi käyttöön työn loppupuolella lähinnä siihen tehtävien kytkentöjen nopean toteuttamisen vuoksi. Kehitysalustalle pystyi antamaan käyttöjännitteen joko nappipariston tai CC Debugger-ohjelmointityökalun kautta USB-väylästä. Kehitysalustaa ohjelmoitaessa ja sen
toimintaa debugatessa ilmeni kuitenkin, että nappiparistojen varaus kului todella nopeasti. Tästä
johtuen kehitysalustaan tehtiin pieni kytkentämuutos, jonka ansioista virransyöttö saatiin debugväylää pitkin. Kasvanut virrankulutus nappiparistoja käyttäessä johtui siitä, että laite oli samaan aikaan kytkettynä vaihtoehtoiseen virransyöttöön. Tätä ei kuitenkaan voinut jättää käyttämättä, koska
alustan debuggaus IAR Embedded Workbenchillä toiminnan aikana ei olisi enää onnistunut.
43 (54)
KUVA 26. CC2540DK-MINI kehitysalusta pakkauksen sisältö. Kuvassa vasemmalla kehitysalustan ohjelmointiin käytettävä CC Debugger, keskellä BLE-moduuli sekä oikealla USB-dongle
Kehitysalustojen lisäksi työssä käytettiin seuraavia laitteita:

VEPS613 Laboratorio säädettävä tasavirtalähde

AGILENT 33521A Funktio- ja vapaa-aaltomuotogeneraattori

Fluke 123 Scopemeter.
KUVA 27. VEPS613 säädettävä tasavirtalähde
44 (54)
KUVA 28. AGILENT funktiogeneraattori, jolla voitiin luoda haluamanlaisia signaalimuotoja
6.2
Mittauskytkentä
Kehitysalusta (kuva 26) kytkettiin tasavirtalähteeseen ja funktiogeneraattoriin liitteen 2 mukaisesti
nastoihin P0_6 ja P0_7. Tasavirtalähteen antama 3VDC jännitetaso varmistettiin Fluke 123-mittarilla,
jolloin voitiin olla varmoja tasaisesta referenssijännitteestä. AGILENT-funktiogeneraattori mahdollisti
vapaiden aaltomuotojen luomisen ja sen avulla luotiin ihmisen sykettä vastaava EKG-signaali (kuva
28). Kehitysalusta ja siihen kytkettyjen laitteiden maatasot kytkettiin yhteen, jotta kytkettyihin laitteisiin saatiin sama maataso ja näin ollen vältyttiin signaalin vääristymiseltä. Kehitysalustan käyttöjännite tuotiin ohjelmointityökalun kautta USB-väylästä, joka on harmaa kaapeli kuvassa 29.
KUVA 29. Mittauskytkentä. Takana vasemmalla tasajännitelähde, oikealla funktiogeneraattori ja
edessä keskellä CC2540DK-MINI kehitysalusta
45 (54)
6.3
Analogiasignaalin mittaus ja AD-muunnos
CC2540-mikropiiin sisältää 8-kanavaisen Sigma-Delta AD-muuntimen (kuva 30), jonka resoluutio on
valittavissa väliltä 8-14-bittiä. Kanavia voidaan käyttää joko yksittäin tai vertaillen kahta kanavaa
keskenään. Muuntimen tulokset voidaan joko kirjoittaa suoraan muistiin jolloin AD-muunnin ei kuluta
8051-mikrokontrollerin suoritinaikaa tai antaa oman ohjelman käsiteltäväksi. Tarvittaessa ADmuuntimella voidaan myös luoda keskeytyskutsuja sekä käyttää AD-muunninta lämpötilan sekä pariston jännitetason mittaamiseen. (Texas Instuments, 2012)
KUVA 30. AD-muuntimen lohkokaavio (Texas Instuments, 2012)
AD-muuntimen referenssijännitteen käytölle oli seuraavat vaihtoehdot:

HAL_ADC_REF_125V, sisäinen 1,25V referenssijännite

HAL_ADC_REF_AIN7, P0_7 nastassa oleva ulkoinen jännite

HAL_ADC_REF_AVDD, mikropiirin käyttöjännite

HAL_ADC_REF_DIFF, nastojen P0_6 ja P0_7 jännite-ero

HAL_ADC_REF_BITS, ADCCON2(0xB5) rekisterin kahdella eniten merkitsevällä bitillä määriteltävä referenssi:
o
00: Sisäinen 1,25V referenssijännite
o
01: Ulkoinen P0_7(AIN7) tuotu jännite
o
10: AVDD5-nastassa oleva mikropiirin käyttöjännite
o
11: Nastojen P0_6 ja P0_7 jännite-ero.
Sisäinen 1,25V referenssijännite oli tälle sovellukselle liian pieni, koska vahvistetun EKG-signaalin
huipusta huippuun arvo oli 3VDC. Mikropiirin käyttöjännite oli taasen liian epävarma referenssijännite, koska esim. nappiparistoa käyttäessä sen jännitetaso tippuu ajan myötä pariston varauksen pienentyessä. Differentiaalista kahden nastan välistä vertailua ei tämän sovelluksen yhteydessä nähty
tarpeelliseksi käyttää. Referenssijännitteeksi päädyttiin käyttämään ulkoista P0_7-nastaan tuotua 3V
tasajännitettä, joka takasi sen, että referenssipiste pysyy vakiona ja AD-muuntimen antamat arvot
täten myös.
46 (54)
Liitteen 2 mukaisesti kehitysalustan nastaan P0_6 syötettiin analogista EKG-signaalia simuloivaa jännitettä (kuva 28), jonka huipusta huippuun arvo oli n. 3V. Kehitysalustan nastaan P0_7 syötettiin
AD-muuntimen tarvitseva referenssijännite VEPS613-tasavirtalähteellä, jonka suuruus oli 3VDC.
Ohjelmistotasolla AD-muuntimen käyttöönotto alkoi sen alustuksella ja referenssipisteen asetuksella
CC2540-mikropiirin käynnistysrutiinien yhteydessä funktiolla:
static void initADC(void)
{
HalAdcSetReference( HAL_ADC_REF_AIN7 );
}
6.4
Tiedon lähettäminen kehitysalustalla
AD-muuntimen alustuksen ja CC2540-mikropiirin käynnistysrutiinien jälkeen kehitysalusta alkaa mainostaa itseään mainostuskanavilla. Mainostuksen aikana laitteeseen voidaan muodostaa yhteys isäntälaitteella, joka tässä tapauksessa oli tietokoneeseen kytketty Bluetooth low energy USB-Dongle.
Tietokoneessa olevaan USB-Dongleen oli ladattu ohjelmisto, joka mahdollisti sen toiminnan isäntälaitteena sekä ohjauksen yllä mainituilla ohjelmilla. Yhteys kehitysalustaan muodostettiin käyttäen
BTool-ohjelmaa, jonka jälkeen kehitysalustaan lähetettiin komento 01:00 handleen 19 (kuva 16).
Komento herättää kehitysalustan mainostus<->lepotila-silmukasta ja aktivoi mittausdatan lähetysfunktion. Ohjelmiston kulkua havainnollistava lohkokaavio liitteessä 3.
Tämän jälkeen AD-muuntimen tekemää EKG-signaalin muunnosfunktiota kutsutaan aina lähetystapahtuman yhteydessä, jonka lähetysnopeus oli säädettävissä 1 millisekunnin tarkkuudella aina 8 ms
asti. Tämä mahdollisti parhaimmillaan 125Hz näytteistysnopeuden, mutta työssä käytettiin 10ms lähetysnopeutta jolla saavutettiin 100Hz näytteistys. 100Hz näytteistyksellä saavutettiin riittävä tarkkuus EKG-signaalin piirtämistä varten.
EKG-signaalin mittausresoluutioksi valittiin 14-bittiä. Mittausherkkyys saadaan muuntamalla 14bittinen arvo desimaalijärjestelmän arvoksi, josta saadaan arvoksi 16383. Kehitysalustaa debugatessa kuitenkin selvisi, että 14-bittisellä mittausresoluutiolla readADC-muuttujan suurimmaksi arvoksi
rekisterissä saatiin 3V jännitteellä 8191. Mikä viittasi siihen, että vaikka rautatasolla mittaus tehdään
14-bittisenä, niin ohjelmistotasolla eniten merkitsevä bitti varataan etumerkkiä varten. Käytännössä
tämä johtaa siihen, että 14-bittinen mittausresoluutio toteutuu 13-bittisenä. Tällöin mittausherkkyydeksi desimaalijärjestelmän mukaan arvoksi saadaan 8191. Lopullinen mittausherkkyys saadaan
seuraavalla kaavalla:
47 (54)
Mikäli käytössä olevan etuasteen vahvistus on esimerkiksi 1000, niin varsinainen biosignaalin mittausherkkyys on:
Koska tiedon lähetyksessä dataa lähetetään tavuittain ja käytössä oli 14-bittinen mittausresoluutio,
niin muunnettu arvo jouduttiin puolittamaan ja lähettämään kahdessa tavun kokoisessa paketissa.
EKG-signaalin näytteenotto lähetyspakettiin tapahtuu seuraavalla funktiolla:
static uint16 readADC(void)
{
return HalAdcRead( HAL_ADC_CHN_AIN6, HAL_ADC_RESOLUTION_14 );
}
Lähetyspaketin muodostus tapahtui if-lauseella, joka tarkistaa onko 16-bittinen pakettimuoto käytössä. Mikäli näin on, niin silloin AD-muunnettu muuttuja jaetaan kahteen osaan ja nämä sijoitetaan
lähetysdataan.
6.5
Datan vastaanottaminen Mega Elektroniikan ohjelmistolla
Datan vastaanottaminen tapahtui Mega Elektroniikan omalla ohjelmistolla (kuva 31), joka on toteutettu C# eli C sharp-ohjelmointikielellä. Ohjelmaan toteutettiin yksinkertainen käyttöliittymä BLEmoduulin ohjaamiseen painonapein ja vastaanotetun datan piirtäminen graafina reaaliajassa.
Painonapeilla toteutetut komennot ovat seuraavat:







Open port: Avaa kenttään syötetyn portin
Device init: Porttiin kytketyn BLE-moduulin alustus ja asettaminen isäntä-rooliin
Set parameters: Yhteysasetuksien määrittäminen
Devicediscovery: BLE-laitteiden etsintä
Startlink: Yhteyden muodostus mikäli BLE-laite löydettiin Devicediscoveryllä
Start data: Lähettää BLE-laitteelle komennon analogia signaalin mittaamisen, muuntamisen
ja lähettämisen aloitukselle
Stop data: Pysäyttää datan lähetyksen.
Reaaliaikaisessa ohjelmiston toteutuksessa oli pieniä ongelmia vastaanotettujen datapakettien parseroinnissa ja toisistaan erottelussa, joka aiheutti vääristymiä piirrettyyn graafiin. Kuvassa 32 on vertailupisteenä toimiva graafi siitä, että minkälaista piirretyn datan pitäisi olla. Erona tällä graafilla on
se, että data, jonka pohjalta se piirrettiin kerättiin erilliseen tekstitiedostoon. Tämä mahdollisti sen,
että yhtään datapakettia ei jäänyt välistä ja sieltä voitiin poimia kaikki data-alueet, jotka sisälsivät
EKG-signaalia sekä piirtää kuvaaja niiden perusteella.
Reaaliaikaiseen ohjelmistoon tehtävät muutokset vääristymien poistamiseksi ja oikeanlaisen signaalin piirtämiseksi ovat lähinnä pientä hienosäätöä, joka tullaan toteuttamaan aikanaan lopullisessa ohjelmistoversiossa.
48 (54)
KUVA 31. Vastaanotetun datan piirtämistä reaaliajassa Mega Elektroniikan ohjelmistolla.
Kuva 32. Vertailupisteenä toiminut graafi vastaanotetusta datasta.
49 (54)
7
POHDINTA
Tässä opinnäytetyössä toteutettiin toimiva Bluetooth low energy Heart Rate Service (HRS) spesifikaation mukainen CC2540-mikropiiriin pohjautuva sulautettujen järjestelmien ohjelmisto Mega Elektroniikalle käytettäväksi. Bluetooth -spesifikaation mukaisesti toteutettu ohjelmisto varmistaa, että se
on helposti liitettävissä tulevaisuudessa muihin laitteisiin, jotka ovat toteutettu Bluetoot Smart tai
Bluetooth Smart Ready teknologioilla.
Työtä tehdessä suurimmaksi ongelmaksi osoittautui alkuvaiheessa sulautettujen järjestelmien debuggaus eli järjestelmän testaus ajon aikana. Tämä osoittautui hankalaksi sen takia, että päätelaitteiden täytyi olla yhteydessä toisiinsa ja muutoksien tekeminen ja rekisterien tarkkailu vaati aina
ajettavan kehitysalustan pysäyttämisen, joka johti aina yhteyden katkeamiseen. Työn edetessä ohjelmiston ymmärtämisen parantumisen myötä tämä ongelma ei enää vaivannut niin paljoa kun pystyi tekemään muutoksia, joidenka vaikutukset osasi odottaa ilman ohjelmiston jatkuvaa pysäyttämistä. Työn tuloksena toteutettu ohjelmisto havainnollisti hyvin, että Bluetooth low energy – teknologia
soveltuu varsin hyvin biosignaaleja mittaavien sensorien keräämän datan siirtämiseen päätelaitteelle
langattomasti. Teknologian mahdollistama niukka virrankulutus langattoman yhteyden ylläpidossa
mahdollistaa aikaisempaa pidemmät laitteiden toiminta-ajat, kuitenkaan minkään osa-alueen varsinaisesti kärsimättä toteutuksessa.
50 (54)
LÄHTEET
Bluetooth-enabled ASICs versus standard Bluetooth chipsets. EE Times-Asia yrityksen internet-sivut.
[Verkkodokumentti] 2002. [viitattu 18.3.2013]. Saatavissa:
http://www.eetasia.com/ARTICLES/2002APR/2002APR08_ICD_NTEK_RFD_ID_PD_TAC.PDF
Bluegiga Technologies. BLE112 Bluetooth® Smart Module. Bluegiga Technologies yrityksen internetsivut. [PDF-dokumentti] 2012. [viitattu 18.3.2013]. Saatavissa:
https://techforum.bluegiga.com/protectedstore/44874/17653/127/bluegiga_1761/508938d62eaf726
30f12fbb906ba59fe/BLE112_presentation_v2.pdf
BlueRadios Inc. BR-LE4.0-S2. BlueRadios yrityksen internet-sivut. [PDF-dokumentti] 2012. [viitattu
18.3.2013]. Saatavissa: http://www.blueradios.com/BR-LE4.0-S2.pdf
connectBlue Inc. BR-LE4.0-S2. connectBlue yrityksen internet-sivut. [PDF-dokumentti] 2012. [viitattu 18.3.2013]. Saatavissa: http://www.connectblue.com/nc/products/bluetooth-low-energyproducts/bluetooth-low-energy-modules/bluetooth-low-energy-platform-moduleolp425/?pdf=1&format=A4&pageId=1305
Panasonic Corporation. PAN1720 Series Bluetooth®. Panasonic yrityksen internet-sivut. [PDFdokumentti] 2012. [viitattu 18.3.2013]. Saatavissa:
http://www.panasonic.com/industrial/includes/pdf/Panasonic_PAN1720_New_Product_Introduction.
pdf
Texas Instuments. CC2540. Texas Instruments yrityksen internet-sivut. [Verkkodokumentti] 2013.
[viitattu 18.3.2013]. Saatavissa:
http://www.ti.com/product/cc2540&DCMP=LowPowerRFICs+Other&HQS=Other+OT+cc2540
Nokia Developer Portal. Wibree.[Verkkoartikkeli] 2012. [viitattu 2.4.2013]. Saatavissa:
http://www.developer.nokia.com/Community/Wiki/Wibree
Texas Instuments. 2.4-GHz Bluetooth ® low energy System-on-Chip. Texas Instruments yrityksen
internet-sivut. [PDF-dokumentti] 2012. [viitattu 18.3.2013]. Saatavissa:
http://www.ti.com/lit/ds/symlink/cc2540.pdf
Bluetooth Special Interest Group. Bluetooth 4.0 with low energy technology paves the way for Bluetooth Smart devices. Bluetooth Special Interest Group internet-sivut. [Verkkodokumentti] 2013. [viitattu 18.3.2013]. Saatavissa: http://www.bluetooth.com/Pages/low-energy.aspx
Texas Instuments. Texas Instruments CC2540/41 Bluetooth® Low Energy Software Developer’s
Guide. Texas Instruments yrityksen internet-sivut. [PDF-dokumentti] 2013. [viitattu 18.3.2013].
Saatavissa: http://www.ti.com/lit/pdf/swru271
Elke Mackensen, Matthias Lai, Thomas M. Wendt. Performance Analysis of an Bluetooth Low Energy
Sensor System. IEEE Xplore verkkokirjasto. [Verkkodokumentti] 2012. [viitattu 21.3.2013]. Saatavissa: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=6377634
Bluetooth Special Interest Group. Bluetooth Specification Version 4.0. Bluetooth Special Interest
Group internet-sivut. [PDF-dokumentti] 2010. [viitattu 21.3.2013]. Saatavissa:
https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=229737
Digikey. Bluetooth Low Energy Technology Makes New Applications Possible. Digikey yrityksen internet-sivut. [Verkkodokumentti] 2011. [viitattu 4.4.2013]. Saatavissa:
http://www.digikey.com/us/en/techzone/wireless/resources/articles/bluetooth-low-energytechnology.html
IAR Systems. IAR Embedded Workbench for 8051. IAR Systems yrityksen internet-sivut. [PDFdokumentti] 2012. [viitattu 4.4.2013]. Saatavissa:
http://www.iar.com/Global/Products/IAR_Embedded_Workbench/EW8051/ew_8051_datasheet.pdf
51 (54)
Texas Instuments. CC2540/41 System-on-Chip Solution for 2.4-GHz Bluetooth® low energy Applications. Texas Instruments yrityksen internet-sivut. [PDF-dokumentti] 2012. [viitattu 7.4.2013]. Saatavissa: http://www.ti.com/litv/pdf/swru191d
52 (54)
LIITE 1
CC2540-MIKROPIIRIN TOIMINNALLINEN KAAVIO
53 (54)
LIITE 2
CC2540DK-MINI KEHITYSALUSTAN KYTKENTÄKAAVIO
54 (54)
LIITE 3
HEART RATE SENSOR-OHJELMISTON LOHKOKAAVIO
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising