Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

środa, 16 marca 2011

Bluetooth w urządzeniach wbudowanych (embedded systems)


Autor: Dondu

Artykuł jest częścią cyklu: Bluetooth + mikrokontroler

W dzisiejszych czasach każdy człowiek mający telefon, czy komputer wie do czego służy standard komunikacyjny Bluetooth. Dla porządku jednak napiszę parę słów o tym bardzo fajnej technologii, a na końcu artykułu dowiesz się także, co zakupić by móc skorzystać z tego cyklu artykułów.

Bluetooth to standard dwukierunkowej komunikacji radiowej przeznaczonej do niewielkich odległości oraz łączenia urządzeń o przeróżnych funkcjonalnościach. Standard ten wykorzystuje się wszędzie tam, gdzie zależy nam na:
  • niewielkim zasięgu,
  • bezpieczeństwie transmitowanych danych,
  • dużej niezawodności,
  • uniwersalności,
  • niewielkim poborze mocy,
  • przy jednoczesnym niewielkim koszcie.

Standard Bluetooth wykorzystuje dostępne na całym świecie (no może z nielicznymi jeszcze wyjątkami) pasmo częstotliwości 2,4GHz,  na którego wykorzystanie nie wymagane są żadne zezwolenia. Jedyny ograniczeniem jest maksymalna moc wypromieniowana, która wynosi 100mW.


Ceny

W przypadku wykorzystania Bluetooth z mikrokontrolerami, bardzo popularnym i tanim jest aktualnie (2014r.) standard Bluetooth 2.0 + EDR (Enhanced Data Rate). Pojedynczy moduł można kupić za kwotę kilku dolarów (3$-5$ gdy kupujemy w Chinach). Ten sam moduł w polskich sklepach kosztuje aktualnie (wrzesień 2014r.) 23-25zł/szt.

W zamian otrzymujemy moduł, który może dać nam transfer nawet 3 Mb/s na niemałą odległość i w dodatku w bezpieczny i łatwy do implementacji sposób.


Zasięg

Standard Bluetooth podzielono na klasy w zależności od mocy wypromieniowanej, co oczywiście bezpośrednio wpływa na zasięg takiej komunikacji:
  • klasa 1, to max 100mW, co daje zasięg około 100 metrów,
  • klasa 2, to max 10mW, co daje zasięg około 10 metrów,
  • klasa 3, to max 1mW, co daje zasięg około 1 metra.
Powyższe odległości należy przyjmować z dużym respektem, bo jak wiadomo fale radiowe silnie są zależne od przeszkód, które spotkają na swojej drodze.

W tym miejscu należy wspomnieć o tym, iż w przypadku urządzeń tego typu w ich dokumentacji znajdziesz moc wyrażoną w jednostkach dBm, czyli logarytmicznej jednostce miary mocy odniesionej do 1 mW.

Zależność ta jest wyrażona wzorem, a dla nas istotne są wartości do 100mW, które podaję za w/w linkiem:

Moc w mW 0,1 1 10 13 16 20 25 32 40 50 63 79 100
Moc w dBm -10 0 10 11 12 13 14 15 16 17 18 19 20



Propagacja fali radiowej vs anteny 

Fale radiowe w zależności od ich częstotliwości są podatne na ich tłumienie wprowadzane przez naturalne przeszkody jakimi są różne przedmioty, przez które fale muszą przenikać oraz odbijać się od nich. Poniżej przykład dla pasma 2,4 GHz:

Nazwa elementu Materiał Grubość [cm] Tłumienie [dB]
Ściana wewnętrzna Cegła 10 7
Ściana zewnętrzna Cegła 30 9
Ściana działowa Rigips i wełna szklana 7 2
Strop Beton 30 11
Okno Szkło 2 x szyba + 1 cm przerwy 4,5
Drzwi Drewno 4 2,5

Tłumienie bezpośrednio wpływa na zasięg wszelkich torów komunikacyjnych, stąd także i technologia Bluetooth jest narażona na zmniejszenie zasięgu w niekorzystnych warunkach, czyli gdy nadajnik i odbiornik nie widzą się wzajemnie.

Aby zwiększyć zasięg lub zrekompensować straty wynikające z tłumienia bez zwiększania mocy nadajników wykorzystuje się różnego rodzaju anteny, od najprostszych do kierunkowych włącznie.

Podstawową anteną jest ścieżka na PCB:



ale można oczywiście nieco bardziej zadbać o ten ważny element:





Przepustowość łącza

Tutaj powtórzę za Wikipedia.pl:
  • Bluetooth 1.0 – 21 kb/s
  • Bluetooth 1.1 – 124 kb/s
  • Bluetooth 1.2 – 328 kb/s
  • Bluetooth 2.0 – transfer maksymalny przesyłania danych na poziomie 2,1 Mb/s, wprowadzenie Enhanced Data Rate (EDR) wzmocniło transfer do 3,1 Mb/s
  • Bluetooth 3.0 + HS (High Speed) – 24 Mb/s (3 MB/s)
  • Bluetooth 3.1 + HS (High Speed) – 40 Mb/s(5 MB/s)
  • Bluetooth 4.0 + LE (Low Energy) – 1 Mb/s, znacząco ograniczono pobór energii (np. praca czujnika temperatury, przez wiele miesięcy na baterii pastylkowej), kosztem obniżonego transferu oraz zwiększono realny zasięg działania do 100 m


Źródło: Bluetooth SIG


Pasmo 2,4GHz vs kanały

Pasmo 2,4GHz wykorzystywane przez technologię Bluetooth to zakres do 2,4 GHz do 2,5 GHz i w standardowej wersji zostało podzielone na 79 kanałów, co 1 MHz.




Wyjątkiem od tej reguły jest wersja Bluetooth LE, czyli Low Energy (patrz punkt o przepustowości wyżej), gdzie pasmo zostało podzielone na 40 kanałów co 2 MHz:


Źródło: National Instruments



Wspólne pasmo Bluetooth, WiFi, ZigBee i inne = zakłócenia!

Pasmo 2,4 GHz (pasmo mikrofalowe) jako pasmo ogólnego użytku oznacza, że wykorzystuje się je także do innych technologii transmisji danych. Jedną z nich jest technologia WiFi oparta o standard IEEE 802.11, co jest tym ważniejsze, że z reguły zarówno Bluetooth jak i WiFi występują i pracują jednocześnie.

Co gorsza pasmo to zakłócają także inne urządzenia jak telefony, kuchenki mikrofalowe, telewizje przemysłowe, radary, systemy alarmowe i wiele innych.




Źródło: National Instruments


Aby było jeszcze ciekawiej nawet USB 3.0 poprzez swoje przewody może zakłócać transmisje w paśmie 2,4 GHz:



Źródło: usb3-frequency-interference-paper.pdf



Na szczęście dzięki:
  • propagacji i tłumieniu fal radiowych,
  • podziałowi na kanały i możliwości ich wyboru,
  • znacznie ograniczonej maksymalnej mocy,
  • skomplikowanym algorytmom wymiany danych,

urządzenia pracujące na paśmie 2,4GHz mogą pracować jednocześnie i można je tak ustawić, by wzajemnie się nie zakłócały lub zakłócenia zostały zminimalizowane. Niemniej jednak w otoczeniu zurbanizowanym znajduje się wiele nadajników co zwiększa prawdopodobieństwo wzajemnego zakłócania.



Parowanie urządzeń Bluetooth

Aby dwa urządzenia wyposażone w technologię Bluetooth mogły współpracować muszą zostać "parowane", czyli dobrane w pary, ale pod pewnymi warunkami:
  • muszą być w zasięgu swoich nadajników,
  • muszą się odnaleźć w gąszczu 79 lub 40 kanałów,
  • jedno musi być urządzeniem nadrzędnym (ang. master), a drugie podrzędnym (ang. slave),
  • master musi znać hasło dostępu do slave-a.

Procedura parowania dokonywana jest automatycznie:


Parowanie urządzeń Bluetooth.
Źródło: microsoft.com

Master ogłasza swoje istnienie na wybranym kanale poprzez emisję sygnału radiowego. Slave przełączając się losowo pomiędzy poszczególnymi kanałami szuka urządzenia master. Gdy takowe znajdzie żąda podania przez niego hasła dostępu. Jeżeli hasło jest prawidłowe następuje parowanie obu urządzeń, czyli wzajemne zapamiętanie danych, które umożliwią im późniejszą współpracę, nawet gdy zostaną wyłączone i ponownie włączone.

Losowość zmiany kanałów w procesie parowania wpływa bezpośrednio na czas wykonywania tej czynności, co może trwać kilka sekund. Przy odrobinie szczęścia może więc to nastąpić natychmiast :-)



Profile

Siłą technologii Bluetooth jest nie tylko sam sposób komunikacji, parowania itp. ale także profilowanie urządzeń. Cóż to takiego?

Wyobraźmy sobie, że słuchawki bezprzewodowe oraz drukarka mają moduły Bluetooth. Czy sensowne jest ich połączenie? Sądzę, że odpowiedź jest oczywista :-)




Dlatego też standard Bluetooth wprowadził profilowanie, które określa jakiego typu jest dane urządzenie wykorzystujące moduł Bluetooth. Profili jest kilkadziesiąt, a dla nas najciekawszym (na początku drogi z mikrokontrolerami) jest profil SPP, którego funkcjonalnością jest tworzenie wirtualnych bezprzewodowych portów szeregowych COM.

Innymi słowy, aby połączyć dwa urządzenia wykorzystując Bluetooth, oba muszą posiadać ten sam profil. Dodatkowo standaryzowane profile zapewniają możliwość komunikacji pomiędzy urządzeniami różnych producentów, co w dzisiejszym świecie tysięcy producentów jest rozwiązaniem jedynym akceptowalnym na szeroką skalę.




Siłą standardu Bluetooth jest także fakt, iż jest on elastyczny i rozrasta się wraz ze zmianami na rynku produktów. Dlatego też co jakiś czas dodawane są nowe profile, a my możemy cieszyć się nowymi urządzeniami korzystającymi z łączności bezprzewodowej krótkiego zasięgu, tak bardzo ułatwiających nam życie :-)


Podsumowanie

Bluetooth poprzez swoją zaawansowaną technologię, bardzo ułatwia nam jego wykorzystanie we wszelkich urządzeniach, które nie wymagają dużych odległości oraz - a może przede wszystkim - do komunikacji naszych mikrokontrolerów z komputerami i urządzeniami im pokrewnymi.

Jego olbrzymie zalety i niewygórowana cena powodują, że warto poświęcić mu nieco czasu, co pozwoli rozwijać swoje projekty o nowe funkcjonalności.


W kolejnych odcinkach 

Czas przejść do praktyki, którą omówię w kolejnych odcinkach o Bluetooth. Zaopatrzcie się więc w co najmniej jeden moduł Bluetooth HC-05 (nie inny!), które w różnych sklepach, czy serwisach aukcyjnych znajdziecie w cenach podanych na początku artykułu. Jeżeli korzystasz z płytki stykowej, warto by moduł ten posiadał dodatkowo goldpiny umożliwiające bezpośrednie wpięcie go do płytki stykowej.





Niektóre wersje posiadają dodatkowo regulator napięcia 3,3V oraz przycisk - takie także mogą być. Generalnie jeśli kupisz dowolną wersję HC-05 będzie to wersja, którą spokojnie wykorzystamy, więc nie ma obawy, że kupisz coś co nie będzie można wykorzystać :-)

Istotne będzie także, by Twój komputer posiadał moduł Bluetooth. Jeżeli go nie ma, wystarczy dokupić za kwotę kilku złotych (wraz z wysyłką) adapter Bluetooth 2.0 EDR podłączany zewnętrznie przez USB.

Ponieważ moduł komunikuje się sygnałami na poziomie 3,3V, stąd w przykładach wykorzystywać będę ATmega8A i lub konwerter poziomów napięć oparty o tranzystory mosfet BSS138, 2N7000 lub podobne. 

Dobrze byłoby także posiadać regulator napięcia 3,3V np. LF33CV lub inny o parametrze dropout voltage wystarczająco niskim, by zadziałał prawidłowo będąc zasilanym napięciem 5V.

Jeżeli dodatkowo będziesz miał port RS-232 w swoim komputerze lub odpowiedni adapter na USB, to także będziemy go wykorzystywać.

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

4 komentarze:

  1. Bardzo ciekawy temat. Fajnie jak by zaczął się od "sterowania diody" typu włącz/wyłącz z dokładniejszym opisem dla początkujących. Po komunikację PC/Tel(android) - HC05 z programami do obsługi serw modelarskich czy też wyświetlaczy matrycowych i innych.

    Dodam że używałem Atmegę 8L na 3,3 V i dawała radę ( układ z wyświetlaczem od NOKI 3310).

    OdpowiedzUsuń
  2. Fajnie, że powstają nowe artykuły, ale może pokończyłbyś serie artykułów już rozpoczęte?
    Wiele tematów zostało pozostawionych otwartych. Ten też tak skończy?

    OdpowiedzUsuń
  3. Pięknie i prosto

    OdpowiedzUsuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.