Moduł Bluetooth WT12 w praktyce, BascomAVR cz.1.pdf

(1450 KB) Pobierz
064-068_bluetooth_cz1.indd
KURS
Moduł Bluetooth WT12
w praktyce, część 1
W ostatnich latach dał się
zauważyć szybki rozwój różnych
systemów do bezprzewodowego
przesyłania danych na
odległość od kilku metrów do
kilkudziesięciu kilometrów. Prym
wiodą standardy WiFi oraz
Bluetooth, w który wyposażony
jest prawie każdy telefon
komórkowy.
Dzięki łatwodostępnym modułom,
bez większych problemów
można stosować we własnych
aplikacjach interfejs Bluetooth,
umożliwiający bezprzewodowe
przesyłanie danych na odległość
do kilkudziesięciu metrów.
W sprzedaży znajdują się gotowe
moduły Bluetooth, które są łatwe do
wykorzystania dzięki wbudowanemu
już w nich oprogramowaniu. Tego
typu moduły są wyposażone w po-
pularne interfejsy (UART, USB), za
pomocą których można się komuniko-
wać z komputerem czy mikrokontrole-
rem. W artykule przedstawiono prak-
tyczne informacje wraz z przykładem
(za miesiąc) wykorzystania w systemie
mikroprocesorowym modułu Bluetooth
firmy Bluegiga. Za pomocą tego typu
modułów rozbudowanych o mikrokon-
troler sterujący, można bez większych
problemów zbierać dane z odległych
czujników, które mogą monitorować
różne parametry pracy maszyn wy-
korzystując do tego celu bezprzewo-
dowe łącze RS232. Przy zastosowaniu
modułów BT (Bluetooth) należy jedy-
nie ustanowić połączenie i przesyłać
dane, nie martwiąc się o korekcję
przesyłanych informacji, bo zajmuje
się tym układ sterujący modułem BT.
W ramach przykładu zostanie przed-
stawiony przykład bezprzewodowego
wyświetlacza LCD, do którego dane
będą wysyłane przy pomocy kompu-
terowego terminala i dołączonego do
komputera modułu USB Bluetooth.
Testowany przez nas moduł
( fot. 1 ) pracuje w standardzie Blueto-
oth 2.0, w którym możliwy jest trans-
fer danych z prędkością 2…3 Mb/s.
W modułach tych zintegrowano pełny
stos Bluetooth o nazwie IWrap, dzięki
któremu można się w prosty sposób
komunikować za pomocą kilkunastu
komend. W przypadku niektórych in-
nych modułów Bluetooth komunikacja
(za pomocą komend HCI) może być
bardziej skomplikowana i wymagać za-
poznania się z dokumentacją standar-
du Bluetooth.
Moduł WT12 może służyć zarów-
no do przesyłania natywnych danych
aplikacji użytkownika (transfer opar-
ty o protokół RFCOMM), jak również
transmisji sygnałów audio (posiada
interfejs PCM oraz obsługuje SCO).
Zaimplementowana obsługa protokołu
Serial Port Profile (SPP, a w nim ETSI,
TS 101 369 – GSM 07.10 Modem
Status Command ) pozwala w łatwy
sposób można zastąpić przewodowe
łącze RS232 połączeniem bezprzewo-
dowym, łącznie ze wszystkimi liniami
modemowymi, które można spotkać
w złączu DB–9. Istotną cechą stosu
IWrap jest udostępnienie użytkowniko-
wi kontroli nad usługami SDP ( Servi-
ce Discovery Protocol ). Pozwala to na
definiowanie własnych profili Blueto-
oth opartych o RFCOMM w warstwie
aplikacji. Moduł, oprócz profilu SPP
czy GAP ( General Access Profile ), nie-
zbędnego do rozpoznawania modułu
przez inne urządzenia Bluetooth oraz
ich parowania), obsługuje:
Przykład za miesiąc
Za miesiąc przedstawimy opis bezprzewodowe-
go wyświetlacza LCD, do którego dane będą
wysyłane za pomocą komputerowego terminala
i dołączonego do komputera modułu USB
Bluetooth.
Fot. 1.
64
Elektronika Praktyczna 9/2007
686083742.012.png 686083742.013.png 686083742.014.png 686083742.015.png 686083742.001.png 686083742.002.png 686083742.003.png 686083742.004.png 686083742.005.png 686083742.006.png
KURS
Tab. 1. Podstawowe parametry modu-
łu WT12
– napięcie zasilania +3,3 V,
– zgodny z Bluetooth 2.0+EDR,
– częstotliwość pracy 2,4 GHz,
– szybkość transmisji 2…3 Mb/s,
– interfejsy UART, USB 1.1/2.0, interfejs audio
PCM,
– 6 uniwersalnych linii I/O,
– moc nadajnika +4 dBm,
– wbudowana antena,
– klasa 2, zasięg do 30 metrów w otwartej
przestrzeni,
– temperatura pracy: –40…+85°C,
– wymiary 26 mm x 14 mm x 2,3 mm,
– możliwość wymiany oprogramowania modu-
łu,
– prosta obsługa za pomocą znaków ASCII,
dzięki zaimplementowanemu stosowi IWrap,
– niski pobór prądu.
Rys. 2.
Rys. 3.
– serwer OPP ( Object Push Profi-
le ), pozwalający na odbiór plików
(uproszczony FTP) czy wizytówek
(vCard),
– DUN ( Dial–Up Networking ), po-
zwalający tworzyć zdalne modemy
zgodne z ETSI 07.07 (komendy
AT) oraz PPP,
– HFP (Hands–Free Profile) oraz
HFP–AG (Hands–Free Audio–Gate-
way), pozwalające uczynić z pomo-
cą modułu słuchawkę Bluetooth
czy zestaw głośnomówiący.
Dostępna mnogość ustawień modu-
łu szybko okazuje się niezwykle przy-
datna, jak np. możliwość zdefiniowa-
nia klasy ( Class of Device ) własnego
urządzenia.
Moduły WT12 umożliwiają ob-
sługę kilku połączeń jednocześnie
metodą przełączania strumienia da-
nych lub dzięki zaimplementowane-
mu mechanizmowi multipleksowania
strumieni (MUX). Rozbudowane me-
chanizmy oszczędzania przez moduł
energii pozwalają na stosowanie go
w urządzenia zasilanych akumulato-
rami czy bateriami. Oprogramowanie
modułu może być aktualizowane za
pomocą interfejsu SPI lub UART. Mo-
R
E
K
L
A
M
A
Elektronika Praktyczna 9/2007
65
686083742.007.png
KURS
Tab. 2. Opis wyprowadzeń modułu BT WT12
PIN
Symbol
Opis
modułu WT12 (sygnalizacja połącze-
nia, błędu itp.).
Na rys. 3 pokazano rozkład wy-
prowadzeń modułu WT12, natomiast
w tab. 2 przedstawiono opis ich prze-
znaczenia. Do linii RF można dołą-
czyć zewnętrzną antenę zwiększając
tym samym zasięg komunikacji, ale
tylko wtedy gdyby w module WT12
nie była montowana antena. Interfejs
UART składa się z czterech sygnałów
TXD, RDX, NCTS i NRTS. Sygnały
NCTS i NRTS służą do sprzętowej
kontroli przepływu danych. W przy-
padku komunikacji bez kontroli prze-
pływu danych, linię NCTS najlepiej
dołączyć do masy, zaś linię NRTS
pozostawić niepołączoną. Można rów-
nież przy komunikacji z brakiem kon-
troli przepływu danych, linie NCTS
i NRTS połączyć ze sobą. Dodatko-
we linie DTR, DSR, DCD interfejsu
UART mogą być implementowanie
z wykorzystaniem uniwersalnych li-
nii I/O (PIO). Interfejs USB pracuje
w trybie Full Speed , czyli z prędkością
do 12 Mb/s. Interfejs SPI wykorzystu-
je sygnały MOSI, MISO, NCSB, CLK
i może służyć do programowania pa-
mięci Flash modułu. Interfejs PCM
służący do przesyłania danych audio
(bez większych problemów moduł
może pracować jako bezprzewodo-
wa słuchawka) umożliwia współpra-
cę z kodekami 13 lub 16–bitowymi,
8–bitowymi m–law lub A–law.
Duża liczba dostępnych interfej-
sów sprawia, że moduł WT12 jest
1, 14, 15, 28, 29, 31 GND
Masa
2, 16
VDD
Zasilanie +3,3V
3
PIO2
Programowana linia I/O
4
PIO3
Programowana linia I/O
5
NRTS
Linia NRTS interfejsu UART
6
RXD
Linia RXD interfejsu UART
7
PCMO
Linia wyjściowa interfejsu PCM
8
USB_D+
Linia D+ interfejsu USB
9
USB_D–
Linia D– interfejsu USB
10
NCTS
Linia NCTS interfejsu UART
11
PCMI
Linia wejściowa interfejsu PCM
12
PCMC
Linia zegarowa interfejsu PCM
13
PCMS
Linia synchronizacji interfejsu PCM
17
RES
Linia zerowania
18
PIO6
Programowana linia I/O
19
PIO7
Programowana linia I/O
20
PIO4
Programowana linia I/O
21
NCSB
Linia aktywująca interfejs SPI
22
SCLK
Linia zegarowa interfejsu SPI
23
MISO
Linia wyjściowa interfejsu SPI
24
MOSI
Linia wejściowa interfejsu SPI
25
PIO5
Programowana linia I/O
26
TXD
Linia TXD interfejsu UART
27
NC
Linia niewykorzystana
30
RF Linia przeznaczona do podłaczenia zewnętrznej anteny
duły wyposażono w interfejsy UART,
USB, SPI, PCM. Dostępnych jest
także 6 dodatkowych linii I/O, któ-
rych stany mogą być transmitowane
drogą radiową. W artykule nie będą
przedstawione szczegółowe informacje
o standardzie Bluetooth, który można
znaleźć w dokumentacji tego standar-
du, zostaną przedstawione informacje
o praktycznym wykorzystaniu standar-
du Bluetooth we własnych aplikacjach
z wykorzystaniem modułu WT12.
moduł będzie przesyłał sygnały audio,
będzie wykorzystywany interfejs PCM
z dołączonym do niego kodekiem. Mo-
duł posiada 6 cyfrowych programo-
wanych linii I/O, których stan można
zmieniać z wykorzystaniem komend
protokołu IWrap. Linie te można wy-
korzystać np. do sygnalizacji stanu
Budowa modułu WT12
Na rys. 2 pokazano schemat blo-
kowy moduły WT12. Chip Bluecore04
integruje stos BT z układem nadawczo–
odbiorczym. Układ ten umożliwia
transmisję danych z szybkością do
3 Mb/s, posiada 48 kB pamięci RAM
i jest taktowany z częstotliwością
26 MHz. Pamięć Flash modułu o po-
jemności 8 Mb jest wykorzystywana
do przechowywania stosu protokołu
Bluetooth. Pozostałe bloki modułu są
związane z jego częścią radiową.
Jak wspomniano moduł WT12 po-
siada kilka interfejsów komunikacyj-
nych, których wykorzystanie będzie
zależne od aplikacji, w jakiej będzie
on pracował. W większości przypad-
ków przy współpracy z mikrokontro-
lerami, będzie wykorzystywany inter-
fejs UART (RS232). W przypadku gdy
Rys. 4.
66
Elektronika Praktyczna 9/2007
686083742.008.png 686083742.009.png 686083742.010.png
KURS
bardzo uniwersalny i będzie pasował
do większości projektowanych aplika-
cji. W dalszej części artykułu do ko-
munikacji modułu z mikrokontrolerem
wykorzystano tylko interfejs UART.
Tab. 3. Komendy stosu IWrap
Komendy Opis
BER Komenda zwraca ilość błędów połączenia podanego jej parametr
CALL Komenda używana do inicjacji połączenia z urządzeniami Bluetooth
CLOSE Komenda służy do zamknięcia poprzednio otworzonego połączenia
HELP Komenda pomocy zwracająca dostępne w stosie IWrap komendy
INFO Komenda wyświetla informacje o stosie IWrap
INQUIRY Komenda służy do wyszukiwania innych urządzeń Bluetooth
IC Komenda służąca do zatrzymania zapytania wywołanego komendą INQUIRY
LIST Komenda pokazuje informację o istniejących połączeniach
NAME Komenda służąca do odczytu nazwy urządzenia Bluetooth
RSSI Komenda zwraca poziom sygnału radiowego
RESET Komenda zeruje moduł Bluetooth
SCO Komenda umożliwiająca połączenie z urządzeniami audio
SDP Komenda wykorzystywana do odczytu usług innych urządzeń Bluetooth
SELECT Komenda umożliwia przełączenie modułu w tryb danych
SET Komenda będąca zbiorem kilkunastu rozkazów umożliwiającym konfigurację wielu
parametrów stosie IWrap.
SLEEP Komenda umożliwiająca wprowadzenie modułu WT12 w tryb uśpienia
TESTMODE Komenda ta uruchamia moduł WT12 w tryb testu
TXPOWER Komenda używana do kontroli zasilania układu transmitującego dane (TX) aktywnego
połączenia
BOOT Komenda umożliwiająca zmianę parametrów modułu WT12
TEST Komenda związana z testowaniem układu radiowego modułu WT12
PING Komenda wysyła pakiet testowych danych do innego urządzenia Bluetooth
Komunikacja z modułem WT12
Komunikacja z modułem WT12
jest bardzo prosta dzięki zaim-
plementowanemu oprogramowaniu
IWrap. Na rys. 4 pokazano stos
IWrap, który został osadzony z sto-
sie Bluetooth, dzięki czemu do pra-
cy moduły nie jest niezbędny do-
datkowy mikrokontroler. Do prostej
komunikacji z modułem wykorzysty-
wany jest interfejs UART sterowany
znakami ASCII.
Dokumentacja protokołu IWrap
zajmuje ponad 100 stron, dlatego
też zostaną opisane najważniejsze
elementy tego protokołu wraz z naj-
ważniejszymi komendami, które będą
wystarczające do wykorzystania Blu-
etooth we własnych aplikacjach. Do
komunikacji z modułem WT12 wy-
starczy terminal komputerowy. Do-
myślnie IWrap używa następujących
ustawień interfejsu UART: prędkość
115200 b/s, 8–bitów danych, 1–bit
stopu, brak bitu parzystości, włą-
czone sprzętowe sterowanie stru-
mieniem danych. Moduł WT12
może pracować w dwóch głównych
trybach: przesyłania danych ( Data
Mode ) oraz w trybie komend ( Com-
mand Mode ). Tryb komend jest do-
myślnym trybem, gdy z modułem
nie są ustanowione żadne połącze-
nia. W przypadku gdy są ustanowio-
ne połączenia, domyślnym trybem
będzie tryb przesyłania danych.
W trybie przesyłania danych dane są
przesyłane w obie strony w sposób
przeźroczysty do innego urządzenia
(np. innego interfejsu UART). Mię-
dzy trybem danych a komend moż-
na się przełączać w dowolnym mo-
mencie. Do trybu danych nie moż-
na się przełączyć tylko gdy nie ma
żadnych aktywnych połączeń. Prze-
łączanie pomiędzy trybem danych
a komend odbywa się za pomocą
specjalnej sekwencji znaków wysyła-
nych w określonym czasie:
<opóźnienie co najmniej
1 sekundy><esc><esc><esc><
opóźnienie co najmniej 1
sekundy>
Znak esc ( escape ) może być
zastąpiony dowolnym innym zna-
kiem. Do zmiany trybu pracy mo-
dułu można również wykorzystać
zewnętrzny sygnał DTR. W protokole
ECHO
Komenda ta wysyła szczególny zbiór znaków do urządzenia Bluetooth z którym jest
aktywne połączenie
IWrap istnieje W stosie IWrap prze-
widziano również specjalny tryb
nazwany Multiplexing Mode . W tym
trybie jest możliwość niemal równo-
ległej wymiany danych z innymi po-
łączonymi urządzeniami Bluetooth,
bez konieczności cyklicznego przełą-
czania się pomiędzy trybami danych
poszczególnych połączeń. Ponadto
jest możliwa jednoczesna transmi-
sja danych i sterowanie modułem
komendami stosu IWrap. Tryb ten
będzie idealny w przypadku zbiera-
nia danych z kilku oddalonych czuj-
ników, jeśli np. chcemy odebranym
wartościom przypisać ten sam czas.
W oprogramowaniu IWrap zaimple-
mentowano tryb Audio Mode wraz
z obsługą profili audio.
Oprogramowanie iWrap, które
jest wciąż przez producenta roz-
wijane, oferuje kilkanaście rozka-
zów, które skrótowo przedstawiono
w tab. 3 . Dokładniejszego opisu roz-
kazów należy szukać w dokumenta-
cji protokołu IWrap. Każda komenda
powinna być zatwierdzona znakiem
CR (ASCII 013). Komendy posiadają
następującą składnię:
Komenda {wymagany
parametr} [opcjonalny
parametr] statyczny teks
[2… opcjonalny parametr]
Ustawione za pomocą dostępnych
komend parametry modułu WT12,
poza drobnymi, racjonalnymi wy-
jątkami, są zapisywane w nieulotnej
pamięci i nie ma potrzeby ich wy-
syłania po każdorazowym włączeniu
zasilania.
Moduł może być skonfigurowa-
ny jako układ nadrzędny Master
lub podrzędny Slave (w znaczeniu
zgodnym ze specyfikacją Bluetooth).
Domyślnie moduł samoczynnie prze-
stawia się w odpowiedni tryb, po-
zwalając na pracę nie tylko w sie-
ciach Bluetooth Piconet, ale również
ScatterNet. Tryb można również
wymuszać dynamicznie dla danego
połączenia. Urządzenie typu Master
zarządza siecią Piconet, synchroni-
zując pozostałe urządzenia typu Sla-
ve , których aktywnych (nie w trybie
PARK) w danej sieci Piconet może
być maksymalnie 7. Moduł, któ-
ry ma zestawić połączenie z innym
urządzeniem, musi znać jego adres
BDA (moduły BT mają swoje adre-
sy tak jak np. karty sieciowe MAC)
lub jego nazwę (o ile jest publicznie
dostępna – należy wtedy przeprowa-
dzić skanowanie otoczenia INQUIRY).
Dostępne w protokole IWrap komendy
są przejrzyste i proste w zastosowaniu
o czym się będzie można przekonać
w przykładowej aplikacji bezprzewo-
dowego wyświetlacza LCD.
Marcin Wiązania, EP
marcin.wiazania@ep.com.pl
68
Elektronika Praktyczna 9/2007
686083742.011.png
Zgłoś jeśli naruszono regulamin