Bluetooth- ja BLE-teknologioiden toteutus ESP32lla
Trofimov, Alexei (2022)
Trofimov, Alexei
2022
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-12-15
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202212149185
https://urn.fi/URN:NBN:fi:tuni-202212149185
Tiivistelmä
Työn tarkoituksena on selvittää, mistä protokollista Bluetooth- ja energiatehokkaan Bluetooth-teknologian (engl. Bluetooth Low Energy, BLE) pinot koostuvat sekä mikä on näiden protokollien tehtävä. Tämän lisäksi selvitetään, miten kyseinen pino on toteutettu ESP32-pohjaisella mikrokontrollerilla ja miten sen ohjelmointi tapahtuu käyttämällä Espressif-esineiden internetin viitekehystä (engl. Espressif IoT Development Framework, ESP-IDF).
ESP32 on mikrokontrolleri, jonka tärkeimpiin toiminnallisuuksiin kuuluu Bluetooth 4.2 sekä Wi-FI-tuki. Näiden lisäksi ESP32:lla on myös tuki yleisimmille mikrokontrollereissa esiintyville liitäntäspesifikaatioille, joiden avulla mikrokontrolleri voidaan esimerkiksi yhdistää osaksi isompaa kokonaisuutta. ESP:n ohjelmoimiseen on useita eri työkaluja erilaisten käyttäjien tarpeeseen. Työkalut voivat erota toisistaan sen mukaan, mitkä ovat niiden kanssa käytettävät ohjelmointikielet sekä tarjolla olevat erilaisten lisälaitteiden ja komponenttien kirjastot.
Bluetooth on langattoman tiedonsiirron tekniikka, jolla aikoinaan pyrittiin korvaamaan laitteiden välinen fyysinen linkki. Bluetooth on toteutettu usean protokollan muodostamana pinona, jotka yhdessä mahdollistavat sen toiminnan. Näitä ovat fyysisen kerroksen toiminnasta vastaavat radioprotokolla ja kantataajuusprotokolla. Korkeamman tason protokollat kommunikoivat fyysisen tason kanssa isäntäohjainrajapinnan kautta. Se mahdollistaa esimerkiksi korkeamman ja fyysisen tason protokollien toiminnallisuuden erottamisen erillisiin laitteisiin. Bluetoothin loppukäyttäjälle näkyvä toiminnallisuus on toteutettu käyttämällä profiileja. Profiileilla pystytään yhtenäistämään Bluetooth-laitteiden toiminnallisuus standardoimalla se. Tämä mahdollistaa eri valmistajien laitteiden keskinäisen toiminnan ilman ylimääräisiä asetuksia.
Bluetooth-toiminnallisuuden ohjelmoiminen on tehty ESP-IDF:ssä helpoksi käyttämällä sen tarjoamia funktioita. Työssä käytetään hyväksi ESP-IDF:n käyttämiä NimBLE- ja Bluedroid-pinojärjestäjiä. Pinojärjestäjät hallinnoivat Bluetooth-pinon ohjelmistototeutusta sekä toimivat välilinkkinä profiilien ja fyysisen kerroksen ohjelmistolle. Bluetooth-rajapintaa tutkiessa huomattiin, että koko Bluetooth-pinon ohjelmistototeutus ei ole kuitenkaan saatavilla ESP-IDF:n rajapinnan käyttäjälle, sillä fyysisen kerroksen protokollien kooditoteutus annetaan pelkästään jo käännettyinä binääreinä. Näitä binäärejä voikin käyttää pelkästään pinojärjestäjien tarjoamien funktioiden kautta.
ESP32 on mikrokontrolleri, jonka tärkeimpiin toiminnallisuuksiin kuuluu Bluetooth 4.2 sekä Wi-FI-tuki. Näiden lisäksi ESP32:lla on myös tuki yleisimmille mikrokontrollereissa esiintyville liitäntäspesifikaatioille, joiden avulla mikrokontrolleri voidaan esimerkiksi yhdistää osaksi isompaa kokonaisuutta. ESP:n ohjelmoimiseen on useita eri työkaluja erilaisten käyttäjien tarpeeseen. Työkalut voivat erota toisistaan sen mukaan, mitkä ovat niiden kanssa käytettävät ohjelmointikielet sekä tarjolla olevat erilaisten lisälaitteiden ja komponenttien kirjastot.
Bluetooth on langattoman tiedonsiirron tekniikka, jolla aikoinaan pyrittiin korvaamaan laitteiden välinen fyysinen linkki. Bluetooth on toteutettu usean protokollan muodostamana pinona, jotka yhdessä mahdollistavat sen toiminnan. Näitä ovat fyysisen kerroksen toiminnasta vastaavat radioprotokolla ja kantataajuusprotokolla. Korkeamman tason protokollat kommunikoivat fyysisen tason kanssa isäntäohjainrajapinnan kautta. Se mahdollistaa esimerkiksi korkeamman ja fyysisen tason protokollien toiminnallisuuden erottamisen erillisiin laitteisiin. Bluetoothin loppukäyttäjälle näkyvä toiminnallisuus on toteutettu käyttämällä profiileja. Profiileilla pystytään yhtenäistämään Bluetooth-laitteiden toiminnallisuus standardoimalla se. Tämä mahdollistaa eri valmistajien laitteiden keskinäisen toiminnan ilman ylimääräisiä asetuksia.
Bluetooth-toiminnallisuuden ohjelmoiminen on tehty ESP-IDF:ssä helpoksi käyttämällä sen tarjoamia funktioita. Työssä käytetään hyväksi ESP-IDF:n käyttämiä NimBLE- ja Bluedroid-pinojärjestäjiä. Pinojärjestäjät hallinnoivat Bluetooth-pinon ohjelmistototeutusta sekä toimivat välilinkkinä profiilien ja fyysisen kerroksen ohjelmistolle. Bluetooth-rajapintaa tutkiessa huomattiin, että koko Bluetooth-pinon ohjelmistototeutus ei ole kuitenkaan saatavilla ESP-IDF:n rajapinnan käyttäjälle, sillä fyysisen kerroksen protokollien kooditoteutus annetaan pelkästään jo käännettyinä binääreinä. Näitä binäärejä voikin käyttää pelkästään pinojärjestäjien tarjoamien funktioiden kautta.
Kokoelmat
- Kandidaatintutkielmat [8709]