16,00 zł
(w tym 8% VAT)
PRICE: 8 EUR Nakład 27000 egz.
OD WYDAWCY
Własność intelektualna
Prenumerata naprawdę warto
16 kwietnia bieżącego roku kolejny raz wspieraliśmy konkurs o nazwie Elektronik Roku corocznie organizowany przez Zespół Szkół Technicznych w Ostrowie Wlkp. Mówiąc krótko – wspaniała impreza, kapitalne, pomysłowe, często wykonane metodą „makgajwerowską” urządzenia. Przykłady tego, co może zdziałać prawdziwy entuzjazm. Moim zdaniem szkole i jej sponsorom należy się ogromne uznanie za to, że wspierają pomysły młodzieży. W sytuacji, w której bardzo często słyszy się, że wszystko już dawno zostało wymyślone i teraz, aby powstało coś wartościowego potrzebne jest ogromne laboratorium, uczniowie technikum budują takie urządzenia, że naprawdę „szczęka opada”. Ale przy okazji tej imprezy kolejny raz naszła mnie pewna refleksja. Niektóre z przedstawionych pomysłów, oprócz tego, że naprawdę są genialne (niektóre prezentowaliśmy na łamach EP, np. breloczek z akcelerometrem sygnalizujący upuszczenie przedmiotu, do którego jest przyczepiony), mają wymiar komercyjny i można by było na ich sprzedaży po prostu zarobić. Osoby, które kiedykolwiek rozpoczynały własny biznes dobrze wiedzą, że dobry pomysł i funkcjonujący prototyp, to troszkę za mało – do uruchomienia produkcji potrzebne są jeszcze pieniądze. Gorzej, że jeśli nasz produkt odniesie sukces, to znajdą się też naśladowcy, więc w jakiś sposób trzeba zabezpieczyć naszą własność intelektualną. I tu przydałoby się opatentować nasz pomysł. Niestety, sam proces patentowania przebiega tak, że tylko nieliczni mogą sobie na niego pozwolić. Po pierwsze, musimy opisać nasz patent. Opis to zadanie dla fachowca, najczęściej nie dla inżyniera – projektanta, ponieważ musi być tak skonstruowany, aby patent został przyznany i był trudny do złamania. A to już zadanie dla dobrego rzecznika patentowego współpracującego z autorem patentu lub z firmą, w której jest zatrudniony. Rzecznik najczęściej nie rozumie, na czym polega patent, a to zrozumienie jest kluczem do napisania dobrego wniosku, więc trzeba poświęcić czas i nauczyć go, na czym polega wynalazek. Z kolei rzecznik musi wytłumaczyć wnioskodawcy, co można opatentować, a co nie. Zdarza się, że np. z 10 elementów, które przedsiębiorca chciałby chronić można opatentować 1. Jeśli napisze się zgłoszenie na te pozostałe 9, to urząd odrzuci zgłoszenie. Napisanie wniosku patentowego zajmuje do dwóch tygodni, a koszt takiej usługi, to od 2 do około 7 tysięcy złotych. Kiedy opis jest już gotowy, trzeba złożyć wniosek do Urzędu Patentowego, opłacić rzecznikowi pełnomocnictwo (min. 600 zł) i uiścić opłaty skarbowe. Np. za zgłoszenie jednego lub dwóch wynalazków – 550 zł, za każdą stronę ponad 20 stron opisu, zastrzeżeń i rysunków – 25 zł. Wniosek o przyznanie patentu trafia do UP i wtedy rusza machina administracyjna. Najpierw UP sprawdza wniosek formalnie (czy są wszystkie załączniki, rysunki, czy opłaty są wniesione itp.) i merytoryczne (czy nikt nie zgłosił już czegoś takiego). Po 18 miesiącach urząd upublicznia informacje o wynalazku. Teraz inni gracze na rynku mają pół roku, podczas którego mogą wnosić swoje zastrzeżenia (np. jeśli używają takiej technologii, mają na nią patent itp.). Jeśli nie wpłynie żadna uwaga, po 6 miesiącach urząd zaczyna jeszcze raz badać wniosek, ale dokładniej. Gdy wszystko jest w porządku, przyznaje patent. Cała procedura zajmuje minimum 5 lat! Sam patent to nie wszystko. Trzeba jeszcze zapłacić za utrzymanie ochrony. Pierwsze trzy lata kosztują 480 zł. Za każdy kolejny płacimy więcej, np. za czwarty rok musimy zapłacić 250 zł, za dwudziesty – 1550. W sumie 20 lat ochrony w Polsce kosztuje 14 630 zł. Patent krajowy obowiązuje tylko na terytorium Polski. Zatem żadna firma nie może w Polsce produkować ani sprzedawać identycznego produktu. Ale poza granicami nie ma żadnych przeszkód. I jak na poniesienie takich kosztów (wszak to dopiero wierzchołek góry) może pozwolić sobie uczeń technikum? Jedyna nadzieja jest taka, że pomysłami zainteresuje się też biznes, bo naprawdę warto. Ot choćby na przykład kranem, z którego wypływa woda o kolorze zależnym od temperatury. Czy nie jest to genialne?! A póki co dowiedziałem się, że niektóre z prezentowanych pomysłów w cudowny sposób już zmieniły swoich twórców… Szkoda, naprawdę szkoda.
Opracowano na podstawie http://wyborcza.biz/biznes „Ile kosztuje patent i dlaczego tak drogo”
ELEKTRONIKA PRAKTYCZNA 5/2015
Miesięcznik „Elektronika Praktyczna” (12 numerów w roku) jest wydawany przez AVT-Korporacja Sp. z o.o. we współpracy z wieloma redakcjami zagranicznymi.
wydawnictwo
Wydawca: AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 99, faks: 22 257 84 00
Adres redakcji: 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 49, 22 257 84 63 faks: 22 257 84 67 e-mail:
[email protected] www.ep.com.pl Redaktor Naczelny: Wiesław Marciniak Redaktor Programowy, Przewodniczący Rady Programowej: Piotr Zbysiński Zastępca Redaktora Naczelnego, Redaktor Prowadzący: Jacek Bogusz, tel. 22 257 84 49 Redaktor Działu Projektów: Damian Sosnowski, tel. 22 257 84 58 Szef Pracowni Konstrukcyjnej: Grzegorz Becker, tel. 22 257 84 58 Menadżer magazynu Andrzej Tumański , tel. 22 257 84 63 e-mail:
[email protected] Marketing i Reklama: Katarzyna Gugała, tel. 22 257 84 64 Bożena Krzykawska, tel. 22 257 84 42 Katarzyna Wiśniewska, tel. 22 257 84 65 Grzegorz Krzykawski, tel. 22 257 84 60 Andrzej Tumański, tel. 22 257 84 63 Sekretarz Redakcji: Grzegorz Krzykawski, tel. 22 257 84 60 DTP i okładka: Dariusz Welik Redaktor strony internetowej www.ep.com.pl Mateusz Woźniak Stali Współpracownicy: Arkadiusz Antoniak, Rafał Baranowski, Lucjan Bryndza, Marcin Chruściel, Jarosław Doliński, Andrzej Gawryluk, Krzysztof Górski, Tomasz Gumny, Tomasz Jabłoński, Michał Kurzela, Szymon Panecki, Krzysztof Paprocki, Krzysztof Pławsiuk, Sławomir Skrzyński, Jerzy Szczesiul, Ryszard Szymaniak, Adam Tatuś, Marcin Wiązania, Tomasz Włostowski, Robert Wołgajew Uwaga! Kontakt z wymienionymi osobami jest możliwy via e-mail, według schematu: imię
[email protected] Prenumerata w Wydawnictwie AVT www.avt.pl/prenumerata lub tel: 22257 84 22 e-mail:
[email protected] www.sklep.avt.pl, tel: (22) 257 84 66 Prenumerata w RUCH S.A. www.prenumerata.ruch.com.pl lub tel: 801 800 803, 22 717 59 59 e-mail:
[email protected] Wydawnictwo AVT-Korporacja Sp. z o.o. należy do Izby Wydawców Prasy
Copyright AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 Projekty publikowane w „Elektronice Praktycznej” mogą być wykorzystywane wyłącznie do własnych potrzeb. Korzystanie z tych projektów do innych celów, zwłaszcza do działalności zarobkowej, wymaga zgody redakcji „Elektroniki Praktycznej”. Przedruk oraz umieszczanie na stronach internetowych całości lub fragmentów publikacji zamieszczanych w „Elektronice Praktycznej” jest dozwolone wyłącznie po uzyskaniu zgody redakcji. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczanych w „Elektronice Praktycznej”.
3
Nr 5 (269) Maj 2015
Trójdrożna, cyfrowa, stereofoniczna zwrotnica głośnikowa Dobre elementy bierne do zwrotnic głośnikowych są koszmarnie drogie. Wykonanie i strojenie zespołu wymaga wielu prób… A może inaczej, a może po prostu „wyklikać” aplikację w Sigma Studio?
Sterownik z serwerem Web Nie lada gratka dla miłośników automatyki domowej – projekt sterownika łatwego w budowie, ale o zaawansowanych możliwościach. Stan 4 wyjść i 4 wejść można kontrolować poprzez sieć Ethernet. Sterownik może wyświetlać strony HTML przygotowane przez użytkownika i wysyłać e-maile z powiadomieniami.
iControlSensor Na łamach EP opisaliśmy system typu „inteligentny dom”
Projekty DSP1701_3WCRSV – trójdrożna, cyfrowa, stereofoniczna zwrotnica głośnikowa . ........................ 20 ARS3-ER – sterownik z serwerem Web (1). Możliwość załączania 4 wyjść oraz kontroli/wizualizacji poziomu na 4 wejściach .......................... 24 Miernik napięcia i prądu z USB ....................................................................................................... 29 iControlSensor. Czujnik do pomiaru temperatury dla iControl........................................................ 33
Miniprojekty Iluminofonia LED RGB . .................................................................................................................. 40 Optoelektroniczny czujnik zbliżeniowy ........................................................................................... 42 Sterownik wentylatora z czujnikiem wilgotności powietrza ........................................................... 43
Projekty czytelników Impulsowa ładowarka akumulatorów ołowiowych ........................................................................ 46
Wybór konstruktora TEMAT NUMERU Moduły interfejsów bezprzewodowych sieci lokalnych i osobistych ............................................... 52
Prezentacje TEMAT NUMERU Sieci bezprzewodowe w przemyśle ................................................................................................ 59
Podzespoły TEMAT NUMERU Nowoczesne technologie łączności dla IoT . ................................................................................... 60 TEMAT NUMERU Zestaw startowy dla mikrokontrolera CC2650................................................................................ 63 TEMAT NUMERU 66 IoT według u-bloxa ........................................................................................................................ MSP432 – mikrokontroler do nowoczesnych aplikacji .................................................................... 68 Nowe, „graficzne” mikrokontrolery w rodzinie STM32F4 ............................................................... 70 PIC16F176x – więcej niż mikrokontroler ......................................................................................... 74
Sprzęt Novitec APM3 – wskaźnik napięcia akumulatora samochodowego do gniazda zapalniczki . ......... 73 Oscyloskop Rigol MSO2102A ......................................................................................................... 78 Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (3). CAN, LIN.................. 83
o nazwie iControl. W bieżącym
Kursy
numerze opublikujemy opis
Połączenie DS18B20 z STM32. Projekt dla środowiska CooCox ...................................................... 90 TEMAT NUMERU Internet Rzeczy w przykładach (5). Sterownik inteligentnej skrzynki na listy .................................. 99 Projektowanie urządzeń z modułami GSM ................................................................................... 104 Programowanie aplikacji mobilnych (4). Komunikacja Bluetooth ................................................. 108
przeznaczonego dla niego modułu iControlSensor służącego do pomiaru temperatury.
Miernik napięcia i prądu USB Coraz więcej urządzeń elektronicznych jest zasilanych z USB. Budowa złącza interfejsu uniemożliwia wykonanie pomiaru z użyciem „normalnego” multimetru. Prezentujemy urządzenie, które zmierzy i wyświetli pobierany prąd i napięcie USB, bez zaburzania komunikacji. 4
Automatyka i mechatronika MyRIO – platforma edukacyjna od National Instruments (1) ........................................................ 118 Czujniki ultradźwiękowe w automatyce przemysłowej ................................................................. 122 Od wydawcy .................................................................................................................................... 3 Nie przeocz. Podzespoły ................................................................................................................... 6 Nie przeocz. Koktajl niusów ........................................................................................................... 12 Niezbędnik elektronika ................................................................................................................... 51 Info . ............................................................................................................................................ 113 Kramik i rynek .............................................................................................................................. 130 Oferta. ......................................................................................................................................... 132 Prenumerata ................................................................................................................................ 133 Zapowiedzi następnego numeru .................................................................................................. 134
Redakcyjny serwer FTP, a na nim materiały dodatkowe oraz poprzednie części do artykułów. Dane wymagane do logowania na serwerze FTP Elektroniki Praktycznej:
host: ftp://ep.com.pl użytkownik: 11877, hasło: ragjkdt9
Uwaga: na serwerze FTP są dostępne materiały począwszy od numeru 12/1998 do wydania bieżącego. Dostęp do poszczególnych materiałów dla Czytelników EP po podaniu unikatowego hasła opublikowanego w EP.
STM32F7: Cortex-M7 w rodzinie STM32
Podstawowe cechy mikrokontrolerów STM32F7: • rdzeń Cortex-M7 • taktowanie do 200 MHz • prędkość wykonywania programu do 428 DMIPS • do 1 MB Flash • zintegrowana pamięć TC-RAM • zintegrowany kontroler pamięci zewnętrznych (magistrala 16 lub 32 bity): SRAM, PSRAM, SDRAM/LPSDR SDRAM, NOR/NAND • do 168 linii GPIO (w tym do 166 z tolerancją 5 V) • nowy system magistral (AXI/AHB) www.st.com
NIE PRZEOCZ Podzespoły
nowe Z kilkuset nowości wybraliśmy te, których nie wolno przeoczyć. Bieżące nowości można śledzić na www.elektronikaB2B.pl funkcji programowych. Zapewniają energooszczędną pracę, o czym świadczy pobór mocy mniejszy o 95% moc od układów Cortex M0 i mniejszy o 90% od układów Cortex M4. Aktualnie BHI160 jest najbardziej energooszczędnym czujnikiem inercyjnym w pełni kompatybilnym z systemem Android Lollipop, umożliwiającym realizację kompletnego układu 9-osiowego przy wykorzystaniu zewnętrznego magnetometru. Jego pobór prądu w trybie aktywnym nie przekracza 1,55 mA. Sensory są oferowane w obudowach LGA o wymiarach BHI160 – 3 mm×3 mm×0,95 mm, BHA250 – 2,2 mm×2,2 mm×0,95 mm, których objętość odpowiada podobnym czujnikom inercyjnym bez wbudowanego procesora DSP. http://goo.gl/XNBz3r
Najmniejsze układy FPGA
Miniaturowe czujniki inercyjne zintegrowane z DSP Układ BHI160 to 6-osiowy, natomiast BHA250 to 3-osiowy czujnik inercyjny zintegrowany z 32-bitowym procesorem DSP Fuser Core. Mogą one znaleźć zastosowanie np. w smartfonach (systemy nawigacji inercyjnej, rozpoznawanie gestów), grach elektronicznych, inteligentnych zegarkach, akcesoriach sportowych lub wyświetlaczach nagłownych. Układ BHI160 zawiera żyroskop i czujnik przyśpieszenia, a BHA250 sam czujnik przyśpieszenia. Zaletami tych układów są niewielkie wymiary, mały pobór energii oraz wbudowany DSP odciążający system nadrzędny od zadań związanych z obliczeniami nawigacyjnymi. Układy BHI160 i BHA250 zawierają kompletny stos protokołów dla systemu Android Lollipop. Umożliwiają łatwe rozszerzenie funkcjonalności za pomocą zewnętrznych sensorów i dodawania kolejnych REKLAMA
6
Lattice Semiconductor wprowadza do sprzedaży serię układów FPGA typu iCE40 Ultra w obudowach WLCSP BGA o wymiarach zaledwie 1,4 mm×1,4 mm×0,45 mm z 16 wyprowadzeniami w rastrze 0,35 mm. W porównaniu z najbliższymi odpowiednikami układy te zajmują blisko 70% mniej
Porównanie parametrów układów FPGA UltraLite / Ultra Parametr Bloki LUT Nieulotna pamięć konfiguracyjna Pobór prądu w stanie statycznym EBR RAM (Kb) PLL I 2C SPI Oscylator 10 kHz Oscylator 48 MHz Wyjście o wydajności prądowej 24 mA Wyjścia łączone o wydajności prądowej 100 mA + 400 mA Wyjście o wydajności prądowej 500 mA Bloki mnożnika 16 × 16 Multiply i 32-bitowego akumulatora PWM
iCE40 UltraLite UL640 UL1K 640 1248
iCE40 Ultra iCE5LP1K iCE5LP2K iCE5LP4K 1100 2048 3520
tak
tak
tak
tak
tak
35 mA
35 mA
71 mA
71 mA
71 mA
56 1 2 – 1 1
56 1 2 – 1 1
64 1 1 1 1 1
80 1 2 2 1 1
80 1 2 2 1 1
3
3
3
3
3
1
1
–
–
–
–
–
1
1
1
–
–
2
4
4
tak
tak
tak
tak
nie
ELEKTRONIKA PRAKTYCZNA 5/2015
Jedna platforma nieskonczone ´ mo˙zliwosci ´
Kompleksowe srodowisko ´ do projektowania systemów kontrolno-pomiarowych i testujacych ˛
NI LabVIEW to kompleksowe srodowisko ´ projektowe, oferujace ˛ bezkonkurencyjna˛ integracje˛ z szeroka˛ gama˛ platform sprzetowych ˛ oraz umo˙zliwiajace ˛ spełnienie wymagan´ ka˙zdej aplikacji kontrolnej i pomiarowej. LabVIEW stanowi kwintesencje˛ graficznego podejscia ´ do projektowania systemów, opartego na otwartej platformie programowej oraz rekonfigurowalnym sprzecie, ˛ pozwalajacego ˛ znaczaco ˛ przyspieszyc´ realizacje˛ projektów in˙z ynierskich
>> Odwiedz´ poland.ni.com/labview Zarejestruj sie, ˛ aby wziac ˛ ´ bezpłatny udział w wydarzeniu Dzien´ Programistów LabVIEW: poland.ni.com/wydarzenia
800 889 897 National Instruments Poland Sp. z o.o. ■ ul. Grójecka 5, 02-025 Warszawa ■ Tel: +48 22 328 90 10 • Fax: +48 22 331 96 40 ■ Strona internetowa: http://poland.ni.com Adres e-mail:
[email protected] ■ KRS 86646, Sad Rejonowy dla m. st. Warszawy, XIII Wydział Gospodarczy Krajowego Rejestru Sadowego Kapitał zakładowy: 100,000.00 PLN ■ NIP 527-22-69-641 © 2015 National Instruments Corporation. Wszystkie prawa zastrzezone. LabVIEW, National Instruments, NI, ni.com to zarejestrowane znaki handlowe National Instruments. Inne wymienione produkty i firmy to zarejestrowane znaki handlowe i nazwy firmowe odpowiednich firm. 21320
Oprogramowanie LabVIEW pomaga tworzyc´ aplikacje w sposób podobny do tego, jak myslimy ´ – graficznie.
NIE PRZEOCZ powierzchni. Ponadto, pobierają o 30% mniej mocy, co jest ich kolejnym ważnym atutem w przypadku zastosowania w urządzeniach zasilanych z baterii. Oprócz wersji WLCSP, są oferowane również w nieco większych obudowach ucBGA o powierzchni 2,5 mm×2,5 mm z 36 wyprowadzeniami. Dla nowych układów producent oferuje kilka projektów referencyjnych pozwalających skrócić czas wprowadzania nowych produktów na rynek. Są to m.in. krokomierz, emulator kodu kreskowego, nadajnik/odbiornik podczerwieni do zdalnego sterowania, sterownik diody LED RGB oraz ekspandery I2C i SPI. http://goo.gl/B8IZqY
tranzystorami MOSFET o wydajności prądowej 40 A lub więcej. Akceptuje napięcie wejściowe z zakresu 4,75…25 V i umożliwia generowanie napięcia z zakresu 0,6...5,5 V. Może znaleźć zastosowanie w układach zasilania najnowszych, 64-bitowych mikroprocesorów ARM lub układów DSP, FPGA i ASIC. Układ jest łatwy do skonfigurowania za pomocą dostarczanego przez firmę Exar oprogramowaniu PowerArchitect. Jego programowanie odbywa się przez interfejs szeregowy I2C/SMBus, który może być również użyty do monitorowania i dynamicznej kontroli systemu zasilania. Dodatkowo, XR77128 zawiera 5 konfigurowalnych linii GPIO mogących pracować jako wyjścia statusu, alarmowe lub ustalające sekwencję włączania napięć zasilających. Układ jest oferowany w obudowie TQFN zajmującej powierzchnię 7 mm×7 mm. http://goo.gl/71XkmM
4-wyjściowy kontroler DC-DC step-down dla DrMOS XR77128 to kontroler przetwornicy DC-DC step-down do wielowyjściowych systemów zasilania. Umożliwia sterowanie czterema zewnętrznymi, niezależnymi stopniami mocy z modułami DrMOS lub REKLAMA
Nowy modem radiowy Firma RF Solutions wprowadziła do oferty kolejny modem radiowy dostarczany w postaci modułu do zamontowania na płytce drukowanej. Kappa pracuje w paśmie 868 MHz z modulacją FM. Charakteryzuje się bardzo łatwą aplikacją – wymaga jedynie doprowadzenia zasilania, dołączenia anteny i sygnału danych za pomocą UART. Zapewnia maksymalną szybkość transmisji 56 kbps. Moc nadajnika wynosi +13 dBm, a czułość odbiornika –121 dBm, co pozwala na uzyskanie zasięgu do 500 m. Po nadaniu modułowi indywidualnego adresu może on pracować w sieci. Obok standardowych funkcji modemowych, Kappa oferuje unikalny tryb pracy Acknowledge Secure Mode ograniczający ryzyko utraty przesyłanych informacji. W tym trybie przy braku potwierdzenia odebrania pakietu jest on automatycznie retransmitowany (do 10 razy) przed wznowieniem normalnej transmisji. Radiomodemy Kappa są dostarczane w postaci modułów o wymiarach 31,5 mm×11 mm do montażu SMT i przewlekanego (KAPPA-M868 i KAPPA-M868-SO). http://goo.gl/QaLwOy
Miniaturowy, barometryczny czujnik ciśnienia Układ DPS310 to barometryczny czujnik ciśnienia MEMS opracowany przez Infineon Technologies AG, charakteryzujący się miniaturowymi wymiarami i bardzo małym poborem mocy. Zapewnia przy tym dużą rozdzielczość odpowiadającą różnicy wysokości równej 5 cm! Może znaleźć zastosowanie w urządzeniach przenośnych do monitorowania pogody, rozpoznawania gestów lub nawigacji wewnątrz pomieszczeń. W odróżnieniu od wielu podobnych, piezoelektrycznych czujników ciśnienia, DPS310 korzysta z technologii pojemnościowej zapewniającej dużą precyzję pomiaru nawet przy szybkich zmianach temperatury
8
ELEKTRONIKA PRAKTYCZNA 5/2015
Committed to excellence
otoczenia. Jest to ogromną zaletą, jeśli wziąć pod uwagę warunki występujące wewnątrz urządzeń bateryjnych, gdzie temperatura może szybko wzrosnąć z uwagi na małą przestrzeń i obecność źródeł ciepła. Układ jest oferowany w obudowie LGA-8 o wymiarach 2,5 mm×2,0 mm×1,0 mm. W stanie aktywnym pobiera prąd o natężeniu 3 mA, natomiast w trybie standby 1 mA. Wbudowana pamięć FIFO przechowuje wyniki ostatnich 32 pomiarów i pozwala na dodatkowe obniżenie poboru mocy, wydłużając czas, przez który host może pozostawać w stanie uśpienia pomiędzy kolejnymi odczytami. Zakres pomiarowy DPS310 rozciąga się od 300 do 1200 hPa, a dopuszczalny zakres temperatury pracy od –40 do +85°C. Do transmisji danych przewidziano interfejs I2C/SPI. Układ zawiera wewnętrzną pamięć współczynników kalibracyjnych do precyzyjnej kompensacji ciśnienia i temperatury. http://goo.gl/aOfVnw
Sensors
Wireless
Microcontrollers
Power Management
Discover the Internet of Things
Design SMART Products RUTRONIK SMART offers you a new range of bundled hardware, software and services. RUTRONIK SMART brings together entire solutions to build applications for: Healthcare Comfort Lifestyle Safety
Learn more: www.rutronik.com/smart
Mikroprocesory aplikacyjne ApP Lite z kontrolerem Bluetooth i żyroskopem
ELEKTRONIKA PRAKTYCZNA 5/2015
Get in touch:
[email protected] o r call +49 (0) 7231 801-1320
REKLAMA
Toshiba powiększa rodzinę mikroprocesorów aplikacyjnych ApP Lite o dwa nowe układy o oznaczeniach TZ1031MBG i TZ1011MBG stanowiące rozszerzenie serii TZ1000. Zostały one zaprojektowane do zastosowania m.in. w aplikacjach IoT oraz akcesoriach sportowych przymocowywanych do ciała użytkownika. Wspólne elementy obu układów to jednostka obliczeniowa ARM Cortex-M4F z procesorem DSP, 8 Mb pamięci NOR Flash, jednostka obliczeń zmiennoprzecinkowych, 24-bitowy przetwornik A/C delta-sigma z trójwejściowym multiplekserem oraz kontroler Bluetooth Low Energy z obwodem w.cz. Układ TZ1031MBG ma wbudowany żyroskop, a TZ1011MBG
www.rutronik.com
9
NIE PRZEOCZ żyroskop i magnetometr. Oba układy charakteryzują się bardzo dużą skalą integracji pozwalającą na realizację miniaturowych urządzeń przenośnych praktycznie bez potrzeby stosowania komponentów zewnętrznych. Wbudowany kontroler Bluetooth zapewnia transmisję danych pomiarowych do urządzeń zewnętrznych, np. smartfonów czy tabletów. Układy TZ1031MBG i TZ1011MBG są wytwarzane w obudowach do montażu SMD o wymiarach 9,8 mm×8,5 mm×1,6 mm. Rozpoczęcie produkcji masowej zaplanowano na czerwiec b.r. http://goo.gl/qAjqmW http://goo.gl/UM7NAf
Moduły przetwornic DC/DC dla lotnictwa o mocy do 600 W Firma Vicor powiększa ofertę modułowych przetwornic DC/DC DCM o nowe typy o mocy do 600 W, produkowane w obudowach 4623 o wymiarach 47,4 mm×22,8 mm×7,3 mm. Przetwornice DCM290Pxxxx600A40 charakteryzują się rekordowo dużą gęstością mocy, sięgającą 76 W/cm3. Są przeznaczone dla przemysłu, lotnictwa, motoryzacji i systemów telekomunikacyjnych. Dostępne są wersje o napięciu wejściowym 24, 28, 48, 270, 290 i 300 V DC oraz o napięciu wyjściowym 5, 12, 15, 24, 28, 36 i 48 V DC. Producent zaleca ich łączenie z regulatorami Vicor FPA (factorised power) i/lub ZVS (zero-voltage switching), z którymi pozwalają na wykonanie kompletnego, skalowalnego systemu zasilania o dużej sprawności (do 93%) i gęstości mocy dwukrotnie większej od konwencjonalnych, modułowych przetwornic DC/DC. Moduły mogą być łączone równolegle – maksymalnie 6 sztuk. Dostępne są też modele w nieco mniejszych obudowach 3623 (36 mm×23 mm), których moc znamionowa wynosi 320 W. http://goo.gl/tRdclF
100-woltowy kontroler DC-DC LT3748 Kontroler typu LT3748 do przetwornicy flyback jest oferowany również w wersji do aplikacji militarnych pracujących w zakresie temperatury złącza– 55…+150°C. Układ wyróżnia się szerokim zakresem napięcia wejściowego wynoszącym 5…100 V. Ułatwia wykonywanie izolowanych przetwornic DC/DC eliminując konieczność stosowania izolatorów optycznych, trzeciego uzwojenia transformatora i transformatora sygnałowego w torze sprzężenia zwrotnego. Wartość napięcia wyjściowego jest określana za pomocą pomiaru napięcia na uzwojeniu pierwotnym. Napięcie wyjściowe jest ustalane dzielnikiem rezystorowym i przekładnią transformatora. Dokładność stabilizacji wynosi ±5% w całym dopuszczalnym zakresie zmian napięcia wejściowego, prądu obciążenia i temperatury. W karcie katalogowej wyszczególniono typy powszechnie dostępnych na rynku transformatorów nadających się do współpracy z kontrolerem w różnego rodzaju aplikacjach. Układ LT3748 zawiera programowalny układ miękkiego startu, zabezpieczenie podnapięciowe i ogranicznik prądu wyjściowego. Jest oferowany w obudowie MSOP-16. http://goo.gl/PhMGxF
20-woltowy MOSFET o powierzchni 1 mm2 Si8410DB to miniaturowy n-kanałowy tranzystor MOSFET do urządzeń o największej gęstości upakowania podzespołów, produkowany w obudowie MICRO FOOT o powierzchni zaledwie 1 mm2 i grubości 0,54 mm. Może być stosowany jako przełącznik zasilania lub szybki przełącznik o małych stratach w przetwornicach DC/DC. Charakteryzuje się napięciem przebicia równym
REKLAMA
10
ELEKTRONIKA PRAKTYCZNA 5/2015
Podzespoły 20 V i dopuszczalnym prądem drenu 5,7 A przy zapewnieniu skutecznego chłodzenia. Jego rezystancja RDS(on) wynosi 37 mV przy napięciu sterowania bramki 4,5 V oraz 41, 47 i 68 mV przy napięciu sterującym, odpowiednio: 2,5 V, 1,8 V i 1,5 V. W porównaniu z najbliższym odpowiednikiem w obudowie CSP 1 mm2, podane wartości RDS(on) są mniejsze o od 30 do 50%. Mała rezystancja RDS(on) uzyskiwana już przy napięciu sterującym 1,5 V oraz w dopuszczalnym zakresie napięcia VGS do ±8 V, równocześnie zapewnia duży margines bezpieczeństwa i elastyczność w układach sterowania. http://goo.gl/yNi0CH
Pamięć SSD 64 GB z samoczynnym kasowaniem zawartości Firma Microsemi zaprezentowała 64-gigabajtową pamięć SSD MSM064 do aplikacji embedded, w których ochrona danych jest sprawą najwyższej wagi. Układ ten oferowany w obudowie BGA o powierzchni 32 mm×28 mm zawiera mechanizm blokady oprogramowanie firmware zabezpieczający przed możliwością podmiany. Zawartość pamięci jest przechowywana w postaci zaszyfrowanej. Obsługą kluczy zajmuje się opracowany przez Microsemi mikroprocesor Armor III. W aplikacjach szczególnie wrażliwych klucz szyfrujący może być skasowany w czasie krótszym niż 30 ms. Po aktywowaniu drugiego poziomu zabezpieczeń kasowana jest cała matryca w czasie krótszym niż 10 s, nieodwracalnie niszcząc przechowywaną informację. Ważniejsze parametry: • pojemność 64 GB, • technologia SLC NAND Flash, • interfejs SATA, • szybkość odczytu/zapisu 65 MB/s, • szyfrowanie: sprzętowe AES-256 w trybie XTS, • opcjonalna autoryzacja sprzętowa, • funkcja kasowania klucza w czasie poniżej 30 ms, • funkcja sprzętowego kasowania całej pamięci w czasie poniżej 10 s, • zdolność do pracy w ciężkich warunkach przemysłowych. http://goo.gl/ASjO4e
Oznaczenie
Rozdzielczość
MCP47FEB01 MCP47FEB02 MCP47FEB11 MCP47FEB12 MCP47FEB22
8 bitów 8 bitów 10 bitów 10 bitów 12 bitów
Liczba kanałów 1 2 1 2 2
DNL (LSB) ±0,25 0,25 ±0,5 0,5 ±1,0
Źródło odniesienia Wewn., zewn., VDD
z wbudowanego (1,22 V) lub z zewnętrznego źródła napięcia referencyjnego. Mają tryb shutdown pozwalający na ograniczenie do minimum poboru mocy. Pobór prądu wynosi typowo 650 nA w trybie Power Down, maksymalnie 1,9 mA przy zapisie do wewnętrznej pamięci EEPROM, a w trybie normalnej pracy maksymalnie 180/380 µA, odpowiednio dla wersji 1- i 2-kanałowej. http://goo.gl/3afqFR REKLAMA
8-, 10 i 12-bitowe przetworniki C/A z pamięcią nieulotną i interfejsem I2C Do oferty firmy Microchip dodano nową rodzinę przetworników C/A typu MCP47FEBxx wyposażonych w pamięć EEPROM i interfejs I2C. Są one wytwarzane w wariantach 1- i 2-kanałowych o rozdzielczości 8, 10 i 12 bitów i oferowane w obudowie TSSOP-8. Przetworniki są przeznaczone na rynek konsumencki i do urządzeń przemysłowych. Przykłady zastosowań to mikrofony, odtwarzacze MP3, mierniki poziomu glukozy, układy napędowe i kalibratory czujników. Wewnętrzna pamięć nieulotna umieszczona w tych układach umożliwia przywrócenie ostatniej wartości napięcia wyjściowego po włączeniu zasilania, a także automatycznie przywraca ustawienia napięcia referencyjnego, wzmocnienia i trybu Power Down. Przetworniki MCP47FEBxx mogą korzystać ELEKTRONIKA PRAKTYCZNA 5/2015
11
NIE PRZEOCZ
koktajl
Kalendarium wydarzeń na początku 2015 roku 2-4.06. Utrecht (Holandia), Electronics & Automation – wystawa
Wydarzenia krajowe
26-28.05. Poznań, Expopower – Międzynarodowe Targi Energetyki i Greenpower – Międzynarodowe Targi Energii Odnawialnej 9-12.06. Poznań, Subcontracting – Targi Kooperacji Przemysłowej 24-26.06. Wrocław – X Krajowe Warsztaty EMC, Politechnika Wrocławska
i targi elektroniki przemysłowej 2-5.06. Baku (Azerbejdżan), Caspian Power – targi systemów zasilania i energii odnawialnej 8-11.06. Moskwa (Rosja), Elektro – targi elektrotechniki i energetyki 22-25.06. Monachium (Niemcy), Laser World of Photonics – targi
Imprezy zagraniczne
5-7.05. Norymberga (Niemcy), SMT Hybrid Packaging – targi technologii dla przemysłu elektronicznego 20-22.05. Tokio, Techno-Frontier 2015 – innowacje w elektronice i mechatronice 12-15.05. Budapeszt (Węgry), MACH-TECH – targi urządzeń przemysłowych i automatyki 12-14.05. Parma (Włochy), SPS IPC Drives Italia – targi komponentów automatyki 19-21.05. Norymberga (Niemcy), PCIM Europe – targi systemów zasilania, energoelektroniki, energii odnawialnej oraz Sensor+Test – targi technologii pomiarowych, sensoryki i testowania 20-22.05. Wilno (Litwa), Balttechnika – targi przemysłowe, automatyki i energetyki oraz energii odnawialnej
technologii i systemów optycznych 26-28.06. Friedrichshafen (Niemcy), Ham Radio – wystawa poświęcona radiokomunikacji
Warsztaty, szkolenia, seminaria 7.05. Wrocław, Mikrokontroler STM32F0 + GSM, Masters 13-15.05. Białka Tatrzańska, XII Ogólnopolska Konferencja Techniczna nt. pomiarów w energetyce, Sonel 27.05. Katowice, Mikrokontroler STM32F0 + GSM, Masters 20.05. Dęborzyce, Sięgnij o robotykę, Wobit 19-20.06. Włocławek, Elektryczność statyczna – szkolenie dla Koordynatorów ESD, Renex
REKLAMA
Masters rozwija ofertę produktów dla oświetlenia LED Masters został partnerem firmy Phihong – producenta zasilaczy do szerokiego spektrum zastosowań, w tym także systemów oświetlenia LED. Produkty tej firmy obecne są w wielu branżach: od telekomunikacji, centrów danych, elektroniki użytkowej, po systemy bezpieczeństwa, urządzenia medyczne i przemysłowe, a także wspomniane oświetlenie ledowe. Jakości produktów Phihong zaufali czołowi producenci OEM tacy jak Cisco, Motorola, Sony, Panasonic, Acer, HP, Toshiba i wielu innych. Zasilacze do oświetlenia LED do zastosowań wewnątrz i na zewnątrz budynków cechują się wysoką niezawodnością, wszechstronnymi zabezpieczeniami i szerokim zakresem napięcia wejściowego. Drugą umowę dystrybucyjną Masters podpisał z Panjit Lighting – producentem lamp, świetlówek oraz naświetlaczy opartych na technologii LED.
12
ELEKTRONIKA PRAKTYCZNA 5/2015
Koktajl niusów
Atmel inwestuje w produkty dla sieci Sigfox Pakietowa sieć transmisji danych Sigfox w ostatnim okresie bardzo dynamicznie zyskuje na popularności i to nie tylko w Europie. Do obecnie pokrytych zasięgiem krajów (Francja, Hiszpania, Holandia) dołączają kolejne, w tym Polska, gdzie działa już pierwsza stacja bazowa w Warszawie. Sigfox pracuje w paśmie ISM 868 MHz w Europie, co zapewnia duży zasięg, a protokół zapewnia niski pobór mocy. Dodatkowo wyróżnikiem są bardzo niskie koszty (zarówno urządzenia jak i transmisji danych), dostęp do danych „od strony” sieci internetowej, brak konieczności stosowania kart SIM, bo każdy moduł ma unikalny numer ID oraz możliwość wysłania do 140 wiadomości na dobę. Do komunikacji w takiej sieci firma Atmel opracowała specjalizowany układ ATA 8250 – rozwiązanie SoC, integrujące zarówno część radiową jak i mikrokontroler. Mikrokontroler zajmuje się obsługą stosu, który zapewnia poprawną komunikację z siecią. Dzięki temu użytkownik takiego układu przy wykorzystaniu interfejsu SPI wydaje jedynie komendy wysyłki danych. Układ ten został precertyfikowany, w związku z tym koszt certyfikacji całego urządzenia jest niewielki.
25-lecie Merserwisu Firma Merserwis w 2015 roku obchodzi jubileusz 25-lecia swojej działalności. Założyli ją wspólnicy Jan Salata i Andrzej Kuczmański w drodze przekształceń prywatyzacyjnych działającego wtedy w Warszawie serwisu Meraserw-1, należącego do Centrali Techniczno-Handlowej
Merazet z Poznania. Merserwis początkowo zajmował się wyłącznie serwisem aparatury, ale po roku zaczął równoległą sprzedaż urządzeń pomiarowych i narzędzi. Obecnie Merserwis jest znaczącym dystrybutorem aparatury kontrolno-pomiarowej w Polsce, skupiającym się głównie na aparaturze dla energetyki.
Samsung otworzył nową linię produkcyjną we Wronkach Samsung otworzył nową linię produkcyjną w fabryce we Wronkach. Inwestycja o wartości około 80 mln zł ma na celu zwiększenie w latach 2014-2016 mocy produkcyjnych oraz rozszerzenie asortymentu produkowanych pralek i lodówek
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
13
NIE PRZEOCZ o 9 nowych modeli. Firma przeprowadziła gruntowną modernizację linii do produkcji lodówek, zainstalowała nowe urządzenia oraz rozbudowała infrastrukturę magazynową. Całkowita wartość inwestycji Samsunga w latach 2014-2016 wyniesie 387 mln zł.
Rynek półprzewodników – przychody kwartalne w latach 20132014 w mln dolarów, źródło: DMASS
Silny czwarty kwartał 2014 r. na rynku półprzewodników w Europie
XXII Giełda Wynalazków W dniach 17-18 lutego 2015 r. w warszawskim Centrum Nauki Kopernik, odbywała się XXII Giełda Wynalazków. Jest to dwudniowe wydarzenie o charakterze wielobranżowym, gdzie zaprezentowano 152 rozwiązania (wynalazków, prototypów, modeli) z akademickich ośrodków naukowych, instytutów badawczych, przemysłu jak również twórców indywidualnych. Innowacyjne projekty były nagradzane medalami, dyplomami i statuetkami. Z obszaru bliskiego elektronice nagrodzono inteligentny wielofunkcyjny sterownik energetyczny z komunikacją IEC 61850 opracowany w ITR oraz urządzenie do wspomagania resuscytacji krążeniowo–oddechowej – PIAPLife z PIAP.
Semicon dystrybutorem Beau Tech Semicon podpisał umowę dystrybucyjną z amerykańską firmą Beau Tech, popularnym producentem narzędzi do napraw PCB. Szczególnie interesujące są wytrzymałe cienkie sondy do usuwania zwarć, czy też mechanicznego sprawdzenia poprawności lutowania elementów. Oferowane są one tak w wersji prostej jak i z zagiętym ostrzem, w średnicach 1, 10 oraz 25 mils. Ponadto w ofercie można znaleźć przydatne narzędzia jak stalowe szczoteczki do usuwania topnika, chwytaki do lutowania, czy też przyrząd do czyszczenia końcówek przewodów.
Elmak Elektronika rozbudowała park maszynowy Rzeszowski dostawca usług EMS rozbudował swój park maszynowy, a posiadana linia produkcyjna wzbogaciła się o automat pick & place Yamaha I-Pulse M20. Urządzenie zalicza się do nowej generacji uniwersalnych automatów o wysokiej precyzji montażu zarówno elementów SMT jak i THT. Został on wyposażony w 6-krotną głowicę montażową zapewniającą szybkość do 23000 cph i ma duży obszar roboczy do 740 × 510 mm. Automat obsługuje komponenty o wielkości od 01005 do 120 × 90 mm i pełni również rolę LED-Placera, umożliwiając montaż diod LED na PCB o długości do 1480 mm. Jak informuje dyrektor Grzegorz Żmuda, dzięki tej inwestycji firma znacząco zwiększyła swoje zdolności produkcyjne przy jednoczesnym podniesieniu jakości procesu montażu powierzchniowego. Dokonując wyboru, zarząd przedsiębiorstwa kierował się głównie parametrami technicznymi umożliwiającymi zastosowanie najnowocześniejszych, najbardziej wydajnych technologii produkcyjnych, które zagwarantują tym samym najwyższą jakość wytwarzanych przez Elmak układów elektronicznych.
14
Według raportu Distributors’ and Manufacturers’ Association of Semiconductor Specialists europejski sektor dystrybucji półprzewodników charakteryzował się w czwartym kwartale 2014 r. niezwykłą siłą i pod koniec roku zanotował bardzo dobre tempo wzrostu. Sprzedaż półprzewodników wzrosła w tym czasie o 10,3% do 1,57 mld euro. Pełny rok zamknął się sprzedażą o wartości 6,34 mld euro – wzrost o 7,7% w porównaniu do roku 2013 i jednocześnie blisko rekordu z roku 2011. W raporcie DMASS uwzględniono sprzedaż półprzewodników z wyłączeniem elementów przeznaczonych dla rynku PC. Patrząc z perspektywy regionalnej, największy wzrost sprzedaży, przekraczający wyliczoną przez DMASS średnią, wystąpił w Europie Wschodniej, Austrii, Hiszpanii, Wielkiej Brytanii i Izraelu. Niewielki spadek zaś zanotowano w Belgii, Norwegii, Szwecji i w Rosji, gdzie jest to skutek zastosowanych przez UE sankcji. Szczegółowe wyniki wiodących w czwartym kwartale regionów przedstawiają się następująco: Niemcy – wzrost o 8,5% do 474 mln euro, Europa Wschodnia – wzrost o 23,7% do 192 mln euro, kraje nordyckie – wzrost o 6,8% do 161 mln euro, Włochy – wzrost o 6,7% do 139 mln euro, Wielka Brytania i Irlandia – wzrost o 12,3% do 135 mln euro oraz Francja – wzrost o 6,5% do 122 mln euro. W ujęciu rocznym największym rynkiem pozostają Niemcy z ponad 2 mld euro. Jeśli chodzi o kategorie produktów, to osłabieniu sprzedaży uległy pamięci – o 0,4% do 484 mln euro, elementy logiki programowalnej – o 3,1% do 484 mln euro oraz pozostałe elementy logiczne – o 5,9% do 303 mln euro. Po stronie wzrostowej znalazły się elementy dyskretne – wzrost o 17,2% do 363 mln euro, podzespoły zasilające – wzrost o 10,5% do 639 mln euro, czujniki – wzrost o 9,7% do 137 mln euro, optoelektronika – wzrost o 13,4% do 644 mln euro czy elementy analogowe – wzrost o 9,9% do 1,8 mld euro oraz przetworniki obrazu MOS Micro – wzrost o 8,5% do 1,3 mld euro.
NXP i Freescale NXP i Freescale zawarły porozumienie, na mocy którego połączą się w jedno przedsiębiorstwo. W efekcie powstanie branżowy potentat wyceniany na ponad 40 mld dolarów. Z wyjątkiem wielkości, ELEKTRONIKA PRAKTYCZNA 5/2015
Koktajl niusów po połączeniu NXP-Freescale będzie miał niewiele atutów, by zapewnić sobie przetrwanie w skonsolidowanej branży chipów. Rick Clemmer, prezes NXP i prawdopodobnie także w niedalekiej przyszłości prezes połączonego przedsiębiorstwa, podkreśla, że nowy podmiot będzie liderem w branży półprzewodników dla motoryzacji. Problem tylko w tym, że sektor ten to jednak relatywnie niewielka część rynku elektroniki. Zgodnie z warunkami umowy akcjonariusze Freescale otrzymają 6,25 dol. oraz 0,3521 akcji zwykłych NXP na każdą posiadaną akcję Freescale. Liczby te oznaczają, że całkowita wartość Freescale oceniana jest na około 11,8 mld dolarów, a wyłączając zadłużenie – około 16,7 mld dolarów. Zakładając, że zamknięcie transakcji nastąpi do końca bieżącego roku, kierownictwo NXP jest przekonane, że uzyska oszczędności w wysokości 200 mln dolarów w 2016 r. i otworzy drogę do osiągnięcia rocznych redukcji kosztów rzędu 500 mln. Nie ma jednak jeszcze przygotowanych celów pozwalających na przyspieszenie wzrostu oraz zwiększenie przychodów i zysków. Połączona firma będzie mieć ponad 10 mld dolarów rocznych przychodów, stając się największym – dziewiątym co do wielkości – producentem półprzewodników. Bliscy konkurenci STMicroelectronics i Renesas mają przychody około 7,3 mld dolarów każdy, Texas Instruments i Toshiby znacząco więcej. Nawet po połączeniu nowe NXP będzie miało tylko 13-procentowy udział w rynku. Jako część umowy, NXP sprzeda swój dział wydajnych układów w.cz., bo pokrywałyby się z podobnymi, silniejszymi kompetencjami Freescale oraz aby uniknąć problemów prawnych. Prezes NXP powiedział, że nie przewiduje zamknięcia żadnych zakładów. Według zamierzeń zwolnienia będą ograniczone, szczególnie wśród inżynierów. Jednak kierownictwo musi jeszcze wypracować wiele szczegółów biznesowych, np. z dublowaniem się linii mikrokontrolerów ARM Cortex-M.
Kierownictwo NXP twierdzi również, że firma będzie liderem w zakresie mikrokontrolerów ogólnego przeznaczenia. Analitycy VDC Research Group nie całkiem się z tym zgadzają, przedstawiając rynkowy udział nowego NXP na poziomie 17% w porównaniu z 25-procentowym udziałem Renesasa, lidera na tym rynku. Co więcej, sektor układów MCU jest bardzo rozdrobniony i mocno konkurencyjny, a większość graczy bazuje na układach ARM Cortex-M, co utrudnia zróżnicowanie. Podobnie jak rozdrobniony biznes MCU, firmy NXP i Freescale szeroko obejmują rynek układów wbudowanych. Czyli wygląda na to, że poza lepszą pozycją w motoryzacji, fuzja nie daje nic, co zapewniłoby przedsiębiorstwu ostrzejszy lub nowy punkt startowy. Potencjał spadkowy przeprowadzonej transakcji specjaliści widzą także, jeśli nowa firma nie utrzyma wcześniejszej koncentracji działań firmy Freescale w zakresie innowacji software’owych. Jednym z większych problemów przemysłu półprzewodnikowego w ogóle, jest zapewnienie oprogramowania dla wytwarzanych chipów. Umowa NXP i Freescale wygląda na małżeństwo z rozsądku lub też fuzję taktyczną – większy przetrwa, gdy przemysł półprzewodnikowy zwalnia tempo wzrostu do wartości jednocyfrowych. Duże obciążenie Freescale długami jest wadą. Ze względu na długi firma ta była postrzegana jako cel przejęcia już od jakiegoś czasu. Rick Clemmer nie chciał komentować innych możliwych kombinacji i innych potencjalnych nabywców Freescale.
Silicon Labs przejmuje firmę Bluegiga Firma Silicon Labs, dostawca mikrokontrolerów, układów komunikacji bezprzewodowej oraz rozwiązań dla Internetu Rzeczy (IoT), przejmuje fińską spółkę Bluegiga Technologies Oy z siedzibą w Espoo – dostawcę rozwiązań do komunikacji radiowej krótkiego zasięgu (Bluetooth, Wi-Fi) oraz oprogramowania. To strategiczne przejęcie
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
15
NIE PRZEOCZ
Zbliżają się targi Expopower znacznie rozszerza w tym zakresie ofertę rozwiązań sprzętowych i programowych Silicon Labs. Zgodnie z porozumieniem inwestorzy Bluegiga otrzymali w gotówce około 61 mln dolarów. Po przejęciu, Silicon Labs będzie kontynuować działalność w Espoo jako centrum doskonalenia technologicznego w zakresie sprzętu bezprzewodowego i oprogramowania. Firma będzie kontynuować rozwój, sprzedaż i zapewnianie wsparcia technicznego dla oprogramowania i wszystkich oferowanych modułów Bluetooth i WiFi dla klientów na całym świecie.
W dniach 26-28 maja w Poznaniu odbędą się kolejne Międzynarodowe Targi Energetyki Expopower. Tegoroczna edycja będzie odbywać się w nowej formule, w ramach której prezentowana będzie oferta z zakresu szeroko rozumianego dostarczania energii – zarówno ze źródeł rozproszonych, jak i konwencjonalnych. Organizator położył szczególny akcent na potencjał edukacyjno-biznesowy imprezy, czego efektem są trzy nowe wydarzenia. Pierwsze to konferencja „Energia.21”, na której spotkają się praktycy, eksperci i naukowcy. W tym gronie na targach Expopower odbędzie się dyskusja o tym, jak dzięki współpracy nauki i biznesu tworzyć oraz wdrażać innowacyjne rozwiązania. To nowe forum wymiany myśli uzupełni ofertę wydarzeń branżowych, w której ciągle jest jeszcze mało interdyscyplinarnego spojrzenia na przyszłość energetyki z punktu widzenia oczekiwań klientów. Drugim debiutem na tegorocznych Expopower będzie przestrzeń specjalna – Salon pojazdów elektrycznych oraz infrastruktury ładowania E-Mobility. Wydarzenie ma szansę stać się impulsem
Semicon inwestuje w park maszynowy SMT W lutym 2015 Semicon zakończył instalację dwóch maszyn: drukarki szablonowej ERSA oraz AOI firmy Marantz MEK rozbudowując posiadaną linię montażową SMT. Jednym z dwóch nowych urządzeń jest drukarka szablonowa ERSA – Versaprint S1. Jest to pierwsza tego typu maszyna w Polsce, w której szczególnie interesująca jest funkcja 100-procentowej inspekcji nałożonej pasty bądź kleju za pomocą skanera liniowego (tzw. system LIST). Drukarka ma obszar zadruku płytki do 550 mm×500 mm i dokładność 12,5 mm (dla 6 Sigma). Urządzenie jest wyposażone w automatyczną kontrolę ilości pasty do zadruku, system analizy SPC (Statistics Process Control, system wspomagający zachowanie stabilności procesu), inspekcję okien szablonu oraz system automatycznego czyszczenia szablonu po procesie zadruku każdej płytki. Drugie usprawnienie linii produkcyjnej stanowi japońskie urządzenie do kontroli optycznej – Marantz MEK 22X. Wielosensorowa inspekcja optyczna do kontroli płytek o wymiarach 460 mm×360 mm jest oparta w tym modelu na 8 kamerach bocznych, o rozdzielczości 10 mm w technologii Tilt& Shift oraz kamerze głównej z obiektywem telecentrycznym o rozdzielczości 18,6 mm. Urządzenie wyposażone jest w ruchomą oś Z, system Meniscus Profiler z systemem 3-kątowego oświetlenia (białe/czerwone oraz liniowe typu DOAL), kartę CameraLink i multiplekser sygnałowy.
16
ELEKTRONIKA PRAKTYCZNA 5/2015
Koktajl niusów do kształtowania się i rozwoju oferty nowych usług z korzyścią dla odbiorców energii. Trzecim, nowym miejscem spotkań świata biznesu, nauki, polityki, mediów i środowisk opiniotwórczych na targach będzie Salon innowacji w energetyce InnoPower. Wydarzenie to przeznaczone jest dla podmiotów mających ofertę naukowo-badawczą (RD3) skierowaną do energetyki, m.in. do polskich szkół wyższych, konsorcjów naukowo-przemysłowych, instytutów badawczo-rozwojowych, administracji samorządowej i rządowej oraz podmiotów europejskich. Edukacyjną misję Salonu InnoPower uzupełnią warsztaty w zakresie pozyskiwania środków na RD3 i program Horyzont 2020, a także poruszające tematy zarządzania własnością intelektualną w konsorcjach, tworzenia konsorcjów i innych podmiotów wspierających RD3. W ramach programu na targach Expopower odbędą się także wydarzenia rok rocznie cieszące się dużym zainteresowaniem, jak np. Konferencja Naukowo-Techniczna Stowarzyszenia Elektryków Polskich z cyklu „Instalacje elektryczne niskiego, średniego i wysokiego napięcia”. Tegoroczna edycja poświęcona będzie elektroenergetycznym stacjom i rozdzielnicom średniego napięcia.
Relpol podsumował 2014 rok Skonsolidowane przychody Relpolu w 2014 roku wyniosły 109 mln zł, a zysk netto blisko 6 mln zł. Oznacza to wzrost odpowiednio o 3,8% i 32%. Wzrost przychodów zanotowano na wszystkich głównych rynkach handlowych grupy kapitałowej, z wyjątkiem Rosji. Z powodu dekoniunktury w Rosji, sprzedaż w tym kraju wyniosła w ubiegłym roku 18 mln zł i była mniejsza o 4,4 mln zł niż w 2013 r., ale transakcje z odbiorcami w Rosji dokonywane są w dolarach, dzięki czemu spółka nie traci na spadku wartości rubla. Firma zrealizowała zaplanowany program inwestycyjny w linie produkcyjne, wprowadziła na rynek nowe i zmodyfikowane wyroby, pozyskała nowych
klientów i zwiększyła kapitały własne. Prawie 68% sprzedaży w grupie stanowi eksport, przychody krajowe to 35 mln zł. Firma przygotowuje się do kolejnych inwestycji związanych z podnoszeniem mocy i odnowieniem parku maszynowego oraz z modernizacją produktów. Jest to wieloletni plan inwestycyjny, który powinien zaowocować obniżeniem kosztów produkcji. Zarząd jest optymistycznie nastawiony i twierdzi, że ten rok będzie lepszy od poprzedniego i nie wyklucza przejęć.
Circuit Studio już dostępne Na mocy nawiązanego porozumienia z firmą Altium w listopadzie 2014 roku Farnell element14 stał się wyłącznym dystrybutorem oprogramowania Circuit Studio, który jest rozprowadzany za pośrednictwem portalu element14 Design Center i proponowany inżynierom-projektantom układów elektronicznych.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
17
NIE PRZEOCZ
Circuit Studio to oprogramowanie EDA o dużej funkcjonalności i możliwościach przeznaczone do tworzenia skomplikowanych i profesjonalnych projektów. Program pozwala na rysowanie schematu i PCB z wbudowanym autorouterem i funkcją native 3D. Całość wspierają rozbudowane biblioteki komponentów zawierające ponad 350 tys. elementów. Ze strony dystrybutora można pobrać 14-dniową wersję próbną lub kupić komercyjną licencję. Ceny kształtują się na poziomie 11 tys. zł za stanowisko oraz ok. 1900 zł za roczny maintenance.
wiodącą tematyką były aplikacje IoT. Warto odnotować, że tym razem na targach pojawiło się znacznie więcej firm z Polski. Do Antmicro i Elpromy, które były także rok wcześniej, dołączyły EBS, Gryftec, TME i Wilk Elektronik.
Eltron rozszerza działalność o usługi konsultingowe
Innowacyjny tłumik mikrofalowy z Gdyni – na targach w Barcelonie Gdyńska spółka TeleMobile działająca w Pomorskim Parku NaukowoTechnologicznym w Gdyni opracowała urządzenie o nazwie mobilny tłumik mikrofalowy (RFswitchATT.mobile ), pozwalający na dokładne testowanie zasięgu i jakości sieci bezprzewodowych we wszystkich systemach i terminalach. Rozwiązanie zostało zaprezentowane podczas Mobile World Congress w Barcelonie. Urządzenie to niszowy produkt, który może być wykorzystany do pomiarów i symulacji, dzięki którym można optymalizować daną sieć radiową oraz polepszać jakość i dostępność usług radiowych. Obecnie takie pomiary są sterowane ręcznie i wymagają obsługi manualnej np. przy ustawieniu wartości tłumienia, dłużej trwają i są obarczone błędami. Tłumik mikrofalowy, podłączony odpowiednio w tor antenowy pomiędzy anteną odbiorczą, a urządzeniem do zapisu sygnału, pozwala na badanie, mierzenie jakości sygnału i dostępności usług telefonii bezprzewodowej (komórkowej). Na podstawie wyników, symulacji tłumienia toru radiowego, można podejmować decyzje optymalizujące daną sieć radiową. Na podstawie danych z tłumika można np. zdecydować o wzmocnieniu jakiegoś sygnału, zmianie częstotliwości czy reorientacji anten.
Embedded World 2015 pod znakiem IoT Targi Embedded World to najważniejsza w Europie impreza poświęcona szeroko rozumianym mikrokontrolerom, układom programowalnym, oprogramowaniu i narzędziom projektowym. To lutowe wydarzenie skupia niecały tysiąc wystawców i ponad 25 tysięcy odwiedzających, co zapewnia tej imprezie duży rozmach i pozwala traktować je jako wiodące wydarzenie, pod które ustala się daty premier nowych produktów i technologii. W tym roku zdecydowanie
18
Firma Eltron rozszerzyła działalność usługową o kompleksowe doradztwo i pomoc w zakresie bezpieczeństwa maszyn przemysłowych. Oprócz samych komponentów do budowy systemów bezpieczeństwa, Eltron oferuje profesjonalne doradztwo w zakresie oceny ryzyka, walidacji i weryfikacji nowo zainstalowanych systemów. Usługi obejmują także wykonanie pomiarów i dobranie odpowiednich systemów bezpieczeństwa na podstawie ocen ryzyka. Podczas instalacji firma służy pełnym wsparciem technicznym dobranych komponentów niezbędne kalkulacje współczynników niezawodności oraz szkolenia z zakresu bezpieczeństwa przy budowie i użytkowaniu maszyn, oceny i metod redukcji ryzyka, wymagań bezpieczeństwa układów sterowania.
Służby utrzymania ruchu interesują się seminariami 19 lutego w Radomiu odbyło się już 23. Seminarium Techniczne organizowane przez wortal branżowy Energoelektronika.pl. Spotkanie przeznaczone było głównie dla Służb Utrzymania Ruchu, działów zakupowych, przedstawicieli biur projektowych oraz automatyków i elektryków. Radomskie spotkanie obfitowało w mnóstwo nowych rozwiązań, produktów oraz technologii. Nie zabrakło również specjalistów merytorycznych, którzy poruszyli aspekty dotyczące zmian norm jak i tematy związane z: systemami chłodzenia przyrządów elektronicznych w warunkach przemysłowych, zasad stosowania stacjonarnych detekcji gazów, badaniami na zgodność z normami zharmonizowanymi w zakresie EMC i LVD oraz dozorem i eksploatacją urządzeń dla grup G1 (elektryczna), G2 (cieplna), G3 (gazowa). Informacje o kolejnych edycjach można znaleźć na www.seminarium. energoelektronika.pl. ELEKTRONIKA PRAKTYCZNA 5/2015
PROJEKTY
DSP1701_3WCRSV – trójdrożna, cyfrowa, stereofoniczna zwrotnica głośnikowa AVT 5501
Dobre elementy bierne zwrotnic głośnikowych są koszmarnie drogie, natomiast dobór i strojenie zespołu filtrów wymaga wielu prób. Dlaczego więc nie skorzystać ze zdobyczy nowoczesnej techniki i nie użyć procesora DSP? Dlaczego żmudnie stroić filtry zamiast przejść w „domenę cyfrową” i nie sprawdzić efektów poprzez aplikacji wykonanej za pomocą Sigma Studio? Prezentowany projekt urządzenia używa układu ADAU1701 do realizacji 3-drożnej zwrotnicy stereofonicznej przeznaczonej do wbudowania w aktywny zestaw głośnikowy. Rekomendacje: zwrotnica może przydać się w wielu zastosowaniach, nie tylko do budowy zestawu głośnikowego. Jest też dobrym przykładem zastosowania popularnego, łatwego w użyciu procesora DSP do wykonania zespołu filtrów aktywnych. Schemat ideowy płytki zwrotnicy pokazano na rysunku 1. Jej sercem jest procesor ADAU1701 (U1) z rodziny SigmaDSP oferowanej przez Analog Devices. Rolą procesora jest: Konwersja wejściowego sygnału stereofonicznego (48 kHz/16 bitów) doprowadzonego do złącza IN.
20
• Podział na trzy pasma LOW/MID/HIGH za pomocą zwrotnicy LR24. • Realizacja minimalnych opóźnień torów LOW/MID, aby wyrównać fazy akustyczne (zależne od konstrukcji zestawu) • Wspólna regulacja głośności wszystkich sześciu kanałów wyjściowych.
W ofercie AVT* AVT-5501 A Podstawowe informacje: • Zasilanie 7 V AC/0,2 A. • Procesor DSP ADAU1701 z rodziny Sigma DSP. • Konwersja wejściowego sygnału stereofonicznego (48 kHz/16 bitów) doprowadzonego do złącza IN. • Podział na trzy pasma LOW/MID/HIGH. • Łatwe korygowanie charakterystyki częstotliwościowej. • Realizacja minimalnych opóźnień torów LOW/MID, aby wyrównać fazy akustyczne. • Wspólna regulacja głośności wszystkich sześciu kanałów wyjściowych. Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-5404 Dwudrożna zwrotnica aktywna (EP 7/2013) AVT-2854 Opóźniacz dołączenia głośników (EdW 2/2008) AVT-1296 Wzmacniacz do aktywnej kolumny (EP 1/2001) AVT-293 Wzmacniacz do kolumny aktywnej (EP 8/1996)
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
ELEKTRONIKA PRAKTYCZNA 5/2015
DSP1701_3WCRSV – trójdrożna, cyfrowa, stereofoniczna zwrotnica głośnikowa Schemat aplikacji zwrotnicy pokazano na rysunku 2. Ze względu na dostępne tylko cztery wbudowane w ADAU1701 kanały C/A w aplikacji zastosowano zewnętrzny
przetwornik C/A. Wybrałem popularny, łatwo dostępny, sześciokanałowy WM8766 (U6) firmy Wolfson. Jest to typowy przetwornik 192 kS/24 bity stosowany w odtwarzaczach DVD
i amplitunerach kina domowego. Schemat blokowy układu WM8766 zamieszczono na rysunku 3. Wewnętrzne przetworniki ADAU1701 w celu minimalizacji zakłóceń i poboru prądu
Rysunek 1. Schemat ideowy płytki zwrotnicy DSP1701_3WCRSV ELEKTRONIKA PRAKTYCZNA 5/2015
21
PROJEKTY
Rysunek 2. Aplikacja zwrotnicy
Rysunek 3. Schemat blokowy układu WM8766
Rysunek 4. Schemat montażowy zwrotnicy DSP1701_3WCRSV
22
są wyłączone programowo. Komunikacja pomiędzy procesorem sygnałowym a WM wykorzystuje 3-kanałowy interfejs I2S (MLCK/LRCK/ BCLK SD0…2). Ze generowanie sygnału zegara taktującego procesor ADAU odpowiada oscylator z rezonatorem kwarcowym XT o częstotliwości 12,288 MHz. Sinusoidalny sygnał oscylatora jest buforowany i formowany poprzez bramkę Schmitta U5 i używany jako sygnał MCLK dla filtrów cyfrowych i interfejsu WM8766. Układ przetwornika C/A uzupełniają elementy bierne tworzące sześć filtrów dolnoprzepustowych usuwających z sygnału wyjściowego niepożądane składowe będące wynikiem przetwarzania C/A. Układ zwrotnicy jest zasilany z transformatora 7 V/0,2 A poprzez mostek prostowniczy i dwa niskoszumne stabilizatory ADP3339. Układ U8 dostarcza napięcie +5 V do zasilania obwodów analogowych przetwornikca C/A (wyższe napięcie polepsza stosunek sygnał/szum przetwornika C/A w porównaniu do możliwego zasilania z 3,3 V). Kolejny stabilizator – U9 – zasila procesor DSP. Zasilanie przetwornika C/A jest dodatkowo filtrowane poprzez dławik L2, rezystor R26 i kondensatory CE6, CE8, C16 oraz C18. Napięcie 1,8 V zasilające rdzeń DSP jest uzyskiwane w typowym układzie stabilizatora opartym z tranzystorem Q1. Odpowiednie potencjały zasilania są filtrowane za pomocą kondensatorów. Pamięć U3 typu 24LC256 przechowuje aplikację oraz parametry ADAU. Zwora WP zabezpiecza pamięć przed przypadkowym zapisem – powinna być zdjęta podczas normalnej pracy i zwarta przy programowaniu pamięci EEPROM. Aplikację uzupełniają układy: U2 (ADM811) służący do generowania
Wykaz elementów Rezystory: (SMD 0805, 1%) R1: 18,2 kV R2, R3: 8,06 kV R4: 1 kV R5…R7: 2,2 kV R8: 10 kV R9: 20 kV R10, R11, R15, R16, R19, R20, R23, R24: 470 V R12, R13: 100 V R14, R17, R18, R21, R22, R25: 18 kV R26: 33 V Kondensatory: (SMD 0805) C1…C4, C9, C10, C14…C20, C30: 0,1 mF C5, C6: 22 pF C7, C21…C26: 3,3 nF C8: 56 nF C11…C13, C27…C29: 10 mF CE1, CE2, CE11…CE16: 10 mF (elektrolit.) CE3…CE10, CE17: 10 mF (SMD „A”) CE18, CE19: 470 mF/16 V (elektrolit. LOW ESR) Półprzewodniki: D1…D4: SUF4007 (MELF) Q1: BC807-40 (SOT-23) U1: ADAU1701 (VQFP48) U2: ADM811 (SOT-143) U3: 24LC256 (SO-8) U4: MAX810LD (SOT-23) U5: 74V1G14 (SC70-5) U6: WM8766 (SSOP28) U7: ADP3339-33 (SOT-223) U8: ADP3339-50 (SOT-223) Inne: IN: złącze ARK 5 mm L1, L2: 1 mH (SMD 0805) M0…M2: zwora (SMD 0805) OUTB, OUTH, OUTM: złącze ARK3 5 mm PWR: złącze ARK2 5 mm USBI: złącze IDC10 VOL: złącze kompletne SIP3 +potencjometr 22 kV/A WP: zwora SIP2 XT: rezonator kwarcowy 12,288 MHz (HC49S) ELEKTRONIKA PRAKTYCZNA 5/2015
DSP1701_3WCRSV – trójdrożna, cyfrowa, stereofoniczna zwrotnica głośnikowa
Rysunek 6. Konfiguracja systemu zwrotnicy
Rysunek 5. Konfiguracja EEPROM (24FC256) sygnału zerowania oraz U4 (MAX810) odpowiedzialny za wygenerowanie sygnału zapisu zwrotnego parametrów (ADAU1701 – WB) podczas wyłączenia zasilania. Płytka jest wyposażona w trzy zwory M0…M2 umożliwiające eksperymenty z różnymi mnożnikami PLL i rozdzielczościami ułatwiając pracą z innymi częstotliwościami i rozdzielczościami próbkowania A/C. Do złącza VOL należy dołączyć potencjometr liniowy o rezystancji 10…47 kV, służący do jednoczesnego regulowania głośności wszystkich kanałów. Złącze USBi służy do przyłączenia programatora. Schemat aplikacyjny zwrotnicy jest oczywisty i nie wymaga dłuższego opisu. Do złącza PWR należy doprowadzić napięcie z transformatora 7 V/0,2 A, do IN stereofoniczny sygnał wejściowy, a do złącz OUTB,
OUTM i OUTH odpowiednie, pasmowe końcówki mocy. Do złącza VOL potencjometr 22 kV do regulowania głośności. Domyślne położenie zwór to M0 – GND, M1 i M2 – V33 ustawiające przetwarzanie 48 kHz/16 bit.
Montaż i uruchomienie Moduł zwrotnicy zmontowano na niewielkiej, dwustronnej płytce drukowanej. Jej schemat montażowy pokazano na rysunku 4. Montaż jest typowy i nie wymaga opisu. Uruchomienie modułu sprowadza się do pomiaru napięć zasilających i obecności zegara MCLK. Poprawnie zlutowany i skonfigurowany moduł gotowy jest do oprogramowania przy pomocy Sigma Studio. W materiałach dodatkowych udostępniony jest przykładowy projekt możliwy do modyfikacji i dostosowaniu do własnych potrzeb. Po uruchomieniu SigmaStudio i odczytaniu przykładowego projektu jest konieczna konfiguracja sprzętowa ADAU1701. W nowszych wersjach oprogramowania musimy także ustalić organizację pamięci EEPROM. W tym celu klikamy prawym
przyciskiem myszy na ikonę IC2 i wybieramy opcję „Właściwości”. Ustawiamy parametry zgodnie z organizacją zastosowanej pamięci – konfigurację dla popularnego układu 24FC256 zamieszczono na rysunku 5. Po podłączeniu programatora USBi ustalamy konfigurację wewnętrzną ADAU1701 zgodnie z rysunkiem 6. (należy pamiętać o zwarciu zwory WP). Zgodnie z projektem wyłączamy i wyciszamy przetworniki C/A, aktywujemy interfejsy szeregowe, konfigurujemy interfejs I2S, wyprowadzony na GPIO (nóżki 6, 7, 8, 10, 11) oraz aktywujemy wewnętrzny przetwornik C/A na wyprowadzeniu MP2 (regulacja głośności). Po zapisaniu konfiguracji ADAU przełączamy się na okno aplikacji konfigurując zwrotnice zgodnie z własnymi potrzebami. Konfigurację pokazano na rysunku 7. Jeżeli zwrotnica jest włączona w tor audio, możliwe jest bezpośrednie odsłuchanie efektów zmian konfiguracji. W wypadku, gdy posiadamy system pomiarowy jest możliwe skorygowanie przebiegu charakterystyki częstotliwościowej przy wykorzystaniu danych pomiarowych i bloku MLSSA. W wypadku zastosowania DSP banalnie proste jest usuwanie wszelkich ostrych nierównomierności, takich jak zanik, szpilka na charakterystyce częstotliwościowej i inne. Wystarczy tylko dodać odpowiedni człon filtru z biblioteki gotowych modułów Sigma Studio w wypadku typowych filtrów opartych z elementów R, L, C, korygowanie charakterystyki nie jest już tak trywialne. Po zaprogramowaniu moduł można podać testom w aplikacji. Po upływie kilku miesięcy od pierwszego artykułu opublikowanego w Elektronice Praktycznej o rodzinie Sigma DSP, a może i nawet dzięki tym artykułom, znaczącemu obniżeniu uległa cena programatora USBi – firma Analog Devices obniżyła jego cenę z początkowych 190 USD do 80 USD, co jest łatwiejsze do zaakceptowania i umożliwia zastosowanie tych bardzo ciekawych nie tylko przez profesjonalistów, ale również przez hobbystów realizujących jednostkowe projekty wykonane dla własnych potrzeb.
Adam Tatuś, EP
Rysunek 7. Konfiguracja sprzętowa ADAU1701 ELEKTRONIKA PRAKTYCZNA 5/2015
Rysunek 8. Konfiguracja zwrotnicy modelu
23
PROJEKTY
ARS3-ER – sterownik z serwerem Web (1)
AVT 5505
Możliwość załączania 4 wyjść oraz kontroli/ wizualizacji poziomu na 4 wejściach Prezentowany w artykule serwer Web jest łatwy w budowie, ale ma zaawansowane funkcje. Stan 4 wyjść i 4 wejść można kontrolować poprzez sieć Ethernet, która może być dostępna np. za pośrednictwem routera również „z zewnątrz” tj. za pomocą Internetu. Sterownik może wyświetlać strony HTML przygotowane przez użytkownika i wysyłać e-maile z powiadomieniami. Łatwy w obsłudze może być łatwo przystosowany do wymagań sieci, w której będzie pracował i aplikacji, której będzie elementem. Rekomendacje: serwer przyda się w aplikacjach związanych z automatyką domową lub przemysłową. Sterownik powstał jako rozwinięcie wcześniejszej konstrukcji – zestawu AVT5450. Tamto urządzenie doskonale sprawdzało się w nieskomplikowanych zastosowaniach wymagających jedynie zdalnego włączenia lub wyłączenia jakiegoś urządzenia. Ze względu na prostotę obsługi, miał jednak ograniczone możliwości konfiguracyjne, co utrudnia jego użycie w bardziej wyrafinowany sposób. Strony HTML wyświetlane na przeglądarce mają uproszczony wygląd bez możliwości
24
zmian np. dołączenia elementów graficznych. Ostatecznie powstało całkiem nowe urządzenie, które nazwałem ARS3-ER.
Budowa Schemat ideowy sterownika pokazano na rysunku 1. Jego sercem jest mikrokontroler STM32F107VCT w obudowie ze 100 wyprowadzeniami. Wyposażono go w wewnętrzną pamięć programu Flash mieszczącą 256 kB oraz pamięć RAM o pojemności 64 kB.
Mikrokontroler ma wbudowany interfejs MAC (Media Access Controller) umożliwiający dołączenie do sieci Ethernet. Do dołączenia do sieci potrzebne są jeszcze dwa elementy: układ pełniący funkcje interfejsu PHY (Physical Interface Device) i transformator z gniazdem do fizycznego przyłączenia sterownika do sieci. W opisywanym urządzeniu w roli interfejsu PHY zastosowano układ DP83848VV. Zastosowano również gniazdo RJ45 z wbudowanym transformatorem separującym. Na schemacie mikrokontroler U1 pokazano jako osobne bloki portów i segmenty pozostałych wyprowadzeń funkcjonalnych. Układ U2 jest interfejsem PHY. Łączy się z kontrolerem liniami portów programowo skonfigurowanymi do współpracy tych dwu elementów. Z kolei do U2 jest dołączony sprzęg magnetyczny J1, do którego bezpośrednio przyłącza się wtyczkę kabla sieciowego. Warto wspomnieć, że U2 (interfejs PHY) ma kilka wyprowadzeń wstępnie ustawiających tryb jego pracy. Stan tych ELEKTRONIKA PRAKTYCZNA 5/2015
ARS3-ER – sterownik z serwerem Web
Rysunek 1. Schemat ideowy sterownika z serwerem Web ELEKTRONIKA PRAKTYCZNA 5/2015
25
PROJEKTY W ofercie AVT* AVT-5505 A AVT-5505 B AVT-5505 C Podstawowe informacje: • 4 niezależnie sterowane przekaźniki ze stykami przełączanymi. • 4 wejścia sygnałów cyfrowych o napięciu 0…3,3 V. • Możliwość wysyłania powiadomień e-mailem o wystąpienia zdarzenia – alarmu lub zmiany dynamicznego adresu IP. • Sterowanie ustawieniem wyjść i odczytem wejść z poziomu przeglądarki internetowej. • Praca z predefiniowanymi lub przygotowanymi przez użytkownika stronami HTML. • Możliwość ustawienia takich parametrów, jak: praca z adresem statycznym lub przydzielanym dynamicznie, zmiana adresu statycznego, zmiana adresu MAC. • Zasilanie z portu USB lub z zasilacza zewnętrznego +5 V/200 mA – przekaźniki wyłączone, 400 mA – przekaźniki załączone. • Ustawianie parametrów serwisowych programem narzędziowym SerwUs. Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-5450 Miniaturowy serwer http (EP 5/2014) AVT-5375 Serwer WWW (EP 12/2012) AVT-5366 Sterownik uniwersalny zgodny z Arduino (EP 10/2012) AVT-5340 Konwerter Ethernet/UART (EP 4/2012) AVT-1668 AVTduino Ethernet – moduł Ethernet dla Arduino (EP 3/2012) AVT-5250 Karta przekaźników z interfejsem Ethernet (EP 8/2010) AVT-5200 Uniwersalny sterownik ethernetowy (EP 9/2009) * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
wyprowadzeń badany jest podczas restartu układu U2. Jeśli: • wyprowadzenie 26 (AN_EN /LED_ACT/ COL) jest wewnętrznie podciągane do poziomu wysokiego, • wyprowadzenia 27 i 28 (AN_1 /LED_ SPEED), (AN_0 /LED_LINK) są poprzez diody LED podciągane do poziomu wysokiego, • to przy ustawieniu interfejs PHY będzie pracował w trybie negocjacji. Oznacza to, że będzie możliwa praca w trybach half i full duplex, zarówno z wolniejszymi urządzeniami 10BASE-T jak i szybszymi 100BASE-TX. Jeśli: • wyprowadzenie 39 (MII_MODE /RX_DV) zostanie podciągnięte do poziomu wysokiego opornikiem R11, • wyprowadzenie 6 (SNI_MODE /TXD_3) jest wewnętrznie wyzerowane (zwarte z masą), • to przy takim ustawieniu wyprowadzeń układ U2 (interfejsu PHY) łączy się z U1 (mikrokontrolerem) w trybie RMII (tryb zredukowanej linii połączeń). Dane
26
Rysunek 2. Schemat montażowy sterownika z serwerem Web transmitowane są dwiema liniami TXD i dwiema RXD. W tym trybie zegar taktujący U2 ma częstotliwość 50 MHz i jest podawany z portu PA1 mikrokontrolera. Gniazdo Mini-USB J2 i interfejs USB U3 pełnią podwójną rolę. Umożliwiają komunikację programu serwisowego SerwUs ze sterownikiem i zmianę jego ustawień. Za pośrednictwem J2 można także zasilić sterownik z portu USB. Alternatywnym sposobem zasilania urządzenia jest podanie napięcia +5 V na gniazdo J4. Zasilanie może być podłączone jednocześnie do obydwu gniazd, ponieważ gniazda zabezpieczone są diodami. Wyjściowymi układami wykonawczymi są 4 przekaźniki K1-4, sterowane poprzez tranzystory liniami kontrolera PE2-5. Styki przekaźników wyprowadzone są na gniazda zaciskowe do przykręcania zewnętrznych przewodów. Na grzebień złącza J6 wyprowadzone zostały bezpośrednio 4 linie portów kontrolera PA4-7. Do linii można doprowadzić sygnały o poziomach logicznych 0…3,3 V, których stan jest czytany i wyświetlany na przeglądarce internetowej. Należy unikać podawania na nie napięcia przekraczającego podany zakres, co może grozić uszkodzeniem kontrolera, ponieważ wejścia nie są zabezpieczone. W pamięci EEPROM (U4) przechowywane są parametry konfiguracyjne urządzenia również po odłączeniu zasilania. Kwarc Q2 i bateria BT1 są jedynymi elementami zewnętrznymi bloku zegara czasu rzeczywistego wbudowanego w mikrokontroler. Dzięki baterii zegar pracuje również po wyłączeniu zasilania. Ponieważ informacje o czasie pobierane z zegara wykorzystywane są przez system powiadomień, bateryjne podtrzymanie RTC jest niezbędne dla prawidłowego funkcjonowania urządzenia. Zapis programu do pamięci Flash mikrokontrolera można wykonać za pomocą interfejsu JTAG wyprowadzonego na gniazdo J5 bądź poprzez port USB. O wyborze decyduje ustawienie zwory JP1 podczas restartu, który można wymusić naciskając przycisk S1.
Montaż Schemat montażowy sterownika pokazano na rysunku 2. Zmontowanie samej płytki z elementami nie jest skomplikowane. Standardowo, przed rozpoczęciem montażu warto dokładnie obejrzeć płytkę drukowaną, Wykaz elementów Rezystory: (SMD 0805) R1…R4: 49,9 V R5: 4,87 kV R6, R7, R10, R11: 2,2 kV R8, R9: 220 V R12, R13: 100 kV R14, R15, R20…R23: 3 kV R16: 10 kV R17: 1 kV R18, R19: 27 V R24…R27: 1 kV Kondensatory: (SMD 0805) C1…C10, C17, C19, C23: 100 nF C11…C14: 15 pF C15, C16: 10 mF/16 V (SMD „B”) C18: 10 mF/16 V (SMD „B”) C20: 10 nF C21, C22: 47 pF Półprzewodniki: D1…D2: LL4148 (mini MELF) D3…D6: MBR0530T1G (SOD123) LED1…LED5: dioda LED SMD, 0805 T1…T4: BC847 (SOT23) U1: STM32F10XVXT6 (TQFP100) U2: DP83848 (LQFP48) U3: FT230XS (SSOP16) U4: 24LC256SN (SO8) U5: LM1117-3.3 (SOT223) Inne: BT1: bateria litowa z podstawką J1: gniazdo RJ45 z transformatorem J2: gniazdo mini USB J3: złącze ARK J4: złącze zasilania DG301-5.0 J5: złącze PAK100/2500-20 3M (TM) Pak 100 4-Wall Header J6: złącze FE06-1 JP1: zwora K1…K4: przekaźnik np. FD41-5 (cewka na 5 V) L1, L2: 1 mH (SMD 0805) Q1: rezonator kwarcowy 25 MHz (HC49S) Q2: rezonator kwarcowy 32,768 kHz S1: przycisk OMRON B3F-10XX ELEKTRONIKA PRAKTYCZNA 5/2015
ARS3-ER – sterownik z serwerem Web
Rysunek 3. Nowy, wirtualny port COM co zwiększa szanse zauważenia ewentualnych przetrawionych ścieżek czy zwarć. Następnie, jako pierwszy należy wlutować mikrokontroler U1. Przy układzie ze 100 wyprowadzeniami lepiej nie mieć ograniczeń dostępu stwarzanych przez wcześniej zamontowane inne komponenty. Przy montażu elementu o tak gęstym rastrze wyprowadzeń jest wskazane użycie dobrych narzędzi, topnika w płynie i mała ilość lutowia na końcu grota. Nie bez znaczenia jest również doświadczenie. Po wlutowaniu elementu warto sprawdzić omomierzem czy nie występują zwarcia, choćby linii zasilania 3,3 V do masy. Łatwiej je będzie znaleźć i usunąć, niż w wypadku stwierdzenia tego faktu po wlutowaniu wszystkich elementów. Dla ułatwienia montażu można na początku wlutować także pozostałe układy scalone, a dopiero w dalszej kolejności kondensatory, oporniki i tranzystory SMD. Na samym końcu montujemy większe gabarytowo złącza, gniazdo baterii oraz przekaźniki.
Programowanie pamięci FLASH kontrolera STM32 Zapis programu w postaci pliku HEX lub pliku binarnego BIN można wykonać dwoma typowymi dla STM32 sposobami: poprzez port JTAG lub korzystając ze złącza USB. Złącze JTAG J5 przystosowane jest do podłączenia programatora typu ST-Link lub któregoś z jego klonów np. ZL30PRGv2. Po włożeniu programatora do gniazda J5 należy połączyć go z portem USB komputera, na którym jest uruchomiony program narzędziowy STM32 ST-LINK Utility. Przed zasileniem płytki sterownika zwora JPI musi być rozwarta. Następnie, za pomocą poleceń programu STM32 ST-LINK Utility należy wczytać plik HEX i zapisać jego zawartość do pamięci Flash mikrokontrolera U1. Dla skorzystaniu z drugiego sposobu programowania poprzez złącze J2 (mini-USB) na płytce będzie potrzebny specjalny program narzędziowy uruchamiany na komputerze. Może to być firmowy Flash loader demonstrator lub któryś z jego odpowiedników np. FlyMCU. Po połączeniu kablem portu USB komputera z gniazdem J2 płytki sterownika należy na komputerze uruchomić program Flash loader demonstrator. W tym momencie płytka jest już zasilana poprzez port USB. Następnie należy założyć zworę ELEKTRONIKA PRAKTYCZNA 5/2015
Rysunek 4. Zakładka „Ustawienia” programu na złącze JP1 i nacisnąć przycisk Reset sterownika. Od tego momentu znajduje się w trybie programowania. Korzystając z opcji Flash loader demonstrator-a należy wczytać plik HEX i zaprogramować kontroler na płytce. Na koniec trzeba usunąć zworę z JP1 i nacisnąć przycisk Reset na płytce.
Uruchamianie: sterowniki konwertera USB Po zapisie programu do pamięci Flash mikrokontrolera sterownik prawdopodobnie nie będzie pracował... Należy jeszcze do pamięci EEPROM zapisać ustawienia standardowe. Potrzebny do tego będzie program narzędziowy SerwUs przystosowany do współpracy z ARS3-ER. Program komunikuje się ze sterownikiem poprzez port USB i gniazdo J2 (mini-USB). Zanim jednak przejdziemy do zapisu ustawień standardowych należy się przekonać czy system w komputerze „widzi” konwerter USB na płytce sterownika. W Windows7 należy w tym celu otworzyć zakładkę Control Panel Hardware and Sound Device Manager (w innych wersjach systemu kolejność otwierania zakładek może się różnić) i sprawdzić czy w Ports (COM & LPT) po dołączeniu sterownika został dodany nowy, wirtualny port COM, tak jak pokazano na rysunku 3. Oczywiście, w zależności od liczby zainstalowanych sterowników jego numer może być inny na każdym ze współpracujących komputerów. Jeżeli port nie został automatycznie dodany, może to wynikać z błędu montażu, uszkodzenia konwertera U3 lub niesprawnego kabla USB. Jednak bardziej prawdopodobną przyczyną może być brak w systemie sterowników do obsługi układu U3 (FT230X). W tym drugim wypadku odszukujemy w Internecie stronę
producenta, czyli http://www.ftdichip.com, wybieramy element FT230X i VCP_Drivers. Następnie, zależnie od zainstalowanej wersji systemu, wybieramy plik .exe, który automatycznie zainstaluje sterowniki w systemie. Po tej operacji podłączenie do komputera płytki sterownika ARS3-ER powinno powodować dodanie informacji o nowym porcie, jak pokazano na rysunku 3.
Uruchamianie: program SerwUs i ustawienia standardowe Kiedy sterowniki konwertera USB wykryją dołączenie do komputera płytki sterownika i zostanie automatycznie dodany port wirtualny, można przejść do dalszych etapów przystosowania sterownika ARS3-ER do pracy w sieci. Posłuży do tego wspomniany wcześniej program narzędziowy SerwUs. Po jego uruchomieniu otrzymamy dostęp do 3 zakładek, z których pierwszą pokazano na rysunku 4. Najpierw należy ustanowić połączenie pomiędzy programem a sterownikiem. Naciśnięcie przycisku „Automatyczne REKLAMA
27
PROJEKTY wykrywanie podłączonego urządzenia” inicjuje proces szukania ARS3-ER dołączonego do dowolnego portu USB. Ponieważ bezpośrednio po włączeniu zasilania sterownik jest zajęty pewnymi czynnościami związanymi z ustanawianiem połączenia sieciowego, wyszukiwanie najlepiej rozpocząć po 10 sekundach od załączenia zasilania sterownika. Jeżeli wszystko przebiegnie pomyślnie na sterowniku przez moment zaświeci się dioda LED5 a w oknie Logu programu SerwUs wyświetli się część informacji pokazanych na rys. 4. Teraz należy kliknąć klawisz programu z czerwonym napisem USTAWIENIA STANDARDOWE. Rozpocznie się proces wymazywania w EEPROM-ie starych zapisów i zastępowanie ich nowymi pozwalającymi na standardowe funkcjonowanie ARS3-ER. Po chwili ponownie zapali się dioda LED5, a po jej zgaśnięciu na ekranie powinien pojawić się napis informujący o sukcesie przywracania ustawień standardowych. W kolejnym kroku można jeszcze otworzyć zakładkę COM i RTC dla zmiany szybkości transmisji poprzez port szeregowy (USB) oraz ustawić aktualny czas i datę na zegarze czasu rzeczywistego RTC. Żeby po odłączeniu zasilania ustawienia nie zostały utracone, w gnieździe BT1 należy umieścić baterię litową 3 V.
Dołączanie sterownika do sieci Ethernet W domowym zastosowaniach najczęściej sieć jest organizowana w oparciu o któryś z tanich routerów. Zazwyczaj działają one bardzo podobnie, więc dalszy opis powinien odpowiadać większości przypadków. Komunikacja w mniejszej lub większej sieci odbywa się z wykorzystaniem tzw. adresów IP. Każde urządzenie dołączone do węzła sieci tworzonego przez ruter musi być identyfikowany przez unikatowy, 4-bajtowy adres IP (w wersji v.4). Przy adresowaniu dynamicznym adres każdemu urządzeniu jest przydzielany przez router w miarę dołączania do sieci kolejnych urządzeń. Czas utrzymywania adresów przydzielonych urządzeniom można zmienić w ustawieniach routera. Urządzenie może też występować w sieci pod niezmiennym adresem statycznym. Wówczas jego numer powinien mieścić się w zakresie wymaganym przez daną sieć.
Rysunek 5. Predefiniowana strona sterownika Oczywiście, ten adres musi być unikatowy i w tym węźle nie może posługiwać się nim żadne inne urządzenie. Sterownik ARS3-ER może pracować z adresem statycznym lub dynamicznym. Po zaznaczeniu w programie SerwUs opcji „Wybór statycznego IP” sterownik będzie odpowiadał na adres wpisany ręcznie. Można go ustawić w dowolnym zakresie akceptowanym przez sieć. Przydzielając dynamiczny adres IP router identyfikuje urządzenia za pomocą numeru MAC, który powinien być unikatowy w danym węźle sieci. Jest on 6-bajtowy i w sterowniku może być ustawiony za pomocą programu SerwUs. Ostatnia opcja, która wymaga ustawienia przed dołączeniem sterownika do sieci Ethernet znajduje się na zakładce „Pliki HTML” programu SerwUs. Ponieważ jeszcze nie dysponujemy własną wersją stron HTML, do wyświetlania należy wybrać opcję stron predefiniowanych.
Pierwsze uruchomienie ARS3-ER Po zakończeniu wstępnych ustawień można podłączyć sterownik do rutera. Po podłączeniu zasilania i odczekaniu ok. 10 s można jeszcze raz uruchomić w programie SerwUs wyszukiwanie sterownika. Powinny wyświetlić się wszystkie wprowadzone ustawienia, a w okienku logu na pierwszej
zakładce powinna być wyświetlona informacja o adresie IP, na który będzie reagował sterownik. Po uruchomieniu przeglądarki internetowej i wpisaniu na pasku tego adresu, powinna wyświetlić się strona pokazana na rysunku 5. Na wyświetlanej, predefiniowanej stronie sterownika ARS3-ER jest kilka linków do podstron pozwalających przetestować jego działanie: • test wejść pokazuje poziom logiczny (0 lub 1) wejść IN1…IN4 automatycznie odświeżany co około 2 sekundy. Zwarcie do masy dowolnego z wejść powoduje zmianę wyświetlanej informacji. • test wyjść pozwala na sterowanie włączeniem każdego z przekaźników PK1… PK4. • test hasła to przykład strony zabezpieczonej hasłem. W ustawieniach predefiniowanych hasło to „123456”. Zakładka „Złącza” prezentuje podręczny opis gniazd i złącz dostępnych na płytce sterownika. W kolejnej części artykułu opiszę sposób tworzenia własnych stron sterujących wyjściami i odczytem wejść w oparciu o technikę tagów. Zostanie także przedstawiony sposób uruchomienia powiadomień e-mail o zdarzeniach.
Ryszard Szymaniak, EP
REKLAMA
http://ep.com.pl 28
ELEKTRONIKA PRAKTYCZNA 5/2015
PROJEKTY
AVT 5502
Miernik napięcia i prądu z USB Coraz więcej urządzeń elektronicznych jest zasilanych z interfejsu USB urządzenia (zwykle komputera) hosta. W związku z tym, że jest to interfejs przeznaczony do użytku masowego, to musi mieć bezpieczne złącza, uniemożliwiające zwarcie pomiędzy liniami interfejsu lub linią zasilającą, a masą. Dlatego też dołączenie woltomierza i amperomierza do złącza jest bardzo trudne – pomiar bez użycia specjalnych adapterów jest wręcz niemożliwy. Prezentowane urządzenie jest w stanie w wygodnej formie podać wartość poboru prądu i napięcia dostępnego na linii zasilającej bez zakłócania transmisji danych. Rekomendacje: przyrząd przyda się w warsztacie konstruktora – elektronika. Schemat ideowy miernika pokazano na rysunku 1. Najistotniejszym elementem układu jest blok przetwarzania analogowo – cyfrowego. Rolę przetwornika pełni układ MCP3425. Zawiera on w swojej strukturze: • Przetwornik A/C o rozdzielczości 16 bitów. • Wzmacniacz różnicowy o programowalnym wzmocnieniu z wejściem różnicowym. • Wysokostabilne źródło napięcia odniesienia 2,048 V. • Interfejs I2C. Przetwornik jest oferowany w niewielkiej, 6-nóżkowej obudowie do montażu powierzchniowego SOT23-6. Dodatkowo, zachęcająca jest również jego cena detaliczna: około 8 złotych w sprzedaży wysyłkowej. Ma on jednak dosyć istotną wadę: szybkość próbkowania przy najwyższej rozdzielczości to nie więcej niż 15 próbek na sekundę. Jednak w tej aplikacji nie stanowi to istotnego problemu. Użycie zewnętrznego przetwornika A/C było konieczne z racji zbyt niskiej rozdzielczości (tylko 10 bitów) wbudowanego w użyty mikrokontroler. Osiągana rozdzielczość wykonywanych pomiarów byłaby na poziomie: ELEKTRONIKA PRAKTYCZNA 5/2015
• Dla napięcia: 5,5 V/210 = 5,37 mV. • Dla prądu: 2,5 A/210 = 2,44 mA. Z kolei, zakodowanie informacji o zmierzonej wielkości na 16 bitach zapewnia rozdzielczość: • Dla napięcia: 5,5 V/216 = 83,9 mV. • Dla prądu: 2,5 A/216 = 38,2 mA. Jest to całkowicie wystarczające na potrzeby tego urządzenia. Rezystor R17 jest bocznikiem do pomiaru pobieranego prądu. Dla ułatwienia, prąd jest mierzony od strony masy (metoda low side). Wprawdzie MCP3425 dysponuje wejściem różnicowym, które umożliwiłoby pomiar między zaciskami rezystora również od strony zasilania (metoda high side), lecz taki pomiar mógłby być obarczony błędem wynikającym ze skończonej wartości współczynnika CMRR, więc zdecydowano się na dołączenie wejścia „–” do masy układu i wykonywanie pomiarów względem masy. Ponieważ uzyskanie pełnej rozdzielczości pomiaru prądu wymagałoby odłożenia na boczniku pełnego napięcia odniesienia (tj. 2,048 V), do celu pomiaru prądu wbudowany wzmacniacz jest przełączany na wzmocnienie 8 V/V, dzięki czemu maksymalny spadek na boczniku nie przekracza wartości 256 mV przy prądzie 2,5 A. Napięcie ze złącza USB
W ofercie AVT* AVT-5502 A AVT-5502 B AVT-5502 C AVT-5502 UK Podstawowe informacje: • Płytka drukowana o wymiarach 110 mm×45 mm. • Rodzaj wyświetlacza LED: 4 cyfry. • Zakres napięcia mierzonego: 0…5,5 V (z rozdzielczością 1 mV). • Zakres prądu mierzonego: 0…2,5 A (z rozdzielczością 1 mA). • Częstotliwość odświeżania: 1 Hz. • Uśrednianie wyniku pomiaru z 5 próbek pobranych w odstępie 100 ms. • Rezystancja bocznika: 0,1 V. • Kalibrowanie za pomocą potencjometrów nastawnych. • Interfejs UART zgodny z poziomami TTL. Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-5425 MKP – moduł kontrolno-pomiarowy z interfejsem USB (EP 12/2013) AVT-5233 3-kanałowy woltomierz z USB (EP 5/2010)
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
REKLAMA
29
PROJEKTY
Rysunek 1. Schemat ideowy miernika parametrów napięcia/prądu USB
30
ELEKTRONIKA PRAKTYCZNA 5/2015
Miernik napięcia i prądu z USB Tabela 1. Opis funkcji zworek Założona JP1 Zdjęta Założona JP2 Zdjęta
Wyświetla wartość napięcia Wyświetla wartość prądu Napięcie zmierzone na obciążeniu Napięcie skorygowane o spadek na boczniku
Rysunek 2. Przykład komunikatów odebranych z UART
Rysunek 3. Schemat montażowy miernika parametrów napięcia/prądu USB ELEKTRONIKA PRAKTYCZNA 5/2015
jest mierzone przy wzmocnieniu 1 V/V za pomocą dzielnika rezystorowego R15/R16. Przy okazji, mierzone napięcie jest wykorzystane do zasilenia układu miernika. Do przełączania wejścia przetwornika A/C wykorzystano klucz analogowy NC7SB3157. Ma on dwa wejścia przełączane pomiędzy jednym wyjściem, cyfrowe wejście sterujące i wyprowadzenia zasilania. O aktualnie mierzonej wartości (prąd/napięcie) decyduje mikrokontroler ustawiając odpowiedni poziom logiczny na linii S. Ponieważ komunikacja między mikrokontrolerem a przetwornikiem odbywa się za pośrednictwem interfejsu I2C, konieczne było dodanie rezystorów R13 i R14, których zadaniem jest zapewnienie wysokiego poziomu logicznego dla wyjść typu otwarty kolektor. Wybrany przez użytkownika pomiar jest prezentowany na 4-cyfrowym wyświetlaczu LED. Jego cyfry są sterowane multipleksowo, co redukuje liczbę wymaganych linii mikrokontrolera. Do kalibrowania funkcji pomiaru napięcia i prądu służą potencjometry montażowe, odpowiednio PR1 i PR2. Ustawienie w środkowym położeniu nie zmienia wyniku, przekręcenie w skrajną pozycję zmienia go o około ±5%, zależnie od kierunku obrotu. Kalibracja odbywa się programowo, to znaczy mikrokontroler dokonuje pomiaru napięcia ze ślizgacza, po czym mnoży wynik pobrany z zewnętrznego A/C przez obliczony współczynnik kalibracyjny. Takie rozwiązanie zmniejsza do minimum liczbę podzespołów biernych w torze analogowym, które mogłyby być źródłem zakłóceń – w szczególności potencjometry, w których niepewny kontakt ślizgacza ze ścieżką rezystancyjną mógłby zaburzać pracę przetwornika. Nad pracą całego układu czuwa mikrokontroler ATmega8. Jest taktowany za pomocą wewnętrznego oscylatora RC o częstotliwości 8 MHz. Złącze J1 służy do zaprogramowania go, J2 to wyjście sprzętowego UART, a funkcje zworek JP1 i JP2 opisano w tabeli 1. Służą ustawieniu parametru, który ma być pokazany na wyświetlaczu. O ile działanie JP1 nie wymaga komentarza, o tyle przy JP2 jest on wskazany. Pomiar prądu jest wykonywany poprzez pomiar spadku napięcia na rezystorze 0,1 V. Powoduje to, iż napięcie pochodzące ze źródła (komputera lub zasilacza) nie jest identyczne z tym, którym jest zasilany mierzony odbiornik. Ponieważ układ mierzy prąd i napięcie, jest w stanie obliczyć wartość spadku napięcia na tym rezystorze i dodać do zmierzonego na zaciskach obciążenia – właśnie na tym polega owa korekta. Miernik ma interfejs UART. Umożliwia on jednostronną komunikację z komputerem – cyklicznie, co 1 sekundę, wysyłane
Wykaz elementów Rezystory: (SMD 1206) R1…R4, R13, R14: 4,7 kV R5…R12: 180 V R15: 56 kV R16: 33 kV R17: 0,1 V/1 W RN1, RN2: drabinki 4×10 kV (SIL5) PR1, PR2: 10 kV (potencjometry montażowe, leżące) Kondensatory: C1, C2, C4: 100 nF (SMD 1206) C3: 22 mF/16 V (SMD „B”) Półprzewodniki: LED1: AF5643 (wyświetlacz) T1…T4: BC857 US1: ATmega8 (TQFP32) US2: MCP3425 US3: NC7SB3157 Inne: J1: goldpin kątowy 5-pin/2,54 mm J2: goldpin kątowy 3-pin/2,54 mm J3: gniazdo USB do druku żeńskie J4: gniazdo USB do druku męskie JP1, JP2: goldpin kątowy 2-pin/2,54mm+zworki są wyniki pomiarów. Najpierw jest wysyłane napięcie w woltach (nieskorygowane, tj. zmierzone na obciążeniu), potem znak tabulacji, wartość prądu w amperach i znak nowej linii. Składnia wysyłanych komunikatów jest niezmienna i niezależna od ustawień zworek konfigurujących pracę wbudowanego wyświetlacza. Użycie znaku tabulacji do rozdzielenia wartości liczbowych ułatwia późniejsze przeniesienie np. do arkusza kalkulacyjnego, gdyż umożliwia to automatyczne rozdzielenie pomiarów na dwie kolumny przy imporcie danych. Parametry transmisji zestawione to 9600, n, 8, 1, a przykład odebranych komunikatów na rysunku 2. Ponieważ współczesne komputery nie są już wyposażane w port RS232, można z powodzeniem użyć modułu konwertera USB/UART, akceptującego poziomy napięcia układów TTL. Pin RXD w złączu J2 nie jest w tej wersji oprogramowania wykorzystywany i może być niepodłączony. REKLAMA
31
PROJEKTY Tabela 4. Kody błędów sygnalizowanych przez układ Numer kodu 0 1
Znaczenie Brak odpowiedniego adresu układu MCP3425 Błąd komunikacji I2C podczas wykonywania pomiarów
LED. Jest to prosty test ułatwiający wykrycie niepoprawnie działającego wyświetlacza. Ponadto, jest wysyłany komunikat powitalny poprzez UART. Zasilanie pochodzi z wtyku J3, nie jest potrzebny dodatkowy zasilacz. Po wykonaniu testu wyświetlacza, układ przechodzi do cyklicznego wykonywania pomiarów i wysyłania ich poprzez UART.
Dla dociekliwych
Rysunek 4. Bajt adresu układu MCP3425
Budowa i uruchomienie Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 108 mm×45 mm, której schemat montażowy pokazano na rysunku 3. Montaż jest typowy i nie wymaga szczegółowego opisu. Jedyna uwaga jest taka, że rezystor R17 należy wlutować pozostawiając niewielki dystans od powierzchni laminatu, co ułatwi jego chłodzenie przy pomiarze prądu o dużym natężeniu.
Przed przystąpieniem do programowania mikrokontrolera, należy zmienić ustawienia bitów konfigurujących w taki sposób, aby mikrokontroler był taktowany sygnałem zegarowym pochodzącym z wbudowanego generatora RC o częstotliwości 8 MHz (domyślna, fabryczna wartość to 1 MHz). Poprawnie zmontowany i zaprogramowany układ jest gotowy do pracy. Po włączeniu zasilania, mikrokontroler na 3 sekundy zaświeca wszystkie segmenty wyświetlacza
Fotografia 5. Wyświetlacz pokazujący kod błędu
Podczas testowania prototypu okazało się, że adres układu MCP3425, którym ten jest identyfikowany na linii I2C, wymaga ustalenia. Odpowiedni fragment tej zamieszczono na rysunku 4. Teoretycznie, kupiony w hurtowni układ powinien mieć adres 1101000. Tymczasem, układ zastosowany w prototypie ma adres 1101010. Aby ta niedogodność nie stwarzała problemów w uruchamianiu urządzenia, podczas wykonywania testu wyświetlacza mikrokontroler próbuje skomunikować się z przetwornikiem A/C przy użyciu różnych adresów, od 1101000 do 1101111. Adres, którego użycie poskutkuje prawidłową odpowiedzią zostaje zapamiętany i wykorzystywany w dalszym działaniu. Fakt ten powinni mieć na uwadze ci, którzy będą chcieli wykorzystać omówiony przetwornik w swoich układach. Ponadto, układ potrafi sygnalizować zaistniałe błędy. Funkcja ta może być pomocna przy lokalizacji usterek. Sygnalizacja polega na wyświetleniu na wyświetlaczu Err(cyfra) (fotografia 5) i wstrzymaniu dalszego działania w pustej, nieskończonej pętli. Kody błędów umieszczono w tabeli 4.
Michał Kurzela, EP
REKLAMA
32
ELEKTRONIKA PRAKTYCZNA 5/2015
PROJEKTY
iControlSensor
Czujnik do pomiaru temperatury dla iControl
Na łamach Elektroniki Praktycznej (część 1 – EP 1/2015, część 2 – EP 2/2015) przedstawiłem projekt systemu typu „inteligentny dom”, który w roli medium transmisyjnego używa sieci energetycznej (technologia Power Line Communication). W artykule opisano podstawowe elementy systemu nazwanego iControl, tj. urządzenia sterującego iControlMaster oraz urządzenia wykonawczego iControlSwitch pełniącego rolę wyłącznika jedno- lub dwubiegunowego. Kolejnym rodzajem modułu, jaki obsługiwany jest przez nasz system „inteligentnego budynku” jest moduł iControlSensor przeznaczony do pomiaru temperatury. Rekomendacje: czujnik temperatury do systemu iControl. Może przydać się do pomiaru lub sterowania ogrzewaniem. Schemat czujnika temperatury do systemu iControl pokazano na rysunku 1. „Sercem” urządzenia jest mikrokontroler ATmega8 odpowiedzialny za realizację całej założonej funkcjonalności. Mikrokontroler za pomocą wbudowanego, sprzętowego interfejsu TWI steruje pracą modemu CY8CPLC10. Dane są transmitowane oraz analizowane z użyciem przerwania zewnętrznego INT1. Ponadto wykorzystano programową implementację obsługi interfejsu 1-Wire ELEKTRONIKA PRAKTYCZNA 5/2015
(wyprowadzenie PD2 mikrokontrolera), dzięki czemu zrealizowano współpracę sterownika ze scalonym termometrem typu DS18S20 zapewniając dokładny pomiar temperatury otoczenia. Część analogowa iControlSensor jest w zasadzie taka sama, jak w module iControlSwitch, więc nie będę powielał szczegółowego opisu zastosowanych rozwiązań sprzętowych odsyłając dociekliwych Czytelników do artykułu wspomnianego we wstępie. Jedyne, co należy podkreślić to fakt,
Podstawowe informacje: • Maksymalnie 64 modułów wykonawczych (typu Slave) w ramach jednej sieci systemu iControl. • Maksymalnie 16 modułów sterujących (typu Master) wyposażonych w interfejs użytkownika z wyświetlaczem TFT. • Adresy logiczne modułów wykonawczych nadawane są automatycznie przez moduły sterujące podczas konfigurowania sieci, zaś adresy logiczne modułów sterujących nadawane są przez użytkownika za pomocą interfejsu użytkownika GUI. • Każdy moduł sterujący może zapamiętać i zaadresować 64 moduły wykonawcze. • Wszystkie moduły wykonawcze zapamiętane przez dany moduł sterujący mogą zostać połączone w maksymalnie 8 grup, dowolnie podczas konfiguracji sieci, reprezentujących pomieszczenia, nad którymi moduł ten ma kontrolę (np. pokoje). • Kilka modułów sterujących może mieć kontrolę nad jednym modułem wykonawczym. • W ramach graficznego interfejsu użytkownika modułu sterującego każdy moduł wykonawczy jest identyfikowany przez unikalną nazwę. • Każda z 8 możliwych grup, w które mogą być łączone moduły wykonawcze może mieć nadaną nazwę, aktywowana lub wyłączona. • Przewidziano 5 rodzajów modułów wykonawczych: wyłącznik 1-biegunowy, wyłącznik 2-biegunowy, ściemniacz, sensor temperatury, sterownik oświetlenia RGB LED. • System iControl sygnalizuje dołączenie nowych, jeszcze nieskonfigurowanych modułów wykonawczych oraz wystąpienie błędów transmisji. • System iControl umożliwia usuwanie modułów wykonawczych z sieci, a co za tym idzie – rekonfigurację sieci. Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-5490 iControl – system automatyki domowej (1, 2) (EP 1-2/2015) AVT-5313 IntelliDom – System sterowania inteligentnego budynku z interfejsem ZigBee (EP 10-11/2011) AVT-5126 IDom – System automatyki domowej (EP 3/2008)
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
iż rozbudowana aplikacja toru analogowego wynika wyłącznie z chęci sprostania wymogom norm CENELEC EN50065-1:2001 oraz FCC part 15 (w jej konstrukcji posłużono się zresztą schematem aplikacyjnym firmy Cypress – nota aplikacyjna CY3274). Z uwagi na fakt, że moduł iControlSensor „zadowala się” znacznie mniejszym zapotrzebowaniem na energię, niż wspomniany moduł iControlSwitch, w jego zasilaczu zastosowano typowy transformator do druku
33
PROJEKTY Ustawienie ważniejszych fusebitów: CKSEL3...0: 0100 SUT1...0: 10 CKOPT: 1 EESAVE: 0
(15 V/2,6 VA) oraz dwa stabilizatory liniowe (78M12 i 78M05) zapewniającą odpowiednie napięcie zasilające. Przejdźmy do szczegółów implementacyjnych programu obsługi aplikacji, które nie zostały opisane w poprzednim artykule. Wszystkie moduły systemu iControl wykorzystują wbudowany w modem CY8CPLC10 mechanizm detekcji zajętości magistrali danych (Band In Use), więc wysłanie pojedynczego pakietu danych, w zależności od parametrów transmisji i stanu tejże magistrali, Wykaz elementów Rezystory: (obudowy SMD 0805) R1: 20 kV R2, R3, R25: 4,7 kV R4: 2,1 kV/1% R5…R7, R16, R17, R19, R20: 10 kV R8: 7,5 kV/1% R9: 36,5 V/1% R10, R13: 37,4 kV/1% R11: 3,.83 kV/1% R12: 41,2 V/1% R14, R26, R27: 1 kV/1% R15: 4,99 V/1% R18: 4,02 kV/1% R21: 22,1 V/1% R22: 2 kV/1% R23, R24: 20 kV Kondensatory: (SMD 0805): C1, C28: 330 nF C2, C5, C9, C17…C20, C29: 100 nF C3, C4: 22 pF C6, C10, C25: 10 nF C7, C11, C12, C22, C23: 1 mF C8, C13…C16: 1000 pF/1% C21: 10 mF (SMD 1206) C24: 1,5 nF C26: 150 nF/300 V (polipropylenowy klasy X1, r=15 mm) C27: 100 mF/16 V (r=2,5 mm) C30: 100 mF/25 V (r=2,5 mm) Półprzewodniki: U1: ATmega8 (TQFP32) U2: CY8CPLC10 (SSOP28) U3…U5: LMH6639MF (SOT23-6) U6: 78M12 (DPAK) U7: 78M05 (DPAK) U8: DS18S20 (TO-92) T1: BC817 (SOT23) T2: FCX591A (SOT89) T3: FCX491A (SOT89) D1: SMAJ12CA (DO-214AC) D2: BAT54S (SOT23) STATUS: zielona dioda LED (SMD 0805) BIU: czerwona dioda LED (SMD 0805) B1: mostek prostowniczy 1A/50 V (raster 5 mm) Inne: TR1: transformator izolacyjny SMD Murata 78250MC TR2: transformator do druku HAHN BV EI 304 2043 (15 V/2,6 VA) L1: dławik SMD 1 mH (1812) Q1: rezonator kwarcowy CFPX217 (SMD 32768 Hz) V1: warystor V250LA4P
34
Rysunek 1. Schemat ideowy modułu iControlSensor ELEKTRONIKA PRAKTYCZNA 5/2015
Czujnik do pomiaru temperatury dla iControl może zając nawet 1,5 sekundy. Dlatego rozwiązanie przesyłania danych w postaci inicjacji transmisji danych i oczekiwania na rezultat jej wykonania byłoby nieefektywne.
Z punktu widzenia programu sterującego wstrzymywałoby obsługę innych, ważnych procesów. W związku z tym w aplikacji programu obsługi urządzeń systemu iControl
zaimplementowano specjalny mechanizm wysyłania, synchronizacji i kontroli pakietów danych. Po pierwsze, zastosowano specjalny bufor kołowy pakietów transmisji
Rysunek 1. c.d. ELEKTRONIKA PRAKTYCZNA 5/2015
35
PROJEKTY
Rysunek 2. Schemat montażowy modułu iControlSensor
(z odpowiednimi wskaźnikami miejsca zapisu i odczytu), którego elementem jest struktura danych opisująca kompletną ramkę transmisji, a której konstrukcję (wraz z odpowiednimi zmiennymi) pokazano na listingu 1. Dodatkowo, przewidziano 2 funkcje obsługi przerwań ISR: od Timera1 (dokładnie, od porównania wartości Timera1 z wartością rejestru ORC1A), wywoływaną cyklicznie co 100 milisekundy, której zadaniem jest sprawdzanie czy są jakiekolwiek dane przeznaczone do wysłania, inicjacja procesu wysłania danych, jego nadzór i obsługa bufora kołowego oraz funkcję obsługi przerwania zewnętrznego INT1, której zadaniem jest zarówno odbiór „zwykłych” danych przesyłanych przez moduł sterujący iControlMaster oraz odbiór statusów bieżącej i zainicjowanej we wcześniej wspomnianej procedurze obsługi przerwania, transmisji danych. W tym, drugim przypadku, funkcja obsługi przerwania zewnętrznego INT1 sprawdza status wysyłania bieżącej transmisji danych i w zależności od jego stanu modyfikuje bieżąca strukturę danych dając asumpt do ponowienia tejże transmisji (w przypadku jej niepowodzenia i nie przekroczenia maksymalnej liczby retransmisji) lub też kończąc jej przebieg poprzez ustawienie odpowiednich flag w strukturze danych (przeprowadzenia transmisji zakończonego powodzeniem lub niepowodzeniem) jak i flag dla
pętli głównej aplikacji, dzięki czemu program główny informowany jest na bieżąco o aktualnym stanie systemu. W ten prosty sposób unika się niepożądanego wstrzymywania pracy aplikacji w przypadku problemów z komunikacją po magistrali PLC. W celu zrealizowania powyższej funkcjonalności, po pierwsze, przewidziano prostą funkcję narzędziową, której zadaniem jest dodanie do nadawczego bufora kołowego, danych przeznaczonych do wysłania, a którą pokazano na listingu 2. Kolejnym krokiem jest implementacja funkcji, której cykliczne wywoływanie (co 100 ms) zapewnia sprawdzanie czy są jakiekolwiek dane przeznaczone do wysłania, inicjacja procesu wysłania danych, jego nadzór i obsługa bufora kołowego, a którą to pokazano na listingu 3. Jak widać, przedstawiona implementacja wspomnianej funkcji zapewnia wykonanie 3 prób wysyłania kompletnej wiadomości PLC, przy czym dla każdej z wymienionych prób zmieniana jest wartość progu dla mechanizmu BIU, który to dla kolejnych transmisji przyjmuje następujące ustawienia: • próba pierwsza: 96 dBmVrms, • próba druga: 99 dBmVrms, • próba trzecia: wyłączenie mechanizmu BIU. Po trzech, nieudanych próbach wysłania pakietu PLC, aplikacja główna otrzymuje
Listing 1. Realizacja bufora kołowego i deklaracje zmiennych odpowiedzialnych za proces wysyłania danych PLC //Definicja typu bufora kołowego danych przeznaczonych do wysłania typedef struct { volatile uint8_t Status; //Status transmisji bieżącego pakietu danych volatile uint8_t Trials; //Liczba prób retransmisji volatile uint8_t Command; //Rozkaz sterujący towarzyszący przesyłanym danym volatile uint8_t Data[10]; //Tablica danych przeznaczonych do transmisji volatile uint8_t Bytes; //Liczba danych przeznaczonych do transmisji volatile uint8_t DAtype; //Rodzaj adresu urządzenia docelowego: Logiczny/Grupowy }txBufferType; //Definicja statusów procesu wysyłania #define BUF_EMPTY 0 #define BUF_READY_TO_SEND 1 #define BUF_WAITING_FOR_STATUS 2 #define BUF_SENT 3 #define BUF_FAILED 4 //Definicje rozmiaru bufora nadawczego #define TX_BUF_SIZE 16 //Rozmiar bufora nadawczego #define TX_BUF_MASK (TX_BUF_SIZE - 1) //Maska bufora nadawczego //Deklaracje zmiennych odpowiedzialnych za obsługę bufora //nadawczego jak i samego procesu nadawania txBufferType txBuffer[TX_BUF_SIZE]; //Nadawczy bufor kołowy static volatile uint8_t txBufferWriteTo; //Wskaźnik bieżącego miejsca w buforze przeznaczonego do zapisu static volatile uint8_t txBufferReadFrom; //Wskaźnik bieżącego miejsca w buforze przeznaczonego do odczytu static volatile uint8_t txMessages; //Aktualna liczba wiadomości przeznaczonych do wysłania Listing 2. Funkcja odpowiedzialna za dodanie danych do nadawczego bufora kołowego //Funkcja dodaje do bieżącego miejsca zapisu bufora nadawczego nową //strukturę danych przeznaczonych do wysłania void addToTransmitBuffer(uint8_t Command, volatile uint8_t *Data, uint8_t Bytes, uint8_t DAtype) { register uint8_t i = 0, writePointer = txBufferWriteTo; ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { txBuffer[writePointer].Status = BUF_READY_TO_SEND; txBuffer[writePointer].Trials = 0; txBuffer[writePointer].Command = Command; txBuffer[writePointer].Bytes = Bytes; while(Bytes--) {txBuffer[writePointer].Data[i]= Data[i]; i++;} txBuffer[writePointer].DAtype = DAtype; txBufferWriteTo = (writePointer+1) & TX_BUF_MASK; //Nowy adres miejsca zapisu txMessages++; } }
36
ELEKTRONIKA PRAKTYCZNA 5/2015
Czujnik do pomiaru temperatury dla iControl informację o błędzie transmisji danych, co pozwala podjąć odpowiednie akcje. Ostatnią funkcją, niezbędną z punktu widzenia zastosowanego mechanizmu transmisji, jest funkcja obsługi przerwania zewnętrznego INT1, której zadaniem jest odbiór „zwykłych” danych przesyłanych przez moduł sterujący iControlMaster oraz odbiór statusów bieżącej i zainicjowanej we wcześniej wspomnianej funkcji obsługi przerwania (list. 3), transmisji danych. Funkcji pokazano na listingu 4. Funkcję inicjalizacji modułu iControlSensor zawiera odpowiednie procedury konfigurujące obsługę przerwań odpowiedzialnych za realizację procesu wysyłania danych – pokazano ją na listingu 5.
Montaż
Fotografia 3. Widok obwodu drukowanego modułu iControlSensor od strony BOTTOM.
Schemat montażowy modułu iControlSensor pokazano na rysunku 2. Sposób wykonania obwodu drukowanego umożliwia zamontowanie gotowego urządzenia w typowej puszcze elektroinstalacyjnej o średnicy 60 mm i głębokości 40 mm. Z uwagi na sporą liczbę
Listing 3. Funkcja odpowiedzialna za inicjowanie i nadzór procesu wysyłania danych PLC ISR(TIMER1_COMPA_vect) { //Lokalne bufory zmiennych globalnych typu volatile - optymalizacja funkcji ISR uint8_t Bytes, Command, Trials, DAtype, readPointer = txBufferReadFrom; if(txMessages) //Sprawdzenie czy są jakieś dane do wysłania { Bytes = txBuffer[readPointer].Bytes; Command = txBuffer[readPointer].Command; Trials = txBuffer[readPointer].Trials; DAtype = txBuffer[readPointer].DAtype; //W zależności od statusu bieżącej operacji, podejmujemy różne akcje switch(txBuffer[readPointer].Status) { case BUF_READY_TO_SEND: //W zależności od liczby wykonanych prób, podejmujemy różne akcje switch(Trials) { //Inicjowanie transmisji case 0: //Aby nie czytać rejestru PLC_MODE_REG by //uaktywniać BIU to wczytujemy do niego parametry startowe writePLCregister(PLC_MODE_REG, TX_ENABLE|RX_ENABLE|RX_OVERRIDE|ENABLE_BIU|CHECK_DA|VERIFY_ PACKET_CRC8); //Ustawienie poziomu sygnału dla mechanizmu CSMA writePLCregister(THRESHOLD_NOISE_REG, BIU_TRESHOLD_96DBUV); //Ustawiamy typ adresu przeznaczenia. Typ adresu nadajnika - zawsze logiczny setPLCtxAddrType(TX_SA_TYPE_LOGICAL, DAtype); //Ustawiamy adres DA: grupowy Masterów lub LA powiązanego Mastera if(DAtype==TX_DA_TYPE_GROUP) setPLCtxDA(TX_DA_TYPE_GROUP, &(uint8_t) {MASTER_GROUP_ADDR}); else setPLCtxDA(TX_DA_TYPE_LOGICAL, (uint8_t *) &Node.bindMasterLA); writePLCregister(TX_COMMAND_ID_REG, Command); writePLCregisters(TX_DATA_REG, (uint8_t *) txBuffer[readPointer].Data, Bytes); //Inicjacja procesu transmisji, w tym specyfikacja liczby //bajtów przeznaczonych do wysłania writePLCregister(TX_MESSAGE_LENGTH_REG, Bytes|SEND_MESSAGE); break; //Zwiększenie wartości BIU i restart transmisji case 1: writePLCregister(THRESHOLD_NOISE_REG, BIU_TRESHOLD_99DBUV); writePLCregister(TX_MESSAGE_LENGTH_REG, Bytes|SEND_MESSAGE); break; //Wyłączenie BIU dla Trials = 2 i restart transmisji case 2: writePLCregister(PLC_MODE_REG, TX_ENABLE|RX_ENABLE|RX_OVERRIDE|DISABLE_BIU|CHECK_DA|VERIFY_ PACKET_CRC8); writePLCregister(TX_MESSAGE_LENGTH_REG, Bytes|SEND_MESSAGE); break; } txBuffer[readPointer].Status = BUF_WAITING_FOR_STATUS; //Nie robimy nic break; //Nie robimy nic, gdyż czekamy na rezultat bieżącej transmisji case BUF_WAITING_FOR_STATUS: break; case BUF_FAILED: case BUF_SENT: //Usunięcie elementu z bufora - zarówno w przypadku pomyślnego jak i niepomyślnego wysłania txBuffer[readPointer].Status = BUF_EMPTY; //Przesunięcie ogona bufora, bo zdjęliśmy jeden element txBufferReadFrom = (readPointer+1) & TX_BUF_MASK; txMessages--; //Zmniejszenie liczby wiadomości przeznaczonych do wysłania break; } } }
ELEKTRONIKA PRAKTYCZNA 5/2015
37
PROJEKTY elementów i małą powierzchnię, zastosowano dość gęsty montaż elementów SMD po obu stronach laminatu. Na płytce urządzenia poprowadzono obszerne pola masy po obu stronach obwodu drukowanego oraz zastosowano szereg przelotek pomiędzy nimi w celu zmniejszenia pojemności pasożytniczych. Z uwagi na zastosowanie niewielkich elementów SMD, montaż tego typu układu najlepiej jest przeprowadzić z użyciem stacji lutowniczej wyposażonej w grot o niewielkiej średnicy, odpowiedniej jakości topników lutowniczych oraz dysponując sporym doświadczeniem w tej kwestii. Jak zwykle, montaż taki zaczynamy od przylutowania wszystkich półprzewodników w obudowach SMD (po obu stronach laminatu), następnie lutujemy rezystory, kondensatory, elementy
indukcyjne, a na samym końcu wszystkie elementy przeznaczone do montażu przewlekanego. Wygląd obwodu drukowanego modułu od strony BOTTOM pokazano na fotografii 3. W układzie prototypowym, w odróżnieniu od projektu docelowego, zastosowano rezonator kwarcowy przeznaczony do montażu przewlekanego. Co ważne, poprawnie zmontowany układ nie wymaga żadnych regulacji i powinien działać tuż po włączeniu zasilania. Tak jak w poprzednim module typu Slave, na płytce drukowanej modułu iControlSensor przewidziano specjalną zworkę oznaczoną „UNBIND”. Służy ona do wyzerowania stanu modułu wykonawczego do stanu wyjściowego (moduł nieskonfigurowany), przy czym stan jej sprawdzany jest wyłącznie
podczas włączania urządzenia, zaś potwierdzeniem zadziałania tego mechanizmu jest zaświecenie diody STATUS przez 0,5 sekundy. Funkcji tej można użyć na przykład w przypadku, gdybyśmy odłączyli zalogowany wcześniej i skonfigurowany moduł wykonawczy od sieci (z nadanym adresem LA) i chcieli go użyć w innej sieci. W takim przypadku, jako że moduł ten miałby już nadany adres LA, nie zgłosiłby się automatycznie w nowej sieci i jedynym sposobem „zmuszenia” go do tej czynności byłoby sprzętowe, lokalne zresetowanie jego stanu. Niemniej jednak, nie polecam tego scenariusza postępowania, gdyż konfiguracja czy rekonfiguracja sieci powinna być procesem przemyślanym i wykonywanym z poziomu modułów sterujących.
Listing 4. Funkcja ISR INT1 współodpowiedzialnej za obsługę procesu wysyłania danych PLC ISR(INT1_vect) { //Odebrane dane (co najwyżej 1 bajt, gdyż nie ma rozkazów, //którym towarzyszyło by więcej danych) uint8_t packetData; uint8_t receivedCmnd, packetLength, whatHappened, readPointer = txBufferReadFrom, saveNodeSettings = 0; //W pierwszej kolejności sprawdzamy czy INT1 zostało wywołane //statusem wysyłania danych czy nadchodzącą wiadomością whatHappened = readPLCintRegister() & ~(STATUS_VALUE_CHANGE|STATUS_RX_PACKET_DROPPED); if(whatHappened & STATUS_RX_DATA_AVAIBLE) //Odebrano nową wiadomosc { //Odczytujemy całą, przesłaną wiadomość by ustalić jej typ: rodzaj //rozkazu, towarzyszące dane i ich ilość readPLCrxPacket(&receivedCmnd, &packetData, &packetLength); //Teraz w zależności od rodzaju tejże wiadomości, podejmujemy //określone kroki, sygnalizując co trzeba programowi głównemu switch(receivedCmnd) { case CMD_SELECT_NODE: Node.State = NODE_SELECTED; break; case CMD_UNSELECT_NODE: Node.State = NODE_AVAILABLE; break; case CMD_SET_LOGICAL_ADDR: //Wyłączamy diodę STATUS STATUS_LED_OFF; //Aktualizacja parametrów Node, zapisanie ich do EEPROM //jak i aktualizacja adresu LA układu Slave Node.State = NODE_ACTIVE; Node.LA = packetData; //Ustalenie LA Mastera, który nadaje nam nasz własny adres LA Node.bindMasterLA = getPLCrxSA(); //Ustawienie adresu logicznego modułu Slave setPLCnodeLA(Node.LA); saveNodeSettings = 1; break; case CMD_UNBIND_NODE: //Aktualizacja parametrów Node, zapisanie ich do EEPROM //oraz aktualizacja adresu LA układu Slave Node.State = NODE_AVAILABLE; Node.LA = UNCONFIGURED_SLAVE_ADDR; Node.bindMasterLA = MASTER_GROUP_ADDR; //Ustawienie adresu logicznego na wartość nieskonfigurowanego //układu Slave (LA=0x00) setPLCnodeLA(UNCONFIGURED_SLAVE_ADDR); saveNodeSettings = 1; break; case CMD_MAKE_SHARED_NODE: //Aktualizacja parametrów Node i zapisanie ich do EEPROMa Node.State = NODE_ACTIVE_SHARED; saveNodeSettings = 1; break; case CMD_GET_NODE_STATUS: //Master zażądał przesłania stanu Node, więc dokonamy //tego w pętli głównej sendNodeStatus = 1; break; } //Jeśli żądano aktualizacji danych Node w EEPROMie to zapisujemy je if(saveNodeSettings) eeprom_write_block(&Node, &NodeEE, sizeof(Node)); } else //Odebrano status wysyłania wiadomosci { //Wysłanie udane if(whatHappened & STATUS_TX_DATA_SENT) txBuffer[readPointer].Status = BUF_SENT; //Magistrala zajęta - podejmujemy kolejną próbę, jeśli nie przekroczono liczby prób else if(whatHappened & STATUS_BUSY) { if(++txBuffer[readPointer].Trials>2) txBuffer[readPointer].Status = BUF_FAILED; else txBuffer[readPointer].Status = BUF_READY_TO_SEND; } //STATUS_TX_NO_ACK, STATUS_TX_NO_RESP -> Nieudane wysłanie else txBuffer[readPointer].Status = BUF_FAILED; } }
38
ELEKTRONIKA PRAKTYCZNA 5/2015
Czujnik do pomiaru temperatury dla iControl Na płytkach obu układów zbudowano kompletne układy zasilające zasilane napięciem sieciowym 230 V AC i dlatego istnieje niebezpieczeństwo porażenie elektrycznego, co stanowi zagrożenie dla życia
i zdrowia. W związku z tym, montaż układów w tym zakresie powierzyć należy osobie posiadającej uprawnienia elektryczne w zakresie eksploatacji urządzeń o napięciu do 1 kV. Miejsca na obwodach płytek
drukowanych, gdzie występuje wysokie napięcie groźne dla życia i zdrowia oznaczone zostały odpowiednimi opisami.
Robert Wołgajew, EP
Listing 5. Funkcja odpowiedzialna za inicjalizację modułu iControlSensor void initPLCdevice(void) { //Konfiguracja interfejsu I2C (TWI) i2cInit(); //Uruchomienie i podstawowa konfiguracja modemu PLC writePLCregister(PLC_MODE_REG, TX_ENABLE|RX_ENABLE|RX_OVERRIDE|ENABLE_BIU|CHECK_DA|VERIFY_PACKET_CRC8); //Ustawienie poziomu sygnału dla mechanizmu CSMA zapewniającego //wielodostęp do medium transmisyjnego writePLCregister(THRESHOLD_NOISE_REG, BIU_TRESHOLD_96DBUV); //Konfiguracja parametrów transmisji writePLCregister(MODEM_CONFIG_REG, MODEM_BPS_2400|MODEM_FSK_BAND_DEV_3KHZ); //Uruchomienie przerwań dla wybranych zdarzeń (aktywny poziom niski //na wyprowadzeniu HOST_INT) writePLCregister(INTERRUPT_ENABLE_REG, INT_POLARITY_LOW|INT_UNABLE_TO_TX|INT_TX_DATA_SENT|INT_TX_NO_ACK|INT_TX_NO_ RESP|INT_RX_DATA_AVAILABLE); //Ustawienie trybu potwierdzania pakietów danych oraz liczby //prób transmisji = 3 (domyślne logiczne typy adresów SA i DA) writePLCregister(TX_CONFIG_REG, TX_SERVICE_ACKNOWLEDGED|0x03); //Ustawienie wzmocnienia dla modułu nadajnika PLC writePLCregister(TX_GAIN_REG, TX_GAIN_LEVEL_1550MV); //Ustawienie czułości dla modułu odbiornika PLC writePLCregister(RX_GAIN_REG, RX_GAIN_LEVEL_250UV); //Przyporządkowanie Slave’a do grupy SLAVE_GROUP_ADDR (0x10) setPLCnodeGA(SLAVE_GROUP_ADDR); //Konfigurowanie i załączenie przerwania INT1 odpowiedzialnego za //ustawianie flagi zmiany stanu rejestru INTERRUPT_STATUS_REG PLC HOST_INT_PORT |= (1<
POLECANY PRODUKT
Moduły u-blox OLP425/OLS425 bezprzewodowy zestaw czujników Bluetooth Low Energy (v4.0) z czujnikami temperatury i przyspieszenia, przeznaczony do aplikacji zasilanych bateryjnie. Nowy produkt szwajcarskiego producenta modułów do komunikacji bezprzewodowej i nawigacji, firmy u-blox, jest przeznaczony do zastosowań, które wymagają wgrania własnej aplikacji lub usług/atrybutów wykorzystujących zaimplementowany stos Bluetooth. Moduł OLP425 nie potrzebuje dodatkowych komponentów, a możliwość fabrycznego wyposażenia go w czujnik temperatury, 3-osiowy akcelerometr i diody LED czyni integrację bardzo łatwą w wielu aplikacjach. Dodatkowo, producent udostępnia kody źródłowe z ich przykładowym wykorzystaniem, oraz przykładową aplikację odczytującą wskazania (dostępna dla systemu iOS). Podstawowe parametry: • Bluetooth v4.0 – Bluetooth low energy (Bluetooth Smart). • u-blox Low Energy Serial Port Service (w modułach OLS425) – aplikacja emulująca profil portu szeregowego (SPP) znanego z Bluetooth 2.x • procesor do obsługi aplikacji użytkownika. • interfejsy GPIO/SPI/I2C/UART. • opcjonalne czujniki (temperatury, przyspieszenia),diody LED, bateria. • łączność z Apple iOS i Google Android.
Microdis Electronics Sp. z o.o. Suchy Dwór 17, 52-271 Wrocław tel. 713 010 400, faks 713 010 404 e-mail:
[email protected], www.microdis.net ELEKTRONIKA PRAKTYCZNA 5/2015
39
MINIPROJEKTY
AVT 1853
Iluminofonia LED RGB Kluczem do udanej imprezy jest nie tylko dobra muzyka, ale także dobre oświetlenie. Przedstawiony w tym artykule układ sterownika LED RGB spełni oczekiwania nawet najbardziej wybrednych imprezowiczów. Schemat ideowy nowoczesnej iluminofonii z diodą RGB pokazano na rysunku 1. Składa się ona z mikrokontrolera, wzmacniacza operacyjnego oraz tranzystorów mocy. Mikrokontroler (ATmega8) jest taktowany za pomocą wewnętrznego generatora RC pracującego z częstotliwością 8 MHz. Analogowy sygnał ze wzmacniacza audio jest mierzony za pomocą przetwornika A/C i jest dostarczany na wejście PC0. Oprogramowanie „wybiera” z sygnału audio składowe leżące w następujących zakresach częstotliwości: • Wysokie: 13…14 kHz. • Średnie 6…7 kHz. • Niskie 500 Hz…2 kHz. Sposób funkcjonowania filtra programowego pokazano na rysunku 2. Następnie, program oblicza wartość natężenia światła dla każdego kanału i proporcjonalnie do wyniku steruje diodą LED. Tor wzmacniacza audio jest typową aplikacją układu LM358 zasilanego napięciem jednopołówkowym. Sygnał wejściowy jest podawany za pomocą kondensatora C1 na wejście wzmacniacza operacyjnego.
40
Napięcie polaryzujące wejście jest wyznaczone przez dzielnik zbudowany z rezystorów R9, R10, R13, R14. Jest ono nieco wyższe, niż połowa napięcia zasilającego. Do złącza JP1 należy dołączyć mikrofon elektretowy. Elementami wykonawczymi są tranzystory T1…T3 (BUZ11) o dużej obciążalności prądowej. Rezystory R1…R3 (10 kV) ustalają potencjał masy na bramkach tranzystorów. Rezystory R4…R6 (330 V) ograniczają prąd w wypadku przypadkowego zwarcia. Tranzystory T1…T3 nie wymagają radiatorów. Na płytce znajduje się wejście Cinch dla bezpośredniego doprowadzenia sygnału AUDIO o poziomie 0,7 V (typowe wyjście słuchawkowe). Źródło dźwięku można wybrać przełącznikiem S1. Program realizuje 7 funkcji, których wyboru dokonuje się przyciskiem S2: • Kolor czerwony. • Kolor niebieski. • Kolor zielony. • Kolor biały. • Iluminofonia. • Zmiana losowo koloru w rytm basu.
W ofercie AVT* AVT-1853 A AVT-1853 B AVT-1853 C AVT-1853 UK Wykaz elementów: R1…R3, R17: 330 V R4…R7, R18: 10 kV R8: 2,2 kV R9: 1 MV R10, R14, R15: 33 kV R11: 220 kV R12: 22 kV R13: 390 kV R16: 100 kV C1, C6: 1 mF (MKT) C2, C4: 10 pF C3: 10 mF/25 V C5: 1 nF C7, C8: 100 nF C9, C10: 100 mF/25 V C11: 100 nF (SMD 1206) Q1, Q2, Q3: tranzystory mocy np. BUZ11 lub o większej obciążalności prądowej IC1: ATmega8 IC2: LM358 IC3: LM78M05 Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-1847 Miniaturowy sterownik taśmy LED (EP 2/2015) AVT-5487 PWMLEDz: 10-kanałowy sterownik taśm LED z interfejsem Modbus lub SPPoB (EP 1/2015) AVT-1800 LED Dimmer – regulator oświetlenia LED (EP 5/2014) AVT-5400 DMX Dimmer & Relay – regulator oświetlenia i wyłącznik z interfejsem DMX (EP 6/2013)
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
ELEKTRONIKA PRAKTYCZNA 5/2015
MINIPROJEKTY
Rysunek 1. Schemat ideowy iluminofonii RGB ELEKTRONIKA PRAKTYCZNA 5/2015
41
MINIPROJEKTY
2
1
3
1
1
2
2
1
4
2
Rysunek 2. Podział sygnału na pasma akustyczne • Wyłączenie. Schemat montażowy urządzenia pokazano na rysunku 3. Montaż jest typowy. Rozpoczynamy go od wlutowania stabilizatora IC3, następnie kondensatorów C7, C8, C9, C10 i złącze ARK2. Następnym krokiem jest doprowadzenie napięcia stałego +12 V do złącza ARK2 i pomiar napięcie zasilającego mikrokontroler. Jeśli jest ono poprawne (+5 V na nóżkach 7 i 8 podstawki), to kolejnym krokiem powinno być wlutowanie rezystorów R9, R10, R13, R14. Teraz mierzymy napięcie względem masy na nóżkach 4 i 8 układu IC2 – powinno ono wynosić +5 V. Po pomiarze możemy przystąpić do montażu reszty elementów.
Na samym końcu należy umieścić układy scalone w podstawkach. Mikrofon można przylutować bezpośrednio do płytki lub na przewodach zakończonych złączem goldpin. Prawidłowo zmontowane urządzenie (z użyciem zaprogramowanego mikrokontrolera) nie wymaga uruchamiania i działa od razu po włączeniu zasilania i doprowadzeniu sygnału audio. Ustawienie fusebitów mikrokontrolera pokazano na rysunku 4.
Rysunek 3. Schemat montażowy iluminofonii RGB
Adrian Wypenda
[email protected]
Rysunek 4. Ustawienie fusebitów mikrokontrolera ATmega8
AVT 1852
Optoelektroniczny czujnik zbliżeniowy Dla wielu urządzeń możliwość detekcji odległości, jaka dzieli je od przeszkody jest cenną informacją. Metody wykrywania tychże również są rozmaite: dotykowe, ultradźwiękowe lub bardziej złożone, jak analiza obrazu z kamery. Ten projekt opisuje jeszcze inną metodę. Jako zjawisko wykorzystane do oceny dystansu od przeszkody zostało wykorzystane odbicie fali świetlnej: im bliżej się ona znajduje, tym większa część wyemitowanego światła odbija się z powrotem do elementu
42
nadawczego. Jako nadajnik i odbiornik został wykorzystany gotowy moduł CNY70 produkcji Vishay. W niewielkiej obudowie znajduje się dioda świecąca w podczerwieni i fototranzystor wraz z filtrem tłumiącym światło
widzialne. Prąd tego fototranzystora rośnie, gdy odległość od przesłony maleje. Zadaniem pozostałych elementów jest wykrycie, czy ów prąd przekroczył ustalony potencjometrem. Schemat układu widnieje na rysunku 1. Dioda modułu CNY70 jest zasilana przez rezystor 220 V, co w układzie modelowym powoduje przepływ przez nią prądu ok. 18 mA. Fototranzystor, z kolei, został włączony w układzie wspólnego emitera z opornikiem R2 doprowadzającym zasilanie do kolektora. Komparator US2 porównuje potencjał ELEKTRONIKA PRAKTYCZNA 5/2015
MINIPROJEKTY
Rysunek 1. Schemat ideowy czujnika zbliżeniowego
W ofercie AVT* AVT-1852 A AVT-1852 B AVT-1852 C Wykaz elementów: R1: 220 V (SMD 1206) R2: 18 kV (SMD 1206) R3, R5: 4,7 kV (SMD 1206) R4: 2,2 MV (SMD 1206) P1: 10 kV (pot. montażowy, leżący) C1: 100 nF (SMD 1206) C2: 22 mF/16 V (SMD „B”) US1: CNY70 US2: LM311 J1: goldpin 3-pin, kątowy, raster 2,54 mm Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP)
AVT-1711 Włącznik zbliżeniowy (EP 10/2012) AVT-1690 Włącznik zbliżeniowy (EP 8/2012)
Rysunek 2. Schemat montażowy czujnika zbliżeniowego kolektora z potencjałem ślizgacza potencjometru P1. Jeśli przeszkoda znajduje się daleko, wówczas napięcie na wejściu odwracającym jest niższe niż na nieodwracającym i wyjście znajduje się w stanie wysokim. W przeciwnym wypadku, napięcie UCE fototranzystora spada poniżej ustalonej granicy, tranzystor wyjściowy komparatora wchodzi w stan nasycenia i na wyjściu pojawia się logiczne „0”. Rolą rezystora R4 jest wprowadzenie do układu niewielkiej histerezy, aby nie wystąpiły oscylacje w momencie, gdy komparator znajduje się na granicy przełączenia. Z kolei, R3 chroni wejście odwracające przed przepływem zbyt dużego prądu.
Układ został zmontowany na jednostronnej płytce drukowanej o wymiarach 12 mm×55 mm, której schemat montażowy pokazano na rysunku 2. Montaż należy przeprowadzić w typowej kolejności, z jednym zastrzeżeniem: układ CNY70 należy przylutować z zachowaniem możliwie długich wyprowadzeń, by jego górna krawędź znajdowała się wyżej niż pokrętło P1. Napisy nadrukowane na obudowie tego układu powinny być skierowane w stronę tegoż właśnie potencjometru. Układ powinien być zasilany napięciem +5 V, stabilizowanym i dobrze odfiltrowanym. Pobór prądu wynosi ok. 20 mA. Poziom
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
wysoki jest równy napięciu zasilania, zaś niski ok. 150 mV. Jedyną czynnością uruchomieniową jest prawidłowe ustawienie P1, aby wyjście zmieniało swój stan w żądanej odległości. Przy testach z użyciem białej kartki papieru ksero, uzyskany zakres zawierał się w przedziale od ok. 10 mm do zera. Należy mieć na uwadze, iż różne materiały w różnym stopniu odbijają promieniowanie podczerwone.
Michał Kurzela, EP
Sterownik wentylatora z czujnikiem wilgotności powietrza Czujnik wilgotności nieprzerwanie mierzy poziom wilgotności względnej w pomieszczeniu i steruje pracą wentylatora wyciągu. Dokonuje się to samoczynnie, bez ingerencji użytkownika, gwarantując optymalne warunki wilgotności powietrza i utrzymanie higieny pomieszczenia.
AVT 1855
Pary wodna powstaje podczas wykonywania takich czynności, jak: kąpiel, gotowanie, pranie, zmywanie itp. Wilgotności względna w pomieszczeniu wzrasta i efektem tego są pogarszające się warunki higieniczne. Aby uniknąć takich problemów należy zadbać o odpowiednią wentylację. ELEKTRONIKA PRAKTYCZNA 5/2015
43
MINIPROJEKTY W ofercie AVT* AVT-1855 A AVT-1855 B AVT-1855 C AVT-1855 UK Wykaz elementów: R1, R2: 330 V R3: 10 kV R4, R5: 4,7 kV PR1: 10 kV C1: 1000 mF C2: 100 mF C3, C4: 100 nF/63 V D1: 1N4148 LD1: LED 3 mm, zielona LD2: LED 3 mm, czerwona M1: mostek prostowniczy DF08 T1: BC547 US1: 7805 US2: ATtiny13 F1: bezpiecznik 100 mA K1: przekaźnik HF115F_005-2ZS TR1: transformator V30AJ-10AEP7 6V/1,2VA X1…X3: złącze ARK2/7,5 mm X4: złącze 403-04TR X5: złącze ARK2/5 mm Dodatkowe materiały na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9 • wzory płytek PCB
2
X1-
1
M1
X4
1
PR1 2
C4
1
R4 R3
R2 R1
2
1 2
X5 1
44
3
S+
Prezentowany moduł współpracuje ze standardowym wentylatorem łazienkowym, który nie jest wyposażony w układy elektroniczne sterujące jego pracą. Zaletą zastosowania oddzielnego czujnika wilgotności jest możliwość umieszczenia go dokładnie w tym miejscu, gdzie jest wymagana szybka reakcja urządzenia na wzrost wilgotności powietrza. Często zdarza się, że wentylator z wbudowanym czujnikiem późno reaguje na wzrost wilgotności w pomieszczeniu. Przyczyną tego jest fakt, że takie wentylatory najczęściej montuje się w znacznej odległości od wanny czy kabiny prysznicowej. Może się też zdarzyć, że dotarcie wilgotnego powietrza do wentylatora jest blokowane przez chłodne powietrze znajdujące się w kanale wentylacyjnym. Schemat ideowy sterownika pokazano na rysunku 1. Aby zapewnić pełną separację galwaniczną od sieci elektrycznej w urządzeniu zastosowano transformator zasilający o małej mocy TR1. Stabilizator US1 dostarcza napięcie +5 V, a kondensatory C1… C4 zapewniają odpowiednie jego filtrowanie. Pracą modułu steruje mikrokontroler ATtiny13. Poprzez złącze X4 do sterownika jest dołączony czujnik temperatury i wilgotności powietrza DHT11, który z mikrokontrolerem komunikuje się za pomocą interfejsu jednoprzewodowego. Potencjometr PR1 służy do ustawiania progu załączenia przekaźnika K1. Diody LED zastosowane w sterowniku świecą w dwóch kolorach: zielonym LD1 i czerwonym LD2. Kolor zielony oznacza dołączenie modułu do sieci, natomiast kolor czerwony (załączany z niewielką częstotliwością, co około 2 sek.) odbiór danych
Rysunek 1. Schemat ideowy sterownika wentylatora -
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Rysunek 2. Schemat montażowy sterownika wentylatora z czujnika i poprawną pracę sterownika. Gdy kolor czerwony załączany jest z większą częstotliwością oznacza to problem komunikacji mikrokontrolera z czujnikiem. W przypadku
załączenia przekaźnika świeci dioda czerwona wygaszana, co około 2 sek. na 0,5 sek. oznajmiając ciągły odbiór danych z czujnika wilgotności.
Rysunek 3. Dołączenie sterownika do sieci energetycznej ELEKTRONIKA PRAKTYCZNA 5/2015
MINIPROJEKTY Układ należy zmontować na jednostronnej płytce drukowanej zgodnie z rysunkiem 2. Montaż rozpoczynamy od wlutowania w płytkę rezystorów i innych niewielkich elementów, a kończymy montując kondensatory elektrolityczne, przekaźnik, złącza śrubowe i transformator. Urządzenie zmontowane bezbłędnie, z użyciem zaprogramowanego mikrokontrolera i ze sprawnych elementów będzie działało od razu po włączeniu napięcia zasilającego. Na rysunku 3 znajduje się przykład, jak poprawnie dołączyć układ do sieci elektrycznej (złącze X1) oraz odbiornik np. wentylator kanałowy (złącze X2). Rysunek 4 przedstawia dołączenie do modułu sterownika elementów wykonawczych zasilanych np. przez zasilacz, transformator czy z akumulatora. Styki przekaźnika wyprowadzone na złącza X2 i X3 są od siebie galwanicznie odizolowane. Czujnik można bezpośrednio umieścić przy obudowie lutując jego wyprowadzenia do złącza X3 lub na 3-żyłowym przewodzie zakończonym wtyczką pasującą do wspomnianego złącza. W wypadku wzrostu poziomu wilgotności wentylator włącza się po osiągnięciu zaprogramowanej wartości granicznej, którą ustawia się potencjometrem PR1 i działa tak długo, aż wilgotność w pomieszczeniu spadnie o ok. 3 %. Proces kontroli wilgotności przebiega automatycznie w czasie
Rysunek 4. Dołączenie sterownika do różnych napięć rzeczywistym bez udziału człowieka. Gdyby wentylator nie byłby wstanie usunąć wilgoci z nadzorowanego pomieszczenia i nie wyłączył się automatycznie, można go wyłączyć przyciskiem ze stykami zwiernymi dołączonym do złącza X5.
Płytka mieści się w obudowie Z-107, która jest przewidziana do montażu na szynie TH35. Obudowa ma szerokość 53 mm (3S).
Mavin
[email protected]
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
45
PROJEKT CZYTELNIKA Dział „Projekty Czytelników” zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż sprawdzamy poprawność konstrukcji. Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie, że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany. Honorarium za publikację w tym dziale wynosi 250,– zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów.
Impulsowa ładowarka 222 akumulatorów ołowiowych
Projekt
W sprzedaży można znaleźć wiele ładowarek akumulatorów, ale każda bazuje na typowym transformatorze sieciowym z rdzeniem żelaznym. Wymiary i ciężar takich urządzeń o wydajności prądowej przekraczającej 4 A są dużo większe, niż ich odpowiedników impulsowych, pracujących z większą częstotliwością, zbudowanych przy użyciu transformatora z rdzeniem ferrytowym. Urządzenie, które opisuję mieści się w obudowie KM56 o wymiarach 114 mm×87 mm×51 mm, co pozwala na przewożenie takiej ładowarki w schowku samochodowym, aby była osiągalna zawsze wtedy, gdy jest potrzebna. Ładowarka jest przeznaczona do szybkiego naładowania akumulatora. Natężenie prądu ładowania można ustawiać za pomocą potencjometru. Dlatego, gdy zacznie on spadać, można podwyższać prąd, aby dzięki temu szybciej naładować akumulator (np. w 4 godziny). Dzięki możliwości regulowania prądu można około dwukrotnie szybciej naładować akumulator w porównaniu z ładowarką bez takiej regulacji. Maksymalny prąd ładowania wynosi około 8 A i został osiągnięty bez konieczności stosowania radiatorów. Zamiast nich został użyty wydajny wentylator firmy Sunon (model ME50151V1-A99 o wymiarach 50 mm×50 mm×15 mm). Urządzenie może oddawać do obciążenia prąd o większym natężeniu, jeżeli użyjemy transformatora z rdzeniem o większym przekroju oraz umieścimy diody i tranzystory na radiatorach.
Zasada działania Schemat ideowy kontrolera ładowarki pokazano na rysunku 1, natomiast płytki
46
transformatora Tr2 na rysunku 2. Kontroler bazuje na układzie scalonym sterownika SG2525 (lub SG3525), który jest wykorzystany do wytworzenia przebiegu prostokątnego podawanego na transformator sterujący tranzystorami kluczującymi przebieg napięcia na transformatorze głównym Tr2. Dodatkowo, układ SG spełnia funkcję regulatora napięcia poprzez regulację współczynnika wypełnienia impulsów podawanych na tranzystory a także ogranicza prąd do wartości ustalonej za pomocą rezystora R12. Po włączeniu układu, prąd poprzez bezpieczniki F1 i F2, a następnie mostek prostowniczy Br1 ładuje kondensatory C2 i C3, z których napięcie poprzez rezystory R1 i R2 ładuje kondensator C4. Komparator z histerezą wykonany na układzie U3a porównuje napięcie na kondensatorze C4 z napięciem na diodzie Zenera D2. Gdy napięcie na C4 przekroczy wartość, na wyjściu wzmacniacza operacyjnego oraz bramce tranzystora T1 pojawi się jego napięcie zasilania. Tranzystor ten rozładuje kondensator C4 poprzez rezystor R20 ograniczający prąd przewodzony przez T1, ładując tym samym kondensator
C6. Napięcie z kondensatora C6 jest podawane na stabilizator napięcia U2, a następnie na układ SG2525. Gdy przekroczy ono 8 V, układ włącza się i zaczyna się ładować kondensator C5 z wewnętrznego źródła prądowego, którego wyjściem jest nóżka 8. Służy on do ustawienia czasu narastania szerokości impulsów (soft start) od momentu przekroczenia przez napięcie zasilające 8 V – włączenia zasilania. SG2525 zaczyna generować impulsy sterujące. Transformator główny Tr2 wytwarza na uzwojeniu pomocniczym przebieg prostowany poprzez diody D3…D6 i podawany na kondensator C6 zasilający układ w czasie normalnej pracy. Jeżeli napięcie na kondensatorze C6 po wstępnym uruchomieniu generatora SG2525 ładunkiem z C4 będzie podtrzymane zasilaniem z uzwojenia pomocniczego transformatora Tr2, układ zacznie pracować normalnie i generować przebieg prostokątny. Gdyby układ się nie włączył po pierwszym naładowaniu kondensatora C4 np. z powodu zwarcia wyjścia ładowarki lub zbyt dużego obciążenia, napięcie na C4 obniżające swoją wartość z powodu przewodzenia tranzystora T1 zmieni poziom na wyjściu komparatora U3A na niski przy ELEKTRONIKA PRAKTYCZNA 5/2015
Impulsowa ładowarka akumulatorów ołowiowych jego wartości wyznaczonej tym razem przez równanie , tranzystor T1 przestanie przewodzić i cykl ładowania C4 przez rezystory R1, i R2 się powtórzy. Częstotliwość oscylatora SG jest ustawiona za pomocą rezystora R15
i kondensatora C1 i wynosi około 33 kHz. Zwiększając rezystancję i pojemność zmniejszamy częstotliwość. Rezystor R10 służy do ustawiania odstępu pomiędzy dodatnimi i ujemnymi
połówkami prostokąta (martwa strefa). Jego wartość powinna mieścić się w granicach 0…150 V. Wyjściem przebiegu są nóżki 11 i 14. Poprzez rezystory R8 i R9 ograniczające prąd obciążenia SG2525, przebieg wyjściowy Wykaz elementów Płytka kontrolera
Rezystory: R1, R2: 27 kV/1 W R3, R5: 8,2 kV R4, R15: 4,7 kV R6, R7: 22 kV R8, R9: 19 V R10: 47 V R11: 5 kV (potencjometr liniowy) R12: 1,8 V/2 W R13: 10 V/7 W R14: 10 kV R16…R20: 10 V Kondensatory: C1: 4,7 nF C2, C3: 100 m/200 V C4: 1 mF/25 V C5: 4,7 mF C6: 100 mF/25 V C7: 2,2 nF C8: 100 nF Półprzewodniki: DZ1: dioda Zenera 24 V/0,4 W DZ1: dioda Zenera 5,1 V/0,4 W Br1: min 4A np. GBS4G – DIO T1: MOSFET-N min. ID=2 A (np. IRFZ 24NPBF) T2…T5: MOSFET-N min. ID=10 A/400 V (np. IRF740 PBF) U1: SG2525 (lub SG3525) U2: LM7810 U3: LM358 Inne: Tr1: E20/16/10, WE-1952V (opis w tekście) F1, F2: FST 1 A J1…J3: złącze DG126-5.0-2P14 Płytka Tr2 Kondensatory: C9: 470 mF/25 V Półprzewodniki: D3…D6: 1N4148 D7…D10: prąd przewodzenia min. 8 A (np. MBR1660) Inne: L1: 45 mH, 41 zw. na żółtym rdzeniu zewnętrzna 25 mm (opis w tekście) Tr2: E32/16/9, WE-1802H (opis w tekście) J4…J6: złącze DG126-5.0-2P14 REKLAMA
Rysunek 1. Schemat ideowy płytki kontrolera ELEKTRONIKA PRAKTYCZNA 5/2015
47
PROJEKT CZYTELNIKA jest podawany na transformator Tr1 sterujący przez rezystory R16…R18 (kształtujące impuls bramkowy) na bramki tranzystorów kluczujących MOSFET T2…T5, które poprzez rezystor R13 zabezpieczający je przed różnymi „niespodziankami” oraz dławik L1 ograniczający szybkość narastania prądu przez nie płynącego (w razie zwarcia wyjścia, przeciążenia lub uruchamiania) zasilają transformator główny Tr2. Zadaniem transformatora Tr1 jest odizolowanie poszczególnych źródeł tranzystorów (bo ich potencjały są różne) oraz zapewnienie takich samych kształtów przebiegów na odpowiednich parach bramek tranzystorów znajdujących się po przekątnej i załączanych na zmianę, w zależności od polaryzacji przebiegu sterującego, aby na transformatorze Tr2 występował przemienny przebieg prostokątny. Potencjometr R11 i rezystor R3 służą do regulowania napięcia na nóżce 9 układu SG2525, czyli zmiany współczynnika wypełnienia impulsów podawanych na bramki tranzystorów T2…T5, tym samym również napięcia na wyjściu i prądu ładowania akumulatora. Nóżka 10 służy do skracania czasu trwania połówek prostokąta włączających tranzystory w momencie przekroczenia ustawionej maksymalnej wartości prądu obciążenia. Do tego celu służą rezystory R14, R12 oraz kondensator C7. Na kondensator C7 poprzez rezystor R14 jest podawany spadek napięcia z rezystora R12. Gdy napięcie na kondensatorze C7 przekroczy 0,8 V, układ SG odcina impuls wyjściowy i teraz kondensator C7 zaczyna się rozładowywać przez rezystory R12 i R14. Czas rozładowania jest wyznaczany przez stałą czasową obwodu R12-R14-C7. Zależy od niego, po jakim czasie generowanie impulsów sterujących zostanie zatrzymane, a później wznowione. Od oporności rezystora R12 (zwiększanie/zmniejsza prąd) zależy maksymalny prąd wyjściowy układu i dla rezystancji 1,8 V wynosi on około 8 A.
Rysunek 2. Schemat ideowy płytki transformatora Tr2
Rysunek 3. Rozmieszczenie elementów na płytce transformatora Tr2
Rysunek 4. Widok ścieżek od strony miedzi na płytce transformatora Tr2
Montaż i uruchomienie Modelowa ładowarka została wykonana na dwóch samodzielnie wykonanych płytkach drukowanych, z których płytka kontrolera jest na laminacie dwustronnym, a transformatora głównego Tr2 z układem prostowniczym i kondensatorem wyjściowym na jednostronnym. Jeśli ktoś skorzysta z wzorów płytek zamieszczonych na rysunkach 3…6, to montaż elementów powinien rozpocząć od wlutowania przelotek, zworek oznaczonych na płytkach zieloną linią – jednej na płytce transformatora Tr2, dwóch na płytce kontrolera SG. Następnie lutujemy pozostałe elementy rozpoczynając od elementów najmniejszych i tak, aby np. wlutowane tranzystory nie przeszkadzały przy wlutowywaniu transformatora Tr1 lub Tr2. Pamiętajmy też o obustronnym lutowaniu
48
Rysunek 5. Rozmieszczenie elementów i widok ścieżek od strony elementów (niebieskie) i miedzi (czerwone) na płytce kontrolera
Rysunek 6. Widok ścieżek płytki kontrolera od strony miedzi ELEKTRONIKA PRAKTYCZNA 5/2015
Impulsowa ładowarka akumulatorów ołowiowych końcówek elementów, co będzie wymagało nieco wprawy. W niektórych elementach być może trzeba będzie wygiąć nieco nóżki, gdyż mogą one zachodzić na inne, lecz zmniejszenie wymiarów urządzenia wynagrodzi nam ten trud. Tranzystory kluczujące T2…T5 to MOSFET-N o napięciu UDS co najmniej 400 V oraz ID minimum 10 A, w obudowach co najmniej TO-220, jeżeli nie umieszczamy ich na radiatorach. Tranzystor T1 może być dowolnym MOSFET-N o minimalnym prądzie ID 2 A i odpowiednim rozmieszczeniu wyprowadzeń. Diody prostownicze to diody Schottky lub inne odpowiednio szybkie (250 ns lub mniej) i prądzie przewodzenia minimum 8 A, w obudowie umożliwiającej odprowadzenie ciepła. Diody krzemowe mają większy spadek napięcia i w razie ich użycia należy sprawdzić czy nie będą one wymagały niewielkich radiatorów przy prądach rzędu 6 A lub więcej. Można to zrobić termometrem (temperatura obudowy nie powinna przekroczyć około C) lub metodą uproszczoną nagrzewając układ przy pożądanym prądzie maksymalnym, na który dmucha niezbyt silnie wentylator który ma pracować w ładowarce i po minucie odłączyć zasilanie, następnie szybko dotknąć diod np. wacikiem zanurzonym w kropli wody, woda może szybko odparować lecz nie powinien być słyszalny syk i efekt wrzenia wody na diodach. Jeżeli woda nie wrze, procedurę powtarzamy z tym, że tym razem sprawdzamy po czasie 5 minut. Jeżeli jest słyszalny syk i woda wrze, oznacza to, że prąd jest zbyt duży i należy dać radiatory na diody lub ograniczyć prąd. Jako dławik L1 zastosowano dławik z zasilacza komputerowego na żółtym rdzeniu o średnicy zewnętrznej 25 mm i 41 zwojach, ale można użyć innego dławika na rdzeniu z żelaza spiekanego o indukcyjności około 45 mH. Transformatory sterujący Tr1 i główny Tr2 są nawinięte na karkasach firmy Weisser. Transformator Tr1 jest nawinięty na karkasie WE-1952V i ma rdzeń E20/10/6 z materiału 3C90, ale można wykorzystać inny materiał i inne karkasy o podobnych właściwościach np. 3F3. Uzwojenia wtórne, to cztery oddzielne uzwojenia liczące po 30 zw. DNE 0,3 mm. Uzwojenie pierwotne ma 35 zw. DNE 0,4 i nawijamy je na wierzchu. Zwoje należy nawijać starannie, jeden przy drugim, w razie potrzeby dociskając je do siebie niezbyt twardym materiałem np. plastikowym śrubokrętem. Wszystkie uzwojenia nawijamy w tym samym kierunku, zdrapując lakier na końcach nożem, okręcając o kolejne wyprowadzenia karkasu i lutując, poczynając od tej samej strony karkasu, zarówno po jednej, jak i po drugiej stronie rdzenia (po jednej stronie rdzenia wyprowadzone są uzwojenia dla jednej pary tranzystorów – 4 końcówki, ELEKTRONIKA PRAKTYCZNA 5/2015
a po drugiej dla drugiej pary znajdującej się po przekątnej mostka – również 4 końcówki). Na końcu karkasu, po jednej i po drugiej stronie rdzenia znajdują się po jednej końcówce strony pierwotnej – pozostałe dwa wyprowadzenia karkasu. Uzwojenia powinny być odizolowane od siebie cienkim materiałem izolacyjnym np. tereszpan 0,15 mm lub podobnym. W układzie modelowym użyto dodatkowo transformatora izolującego stronę pierwotną od wtórnej, ponieważ transformator Tr2 został nawinięty zanim powstał obwód startowy i nie chciałem go zmarnować, lecz tu opisuję wersję, w której rolę separacyjną spełnia uzwojenie pomocnicze nawinięte na transformatorze głównym. Nie zmienia to działania układu. a jedynie eliminuje jeden transformator z układu. Transformator Tr2 jest nawinięty na karkasie WE-1802H i rdzeniu E32/16/9 z materiału 3C90 (może być inny o podobnych właściwościach materiał np. 3F3). Zasady nawijania są takie same, jak dla Tr1, ale w tym wypadku należy większą uwagę przyłożyć do izolacji strony wtórnej od pierwotnej właściwym materiałem izolacyjnym typu tereszpan, aby zmniejszyć ryzyko przedostania się napięcia przekraczającego 300 V na stronę wtórną transformatora. Uzwojenia wtórne to 15 zwojów 2×DNE 1,2 mm połączone równolegle – dla napięcia wyjściowego. Uzwojenie pomocnicze zasilające układ – 20 zwojów DNE 0,4 mm. Uzwojenie pierwotne 235 zwojów DNE 0,4 mm. Uzwojenia wtórne i pierwotne można nawinąć wieloma drutami odizolowanymi od siebie tzw. licą, aby zminimalizować efekt wypierania prądu z wnętrza przewodnika. Można taki drut nabyć np. na Allegro. Do tego celu można zastosować DNE o takiej liczbie zwojów i przekroju, aby sumaryczny przekrój wynosił dla uzwojenia wtórnego około 2 mm2 przy 8 A, np. 7×DNE 0,6 mm lub licą 28×DNE 0,3 mm itp. Nawinięcie nie jest dużym problemem gdyż uzwojenia wtórne nie zawierają wiele zwojów. Na uzwojenie pierwotne można użyć np. 2×DNE 0,3 mm, jeżeli komuś zależy na „wyciśnięciu” z transformatora jak najwięcej i ma odpowiednie możliwości. Ładowarkę można przebudować przystosowując ją do większego prądu obciążenia. Można to zrobić zmieniając transformator na większy, nawinięty grubszym drutem oraz używając odpowiednich diod na radiatorach. Trzeba wtedy zwiększyć moc rezystora R13 do około 30 W lub np. dać trzy szeregowo połączone 3,3 V/10 W oraz zwiększyć pojemność kondensatorów filtrujących do 220 mF. Przy zastosowaniu mocniejszych tranzystorów wytrzymujących w impulsie prąd np. 50 A można zmniejszyć wartość rezystora R13 np do 6,8 V, jego moc do 20 W, zmniejszając tym samym straty i zwiększając sprawność ładowarki. Można też zmienić U2 na 7812, co da krótszy czas narastania
napięcia na bramkach tranzystorów w razie użycia tranzystorów o znacznych pojemnościach bramka-źródło. Liczbę zwojów transformatora Tr2 zmienia się odwrotnie proporcjonalnie do przekroju rdzenia (większy rdzeń np. E42, mniej zwojów na Volt). Dla rdzenia E42 i karkasu WE-2154-1S będzie to odpowiednio na uzwojenie pierwotne 115 zwojów, na wtórne 8 zwojów, a na pomocnicze 10 zwojów. Uzwojenie pierwotne będzie nawinięte trzema drutami DNE 0,4 mm, wtórne 34 drutami o tej samej średnicy, a uzwojenie pomocnicze 1×DNE 0,4 mm, co da wydajność prądową ładowarki ponad 17 A. Urządzenia o takiej mocy powinny być wyposażone w szeregowo połączony z zasilaniem 230 VAC dławik, np. taki, jak do niedawna był stosowany w zasilaczach komputerowych (tzw. filtr PFC służący do wygładzania szpilek prądu ładujących kondensatory filtrujące). Rdzenie po nawinięciu powinny być ściśnięte paskiem blachy skręconym śrubami lub zlutowanym, lecz oklejenie ich kilkoma warstwami biurowej taśmy klejącej też daje zadowalające rezultaty. Podczas uruchamiania układu należy pamiętać, że na jego elementach występuje napięcie niebezpieczne dla życia, a przeróbki i modyfikacje wykonywać tylko przy wyłączonym zasilaniu. Uruchomienie układu rozpoczynamy od połączenia płytek przewodami, włączamy szeregowo z zasilaniem z sieci do złącza 230 V J1 płytki kontrolera żarówkę o mocy około 60 W/230 V. Włączamy zasilanie 230 V, żarówka powinna błysnąć i zgasnąć. Jeżeli się świeci, to gdzieś jest błąd w montażu, błędny obwód drukowany, zimne luty lub uszkodzony element. Następnie przekręcamy suwak potencjometru R11 w stronę zasilania, podłączamy na chwilę (żeby nie spalić żarówki 12 V) do wyjścia układu (J1 płytki z Tr2) żarówkę 12…24 V/20…50 W. Żarówka ta powinna zaświecić jasno, a żarówka 230 V powinna zacząć się lekko żarzyć. Jeżeli tak nie jest szukamy błędów w układzie czyli: Wyłączamy zasilanie 230 V, odłączamy żarówkę 12 V, dołączamy dodatkowo zasilacz zewnętrzny o napięciu około 15 V do złącza J2 płytki kontrolera, włączamy zasilanie 15 V, włączamy 230 V przez wspomnianą szeregowo żarówkę 60 W, ustawiamy suwak potencjometru R11 w stronę zasilania. Do wyjścia układu dołączamy żarówkę 24 V – żarówka ta powinna się zaświecić, a żarówka szeregowa w obwodzie 230 V powinna zacząć się żarzyć. Oznacza to, że układ startowy nie działa. Jeżeli żarówka 24 V się nie świeci, oznacza to niesprawność układu głównego, czyli powiązanego z SG2525, czego przyczyną może być błędnie nawinięty Tr1, zimne luty, błąd w montażu lub uszkodzone elementy i/ lub układu startowego – te same przyczyny z wyjątkiem błędu w Tr1. Podczas szukania
49
PROJEKT CZYTELNIKA błędu może być pomocny oscyloskop lub miernik indukcyjności. Zwykle przyczyną niesprawności jest transformator Tr1. Na bramkach tranzystorów przewodzących po przekątnej sygnały z Tr1 powinny mieć taki sam kształt, a na nieprzewodzących mieć fazę odwróconą. Jeżeli tak nie jest, trzeba zamienić z sobą końcówki transformatora podłączone do tranzystora, w którym ten kształt nie zgadza się z pozostałymi. W razie problemów proszę pisać na mojego e-maila. Jeżeli żarówka świeci, to sprawdzamy układ startowy, czyli: wyłączamy zasilanie 230 V, odłączamy zasilanie 15 V i żarówkę 24 V od układu, włączamy zasilanie 230 V, sprawdzamy woltomierzem napięcie na końcówce 1 układu U3 (za pomocą dolutowanych przewodów), powinno ono zmieniać wartość co kilka sekund z zera na około 22 V i szybko spadać. Następnie sprawdzamy czy na nóżkach 13 i 15 układu U1 dzieje się to samo z tym, że napięcie będzie się zmieniać od zera do około 19 V. Jeżeli napięcie na U1 w ogóle nie występuje, to gdzieś jest błąd w montażu. Błędnie wykonana płytka drukowana, zimne luty lub uszkodzony element. Płytki po sprawdzeniu działania skręcamy dwiema śrubami M3×40 mm z nałożonymi tulejkami dystansowymi np. TDYS3.6/35 o średnicy wewnętrznej większej od 3 mm i długości około 35 mm (fotografia 7). W obudowie trzeba wywiercić lub wyciąć otwory wentylacyjne, aby powietrze przepływało z lewego tylnego boku obudowy do prawego przedniego boku obudowy, zasysane od spodu i wydmuchiwane naciętymi otworami w bocznej ściance obudowy. Po przyłączeniu wszystkich przewodów i usunięciu w obudowie występów przeszkadzających w umieszczeniu płytek i wentylatora wkładamy układ do obudowy. Otwory w płytkach są tak wykonane, aby obok płytki z Tr2 zmieścić wentylator o grubości 15 mm, a z lewej strony amperomierz o wymiarach 51 mm×51 mm wskazujący prąd ładowania. Obwody ładowarki zamontowane w obudowie pokazano na fotografii 8.
Fotografia 7. Widok zmontowanych i skręconych płytek ładowarki rozładowanym do 12 V na 0,1 C przez dłuższy czas może doprowadzić do utrzymywania się na nim po naładowaniu znacznego prądu i w konsekwencji – doprowadzić w dłuższym czasie do uszkodzenia akumulatora. Dlatego najpewniej koniec ładowania określa napięcie akumulatora równe 15 V przy 20°C, a w zimie przy -10°C to napięcie powinno wynosić około 15,8 V przy końcowym prądzie ładowania wynoszącym 0,02 C. Na przykład, dla akumulatora 45 Ah, ten prąd wyniesie około 0,9 A. Najlepiej sprawdzać prąd ładowania co jakiś czas, np. co godzinę, dołączając miernik uniwersalny do akumulatora w czasie ładowania
i ustawiając napięcie akumulatora pokrętłem ładowarki na 15 V, spoglądać przy tym na amperomierz czy prąd jest już dostatecznie mały. Przyśpieszone ładowanie akumulatora można zrealizować pilnując, aby prąd ładowania utrzymywał się na odpowiedniej wartości np. 0,15 C i co jakiś czas (co pół godziny) mierzyć czy przy ustawieniu 15 V na akumulatorze (latem) spadł on już do 0,02 C (zimą przy 15,8 V). Jeżeli ktoś zamierza umieścić ładowarkę w większej obudowie, można wstawić w urządzenie woltomierz.
Łukasz Karłowicz
[email protected]
Metody ładowania Obsługa urządzenia sprowadza się w najprostszym wypadku do ustawienia na rozładowanym akumulatorze pożądanego prądu ładowania np. 0,1 C, gdzie C to pojemność akumulatora w Ah i czekanie, aż prąd ten spadnie do wartości małej w porównaniu z początkowym prądem ładowania, czyli np. 20% początkowego prądu ładowania, gdyż zwykle nie będzie nam zależało na pełnym naładowaniu akumulatora, a tylko doładowaniu, aby uruchomić samochód np. zimą. Stopień rozładowania akumulatora to sprawa dyskusyjna, gdyż raz może być on rozładowany do 10 V, innym razem do 12 V i ustawienie prądu na akumulatorze
50
Fotografia 8. Widok urządzenia zamontowanego w obudowie ELEKTRONIKA PRAKTYCZNA 5/2015
Mały wyświetlacz ZAWARTOŚĆ DODATKOWEJ PŁYTY OLED DVD
PODZESPOŁY
niezbędnik 1. Altium Designer 14/15 Utils
Zestawy dodatkowych narzędzi edycyjnych dla edytora PCB z pakietu Altium Designer w wersjach 14 i 15, które zostały przygotowane przez australijską firmę Desktop EDA, od lat wspierającą swoimi opracowaniami pakiet EDA produkowany przez firmę Altium.
EP 4/2015 1. Altera Quartus II 14.1.0.186 Środowisko projektowe dla użytkowników układów FPGA i CPLD firmy Altera.
4. TI_Energia_IDE Wersje instalacyjne (dla Windows, MacOS i dwóch wersji Linuksa- 32 i 64) środowiska programistycznego Energia.
2. ARM MDK dla STM32F0/ STM32L0 Kompletna, bez ograniczeń funkcjonalnych wersja pakietu ARM-MDK z popularnym IDE o nazwie uVision obsługująca mikrokontrolery z rodzin STM32L0 i STM32F0.
EP 12/2014 1. AD14_OfflineSetup14_3_13 Najnowsza - przed pojawieniem się szeroko zapowiadanej v15 wersja Altium Designer.
2. Design Spark Mechanical 2.0
3. Infineon DAvE 4 Oficjalna wersja nowej generacji (4.x) pakietu programistycznego DAvE firmy Infineon.
3. Filter Wiz Lite 1.26
4. Infineon XMC Peripheral Libs 1.0.0. Pakiet bibliotek zawierających procedury obsługi peryferii wbudowanych w mikrokontrolery z rodzin: XMC4500, XMC4400, XMC4200, XMC4100, XMC1300, XMC1200 oraz XMC1100.
Dwie wersje (dla Windows 32 i 64) najnowszego pakietu narzędziowego DesignSpark, tym razem w wersji dla mechaników.
Narzędzie przygotowane przez firmę Schematica umożliwiające świadome, interaktywne projektowanie analogowych filtrów aktywnych. Wspomaga obliczenia filtrów Butterwortha, Czebyszewa (także odwróconego), eliptycznych, Bessela, w praktycznie wszystkich topologiach: Sallen-Key, Multiple Feedback, Fliege, State-Variable (KHN), Akerberg-Mossberg, SAB, Boctor.
4. NE555 Calculator
Dwa interaktywne kalkulatory umożliwiające dobór wartości elementów RC „wokół” timera 555, dla różnych konfiguracji jego pracy.
5. Renesas E2 Studio upgrade
Upgrade środowiska programistycznego E2 firmy Renesas do wersji 3.1.3.06.
6. Resistor Colour Calculator
Prosty w obsłudze transkoder kodów paskowych (różne systemu kodowania) na wartości rezystancji.
7. Segger JFlashLite
Ważna nowość: okienkowa, stacjonarna wersja programu obsługującego programator-debugger Segger J-Link EDU. Dzięki temu programowi można – bez konieczności uruchamiania IDE – zaprogramować pamięć Flash dowolnego mikrokontrolera obsługiwanego przez J-Link.
8. STMicroelectronics SPC5-STUDIO 3.0
Najnowsza wersja zintegrowanego środowiska programistycznego dla mikrokontrolerów SPC56 produkowanych przez STMicroelectronics.
9. STMicroelectronics TwisterSIM
Nowe, bezpłatne narzędzie z oferty STMicroelectronics: dynamiczny symulator zależności elektro-termicznych zachodzących w scalonych przetwornicach AC/DC z rodziny VIPower. Poza symulacją działania przetwornicy, program TwisterSIM ułatwia także dobór typu układu do wymogów aplikacji, optymalizuje także wartości elementów tworzących jego otoczenie.
10. Xilinx Vivado 2014.4.1.0220_1
Upgrade do najnowszej – w chwili przygotowywania materiałów – wersji pakietu Vivado firmy Xilinx, który jest wyspecjalizowaną platformą projektową dla układów SoC i FPGA produkowanych przez firmę Xilinx.
ELEKTRONIKA PRAKTYCZNA 5/2015
EP 3/2015 1. Analog Devices Elves Programowy asystent konfiguracji/ parametryzacji bibliotek programowych dla mikrokontrolerów ADuCM7000. 2. Analog Devices PLATool Pakiet konfigurujący matrycę logiki programowalnej PLA, zintegrowanej w mikrokontrolerach ADuCM7000. 3. Analog Devices WASP Oprogramowanie do badania wydajności toru analogowego ADuC702x. 4. ARM DS5 Ultimate Eval Wersja ewaluacyjna środowiska programistycznego firmy ARM. 5. Cypress PSoC Creator Pakiet PSoC Creator firmy Cypress wyposażony w biblioteki Component Pack 1. 6. Freescale Kinetis Design Studio 2.0 Bezpłatne środowisko programistyczne KDS firmy Freescale (Windows i Linux). 7. Freescale USBDM Oprogramowanie narzędziowe dla programatora USBDM (KINETIS, ColdFire oraz HS(S)08). 8. SiliconLabs Simplicity Studio Kompletne, bezpłatne środowisko programistyczne firmy Silicon Labs dla mikrokontrolerów z rdzeniem 8051 oraz: EFM32 Gecko, EFM32 Giant Gecko, EFM32 Leopard Gecko, EFM32 Tiny Gecko, EFM32 Wonder Gecko oraz EFM32 Zero Gecko (Windows 7, Linux, iOS). EP 2/2015 1. Altera Quartus II 14.1 Pakiet Quartus II firmy Altera (bezpłatny Webpack) z kompletem bibliotek do syntezy logicznej. 2. Cadsoft Eagle Oprogramowanie do projektowanie płytek drukowanych. 3. DesignSparkPCB Bezpłatny pakiet projektowy udostępniony przez firmę RS Components. 4. Freescale Freemaster Graficzny pakiet konfiguracyjno-debugujący do analizy pracy mikrokontrolerów Kinetis. 5. Microchip MCC MPLAB X Plugin Plugin o nazwie Code Configurator dla pakietu MPlab X firmy Microchip. 6. Microchip MPlab X 2.30 IDE MPlab X firmy Microchip. 7. MultiSIM BLUE Bezpłatna wersja pakietu MultiSIM firmy National Instruments. EP 1/2015 1. Lattice_Diamond_x86_x64 Wersja instalacyjna środowiska projektowego Diamond firmy Lattice (Windows 32- i 64-bit). 2. PSoC Designer 5.4 CP 1 Pakietu projektowy firmy Cypress. 3. SiLabs_SimplicityStudio Zintegrowane środowiska programistyczne dla ARM-ów od Silicon Laboratories.
2. Analog Devices SigmaStudio Oprogramowanie narzędziowe do projektowania torów audio realizowanych na procesorach SigmaDSP. 3. Cypress_EZ-USB FX3 SDK v1.3.1 for Windows Pakiet SDK dla aplikacji USB realizowanych na mikrokontrolerach FX3 firmy Cypress Semiconductor. 4. Cypress_PSoC Programmer 3.21 Program obsługujący programator ISP mikrokontrolerów PSoC firmy Cypress Semiconductor. 5. Cypress_PSoC_Creator_3 Najnowsza wersja oprogramowania narzędziowego do implementacji projektów w konfigurowalnych mikrokontrolerach PSoC firmy Cypress Semiconductor. 6. Cypress_Sense and Control Dashboard v2.0.39 Oprogramowanie do monitorowania i analizy działania sensorów zbliżeniowych mikrokontrolerów PSoC. 7. e2 studio 3.1.0.24 Kompletne środowisko programistyczne przeznaczone dla 32-bitowych mikrokontrolerów RX100. 8. Infineon_DAVE v3.1.10 Pakiet programistyczny firmy Infineon przeznaczony dla mikrokontrolerów z rodziny XMC.
Program narzędziowy do konfigurowania bloków PLA w mikrokontrolerach ADuCM320. 4. Microchip MCG3130 Software Package Pakiet oprogramowania i sterowników do obsługi interfejsu gestów 3D firmy Microchip – układu MCG3130. 5. Microchip MPLAB HARMONY Wtyczka dla środowiska MPLAB spełniająca rolę aplikacyjnego frameworka, który ułatwia i przyspiesza pisanie programów dla PIC32. 6. Microchip MPLAB X IDE v2.20 Najnowsza wersja popularnego środowiska programistycznego firmy Microchip. 7. SliconLabs Simplicity Studio Cortex-Mx IDE Najnowsza wersja bezpłatnego środowiska programistycznego firmy Silicon Labs. EP 9/2014 1. 3D Tool V11 Bezpłatna wersja pakietu do wizualizacji, konwersji i analizy modeli 3D. 2. Blender 2.71 Win64 Najnowsza wersja ewaluacyjna pakietu do projektowania i modelowania 3D o nazwie Blender. 3. BRL-CAD 7.24.0 Najnowsza wersja open-source’owego narzędzia do modelowania 3D, szczególnie przydatna do projektowania obudów urządzeń elektronicznych oraz obudów podzespołów elektronicznych. 4. Xilinx Vivado SDK 2014.2.0612 Najnowsza wersja pakietu do projektowania w FPGA i SoC o nazwie Vivado firmy Xilinx.
9. TI_CodeComposer 6 Środowisko projektowe dla mikrokontrolerów i mikroprocesorów (także DSP) produkowanych przez TI.
EP 8/2014 1. Altera_Quartus_II_14.0.0.200 Najnowsza, bezpłatna wersja pakietu projektowego dla układów PLD firmy Altera, obsługująca m.in. CPLD z rodziny MAX10.
EP 11/2014 1. Atmel Studio 6.2 (build 1153) Środowisko programistyczne dla mikrokontrolerów firmy Atmel.
2. LTSpiceIV_07_2014 Najnowsza wersja popularnego symulatora układów analogowych – LTSpice IV.
2. Crossworks for ARM Środowisko programistyczne dla mikrokontrolerów z rdzeniami Cortex-M.
3. MDK ARM 5.11a Najnowsza wersja bazowego pakietu instalacyjnego środowiska ARM-MDK (z popularnym IDE uVision), które jest zorientowane na mikrokontrolery wyposażone w rdzenie firmy ARM.
3. MDK-ARM Version 5.12 Najnowsza edycja pakietu MDK-ARM (Keil/ARM) z popularnym IDE o nazwie uVision. 4. NXP Flashmagic Tool Najnowsza wersja programu sterującego pracą programatorów ISP dla mikrokontrolerów firmy NXP. 5. STLink 3.4.0 Najnowsza wersja programu sterującego pracą programatora ST-Link i pochodnych (opracowanie STMicroelectronics dla STM32 i STM8). 6. STM32F429Discovery .NET Micro Framework Pakiet bibliotek umożliwiających implementację środowiska .NET w mikrokontrolerach STM32. 7. STM32 CubeMX Najnowsza wersja pakietu narzędziowego do graficznej konfiguracji peryferiów w mikrokontrolerach STM32. 8. ST STVP 32 Zestaw programów narzędziowych STVP i STVD, tworzących środowisko programistyczne dla mikrokontrolerów ST7. 9. Xilinx Vivado SDK Win 2014.3 1004 1 Najnowsza wersja pakietu Vivado. EP 10/2014 1. Actel LIBERO IDE Bezpłatne środowisko dla programistów korzystających z układu FPGA firmy Actel. 2. Actel LIBERO Vault Opcjonalne rozszerzenie środowiska LIBERO firmy Actel. 3. Analog Devices PLAtoolM3 v1.2
4. Renesas e2Studio 3.0.0.22 Najnowsza wersja zintegrowanego środowiska programistycznego firmy Renesas, które bazuje na GCC i Eclipse. 5. TI_Code Composer Studio 6 Najnowsza wersja pakietu programistycznego Code Composer firmy Texas Instruments. EP 7/2014 1. AnyCAD Viewer 3.0 Najnowsza wersja bezpłatnej przeglądarki plików modeli 3D pochodzących z różnych programów CAD. 2. AnyExchange3D 5 Najnowsza wersja konwertera modeli 3D.
dla iOS, Linuksa i Windows. 8. RF AppCAD 3.0.2 Uniwersalny kalkulator wspomagający obliczenia torów radiowych i torów transmisyjnych dla zakresów RF. 9. STMicroelectronics STM32MAT-Target Pakiet oprogramowania umożliwiającego przygotowanie aplikacji w MAtlabie na mikrokontrolery STM32. 10. STMicroelectronics STM Studio 3.3 Nowa wersja pakietu STM Studio, który służy do wspomagania diagnostyki działania aplikacji na mikrokontrolerach STM8 i STM32.
EP 5/2014 1. ABViewer 9 Pakiet oprogramowania CAD umożliwiającego podgląd i podstawową edycję modeli 3D, w tym zapisanych w formacie STEP. 2. AVX SpiCap 3 Opracowane i udostępnione przez firmę AVX oprogramowanie do symulowania kondensatorów ceramicznych. 3. CADstarExpress 14 Najnowsza wersja pakietu do projektowania PCB firmy Zuken (w wersji bezpłatnej), z dokumentacją i programami pomocniczymi.
12. TI Code Composer Studio Version 6.0.0.00190 Najnowsza wersja Code Composera firmy Texas Instruments.
4. CrossWorks ARM Najnowsza wersja pakietu programistycznego dla konstruktorów korzystających z mikrokontrolerów wyposażonych w rdzenie ARM Cortex-M, Cortex-A oraz ARM7/9/11.
13. TI PLCLite Industrial Power-Line Communication Modem Pakiet bezpłatnych bibliotek obsługujących protokoły transmisji danych za pomocą modemów PLC (z medium w postaci linii energetycznych). EP 6/2014 1. Exar CAD Components Pakiet bibliotek komponentów (jest ich blisko 600!) dla programów CAD w formacie BXL, przygotowanych i udostępnionych przez firmę Exar. 2. Front Designer 4.3.1 Program narzędziowy do projektowania paneli czołowych urządzeń elektronicznych, który jest wyposażony w moduł współpracy z obrabiarkami CNC, dzięki czemu wykonanie tego istotnego fragmentu obudowy można zautomatyzować i przyspieszyć. 3. Murata NTC Voltage Simulator Prosty w obsłudze symulator termistorów produkowanych przez firmę Murata, który umożliwia nie tylko przeanalizowanie ich działania, ale także dobranie właściwego elementu do wymogów aplikacji. 4. Murata EMI Filter Selector-Simulator Narzędzie wspomagające dobór i analizę filtrów EMI do wymogów aplikacji. 5. Murata Medium Voltage Capacitors Selector Narzędzie wspomagające dobór kondensatorów średnionapięciowych z oferty firmy Murata do specyfiki aplikacji. Umożliwia ono świadome wybranie typu kondensatora z bogatej oferty producenta. 6. Murata Power Inductor Selector Kolejna na naszej płycie bezpłatne narzędzie udostępnione przez firmę Murata: selektor wspomagający dobór typu dławika do wymogów aplikacji, przy czym służy ono przede wszystkim do dobierania dławików mocy. 7. NXP LPCOpen 1.03/2.01 Najnowsze wersje oprogramowania LPCopen dla mikrokontrolerów LPC firmy NXP. Na płycie publikujemy wszystkie obecnie dostępne warianty i wersje tego pakietu.
4. AtmelStudio 6.2 Najnowsza wersja bezpłatnego pakietu przeznaczonego do realizacji projektów na mikrokontrolerach firmy Atmel.
8. NXP LPCxpresso 7.1.1.125 Najnowsze wersje środowiska IDE LPCxpresso (LPCware dla mikrokontrolerów LPC firmy NXP) dla Windows i Linuksa.
5. Eagle 6.6.0 Najnowsza wersja programu do projektowania obwodów drukowanych.
9. SiLabs Simplicity Studio Najnowsza wersja zintegrowanego środowiska programistycznego dla konstruktorów korzystających z mikrokontrolerów z rdzeniami Cortex-M produkowanymi przez firmę SiliconLabs. 10. Murata SimSurfing 3.4.1 Udostępniony bezpłatnie przez firmę Murata symulator podzespołów analogowych (z bazą modeli pochodzących oczywiście z oferty firmy Murata) w tym: kondensatory różnego typu, cewki i dławiki, filtry EMI,
7. Microchip MPLAB X IDE v2.10 Najnowsza wersja bezpłatnego IDE firmy Microchip w wersjach
11. Xilinx Vivado SDK 2014.1_0405_1 Najnowsza, bezpłatna wersja pakietu projektowego dla układów FPGA firmy Xilinx.
11. ST SPC56 Studio 3.0 Najnowsza wersja bezpłatnego środowiska programistycznego dla mikrokontrolerów SPC56 (rdzeń PowerPC) firmy STMicroelectronics.
3. ARM-MDK 5.10 dla XMC1000 Bezpłatna wersja pakietu MDK z IDE uVision, przeznaczona wyłącznie do obsługi mikrokontrolerów XMC100 firmy Infineon (rdzeń Cortex-M0).
6. Infineon DAvE 3.1.10 Najnowsza wersja środowiska programistycznego firmy Infineon przeznaczonego do realizacji projektów na mikrokontrolerach z rdzeniami Cortex-M firmy Atmel.
termistory, pozystory itp. Łącznie w bibliotekach zawarto ponad 15000 typów elementów.
5. Infineon DAvE 3.1.10 Najnowsza wersja bezpłatnego środowiska programistycznego DAvE firmy Infineon. 6. SiliconLabs Smiplicity Studio Najnowsza wersja środowiska projektowego firmy Silicon Labs. 7. ST Current Sensing OpAmp Calculator Prosty w obsłudze kalkulator pozwalający zautomatyzować dobór elementów dla wzmacniaczy. 8. ST L6562A PFC Calculator Kalkulator automatyzujący obliczanie wartości elementów w aplikacji kontrolera PFC L6252. 9. ST SPC56 Studio IDE Nowa wersja IDE o nazwie SPC56 Studio, które bazuje na Eclipse i jest przeznaczone dla programistów tworzących aplikacje dla mikrokontrolerów SPC56 (rdzeń PowerPC). 10. T-FLEX CAD Student Edition Studencka wersja pakietu T-Flex CAD. EP 4/2014 1. Altium Designer Free Viewer Najnowsza opublikowana przez firmę Altium wersja bezpłatnej przeglądarki plików projektowych, obsługiwanych przez pakiet Altium Designer. 2. CrossWorks MSP430 v2.2.1 Najnowsza wersja zintegrowanego środowiska programistycznego CrossWorks (kompilator C + IDE) dla mikrokontrolerów MSP430 (Windows, Linux i MacOS). 3. Freescale CodeWarrior 10.5 Środowisko programistyczne zintegrowane z kompilatorem języka C dla mikrokontrolerów firmy Freescale oraz update’y z pakietami bibliotek dla nowych wersji mikrokontrolerów. 4. Fritzing v0.8.7b Najnowsza wersja bezpłatnego programu narzędziowego Frizting wspomagającego konstruktorów urządzeń bazujących na płytkach z systemu Arduino. 5. GerberLogix Free Viewer Udostępniona przez firmę EasyLogic bezpłatna przeglądarka plików Gerber oraz NC Drill. 6. PCB Investigator, wersja ewaluacyjna Ewaluacyjna wersja pakietu do analizy technologicznej i koncepcyjnej projektów PCB. 7. RFCafe Calculator Workbook Arkusz XLS zawierający ponad 20 kalkulatorów wspomagających obliczenia dla torów radiowych, torów dystrybucji szybkich sygnałów analogowych i cyfrowych, technice radarowej, mikrofalowej itp. 8. Segger emIDE v 2.16 Instalacyjna oraz źródłowa wersja środowiska programistycznego IDE udostępnione bezpłatnie przez firmę Segger.
51
T E M AT N U M E R U LOKALNE SIECI RADIOWE
WYBÓR KONSTRUKTORA
Moduły interfejsów bezprzewodowych sieci lokalnych i osobistych Na konferencji w 2010 roku Steve Jobs roku powiedział: „jeśli widzicie rysik, to spartaczyli robotę”. Gdyby wciąż żył, pewnie teraz powiedziałby coś w stylu: „jeśli widzicie kable, to spartaczyli robotę”. Najnowszy MacBook jest idealnym przykładem aktualnego trendu do zmniejszania liczby kabli połączeniowych. Nie oznacza to bynajmniej, że zapanowała moda na urządzenia pracujące samodzielnie, bez potrzeby łączenia się z innymi. Wręcz przeciwnie – trudno sobie wyobrazić nowoczesny sprzęt pozbawiony możliwości komunikacji bezprzewodowej. Jak taką komunikację zrealizować i jakie interfejsy wybrać? Tego dowiecie się z niniejszego artykułu. Jeszcze kilka lat temu, chcąc zaimplementować obsługę sieci bezprzewodowej w urządzeniu elektronicznym, konstruktor miał dosyć łatwy wybór. Do komunikacji na duże odległości (WAN) wybierał modem sieci komórkowej, do łączenia się z siecią lokalną (LAN), sięgał po moduł Wi-Fi, a na potrzeby sieci osobistej (PAN) używał modułu Bluetooth. Oczywiście zawsze istniała możliwość realizacji jakiejś indywidualnej metody bezprzewodowego transferu danych – jak np. w radiomodemach, oraz zawsze konieczne było wybranie generacji standardu, ale była to decyzja względnie prosta, wynikająca z łatwych kalkulacji. Nieco później spopularyzowała się jeszcze sieć ZigBee, ale jej specyfika oraz multum różnych odmian sprawiały, że wybór którejś wersji ZigBee był determinowany z góry, ze względu na przeznaczenie produktu. Ponadto, ZigBee wywodzi się z rynku automatyki, a więc w aplikacjach typowo konsumenckich raczej nie znajdywało zastosowania. Czasy się jednak zmieniły, a oczekiwania klientów odnośnie do bezprzewodowości otrzymywanych produktów sprawiły, że powstały nowe standardy oraz zupełnie nowe wersje już istniejących. Umożliwił to również postęp technologiczny, który pozwolił na realizację bardziej energooszczędnych lub nawet bardziej zasobożernych standardów. W końcu narodziła się technologia Internetu Rzeczy (IoT – Internet of Things), o którym choć dużo się mówi, to wbrew pozorom, pewnie dopiero za jakiś czas rozwinie się na poważnie i zdominuje nasze otoczenie. Obecnie konstruktor ma do wyboru nie tylko kilka generacji Wi-Fi (równolegle
52
używanych), kilka generacji sieci komórkowych różniących się nie tylko przepustowością, ale i poborem mocy oraz kilka generacji Bluetootha, z których nie wszystkie są ze sobą kompatybilne. Do dyspozycji są też inne standardy otwarte, takie jak interesujący 6loWPAN oraz własnościowe protokoły, takie jak MiWi, LoRa, JenNet, kilka przemysłowych (np. Wireless M-Bus), a na horyzoncie jest już ZigBee 3.0. Do tego RFID coraz częściej zastępowane jest implementacjami NFC, które także umożliwia dwukierunkową komunikację bezprzewodową.
IEEE Organizacja IEEE jest zapewne znana, choćby ze słyszenia, każdemu inżynierowi – elektronikowi. To ona opracowuje kolejne standardy w elektronice i elektryce, które następnie są respektowane i implementowane przez producentów na całym świecie. Oczywiście dotyczy to także technologii komunikacji bezprzewodowej. Poszczególne standardy IEEE są oznaczane liczbami i a niektóre z nich dodatkowo literami. Najnowsze (dostępne na rynku) Wi-Fi to IEEE 802.11ac, natomiast Bluetooth to IEEE 802.15.1. Problem w tym, że wiele z pozostałych, wcześniej wymienionych sieci PAN, pomimo różnic między nimi jest zgodnych z IEEE 802.15.4, a czasem równocześnie i z IEEE 802.15.5 i okazuje się, że niemała część inżynierów nie wie
do końca dlaczego tak jest. Rozwikłanie tych zależności pozwala dobrze zrozumieć różnice pomiędzy poszczególnymi standardami. IEEE to Instytut Inżynierów Elektryków i Elektroników (Institute of Electrical and Electronics Engineers). Organizacja ta obejmuje liczne komitety, przy czym komitet IEEE 802 odpowiada za sieci komunikacyjne, przesyłające pakiety o różnych wielkościach. Dzieli się on na grupy robocze, zajmujące się różnymi rodzajami komunikacji. Przykładowo: IEEE 802.3 to grupa pracująca nad Ethernetem, IEEE 802.11 pracuje nad bezprzewodowymi sieciami LAN (w tym Wi-Fi), a IEEE 802.15 nad bezprzewodowymi sieciami personalnymi. Grupy dzielą się następnie na zespoły do konkretnych zadań. I tak np. zespół IEEE 802.15.1 pracuje nad Bluetoothem, IEEE 802.15.2 nad umożliwieniem współistnienia sieci WLAN i WPAN (Wireless PAN), IEEE 802.15.3 nad sieciami WPAN o dużych przepustowościach, IEEE 802.15.4 nad sieciami WPAN o małych przepustowościach (np. ZigBee), IEEE 802.15.5 nad komunikacją w sieciach o topologii kraty (realizowaną np. również przez ZigBee), a IEEE 802.15.6 pracuje nad sieciami ograniczonymi do jednego człowieka (BAN – Body Area Network). Co jakiś zespoły czas wydają standardy w postaci dokumentów, takich jak np. IEEE Standard 802.15.1-2005, w którym zawarto opis interfejsu Bluetooth v1.2. Czasem jeden standard nie opisuje całego interfejsu komunikacyjnego i dopiero na jego bazie lub na bazie kilku standardów, tworzy się kompletny interfejs, czego przykładem jest ZigBee. W warstwie fizycznej korzysta ono z osiągnięć zespołu IEEE 802.15.4, a dodatkowo implementuje obsługę sieci o topologii krat, zgodnie z wytycznymi IEEE 802.15.5. Warto przy tym zaznaczyć, że wytyczne te mogą być równie dobrze zastosowane do warstwy fizycznej sieci opisanych przez IEEE 802.15.3. Zaletą takiej organizacji prac jest utrzymywanie kompatybilności wstecznej wielu standardów, ale czasem zdarzają się wyjątki, wynikające przede wszystkim z konieczności zerwania z zaszłościami technologicznymi, które uniemożliwiały wprowadzenie ELEKTRONIKA PRAKTYCZNA 5/2015
Moduły interfejsów bezprzewodowych sieci lokalnych i osobistych postępu. Tak np. jest z interfejsem Bluetooth Smart, znanym elektronikom przede wszystkim jako Bluetooth Low Energy, albo BLE.
Bluetooth W momencie powstania, Bluetooth był ciekawym pomysłem, który teoretycznie miał zrewolucjonizować sposób łączenia ze sobą niedużych urządzeń elektronicznych. Duży zasięg, mały pobór mocy i specjalny protokół, zaprojektowany specjalnie na potrzeby nowego interfejsu miały gwarantować sukces. Rzeczywistość okazała się jednak nieco inna. Zasięg wcale nie był taki duży, jak reklamowano, a uzyskiwane transfery użytecznych
danych nawet na ówczesne czasy były dosyć skromne. Co najgorsze, pobór mocy urządzeń korzystających z Bluetootha wcale nie pozwalał na ciągłe utrzymywanie włączonego interfejsu, jeśli źródłem zasilania były baterie. Po średnio użytecznym interfejsie Bluetooth 1.2, który zastąpił starsze, ale bardzo stosowane wersje, pojawił się Bluetooth 2.0+EDR, który dzięki opcjonalnej funkcji Enchanced Data Rate podwyższał teoretyczną szybkość transmisji do 3 Mb/s. W praktyce pozwalało to obniżyć zużycie energii, gdyż skracało czas potrzebny na przesłanie danych. W końcu wersja 2.1+EDR usprawniła proces parowania i wykrywania urządzeń, a wraz z postępem technologicznym w dziedzinie komunikacji radiowej, Bluetooth faktycznie zaczął być użyteczny. Pojawienie się smartfonów, wyposażonych w interfejs Wi-Fi podsunęło zespołowi IEEE 802.15.1 pomysł, aby wykorzystać
dostępność dwóch rodzajów interfejsów bezprzewodowych w urządzeniu. Powstał więc Bluetooth 3.0+HS, który oprócz zmian związanych z kontrolą retransmisji i mocy nadawczej oraz zasilania, pozwolił na opcjonalne użycie warstwy fizycznej Wi-Fi do przesłania większych ilości danych, po uprzednim wynegocjowaniu połączenia poprzez Bluetooth. Teoretycznie zwiększało to maksymalną szybkość transmisji do 24 Mb/s. Gdy szybkość transmisji przestała teoretycznie być problemem, zespół IEEE 802.15.1 wziął się za zmniejszenie poboru energii. W tym celu sięgnięto po kolejne skandynawskie rozwiązanie (pierwsza wersja Bluetootha została opracowana przez szwedzkiego Ericssona) – Wibree, zaprezentowane w 2006 roku przez Nokię – czyli w czasach jej świetności. Wibree miało wiele zalet, w porównaniu do Bluetootha, co było
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
53
T E M AT N U M E R U LOKALNE SIECI RADIOWE
WYBÓR KONSTRUKTORA szczególnie zauważalne w prostych aplikacjach, gdzie nie były potrzebne duże przepustowości, ale długotrwała praca na zasilaniu bateryjnym. Niestety, Wibree było zupełnie niekompatybilne z Bluetoothem, poza tym, że pracowało w tym samym zakresie częstotliwości. zespół IEEE mimo to zdecydował się przyjąć rozwiązanie i Wibree zostało przemianowane na Bluetooth Low Energy (Bluetooth LE) oraz włączone do nowej wersji standardu Bluetooth 4.0+LE. Tak, jak i w przypadku poprzednich standardów, w których nazwie pojawiał się znak plusa, obsługę transmisji w trybie Low Energy uznano za opcjonalną, co pozwoliło twórcom układów scalonych na stosowanie oznaczenia Bluetooth 4.0 nawet, jeśli nie wspierały one w pełni nowego standardu. W ostatnim czasie wprowadzono jeszcze dwie aktualizacje: Bluetooth 4.1 i Bluetooth 4.2, z czego pierwsza obejmuje głównie zmiany programowe, a druga została zaprojektowana z myślą o Internecie Przedmiotów, i m.in. wprowadza dodatkowe mechanizmy sprzętowe, zwiększające prywatność transmisji oraz dodatkowe profile komunikacji, ułatwiające transmisję pakietów IPv6 przez łącze Bluetooth.
Bluetooth Smart Cofnijmy się jednak do Bluetootha 4.0+LE, który obecnie dominuje w nowych modułach radiowych BT. Po pierwsze, oficjalnie standard ten nosi już inną nazwę.
54
Zrezygnowano z sufiksu „+LE” i przyjęto, że Bluetooth 4.0 obejmuje dwa różne, niekompatybilne ze sobą standardy, których implementacja decyduje o tym, jakiego oznaczenia może używać producent urządzenia. Bluetooth Low Energy został nazwany mianem Bluetooth Smart, a dawniej stosowany protokół nazwano mianem Bluetooth Classic i to tych dwóch nazw powinni obecnie używać producenci sprzętu, implementujący obsługę Bluetootha w swoich urządzeniach. Zaproponowano też dodatkową, trzecią nazwę: Bluetooth Smart Ready, która obejmuje sprzęt wspierający zarówno klasyczny Bluetooth, jak i Bluetooth Low Energy, a więc najbardziej uniwersalny. Niemniej, w katalogach dostawców modułów radiowych wciąż często pojawiają się stare oznaczenia, a słówko „Ready” sugeruje, jakoby Bluetooth Smart był lepszy od Bluetooth Smart Ready (podobnie jak w przypadku wyświetlaczy Full HD i HD Ready) i zapewne z czasem klasyczny BT zostanie wyparty tym, wywodzącym się z Wibree.
To nie do końca dobrze, gdyż pod pewnymi względami klasyczny Bluetooth jest lepszy od nowego. Oferuje większą szybkość transmisji, nieco większy zasięg i obsługuje możliwość sensownego przesyłu audio czy też innych strumieni danych. Tymczasem Bluetooth Smart wyróżnia się przede wszystkim małym poborem mocy i idealnie sprawdza się tam, gdzie potrzebny jest przesył krótkich komunikatów, raz na jakiś czas. W praktyce więc producenci podchodzą do tej kwestii implementując pełną obsługę Bluetootha Smart Ready w urządzeniach takich jak komputery i smartfony, podczas gdy czujniki i proste elementy wykonawcze pracując jedynie w trybie Bluetooth Classic lub Bluetooth Smart. Różnice pomiędzy poszczególnymi protokołami BT da się wyrazić liczbowo. Bluetooth Classic pozwala osiągnąć zasięg rzędu 10 m, dla większości nadajników i do 300 m dla urządzeń najwyższej mocy, przy użyciu odpowiednich anten. BT Smart teoretycznie – przy największej mocy pozwala na transfer na odległości do 250 m, ale w większości implementacji również jest ograniczony do 10 m. Kluczowy jest natomiast pobór mocy. Przyjmuje się, że w popularnych aplikacjach, prąd pobierany przez układy klasycznego Bluetootha w trakcie pracy wynosi do około 30 mA, choć bardzo zależy od zaimplementowanego profilu komunikacji. Natomiast w przypadku interfejsu Bluetooth Smart, prąd ten nie przekracza
ELEKTRONIKA PRAKTYCZNA 5/2015
Moduły interfejsów bezprzewodowych sieci lokalnych i osobistych 15 mA, niezależnie od tego, czy prowadzony jest odbiór czy wysyłka danych. Co więcej, czas potrzebny na ustanowienie połączenia w przypadku Bluetooth Classic dochodzi nawet do 6 sekund, podczas gdy dla Bluetooth Smart jest on tysiąckroć mniejszy i w praktyce nie przekracza 6 ms. To jeden z kluczowych elementów decydujących o energooszczędności. Nawet jeśli założyć identyczny pobór prądu, przesłanie małego pakietu danych zajmie Bluetoothowi Smart kilka milisekund, co przekłada się na średni pobór prądu rzędu jedynie 1 µA dla typowych zastosowań. Trzeba też wziąć pod uwagę, że krótki czas potrzebny na wzbudzenie interfejsu i przesłanie danych pozwala również znacząco zmniejszyć czas aktywnej pracy głównego mikrokontrolera urządzenia elektronicznego, tym bardziej ograniczając zużycie mocy przez całe urządzenie. Dopiero przy większych ilościach danych klasyczny Bluetooth zyskuje przewagę dzięki znacznie większej przepustowości, która w praktyce umożliwia na transfer (w trybie EDR) do 2 Mb/s użytecznych danych, a w przypadku Bluetootha Smart będzie to jedynie około 100 kb/s. Warto też zaznaczyć, że o ile Bluetooth Smart korzysta z wielu mechanizmów, takich jak np. adaptacyjne zmienianie częstotliwości (AFH – Adaptive Frequency
Tabela 1. Porównanie cech interfejsów Bluetooth Classic i Bluetooth Smart Przepustowość użytecznych danych w praktyce Niezawodność Zasięg dla maksymalnych mocy Możliwość pracy wielu urządzeń w bliskim otoczeniu Praca w rozległych sieciach Opóźnienia w transmisji po nawiązaniu połączenia Czas nawiązywania połączenia Średni pobór mocy Koszt implementacji
Hopping) czy L2CAP (Logical Link Control and Adaptation Protocol), w standardowej postaci nie wspiera wygodnego w wielu zastosowaniach profilu portu szeregowego (SPP – Serial Port Profile). Niemniej producenci modułów Bluetooth starają się ułatwić pracę konstruktorom i nierzadko samodzielnie, dodatkowo implementują wsparcie dla SPP. BT Smart nie zawiera też takich profili jak HSP (Headset), OBEX (Object Exchange), A2DP (Audio Distribution), VDP (Video Distribution) i FTP (File Transfer Protocol). Różnice pomiędzy protokołami Bluetooth Smart i Bluetooth Classic zostały przedstawione w tabeli 1. Wymiana danych w Bluetooth Smart standardowo opiera się o profil GATT (General Attribute Profile), który
Bluetooth Classic do 2 Mb/s Bardzo duża do 100…300 m Bardzo dobra Słaba Bardzo krótkie Długi Mały Mały
Bluetooth Smart około 100 kb/s Bardzo duża do 50…250 m Bardzo dobra Dobra Bardzo krótkie Bardzo krótki Ekstremalnie mały Bardzo mały
pozwala w prosty sposób przekazywać pomiędzy urządzeniami wartości atrybutów (Characteristics) i ich opisy (Descriptors) oraz zestawy atrybutów (Services). Aby uprościć żądania, typowym atrybutom, wraz z opisami i usługami, nadano stałe identyfikatory, które pozwalają w bardzo prosty sposób pobierać potrzebne dane z urządzeń Bluetooth Smart. Oczywiście, możliwe jest też skanowanie w poszukiwaniu innych dostępnych atrybutów, czy całych zestawów atrybutów, by poznać ich identyfikatory i następnie w łatwy sposób żądać podania ich wartości, czy opisów.
ZigBee Kolejnym standardem, w którym ostatnio również zachodzą zmiany jest ZigBee. I tak
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
55
T E M AT N U M E R U LOKALNE SIECI RADIOWE
WYBÓR KONSTRUKTORA
jak Bluetooth zyskał na popularności kilka lat temu, tak ZigBee zaczyna zyskiwać teraz. Wynika to z faktu, że wychodzi poza świat automatyki przemysłowej, wkraczając najpierw do automatyki domowej i dobrze wpisuje się w trend IoT. Głównymi zaletami ZigBee są: niewielki pobór mocy, obsługa sieci o topologii kraty oraz fakt, że standard ten przyjęło całkiem wiele ważnych firm na rynku. Na przestrzeni lat, oprócz kolejnych wersji protokołu ZigBee (ZigBee 2004, ZigBee 2006 i ZigBee Pro), powstały też liczne profile aplikacji, podobnie jak w przypadku Bluetootha. Należą do nich m.in. ZigBee Home Automation, ZigBee Smart Energy, ZigBee Remote Control, ZigBee IP, ZigBee Retails Services, ZigBee Green Power czy ZigBee Light Link. Występują one w różnych, nie zawsze ze sobą kompatybilnych wersjach, a niektóre z nich bardzo znacząco się różnią. Przykładowo ZigBee Smart Energy 2.0 opiera się już o protokół IP, co ułatwia przesył danych pomiędzy siecią ZigBee a Internetem. ZigBee znajduje zastosowanie aktualnie przede wszystkim w automatyce budynkowej, choć samo stowarzyszenie ZigBee Alliance, zajmujące się rozwojem ZigBee, dzieli tę automatykę na kilka działów. Oddzielny profil jest stosowany do komunikacji w ramach systemów oświetlenia, oddzielny do zarządzania i liczenia energii, a jeszcze inny do sterowania domowymi urządzeniami multimedialnymi. Ponieważ tworzy to pewien zamęt, ZigBee Alliance w ostatnio zdecydowało się zunifikować wszystkie te obszary zastosowań tworząc nową wersję standardu – ZigBee 3.0.
56
6LoWPAN
ZigBee 3.0 Nowy standard nie jest jeszcze gotowy, więc tym bardziej nie ma co szukać na rynku modułów zaprojektowanych specjalnie do ZigBee 3.0. Niemniej jest to standard wstecznie kompatybilny – korzysta z częstotliwości 2,4 GHz i protokołu ZigBee Pro do transmisji danych. Nowością w ZigBee 3.0 jest unifikacja dotychczasowych profili aplikacji w ramach samego standardu. Zdefiniowano ponad 130 różnych urządzeń, począwszy od systemów automatyki domowej, oświetlenia, zarządzania energią, inteligentnych urządzeń, przez systemy bezpieczeństwa i czujniki, a kończąc na urządzeniach medycznych. Co ważne, dotychczasowe urządzenia, zgodne z najnowszymi profilami ZigBee będą poprawnie obsługiwane w sieciach ZigBee 3.0. Teoretycznie, wprowadzenie ZigBee 3.0 ma pozwolić twórcom wszelkiego rodzaju aplikacji na szybkie korzystanie z funkcji urządzeń ZigBee innych producentów, gdyż w zależności od typu i funkcji pełnionej przez dany sprzęt, będzie on udostępniał konkretne, z góry zdefiniowane przez standard parametry. Wszystkie urządzenia, które będą pozwalać na włączanie czegoś, będą przyjmowały identyczną komendę, niezależnie od tego, czym sterują itd. Ma to zdecydowanie zwiększyć możliwości wzajemnej współpracy urządzeń, czyli ułatwić tworzenie aplikacji pasujących do trendu IoT.
Tworząc urządzenie, które producent chce reklamować, jako wpisujące się w trend Internet of Things, należy pamiętać, że nie wystarczy, by komunikowało się ono jedynie ze swoim otoczeniem, ale też że powinno być podłączone do globalnej sieci. Nie każdy ze standardów komunikacji bezprzewodowej nadaje się do tego tak samo dobrze. Kluczowe jest wsparcie dla protokołu IP, który obowiązuje w Internecie. Co więcej, klasyczne IPv4 może nie wystarczyć – dostępna w nim pula adresowa jest zbyt mała, by pokryć zapotrzebowanie na wszystkie nowe urządzenia, jakie zaczynają powstawać w ostatnim czasie. Dlatego – jeśli chcieć rozwiązać problem przyszłościowo – konieczne jest sięgnięcie po IPv6. Szczęśliwie, istnieje standard, który został pomyślany właśnie po to, by umożliwić obsługę sieci opartych o IPv6, ale pracujących jako bezprzewodowe sieci personalne (WPAN). 6LoWPAN, bo o nim mowa, zyskuje ostatnio na popularności z powyższego względu i choć jest znacznie mniej rozpowszechniony niż ZigBee, został już zauważony przez producentów modułów M2M. Specyficzna nazwa standardu wywodzi się z angielskiego określenia IPv6 over Lowpower Personal Area Networks. W przeciwieństwie do ZigBee i Bluetootha, 6LoWPAN koncentruje się na warstwie adaptującej pakiety IPv6 (a więc zarazem i IPv4) do przesyłu przez sieć WPAN małej mocy (zgodną ze standardami IEEE 802.15.4). Jej przygotowanie oznacza nie tylko pokonanie problemu związane z innymi minimalnymi wielkościami maksymalnych ramek (MTU), ale też rozwiązanie kwestii routingu w sieci WPAN ELEKTRONIKA PRAKTYCZNA 5/2015
Moduły interfejsów bezprzewodowych sieci lokalnych i osobistych
i pomiędzy siecią WPAN a innymi sieciami IP, wykrywanie urządzeń itp. Przykładowo IPv6 wymaga by MTU było nie mniejsze niż 1280 bajtów, podczas gdy w IEEE 802.15.4 standardowa wielkość pakietu wynosi 127 oktetów. Natomiast adresy w IPv6 są 128-bitowe, podczas gdy IEEE 802.15.4 pozwala na używanie rozszerzonych adresów
64-bitowych lub skróconych, unikalnych w ramach jednej sieci WPAN, 16-bitowych. Naturalnie w przypadku innych standardów IEEE 802.15.4, w których następuje konieczność transmisji pakietów protokołu IP (np. ZigBee IP) również konieczne było rozwiązanie wielu identycznych problemów, ale fakt, że 6LoWPAN zostało
zaprojektowane właśnie z myślą o ich pokonaniu, udało się to lepiej zrealizować. W efekcie, 6LoWPAN cechuje się mniejszą ilością nadmiarowych danych niż ZigBee, w przypadku transmisji pakietów IP. Co więcej, znacznie mniejsze są też wymagania odnośnie ilości pamięci na kod stosu realizujący taką transmisję. W przypadku ZigBee
REKLAMA
Firma Freescale przygotowała dla Czytelników Elektroniki Praktycznej specjalną ofertę – 5 płytek RioTboard o wartości 74 dolarów każda
5 zestawów RIoTboard do rozdania dla twórców aplikacji IoT! Zestawy te oparte są na procesorze Freescale i.MX 6Solo, wykonanym w architekturze ARM Cortex-A9. Zostały one przystosowane do wydajnej obsługi systemu Android, przy czym mogą też pracować pod kontrolą Linuksa. Platforma RIoTboard to bardzo dobrze wyposażony mikrokomputer jednopłytkowy zawierający kartę sieciową Ethernet 10 M/100M/Gb, interfejsy USB: 1×2.0 OTG High Speed oraz 4×USB 2.0 High Speed 2.0, złącza dla monitorów LVDS oraz HDMI i równoległe RGB (dla wyświetlacza), interfejsy do dołączenia kart pamięci micro TF i SD, wejścia dla słuchawek i mikrofonu, interfejs dla kamery, porty szeregowe, a także uruchomieniowe złącze konfiguracyjne i złącze JTAG. Wszystko to w połączeniu z niskim zużyciem energii sprawia, że jest to idealne rozwiązanie do projektów z dziedziny IoT. Ograniczenie kosztów systemu, wielkości płytki drukowanej, liczby podzespołów niezbędnych do zamówienia i złożoności opracowywanej aplikacji oraz niewielkie zużycie energii to najważniejsze cechy platformy Freescale, która obejmuje nie tylko procesor Freescale i.MX 6Solo (mający rdzeń taktowany przebieELEKTRONIKA PRAKTYCZNA 5/2015 giem o częstotliwości 1 GHz), ale także mikrokontroler Freescale
Kinetis K20, zintegrowany układ zarządzania zasilaniem Freescale MMPF0100, 1 GB 32-bitowej pamięci DDR3 800 MHz oraz kartę eMMC 4 GB. Aby mieć szansę na otrzymanie płytki wystarczy wypełnić formularz umieszczony pod adresem http://contact.freescale.com/LP=674. Wyniki konkursu podamy na stronie internetowej pod koniec czerwca.
57
T E M AT N U M E R U LOKALNE SIECI RADIOWE
WYBÓR KONSTRUKTORA
pełny stos zajmuje około 90 kB, podczas gdy w 6LoWPAN wszystko mieści się w 30 kB. Małe wymagania sprzętowe 6LoWPAN spowodowały, że standardem zainteresowało się kilkadziesiąt firm, które na czele z Google, Samsungiem, ARMem, Freescale i Silicon Labs, rozpoczęło prace nad protokołem Thread – bardziej rozbudowaną wersją 6LoWPAN. Thread opisuje wyższe warstwy sieciowe; obejmuje routing i transmisję UDP, ale w przeciwieństwie do ZigBee, nie definiuje niczego w warstwie aplikacji. Ma umożliwić wykonywanie prostych, bezpiecznych i niezawodnych instalacji domowych sieci bezprzewodowych, działających w topologii kraty. Typowe zastosowania mają objąć sterowanie urządzeniami domowymi, kontrolę dostępu, regulację temperatury i wilgotności w budynkach, zarządzanie energią, oświetleniem oraz bezpieczeństwem. Dane pozyskiwane przez elementy sieci Thread będą mogły być bezpośrednio przekazywane do sieci Wi-Fi, za pomocą odpowiednich, ale prostych w budowie routerów. Powstające aplikacje mają koncentrować się na wykorzystaniu chmur obliczeniowych do składowania danych oraz urządzeń przenośnych do sterowania instalacjami WPAN. Prace nad protokołem Thread mają być zakończone w tym roku.
58
MiWi Kolejną alternatywą dla ZigBee jest opracowany przez firmę Microchip, własnościowy standard MiWi. On także pracuje na sieciach WPAN małej mocy, zgodnie z wytycznymi IEEE 802.15.4. Powstał na potrzeby prostych aplikacji, w których dostępna pamięć programu jest bardzo ograniczona. Rozmiar stosu MiWi wynosi jedynie od 3 kB do 17 kB, co czyni go jeszcze mniejszym niż 6LoWPAN. Oczywiście nie obejmuje on obsługi pakietów IP, ale producent wyszedł z założenia, że opracowany standard będzie stosowany w specyficznych sytuacjach, tam gdzie użycie alternatywnych rozwiązań byłoby niemożliwe lub zbyt kosztowne. Co więcej powstawały dwie wersje standardu: MiWi P2P, który obsługuje proste sieci
peer-to-peer o topologii gwiazdy (najmniejszy stos) i MiWi PRO, obsługujący topologię kraty do 8000 węzłów. Nie należy się jednak spodziewać, że MiWi, choć w niektórych przypadkach na pewno będzie wypadał atrakcyjnie w porównaniu do rozwiązań alternatywnych, bardzo się spopularyzuje. Wynika to z faktu, że stos MiWi, choć jest darmowy i jest dostępny (w wersjach na procesory 8-bitowe, 16-bitowe i 32-bitowe) do pobrania ze stron internetowych Microchipa, w ramach bibliotek Microchip Application Libraries, cechuje się bardzo specyficzną licencją. Zezwala ona na użytek stosu tylko i wyłącznie do zastosowania w mikrokontrolerach Microchip PIC.
Marcin Karbowniczek, EP
ELEKTRONIKA PRAKTYCZNA 5/2015
Projektanci sieci przemysłowych chętnie sięgają po rozwiązania bezprzewodowe, ponieważ taka infrastruktura daje przedsiębiorstwu dużo więcej korzyści, niż tylko pozbycie się kabli. Bezprzewodowa łączność umożliwia niezawodną transmisję danych w połączeniu z szybką instalacją. Zastosowanie technologii bezprzewodowej zapewnia swobodę projektowania systemów automatyki, przy jednoczesnym obniżeniu kosztów wdrożenia. Trzeba jednak pamiętać, że zaprojektowanie i wdrożenie sieci bezprzewodowej przeznaczonej do pracy w przemyśle wymaga dobrego zrozumienia wymagań tego środowiska. Wydajność łączności bezprzewodowej zależy od wielu czynników, takich jak przeszkody, zakłócenia elektromagnetyczne czy opady atmosferyczne. Na rynku występuje kilka standardów sieci bezprzewodowych. Rożne organizacje próbują forsować swoje standardy sieci bezprzewodowych, jednak najpopularniejsze są standardy otwarte takie jak Wi-Fi, Zigbee oraz Bluetooth. Standard 802.11 jest stosowany głównie w infrastrukturze sieci LAN lub do przesyłania dużej ilości informacji pomiędzy dwoma systemami. Najnowsza wersja IEEE 802.11ac umożliwia transmisję danych z prędkością do 1 Gigabita na sekundę oraz daje duże możliwości w zakresie topologii sieci. Większość punktów dostępowych umożliwia dodatkowo pracę w trybach: WDS, most, repeater lub klient. Wi-Fi natomiast nie jest optymalnym wyborem dla aplikacji wbudowanych, z uwagi na duży pobór energii oraz wymaganą wielkość kodu. Sieci Zigbee i Bluetooth dedykowane są do bezpośredniej obsługi urządzeń wykonawczych, rozszerzając możliwości sieci przemysłowych. Bluetooth przeznaczony jest do małych sieci z maksymalnie siedmioma urządzeniami i prędkościami do1 Mb/s. Zaletą transmisji Bluetooth jest duża niezawodność uzyskana dzięki technologii FHSS (Frequency Hopping Spread Spectrum). Transmisja odbywa się w całym zakresie pasma 2,4 GHz. Kanały, które są wykorzystywane przez inne sieci, są automatycznie wykrywane i usuwane z sekwencji skoków, dzięki czemu transmisja danych jest bardziej niezawodna. Ze względu na rodzaje zastosowań istnieje wiele profili sieci Bluetooth. W automatyce najczęściej stosowane są PAN (ang. Personal Area Networking) i SPP (ang. Serial Port Profile). W zależności od zastosowanej anteny, urządzenie z interfejsem Bluetooth można oddalić od komputera na odległość do 100 m. Bezprzewodową siecią przemysłową o bardzo dużym potencjale jest ZigBee, która została stworzona specjalnie dla aplikacji przemysłowych. Zasięg sieci jest ograniczony do 100 m. Wszystkie odmiany ZigBee używają technologii DSSS ELEKTRONIKA PRAKTYCZNA 5/2015
(Direct-Sequence Spread Spectrum). ZigBee jest technologią PAN (Personal Area Network), która automatycznie ustanawia połączenie z najbliższym węzłem. Taka sieć może zostać skonfigurowana w topologii gwiazdy, drzewa lub sieci kratowej. Podstawową jej zaletą jest bardzo małe zapotrzebowanie na energię i prostota, która znacznie obniża koszty wdrożenia. Stojąc przed wyborem Wi-Fi, Bluetooth czy Zigbee należy się kierować wielkością aplikacji, stopniem rozproszenia, zapotrzebowaniem na energię oraz ilością i rodzajem przesyłanych danych. W niektórych zastosowaniach wszystkie interfejsy mogą ze sobą koegzystować np. poprzez bramki Bluetooth/Ethernet. Sieć kablowa i Wi-Fi mogą tworzyć szkielet sieci, a Bluetooth i Zigbee najlepiej sprawdzą się w komunikacji z czujnikami. W ten sposób różne standardy mogą się wzajemnie uzupełniać, ponieważ każdy z nich adresowany jest do specyficznych wymagań przemysłu. Cezary Kalista Antaira Technologies Sp. z o.o. www.antaira.pl REKLAMA
Kiedy liczy się szybkość...
Przemysłowy punkt dostępowy do 300 Mbps! ► Obsługa standardów IEEE 802.11 a/b/g/n ► Praca jako AP, Client, Bridge, Router i Repeater Mode ► Obsługa protokołu Spanning Tree (STP) ► Zgodny z IEEE 802.1q VLAN Tagging ► Funkcja Watchdog i Auto Reboot ► Redundantne zasilanie 12-48 VDC ► Gwarancja 5 lat
TEL.: +48 22 862 88 81 | E-MAIL:
[email protected]
Formerly Aaxeon Technologies www.antaira.pl
59
T E M AT N U M E R U
Sieci bezprzewodowe w przemyśle
LOKALNE SIECI RADIOWE
PREZENTACJE
T E M AT N U M E R U LOKALNE SIECI RADIOWE
PODZESPOŁY
Nowoczesne technologie łączności dla IoT Współcześnie trudno wyobrazić sobie brak jakiejkolwiek komunikacji i łączności pomiędzy urządzeniami. Jej wykorzystanie codziennie ułatwia nam życie i pracę – od stacji radiowych i telefonii GSM, przez bezprzewodowe sieci Wi-Fi, Zigbee oraz łączność Bluetooth bliskiego zasięgu. Wraz z upowszechnieniem się dostępu do Internetu otwarła się możliwość zastosowania łączności bezprzewodowej dla nowego rodzaju usług oraz aplikacji. Powstały takie terminologie, jak M2M (Machine to Machine) – zdalna komunikacja pomiędzy urządzeniami oraz IoT – sieć aplikacji i urządzeń komunikujących się z Internetem. Gdy rynek zdalnych aplikacji gwałtownie rośnie, technologia również musi iść z postępem zapewniając uzyskanie większego zasięgu i prędkości transmisji, przy jednoczesnym obniżeniu zużycia energii. Postęp technologiczny umożliwia tworzenie innowacyjnych standardów dla nowych, wyrafinowanych aplikacji ułatwiających nam życie i pracę. Zadanie stawiane obecnie przed inżynierami to dostarczenie łatwej w obsłudze oraz solidnej infrastruktury łączności, zdolnej do działania w skali lokalnej i ogólnokrajowej. Wymagają oni zatem rozwiązań, które są łatwe do użycia, aby w krótkim czasie wprowadzić gotowy produkt na rynek.
Firma Gartner przewiduje, że do 2020 roku na świecie będzie blisko 25 miliardów połączonych rzeczy (IoT, M2M) 60
LoRa Technologia LoRa (Long Range Radio) przy małej przepustowości danych umożliwia aplikacjom IoT oraz M2M komunikację bezprzewodową na dystans ponad 15 kilometrów, przy żywotności baterii mogącej przekroczyć 10 lat. LoRa umożliwia połączenie milionów bezprzewodowych węzłów z kompatybilnymi bramkami i ma kilka kluczowych zalet w porównaniu do innych rozwiązań bezprzewodowych. Na przykład, wykorzystuje ona modulację z rozpraszaniem widma, ze zdolnością do demodulacji sygnału leżącego o 20 dB poniżej poziomu szumu. W porównaniu do sieci komórkowych 3G i 4G, technologia LoRa jest też lepiej skalowalna i bardziej opłacalna dla aplikacji wbudowanych. Ma przy tym znacznie większy zasięg niż pozostałe, popularne protokoły bezprzewodowe, co pozwala urządzeniom na działanie bez wzmacniaczy, zmniejszając całkowity koszt aplikacji. Moduł RN2483 firmy Microchip (fotografia 1) to pierwszy z serii bezprzewodowych
Dodatkowe informacje: Gamma Sp. z o. o. ul. Kacza 6 lok. A, 01-013 Warszawa tel. +48 22 862 75 00, faks +48 22 862 75 01 e-mail:
[email protected], www.gamma.pl
modułów komunikacyjnych pracujących w technologii LoRa. Jest przystosowany do pracy w paśmie 433 MHz/868 MHz i zgodny z europejską dyrektywą dla modułów radiowych R&TTE, co przyspiesza czas przygotowania i wdrożenia projektu oraz ma znaczący wpływa na obniżenie jego kosztu. Dodatkową zaletą nowego modułu firmy Microchip są jego miniaturowe wymiary – 17,8 mm×26,3 mm×3 mm. Dostępność 14 wyprowadzeń GPIO zapewnia elastyczność łączeniową i możliwość kontrolowania dużej liczby czujników oraz innych układów zewnętrznych. Moduł RN2483 jest dostarczony ze stosem protokołu LoRaWAN, więc można go łatwo połączyć z istniejącą, szybko rozwijającą się infrastrukturą LoRa Alliance – zarówno w zarządzanych prywatnie sieciach lokalnych (LAN), jak
Fotografia 1. Moduł RN2483 – pierwszy z serii bezprzewodowych modułów komunikacyjnych LoRa firmy Microchip ELEKTRONIKA PRAKTYCZNA 5/2015
Nowoczesne technologie łączności dla IoT i publicznych sieciach telekomunikacyjnych, w celu utworzenia rozległych sieci WAN małej mocy (LPWAN) o zasięgu ogólnokrajowym. Integracja stosu LoRaWAN umożliwia również połączenie z dowolnym mikrokontrolerem, który ma interfejs UART, w tym setek mikrokontrolerów PIC firmy Microchip. Dodatkowo, moduł RN2483 jest wyposażony w nieskomplikowany interfejs komend ASCII firmy Microchip dla łatwej konfiguracji i kontroli. Dzięki skalowalności, solidnej komunikacji, mobilności i zdolności do pracy w trudnych warunkach zewnętrznych, moduł RN2483 doskonale nadaje się do stosowania w szerokiej gamie bezprzewodowych aplikacji monitorowania i kontroli niewymagających dużej prędkości transmisji. Przykładowymi aplikacjami mogą być m.in. aplikacje inteligentnego miasta (czujniki oświetlenia ulicznego, czujniki ruchu), energii (inteligentny pomiar poboru prądu/wody/gazu) oraz przemysłowe/komercyjne/ domowe aplikacje m.in. HVAC, inteligentne urządzenia, systemy ochrony i oświetlenie.
Bluetooth 4.1 Projektanci wbudowanych, niedrogich aplikacji konsumenckich szukają rozwiązań „pod klucz”, które umożliwią im łatwe dodanie niskonapięciowej i łatwej w obsłudze łączności Bluetooth LE, kompatybilnej z setkami smartfonów, tabletów i komputerów PC. Przykładami
takich rozwiązań są m.in. urządzenia gospodarstwa domowego, urządzenia medyczne, podręczne, elektroniczne urządzenia codziennego użytku, zabawki, przywieszki do kluczy, piloty zdalnego sterowania, czujniki pulsu i zbliżeniowe, a nawet aplikacje przemysłowe. Inteligentny moduł Bluetooth LE typu RN4020 firmy Microchip (fotografia 2) zawiera wszystkie możliwości sprzętowe, programowe oraz certyfikacyjne, aby bezproblemowo spełnić wymagania End Product Listing (EPL) w ramach testowania zgodności QDID
Bluetooth. Moduł RN4020 ma wbudowaną antenę. Stopień nadajnika pracuje z mocą 7 dBm, natomiast odbiornik ma czułość -92,5 dBm, co umożliwia pracę z zasięgiem przekraczającym 100 metrów. A to wszystko w kompaktowej obudowie o wymiarach zaledwie 11,5 mm×19,5 mm×2,5 mm. Konstrukcja modułu RN4020 opiera się na rozległym doświadczeniu firmy Microchip w projektowaniu urządzeń Bluetooth. Moduł ma międzynarodowe certyfikaty, w tym Bluetooth Special Interest Group (SIG).
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
61
T E M AT N U M E R U LOKALNE SIECI RADIOWE
PODZESPOŁY
Fotografia 2. Inteligentny moduł Bluetooth LE typu RN4020 firmy Microchip Wbudowany stos Bluetooth Low Energy (BTLE) oraz energooszczędne profile SIG skracają czas wprowadzania produktów Bluetooth na rynek przy jednoczesnym zapewnieniu kompatybilności, eliminując wysokie koszty certyfikacji oraz zmniejszają ryzyko rozwoju projektu. Moduł ma wstępnie załadowane profile Microchip Low-energy Data Profile (MLDP) pozwalające projektantom w łatwo przesyłać dane dowolnego typu łączem BTLE. Ponieważ moduł RN4020 ma zintegrowane stosy komunikacyjne, może współpracować z dowolnym mikrokontrolerem z interfejsem UART, w tym z setkami mikrokontrolerów PIC. Moduł może również działać samodzielnie – bez dodatkowego mikrokontrolera. Samodzielna praca modułu jest możliwa dzięki unikalnej funkcji przetwarzania skryptów, która umożliwia konfigurowanie modułu za pomocą prostych komend ASCII, bez użycia specjalnych narzędzi oraz kompilowania kodu.
Moduły pracujące w paśmie 868 MHz Firma Digi International już od 1985 roku zajmuje się projektowaniem oraz produkcją wysokiej klasy urządzeń sieciowych oraz systemów wbudowanych, począwszy od popularnych modułów RF serii XBee, przez moduły SoM/ SoC, po przemysłowej klasy routery i bramy bezprzewodowe. Moduł XBee 868LP firmy Digi Int. (fotografia 3) to pierwszy, wielokanałowy, bezprzewodowy moduł pracujący w paśmie 868 MHz z zastosowaniem technologii Listen Before Talk (LBT) oraz Adaptive Frequency Agility (AFA), która wyszukuje wolny kanał komunikacyjny dzięki nasłuchiwaniu pasma radiowego przed rozpoczęciem transmisji, co zmniejsza poziom zakłóceń o poprawia zasięg.
Moduł wykorzystuje niskonapięciowy mikrokontroler EFM32G230 z rdzeniem ARM Cortex-M3 oraz układ transceivera RF typu ADF7023 firmy Analog Devices. Umożliwia osiągnięcie do 4 kilometrów zasięgu przy zastosowaniu dodatkowej anteny zewnętrznej, bądź do 1 kilometra przy zastosowaniu anteny zintegrowanej na płytce drukowanej. Wersja programowalna modułu oddaje do dyspozycji aplikacji 32 kB pamięci Flash, 2 kB pamięci RAM oraz rdzeń taktowany częstotliwością do 50 MHz. Ponadto, moduł może pracować w topologiach: DigiMesh, Repeater, Point-topoint, Point-to-multipoint oraz Peer-to-peer. Dzięki wspólnemu footprintowi rodziny XBee, moduły mogą być z łatwością zamiennikiem dla aplikacji pracujących wcześniej na bazie komunikacji Wi-Fi lub ZigBee. Moduły XBee 868LP, tak jak inne z rodziny Xbee, są wstępnie skonfigurowane i gotowe do działania niemal natychmiast po wyjęciu z pudełka. Idealnym zastosowaniem modułów XBee są m.in. inteligentne aplikacje liczników Smart Grid, Smart Home, które w połączeniu z odpowiednimi bramkami firmy Digi dają m.in. możliwość zdalnego zbierania danych oraz sterowania urządzeniami oddalonymi o setki kilometrów. Przykładem takiej aplikacji może być chociażby scentralizowany system sterowania oświetleniem ulicznym, które jest precyzyjnie zsynchronizowane z porami dnia przynosząc znaczne korzyści w postaci chociażby oszczędności energii elektrycznej. Dodatkową zaletą takiego systemu jest możliwość automatycznego raportowania wszelkich awarii. Innym przykładem jest system zdalnego monitorowania zasobów np. paliw, smarów czy olejów motoryzacyjnych, znajdujących się w zbiornikach na stacjach benzynowych, stacjach kontroli pojazdów, serwisach. Zastosowanie czujników ultradźwiękowych rozmieszczonych w każdym zbiorniku, w połączeniu z modułami XBee pozwala na monitorowanie w czasie rzeczywistym poziomu płynów w zbiornikach. Moduły XBee zapewniają bezpieczną i niezawodną łączność bezprzewodową, a pomiary dokonane przez czujniki są wysyłane z modułów XBee do bram ConnectPort, które przekazują zebrane informacje do platformy Digi Device Cloud za pośrednictwem łączności kablowej, komórkowej, lub nawet satelitarnej. Daje to nieocenione korzyści dla firm i przedsiębiorstw płynące m.in. z możliwości zarządzania zaopatrzeniem i wytyczaniem odpowiednich zoptymalizowanych tras zaopatrzenia.
Sigfox
Fotografia 3. Moduł bezprzewodowy XBee 868LP firmy Digi International
62
Pokrycie zasięgiem wielkich obszarów w niskonapięciowych aplikacjach Internet of Things o małej przepustowości, nie może być osiągnięte za pomocą standardów GPRS lub LTE. Dlatego też ta luka została wypełniona przez Sigfox – rozwiązanie łączności bezprzewodowej działającej na terenie Europy
Fotografia 4. Układ AX-Sigfox firmy Axem dla sieci Sigfox w nielicencjonowanym paśmie częstotliwości 868 MHz. Wykorzystanie wąskiego pasma (Ultra Narrow Band) pozwala na budowanie sieci energooszczędnych o małej szybkości i zasięgu krajowym. Francuska firma Sigfox – pomysłodawca rozwiązania – jest jednocześnie operatorem sieci dla aplikacji IoT dysponującym wedle danych na koniec 2014 roku blisko 1300 antenami. Szwajcarska firma Axsem, wyspecjalizowany producent mikrokontrolerów RF, opracowała układ AX-Sigfox (fotografia 4) umożliwiający transmisję danych w sieci Sigfox przez dowolną aplikację, przy wykorzystaniu zaledwie 2,6 cm2 powierzchni na płytce drukowanej (20 mm×13 mm). Układ może również pracować autonomicznie kontrolując niewielkie sieci sensorów. AX-Sigfox jest zaprogramowany do natychmiastowego działania, a dodatkowo może obsłużyć program użytkownika. AX-Sigfox jest układem RF typu SoC bazującym na mikrokontrolerze AX8052 o bardzo małym poborze mocy oraz transceiverze AX5043 w obudowie o wymiarach 7 mm×5 mm. Układ może być sterowany za pomocą interfejsu poleceń Sigfox AT, który jest dostępny za pośrednictwem portu UART. Dla użytkowników, którzy nie chcą drugiego mikrokontrolera w swoim systemie, Axsem oferuje dostęp do biblioteki Sigfox poprzez interfejs API. Ponadto, mikrokontroler ma 64 kB pamięci Flash, z czego ponad 32 kB są dostępne dla aplikacji niestandardowej, która może zostać opracowana za pomocą zintegrowanego środowiska programistycznego AXCode::Blocks IDE firmy Axsem. Mikrokontroler jest wyposażony w wiele bloków funkcjonalnych, takich jak m.in. interfejsy SPI Master, UART, GPIO, zegar RTC, przetworniki A/C i C/A oraz czujnik temperatury, które są dostępne dla programu użytkownika. Część AX-Sigfox odpowiedzialna za transmisję radiową korzysta z układu AX5043 mającego najniższy pobór mocy w swojej klasie. AX5043 może sprzętowo modulować i demodulować protokół Sigfox, co skutkuje odciążeniem mikrokontrolera głównego. Moc nadajnika wynosząca +14 dBm może być osiągnięta przy poborze prądu zaledwie 45 mA. Odbiornik wymaga do zasilania jedynie 10 mA przy napięciu zasilającym z zakresu 1,8…3,6 V. Wydajność pozostaje taka sama, niezależnie od napięcia zasilania. ELEKTRONIKA PRAKTYCZNA 5/2015
W artykule prezentujemy interesujący mikrokontroler CC2650 o jego zestaw startowy. Mikrokontroler jest przeznaczony do tworzenia urządzeń komunikujących się drogą radiową. W związku z tym jest zoptymalizowany pod kątem wydajności i oszczędzania energii oraz ma wbudowany transciver radiowy pracujący w paśmie ISM 2,4 GHz. Transceiver RF jest kompatybilny ze standardami Bluetooth Low Energy 4.1 oraz IEEE 802.15.4 PHY i MAC (protokół ZigBee). W 2006 roku firma Texas Instruments kupiła producenta układów radiowych – norweską firmę Chipcon. W wyniku tej transakcji do oferty Texasa wprowadzono dobrze znane konstruktorom transceivery z serii CC1x pracujące w paśmie ISM z częstotliwością nośną 433 lub 868 MHz, jednak firma TI na tym nie zaprzestała. Oprócz wspomnianych układów, nadal są prowadzone prace owocujące wprowadzeniem do oferty firmy mikrokontrolerów z wbudowanym układem
Fotografia 1. Zestaw startowy CC2650DK
radiowym (CC430: ISM<1 GHz, RF430: NFC/RFID, CC1x: ISM<1 GHz, CC2xx: ISM 2,4 GHz, CC3x: Wi-Fi). Jednym z nowych produktów jest wielozadaniowy mikrokontroler CC2650, który może min.: pracować w sieciach Bluetooth Smart, ZigBee oraz 6LoWPAN. Aby ułatwić zapoznanie się z możliwościami mikrokontrolera CC2650 oraz zastosowanie go we własnej aplikacji, firma Texas Instruments wyprodukowała zestaw startowy CC2650DK.
Fotografia 3. Płyta główna SRF06EB z zamontowanym modułem rozszerzeń CC2650EM
CC2650DK Zestaw startowy CC2650DK składa się z dwóch płyt głównych SmartRF06 Evaluation Board (SRF06EB) oraz dwóch modułów rozszerzeń CC2650 Evaluation Module (CC2650EM). Zawartość zestawu pokazano na fotografii 1. Dodatkowo do zestawu zostały dołączane dwa przewody mikro USB oraz instrukcja użytkownika. Na płycie głównej SRF06EB zamontowano monochromatyczny wyświetlacz LCD DOGM128E-6 o rozdzielczości 128×64 pikseli, gniazdo dla kart microSD, trójosiowy akcelerometr BMA250, analogowy czujnik światła SFH5711, zestaw pięciu przycisków (klawiatura użytkownika), cztery diody LED (diody użytkownika). Płyta główna została wyposażona w przycisk zerowania, podzespoły emulatora XDS100v3, złącza do podłączenia modułu rozszerzeń, koszyczki do montażu baterii. Rozmieszczenie elementów na płycie SRF06EB pokazano na rysunku 2.
Rysunek 2. Płyta główna SRF06EB ELEKTRONIKA PRAKTYCZNA 5/2015
63
T E M AT N U M E R U
Zestaw startowy dla mikrokontrolera CC2650
LOKALNE SIECI RADIOWE
PODZESPOŁY
T E M AT N U M E R U LOKALNE SIECI RADIOWE
PODZESPOŁY
Fotografia 4. Aplikacja startowa. Konfiguracja CC2650DK a) nadajnik i odbiornik b) nadajnik c) odbiornik
Tabela 1. Parametry mikrokontrolera CC2650 Procesor aplikacyjny (użytkownika) Rdzeń
ARM Cortex – M3 maksymalna częstotliwość zegara CPU: 48 MHz
Napięcie zasilające
2,1…3,6 V lub 1,8 V
Linie IO / obudowa
31 multipleksowanych IO /48QFN o wymiarach 7 mm×7 mm
Pamięć
SRAM – 20 kB FLASH – 128 kB CACHE – 8 KB ROM – bootloader, sterowniki urządzeń peryferyjnych
System zegarowy
8×16-bitowe albo 4×32-bitowe liczniki z funkcją PWM
Komunikacja szeregowa
UART, 2×SSI, 1×I2C
Pobór prądu
61 mA/MHz (tryb aktywny) 1 mA (tryb uśpienia) z obsługą RTC i odświeżaniem RAM 0,1 mA (tryb wyłączenia)
Inne
I2S, Watchdog, AES128, generator liczb losowych TRNG, 32 kanały uDMA, RTC, kontroler napięcia zasilania oraz temperatury, obsługa do 8 przycisków pojemnościowych
Rdzeń
ARM Cortex-M0
Pamięć
SRAM – 4 kB ROM – kontroler BLE, IEEE 802.15.4 MAC
Pasmo pracy modułu radiowego
2,4 GHz
Moc nadajnika radiowego
Programowalna do +5 dBm
Czułość odbiornika radiowego
–97 dBm dla Bluetooth Low Energy –100 dBm dla 802.15.4
Wspierane standardy
Bluetooth Low Energy, IEEE 802.15.4
Pobór prądu
5,9 mA (tryb aktywny) – odbiór 6,1 mA (tryb aktywny) nadawanie z mocą 0 dBm 9,1 mA (tryb aktywny) nadawanie z mocą +5 dBm
Procesor RF
Procesor kontrolera czujników Rdzeń
Prawdopodobnie zmodyfikowana wersja MSP430
Pamięć
SRAM – 2 kB
Moduł analogowy
12-bitowy przetwornik A/C, 8 kanałów pomiarowych, wydajność do 200 kS/s, wbudowany generator napięcia referencyjnego, komparator analogowy
Interfejsy
SPI, I2C – komunikacja z czujnikami
Inne
Programowalne źródło prądowe (constant current source), wykrywanie zdarzeń czasowych ( time to digital converter), konfigurowanie za pomocą aplikacji Sensor Controller Studio
64
ELEKTRONIKA PRAKTYCZNA 5/2015
Zestaw startowy dla mikrokontrolera CC2650 radiowy (Bluetooth Low Power BLE lub IEEE 802.15.4) i kanał transmisji radiowej. W nadajniku określamy moc emisji, liczbę pakietów oraz częstotliwość ich przesyłania. Po uruchomieniu nadajnika w odbiorniku można monitorować liczbę utraconych pakietów oraz pakietów zawierających błędy. Kolejne kroki podczas konfigurowania toru testowego pokazano na fotografii 4.
Mikrokontroler CC2650
Rysunek 5. Schemat blokowy mikrokontrolera CC2650 Na płycie rozszerzeń CC2650EM, poza mikrokontrolerem CC2650 w obudowie zajmującej powierzchnię 7 mm×7 mm, zamontowano antenę SMD oraz złącze SMA do przyłączenia anteny zewnętrznej (użycie anten konfigurujemy za pomocą rezystorów R10 i R11). Wygląd płyty głównej SRF06EB z zamontowanym modułem rozszerzeń CC2650EM pokazano na fotografii 3. Zestaw startowy może być zasilany z portu USB komputera PC albo z baterii/zewnętrznego zasilania. Źródło zasilania konfigurujemy przełącznikiem SOURCE (pozycje USB oraz BAT). Przy zasilaniu z portu USB do mikrokontrolera CC2650 jest dostarczane
napięcie o 3,3 V. W przypadku użycia baterii/zewnętrznego zasilania napięcie zasilania mikrokontrolera CC2650 jest stabilizowane do wartości 2,1 V. Aby „ominąć” stabilizator napięcia oraz zasilić CC2650 bezpośrednio z baterii/zewnętrznego zasilania w złączu regulator bypass montujemy zworkę. Mikrokontroler CC2650 ma fabrycznie zapisaną w pamięci aplikację testową służącą do pomiaru jakości i zasięgu sygnału radiowego. Jest ona uruchamiana natychmiast po załączeniu zasilania. Wówczas jeden kompletów (SFR06EB+CC2650EM) należy skonfigurować w roli nadajnika, natomiast drugi odbiornika. Wybieramy protokół
Sercem zestawu jest mikrokontroler CC2650 z rdzeniem ARM Cortex-M3. Wyposażono go w szereg modułów peryferyjnych (UART, AES, Watchdog i inne). Mikrokontroler ma wbudowany tor radiowy wyposażony w rdzeń ARM Cortex-M0 i zgodny ze standardami Bluetooth Low Energy oraz IEEE 802.15.4. Budowa toru radiowego ułatwia implementowanie standardów sieciowych Bluetooth Smart, ZigBee i 6LoWPAN, ZigBee RF4CE. Dodatkowo, w mikrokontrolerze CC2650 zaimplementowano energooszczędny kontroler czujników (prawdopodobnie wykorzystano przy tym rdzeń mikrokontrolera MSP430). Współpracuje on z głównym rdzeniem mikrokontrolera CC2650 i jest wykorzystywany w trybach oszczędzania energii. Schemat blokowy CC2650 pokazano na rysunku 5. Parametry mikrokontrolera umieszczono w tabeli 1. Mikrokontroler CC2650 jest programowany za pomocą Code Composer Studio (od wersji 6.1) i/lub kompilatora IAR Embedded Workbench for ARM (od wersji 7.30.3). Parametry pracy modułu radiowego możemy konfigurować za pomocą aplikacji SmartRF Studio (od wersji 7.0). Do konfigurowania kontrolera czujników przygotowano aplikację Sensor Controller Studio.
Podsumowanie Zestaw startowy CC2650DK jest oferowany w cenie 299 USD. Nie jest to niska cena, ale w zamian otrzymujemy kompletny zestaw rozwojowy do pracy z wieloma standardami transmisji bezprzewodowej. Dodatkowym atutem przemawiającym za zestawem CC2650DK jest fakt, że płyta główna SFR06EB jest kompatybilna z modułem rozszerzeń dla mikrokontrolera CC2538 (ZigBee) oraz układu CC2592 (range extender – wzmacniacz sygnału 2,4 GHz). Nazwa modułu rozszerzeń to CC2538-CC2592EM.
Łukasz Krysiewicz, EP
REKLAMA
http://sklep.avt.pl ELEKTRONIKA PRAKTYCZNA 5/2015
65
T E M AT N U M E R U LOKALNE SIECI RADIOWE
PODZESPOŁY
IoT według u-bloxa Internet Rzeczy (Internet of Things) – idea świata, w którym otaczające nas urządzenia komunikują się między sobą, wysyłają informacje i umożliwiają zdalną konfigurację. Świata, w którym użytkownik ma możliwość odczytu i analizy danych z coraz większej ilości czujników, w celach poprawy wydajności lub czysto statystycznych.
Według różnych źródeł liczba urządzeń wyposażonych w możliwość komunikacji rośnie w bardzo szybkim tempie, a do roku 2020 może wynosić kilkadziesiąt miliardów – po kilka przypadających na każdego człowieka na Ziemi, więc najlepiej, aby mogły się one ze sobą łączyć w sposób nieskomplikowany, niepotrzebujący dużo energii, jednak dobór sposobu komunikacji zależy od wymagań aplikacji: • Nieograniczony odległością – nadajniki wyposażone w GSM, UMTS, LTE – łączące się bezpośrednio z Internetem, kosztem opłat za transmisję danych i większego zapotrzebowania na energię. • Ostatnie 100 metrów – urządzenia działające wg standardów IEEE z grupy oznaczonej numerem 802 (Bluetooth, Wi-Fi itp.) – darmowy transfer, często z bardzo małym zużyciem energii.
Oferta u-bloxa, renomowanego szwajcarskiego producenta modułów do aplikacji przemysłowych, obejmuje oba wypadki. Od wielu lat odbiorniki satelitarne GNSS („MAX”, „NEO”, „LEA”, „AMY”) i produkty do komunikacji komórkowej (GSM: „LEON”, „SARA”; UMTS: „LISA”, „SARA”; LTE: „TOBY”) cieszą się zaufaniem klientów na całym świecie, a po wykupieniu znanej szwedzkiej firmy Connect Blue, oferta poszerzyła się o moduły do obsługi „ostatnich metrów”.
Sinozęby Standard Bluetooth stał się wszechobecny. Zgodnie z założeniami swoich twórców, połączył ze sobą wiele urządzeń. Obecnie jest dostępny w większości komputerów przenośnych, wszystkich telefonach
Fotografia 1. Moduł OLP425 – BLE z czujnikami i przykładowa aplikacja
66
i tabletach. Z tego względu coraz więcej urządzeń peryferyjnych jest również wyposażonych w moduł Bluetooth. Standard, który początkowo był rozwijany tylko w kierunku jak najwyższej prędkości transmisji danych, obecnie jest podzielony na dwa – Bluetooth Classic (ver.2.x, ver.3.x) oraz Bluetooth Low Energy (BLE, ver.4.x, Bluetooth Smart). W wersji klasycznej nadal głównym założeniem aplikacyjnym jest przesyłanie dużych ilości informacji (pliki, audio itp.) i kontrola tych transmisji, nawet kosztem poboru mocy i czasu nawiązania połączenia (moduły Bluetooth Classic z oferty u-blox wymieniono w tabeli 1). W BLE najistotniejszy jest niski pobór mocy, a w rzeczywistości długi czas działania, osiągnięty za pomocą bardzo krótkiego czasu potrzebnego do nawiązania połączenia (rzędu milisekund), założenia wysyłania krótkich pakietów i trybowi uśpienia, w którym moduł ma przebywać przez większość czasu. Przy takim zastosowaniu urządzenia Bluetooth Smart mogą działać latami zasilane tylko z baterii zegarkowej i do takich aplikacji u-blox przygotował pokazany na fotografii 1 moduł OLP425. Jest to niezależny moduł, który nie potrzebuje dodatkowych komponentów, a możliwość fabrycznego wyposażenia go w uchwyt baterii, czujnik temperatury, akcelerometr i diody LED (zieloną i czerwoną) czyni integrację bardzo łatwą. Producent dodatkowo udostępnia kody źródłowe oraz przykładową aplikację odczytującą wskazania (dostępna na system iOS). Bliźniaczy moduł OLS425 pozwala ELEKTRONIKA PRAKTYCZNA 5/2015
IoT według u-bloxa Tabela 1. Moduły Bluetooth Classic w ofercie u-blox Wersja Bluetooth Profile Zasięg Interfejs Maksymalna prędkość transmisji Wyprowadzenia I/O Przepustowość Maksymalna liczba urządzeń slave
Fotografia 2. Moduł ODIN-W262, ze zintegrowaną anteną na emulowanie połączenia SPP, znanego z klasycznej wersji Bluetooth, używając standardu BLE.
Wireless LAN Kolejną nowością w ofercie u-blox są moduły Wi-Fi. Przeznaczone na rynek automotive: EMMY (Wi-Fi, DualMode Bluetooth oraz NFC), ELLA (Wi-Fi i Bluetooth v3.0+HS) oraz przeznaczone na rynek przemysłowy ODIN (Wi-Fi oraz Dual-Mode Bluetooth). Z tej oferty, poza ODIN-W26, wszystkie moduły WiFi potrzebują zewnętrznego Hosta odpowiedzialnego za ich działanie, przechowującego stos TCP/IP oraz sterowniki Wi-Fi potrzebne do prawidłowej pracy. Odpowiednie jego zintegrowanie wymaga dużego doświadczenia, wiele pracy
OBS418 2.1 SPP, DUN Antena wewn.: 75 m Antena zewn.: 150 m UART 460,8 kb/s
OBS419 2.1+EDR SPP, DUN, PAN Antena wewn.: 75 m Antena zewn.: 150 m UART 1,25 Mb/s
OBS421 Dual Mode SPP, DUN, PAN, GATT Antena wewn.: 300 m Antena zewn.: 300 m UART 1,5 Mb/s
9 cyfrowych 350 kb/s 1
9 cyfrowych 950 kb/s 3
9 cyfrowych 1,3 Mb/s 7
a przede wszystkim generuje ogromne koszty związane z badaniami i certyfikacją końcowego urządzenia. Mając to na uwadze u-blox przygotował bardzo ciekawy produkt: ODIN-W26 (fotografia 2), który jest modułem niezależnym, zawierającym już Hosta, oferowanym w dwóch wersjach: z anteną lub dwoma złączami U.FL. Mikrokontroler Cortex-M4, na którym ODIN jest oparty, pozwala na wykorzystanie części zasobów na aplikację użytkownika, a więc bez dodatkowych kosztów można stworzyć bramę internetową. Dodatkową zaletą jest nadzór nad wieloma równoległymi połączeniami (WiFi i Bluetooth), tak aby się nie zakłócały. Stosowanie tego modułu przede wszystkim nie wymaga ponownego przeprowadzania drogich i kłopotliwych testów RF. Do aplikacji montowanych w pojazdach u-blox przygotował również projekt referencyjny, prostej w integracji
i obsłudze bramy internetowej opartej na modułach TOBY (LTE) oraz ELLA (WiFi/Bluetooth). Połączenie tych dwóch produktów pozwala na łatwe sterowanie komunikacją za pomocą komend AT z procesora, na którym jest aplikacja użytkownika. Sterownik Wi-Fi, jak i stos TCP/IP, które zawierałby Host, znajdują się w TOBY. Opcjonalnie można podłączyć odbiornik GNSS, również sterowany poprzez moduł LTE. Projekt referencyjny bramy internetowej LTE/Wi-Fi, z modułem GNSS pokazano na rysunku 3.
Internet of Things Czy konieczne jest wysyłanie dużych ilości danych, czy tylko małych pakietów? Stacjonarnie czy też mobilnie? Rozwiązania do tych wszystkich aplikacji znajdują się w portfolio szwajcarskiego producenta modułów, u-bloxa. Pomoc w ich doborze i lokalne wsparcie oferuje dystrybutor w Europie Wschodniej – Microdis Electronics.
Mariusz Ciesielski Product Manager Microdis Electronics
Rysunek 3. Projekt referencyjny bramy internetowej LTE/Wi-Fi, z modułem GNSS ELEKTRONIKA PRAKTYCZNA 5/2015
67
PODZESPOŁY
MSP432 – mikrokontroler do nowoczesnych aplikacji Pod koniec marca firma Texas Instruments wprowadziła do oferty interesujący mikrokontroler. Jest on 32-bitowym następcą 16-bitowego MSP430 i dlatego nadano mu nazwę MSP432. Co ciekawe, pomimo iż MSP430 ma rdzeń natywny opracowany przez Texas Instruments, to jego następcę wyposażono w rdzeń firmy ARM – Cortex-M4F. nowe wymagania odnośnie do mocy obliczeniowej i zdolności łączeniowych procesora z otoczeniem. Schemat blokowy mikrokontrolera MSP432 pokazano na rysunku 1. Jego rdzeń Cortex-M4F jest taktowany przebiegiem o częstotliwości 48 MHz. Oprócz dostępnej standardowo w tej architekturze jednostki wspomagającej obliczenia zmiennopozycyjne, producent zadbał o wyposażenie mikrokontrolera, które podwyższa jego walory użytkowe: • 32-bitowa, sprzętowa jednostka mnożąca, za której pomocą można uzyskać 32- lub 64-bitowy wynik ze znakiem lub bez niego. • Funkcja dodawania lub odejmowania realizowana po wykonaniu mnożenia. • 32-bitowa, sprzętowa jednostka wykonująca operację dzielenia. • Wsparcie dla arytmetyki nasyceniowej. • Rozszerzenie DSP za pomocą: 16/32-bitowego układu MAC; jednocyklowego, podwójnego, 16-bitowego układu MAC (multiply and accumulate); 8/16-bitowy SIMD (single instruction, multiple data – upraszczając, możliwość jednoczesnego wykonywania kilku instrukcji). Osoby używające mikrokontrolera MSP430 na pewno rozpoznają niektóre bloki funkcjonalne dostępne w MSP432, ponieważ przeniesiono je z tego mikrokontrolera (rysunek 2) włączając w to bibliotekę sterowników urządzeń I/O, zegar czasu rzeczywistego, timer/ generator przebiegu PWM, timer Watchdog, interfejs JTAG, jednostkę szyfrującą zgodnie z algorytmem AES-256, interfejsy: UART, SPI, I2C; szereg modułów analogowych, takich jak komparator, źródło napięcia odniesienia, czujnik temperatury oraz wyprowadzenia I/O z funkcjonalnością interfejsu dotykowego. Nowy mikrokontroler pobiera bardzo mały prąd – zaledwie 95 µA/MHz w trybie aktywnym oraz 850 nA w trybie Rysunek 1. Schemat blokowy mikrokontrolera MSP432 Opracowanie przez firmę Texas Instruments mikrokontrolera MSP432 można podsumować słowami „idzie nowe”. Projektanci firmy przewidują, że ze względu na wymagania nowoczesnych aplikacji, w niedalekiej przyszłości użytkownicy MSP430 będą musieli zastosować procesor o bardziej przyszłościowej, wydajnej, energooszczędnej architekturze. Każda osoba zajmująca się układami energooszczędnymi nadzorowanymi przez mikrokontroler wie, że kluczowe znaczenie dla niej ma prędkość wykonywania operacji, ponieważ dzięki temu procesor może bardzo krótko po wyjściu z uśpienia przebywać w trybie aktywnym (przed ponownym uśpieniem), przez co maleje średni pobór energii. Nie dziwi więc fakt, że w celu opracowania energooszczędnego mikrokontrolera projektanci firmy TI zdecydowali się na zastosowanie rdzenia Cortex-M4F, który jeszcze został dodatkowo przez nich „tuningowany”. Jest to na pewno znacznie lepszy wybór, niż rdzeń Cortex-M0 (a nawet Cortex-M0+) opracowany przez firmę ARM w 2008 r. z myślą o urządzeniach, w których dotychczas były stosowane mikrokontrolery 8- i 16-bitowe. Oczywiście, ten rdzeń jest funkcjonalny i z powodzeniem może być stosowany w różnych aplikacjach, ale nie wolno zapominać, że nadciąga era technologii Internet of Things, która wprowadza zupełnie
68
Arytmetyka nasyceniowa (saturated arithmetic) to sposób przeprowadzania obliczeń na całkowitych liczbach binarnych, w której reakcją na przekroczenie zakresu liczb jest przypisanie wynikowi górnej lub dolnej granicy zakresu. Arytmetyka ta znajduje zastosowanie m.in. w DSP (m.in. przetwarzanie dźwięku i obrazu), upraszcza programy i przyśpiesza wiele algorytmów. Dla porównania arytmetyka powszechnie stosowana w komputerach to tzw. arytmetyka modularna (ang. wraparound), tj. z wyniku brana jest zawsze określona liczba najmłodszych bitów, zaś fakt przekroczenia zakresu jest np. sygnalizowany przez procesor poprzez ustawienie określonych bitów w rejestrze flag – wykrywanie tej sytuacji i korygowanie wyników spoczywa na programie. Obliczenia z nasyceniem są dostępne w popularnych procesorach mających rozszerzenia MMX i SSE.
uśpienia. Aby osiągnąć tak dobry wynik, firma TI użyła procesu wytwórczego CMOS 90 nm umożliwiającego wykonanie struktur półprzewodnikowych układów scalonych o niewielkim prądzie upływu i funkcjonujących w rozszerzonym zakresie napięcia 1,62…3,7 V (typowo w podobnych mikrokontrolerach ten zakres rozciąga się od 1,8 do 3,5 V). Rozszerzenie zakresu wpływa korzystnie na pobór prądu, a dodatkowo układ może być zasilany z baterii o wyższym napięciu. W układzie dokonano również szeregu „zabiegów” mających na celu zapewnienie jak najmniejszego poboru energii. Niektóre z nich są oczywiste, inne wymagały pomysłowości i zastosowania pewnych specyficznych rozwiązań. Aby obniżyć pobór mocy podczas operacji wykonywanych na pamięci RAM, należy oddać użytkownikowi do dyspozycji tyle pamięci operacyjnej wewnątrz układu scalonego, ile wymaga aplikacja, ponieważ zastosowanie pamięci zewnętrznej zwykle podwyższa zużycie energii. Dlatego firma zaimplementowała obszerną pamięć RAM, aktualnie mieszczącą 64 kB, która w kolejnych mikrokontrolerach będzie rozbudowana do 256 kB. Dodatkowo, pamięć RAM wykonano w taki sposób, że niepotrzebne w trybie uśpienia banki pamięci ELEKTRONIKA PRAKTYCZNA 5/2015
MSP432 – mikrokontroler do nowoczesnych aplikacji
Rysunek 2. Wspólne bloki funkcjonalne MSP430 i MSP432 MSP432 MCU Pobór prądu
Active
LPMO
95 µA/MHz 65 µA/MHz (DC/DC), (DC/DC), 166 µA/ 100 µA/ MHz (LDO) MHz (LDO)
Low Frequency LPMO
LPM3
70 µA
850 nA
LPM3.5 (wyłą- LPM 4.5 (wyłączenie, z RTC) czenie, bez RTC) <670 nA
<100 nA
Rysunek 3. Energooszczędne tryby pracy MSP432 można odłączyć od zasilania, co obniża pobór o 30 nA na pojedynczy bank. Dla przykładu, mogą w ten sposób być wyłączone obszary pamięci RAM normalnie używane do przechowywania zmiennych tymczasowych lub jako bufory transmisyjne. Na energooszczędność pamięci RAM wpływa też zastosowanie 8-kanałowego kontrolera DMA, który po pierwsze – odciąża CPU, a po drugie – eliminując konieczność jego włączania, ogranicza pobierany prąd. Pamięć Flash układu MSP432 zorganizowano w dwa niezależne banki, co pozwala na równoczesne wykonywanie operacji odczytu jednego banku i kasowania zawartości innego. Jest to szczególnie użyteczne podczas aktualizowania firmware urządzenia lub akwizycji danych. Dzięki tej funkcjonalności również osiągnięto zmniejszenie poboru energii poprzez skrócenie czasu wykonywania aktualizacji Flash. Zamiast przechowywać sterowniki urządzeń lub biblioteki kodu w pamięci Flash, producent zapisał je w pamięci ROM. Oprócz zmniejszenia w ten sposób wielkości struktury układu (komórki pamięci ROM są znacznie mniejsze niż pamięci Flash), osiągnięto dalsze zmniejszenie poboru energii – aż o 35% w porównaniu do układu, który zawierałby DriverLib w pamięci Flash. Dodatkowo, pamięć ROM ma czas dostępu blisko 2-krotnie krótszy od Flash, co przyśpiesza wykonywanie programu i ułatwia realizowanie operacji czasu rzeczywistego. W strukturze MSP432 zaimplementowano dwa stabilizatory: liniowy LDO oraz przetwornicę DC/DC. Gdy jest używany LDO, to mikrokontroler szybciej wychodzi z trybu uśpienia. ELEKTRONIKA PRAKTYCZNA 5/2015
Gdy jest używana przetwornica DC/DC, to czas przejścia do trybu aktywnego wydłuża się, jednak przetwornica ma większą sprawność, sięgającą nawet 95%. Oba źródła zasilania mają swoje wady i zalety, więc producent oddał do rąk użytkownika możliwość decydowania o wyborze zasilacza i przełączania się pomiędzy nimi, zależnie np. od trybu pracy i wymagań aplikacji. 14-bitowy przetwornik A/C pobiera jedynie 375 µA prądu jednocześnie próbkując 32 kanały wejściowe z prędkością do 1 MS/s. Jest to około pięciokrotnie szybciej od najszybszego MSP430, przy jednoczesnym zachowaniu jego energooszczędności. Jednoczesne próbkowanie wejść pozwala na skrócenie czasu pracy mikrokontrolera i dalsze obniżenie poboru energii. Jakby tego było mało, CPU mikrokontrolera MSP432 pobiera z predykcją do 8 instrukcji z pamięci programu w tym samym czasie, co zmniejsza liczbę cykli odczytu pamięci Flash, podwyższając prędkość wykonywania aplikacji oraz obniżając pobieraną moc. Zmieniono też podejście do trybów pracy energooszczędnej – teraz procesor nie tylko może przebywać w którymś z 5 trybów, ale również dynamicznie zmieniać je w trakcie pracy aplikacji (rysunek 3). Firma TI nie ograniczyła swoich działań jedynie do ograniczenia poboru mocy przez nowy mikrokontroler. Jako część oprogramowania narzędziowego jest dostarczany program EnergyTrace+, który mierzy i wyświetla profil energetyczny aplikacji oraz pomaga zoptymalizować oprogramowanie użytkownika pod kątem zużycia energii. Ciekawostkę stanowi
metoda zastosowana do pomiaru poboru prądu. Zwykle mierzy się go metodą techniczną za pomocą pomiaru spadku napięcia na rezystorze pomiarowym. Tu jest inaczej – kontrolowana przez oprogramowanie przetwornica DC/DC wytwarza zasilanie dla układu. Czas trwania impulsów jej przebiegu PWM jest zależny od poboru energii przez mikrokontroler, więc pomiar poboru prądu jest wykonywany poprzez pomiar czasu trwania impulsu i odpowiednią konwersję wyniku. Narzędzia dla mikrokontrolera MSP432 są dostępne w chmurze TI’s Cloud IDE, która zawiera między innymi środowisko Code Composer Studio (CCS) Cloud IDE V1.0 oraz program narzędziowy Resource Explorer. Środowisko CCS Cloud IDE jest uruchamiane w przeglądarce, a przez to – pod kontrolą dowolnego systemu operacyjnego. Za jego pomocą można tworzyć, edytować i kompilować projekty on-line. Środowisko IDE pracujące w chmurze jest uzupełnieniem „tradycyjnego” Code Composer Studio i jest ukłonem firmy TI w stronę nowoczesnych technologii i innego stylu pracy programistów, niż było to przed laty. Resource Explorer to oprogramowanie służące do wyświetlania oraz dostępu do zasobów internetowych, bez konieczności ich pobierania na dysk lokalny komputera PC. Próbki układów MSP432P401RIPZ są dostępne za pomocą strony internetowej firmy TI oraz u jej dystrybutorów. Kolejne układy mikrokontrolerów będą produkowane z różnym wyposażeniem, w obudowach o różnej wielkości, z pamięcią Flash mieszczącą do 256 kB. Konstruktorzy i programiści mogą do pracy wykorzystać MSP-EXP432P401R LaunchPad (fotografia 4) dostępną w cenie ok. 13 USD lub płytkę MSP-TS432PZ100 w cenie ok. 89 USD. Mimo iż w wielu materiałach reklamowych firma TI porównuje MSP432 ze starszym MSP430, to produkcja procesorów 16-bitowych nadal będzie kontynuowana, a rolą nowego procesora nie jest jej zastąpienie, a jedynie uatrakcyjnienie oferty firmy. Zgodnie z zapowiedziami TI, rozwój MSP430 nadal będzie kontynuowany, równolegle do rozwoju MSP432.
Jacek Bogusz, EP
Fotografia 4. MSP-EXP432P401R LaunchPad
69
PODZESPOŁY
Nowe, „graficzne” mikrokontrolery w rodzinie STM32F4 Mikrokontrolery z rodziny STM32F4 – ze względu na zastosowany w nich szybki i bardzo mocny sprzętowo rdzeń – są stosowane w aplikacjach wymagających dużej wydajności. Jednym z docelowych obszarów aplikacyjnych tych mikrokontrolerów są interfejsy graficzne, z myślą o których producent wprowadził specjalnie wyposażone mikrokontrolery.
Fotografia 1. Zestaw DISCOVERY z mikrokontrolerem STM32F429 wyposażono w kolorowy wyświetlacz LCD z touch-panelem
70
Pierwszym w rodzinie STM32 mikrokontrolerem „graficznym” był STM32F429, który szybko zdobył popularność, głównie dzięki zestawowi startowemu DISCOVERY (fotografia 1) wyposażonemu w kolorowy wyświetlacz LCD-TFT 2,4 o przekątnej cala (240×320 px) z naklejonym touch-panelem. Mikrokontroler zastosowany w zestawie współpracuje z zewnętrzną pamięcią SDRAM (fotografia 2), która służy m.in. do przechowywania wyświetlanych obrazów. Zastosowanie zewnętrznej pamięci SDRAM uzupełnia wewnętrzną pamięć Flash o pojemności 2 MB oraz wewnętrzną pamięć SRAM o pojemności 256 kB, a maksymalna częstotliwość taktowania CPU wynosi 180 MHz. Dużą wydajność w aplikacjach graficznych mikrokontrolerey STM32F429/439
Dodatkowe informacje: Dodatkowe materiały i informacje o zestawie STM32F429I-DISCO są dostępne pod adresem http://www.st.com/stm32f4-discovery
Fotografia 2. Mikrokontroler w zestawie współpracuje z zewnętrzną pamięcią SDRAM, która spełnia rolę pamięci obrazu osiągają dzięki wbudowanemu koprocesorowi graficznemu Chrom-Art (DMA2D), który od strony konstrukcyjnej jest wyspecjalizowanym kanałem DMA. Koprocesor samodzielnie realizuje wiele podstawowych funkcji wspomagających wyświetlanie obrazów, w tym: wypełnianie zadanych obszarów ELEKTRONIKA PRAKTYCZNA 5/2015
Nowe, „graficzne” mikrokontrolery w rodzinie STM32F4
Rysunek 3. Ilustracja lokalizująca nowe typy mikrokontrolerów w dotychczasowym portfolio STM32F4 „Graficzne” mikrokontrolery STM32: • STM32F427/437: 180 MHz CPU/225 DMIPS, do 2 MB dwubankowej pamięci Flash, interfejs SDRAM, wbudowany Chrom-ART Accelerator, • STM32F429/439: 180 MHz CPU/225 DMIPS, do 2 MB dwubankowej pamięci Flash, interfejs SDRAM, wbudowane: Chrom-ART Accelerator oraz kontroler LCD-TFT, • STM32F469/479: 180 MHz CPU/225 DMIPS, do 2 MB dwubankowej pamięci Flash, interfejsy SDRAM i QSPI, wbudowane: Chrom-ART Accelerator, kontroler LCD-TFT oraz interfejs komunikacyjny MPI-DSI.
kolorem zdefiniowanym przez użytkownika, kopiowanie i przenoszenie fragmentów obrazu, konwersja formatów z bazą w CLUT (Colour Look-Up table) definiowaną przez użytkownika, nakładanie obrazów z opcjonalnym definiowaniem przeźroczystości itp. Nie jest to więc od strony funkcjonalnej „karta graficzna” w rozumieniu PC, ale doskonałe narzędzie wspomagające realizację typowych interfejsów graficznych w różnego rodzaju panelach HMI. Atutem mikrokontrolerów STM32F429 /439 w aplikacjach graficznych jest wspominana wcześniej, wbudowana pamięć Flash o dużej pojemności, która pozwala na przechowywanie w niej wielu obrazów QVGA. Przeciętnie do przechowania grafiki o wymiarach 320×240 pikseli w formacie RGB256c potrzebna jest pamięć o pojemności ok. 75 kB. Taki sam obraz w formacie RBG16b potrzebuje ok. 150 kB. W przypadku konieczności obróbki wyświetlanych obrazów pomocna może okazać się zewnętrzna pamięć SDRAM, która jest obsługiwana przez wbudowany w mikrokontrolery kontroler FMC (Flexible Memory Controller). Koprocesor DMS2D ma do niej dostęp, podobnie jak do pozostałych obszarów pamięci. Ponieważ „graficzna” propozycja producenta została ciepło przyjęta przez rynek, ELEKTRONIKA PRAKTYCZNA 5/2015
Rysunek 4. Schemat blokowy ilustrujący budowę interfejsu MIPI DSI pojawiły się kolejne mutacje mikrokontrolerów przeznaczonych dla takich aplikacji: nowe mikrokontrolery są oznaczone symbolami STM32F469 i STM32F479. Ich „lokalizację” w rodzinie STM32F4 pokazano na rysunku 3. Podstawowe elementy wyposażenia tych mikrokontrolerów są identyczne ze starszymi układami „graficznymi”, wyposażono je natomiast w nowatorski – w świecie mikrokontrolerów – interfejs graficzny MIPI DSI (Mobile Industry Processor Interface Display Serial Interface), coraz częściej stosowany w urządzeniach mobilnych. Schemat blokowy tego interfejsu pokazano na rysunku 4. Jego zaletą jest możliwość szeregowego transportu dużej ilości danych w krótkim czasie z wykorzystaniem – w warstwie fizycznej – interfejsu różnicowego, który minimalizuje poziom emitowanych zakłóceń EMC i jednocześnie jest odporny
na zakłócenia zewnętrzne. Konstruktorzy mikrokontrolerów STM32F469/479 wyposażyli interfejs DSI w konfigurowalny interfejs z jedną lub dwoma liniami danych oraz jedną linią taktująca (synchronizującą). W ten sposób do mikrokontrolera można dołączyć wyświetlacz LCD wyświetlający obraz w standardzie do 720p, odświeżany z częstotliwością do 30 Hz, z wykorzystaniem zaledwie 6 linii GPIO mikrokontrolera. Na rysunku 5 pokazano trzy możliwe w mikrokontrolerach STM32F469/479 konfiguracje interfejsów służących do komunikacji mikrokontrolera z wyświetlaczem LCD. Jak widać, najprostsze jest użycie interfejsu MIPI DSI, co nie tylko minimalizuje liczbę pinów wykorzystanych do transmisji danych i poziom zakłóceń i zmniejsza liczbę elementów niezbędnych do realizacji aplikacji – to wszystko przy zachowaniu możliwości wyświetlania obrazów wideo bez utraty jakości.
71
PODZESPOŁY Prezentowane w artykule mikrokontrolery są obecnie dostępne w ograniczonej liczbie modeli, ale producent deklaruje szybkie poszerzenie oferty, jej docelowy kształt przedstawiono na rysunku 6. Jak widać, gama planowanych modeli jest dość szeroka
i cieszy fakt, że firma STMicroelectronics ma na uwadze tanie aplikacje realizowane na 2-warstwowych płytkach drukowanych, gdzie można stosować obudowy LQFP. Sporo wskazuje na to, że na kolejne nowości w rodzinie STM32 nie będziemy długo
czekać, do czego producent tych mikrokontrolerów zdążył nas przyzwyczaić. Za miesiąc przedstawimy kolejne nowe mikrokontrolery z rodziny STM32F4 - STM32F446.
Piotr Zbysiński, EP
Rysunek 5. Mikrokontrolery STM32F469/479 mogą obsługiwać wyświetlacze LCD za pomocą trzech kanałów komunikacyjnych, w tym szeregowy MIPI DSI
Rysunek 6. Planowane przez producenta portfolio rodziny STM32F469/479
72
ELEKTRONIKA PRAKTYCZNA 5/2015
DL A PR AKTYK A
Novitec APM3 – wskaźnik napięcia akumulatora samochodowego do gniazda zapalniczki
Rozładowany akumulator potrafi skomplikować życie kierowcy. Co ciekawe, im nowszy samochód, tym bardziej nie może obejść się bez energii elektrycznej. Rozładowany akumulator to strata czasu i nerwów – czy można temu jakoś zapobiec? W czasach, gdy na naszych drogach królowały „maluchy” wiele osób samodzielnie konstruowało różne woltomierze i wskaźniki, uzupełniając rozwiązania fabryczne, które sygnalizowały awarię. Niekoniecznie jednak trzeba takie urządzenie budować własnoręcznie – można posłużyć się gotowym, przemyślanym rozwiązaniem. Firma Conrad oferuje urządzenie, które może być ciekawym uzupełnieniem samochodu i przydać się zwłaszcza do starszych modeli aut, których jeszcze wiele porusza się po drogach, ale nie tylko. Owo urządzenie to dołączany do zapalniczki samochodowej woltomierz z wyświetlaczem LED i diodowym wskaźnikiem poprawności działania alternatora oraz obwodu ładowania akumulatora. Na wstępie jednak warto zaznaczyć, że jest to urządzenie do samochodów z instalacją o napięciu +12 V. Funkcja woltomierza jest ciekawa, jednak napięcie występujące w instalacji tak naprawdę powie coś jedynie fachowcom. Dlatego do funkcji woltomierza producent dodał rodzaj komparatora, który za pomocą dwóch czerwonych diod świecących sygnalizuje sprawność obwodów ładowania akumulatora w pojeździe. Woltomierz umieszcza się w samochodzie, najlepiej w okolicach deski rozdzielczej, jak pokazano na fotografii 1. Po dołączeniu do gniazda zapalniczki na czytelnym wyświetlaczu LED jest podawana wartość napięcia w instalacji samochodu. Rozdzielczość wskazań wynosi 0,1 V. Gdy silnik nie pracuje i nie działa alternator, to dioda LED po lewej stronie pola wyświetlacza (oznaczona ALT) Podstawowe parametry: Novitec APM3 (numer produktu 000841790). • Zasilanie: z instalacji samochodowej za pomocą gniazda zapalniczki. • Zakres napięcia zasilającego: 7…19,9 V. • Wbudowany zasilacz +5 V/0,4 A. • W komplecie kable połączeniowe micro USB, mini USB, iPhone. • Sygnalizowanie poprawności napięcia na akumulatorze (dioda świeci się na czerwono, jeśli napięcie niepoprawne tj. <11,6 V przez 45 sekund lub <10,6 V). • Sygnalizowanie poprawności działania alternatora (dioda nie świeci się, jeśli napięcie w zakresie 11,6…14,6 V). • Wskazywanie napięcia w instalacji pojazdu za pomocą 3-cyfrowego wyświetlacza LED z dokładnością do 0,1 V. • Wymiary 80 mm×60 mm×25 mm.
ELEKTRONIKA PRAKTYCZNA 5/2015
świeci się na czerwono. Gdy uruchomimy silnik i napięcie w instalacji będzie mieściło się w zakresie 11,6…14,6 V, to dioda ALT nie świeci się. Jeśli napięcie w instalacji przekroczy ten zakres, to dioda zaświeci się sygnalizując niesprawność alternatora lub regulatora napięcia. Diodę LED umieszczoną po prawej stronie wyświetlacza oznaczono BAT. Sygnalizuje ona rozładowanie akumulatora. Również i nią steruje komparator, który zaświeca diodę LED, gdy napięcie na akumulatorze ma wartość 11,6 V i utrzymuje się przez ponad 45 sekund. Dioda zaświeca się na stałe bez odmierzania czasu, gdy napięcie na akumulatorze wynosi 10,6 V lub mniej. Oznacza to, że akumulator wymaga ładowania lub jest uszkodzony i prawdopodobnie nie będzie w stanie zasilić rozrusznika samochodu. Współcześnie w samochodach nierzadko wspomagamy się urządzeniami do nawigacji lub używamy aplikacji na smartfonach lub tabletach. Dlatego nie dziwi fakt, że oprócz możliwości wskazywania napięcia, producent pomysłowo wyposażył woltomierz w możliwość zasilania urządzenia zewnętrznego napięciem +5 V. Obciążalność wyjścia napięciowego nie jest duża, ponieważ wynosi 0,4 A, ale wystarczająca do zasilania typowego smartfona, chociaż może nie wystarczyć dla tabletu. W komplecie znajdziemy kable – przejściówki pomiędzy gniazdem woltomierza, a micro USB, mini USB oraz wtykiem iPhone-a. Co może być ważne, wyjście zasilacza to typowe gniazdo USB-A (fotografia 2), co pozwala na użycie również innych kabli, nie tylko tych dostarczonych w komplecie. Pomimo nieskomplikowanej funkcjonalności urządzenie pomoże w uniknięciu problemów – zwłaszcza w starszych samochodach. Na pewno może przydać się użytkownikom samochodów z silnikiem Diesla, ponieważ w nich są szczególne wymagania odnośnie do sprawności akumulatora.
Fotografia 1. Wskaźnik napięcia akumulatora Navitec APM3 zainstalowany w samochodzie Wskaźnik napięcia akumulatora do gniazda zapalniczki firmy Novitec typu APM3 (numer produktu 000841790) jest dostępny w sklepie internetowym firmy Conrad pod adresem http://www.conrad.pl.
Urządzenie może być również nieskomplikowanym i względnie tanim sposobem na stwierdzenie konieczności naprawy samochodu czy też wymiany akumulatora. Autor artykułu wspomina przy okazji jego pisania regularne kłopoty, które miał z samochodem pewnej marki. Tam, z dokładnością do wskazań licznika przebiegu, psuł się przeciążony rozrusznik oraz kiepski alternator. O ile opisywane urządzenie nie wskaże uszkodzenia rozrusznika, o tyle być może byłoby w stanie wskazać, że coś dzieje się z alternatorem i pozwoliłoby na wcześniejszą wizytę w warsztacie, zamiast kłopotliwego szukania chętnych do popchnięcia pojazdu. Pamiętajmy jednak, że zwykle gniazda zapalniczki nie są odcinane po przekręceniu kluczyka, więc pozostawienie dołączonego woltomierza na dłuższy w samochodzie (na „własne potrzeby” pobiera on prąd do 100 mA) spowoduje rozładowanie akumulatora, przed czym to miał chronić…
Jacek Bogusz, EP
Fotografia 2. Gniado wyjściowe zasilacza +5 V/0,4 A
73
PODZESPOŁY
PIC16F176x – więcej niż mikrokontroler Wynalazek mikroprocesora na początku lat 70-tych XX wieku, to chyba jedno najważniejszych wydarzeń w historii ludzkości. Już wtedy możliwość użycia komputera w formie układu scalonego dawała olbrzymie możliwości. Oczywiście, z dzisiejszego punktu widzenia taki 4-bitowy Intel 4004, Intel 8008, czy nawet Intel 8080 nadawałby się co najwyżej do sterowania przysłowiowym okapem kuchennym. Ale ówcześni konstruktorzy mieli odmienne zdanie i dawali tym układom o wiele ważniejsze zadania. Główna zaletą mikroprocesorów była ich uniwersalność – można je stosować w różnych aplikacjach „tylko” zmieniając program sterujący. Po wielu latach bardzo intensywnego rozwoju mikroprocesorów mamy do dyspozycji układy o możliwościach, o których kiedyś się nikomu nie śniło. Za pomocą mikroprocesora i odpowiedniego oprogramowania możemy precyzyjnie sterować silnikami elektrycznymi, procesami przemysłowymi, silnikami spalinowymi itd. Aby ułatwić realizowanie takich zadań przez mikroprocesor, do rdzenia są dołączane specjalizowane układy peryferyjne. Wydawałoby się, że w tym bogactwie wyboru wszystko jest dostępne, jednak okazuje się, że pomysłowość producentów układów nie ma granic. Microchip – jedna z najbardziej innowacyjnych firm, dobrze znana z produkcji wielu układów w tym mikrokontrolerów – od jakiegoś czasu forsuje pomysł łączenia stosunkowo prostego, ale sprawdzonego 8-bitowego rdzenia z nietypowymi i bardzo ciekawymi blokami funkcjonalnymi. Jednym z takich rozwiązań są nowe układy z rodziny PIC16F176x. O wyjątkowości tego układu nie decyduje ani rdzeń o dużej wydajności, ani typowe
74
zasoby, takie jak wielkość pamięci programu, czy pamięci RAM. Zamiast tego producent wyposażył mikrokontroler w spory zestaw układów peryferyjnych, w tym w kilka bardzo nietypowych. Zależnie od typu mikrokontrolera z rodziny PIV16F176x pamięć programu może mieć wielkość do 14 kB, a pamięć danych do 1 kB. Układ jest wyposażony w standardowe cyfrowe bloki funkcjonalne: • Porty wejścia/wyjścia. • Moduł CCP (Capture Compare PWM). • Zaawansowany moduł UART (EUART) z detekcją prędkości transmisji i wybudzaniu z uśpienia po wykryciu bitu startu. • Interfejsy komunikacyjne I2C i SPI. Oprócz nich, mikrokontroler ma typowe bloki analogowe: • 10-bitowy przetwornik A/C o maksymalnie 12 kanałach pomiarowych, z możliwością konwersji w stanie uśpienia mikrokontrolera. • Programowany układ napięcia odniesienia:1,024 V; 2,048 V i 4,094 V. • Dwa wzmacniacze operacyjne. • Cztery komparatory analogowe. • Dwa przetworniki C/A pracujące z rozdzielczością 5-bitową. • Dwa przetworniki A/C z rozdzielczością 10-bitową. Schemat blokowy mikrokontrolera PIC16F1769 zamieszczono na rysunku 1.
Takie same lub podobne peryferia nie są niczym nadzwyczajnym i można je znaleźć w mikrokontrolerach wielu producentów. O wyjątkowości PIC16F176x decydują takie bloki funkcjonalne, jak: Ramp Generator, Slope Compensation, Zero Cross Detect, Data Signal Modulator i Complementary Output Generator – trudno znaleźć je u konkurencji. W układach o większej liczbie wyprowadzeń (na przykład PIC16F1769) najważniejsze układy peryferyjne są powielone, aby można było zestawić dwa niezależne tory zamkniętej pętli kontrolnej do sterowania układami zasilaczy impulsowych.
COG – Complementary Output Generator Głównym zadaniem COG jest konwersja standardowego sygnału PWM na podwójny sygnał komplementarny PWM, który następnie jest wykorzystywany do sterowania np. mostkami typu H (rysunek 2). Samo wytwarzanie sygnału komplementarnego nie jest czymś nadzwyczajnym – moduł COG potrafi o wiele więcej. Można zdefiniować dwa oddzielne zdarzenie wejściowe (input event). Stany na wejściach zdarzeń są konwertowane na standardowy przebieg PWM lub komplementarny przebieg PWM. Częstotliwość tego przebiegu jest określana przez narastające zbocze na jednym z wejść input event, ELEKTRONIKA PRAKTYCZNA 5/2015
PIC16F176x – więcej niż mikrokontroler
Rysunek 1. Układy peryferyjne mikrokontrolera PIC16F1769 a współczynnik wypełnienia przez zbocze opadające na drugim z wejść. Oczywiście możliwe jest dodawanie programowanego opóźnienia Dead band delay zapobiegającego krótkotrwałemu włączaniu się kluczy w obu gałęziach mostka w czasie przełączania kierunku przewodzenia. Można też regulować przesunięcie fazowe przebiegów PWM. Moduł COG jest bardzo rozbudowany i ma kilka trybów pracy. Dokładne dane można znaleźć w dokumentacji mikrokontrolera.
PRG – Programmable Ramp Generator Bardzo rozbudowanym modułem jest programowany generator PRG przebiegu narastającego (piłokształtnego, lub trójkątnego) z kompensacją czasu narastania. PRG może pracować jednym z trzech trybów: • Z opadającym napięciem. • Z narastającym napięciem. • Zmiennym, z opadającym i narastającym napięciem. Wewnętrzny kondensator generatora jest ładowany lub rozładowywany zależnie od stanu wejść Set_rising i Set_falling. W trybie z napięciem narastającym, wewnętrzny kondensator jest dołączony z jednej strony do źródła napięciowego, a z drugiej strony do wewnętrznego źródła prądowego. Źródło prądowe ładuje kondensator z programowaną prędkością. Napięcie na kondensatorze jest dodawane ELEKTRONIKA PRAKTYCZNA 5/2015
do napięcia źródła napięciowego wytwarzając liniowe narastanie napięcia z zadaną (programowaną) prędkością narastania. Gdy zostanie uaktywnione wejście Set_falling, kondensator jest rozładowywany. Kolejny cykl ładowania rozpoczyna się, gdy wejście Set_rising stanie się aktywne. Źródła sygnałów Set_falling i Set_rising są programowane i mogą być nimi wyjścia sygnałów PWM z wewnętrznych modułów PWM, sygnały synchronizacji lub wygnały wyjściowe modułów CCP. Mając do dyspozycji moduł COG i moduł PRG można zbudować tor pętli sterowania zasilaczem impulsowym ze stabilizacją
napięcia wyjściowego i zabezpieczeniem prądowym, której schemat blokowy pokazano na rysunku 3. Wartość ustawionego prądu i napięcia jest podawana na wejście odwracające wbudowanego w mikrokontroler wzmacniacza operacyjnego. Wejście nieodwracające tego wzmacniacza jest połączone z wyjściem przetwornika C/A (napięcie referencyjne). Sygnał błędu steruje pracą generatora PRG. Napięcie piłokształtne z wyjścia PRG jest porównywane w komparatorze z chwilową wartością pobieranego prądu. Sygnał z wyjścia komparatora zmienia współczynnik wypełnienia przebiegu PWM generatora COG sterującego tranzystorem kluczem przetwornicy impulsowej. Mikrokontrolery z rodziny PIC16F176x, na przykład – PIC16F1769, mają zasoby umożliwiające zbudowanie dwóch niezależnych torów Closed Loop Control.
Rysunek 2. COG sterujący mostkiem H
75
PODZESPOŁY DSM – Data Signal Modulator
Rysunek 3. Schemat blokowy implementacji zasilacza impulsowego
Rysunek 4. Uproszczony schemat blokowy modułu DSM
Kolejny nietypowy moduł peryferyjny to Data Signal Modulator – DSM. Umożliwia on miksowanie dwóch sygnałów cyfrowych. Przez analogię do modulacji fal radiowych, jeden z sygnałów o większej częstotliwości jest nazywany sygnałem nośnej (carrier signal), a drugi sygnałem modulującym (modulator signal). Źródłem nośnej może być wybierany programowo sygnał wyjściowy PWM, wyjście z modułu CCP lub wyjście wbudowanego układu CLC (Configurable Logic Cell). Podobnie jest w przypadku sygnałów modulujących. Źródłem sygnału modulującego są również wybierane programowo sygnały PWM, CCP i CCP oraz sygnał z wyjścia komparatora. Dostępne są modulacje typu FSK (Frequency Shift Keying), PSK (Phase Shift Keying) i OOK (On-Off Keying). Dodatkowo moduł może wykonywać synchronizację nośnej (Carrier Synchronization). Możliwe jest też programowe wybranie polaryzacji nośnej i polaryzacji zmodulowanego sygnału wyjściowego. Uproszczony schemat blokowy modułu DSM pokazano na rysunku 4. Modułu DSM można użyć do zbudowania specjalizowanej przetwornicy zasilającej diody LED o dużej mocy. Uproszczony schemat takiego układu zasilania pokazano na rysunku 5. Sygnał PWM o rozdzielczości 10-bitowej jest podawany na wejście COG. Sygnał wyjściowy z modułu COG jest modulowany przez sygnał PWM o rozdzielczości 16-bitowej. Sygnał modulujący określa, z jaką jasnością będzie świeciła dioda LED zasilana z wyjścia zasilacza. Przebiegi sygnału nośnej i sygnału modulującego pokazano na rysunku 6. Użycie PWM o rozdzielczości 16-bitowej umożliwia płynną regulację świecenia zasilanej diody LED.
CLC – Configurable Logic Cell
Rysunek 5. Zasilacz diod LED dużej mocy
76
Moduł CLC programowalnym modułem logicznym. Każda komórka logiczna ma do 32 wejść. Tymi wejściami mogą być: wyprowadzenia mikrokontrolera, wewnętrzne wygnały zegarowe, sygnały układów peryferyjnych i bity rejestrów SFR. Dostępne są funkcje logiczne: AND, NAND, AND-OR, AND-ORINVERT, OR-XOR, OR-XNOR, przerzutnik RS, przerzutnik D z wejściami ustawiania i zerowania, przerzutnik typu zatrzask z wejściami ustawiania i zerowania, przerzutnik JK z wejściem zerującym. Programowanie obwodów logicznych jest wykonywane poprzez zapisywanie odpowiednich rejestrów konfiguracyjnych mikrokontrolera. Ręczne konfigurowanie takiej logiki jest bardzo żmudne i trudno się taką konfigurację zmienia lub poprawia błędy. Żeby moduł CLC mógł być w pełni wykorzystany, Microchip dostarcza wtyczkę (plug-in) o nazwie Code Configurator ELEKTRONIKA PRAKTYCZNA 5/2015
PIC16F176x – więcej niż mikrokontroler konfigurowanie również innych bloków funkcjonalnych na przykład: COG, komparatorów i wzmacniaczy operacyjnych wbudowanych w mikrokontroler, układu CCP, przetwornika C/A i innych. Na rysunku 7 pokazano otwarte okna Code Configuratora z podczas wykonywania konfiguracji modułu CLC. O zaletach logiki programowanej nie trzeba przekonywać. Stosowanie układów kombinacyjnych i przerzutników pozwala, jeżeli to konieczne, na wykonywanie operacji logicznych o wiele szybciej, niż mógłby to wykonać mikrokontroler. Rysunek 6. Modulacja sygnału sterującego przetwornicą
przeznaczoną do MPLAB X między innymi o możliwości przystępnego konfigurowania układów programowalnych wbudowanych w mikrokontrolery PIC. Oprócz CLC, wtyczka Code Configurator umożliwia
ZCD – Zero Cross Detector Moduł ZCD wykrywa przejście przez potencjał zerowy napięcia przemiennego. Napięcie wyzwalające detektor przejścia jest równe 0,75 V. Jest ono podawane na wejście mikrokontrolera przez rezystor szeregowy. Uproszczony schemat modułu ZCD pokazano na rysunku 8. Wykrycie przejścia przez zero ustawia flagę przerwania ZCDIF i jeżeli przerwanie jest odblokowane, to zostanie zgłoszone i obsłużone. Detekcja przejścia przez zero może być na przykład wykorzystana do sterowania mocą przez układy tyrystorowe, ale również do mierzenia okresu przebiegu prądu przemiennego.
Podsumowanie Przedstawiłem tu z konieczności bardzo ogólny opis kilku wyjątkowych bloków funkcjonalnych mikrokontrolerów z rodziny PIC16F176x. Dzięki nim pozornie „niepasujący” do współczesnych urządzeń
Rysunek 7. Okna programu Code Configurator mikrokontroler staje się układem, który może wykonywać niektóre zadania przeznaczone dla bardzo wydajnych mikrokontrolerów z procesorami DSP lub dla specjalizowanych układów scalonych. Nie jest to też układ niszowy przeznaczony tylko do budowy i sterowania impulsowych układów zasilania. Wyposażenie w sporą liczbę klasycznych układów peryferyjnych oraz pamięć programu o pojemności do 8 kB pozwalają na użycie w klasycznych układach sterowania. Microchip tradycyjnie wspiera swoje produkty poprzez dostarczanie bezpłatnych programów narzędziowych. Do dyspozycji użytkownika oddano bezpłatny pakiet IDE MPLAB X, plug-in Code Configurator i bezpłatny kompilator języka C MPLAB XC8 (z ograniczeniami optymalizacji kodu). To wszystko wskazuje, że PIC16F176x jest skazany na sukces. Rysunek 8. Uproszczony schemat modułu ZCD ELEKTRONIKA PRAKTYCZNA 5/2015
Tomasz Jabłoński, EP
77
SPRZĘT
Dodatkowe informacje: NDN-ZBIGNIEW DANILUK ul. Janowskiego 15, 02-784 Warszawa tel/fax: 22 641 61 96, 22 644 42 50, 22 641 15 47 e-mail:
[email protected], http://ndn.com.pl/
Oscyloskop Rigol MSO2102A Oscyloskopy sygnałów mieszanych (MSO – Mixed Signal Oscilloscope), to wydzielona podgrupa oscyloskopów cyfrowych przeznaczonych do jednoczesnych pomiarów sygnałów cyfrowych i analogowych. Przyrządy tej klasy oferują wszyscy liczący się producenci aparatury pomiarowej. W artykule przedstawiamy oscyloskop MSO2102A produkowany przez Rigola.
MSO1000 i MSO4000. Jak można się domyślić, oscyloskopy MSO2000 zajmują środkową półkę oferty. Biorąc pod uwagę relację cen do możliwości można je jednak zakwalifikować do wyrobów niskobudżetowych, co zresztą podkreśla sam producent w materiałach reklamowych. W rodzinie MSO2000 są oferowane modele o 3-decybelowym paśmie równym 70, 100, 200 i 300 MHz. Ponadto, oscyloskopy z literą „S” w oznaczeniu mają wbudowany generator arbitralny. Możliwości oscyloskopów MSO2000 przedstawiono w artykule na przykładzie modelu MSO2102A.
Rigol od wielu lat zajmuje ważną pozycję na liście liczących się dostawców sprzętu pomiarowego. Jest to firma chińska, ale zarządzana i funkcjonująca w prawdziwie amerykańskim stylu. Polityka strategiczna Rigola okazuje się na tyle skuteczna, że wyroby tej marki od wielu lat zajmują względnie bezpieczną pozycję wśród konkurentów w swojej klasie. Utrzymanie pozycji na rynku wymaga jednak bezustannej pracy, ulepszania istniejących już wyrobów i wprowadzania nowych. Efektem takich działań jest m.in. rodzina oscyloskopów przeznaczonych do jednoczesnego badania sygnałów analogowych oraz cyfrowych. Przyrządy takie określane są jako Mixed Signal Oscilloscope, a powstały od tej nazwy akronim Rigol wykorzystał do oznaczenia serii. Znalazły się w niej m.in. takie oscyloskopy, jak: MSO2072A, MSO2072A-S, MSO2102A, MSO2102A-S, MSO2202A, MSO2202A-S, MSO2302A, MSO2302A-S. Oprócz nich są też przyrządy z rodzin
Charakterystyka ogólna oscyloskopu MSO2102A
78
Cyfra 1 w oznaczeniu oscyloskopu MSO2102A oznacza, że przyrząd ten ma 3-decybelowe pasmo pomiarowe równe 100 MHz. Kanały analogowe mogą pracować w standardowej konfiguracji z wejściem o impedancji 1 MV/16 pF lub z wejściem 50-omowym. Wejście niskoomowe jest przydatne przy bezpośrednim dołączaniu źródła sygnału o impedancji wyjściowej 50 V za pomocą kabla koncentrycznego. Użytkownik ma do dyspozycji dwa kanały analogowe, a po dołączeniu specjalnego adaptera także 16 kanałów cyfrowych. Kanały analogowe są próbkowane z maksymalną szybkością 2 GSa/s, cyfrowe natomiast z prędkością 1 GSa/s. Duży nacisk położono na minimalizację szumów. Cel ten został osiągnięty z niezłym skutkiem, o czym świadczy najniższy zakres pomiarowy – 500 mV/dz (z sondą 1:1). Oscyloskop jest jednak sprzedawany z sondami 10:1, bez możliwości przełączania stopnia podziału. Dla nich najmniejszy zakres pomiarowy jest równy ELEKTRONIKA PRAKTYCZNA 5/2015
Oscyloskop Rigol MSO2102A 5 mV/dz. Dla porównania – w popularnych oscyloskopach cyfrowych parametr ten nie jest na ogół niższy niż 20 mV/V (dla sond 10:1). Szumy zmierzone oscyloskopem MSO2102A przy zwartym wejściu przedstawiono na (rysunku 1).
Technologia Ultra Vision
Rysunek 1. Szumy kanału pomiarowego oscyloskopu MSO2102A
Rysunek 2. Anomalia przebiegu widoczne dzięki dużej szybkości przechwytywania przebiegów
Rysunek 3. Menu funkcji rejestrującej przebiegi
Fotografia 4. Elementy sterujące płyty czołowej oscyloskopu wykorzystywane do rejestracji i odtwarzania przebiegów ELEKTRONIKA PRAKTYCZNA 5/2015
Przebiegi wyświetlane na ekranie oscyloskopu MSO2102A są tworzone przez specjalnie zaprojektowany chipset wykorzystujący opracowaną i opatentowaną przez Rigola technologię Ultra Vision. Łączy ona rozwiązania sprzętowe i programowe realizowane przez układ. Zadania przerzucone z procesora oscyloskopu na chipset Ultra Vision obejmują m.in. inteligentne metody wyzwalania, selekcję próbek połączoną z bardzo efektywnym zapisywaniem danych w dużym banku pamięci dołączonym bezpośrednio do układu, generowanie podstawy czasu, obsługę rekordu akwizycji i pamięci wyświetlania, a także realizację testów Pass/Fail. Poszczególne zadania są wykonywane przez wydzielone bloki funkcjonalne. Układ ten współpracuje z zewnętrznymi przetwornikami analogowo-cyfrowymi, pamięciami, wyświetlaczem i oczywiście głównym procesorem oscyloskopu. Aby do maksimum wykorzystać dostępną pamięć, pozyskane w wyniku akwizycji dane podlegają kompresji, co można obrazowo porównać z działaniem znanych programów archiwizujących. Pamięć jest zapisywana tylko danymi istotnymi dla wyświetlanego oscylogramu. Dzięki zastosowaniu technologii Ultra Vision możliwe stało się uzyskanie dużych szybkości przechwytywania przebiegów dochodzące do 50000 wfms/s. Na oscylogramie przedstawionym na rysunku 2 można zaobserwować wyraźne anomalie przebiegu ujawnione dzięki dużej szybkości przechwytywania. Co więcej, przebiegi te mogą być rejestrowane w specjalnej pamięci w celu poddawania ich dalszej analizie. Taki tryb pracy jest wykorzystywany na przykład do poszukiwania anomalii badanych sygnałów. Rejestracja rozpoczyna się po naciśnięciu przycisku Utility i uruchomieniu polecenia „Record” (jednorazowe zapełnienie całej dostępnej pamięci) lub „Open” (ciągłe rejestrowanie z nakładaniem nowszych ramek na starsze). Sterowanie rejestracją odbywa się przez polecenia menu ekranowego (rysunek 3) lub za pomocą przycisków umieszczonych na płycie czołowej oscyloskopu (fotografia 4). Po zarejestrowaniu przebiegów można dokonać automatycznej analizy zapisanych danych. W tym celu wybiera się ramkę zawierającą poprawny fragment przebiegu i definiuje się ją jako ramkę wzorcową. Teraz, po naciśnięciu przycisku Start oscyloskop dokonuje porównania każdej zapisanej ramki z ramką wzorcową i dla każdej takiej pary oblicza procentową rozbieżność. Wynik tej operacji jest przedstawiany pod wykresem w formie graficznej jako pasek z paletą kolorów określających stopień dopasowania badanej ramki do wzorca. W ten sposób można szybko zorientować się czy w danym sygnale występują zakłócenia, czy są częste i jak są duże (rysunek 5). Jako element wzorcowy może być też użyta wirtualna ramką będąca uśrednieniem wszystkich zarejestrowanych. Tym samym analiza dokonuje porównania odchyłek poszczególnych ramek od przebiegu uśrednionego. Na zupełnie innej zasadzie przebiega ocena
Rysunek 5. Wynik analizy zarejestrowanego przebiegu
79
SPRZĘT porównywania, gdy zostanie zastosowany test „Pass/Fail”. Elementem wzorcowym jest w tym przypadku maska określająca pole, w którym powinien mieścić przebieg badany (rysunek 6). Kolejną korzyścią wynikającą z zastosowania technologii Ultra Vision jest wyświetlanie oscylogramów z 256-poziomową gradacją odcieni kolorów. Na rysunku 7 przedstawiono oscylogram generowanego cyfrowo szumu o teoretycznym rozkładzie amplitud jak na rysunku 8a. Jasność wyświetlania poszczególnych fragmentów oscylogramu jest proporcjonalna do częstości występowania poszczególnych amplitud w badanym sygnale. Niestety, w oscyloskopach Rigola nie ma funkcji wykreślającej histogram amplitud, który pozwoliłby weryfikować zgodność takiego szumu z założeniami teoretycznymi. Obserwując rozwój tej firmy można jednak przypuszczać, że w kolejnych modelach, albo wersjach oprogramowania funkcja taka pojawi się. Przykładową weryfikację przeprowadzono korzystając z innego, zewnętrznego narzędzia (rysunek 8b).
Rysunek 6. Analiza z użyciem testu Pass/Fail
Mieszanka sygnałów Oscyloskop MSO2102A ma dwa analogowe kanały pomiarowe. Podczas badania sygnałów cyfrowych zwykle zachodzi potrzeba obserwacji większej liczby przebiegów. Rozbudowa oscyloskopu o kilka, a nawet kilkanaście dodatkowych kanałów ze względów ekonomicznych nie wchodzi oczywiście w grę, tym bardziej, że w przypadku sygnałów cyfrowych nie zawsze konieczne są pomiary ich parametrów analogowych (czasów narastania/opadania, ewentualnych oscylacji, poziomów napięciowych itp.). W tym przypadku istotne są przede wszystkim zależności czasowe i relacje logiczne między poszczególnymi sygnałami. Aby spełnić te wymagania w oscyloskopach MSO są instalowane wydzielone gniazda dla sond cyfrowych. W oscyloskopie MSO2102A gniazdo takie znajduje się pod wyświetlaczem. Można do niego dołączyć dwie 8-kanałowe sondy logiczne (fotografia 9), co stwarza możliwość obserwacji do 16 przebiegów cyfrowych (rysunek 10). Wewnętrzny analizator stanów logicznych jest uruchamiany po naciśnięciu przycisku LA, znajdującego się w górnej części płyty czołowej oscyloskopu. Przyrząd ten pracuje niezależnie od analogowych kanałów pomiarowych oscyloskopu, co oznacza, że obydwa rodzaje przebiegów mogą być obserwowane jednocześnie. Jeśli sonda kanału analogowego zostanie dołączona do sygnału cyfrowego, na ekranie możliwe będzie obserwowanie rzeczywistego kształtu sygnału cyfrowego (rysunek 11). Sygnały przechwytywane przez sondę cyfrową mogą być wykorzystywane do ustalania warunku wyzwalania. Są to zarówno typowe zdarzenia, takie jak określone zbocze, szerokość impulsu itp., ale mogą być też formułowane sekwencje wzorcowe zdefiniowane jako kombinacja stanów na poszczególnych liniach cyfrowych. Trochę niezrozumiała jest przy tym zastosowana przez Rigola konwencja przyjmująca, że najmniej znaczące sygnały zajmują pozycje z lewej strony wzorca (rys. 11).
Analizowanie protokołów Mimo, iż do analizowania protokołów nie są wymagane kanały cyfrowe, trudno sobie wyobrazić, aby oscyloskop MSO nie miał
Rysunek 7. Oscylogram tworzony z 256-stopniową gradacją odcieni zaimplementowanych odpowiednich narzędzi do tego służących. Niestety producenci, jakby zmówieni, nadal zachowują solidarne stanowisko dotyczące udostępniania odpowiednich funkcji użytkownikom, więc stanowią one opcjonalne rozszerzenie oprogramowania firmowego. Rigol daje użytkownikom darmową analizę interfejsu równoległego. Pozostałe, takie jak: RS232/UART, I2C, SPI, CAN są dodatkowo płatne. Z analizą protokołów związane są dwa zagadnienia: dekodowanie danych przesyłanych badanymi interfejsami oraz wyzwalanie zdarzeniami charakterystycznymi dla tych interfejsów. Możliwość takiego wyzwalania jest oczywiście bardzo przydatna i w wielu przypadkach znacznie ułatwia pracę. Czasami uchwycenie jakiejś specyficznej sytuacji nie jest w ogóle możliwe bez wybrania odpowiednio dobranego warunku wyzwolenia. W wielu przypadkach wystarczą jednak typowe tryby wyzwalania, jak zboczem czy szerokością impulsu. Na rysunku 12 przedstawiono zdekodowany pakiet danych przesyłanych interfejsem SPI. Przyjęto, że moment wyzwolenia powinien wystąpić na opadającym zboczu sygnału CS. Do ustawienia tego warunku można zastosować klasyczny tryb wyzwalania zboczem („Edge”) lub
Rysunek 8. Rozkład amplitudy badanego szumu: a) teoretyczny, b) zmierzony
80
ELEKTRONIKA PRAKTYCZNA 5/2015
Oscyloskop Rigol MSO2102A
Fotografia 9. 8-kanałowa sonda logiczna
Rysunek 10. Przebiegi cyfrowe wyświetlane na ekranie oscyloskopu MSO2102A
Rysunek 11. Jednoczesne wyświetlanie sygnałów cyfrowych i analogowych na ekranie oscyloskopu MSO2102A wyzwalanie typu „SPI” z opcją wybierającą zdarzenie „CS”. Zasada ta dotyczy również innych protokołów, przy czym dla trybów wyzwalania takich jak RS232, I2C, SPI, CAN, a nawet USB pojawiają się charakterystyczne dla nich zdarzenia, np. wykrycie bitu startu, wystąpienie błędu, rozpoznanie adresu urządzenia, wystąpienie konkretnej danej, wykrycie określonego typu ramki itp. Należy jednak pamiętać o tym, że po pierwsze do wyzwalania może być użyty tylko aktywny kanał, po drugie w oscyloskopie musi być zainstalowana odpowiednia opcja wyzwalania.
Pomiary Oscyloskop MSO2102A ma całkiem spore możliwości pomiarów parametrów badanych sygnałów. Generalnie wykorzystywane są do tego trzy grupy narzędzi: Pomiary automatyczne (tzw. One-key). Są to pomiary inicjowane przyciskami rozmieszczonymi wzdłuż lewej krawędzi wyświetlacza. W ten sposób można mierzyć 29 parametrów związanych z czasem lub amplitudą sygnału. Są też dwie opcje łączące amplitudę i czas, ELEKTRONIKA PRAKTYCZNA 5/2015
Rysunek 12. Zdekodowany pakiet danych przesyłanych interfejsem SPI używane do obliczania powierzchni wybranych fragmentów wykresu. Ponadto może być włączany na stałe specjalny licznik (tzw. Frequency Counter) wykorzystywany do precyzyjnego pomiaru częstotliwości przebiegu z wybranego kanału analogowego lub cyfrowego. Wyniki pomiarów automatycznych są umieszczane tradycyjnie pod oscylogramami, a po wybraniu opcji „All” w tabelce przykrywającej oscylogram. Uzupełnieniem pomiarów automatycznych są statystyki i historia. Pomiary kursorowe. Ten rodzaj pomiaru jest dostępny w każdym oscyloskopie cyfrowym. W modelu MSO2102A kursory mogą być przypisywane do wszystkich dostępnych kanałów analogowych i cyfrowych, a także do wirtualnych kanałów matematycznych. W oprogramowaniu oscyloskopu przewidziano także obsługę kursorów przy pracy w trybie X-Y (rysunek 13). Po wybraniu opcji „Manual” kursory są ustawiane w dowolnym położeniu za pomocą pokrętła uniwersalnego, ale wybierając tryb „Trace” można je dowiązywać do przebiegów. Operacje matematyczne to kolejne, specyficzne narzędzie pomiarowe. Na przykład po dołączeniu do jednego kanału sondy napięciowej a do drugiego sondy prądowej i zastosowaniu operacji mnożenia dokonywany jest de facto pomiar mocy. Na ekranie jest wykreślany wykres mocy chwilowej w funkcji czasu (nawiasem mówiąc, w wersji oprogramowania 00.03.00.SP1 niezbyt poprawnie), ale po włączeniu automatycznego pomiaru np. wartości skutecznej z kanału matematycznego uzyskujemy skuteczną moc zmierzoną. Kolejne rozszerzenie możliwości pomiarowych uzyskuje się po zastosowaniu zaawansowanych operacji matematycznych, takich jak całkowanie, różniczkowanie, logarytmowanie, pierwiastkowanie, funkcje trygonometryczne i wykładnicze. Do tej grupy obliczeń zaliczane są ponadto operacje logiczne i funkcja FFT.
Wyzwalanie Tryby wyzwalania i akwizycji to czynniki w znacznym stopniu decydujące o przydatności oscyloskopu do określonych zadań. Zdając sobie z tego sprawę konstruktorzy Rigola znacznie powiększyli liczbę trybów wyzwalania w oscyloskopie MSO2102A. Można wręcz zastanawiać się czy oby na pewno w przyrządach tej klasy są one potrzebne i czy będą umiejętnie wykorzystywane. Podobnie, jak w przypadku opcji dekodowania protokołów, część trybów wyzwalania jest dostępna dopiero po wykupieniu opcji rozszerzających oprogramowanie. Zakładając, że w oscyloskopie jest zainstalowany cały pakiet rozszerzeń użytkownik ma do dyspozycji 12 trybów wyzwalania plus ewentualne opcje związane z analizą protokołów. Źródłem wyzwalania są sygnały ze wszystkich fizycznych kanałów pomiarowych oscyloskopu, a także z gniazda wyzwalania zewnętrznego. Część trybów wyzwalania jest powszechnie stosowana nawet w prostszych modelach oscyloskopów, ale są też takie, które można było spotykać tylko w modelach najbardziej zaawansowanych. Mamy zatem tryby wyzwalania: zboczem, impulsem (szerokością impulsu),
81
SPRZĘT zakłóceniem typu „Runt”, „Windows”, „Nth Edge”, nachyleniem zbocza, wideo (HDTV), wzorcem („Pattern”), „Delay”, „Time Out”, „Duration Trigger”, „Setup/Hold” oraz tryby związane z analizą protokołów.
Akwizycja Można zadawać sobie pytanie, w jakim stopniu wybór trybu akwizycji ma wpływ na wygląd oscylogramu. Wszak sygnał oryginalny pozostaje niezmienny, niezależnie od nastaw. Przebiegi są jednak tworzone na ekranie w oparciu o dane zapisywane w rekordzie akwizycji, a później w pamięci wyświetlania. Operacja ta jest jednak zależna od wybranego trybu akwizycji, więc jakiś wpływ na pewno istnieje. Czym zatem należy kierować się przy wyborze trybu akwizycji? Tryb „Normal” jest najczęściej wykorzystywany podczas pomiarów oscyloskopowych. Próbki sygnału są pobierane do rekordu akwizycji z szybkością zależną od aktualnej podstawy czasu i długości rekordu. Fragmenty sygnału pomiędzy próbkami są odrzucane. W trybie „Peak Detect” układ akwizycji pracuje z maksymalną dla oscyloskopu szybkością, ale dla każdego interwału próbkowania (obliczanego jak dla trybu „Normal”) wyznaczana jest minimalna i maksymalna wartość uzyskana z układu akwizycji. Oscylogram jest rysowany przez łączenie tych wartości dla każdej próbki. Oscylogram jest więc bardziej rozmazany, ale uwzględnia krótkotrwałe piki sygnału, które w trybie „Normal” znalazłyby się między próbkami, tym samym nie byłyby uwzględniane. „Average” jest trybem wykorzystywanym najczęściej do eliminacji szumu występującego w sygnale. Oscylogram jest rysowany na podstawie uśrednionych próbek z wielu cykli akwizycji. Liczba uśrednień jest parametrem dla tego trybu akwizycji i mieści się w zakresie od 2 do 8192 (jako wielokrotność 2). Im większa będzie liczba uśrednień, tym dłuższy będzie czas stabilizowania się wykresu. „High Resolution” to również tryb uśredniający, a więc wygładzający przebieg. Jest używany przede wszystkim wtedy, gdy szybkość próbkowania jest większa od szybkości zapisu próbek w rekordzie akwizycji. W odróżnieniu od trybu „Average” uśredniane są wszystkie próbki mieszczące się pomiędzy momentami próbkowania wynikającymi z podstawy czasu i długości rekordu. W oscyloskopie MSO2102A układ akwizycji próbkuje z maksymalną szybkością 2 GSa/s dla kanałów analogowych i 1 GSa/s dla kanałów cyfrowych.
Rysunek 13. Pomiary kursorowe w trybie X-Y
Inne cechy oscyloskopu Aktualnie można wyróżnić pewną grupę cech występujących we wszystkich współczesnych oscyloskopach cyfrowych, a więc i w MSO2102A. Są to m.in.: • Możliwość zapisywania przebiegów i nastaw oraz zrzutów ekranowych w pamięciach Flash (wewnętrznej i zewnętrznej). • Test „Pass/Fail”. • Tworzenie przebiegów referencyjnych. • Zdalne sterowanie za pośrednictwem interfejsów USB, LAN i GPIB. Podsumowując, oscyloskop MSO2102A można zaliczyć do przyrządów średniej klasy, który spełni oczekiwania dużej części użytkowników, szczególnie zajmujących się techniką cyfrową. Jest on dobrym przykładem realizacji polityki rozwojowej producenta, zakładającej uwzględnianie w wyrobach aktualnie obowiązujących trendów. W testowanej wersji oprogramowania nie uniknięto wprawdzie drobnych błędów, ale to akurat zdarza się nawet najbardziej renomowanym markom. Historia pokazuje, że Rigol dość szybko reaguje na takie przypadki, co pozwala mieć nadzieję, że w kolejnych seriach błędy zostaną wyeliminowane. Niewątpliwą zaletą oscyloskopu MSO2102A jest duży ekran o dobrej rozdzielczości, a naturalność i bardziej „analogowy” wygląd oscylogramów uzyskano dzięki wielostopniowej głębi odcieni kolorów.
Jarosław Doliński, EP
REKLAMA
82
ELEKTRONIKA PRAKTYCZNA 5/2015
SPRZĘT
Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (3) CAN, LIN
Badanie protokołów komunikacyjnych jest już obowiązkową funkcją oscyloskopów cyfrowych co najmniej średniej klasy. Nadal jednak jest ona udostępniana najczęściej jako opcjonalne rozszerzenie oprogramowania firmowego. Zwykle w cenie oscyloskopu mieści się tylko kilka najbardziej popularnych protokołów, np. SPI i UART. W cyklu artykułów przedstawiono rozwiązania dotyczące analizy protokołów zastosowane w oscyloskopach Rohde&Schwarz. W tej części omówiono badanie interfejsów CAN i LIN.
Omawiane w poprzedniej części artykułu interfejsy SPI i I2C pracują według modelu komunikacji Master – Slave. W tak zorganizowanym systemie jakąkolwiek transmisję między dowolnymi urządzeniami zawsze inicjuje urządzenie nadrzędne – Master, natomiast urządzenia podrzędne (Slave) odpowiadają tylko na pytania i nie mogą porozumiewać się między sobą bez pośrednictwa urządzenia Master. W wielu aplikacjach przedstawione rozwiązania są jednak nie do przyjęcia. Przykładem jest elektronika motoryzacyjna, w której komunikacja musi być w wielu przypadkach natychmiastowa, bez metody pytań i odpowiedzi. Między innymi, na potrzeby motoryzacji w latach osiemdziesiątych XX wieku opracowano specjalny interfejs komunikacyjny CAN, który (co prawda po kilku ulepszeniach i modyfikacjach) jest z powodzeniem stosowany do dziś. Obecnie zakres zastosowań wykroczył poza motoryzację – do automatyki przemysłowej. Na dokładny opis warstwy fizycznej i protokołu nie ma miejsca w tym artykule, odsyłamy do bogatej dokumentacji dostępnej z wielu źródeł. Poniżej przedstawiono jedynie najważniejsze zagadnienia niezbędne do zapoznania się z pomiarami wykonywanymi oscyloskopami Rohde&Schwarz.
Protokół CAN
Rysunek 1. Oscylogramy napięć na magistrali CAN, a) zależności napięciowe, b) zależności czasowe ELEKTRONIKA PRAKTYCZNA 5/2015
Zasadniczą różnicą między interfejsem CAN a omawianymi wcześniej SPI i I2C jest przyjęcie odmiennego modelu komunikacji, tzw. Multi-master. Wszystkie węzły mogą w nim komunikować się ze sobą wzajemnie bez stosowania dodatkowych linii sterujących, tylko korzystając z podstawowego medium, jakim jest dwuprzewodowa skrętka. Jest ona terminowana na obu końcach rezystorami ok. 120 V dla zminimalizowania odbić sygnału. Węzły są łączone w konfiguracji liniowej, gwiaździstej lub pierścieniowej. Sygnał logiczny jest tworzony różnicowo przez odjęcie napięcia CANL od CANH (CANL i CANH to nazwy linii interfejsu CAN). Przykładowe relacje między napięciami na liniach CANH i CANL przedstawiono na rysunku 1a, relacje czasowe są natomiast
83
SPRZĘT widoczne na rysunku 1b. Analizator protokołów odczytuje stan magistrali na podstawie tylko jednej linii. Sygnał z linii CANL jest interpretowany wprost, z linii CANH natomiast po zanegowaniu. Oba sygnały są jednak potrzebne do realizacji transmisji różnicowej umożliwiającej przesyłanie danych na duże odległości. Przy prędkości transmisji 5 kb/s możliwe jest uzyskanie zasięgu nawet do 10 km. Założenia dotyczące sieci komunikacyjnej z zastosowaniem interfejsu CAN narzuciły budowę ramki transmisyjnej. Z uwagi na możliwość zgłaszania jednoczesnego dostępu do medium przez kilka węzłów warstwa fizyczna i protokół komunikacyjny musi uwzględniać rozstrzyganie konfliktów, sygnalizację błędów, przesyłanie potwierdzeń itp. Dobry analizator protokołu powinien uwzględniać wszystkie zdarzenia występujące na magistrali, niezależnie od wersji badanego interfejsu – pamiętamy, że ulegał on modyfikacjom. Ramkę protokołu CAN przedstawiono na rysunku 2. Składa się ona z kilku pół pełniących określone role w interpretacji zdarzeń występujących na magistrali. W wyniku prac nad interfejsem powstały dwie funkcjonujące dziś wersje protokołu: CAN 2.0A (tzw. standard – rys. 2b) i CAN 2.0B (extended – rys. 2a). Zasadniczą różnicą z punktu widzenia protokołu są inne długości bloku identyfikacyjnego, zwanego tez polem arbitrażowym. Dla użytkownika bardziej istotna jest większa prędkość transmisji w interfejsie CAN 2.0B dochodząca do 1 Mb/s, podczas gdy w wersji CAN 2.0A można uzyskać tylko 125 kb/s. W protokole przewidziano transmisję czterech rodzajów ramek, są to: ramka danych, ramka zdalnego wywołania, ramka błędów i ramka przepełnienia. Transmisja jest w zasadzie asynchroniczna, w interfejsie nie ma linii zegarowej. Lokalne zegary po stronie odbiorczej są synchronizowane z nadawczymi zawsze na początku ramki. Transmisję inicjuje dowolny węzeł, a ewentualne konflikty są rozstrzygane poprzez przemyślany system arbitrażowy. Wykrycie ewentualnych błędów przez dowolny węzeł skutkuje natychmiastowym generowaniem ramki błędów, co jest informacją do nadawcy, że powinien powtórzyć ostatnią transmisję. Błędy mogą wynikać nie tylko z konfliktów na magistrali, ale też ze zwykłych przekłamań sygnału elektrycznego. Dlatego w każdej transmisji jest obliczana 15-bitowa suma kontrola (CRC), którą teoretycznie można by było wykorzystać do korekcji pewnych błędów, jednak służy ona tylko do informowania o błędach. Co ciekawe, węzeł nadający może sam wykrywać swoje błędy dzięki równoczesnemu nasłuchowi magistrali podczas nadawania. Ramki nie mogą być nadawane bezpośrednio jedna
84
Rysunek 2. Ramka protokołu CAN a) wersja z 29-bitowym identyfikatorem, b) wersja z 11-bitowym identyfikatorem
Rysunek 3. Zakładka konfiguracyjna dla protokołu CAN
Rysunek 4. Zakładka wyboru zdarzeń wyzwalających dla protokołu CAN ELEKTRONIKA PRAKTYCZNA 5/2015
Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz – CAN, LIN po drugiej. Minimalny odstęp między kolejno nadawanymi ramkami powinien być nie mniejszy niż 3 bity. Koncepcja protokołu CAN zakłada, że o wszystkim co dzieje
się na magistrali wiedzą wszystkie węzły. Szczególnym rodzajem ramki protokołu CAN jest tzw. ramka zdalna, w której nie występuje w ogóle pole danych.
Rysunek 5. Przykładowe wyzwolenie na początku ramki
Konieczne jest jeszcze wyjaśnienie trochę odmiennego nazewnictwa bitów od ogólnie stosowanego. Ze względu na różnicową transmisję sygnału cyfrowego, w interfejsie CAN, zasadniczo nie stosuje się określeń „niski poziom” lub „wysoki poziom”, a zamiast nich wprowadzono pojęcie bitu dominującego i recesywnego. Sygnały cyfrowe są generowane przez wyjścia typu Open Drain, w jakie są wyposażone drivery linii. Stan niski jest utożsamiany z napięciem występującym na wyjściu, w którym został uaktywniony tranzystor wyjściowy – jest to stan dominujący, ponieważ wystarczy, aby tylko jedno wyjście zostało uaktywnione, by linia znalazła się w tym stanie. Przy wyłączonych wyjściach linia pozostaje w stanie recesywnym (odpowiednikiem stanu wysokiego). Zauważmy, że z elektrycznego punktu widzenia nie ma konfliktu, jeśli wyjścia kilku węzłów jednocześnie zostaną wysterowane, natomiast przyjęta metoda generacji stanów logicznych na liniach interfejsu CAN jest wykorzystywana do rozstrzygania przypadków próby jednoczesnego dostępu do linii przez kilka węzłów. Szczegółów należy szukać w specyfikacji interfejsu CAN.
Rysunek 6. Przykładowe wyzwolenie na różnych typach ramek, a) ramka danych, b) ramka zdalna, c) ramka błędu, d) ramka przepełnienia ELEKTRONIKA PRAKTYCZNA 5/2015
85
SPRZĘT Pomiary interfejsu CAN Zakładkę konfiguracyjną protokołu CAN przedstawiono na rysunku 3. Do odczytania informacji przesyłanych interfejsem CAN wystarczy analiza jednej z jego linii: CAN_L lub CAN_H. Do interpretacji danych cyfrowych na podstawie linii CAN_H konieczna będzie inwersja poziomów. W tym przypadku wyższe napięcie będzie odpowiadało stanowi logicznemu „0”, niższe natomiast będzie odpowiadało „1”. Oczywiście analizator wykonuje taką operację automatycznie podczas pracy, jednak bardziej oczywista dla użytkownika będzie częściej stosowana konwencja, w której wyższe napięcie odpowiada „1”, niższe „0”. Z tego względu do analizy wygodniej jest brać linię CAN_L. Zawsze bardzo istotne jest prawidłowe ustawienie napięcia progowego (pole Threshold”). Należy pamiętać, że po każdej zmianie linii CAN_L na CAN_H lub odwrotnie, konieczna będzie korekcja napięcia progowego. Wyboru napięcia progowego można dokonać na podstawie określenia technologii wykonania interfejsu. Po naciśnięciu przycisku „Technology” zmieniana jest nastawa z ręcznej na jedną z kilku predefiniowanych (rys. 3). Kolejnym parametrem decydującym o prawidłowym przebiegu analizy protokołu jest zastosowana w badanym układzie prędkość
transmisji. Parametr ten może być wpisywany na skutek różnych zniekształceń sygnału w zaręcznie w polu „Bit rate” lub wybierany z listy. stosowanym medium korzystne może okazać Jak już było powiedziane, transmisja realisię przesunięcie punktu próbkowania. Należy zowana interfejsem CAN jest asynchroniczna, wówczas zmienić parametr „Sample Point”, ale synchronizowana na początku każdej ramktórego domyślną wartością jest 50%. ki. Bardzo groźne są długie sekwencje jednaPo skonfigurowaniu protokołu można już kowych bitów, gdyż nie występują wówczas przystąpić do pomiarów. Ich przebieg zależy momenty znamienne i może wówczas dochow dużym stopniu od doboru trybu wyzwaladzić do rozsynchronizowania się odbiornika, nia (rysunek 4). Podczas analizowania pracy więc w protokole CAN uwzględniono zabezpieczenie mające wykluczyć podobne przypadki. Jeśli w transmisji pojawia się pięć jednakowych impulsów, to generowany jest dodatkowy impuls o przeciwnym znaku. Może to prowadzić do wydłużania poszczególnych pól ramki, np. danej do 9 bitów. Teoretycznie, stany impulsów są odczytywane w poło- Rysunek 7. Oscylogram uzyskany po wyzwoleniu na ramce wie ich szerokości, o identyfikatorze 01A54321h zawierającej daną 24h występującą ale czasami, np. na drugim bajcie pola danych
Rysunek 8. Wyzwalanie na błędach, a) CRC, b) ramki, c) kodowania, d) braku potwierdzenia
86
ELEKTRONIKA PRAKTYCZNA 5/2015
Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz – CAN, LIN
Rysunek 9. Magistrala LIN
Rysunek 9. Magistrala LIN
Rysunek 10. Ramka protokołu LIN interfejsu CAN ma to szczególne znaczenie, gdyż rozróżnianych jest tu wiele różnych charakterystycznych zdarzeń. Pierwszym, najprostszym zdarzeniem wyzwalającym jest identyfikacja początku ramki. Na ekranie moment ten jest zaznaczany znakiem zielonego otwierającego nawiasu prostokątnego (rysunek 5). Analogicznie koniec ramki jest oznaczany nawiasem zamykającym. Przydatność tego rodzaju wyzwalania ogranicza się praktycznie do przypadków, w których transmisje są inicjowane sporadycznie, przy ciągłym ruchu na magistrali obraz nie będzie stabilny. Nieco skuteczniejsze jest wyzwalanie na określonym typie ramki. Jeśli podejrzewamy, że w układzie są generowane błędy, najlepszą metodą analizy będzie zastosowanie wyzwalania po wykryciu ramki błędu. Przyczyn generowania błędów jest kilka, na przykład brak dodatkowego bitu o przeciwnym stanie po przesłaniu pięciu bitów jednakowych. O błędach będzie jeszcze mowa w dalszej części artykułu. Na rysunku 6 przedstawiono przykłady ramek różnego typu, z jakimi można się spotkać badając interfejs CAN. Do poszukiwania konkretnych danych najlepiej nadają się opcje: „Identifier” i „Identifer + Data”. Pierwsza z nich powoduje wyzwolenie oscyloskopu po zlokalizowaniu ramki o określonym identyfikatorze. Próbując ręcznie rozszyfrować dane w polu ID trzeba pamiętać, że identyfikator 29-bitowy jest rozdzielony w środku bitami SRR i IDE oraz, że w przypadku występowania co najmniej 5-bitowych ciągów jednakowych bitów pole to może być wydłużone o dodatkowo generowane impulsy synchronizujące. Na rys. 7 przedstawiono ELEKTRONIKA PRAKTYCZNA 5/2015
wynik poszukiwania ramki o identyfikatorze 01A54321h zawierającej daną 24h występującą na drugim bajcie pola danych. Opcje wyzwalania zostały dobrane zgodnie z rys. 4. Wracamy jeszcze do błędów. Pomiar analizatorem protokołów może być wyzwolony określonym rodzajem błędu, nie tylko przesłaniem samej ramki błędu. Stwarza to możliwość zawężania podejrzeń dotyczących źródła błędów w nieprawidłowo funkcjonującym urządzeniu. Po wybraniu opcji „Type=Error condition” należy zaznaczyć, które z czterech rodzajów błędów mają być rozpatrywane. Są to: błąd sumy kontrolnej (CRC), błąd formatu ramki (Form) występujący po stwierdzeniu niepoprawnego stanu znanych bitów, błąd kodowania (Bit stuffing) generowany po wystąpieniu w interfejsie więcej niż pięciu kolejnych jednakowych bitów i błąd potwierdzenia (Ack) generowany, gdy odbiornik nie wystawi bitu dominującego („0”) oznaczającego potwierdzenie odczytania ramki. Każdy z tych błędów przedstawiono na rysunku 8. Zdarza się, że jeden błąd może generować kolejne. Na rys. 8c został wykryty błąd kodowania. Po pięciu następujących po sobie bitach dominujących nie został wstawiony bit recesywny, co natychmiast zostało wykryte i zasygnalizowane jako błąd „Bit stuffing”.
Protokół LIN Jak mogliśmy się przekonać, interfejs CAN jest bardzo dobrym rozwiązaniem do realizacji względnie szybkiej transmisji danych pomiędzy równoprawnymi węzłami. Tak rozbudowany protokół nie jest jednak zawsze konieczny, na przykład odczytywanie
stanu czujników rozmieszczonych w samochodzie przez komputer pokładowy można zrealizować znacznie prościej. Do takich potrzeb opracowano interfejs LIN (Local Interconnect Network), stanowiący uzupełnienie CAN-a. Daje się go zrealizować znacznie prostszymi środkami, wystarczy do tego celu nawet tani mikrokontroler dysponujący interfejsem UART. W specyfikacji LIN można doszukać się podobieństw z poznanymi już protokołami UART i I2C, jednak istotną różnicę stanowi wykorzystanie tylko jednej linii transmisyjnej. Do wad należy zaliczyć dość niewielką prędkość transmisji, dochodzącą zaledwie do 20 kb/s. Przy tak małych prędkościach nie ma jednak problemów z zachowaniem synchronizacji, nawet przy zastosowaniu prostych oscylatorów. Do ich budowy nie są nawet konieczne rezonatory kwarcowe, wystarczą ceramiczne. Transmisja jest asynchroniczna synchronizowana na ramkach. Protokół LIN, podobnie jak SPI czy I2C, wymaga podziału kompetencji wśród dołączonych urządzeń. W tzw. klastrze dopuszcza się występowanie co najwyżej 16 węzłów, tworzy go więc jeden Master (obowiązkowo) oraz do 15 Slave’ów. Po wyposażeniu Slave’a w zwielokrotniony interfejs fizyczny może on jednak pracować w kilku klastrach. Master realizuje zarówno swoje zadania (master task), jak i zadania Slave’a (slave task). Magistrala LIN ma budowę jak na rysunku 9. Ramka protokołu LIN składa się z nagłówka będącego zadaniem Mastera i odpowiedzi generowanej przez Slave’a (rysunek 10). Z kolei w nagłówku wyróżnia się komunikaty (pola) „Synch Break”, „Sync Field” i „Ident Field”. Komunikat „Synch Field” zawiera sekwencję synchronizującą informującą urządzenia o prędkości transmisji. Poprzedza go przerwa synchronizująca trwająca co najmniej 13 bitów. Komunikat „Ident Field” zawiera identyfikator wiadomości, po którym dołączone do magistrali urządzenia rozpoznają czy przesyłane po nagłówku dane są adresowane do nich czy do innych urządzeń. W poprawnie zaprojektowanej magistrali LIN nie występują konflikty, ponieważ wszystkie węzły Slave tylko odpowiadają na zapytania Mastera. Nie przewidziano arbitrażu na przykład w przypadkach jednoczesnej odpowiedzi kilku Slave’ów. Jeśli tak się stanie, musi być sygnalizowany błąd. Do wykrywania błędów wykorzystywana jest m.in. suma kontrolna przesyłana w każdym polu danych. Ponadto każdy nadajnik na bieżąco sprawdza czy stan linii odpowiada wysyłanej informacji i reaguje natychmiast, jeśli wykryje niezgodność. Wszystkie komunikaty oprócz synchronizujących mają budowę przypominająca ramkę protokołu UART. Składają się z bitu startu, 8 bitów informacyjnych i bitu stopu. Dane są przesyłane od najmłodszego
87
SPRZĘT do najstarszego bitu. Jak widać, nie ma tu wyróżnionego bitu parzystości, ale w polu identyfikacyjnym przekazującym informację o nadawcy, odbiorcy (jednym lub wielu), celu ramki i długości pola danych, dwa ostatnie bity pełnią taką funkcję. Na samą treść pozostaje 6 bitów. Znając już cel transmisji określany przez Mastera w identyfikatorze, odpowiednie urządzenia Slave przesyłają odpowiedź składającą się z pola danych (1, 2, 4 lub 8 bajtów) i sumy kontrolnej. Specyfikacja LIN zakłada ponadto możliwość usypiania urządzeń dołączonych do magistrali. Jest to realizowane przez przesłanie ramki usypiającej. Wyłączenie wyjść wszystkich urządzeń dołączonych do magistrali powoduje, że na linii panuje stan recesywny. Urządzenia budzą się po wystawieniu stanu dominującego (o czasie trwania odpowiadającym 8 bitom) przez dowolny węzeł dołączony do magistrali. Sygnał budzenia musi wyprzedzać najbliższą ramkę o czas odpowiadający 4...64 bitów.
Pomiary interfejsu LIN Jak zwykle pomiary rozpoczynamy od ustawienia parametrów badanego interfejsu, w tym przypadku LIN. Po naciśnięciu przycisku PROTOCOL na ekranie zostaje wyświetlona zakładka przedstawiona na rysunku 11. W polu „Bit rate” należy wprowadzić prędkość transmisji badanego interfejsu. Może to być dowolna wartość wpisana ręcznie lub jedna z opcji widocznych na liście rozwijanej. Oprogramowanie analizatora protokołów uwzględnia kilka wersji specyfikacji LIN, którą można wybrać z listy „LIN standard”. W większości pomiarów można skorzystać z automatycznego rozpoznawania standardu (opcja „Auto”). Pozostaje jeszcze wybranie wersji napięciowej części elektrycznej interfejsu. Tu również można skorzystać z predefiniowanych standardów dostępnych przez listę rozwijaną, ale próg logiki jest też ustawiany ręcznie, gdyby mierzone były nietypowe rozwiązania sprzętowe. Po tych czynnościach analizator jest już gotowy do pracy. Pomiary najczęściej polegają na sprawdzeniu czy w badanym systemie występują określone zdarzenia. Tak jak w poprzednich przykładach, i teraz najlepiej jest korzystać z odpowiednio dobranych zdarzeń wyzwalających. Pozwolą one jednoznacznie i stabilnie uchwycić interesujący nas stan interfejsu. Może też okazać się, że po ustawieniu układu wyzwalania w tryb „Normal” oscyloskop nie będzie wyzwalany, a jest to też jest informacja, mówiąca o tym, że określone zdarzenie nie występuje w badanym układzie. Powinno nas to szczególnie zadowolić, gdy poszukiwane będą błędy. Opcje wyzwalania są dostępne po naciśnięciu przycisku TRIGGER (rysunek 12). Teraz trzeba się zdecydować, która z opcji
88
Rysunek 11. Zakładka konfiguracyjna dla protokołu LIN listy rozwijanej „Type” będzie najlepsza w konkretnym przypadku. Pamiętamy o ustawieniu trybu wyzwalania „Normal”, który w większości przypadków będzie bardziej odpowiedni niż „Auto”. Po wybraniu zdarzenia wyzwalającego „Start of frame (Sync)” prawdopodobnie obraz nie będzie w pełni stabilny, gdyż będą na nim wyświetlane początki coraz to innych ramek. Opcja ta jest przydatna, gdy na magistrali LIN nie ma zbyt dużego ruchu.
Znacznie efektywniejsze będzie wyzwalanie na ramce o określonym identyfikatorze („Identifier”). Nie musi to być zresztą konkretna wartość, można zastosować również którąś z relacji: różny, mniejszy, większy, z zakresu, spoza zakresu. Po zdekodowaniu komunikatu identyfikacyjnego spełniającego wybrany warunek oscylogram zostaje stabilnie wyświetlony na ekranie (rysunek 13). Jeśli w rekordzie wyświetlania oscyloskopu znajdzie się kilka ramek o tym samym
Rysunek 12. Zakładka wyboru zdarzeń wyzwalających dla protokołu LIN ELEKTRONIKA PRAKTYCZNA 5/2015
Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz – CAN, LIN
Rysunek 13. Wyzwolenie po zlokalizowaniu ramki o identyfikatorze 3Dh identyfikatorze przyjętym do wyzwolenia, wyzwolenie nastąpi na pierwszej takiej ramce. Opcja „Identifier OR” pozwala natomiast monitorować do czterech ramek o zdefiniowanych przez użytkownika identyfikatorach. Wyzwolenie nastąpi na pierwszej ramce spełniającej jeden z tych warunków, więc cyfry wyświetlane przy opcjach na zakładce wyzwalania (rys. 12) nie mają znaczenia praktycznego. Każdą z czterech pozycji można za to zaznaczać lub odznaczać, przez co wybierane są tylko te identyfikatory, które mają być monitorowane. Kolejne zdarzenie wyzwalające to „Identifier + Data”. Ten tryb wyzwalania poznaliśmy już podczas badania protokołu CAN. Wyzwolenie następuje po wykryciu ramki o podanym identyfikatorze (lub zakresie identyfikatorów) oraz zdefiniowanej danej występującej na konkretnej pozycji pola danych. Przy wprowadzaniu wzorców identyfikatorów i danych można korzystać ze znaku „X” zastępującego dowolną cyfrę heksadecymalną na danej pozycji, więc identyfikator „3X” może oznaczać np. „3D”, „3C” itp. Jeśli bajty z pola danych będą traktowane
Rysunek 15. Ramka „Wakeup” ELEKTRONIKA PRAKTYCZNA 5/2015
Rysunek 14. Wyzwolenie po zlokalizowaniu ramki o identyfikatorze 33h zawierającej daną 01h na 3 bajcie pola danych
jako liczba, to opcją transfer („Big endian” lub „Little endian”) można określać czy wzorzec jest wprowadzany od mniej znaczącej danej czy od bardziej znaczącej. Na przykład zaznaczenie opcji „Little endian” i wprowadzenie wzorca dla poszukiwanych danych „53 B3” oznacza de facto poszukiwania ciągu kolejno nadawanych danych: „B3 53”, czyli bajt B3 pojawi się na magistrali przed 53. Na rysunku 14 przedstawiono efekt wyzwolenia po wprowadzeniu warunku: ID = 33h, dana = XX XX 01 (Big endian). Pozostały do rozpatrzenia jeszcze dwa zdarzenia, które mogą być wykorzystane do wyzwolenia oscyloskopu. Pierwszym z nich jest ramka budzenia urządzeń dołączonych do magistrali LIN („Wakeup”). Jak wiemy, jest to impuls ze stanem dominującym o czasie trwania spełniającym podany wcześniej warunek. Na rysunku 15 widoczne są takie ramki nadawane pomiędzy paczkami transmisji. W dolnej części ekranu ramkę tę powiększono funkcją Zoom. Ostatnia opcja wyzwalania pozwala lokalizować błędy występujące na magistrali LIN. Są to: błąd sumy kontrolnej, błąd
parzystości w polu identyfikatora i błąd synchronizacji. Przykład sygnalizacji takich błędów przedstawiono na rysunku 16. Na wykresie analizatora błędne pola są zaznaczane kolorem czerwonym. Należy zauważyć, że mimo braku arbitrażu w interfejsie LIN, zastosowane w nim mechanizmy kontroli poprawności transmisji są bardzo skuteczne. Przedstawione w trzech częściach artykułu pomiary najbardziej popularnych szeregowych interfejsów komunikacyjnych – UART/RS232, SPI, I2C, CAN i LIN wykonywane za pomocą oscyloskopów firmy Rohde&Schwarz potwierdziły wysoką ich przydatność do podobnych zadań. Algorytmy pomiarowe działają bezbłędnie, na uwagę zasługuje intuicyjna obsługa analizatora protokołów umożliwiająca jego obsługę nawet użytkownikom o małym doświadczeniu. W artykule opisano kilka przykładowych protokołów analizowanych oscyloskopami R&S. Możliwości tych przyrządów są jednak znacznie szersze. Wykupując odpowiednie opcje można badać również takie protokoły jak: FlexRay, MIL-1553, ARINC 429.
Jarosław Doliński, EP
Rysunek 16. Wyzwolenie po zlokalizowaniu ramek, w których wykryto błędy a) parzystości w polu ID b) sumy kontrolnej
89
Krok po kroku Kursy EP
Połączenie DS18B20 z STM32. Projekt dla środowiska CooCox
Do wykonania oprogramowania dla kontrolera potrzebne jest środowisko pozwalające na przetworzenie plików źródłowych w binarny kod wynikowy nadający się do zapisania do pamięci Flash. Pełne środowisko programistyczne to: edytor kodu źródłowego, oprogramowanie do zarządzania plikami projektu, kompilator, debuger, obsługa programatora do zapisu do pamięci Flash kontrolera. Takim bezpłatnym IDE (Integrated Development Enviroment) jest CooCox. Projekt procedur obsługujących magistralę 1-Wire będzie wykonany z jego użyciem, jednak pliki mogą być łatwo przystosowane dla dowolnego, innego kompilatora języka C dla STM32. Jako baza sprzętowa do eksperymentu posłuży Panel Edukacyjny AVT5465 z kontrolerem STM32F103RC. Procedury magistrali 1-Wire dadzą się uruchomić także na dowolnym innym kontrolerze z rodziny STM32.
90
ELEKTRONIKA PRAKTYCZNA 5/2015
Co to jest CooCox?
CooCox jest przeznaczony dla kontrolerów ARM z rdzeniem Cortex M0/M0+/M3/M4. Obsługiwane są układy takich firm jak Atmel, Energy Micro, Feescale, Holtek, Nuvoton, NXP, Spansion, ST, TI, Toshiba. CooCox bazuje na platformie Eclipse napisanej w Javie. W istocie jest nakładką na Eclipse z obsługą wtyczek do kompilatora, debugera itd. Integruje wszystkie składniki tworząc gotowe narzędzie o dość intuicyjnym działaniu. Dodatkowo oferuje zestaw gotowych szablonów do budowy nowych projektów dla różnych typów kontrolerów a także dostęp do bazy przykładowych projektów. Dzięki temu można szybko opanować podstawy jego obsługi.
Instalacja CooCoxa
CooCox pracuje z systemem operacyjnym Windows. Został przetestowany ze starym Windows XP jak
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Artykuł stanowi uzupełnienie kursu „STM-y nie tylko dla początkujących”. Pokazane zostaną przykłady procedur pozwalających kontrolerowi STM32 obsłużyć magistralę 1-Wire i podłączony termometr np. popularny DS18B20. Drugim celem będzie przybliżenie darmowego środowiska programistycznego CooCox. Za jego pomocą i korzystając z opisywanych procedur będzie można szybko napisać własny program dla STM32.
Krok po kroku Kursy EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
i z nowszym Windows 7. Instalacja pakietu przebiega w kilku prostych krokach i zazwyczaj jest bezproblemowa. Opiszę kolejne etapy zwracając uwagę na kluczowe momenty. 1. Instalowanie pakietu kompilatora GNU Tools for ARM. CooCox z definicji nie jest wyposażony w kompilator natomiast bezproblemowo może współpracować z pakietem kompilatorów GNU Tools for ARM. Pakiet należy zainstalować w pierwszej kolejności. Pod adresem https:// launchpad.net/gcc-arm-embedded/+download znajduje się strona projektu GNU GCC. Należy ściągnąć plik oznaczony „Windows installer”. Plik „waży” ponad 90 MB i automatycznie zainstaluje w systemie pakiet kompilatora. W momencie pisania tekstu była to wersja gcc-armnone-eabi-4_9-2015q1-20150306-win32.exe. Po uruchomieniu plik będzie instalował oprogramowanie. Najbezpieczniej zgodzić się na domyślne lokalizacje proponowane przez instalator. Uwaga! Wśród dostępnych powinna być zaznaczona opcja „Add path to enviroment variable”. Pozwala to na automatyczne dodanie do zmiennej środowiskowej „path” systemu Windows ścieżki dostępu do plików kompilatora. 2. Instalowanie CooCox CoIDE lub CoCenter. W następnej kolejności należy ze strony CooCox ściągnąć IDE, czyli środowisko programistyczne. Aby to zrobić należy najpierw się zarejestrować na stronie http://www1. coocox.org/CooCox_CoIDE.htm. Jak na razie jest to jedyne ograniczenie w dostępie. Samo środowisko można zainstalować na dwa sposoby – poprzez plik programu CoCenter automatycznie instalującego różne dodatkowe programy z grupy CooCox lub bezpośrednio. Jeżeli kogoś nie interesuje oprogramowanie dodatkowe lub napotkamy trudności przy pracy z CoCenter, można pobrać plik CoIde korzystając na stronie http://www1.coocox.org/CooCox_CoIDE.htm z opcji Download the latest CoIDE directly. Plik ma wielkość ponad 450 MB. 3. Ścieżka dostępu do pakietu kompilatora. Po zainstalowaniupakietu programistycznego CoIde można go uruchomić i ustawić ścieżkę dostępu do kompilatora GNU GCC. Zależnie od ustawień systemu operacyjnego Windows CooCox CoIde może dać się uruchomić bezpośrednio z zainstalowanego podczas instalacji na pulpicie skrótu, czasami trzeba to będzie zrobić z uprawnieniami administratora. Sam proces uruchamiania trwa dosyć długo, niekiedy pojawiają się ostrzeżenia o problemach którymi zazwyczaj można się nie przejmować. Należy wybrać z menu opcję: Project->Select Toolchain Path i podać ścieżkę dostępu do podkatalogu /bin kompilatora GNU GCC. Przykładowo może ona wyglądać tak: C:\ Program Files\GNU Tools ARM Embedded\4.8 2014q3\bin. Od tego momentu CooCox CoIDE nadaje się do pracy.
Nowy projekt
Pracując z pakietem CooCox CoIDE utworzenie nowego projektu jest proste i intuicyjne. Pokażę w punktach jak to się robi. 1. Wybór z menu opcji Project–>New Project otwiera okno, w którym należy podać katalog docelowy do zapamiętywania plików nowego projektu. Jeżeli pozostanie zaznaczona opcja „Use default path”,
pliki zostaną zapisane w standardowym podkatalogu programu „C:\ CooCox\CoIDE\workspace”. Jeżeli opcja nie zostanie zaznaczona, można wybrać dowolną lokalizację. Dodatkowo, trzeba podać nazwę wybraną dla nowego projektu, tak jak na rysunku 1. Rysunek 1. Podanie nazwy pro2. Następnie należy okre- jektu ślić czy projekt ma dotyczyć płytki ewaluacyjnej np. typu „Discovery” czy będzie tworzony dla samego kontrolera, tak jak na rysunku 2. 3. Jeżeli (jak w przykładzie) projekt dotyczy kontrolera, należy wskazać na liście jego typ, co pokazano na rysunku 3. 4. Korzystając z menu View Rysunek 2. Wybór płytki ewalu Repository można ot- acyjnej worzyć listę plików związanych z biblioteką standardową dla danego typu kontrolera. Zaznaczone pliki zostaną automatycznie dodane do projektu. W najprostszym przypadku, gdy oprogramowanie będzie tylko korzystało tylko z portów GPIO, należy wybrać następujące pozycje: • C Library, Rysunek 3. Wybór typu mikrokon• CMSIS core, trolera • CMSIS Boot, • RCC, • GPIO, • MISC. Do projektu automatycznie zostaną dodane pliki nagłówkowe i pliki biblioteki między innymi konfigurujące sygnały zegarowe kontrolera, pozwalające na sterowanie wyprowadzeniami GPIO, konieczne do obsługi samej biblioteki standardowej itd. Pulpit CooCox CoIDE będzie wyglądał podobnie do pokazanego na rysunku 4. W katalogu projektu zostaną automatycznie utworzone podkatalogi z dodanymi plikami. Struktura podkatalogów będzie identyczna jak w umieszczonym z lewej stronie pulpitu oknie „Project”. Kliknięcie na nazwę pliku w tym okienku powoduje jego otwarcie do edycji w centralnej części pulpitu. Do struktury plików dodany został także plik ze szkieletem procedury main().
Wybór programatora
Wybór z menu View Configuration Debugger pozwala na wybranie z listy Adapter posiadanego programator. Jeżeli to będzie np. ST-Link będzie służył zarówno do programowania jak i do debugowania. W opcji Download można zmienić ustawienia związane ze sposobem zapisu do pamięci FLASH kontrolera.
ELEKTRONIKA PRAKTYCZNA 5/2015
91
Krok po kroku Kursy EP
Rysunek 4. Wygląd pulpitu CooCox CoIDE
Ważne pliki projektu
Dodawanie do projektu własnych plików użytkownika
Użytkownik może dodawać do projektu własne podkatalogi grupujące dodatkowe pliki z własnymi procedurami. Dla utrzymania porządku drzewo katalogów w okienku „Project” na pulpicie powinno odzwierciedlać
Rysunek 5. Oznaczenie wyprowadzeń DS18B20 (obudowa TO-92)
92
ELEKTRONIKA PRAKTYCZNA 5/2015
rzeczywistą strukturę dodawanych podkatalogów w katalogu projektu. Kliknięcie prawym przyciskiem myszy w obrębie okienka „Project” wyświetla menu pozwalające dodawać podkatalogi, włączać do nich istniejące pliki, usuwać itp.
Założenia do projektu testującego procedury 1-Wire
Kiedy wiadomo już jak zainstalować CooCox CoIDE, pora na stworzenie projektu do testu procedur magistrali 1-Wire przyłączonej do kontrolera STM32. Ponieważ jako płytka testowa posłuży Panel Edukacyjny kontrolerem docelowym projektu będzie STM32F103RC. W przypadku tworzenia projektu dla innej płytki należy zadeklarować właściwy typ kontrolera. W opisywanych dalej procedurach magistrala 1-Wire obsługiwana jest przez port PB5. Numer portu może być w zasadzie dowolny, trzeba jedynie w pliku nagłówkowym zadeklarować inny wybrany port. Kontroler poprzez magistralę będzie się komunikował z czujnikiem DS18B20 lub DS18S20. Oznaczenie końcówek tego elementu w obudowie TO-92 pokazane zostało na rysunku 5. Z pozostałych dwu wyprowadzeń termometru jedno należy podłączyć do masy a drugie oznaczone Vdd do napięcia +3,3 V. Schemat połączenia elementu DS18B20 z Panelem Edukacyjnym pokazano na rysunku 6. Dodatkowym elementem jest rezystor 1,5 kV podciągający magistralę do napięcia zasilania +3,3 V. Połączenie końcówki Vdd do napięcia zasilającego nie jest niezbędne, jednak poprawia zasięg i stabilność pracy szczególnie, jeśli do magistrali miało by być dołączonych więcej czujników niż jeden. Jeżeli wyprowadzenie Vdd nie będzie podłączone do zasilania, musi zostać zwarte do masy. W przygotowanym projekcie o nazwie Termometr_ LCD założono, że kontroler będzie czytał temperaturę z jednego czujnika dołączonego do magistrali. Jednak bardzo łatwo projekt można przystosować do obsługi
Rysunek 6. Schemat połączenia DS18B20 z Panelem Edukacyjnym
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Pewne ustawienia w konkretnych plikach projektu mają szczególne znaczenie dla kompilacji i utworzenia pliku wynikowego. • cmsis_boot/stm32f10x.h – w pliku tym znajduje się deklaracja wartości stałej HSE_VALUE. W deklaracji przypisuje się wartość w hercach częstotliwości zewnętrznego rezonatora kwarcowego. Powinna ona odpowiadać rzeczywiście zastosowanemu rezonatorowi. Żeby uniknąć zmieniania pliku stm32f10x.h można zadeklarować wartość stałej HSE_VALUE w oddzielnym pliku nagłówkowym utworzonym przez użytkownika dla np. własnych globalnych definicji programu. Deklaracja może wyglądać następująco: #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */. • cmsis_boot/stm32f10x_conf.h – plik zawiera listę plików nagłówkowych, które powinny być dołączone do programu podczas kompilacji. Wstępnie wszystkie pliki są opatrzone komentarzem Należy usunąć komentarz z nazw dołączanych plików np. #include „stm32f10x_gpio.h” #include „stm32f10x_rcc.h” #include „misc.h” • cmsis_boot/system_stm32f10x.c – w tym pliku można wybrać częstotliwość głównego zegara systemowego. Dokonuje się tego przez usunięcie komentarza z wybranej deklaracji np. /* #define SYSCLK_FREQ_HSE HSE_VALUE */ /* #define SYSCLK_FREQ_24MHz 24000000 */ /* #define SYSCLK_FREQ_36MHz 36000000 */ /* #define SYSCLK_FREQ_48MHz 48000000 */ /* #define SYSCLK_FREQ_56MHz 56000000 */ #define SYSCLK_FREQ_72MHz 72000000
Krok po kroku Kursy EP
Listing 1. Deklaracje portu mikrokontrolera, do którego będzie dołączona magistrala 1-Wire #define LINIE_1Wn 2 typedef enum { LINIA_1_WIRE_WY = 0, LINIA_1_WIRE_WE = 1 }Linie_1W_TypeDef; //LINIA_1_WIRE_WY linia wyjściowa #define LINIA_1_WIRE_WY_PORT #define LINIA_1_WIRE_WY_PORT_NUM #define LINIA_1_WIRE_WY_CLK #define LINIA_1_WIRE_WY_PIN #define LINIA_1_WIRE_WY_PIN_SOURC //LINIA_1_WIRE_WE linia wejściowa #define LINIA_1_WIRE_WE_PORT #define LINIA_1_WIRE_WE_PORT_NUM #define LINIA_1_WIRE_WE_CLK #define LINIA_1_WIRE_WE_PIN #define LINIA_1_WIRE_WE_PIN_SOURC
sterująca magistralą 1-Wire GPIOB GPIO_PortSourceGPIOB RCC_APB2Periph_GPIOB GPIO_Pin_5 GPIO_PinSource5 czytająca z magistral1 1-Wire GPIOB GPIO_PortSourceGPIOB RCC_APB2Periph_GPIOB GPIO_Pin_5 GPIO_PinSource5
Listing 2. Procedury wykorzystywane do obsługi transmisji 1-Wire const uint32_t GPIO_LINIA_1W_CLK[LINIE_1Wn]={ LINIA_1_WIRE_WY_CLK, LINIA_1_WIRE_WE_CLK}; const uint16_t GPIO_LINIA_1W_PIN[LINIE_1Wn]={ LINIA_1_WIRE_WY_PIN, LINIA_1_WIRE_WE_PIN}; GPIO_TypeDef* GPIO_LINIA_1W_PORT[LINIE_1Wn]={ LINIA_1_WIRE_WY_PORT, LINIA_1_WIRE_WE_PORT};
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
//------------------------------------------------------------//procedura inicjacji linii 1-Wire void GPIO_Linie_1W_Konfig(Linie_1W_TypeDef Linia, GPIOMode_TypeDef tryb_pracy) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIO_Linie_1W Clock */ RCC_APB2PeriphClockCmd(GPIO_LINIA_1W_CLK[Linia], ENABLE); /* Configure the GPIO_Linie_1W pin*/ GPIO_InitStructure.GPIO_Pin = GPIO_LINIA_1W_PIN[Linia]; GPIO_InitStructure.GPIO_Mode =tryb_pracy; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIO_LINIA_1W_PORT[Linia], &GPIO_InitStructure); } //--------------------------------------//ustawienie stanu wysokiego na linii 1-Wire void GPIO_Linie_1W_High(Linie_1W_TypeDef Linia) { GPIO_LINIA_1W_PORT[Linia]->BSRR =GPIO_LINIA_1W_PIN[Linia]; } //--------------------------------------//ustawienie stanu niskiego na linii 1-Wire void GPIO_Linie_1W_Low(Linie_1W_TypeDef Linia) { GPIO_LINIA_1W_PORT[Linia]->BRR =GPIO_LINIA_1W_PIN[Linia]; } //---------------------------------------//procedura odczytu stanu linii 1-Wire uint32_t GPIO_Linie_1W_Odczyt(Linie_1W_TypeDef Linia) { return GPIO_ReadInputDataBit(GPIO_LINIA_1W_PORT[Linia], GPIO_LINIA_1W_PIN[Linia]); } //-------------------------------//procedura inicjacji linii portów void GPIO_1W_Inicjacja(void) { //GPIO_Linie_1W_Konfig(Linie_1W_TypeDef Linia, GPIOMode_TypeDef tryb_pracy) GPIO_Linie_1W_Konfig(LINIA_1_WIRE_WY, GPIO_Mode_Out_OD); GPIO_Linie_1W_High(LINIA_1_WIRE_WY); }
jednocześnie wielu układów DS18B20. Po odczycie danych z czujnika podlegają one konwersji na standardową postać temperatury w °C i są wyświetlane na wyświetlaczu LCD Panelu. Dodatkowo świecenie diod LED sygnalizuje fakt odczytu danych z czujnika a po prawidłowej konwersji sukces zakończenia operacji. Kolejne odczyty temperatury odbywają się w niekończącej pętli o czasie trwania cyklu ok. 2 sekund.
Struktura plików procedur obsługi magistrali 1-Wire
Pliki procedur zgrupowane zostały w dwu podkatalogach: „Procedury 1Wire” dla plików źródłowych i „procedury_1Wire” dla plików nagłówkowych. Dzięki temu powinno być ułatwione przenoszenie plików do innych projektów, w których będą wykorzystywane. Poniżej pokazano strukturę katalogów procedur:
/inc/procedury_1Wire Definicje_1Wire.h GPIO_1W_procedury.h Procedury_1W.h /Procedury 1Wire GPIO_1W_procedury.c Procedury_1W.c
Deklaracje portu sterującego magistralą 1-Wire
W pliku Definicje_1Wire.h znajdują się deklaracje portu mikrokontrolera, do którego będzie dołączona magistrala 1-Wire – pokazano je na listingu 1. Formalnie zadeklarowane zostały dwie linie: wyjściowa i wejściowa. Jednak obie wskazują na ten sam port PB5. Dwa oznaczenia pomagają łatwiej pokazać sytuacje, w których port odczytuje dane z magistrali lub je wysyła.
ELEKTRONIKA PRAKTYCZNA 5/2015
93
GPIO_Linie_1W_Low(LINIA_1_WIRE_WY); //start impulsu RESET Delay_us(480); //pauza 480us GPIO_Linie_1W_High(LINIA_1_WIRE_WY); Delay_us(70); //pauza 70us presence =GPIO_Linie_1W_Odczyt(LINIA_1_WIRE_WE); //test impulsu Presence if (presence ==0) { Delay_us(480); return(OW_PRESENCE); } Delay_us(30); //pauza 30us presence =GPIO_Linie_1W_Odczyt(LINIA_1_WIRE_WE); //2 test impulsu Presence Delay_us(480); if (presence ==0) return(OW_PRESENCE); else return(OW_NOPRESENCE);
94
ELEKTRONIKA PRAKTYCZNA 5/2015
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
} //--------------------------------------------------//Zapisanie bitu na magistralę 1-Wire void OW_write_bit(unsigned char bitval) //we: wartość bitu 0 lub 1 { if (bitval == 1) //zapisanie 1 na 1wire { GPIO_Linie_1W_Low(LINIA_1_WIRE_WY); //impuls bitu Delay_us(6); //pauza 6us dla bitu ‚1’ GPIO_Linie_1W_High(LINIA_1_WIRE_WY); //koniec impulsu Delay_us(64); //pauza 64us } else //zapisanie 0 na 1wire { GPIO_Linie_1W_Low(LINIA_1_WIRE_WY); //impuls bitu Delay_us(70); //pauza 70us dla bitu ‚0’ GPIO_Linie_1W_High(LINIA_1_WIRE_WY); //koniec impulsu } Delay_us(1); //pauza 1us } //--------------------------------------------------//Odczyt bitu z magistrali 1-Wire unsigned char OW_read_bit(void) //wy: wartość bitu 0 lub 1 { unsigned char val; GPIO_Linie_1W_Low(LINIA_1_WIRE_WY); //impuls bitu Delay_us(6); //pauza 6us GPIO_Linie_1W_High(LINIA_1_WIRE_WY); //koniec impulsu Delay_us(9); val=GPIO_Linie_1W_Odczyt(LINIA_1_WIRE_WE); //odczyt stanu magistrali 1-Wire val &= 0x01; //zerowanie bitów z wyjątkiem b.0 Delay_us(44); //pauza 44us return (val); } //--------------------------------------------------//Zapis bajtu na magistralę 1-Wire void OW_write_byte(unsigned char val) //we: bajt 0-255 { u8 a; u8 temp; Delay_us(1); //pauza 1us for(a=0;a<8;a++) //pętla dla zapisu 8 bitów { temp = val >> a; //kolejny bit bajtu temp &=0x01; OW_write_bit(temp); //zapis bitu na 1wire } Delay_us(1); //pauza 1us } //--------------------------------------------------//Odczyt bajtu z magistrali 1-Wire unsigned char OW_read_byte(void) //wy: odczytany bajt 0-255 { unsigned char i; unsigned char value=0; for (i=0;i<8;i++) //pętla dla odczytu 8 bitów { if(OW_read_bit()) value |= (0x01<
Krok po kroku Kursy EP
Listing 3. Podstawowe procedury obsługi transmisji 1-Wire //procedura inicjacji obsługi magistrali 1-Wire void Inicjacja_1_Wire(void) { GPIO_1W_Inicjacja(); } //--------------------------------------------------//Generowanie impulsu Reset na magistrali 1-Wire uint8_t OW_reset(void) //wy: OW_PRESENCE -odebrane potwierdzenie PRESENCE, // OW_NOPRESENCE -brak potwierdzenia PRESENCE { uint8_t presence;
Krok po kroku Kursy EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Listing 4. Złożone procedury magistrali 1-Wire //--------------------------------------------------//Wysłanie 8 bajtowego kodu ROM na magistralę 1-Wire void Send_rom(uint8_t* adr) //we: wskaźnik do buforu z kodem ROM { uint8_t a; for(a=0;a<8;a++) //pętla 8 bajtów (ID ROM) OW_write_byte(adr[a]); //wysłany kolejny bajt (ID ROM) } //--------------------------------------------------//inicjacja wyszukania i odczytu pierwszego ROM elementu dołączonego do magistrali uint8_t OW_search_first(uint8_t *ROM) //wy: status wyszukania { OW_LastDiscrepancy = 0; //zerowanie zmiennych OW_LastDevice = 0; // -//OW_LastFamilyDiscrepancy = 0; // -//return OW_search_next(ROM); //pierwszy odczyt } //--------------------------------------------------uint8_t OW_search_next(uint8_t *ROM) { uint8_t bit_test, search_direction; uint8_t bit_number = 1; uint8_t last_zero = 0; uint8_t rom_byte_number = 0; uint8_t rom_byte_mask = 1; uint8_t lastcrc8 = 0; uint8_t crcaccum = 0; int8_t next_result = OW_NOMODULES; // if the last call was not the last one if(!OW_LastDevice) { if(OW_reset() == OW_NOPRESENCE) { OW_LastDiscrepancy = 0; OW_LastFamilyDiscrepancy = 0; return OW_NOPRESENCE; } OW_write_byte(OW_SEARCH_ROM); Delay_us(100); do { bit_test = OW_read_bit() << 1; bit_test |= OW_read_bit(); if(bit_test == 3) { return(OW_BADWIRE); } else { if(bit_test > 0) { search_direction = !(bit_test & 0x01); // bit write value for search } else { // if this discrepancy is before the Last Discrepancy //on a previous OWNext then pick the same as last time if(bit_number < OW_LastDiscrepancy) { search_direction = ((*(ROM+rom_byte_number) & rom_byte_mask) > 0); } else { // if equal to last pick 1, if not then pick 0 search_direction = (bit_number == OW_LastDiscrepancy); } // if 0 was picked then record its position in LastZero if (search_direction == 0) { last_zero = bit_number; // check for Last discrepancy in family if (last_zero < 9) { OW_LastFamilyDiscrepancy = last_zero; } } } // set or clear the bit in the ROM byte rom_byte_number // with mask rom_byte_mask if(search_direction == 1) { *(ROM+rom_byte_number) |= rom_byte_mask; } else { *(ROM+rom_byte_number) &= ~rom_byte_mask; } // serial number search direction write bit OW_write_bit(search_direction); // increment the byte counter bit_number and shift the mask rom_byte_mask bit_number++; rom_byte_mask <<= 1; // if the mask is 0 then go to new ROM byte rom_byte_number // and reset mask if(rom_byte_mask == 0) { OW_crc(*(ROM+rom_byte_number), &crcaccum); // accumulate the CRC lastcrc8 = crcaccum; rom_byte_number++; rom_byte_mask = 1; } } } while(rom_byte_number < 8); // loop until through all ROM bytes 0-7 // if the search was successful then if(!(bit_number < 65) || lastcrc8) {
ELEKTRONIKA PRAKTYCZNA 5/2015
95
Inicjacja portu sterującego magistralą 1-Wire
Elementarne procedury magistrali 1-Wire
W pliku Procedury_1W.c znajdują się zasadnicze procedury komunikacji z termometrem DS18B20 poprzez magistralę 1-Wire. Można je podzielić na procedury elementarne i złożone. Pierwsze bezpośrednio współpracują z procedurami sterującymi portem PB.5. Są to: • Inicjacja_1_Wire – inicjowanie 1-Wire, czyli tylko inicjowanie trybu pracy portu.
96
ELEKTRONIKA PRAKTYCZNA 5/2015
Złożone procedury obsługi magistrali 1-Wire
Procedury złożone odwołując się do procedur elementarnych obsługują komunikację z elementem dołączonym do magistrali. Są to: • Send_rom – wysyłanie 8 bajtów adresu wybranego czujnika (termometru). • OW_search_first – przy pracy z wieloma czujnikami (termometrami) dołączonymi do magistrali inicjacja identyfikacji adresów kolejnych czujników.
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Na początku zanim cokolwiek zaczniemy wysyłać lub odczytywać z magistrali należy zainicjować port sterujący, przykładowo PB.5. Port jest ustawiany w trybie wyjścia z otwartym drenem. Jego obciążeniem jest dołączany na zewnątrz opornik 1,5 kV (rys. 6). W tym trybie jest możliwe manipulowanie poziomem napięcia wyjściowego portu oraz odczytanie poziomu na porcie. Odpowiednie procedury znajdują się w pliku GPIO_1W_ procedury.c. Oprócz inicjacji portu w pliku umieszczone zostały procedury ustawiania portu w stanie wysokim, niskim oraz odczytu stanu portu. Na listingu 2 zamieszczono wszystkie z wymienionych procedur. Na samym początku znajdują się tabele ze stałymi pozwalające w procedurach posługiwać się zadeklarowanymi w pliku Definicje_1Wire.h nazwami symbolicznymi: LINIA_1_ WIRE_WY i LINIA_1_WIRE_WE.
• OW_reset – procedura generowanie impulsu RESET i odbioru potwierdzenia PRESENCE z czujnika DS18B20. • OW_write_bit – zapisanie pojedynczego bitu na magistralę 1-Wire. • OW_read_bit – odczytanie pojedynczego bitu z magistrali 1-Wire. • OW_write_byte – wysłanie zmiennej 1-bajtowej na magistralę. • OW_read_byte –odczytanie z magistrali zmiennej 1-bajtowej. Procedury do prawidłowego działania wymagają odmierzania odcinków czasu rzędu mikrosekund. Realizuje to zewnętrzna procedura Delay_us(), która odmierza czas za pomocą pętli programowej, co zapewnia wystarczającą precyzję. Wymienione procedury zaprezentowano na listingu 3.
Krok po kroku Kursy EP
Listing 4. c.d. if(lastcrc8) { next_result = OW_BADCRC; } else { // search successful so set LastDiscrepancy,LastDevice,next_result OW_LastDiscrepancy = last_zero; OW_LastDevice = (OW_LastDiscrepancy == 0); next_result = OW_FOUND; } } } // if no device found then reset counters so next ‚next’ will be // like a first //if(next_result != OW_FOUND || ROM[0] == 0) { if(next_result != OW_FOUND || *(ROM) == 0) { OW_LastDiscrepancy = 0; OW_LastDevice = 0; OW_LastFamilyDiscrepancy = 0; } if(next_result == OW_FOUND && *(ROM) == 0x00) { next_result = OW_BADWIRE; } return next_result; } //--------------------------------------------------//CRC tabela uint8_t dscrc_table[] = { 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133,103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113,147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211,141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82,176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53}; //--------------------------------------------------void OW_crc(uint8_t x, uint8_t *crc) { *crc = (uint8_t)dscrc_table[(*crc) ^ x]; }
Krok po kroku Kursy EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Listing 5. Procedury odczytu i konwersji temperatury z czujników DS18B20 //procedura rejestracji podłączonego termometru: czujnika DS18B20 char Rejestracja_termometru(void) { uint8_t presence; presence =OW_search_first(&ROM[0]); if (presence ==OW_FOUND) return TRUE; else return FALSE; } //--------------------------------------------------//procedura pomiaru temperatury przez dołączony czujnik //adres czujnika w tabeli ROM[] uint8_t Procedura_pomiaru_temperatury(float *p_temperatura_term) //wy: TRUE -sukces, FALSE -błąd { #define TYP_DS18B20 0x28 #define TYP_DS18S20 0x10 char typ_termometru; uint8_t status; uint8_t scratchpad_tab[9], y, crc; typ_termometru =ROM[0]; //najmłodsze 8 bitów adresu ROM status =OW_reset(); if (status ==OW_NOPRESENCE) return FALSE; //błąd zarejestrowany czjnik nie daje się odczytać OW_write_byte(OW_SKIP_ROM); //Skip ROM command OW_write_byte(OW_CONVERT_T); //Convert T command GPIO_Linie_1W_Konfig(LINIA_1_WIRE_WY, GPIO_Mode_Out_PP); //mocne podciągnięcie 1-Wire do Vdd Delay_ms(1000); //czas konwersji 1s GPIO_Linie_1W_Konfig(LINIA_1_WIRE_WY, GPIO_Mode_Out_OD); //powrót do trybu pracy wyprowadzenia jako otwarty dren status =OW_reset(); if (status ==OW_NOPRESENCE) return FALSE; //błąd zarejestrowany czujnik nie daje się odczytać //odczyt danych temperatury z czujnika OW_write_byte(OW_MATCH_ROM); //Match ROM command Send_rom(&ROM[0]); //64-bit ROM code OW_write_byte(OW_READ_SCRATCHPAD); //Read Scratchpad command //Read Scratchpad 9 data bytes crc =0; for (y=0; y<9; y++) { scratchpad_tab[y] =OW_read_byte(); if (y<8) { OW_crc(scratchpad_tab[y], &crc); } } if (crc ==scratchpad_tab[8] & crc !=0) { //sumy kontrolne zgodne if (typ_termometru ==TYP_DS18B20) { *p_temperatura_term = Konwersja_rejestry_temperatura_DS18B20(scratchpad_tab[1], scratchpad_tab[0]); } if (typ_termometru ==TYP_DS18S20) { *p_temperatura_term = Konwersja_rejestry_temperatura_DS18S20(scratchpad_tab[1], scratchpad_tab[0]); } if ((typ_termometru !=TYP_DS18B20) && (typ_termometru !=TYP_DS18S20)) { //nie obsługiwany typ termometru, sygnalizacja błędu return FALSE; } } else { //błąd sumy kontrolnej return FALSE; } return TRUE; } //--------------------------------------------------//konwersja odczytanych rejestrów na wartość zmierzonej temperatury dla termometru DS18B20 float Konwersja_rejestry_temperatura_DS18B20(char rejestr_MSB, char rejestr_LSB) { #define STALA_TEMPERATURY_12B 0.0625 float stala, obliczona_temperatura; int wartosc_int; wartosc_int =rejestr_MSB <<8; wartosc_int =wartosc_int | rejestr_LSB; if ((rejestr_MSB &0x80) !=0) { stala =-STALA_TEMPERATURY_12B; wartosc_int =(~wartosc_int) & 0xFFFF; wartosc_int++; } else stala =STALA_TEMPERATURY_12B; obliczona_temperatura =wartosc_int; obliczona_temperatura =obliczona_temperatura * stala;
ELEKTRONIKA PRAKTYCZNA 5/2015
97
}
wartosc_int =rejestr_MSB <<8; wartosc_int =wartosc_int | rejestr_LSB; if ((rejestr_MSB &0x80) !=0) { stala =-STALA_TEMPERATURY_9B; wartosc_int =(~wartosc_int) & 0xFFFF; wartosc_int++; } else stala =STALA_TEMPERATURY_9B; obliczona_temperatura =wartosc_int; obliczona_temperatura =obliczona_temperatura * stala; return obliczona_temperatura;
• OW_search_next – przy pracy z wieloma czujnikami (termometrami) dołączonymi do magistrali procedura identyfikacji kolejnego czujnika. • OW_crc – procedura obliczania sumy kontrolnej odebranych danych z magistrali 1-Wire. Wymienione procedury pokazano na listingu 4.
Procedury odczytu i konwersji temperatury z czujników DS18B20
REKLAMA
98
ELEKTRONIKA PRAKTYCZNA 5/2015
• Konwersja_rejestry_temperatura_DS18B20 – konwersja danych odczytanych z czujnika DS18B20 na stopnie Celsiusa. • Konwersja_rejestry_temperatura_DS18S20 – konwersja danych odczytanych z czujnika DS18S20 na stopnie Celsiusa. Wymienione procedury przestawiono na listingu 5.
Wszystko razem
W głównej procedurze main() najpierw powinna nastąpić inicjacja procedur 1-Wire przez wywołanie Inicjacja_1_Wire(). Następnie powinien zostać odczytany numer dołączonego do magistrali termometru i zapisany w statycznej tabeli ROM[] poprzez wywołanie procedury Rejestracja_termometru(). Potem w pętli wywoływana jest procedura odczytu temperatury z dołączonego termometru przez status =Procedura_pomiaru_temperatury (&temperatura_term); Jeżeli status = TRUE, przesłana w zmiennej typu float temperatura_term może zostać wyświetlona na wyświetlaczu panelu LCD, po czym sytuacja się powtarza.
Ryszard Szymaniak, EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Opisane dalej procedury nie są właściwie związane z obsługą magistrali 1-Wire. Przeznaczone są do obsługi konkretnych czujników -termometrów poprzez odwołanie do procedur magistrali: • Rejestrowanie_termometru – rejestrowanie czujnika DS18B20 dołączonego do magistrali. Właściwie zadaniem procedury jest odczytanie numeru czujnika i zapamiętanie go w statycznej tabeli ROM[]. Można ją łatwo dostosować do odczytu numerów wielu dołączonych do magistrali czujników i zapamiętania ich numerów w dwu wymiarowej tabeli ROM[]. • Procedura_pomiaru_temperatury – właściwa procedura inicjacji i odczytu zmierzonej przez czujnik temperatury.
Krok po kroku Kursy EP
Listing 5. c.d. return obliczona_temperatura; } //--------------------------------------------------//konwersja odczytanych rejestrów na wartość zmierzonej temperatury dla termometru DS18S20 i DS1820 float Konwersja_rejestry_temperatura_DS18S20(char rejestr_MSB, char rejestr_LSB) { #define STALA_TEMPERATURY_9B 0.5 float stala, obliczona_temperatura; int wartosc_int;
T E M AT N U M E R U
Sterownik inteligentnej skrzynki na listy Prezentujemy projekt sterownika inteligentnej skrzynki na listy. Po wrzuceniu listu do skrzynki sterownik powiadomi jej właściciela wysyłając wiadomość e-mail. Do budowy urządzenia wykorzystamy moduł startowy CC3200 LaunchPad. Skrzynka na listy jest w każdym domu, firmie, instytucji publicznej. Dynamiczny rozwój technologii Internet Rzeczy sprawia, że coraz częściej zamiast skrzynek tradycyjnych montowane są skrzynki inteligentne. Inteligentne skrzynki na listy powiadamiają użytkownika o nowej korespondencji wrzuconej do skrzynki. Użytkownik nie musi niepotrzebnie sprawdzać zawartości skrzynki na listy. Otwiera skrzynkę tylko, gdy jest w niej nowy listy.
R111 oraz wykonujemy punkt lutowniczy w miejscu rezystora R110 (rysunek 3). Po dokonaniu zmian, do złącza J18 dołączamy antenę zewnętrzną Wi-Fi. Następnie do wejścia P08 mikrokontrolera CC3200 doprowadzamy
LOKALNE SIECI RADIOWE
Krok po kroku Kursy EP
Internet Rzeczy w przykładach (5)
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Budowa
Podstawowym elementem sterownika inteligentnej skrzynki na listy jest moduł startowy CC3200 LaunchPad. Za wykrywanie listów w skrzynce jest odpowiedzialna bariera optyczna IR. Zbudowano ją z podczerwonej diody nadawczej L-934SF4BT (3 mm, 880 nm, 7 mW ) oraz z fototranzystora QSE113 (50°, 880 nm). Sterownik jest zasilany z dwóch akumulatorków AA (NiMH o napięciu 1,2 V i pojemności 2500 mAh każdy). Akumulatorki są ładowane za pomocą niewielkiego fotoogniwa. Moduł CC3200 LaunchPad oraz akumulatorki zostały umieszczone w obudowie Z-44 o wymiarach 150 mm×80 mm×33 mm. Na obudowie zamontowano fotoogniwo (3 V/80 mA) oraz zewnętrzną antenę Wi-Fi (TRF1002 pracującą w paśmie 2,4 GHz, o zysku energetycznym 5 dBi). Elementy bariery optycznej zostały wyprowadzone na zewnętrz sterownika (docelowo montaż w skrzynce na listy).Wygląd urządzenia pokazano na fotografii 1. Diodę nadawczą IR włączono w kierunku przewodzenia. Dioda jest cały czas włączona. Prąd przewodzenia diody ogranicza zamontowany potencjometr. Kolektor fototranzystora IR dołączono do napięcia zasilania, a emiter do masy. Prąd emitera ogranicza zamontowany rezystor o wartości 10 kV. Do emitera jest dołączone wejście mikrokontrolera CC3200 (wyprowadzenie P08). Akumulatorki połączono szeregowo, dzięki utworzono ogniwo zasilające o napięciu 2,4 V i pojemności 2500 mAh. Na wyjściu ogniwa zasilającego zamontowano dwa kondensatory o pojemności 470 mF. Mają one za zadanie buforowanie spadków napięcia zasilania. Panel słoneczny został podłączony bezpośrednio do ogniwa zasilania. Schemat ideowy dodatkowych obwodów pokazano na rysunku 2. Budowę sterownika rozpoczynamy od zmian w module CC3200 LaunchPad. Aby zmniejszyć pobór prądu modułu, odlutowujemy diody D1 oraz D4. Żeby aktywować zewnętrzną antenę Wi-Fi usuwamy rezystor
Fotografia 1. Sterownik inteligentnej skrzynki na listy
Rysunek 2. Schemat elektryczny urządzenia: a) moduł zasilania, b) bariera optyczna
ELEKTRONIKA PRAKTYCZNA 5/2015
99
T E M AT N U M E R U
Hibernacja
W sterowniku skrzynki na listy został oprogramowany tryb hibernacji mikrokontrolera CC3200. W trybie hibernacji pobór prądu mikrokontrolera wynosi jedynie około 4 mA. Wyłączony jest rdzeń procesora, nie działają moduły urządzeń peryferyjnych, nie jest odświeżana pamięć RAM (za wyjątkiem dwóch rejestrów 32-bitowych). Aktywny jest jedynie 48-bitowy licznik Slow Clock Couter taktowany za pomocą rezonatora „zegarkowego” o częstotliwości 32768 Hz oraz wybrane wejścia mikrokontrolera
LOKALNE SIECI RADIOWE
sygnał z fototranzystora IR. Usuwamy zworkę z złącza J13 i do wyprowadzeń Vcc oraz GND złącza J20 doprowadzamy zasilanie urządzenia. W obudowie urządzenia montujemy moduł CC3200 LaunchPad, akumulatorki i kondensatory buforujące. Na obudowie montujemy mini panel słoneczny i antenę Wi-Fi. Elementy bariery optycznej montujemy wewnątrz skrzynki na listy. Diodę nadawczą IR oraz fototranzystor IR montujemy na spodzie skrzynki na listy na jej przeciwległych ścianach. Elementy bariery optycznej muszą być skierowane ku sobie (dioda nadawcza w kierunku
fototranzystora). Wówczas fototranzystor jest otwarty, a na wejściu P08 mikrokontrolera CC3200 występuje poziom wysoki. Gdy do skrzynki zostanie wrzucony list, bariera optyczna zostanie przerwana, fototranzystor zatkany, a na wejście P08 mikrokontrolera CC3200 zostanie wyzerowane. Opisaną zasadę działania zilustrowano na rysunku 4.
Krok po kroku Kursy EP
Do poprawnej pracy urządzenie pomiarowe z modułem CC3200 LauchPad wymaga dostępu do sieci Wi-Fi (2,4 GHz, standard IEEE 802.11 b/g/n). Należy zapewnić „widoczność” skrzynki i Access Point. Punktem dostępu do sieci może być router, komputer PC, telefon komórkowy. Parametry transmisji (nazwa SSID dla Access Point, szyfrowanie transmisji, ew. hasło dostępu do Access Point) wpisuje się w plikach konfiguracyjnych projektu.
Rysunek 3. Podłączenie zewnętrznej anteny Wi-Fi. Zmiany w module CC3200 LaunchPad
100
ELEKTRONIKA PRAKTYCZNA 5/2015
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Rysunek 4. Skrzynka na listy przekrój boczny a) brak listu w skrzynce b) list w skrzynce c) stan wejścia P08
Krok po kroku Kursy EP
Rysunek 6. Konfiguracja konta pocztowego Gmail barierę optyczną IR. Mikrokontroler CC3200 obudzi się z uśpienia i rozpocznie wysłanie wiadomości e-mail. Cykl pracy urządzenia powtórzy się. Sposób działania sterownika zilustrowano na rysunku 5. Przy braku połączenia z Access Point bądź błędu podczas wysyłania wiadomości e-mail mikrokontroler bezwarunkowo przechodzi w tryb hibernacji. Nad ciągłością pracy mikrokontroler CC3200 czuwa układ Watchdog. Domyślnie timer Watchdog jest wyłączony. Po zainicjowaniu czas pracy układu Watchdog wynosi 50 sekund.
E-Mail
Rysunek 5. Uproszczony schemat pracy sterownika
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
(2, 4, 11, 13, 17, 24) tzw. wejścia HibWakeUp. Ze stanu hibernacji mikrokontroler może być wyprowadzony przez licznik oraz przez zmianę poziomu na wejściu HibWakeUp. Po wyjściu z trybu hibernacji mikrokontroler jest ponownie uruchamiany. Kod programu jest uruchamiany od początku (jak po zerowaniu). W oprogramowaniu sterownika skrzynki na listy mikrokontroler CC3200 jest wyprowadzany ze stanu hibernacji za pomocą zmiany poziomu na wejściu HibWakeUp – licznik Slow Clock Couter jest nieużywany. Użyte wejścia numer 17 (P08), do którego jest doprowadzony fototranzystor IR. Zmiana poziomu logicznego na wejściu z wysokiego (aktywna bariera optyczna, brak listu w skrzynce) na niski (przerwana bariera optyczna, list w skrzynce) sprawia, że mikrokontroler CC3200 przechodzi do trybu aktywnego.
Funkcjonalność
Zadaniem sterownika inteligentnej skrzynki na listy jest informowanie użytkownika o nowych listach w skrzynce. Sterownik informuje użytkownika przesyłając wiadomość e-mail. Po włączeniu zasilania urządzenia konfigurowane są parametry pracy modułów peryferyjnych mikrokontrolera CC3200 (inicjalizowanie UART i Watchdog, konfigurowanie trybu hibernacji). Następnie mikrokontroler jest wprowadzany w tryb hibernacji. Wrzucenie listu do skrzynki (równoważne przerwaniu bariery optycznej IR) powoduje przejście mikrokontrolera do trybu aktywnego. Inicjowane są parametry pracy modułów peryferyjnych mikrokontrolera. Następnie jest uruchamiana część programu odpowiedzialna za przesłanie wiadomości e-mail. Sterownik łączy z punktem dostępu do sieci Access Point, loguje się do serwera poczty SMTP (tu wykorzystałem gmail) i przesyła do użytkownika wiadomość e-mail. Na zakończenie mikrokontroler CC3200 ponownie jest wprowadzany w tryb hibernacji. Jeśli użytkownik wyjmie list ze skrzynki, to bariera optyczna IR zostanie załączona. Wrzucenie nowego listu do skrzynki przerwie
Wiadomości e-mail do użytkownika są wysyłane przy wykorzystaniu serwera pocztowego Gmail za pomocą protokołu SMTP. Mikrokontroler CC3200 łączy się z serwerem Gmail, loguje się do konta użytkownika poczty i korzystając z protokołu SMTP przesyła wiadomość dla użytkownika skrzynki na listy. W ustawieniach projektu należy podać adres oraz hasło konta e-mail w serwisie Gmail (plik configure.h). Dodatkowo, w ustawieniach konta należy włączyć dostęp dla mniej bezpiecznych aplikacji. Opcję, którą należy skonfigurować pokazano na rysunku 6.
Oprogramowanie
Oprogramowania sterownika inteligentnej skrzynki na listy wykonano w środowisku CCSv6. Utworzony został projekt o nazwie iot_postbox. W projekcie użyto systemu czasu rzeczywistego freeRTOS, frameworka SimpleLink, driverów dla CC3200, biblioteki libmail do obsługi klienta SMTP (biblioteka w folderze SDK w lokalizacji /netapps/ smtp/client). Dodatkowo, wykorzystano przygotowane przez Texas Instruments interfejsy do obsługi urządzeń peryferyjnych i sieci (uart, udma, wdt, network). Projekt został skonfigurowany zgodnie z opisem publikowanym w poprzednich częściach kursu. Pliki źródłowe projektu dostępne są w materiałach dodatkowych dołączonych do artykułu. W katalogu source zostały umieszczone pliki z konfiguracją linii wejścia-wyjścia mikrokontrolera CC3200. Konfiguracja linii wejścia-wyjścia została wygenerowana przy użyciu oprogramowania Pin Mux Tool. W katalogach hardware i system zostały umieszczone pliki źródłowe oprogramowania. W katalogu hardware pliki do obsługi modułów sprzętowych mikrokontrolera CC3200 (UART, Watchdog). W katalogu system pliki do obsługi logiki pracy urządzenia (konfiguracja, obsługa sieci, wysyłanie wiadomości e-mail, obsługa trybu hibernacji itp.). W oprogramowaniu uruchomiony zostały system czasu rzeczywistego freeRTOS. Utworzony został wątek o nazwie system (plik system.c). W wątku wywoływane są procedury EmailSendTask oraz HibernateEnter. W procedurze EmailSendTask jest zestawiane połączenie z Access Point oraz jest uruchamiana obsługa wysyłania wiadomości e-mail. Konfigurowane są parametry serwera poczty (numer portu SMTP, adres IP serwera, metoda
ELEKTRONIKA PRAKTYCZNA 5/2015
101
T E M AT N U M E R U
long SetSourceEmail() { SlNetAppSourceEmail_t sourceEmailId; memcpy(sourceEmailId.Username,GMAIL_USER_NAME,strlen(GMAIL_USER_NAME)+1); return (sl_NetAppEmailSet(SL_NET_APP_EMAIL_ID,NETAPP_SOURCE_EMAIL, \ strlen(GMAIL_USER_NAME)+1, (unsigned char*)&sourceEmailId)); }
Krok po kroku Kursy EP
Listing 1. Procedury do obsługi e-mail Long SetAdvancedEmailParameters(unsigned long destinationIp) { SlNetAppEmailOpt_t eMailParameters; // Set Email Server Parameters eMailParameters.Family = AF_INET; eMailParameters.Port = GMAIL_HOST_PORT; eMailParameters.Ip = destinationIp; eMailParameters.SecurityMethod = SL_SO_SEC_METHOD_SSLV3; eMailParameters.SecurityCypher = SL_SEC_MASK_SSL_RSA_WITH_RC4_128_MD5; return (sl_NetAppEmailSet(SL_NET_APP_EMAIL_ID, NETAPP_ADVANCED_OPT, \ sizeof(SlNetAppEmailOpt_t),(unsigned char*)&eMailParameters)); }
long SetSourceEmailPassword() { SlNetAppSourcePassword_t sourceEmailPwd;
LOKALNE SIECI RADIOWE
}
memcpy(sourceEmailPwd.Password,GMAIL_USER_PASS,strlen(GMAIL_USER_PASS)+1); return (sl_NetAppEmailSet(SL_NET_APP_EMAIL_ID,NETAPP_PASSWORD, \ strlen(GMAIL_USER_PASS)+1, (unsigned char*)&sourceEmailPwd));
long SetDestinationEmail() { SlNetAppDestination_t destEmailAdd; memcpy(destEmailAdd.Email,RCPT_RFC,strlen(RCPT_RFC)+1); return (sl_NetAppEmailSet(SL_NET_APP_EMAIL_ID,NETAPP_DEST_EMAIL, \ strlen(RCPT_RFC)+1, (unsigned char *)&destEmailAdd)); } long {
}
SetEmailSubject() SlNetAppEmailSubject_t emailSubject; memcpy(emailSubject.Value,EMAIL_SUB,strlen(EMAIL_SUB)+1); return (sl_NetAppEmailSet(SL_NET_APP_EMAIL_ID,NETAPP_SUBJECT, \ strlen(EMAIL_SUB)+1, (unsigned char *)&emailSubject));
long SetEmailMessage(char * message) { char const value[] = „Hi\r\n” \ „From this site your postbox\r\n” \ „\r\n” \ „New letter is Avaliable !”; if(strlen(value)>63) return -1; memcpy(message,value,strlen(value)); *(message + strlen(value)) = 0; return 1; }
Uruchomienie
Projekt urządzenia pomiarowego dostępny jest w materiałach dodatkowych dołączonych do artykułu (folder iot_potboxs). Kopiujemy katalog z projektem do lokalizacji c:/ti/ep/. Następnie uruchamiamy oprogramowanie Code Composer Studio i importujemy projekt (Project Podczas pracy sterownik inteligentnej szafy na ubrania wysyła komunikaty serwisowe (procedura DBG_PRINT). Komunikaty są wysyłane za pomocą UART. Aby odebrać informacje wysyłane przez sterownik należy dołączyć moduł LaunchPad do portu USB komputera PC, a zworki JP6 i JP7 ustawić w pozycji Flash. Wówczas w systemie operacyjnym Windows pod nazwą CC3200LP Dual Port zostanie aktywowany port COM do obsługi modułu LaunchPad. Parametry transmisji UART to: 115200, n, 8, 1.
102
ELEKTRONIKA PRAKTYCZNA 5/2015
Import CCS Projects). W kolejnym kroku zmieniamy ustawienia oprogramowania. W pliku konfiguracyjnym configure.h ustawiamy nazwę SSID dla Access Point, hasło dostępu do Access Point oraz algorytm szyfrowania transmisji danych. Podajemy nazwę i hasło do konta Gmail, jeśli nie mamy konta pocztowego Gmail, to należy je założyć. Podajemy adres odbiorcy wiadomości. Żeby aktywować układ Watchdog w opcjach projektu w zakładce Predefined Symbols z pola Undefine NAME usuwamy wpis WATCHDOG_ON a następnie do pola Pre-define NAME dodajemy wpis WATCHDOG_ON. Po dokonaniu zmian kompilujemy projekt (Project Build All). W wyniku kompilacji jest tworzony plik binarny o nazwie iot_postbox.bin. Oprogramowanie wgrywamy korzystając z aplikacji CCS UniFlash (opis w poprzednich częściach kursu). Podczas programowania w złączu J13 należy zamontować zworkę. Następnie w skrzynce na listy montujemy elementy bariery optycznej. Moc diody nadawczej IR regulujemy za pomocą potencjometru. Im większa moc diody nadawczej, a co za tym idzie – zasięg działania bariery optycznej, tym większy pobór prądu (dla 100 V zasięg działania bariery optycznej to około 4 centymetrów, pobór prądu to około 7 mA). Żeby zmniejszyć pobór prądu urządzenia elementy bariery optycznej należy umieścić możliwie jak najbliżej siebie oraz za pomocą potencjometru
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
kodowania transmisji, algorytm kodowania transmisji). Jest ustawiany adres oraz hasło konta Gmail używanego do wysyłania wiadomości. Wprowadzane są adres odbiorcy, tytuł oraz treść wiadomości e-mail. Kod źródłowy procedur do obsługi e-mail pokazano na listingu 1. W procedurze HibernateEnter jest włączany tryb uśpienia. W programie można aktywować obsługę timera Watchdog. Czas pracy Watchdoga wynosi 50 sekund. Przy „zawieszeniu się” programu układ Watchdog wykona restart mikrokontrolera CC3200.
Krok po kroku Kursy EP
(zwiększając rezystancję) zmniejszyć moc diody nadawczej. Zaprogramowany moduł CC3200 LaunchPad umieszczamy w obudowie. Usuwamy zworkę z złącza J13. Montujemy panel słoneczny. Przyłączamy elementy bariery optycznej IR i włączamy zasilanie. Na zakończenie montujemy sterownik na ogrodzeniu. Przykład instalacji sterownika pokazano na fotografii 7.
Podsumowanie
W kolejnym, ostatnim odcinku kursu zaprezentujemy projekt serwera http. Zadaniem serwera będzie sterowanie automatyką domu. Do budowy serwera wykorzystamy moduł startowy CC3200 LaunchPad. Działanie urządzenia zostanie zoptymalizowane pod kątem poboru mocy.
REKLAMA
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Łukasz Krysiewicz, EP
Fotografia 7. Sterownik inteligentnej skrzynki na listy podczas pracy
ELEKTRONIKA PRAKTYCZNA 5/2015
103
Rozpoczynamy cykl artykułów stanowiący wprowadzenie do zastosowania modułów komunikacyjnych GSM w urządzeniach mikroprocesorowych. W kolejnych częściach zostaną omówione zasady projektowania sprzętu, korzystanie z poleceń AT modułów oraz zasady konstrukcji oprogramowania mikrokontrolera zapewniającego współpracę z modułem. Moduły GSM służą do komunikacji urządzeń przez sieć telefonii komórkowej. Umożliwiają nawiązywanie i odbieranie połączeń głosowych, nadawanie i odbiór wiadomości SMS, przesyłanie danych pomiędzy modemami oraz komunikację przez sieć Internet, np. nadawanie poczty elektronicznej oraz komunikację z serwerami w celu wymiany danych (w tym ściąganie plików i stron www). Nadają się więc one do różnych zastosowań – począwszy od prostych sterowników bram lub oświetlenia sterowanych dzwonieniem, poprzez alarmy, sterowniki/monitory obiektów z komunikacją SMS aż do sterowników z ciągłą komunikacją z obiektem przez Internet. Typowe moduły GSM zapewniają pełną funkcjonalność telefonu komórkowego – inicjowanie i odbieranie połączeń głosowych, nadawanie i odbiór wiadomości SMS oraz transmisję danych. Są przeznaczone do wbudowania w urządzenie mikroprocesorowe, więc nie mają interfejsu klawiatury ani wyświetlacza, a zamiast tego są wyposażone w interfejs komunikacyjny umożliwiający współpracę z mikrokontrolerem lub komputerem – zwykle jest to interfejs UART, niekiedy również USB.
Moduł Quectel M95
Wyprowadzenia modułu
Przed rozpoczęciem projektowania warto zapoznać się ze schematem logicznym modułu i jego wyprowadzeniami. Quectel M95 przypomina tu inne typowe moduły GSM. Wszystkie wyprowadzenia można podzielić na kilka grup:
104
ELEKTRONIKA PRAKTYCZNA 5/2015
• • • • • •
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Do celów demonstracyjnych wybrano tani i popularny moduł Quectel M95. Dokumentacja techniczna modułu jest dostępna na witrynie internetowej producenta – www.quectel.com. Dwa podstawowe dokumenty – to Quectel_M95_ Hardware_Design, opisujący układ od strony elektrycznej oraz Quectel_M95_AT_Commands_Manual, zawierający opis poleceń modułu. Ponadto, producent publikuje serię not aplikacyjnych dotyczących projektowania sprzętu i użycia poleceń. Moduł ma wymiary 19,9 mm×23,6 mm×2,65 mm i jest przeznaczony do montażu powierzchniowego. Obudowa modułu M95 umożliwia zastosowanie go w konstrukcjach amatorskich i w urządzeniach małoseryjnych. Może być łatwo przylutowana do płytki drukowanej, również w warunkach amatorskich, bez użycia specjalistycznego sprzętu.
zasilanie i antena, interfejs karty SIM, interfejs audio – mikrofon i głośnik, interfejs UART, linie sterowania i stanu modułu, interfejs diagnostyczny. Rozmieszczenie wyprowadzeń pokazano na rysunku 1. Do doprowadzenia głównego napięcia zasilającego służą linie VBAT. Ze względu na znaczny impulsowy pobór prądu moduł posiada po kilka linii zasilania VBAT i masy GND. Muszą one być połączone na płytce drukowanej urządzenia. Linia VRTC służy do podłączenia opcjonalnej baterii lub kondensatora „supercap”, który służy do podtrzymania zasilania wewnętrznego zegara czasu rzeczywistego w czasie, gdy główne napięcie zasilania jest nieobecne. Linia RF_ANT służy do przyłączenia anteny. Jeżeli używamy zewnętrznej anteny GSM, jej gniazdo należy umieścić jak najbliżej modułu M95, w odległości nieprzekraczającej kilku mm. Linie o nazwach rozpoczynających się od SIM służą do dołączenia karty SIM. Linie SIM_VDD i SIM_ GND powinny być dołączone wyłącznie do karty SIM – zapewniają one zasilanie karty przez moduł M95. Moduł umożliwi współpracę z dwiema kartami SIM. W takim przypadku wyprowadzenia 16, 17 i 18 służą jako SIM2_DATA, SIM2_CLK i SIM2_VDD. Linie sygnałowe łączące moduł z kartą SIM powinny być wyposażone w rezystory szeregowe 22…47 V, i kondensatory 33 pF połączone z masą, a jeżeli przewidujemy wymianę karty SIM przez użytkownika, należy również użyć układu zabezpieczenia ESD. Zasilanie każdej karty SIM powinno być zblokowane do masy SIM_GND kondensatorem 100 nF. Linie AGND, MICxx, SPK1x i LOUDSPKx umożliwiają dołączenie dwóch mikrofonów, słuchawki i głośnika. W zastosowaniach korzystających z toru audio istnieje możliwość przełączania pomiędzy dwoma zestawami złożonymi z mikrofonu i słuchawki lub głośnika. Linie interfejsu UART – RXD, TXD, RTS, CTS, DTR, DCD i RI – służą do komunikacji szeregowej. Warto zauważyć, że większość producentów oznacza linie modułów GSM zgodnie z konwencją przyjętą dla urządzenia DCE. Oznacza to, że linia RXD jest wyjściem danych, a linia TXD – wejściem. Dokumentacja modułu M95 wykazuje pewną niekonsekwencję – linia RXD jest wejściem danych, a linia TXD – wyjściem (jak dla urządzenia DTE), jednak pozostałe linie interfejsu
Krok po kroku Kursy EP
Projektowanie urządzeń z modułami GSM
Krok po kroku Kursy EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
mają oznaczenia jak w urządzeniu DCE – linie RTS i DTR są wejściami, a linie CTS, DCD i RI – wyjściami. Linia RTS pracuje jako RTR (Ready To Receive) – sygnał gotowości urządzenia nadrzędnego. Moduł nie transmituje danych przez interfejs UART, jeżeli to linia jest w stanie nieaktywnym (na poziomie wysokim). Linia RI służy do sygnalizowania wszelkich zdarzeń asynchronicznych przez moduł GSM. Jest ona uaktywniana m.in. przy rozmowie przychodzącej i przy nadejściu SMS. W praktyce linie DTR, DCD i RI na ogół nie są używane. Do połączenia z mikrokontrolerem sterującym używa się linii TXD i RXD oraz RTS i CTS. Użycie linii RTS jest potrzebne, gdy oprogramowanie mikrokontrolera nie gwarantuje ciągłej gotowości do odbioru danych z modułu. Jeżeli nie używamy linii RTS, powinna ona zostać na stałe zwarta do masy, sygnalizując w ten sposób gotowość mikrokontrolera do komunikacji z modułem. Linia CTS informuje mikrokontroler o gotowości modułu M95 do odbioru danych. Jej stan powinien być testowany przed wysłaniem każdego bajtu, gdyż moduł może nie być gotowy na przejęcie danych podczas wykonywania niektórych poleceń. Moduł M95 jest wyposażony w 4 linie służące do włączania/wyłączania modułu i sygnalizacji jego stanu. Wejście PWRKEY służy do włączania i wyłączania modułu. Jest to wejście przystosowane do sterowania z wyjścia typu „otwarty dren” lub przez tranzystor npn - jego stanem aktywnym jest zwarcie do masy. W celu włączenia modułu należy uaktywnić wejście na czas 2 sekund. W stanie włączenia moduł reaguje na uaktywnienie wejścia programowo – uaktywnienie wejścia na czas od 0,6…1 sekundy powinno spowodować wyłączenie modułu, po uprzednim wylogowaniu go z sieci GSM. Wejście EMERG_OFF umożliwia sprzętowe wymuszenie wyłączenia modułu. Podobnie jak PWRKEY jest ono przystosowane do sterowania z wyjścia typu „otwarty dren”. W celu wyłączenia modułu należy uaktywnić wejście EMERG_OFF na czas nie krótszy niż 20 ms. Firma Quectel, podobnie jak inni producenci modułów GSM, przyznaje, że moduł może się zawiesić podczas pracy i w związku z tym urządzenie powinno być wyposażone w możliwość awaryjnego, sprzętowego zerowania modułu. Wyjścia STATUS i NETLIGHT służą do sterowania diodami LED sygnalizującymi stan modułu. Ich ograniczona obciążalność prądowa nie umożliwia bezpośredniego podłączenia diod – mogą one natomiast sterować tranzystorami npn służącymi do sterowania diod. Wyjście STATUS sygnalizuje stan modemu. Poziom wysoki oznacza stan włączenia modułu, a poziom niski – stan wyłączenia. Przy włączaniu i wyłączaniu modułu przez wejście PWRKEY należy sprawdzać stan wyjścia STATUS. Wyjście NETLIGHT służy do sygnalizacji stanu połączenia z siecią GSM. Jego charakterystyka elektryczna jest taka sama, jak wyjścia STATUS. Stan połączenia jest sygnalizowany przez odstęp pomiędzy rozbłyskami diody, który wynosi: • 800 ms, jeśli moduł nie jest zalogowany w sieci GSM,
Rysunek 1. Rozmieszczenie wyprowadzeń modułu Quectel M95 • 2 s, jeśli moduł jest zalogowany i aktualnie nie transmituje danych, • 600 ms – podczas transmisji danych. Wyjście VDD_EXT udostępnia stabilizowane wewnątrz modułu napięcie 2,8 V, które może być użyte do zasilania układów połączonych z modułem. Maksymalny pobór prądu przez układy zewnętrzne zasilane z tego wyjścia może wynosić do 20 mA. Wyjście to jest aktywne tylko wtedy, gdy modem jest włączony. Jego użycie zostanie opisane w dalszej części tekstu. Linie DBG_RXD i DBG_TXD służą do celów diagnostycznych i nie są wykorzystywane w prostych układach z modułem M95.
Projektowanie urządzeń z modułami GSM Zasilanie modułu Moduł GSM narzuca szczególne wymagania na układ zasilania. Ciągły pobór prądu przez moduł nie przekracza kilkudziesięciu mA, jednak podczas komunikacji z siecią GSM średni pobór prądu rośnie do 400..600 mA, przy czym ma on charakter impulsowy – układ nadajnika radiowego pobiera prąd krótkimi impulsami o natężeniu dochodzącym nawet do 2 A. Jednocześnie producent określa maksymalny dopuszczalny chwilowy spadek napięcia zasilania podczas pracy modułu – dla M95 wynosi on 400 mV. Dla większości modułów, w tym dla M95, dopuszczalny zakres napięć zasilania wynosi 3,3…4.0 V. Częstym błędem projektowym, zwykle skutkującym błędną pracą urządzeń, jest zasilanie modułów GSM z napięcia 3,3 V, z którego zasilane są również inne części urządzenia. Nie należy tego robić z dwóch powodów – moduł powoduje zaburzenia i wahania napięcia zasilającego, co może mieć negatywny wpływ
ELEKTRONIKA PRAKTYCZNA 5/2015
105
Zasilanie mikrokontrolera Ponieważ w urządzeniu musimy mieć zasilacz dostarczający napięcia ok. 4 V dla modułu, do zasilania mikrokontrolera możemy użyć stabilizatora LDO, zasilanego napięciem zasilania modułu i wytwarzającego napięcie 3,3 V dla mikrokontrolera. Można tu użyć np. układu LM1108SF-3.3 lub LM1117-3.3.
Sterowanie włączaniem i wyłączaniem modułu przez mikrokontroler Ponieważ linie PWRKEY i EMERG_OFF są aktywowane przez zwarcie do masy, mogą one być sterowany bezpośrednio z wyjść portu GPIO mikrokontrolera pracujących w trybie z otwartym drenem. Projektując oprogramowanie należy zwrócić uwagę na to, by podczas inicjowania zagwarantować właściwe wysterowanie linii – należy tu kolejno: • ustawić wysoki poziom linii portu w rejestrze wyjściowym, • włączyć tryb OD dla linii portu, • ustawić linię jako wyjście.
Połączenie interfejsu UART Należy zwrócić uwagę na to, że układy logiczne modułu pracują w standardzie napięciowym CMOS 2,8 V. Projektując połączenie modułu z otoczeniem należy zapewnić właściwe poziomy logiczne na wejściach interfejsu UART modułu. Wejścia modułów GSM są zwykle bardzo podatne na zjawisko latchup. Nie wolno więc sterować wejść modułu bezpośrednio z wyjść układów logicznych, w tym mikrokontrolerów, zasilanych napięciem wyższym od 3,0 V. Następny problem, to wrażliwość na stan wysoki na wejściach logicznych w czasie, gdy moduł nie jest włączony – nie wolno wymuszać wysokiego poziomu logicznego na wejściach, gdy moduł nie jest aktywny, gdyż również grozi to zjawiskiem latchup powodującym często uszkodzenie układów modułu. Zabezpieczenie modułu przed uszkodzeniem na skutek podania na wejścia interfejsu UART napięcia przekraczającego napięcie zasilania można rozwiązać na dwa sposoby. Pierwsza możliwość – to zastosowanie do buforowania sygnałów wejściowych dla modułu GSM układu
ELEKTRONIKA PRAKTYCZNA 5/2015
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Rysunek 2. Schemat ideowy przykładowej aplikacji modułu Quectel M95
106
Krok po kroku Kursy EP
na działanie innych układów elektronicznych, a niska wartość napięcia zasilania praktycznie uniemożliwia zapewnienie poprawnego zasilania modułu, co powoduje jego niestabilną pracę i zawieszanie. Chcąc zapewnić poprawną pracę modułu należy zasilać go napięciem o wartości zbliżonej do górnej granicy dopuszczalnego zakresu – zalecane wartości to 3,9…4,2 V. Taki wybór napięcia zasilania zapewnia poprawne działanie modułu podczas nadawania oraz umożliwia uproszczenie układów zasilających dzięki zmniejszeniu wymagań dotyczących odpowiedzi impulsowej stabilizatora napięcia. Urządzenia z modułami GSM są zwykle zasilane z zasilaczy sieciowych, dostarczających napięcia 5…12 V. W wypadku zasilacza +5 V możemy użyć stabilizatora liniowego LDO lub stabilizatora impulsowego. Przy wyższych napięciach zasilania konieczne jest zastosowanie stabilizatora impulsowego, gdyż stabilizator liniowy musiałby wytracać zbyt dużą moc w postaci ciepła. Zastosowany układ stabilizatora liniowego powinien charakteryzować się dobrą odpowiedzią impulsową. Można tu np. użyć układu Sipex SPX3819 w wersji z regulowanym napięciem wyjściowym. Do konstrukcji stabilizatora impulsowego można użyć np. układu serii Microchip MCP163xx. Zastosowany układ powinien umożliwiać pracę ciągłą z natężeniem prądu 600 mA.
Krok po kroku Kursy EP
logicznego zasilanego z wyjścia VDD_EXT modułu. Do tego celu najlepiej zastosować układ z rodziny tolerującej podwyższone napięcia na wejściach, np. 74LVC2G17. W ten sposób jednocześnie zabezpieczymy moduł przed podaniem na wejście napięcia w stanie wyłączenia jak i zapewnimy translację poziomów logicznych pomiędzy mikrokontrolerem zasilanym dowolnym napięciem z zakresu 3…5 V i modułem. W praktyce nie ma powodu, by w urządzeniu używać mikrokontrolera zasilanego napięciem innym niż 3,3 V. W takim przypadku również musimy zadbać o właściwe wysterowanie wejść RXD i RTS, tak, aby nie uszkodzić modułu. Proste zabezpieczenie modułu polega na: • Ustawieniu wyjść mikrokontrolera sterujących liniami RXD i RTS modułu w tryb OD. • Podciągnięciu tych wyjść do wyjścia zasilania VDD_EXT rezystorami rzędu 3.3..4.7 kV. • Dodatkowym zabezpieczeniu wejść rezystorami szeregowymi 2…3,3 kV. Poziomy wejściowe mikrokontrolera zasilanego napięciem 3,3 V są zgodne z poziomami wyjściowymi modułu pracującymi w standardzie logicznym 2,8 V, więc nie jest tu potrzebna translacja poziomów. Dla zabezpieczenia przed skutkami ewentualnych błędów w oprogramowaniu można użyć rezystorów szeregowych 2…3,3 kV. Ponadto, w celu stłumienia ewentualnych zaburzeń pochodzących z bloku radiowego należy wszystkie używane linie interfejsu UART zablokować do masy kondensatorami ceramicznymi 33…39 pF.
Ze względu na częstotliwości pracy bloku radiowego oraz impulsowy charakter nadawania moduły GSM wymagają starannego podejścia do filtrowania zasilania. O ile producent nie zaleci inaczej, do wejścia zasilania modułu powinny być kolejno dołączone następujące kondensatory: • NP0 8,2 pF – do filtrowania zaburzeń z bloku radiowego działającego w pasmie 1800…2100 MHz. • NP0 39 pF – do filtrowania zaburzeń z bloku radiowego w pasmie 900 MHz. • X7R 100 nF – do filtrowania zasilania całego układu. • Tantalowy 330 mF do kompensowania szybkich skoków napięcia. • Aluminiowy low ESR min. 1500 mF (lub min. 2 szt 1000 mF) do magazynowania energii potrzebnej podczas nadawania (chwilowy pobór prądu może wtedy dochodzić do 2 A). Kondensatory aluminiowe powinny być wysokiej jakości, o podwyższonej temperaturze roboczej. Kondensatory te nagrzewają się podczas pracy modułu, co może powodować ich szybką degradację wskutek wysychania elektrolitu. Wszystkie kondensatory powinny być umieszczone jak najbliżej wejścia zasilania modułu, a ścieżki obwodu drukowanego służące do doprowadzenia masy i zasilania powinny być jak najszersze.
Sygnalizacja stanu Jeżeli w urządzeniu znajduje się mikrokontroler, można go również użyć do sterowania diod LED służących do sygnalizacji stanu, eliminując w ten sposób konieczność stosowania tranzystorów wzmacniających. Diody mogą być sterowane z wyjść PWM mikrokontrolera, co umożliwia uzyskanie dodatkowej funkcjonalności sygnalizacji, wykraczającej poza możliwości samego modułu M95. Przykładowy schemat urządzenia z modułem M95 zaprojektowanego z uwzględnieniem powyższych uwag przedstawiono na rysunku 2.
Podsumowanie
W kolejnym odcinku serii zostaną przedstawione podstawowe polecenia AT modułu Quectel M95.
REKLAMA
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Filtrowanie zasilania modułu
Grzegorz Mazur Bibliografia Quectel M95 Hardware Design v1.3, Quectel 2013 Quectel M95 AT Commands Manual v1.3, Quectel 2013
ELEKTRONIKA PRAKTYCZNA 5/2015
107
Komunikacja Bluetooth W dotychczasowych częściach kursu programowania aplikacji mobilnych pokazaliśmy, jak skorzystać z niektórych modułów dostępnych w telefonie lub tablecie oraz jak wysyłać proste zapytania przez Internet. Jednakże sensowne wykorzystanie zasobów sprzętowych wymaga bardziej dynamicznej komunikacji, której samymi żądaniami HTTP, inicjowanymi z systemu mobilnego, nie da się zrealizować. Dlatego teraz zademonstrujemy sposób użycia interfejsu komunikacyjnego Bluetooth. Będziemy bazować na projekcie sterowania bramą, takim jak wykonaliśmy w trzeciej części kursu, czyli podzielonym na dwie części: pilot zdalnego sterowania i napęd, ale zastępujemy poprzednie funkcje nowymi, więc tworzymy pliki kodu aplikacji od nowa.
Standardowy Bluetooth
108
ELEKTRONIKA PRAKTYCZNA 5/2015
Polecenia wtyczki Bluetooth Serial
Zainstalowany plugin tworzy obiekt bluetoothSerial, który zawiera 19 metod. Można je podzielić na dwie kategorie: metody odpowiadające za zestawianie połączeń i ustawienia interfejsu oraz funkcje do przesyłania i odbierania danych w oparciu o istniejące połączenie. Pierwsza grupa obejmuje następujące funkcje: • enable(sukces, porażka) – funkcja ta działa tylko w systemie Android i pozwala na wyświetlenie użytkownikowi komunikatu, by włączył interfejs Bluetooth w urządzeniu mobilnym. Jeśli to zrobi, wywoływana jest funkcja, której nazwa jest podana jako parametr sukces, a jeśli nie – funkcja, której nazwa jest podana jako drugi parametr; • isEnabled(sukces, porażka) – funkcja sprawdzająca, czy interfejs Bluetooth jest włączony;
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Modułu Bluetooth telefonu użyjemy do łączenia się z bramą, tak by móc sterować jej pracą bezprzewodowo, bez Wi-Fi czy sieci komórkowej. Niestety, ze względu na ograniczenia najbardziej popularnego, sprawdzonego i wygodnego pluginu do Cordovy obsługującego Bluetooth, będziemy zmuszeni łączyć się z niezależnym modułem Bluetooth napędu bramy. Używana przez nas wtyczka nie pozwala na komunikację pomiędzy dwoma urządzeniami mobilnymi. Nie zmniejsza to jednak wartości dydaktycznej przykładu – pokażemy jak wysyłać dane oraz jak je odbierać, a także jak w ogóle zarządzać całą komunikacją. Trzeba mieć przy tym na uwadze, że istnieją też duże różnice w implementacji Bluetooth pomiędzy poszczególnymi mobilnymi systemami operacyjnymi i wtyczka działa nieco inaczej na każdym z systemów. Jest kompatybilna z Androidem i Windows Phone, gdzie korzysta z typowego Bluetootha. W systemie iOS działa tylko z urządzeniami z modułami RedBearLab BLE, Adafruit Bluefruit LE, Laird BL600 i BlueGiga, czyli z iPhone 4S, iPhone 5, iPod 5 i iPadami 3 lub nowszymi – umożliwia na nich pracę jedynie w trybie Bluetooth Low Energy. Ponieważ (tak jak i większość czytelników) przykłady kompilujemy pod Androida, to na nim się skoncentrujemy. Wymieniona wtyczka to com.megster.cordova. bluetoothserial, która w naszym przypadku pobrała się w wersji 0.4.2. Instalujemy ją tak jak inne pluginy, w projekcie pilota bramy. Będziemy za jej pomocą zamienić dotychczas używaną komunikację ethernetową na żądania Bluetooth. Zaczniemy od wyjaśnienia, jak działa Bluetooth z punktu widzenia programisty, bez wnikania w szczegóły warstwy fizycznej. Bluetooth jest interfejsem szeregowym, a komunikacja pomiędzy urządzeniami odbywa się po formalnym nawiązaniu połączenia. Urządzenia rozpoznają się
po identyfikatorach, będących najczęściej numerami MAC. Oprócz nic, urządzenia mogą mieć swoje nazwy, dzięki którym użytkownik może łatwo rozpoznać, z którym sprzętem chce się komunikować. Aby rozpocząć komunikację, trzeba nawiązać połączenie z urządzeniem o określonym identyfikatorze. Jeśli identyfikator jest nieznany, przeprowadza się procedurę wykrywania, która pozwala na uzyskanie listy pobliskich urządzeń z włączonymi interfejsami Bluetooth. Można z niej wybrać pożądany sprzęt i spróbować nawiązać połączenie. Czasem jednak konieczne będzie tzw. parowanie, czyli autoryzowanie urządzeń, by mogły się ze sobą komunikować. Najczęściej parowanie odbywa się poprzez wprowadzenie 4-cyfrowego kodu PIN, podanego przez jedno z urządzeń (lub zapisanego w instrukcji tego urządzenia). Parowanie pozwala zapisać dany sprzęt Bluetooth w pamięci, co umożliwia automatyczne łączenie się np. telefonu z wybranym urządzeniem. Warto też wspomnieć o klasach urządzeń Bluetooth, które w ogólny sposób określają przeznaczenie danego sprzętu. Nie chodzi jednak o klasy interfejsu radiowego, które związane są z mocą nadawczą. Klasy urządzeń (Class of Device) są tworzone poprzez sumę bitową wartości odpowiadających poszczególnym funkcjom i cechom, opisującym dane urządzenie. Opis klas urządzeń Bluetooth zawarto w tabelach 1, 2 i 3.
Krok po kroku Kursy EP
Programowanie aplikacji mobilnych (4)
Krok po kroku Kursy EP
Tabela 1. Bity 13…23 24-bitowego numeru CoD, opisującego klasę urządzenia Bluetooth. Najstarsze bity określają typu usług realizowanych przez urządzenie 23 0 0 0 0 0 0 0 0 0 0 1
22 0 0 0 0 0 0 0 0 0 1 0
21 0 0 0 0 0 0 0 0 1 0 0
20 0 0 0 0 0 0 0 1 0 0 0
Bity 18
19 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0
17 0 0 0 0 1 0 0 0 0 0 0
Tabela 2. Bity 8…12 24-bitowego numeru CoD Bluetooth, określające główny typ urządzenia
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
12 0 0 0 0 0 0 0 0 0 0 1
11 0 0 0 0 0 0 0 0 1 1 1
Bity 10 0 0 0 0 1 1 1 1 0 0 1
Główna klasa urządzenia 9 0 0 1 1 0 0 1 1 0 0 1
8 0 1 0 1 0 1 0 1 0 1 1
Pozostałe Komputery Telefony Urządzenia sieciowe Urządzenia audio/wideo Urządzenia peryferyjne Urządzenia do obrazowania Urządzenia noszone Zabawki Urządzenia medyczne Nieskategoryzowane
• discoverUnpaired(sukces, porażka) – kolejna funkcja wspierana tylko przez system Android. Pozwala na wykrycie w otoczeniu niesparowanych urządzeń Bluetooth. Jeśli operacja się powiedzie, do funkcji o nazwie podanej jako pierwszy parametr przekazywany jest obiekt zawierający listę znalezionych urządzeń. Obiekt zwiera ich klasy, identyfikatory, adresy (w przypadku Androida identyczne z identyfikatorami) i nazwy; • list(sukces, porażka) – funkcja przeznaczona do wykrywania pobliskich, sparowanych urządzeń Bluetooth, choć w systemie iOS wyświetlane są wszystkie okoliczne, a nie tylko sparowane. W Androidzie przekazuje funkcji sukces obiekt identycznie skonstruowany, jak w przypadku funkcji discoverUnpaired(). W iOSie obiekt nie zawiera klasy ani adresu, tylko id, uuid (identyczne z id i będące zarazem adresem), nazwę, a niekiedy także informację o mocy sygnału. W Windows Phone podawane są identyfikatory, będące adresami MAC z dodatkowymi nawiasami oraz nazwy; • connect(adres_lub_identyfikator, sukces, porażka) – funkcja ta służy do nawiązywania połączenia z urządzeniem o znanym adresie lub identyfikatorze. W przypadku iOSa, jeśli nie poda się żadnego identyfikatora, nawiązywane jest połączenie z pierwszym znalezionym sprzętem. Funkcje sukcesu i porażki nie przyjmują żadnych parametrów. Ostatnia z nich wywoływana jest nie tylko gdy wystąpi błąd, ale również w momencie zakończenia połączenia poleceniem disconnect();
16 0 0 0 1 0 0 0 0 0 0 0
15 0 0 1 0 0 0 0 0 0 0 0
14 0 1 0 0 0 0 0 0 0 0 0
13 1 0 0 0 0 0 0 0 0 0 0
Główna klasa oferowanych usług Ograniczony tryb wykrywania Zarezerwowane Zarezerwowane Pozycjonowanie Usługi sieciowe Usługi wyjścia Usługi wejścia Przesyłanie obiektów Audio Telefonia Informacje
• connectInsecure(adres_lub_identyfikator, sukces, porażka) – funkcja działająca jedynie na Androidzie i pozwalająca na podłączenie niektórych starszych urządzeń Bluetooth. Takie połączenie jest niezabezpieczone i jest podatne na różnego rodzaju ataki, w związku z czym zaleca się stosowanie zwykłej metody connect(), o ile tylko to możliwe; • isConnected(sukces, porażka) – prosta funkcja, pozwalająca sprawdzić, czy telefon jest aktualnie podłączony do jakiegoś urządzenia Bluetooth; • disconnect(sukces, porażka) – funkcja umożliwiająca przerwanie aktywnego połączenia. Przyjmuje opcjonalne parametry. Funkcja porażki jest wywoływana tylko, gdy wystąpi błąd (np. gdy interfejs Bluetooth jest wyłączony), a samo zakończenie połączenia powoduje wywołanie funkcji podanej jako ostatni parametr w momencie wywoływania funkcji connect() lub connectInsecure(); • readRSSI(sukces, porażka) – funkcja umożliwiająca odczyt aktualnej mocy sygnału pochodzącego z podłączonego urządzenia Bluetooth. W przypadku sukcesu, przekazuje stosowną wartość jako parametr. Funkcja eksperymentalna; • showBluetoothSettings(sukces, porażka) – funkcja otwierająca okno ustawień Bluetooth, przyjmująca opcjonalnie dwa parametry. Metoda ta nie działa w systemie iOS. Przykładowa procedura nawiązania połączenia, może obejmować następujące funkcje, wywoływane po sobie, z tym, że poprzez przekazywanie nazw jako parametru „sukces”: • sprawdzenie, czy Bluetooth jest włączony: isEnabled(), • poproszenie użytkownika o włączenie interfejsu: enable(), • wykrycie dostępnych, sparowanych urządzeń: list(), • nawiązanie połączenia: connect(), • przesyłanie danych z regularnym sprawdzaniem funkcją isConnected() czy połączenie jest wciąż utrzymane, • rozłączenie połączenia: disconnect(). Transmisję danych z użyciem omawianego pluginu może być prowadzony na kilka różnych sposobów. Oto przydatne funkcje: • available(sukces, porażka) – funkcja sprawdza, ile danych znajduje się w buforze odczytu interfejsu Bluetooth urządzenia mobilnego. Uzyskana wartość jest przekazywana jako parametr funkcji sukces;
ELEKTRONIKA PRAKTYCZNA 5/2015
109
7
5
Bity
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
X X X X X X X X
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0
0 0 1 1 X X X X X X X X X X
0 1 0 1 X X X X X X X X X X
X X X X 0 0 0 0 0 0 0 0 1 1
X X X X 0 0 0 0 1 1 1 1 0 0
X X X 1
X X 1 X
X 1 X X
1 X X X
0
0
0
0
ELEKTRONIKA PRAKTYCZNA 5/2015
Podklasa urządzenia Bluetooth 3 2 Klasa główna: komputer 0 0 Nieskategoryzowane 0 1 Komputer biurkowy 1 0 Serwer 1 1 Laptop 0 0 Mały komputer przenośny 0 1 Komputer wielkości dłoni 1 0 Komputer wielkości zegarka 1 1 Tablet Klasa główna: telefon 0 0 Nieskategoryzowane 0 1 Komórkowy 1 0 Bezprzewodowy 1 1 Smartfon 0 0 Modem przewodowy 0 1 ISDN Klasa główna: urządzenie sieciowe X X W pełni dostępne X X Obciążone w od 1% do 17% X X Obciążone w od 17% do 33% X X Obciążone w od 33% do 50% X X Obciążone w od 50% do 67% X X Obciążone w od 67% do 83% X X Obciążone w od 83% do 99% X X Aktualnie niedostępne Klasa główna: urządzenie audio/wideo 0 0 Nieskategoryzowane 0 1 Zestaw słuchawkowy z mikrofonem 1 0 Zestaw głośnomówiący 1 1 Zarezerwowane 0 0 Mikrofon 0 1 Głośnik 1 0 Słuchawki 1 1 Przenośne audio 0 0 Audio samochodowe 0 1 Dekoder TV 1 0 Sprzęt Hi-Fi audio 1 1 Magnetowid 0 0 Aparat fotograficzny 0 1 Kamera 1 0 Wyświetlacz wideo 1 1 Wyświetlacz wideo z głośnikiem 0 0 Urządzenie do wideokonferencji 0 1 Zarezerwowane 1 0 Gra wideo Klasa główna: urządzenie peryferyjne X X Ani klawiatura ani inne urządzenie wskazujące X X Klawiatura X X Urządzenie wskazujące X X Urządzenie wskazujące z klawiaturą 0 0 Nieskategoryzowane 0 1 Dżojstik 1 0 Pad do gier 1 1 Pilot zdalnego sterowania 0 0 Urządzenie dotykowe 0 1 Tablet graficzny 1 0 Czytnik kart (np. SIM) 1 1 Cyfrowe pióro 0 0 Ręczny skaner kodów 0 1 Urządzenie do detekcji gestów (np. różdżka) Klasa główna: urządzenie do obrazowania 0 0 Wyświetlacz 0 0 Aparat fotograficzny 0 0 Skaner 0 0 Drukarka Klasa główna: urządzenie noszone 0 1 Zegarek 4
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
110
6
Krok po kroku Kursy EP
Tabela 3. Bity 2…7 24-bitowego numeru CoD Bluetooth, określające podklasy dla poszczególnych klas głównych urządzenia. Wartości „X” oznaczają możliwość przeprowadzenia sumowania bitowego w ramach danej podklasy, celem wskazania wielofunkcyjności danego urządzenia. Pozostałe konfiguracje bitowe są zarezerwowane. Bity #0 i #1 przyjmują wartość 0.
Krok po kroku Kursy EP Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Tabela 3. c.d. 0 0 0 0
7
0 0 0 0
6
0 0 0 0
5
Bity 0 0 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
4
1 1 0 0
3
2
Podklasa urządzenia Bluetooth
0 Pager 1 Kurtka 0 Hełm 1 Okulary Klasa główna: zabawka 0 1 Robot 1 0 Pojazd 1 1 Lalka 0 0 Kontroler 0 1 Gra Klasa główna: urządzenie medyczne 0 0 Niezdefiniowane 0 1 Miernik ciśnienia 1 0 Termometr 1 1 Waga 0 0 Miernik poziomu glukozy 0 1 Miernik stężenia CO2 we krwi 1 0 Ciśnieniomierz lub pulsomierz 1 1 Urządzenie do prezentacji informacji o zdrowiu 0 0 Krokomierz 0 1 Analizator składu ciała 1 0 Pikflometr 1 1 Urządzenie do kontroli przyjmowania leków 0 0 Proteza kolana 0 1 Proteza kostki 1 0 Urządzenie ogólnomedyczne 1 1 Urządzenie usprawniające poruszanie się
• read(sukces, porażka) – metoda pobiera z buforu odczytu wszystkie dostępne dane i przekazuje je jako parametr funkcji sukces. Jeśli w buforze nie było żadnych danych, wciąż wywoływana jest funkcja sukces tyle, że jej parametrem będzie pusty ciąg znaków; • readUntil(ogranicznik, sukces, porażka) – funkcja ułatwiająca odczyt ciągów znaków, zakończonych określonym ogranicznikiem. Pozwala np. na ładowanie danych linia po linii (ogranicznik ‘\n’), które są przekazywane jako parametr funkcji sukces. Jeśli bufor jest pusty, lub nie zawiera znaku ogranicznika, funkcja sukces wywoływana jest z pustym ciągiem znaków; • subscribe(ogranicznik, sukces, porażka) – metoda ułatwiająca cykliczne odczytywanie ciągów znaków z interfejsu Bluetooth. Stale monitoruje zawartość bufora i wywołuje funkcję sukces, gdy tylko w buforze pojawi się określony ogranicznik. Przekazywane parametry są identyczne, jak w readUntil(). Funkcja działa w pętli, aż do momentu wywołania polecenia unsubscribe(); • unscubscribe(sukces, porażka) – metoda przerywająca działanie funkcji subscribe(); • subscribeRawData(sukces, porażka) – metoda analogiczna do funkcji subscribe(), ale przeznaczona do danych binarnych. Jest wywoływana, gdy do bufora Bluetooth trafią jakiekolwiek dane. Odczytane dane są przekazywane do funkcji sukces w postaci obiektu klasy ArrayBuffer; • unsubscribeRawData(sukces, porażka) – metoda przerywająca działanie funkcji subscribeRawData(); • clear(sukces, porażka) – metoda ta czyści bufor interfejsu Bluetooth; • write(dane, sukces, porażka) – jedyna funkcja służąca do przesyłu, a nie odbioru danych. Pozwala
na wysłanie przez szeregowy interfejs Bluetooth pakiety danych, którym może być ciąg znaków, tablica liczb całkowitych (również podana w postaci wartości szesnastkowych) lub obiekt klasy ArrayBuffer. Wymiana danych, po pomyślnym nawiązaniu połączenia, może polegać np. na wywołaniu funkcji subscribe(), której drugim parametrem będzie funkcja obejmująca wywołanie metody write(). Dzięki temu urządzenie mobilne będzie mogło stale monitorować dane nadchodzące przez Bluetooth i odpowiadać na nadchodzące żądania.
Bluetooth w przykładzie
W naszym przypadku użyjemy interfejsu Bluetooth do otwierania i zamykania bramy poprzez przesyłanie jednoliterowych komend z pilota do napędu. Na program składać się będzie funkcja inicjalizacji połączenia Bluetooth, uruchamiana przy włączeniu pilota oraz przypisane do przycisków polecenia do przesyłania informacji interfejsem Bluetooth. Inicjalizację połączenia należy rozpocząć od wykrycia niesparowanego urządzenia poleceniem bluetoothSerial.discoverUnpaired(). Jeśli polecenie uda się pomyślnie wykonać, przechodzimy przez listę znalezionych urządzeń, w poszukiwaniu tego jednego, które chcemy obsługiwać, a adres tego jednego urządzenia, zapisujemy – listing 1. We fragmencie programu na list. 1, do iteracyjnego przeglądania listy znalezionych urządzeń używamy funkcji forEach. Kluczowe jest natomiast dokonanie połączenia z użyciem polecenia bluetoothSerial.connect(), dzięki któremu wszystkie przesyłane następnie dane Bluetoothem będą kierowane odpowiedniego urządzenia. Należy przy tym zaznaczyć, że skanowanie otoczenia i nawiązywanie połączenia Bluetooth trwa trochę
ELEKTRONIKA PRAKTYCZNA 5/2015
111
Listing 2. Kod JavaScript var app = { initialize: function() { this.bindEvents(); }, bindEvents: function() { document.addEventListener(‚deviceready’, this.onDeviceReady, false); }, onDeviceReady: function() { app.receivedEvent(‚deviceready’); app.bt1(); $(„#openButton”).click(function(){ bluetoothSerial.write(‘o’, function(){alert(„otwarto”);}, function(){alert(„wystąpił błąd”);}); }); $(„#closeButton”).click(function(){ bluetoothSerial.write(‘z’, function(){alert(„zamknięto”);}, function(){alert(„wystąpił błąd”);}); }); },
Krok po kroku Kursy EP
Listing 1. Wykrycie niesparowanych urządzeń devices.forEach(function(device) { if (device.name==”Brama”) { app.btaddr=device.address; bluetoothSerial.connect(app.btaddr, function(){alert(„połączono”);}, function(){alert(„zakończono połączenie”);}); } })
receivedEvent: function(id) { var parentElement = document.getElementById(id); var listeningElement = parentElement.querySelector(‚.listening’); var receivedElement = parentElement.querySelector(‚.received’); listeningElement.setAttribute(‚style’, ‚display:none;’); receivedElement.setAttribute(‚style’, ‚display:block;’); console.log(‚Received Event: ‚ + id); }, btaddr:null, bt1 : function(){ bluetoothSerial.discoverUnpaired(function(devices) { devices.forEach(function(device) { alert(device.address); if (device.name==”Brama”){ app.btaddr=device.address; bluetoothSerial.connect(app.btaddr, function(){alert(„połączono”);}, function() {alert(„zakończono połączenie”);}); } }) }, function(){ alert(„error”); }); }, }; app.initialize();
czasu i trzeba poczekać kilka-kilkanaście sekund, zanim operacja się powiedzie. Oczywiście, całość dzieje się w tle, dzięki czemu reszta aplikacji działa w międzyczasie normalnie. Wysyłanie polecenia otwarcia lub zamknięcia bramy przypiszemy do dwóch nowych przycisków. Naciśnięcie ich będzie powodowało przesłanie przez Bluetooth, poleceniem bluetoothSerial.write() pojedynczych znaków, które napęd będzie interpretował jako komendy otwarcia lub zamknięcia bramy.
112
ELEKTRONIKA PRAKTYCZNA 5/2015
$(„#openButton”).click(function(){ bluetoothSerial.write(‘o’, function() {alert(„otwarto”);}, function() {alert(„wystąpił błąd”);}); }); Cały dodatkowy kod JavaScript, potrzebny do realizacji funkcji otwierania i zamykania bramy Bluetoothem został zebrany na listingu 2, a na listingu 3 umieszczono potrzebny dodatkowy kod HTML.
Marcin Karbowniczek, EP
Poprzednie części kursu i dodatkowe materiały dostępne są na FTP: ftp://ep.com.pl, user: 11877, pass: ragjkdt9
Listing 3. Kod HTML (tylko fragment BODY)
Apache Cordova
Connecting to Device
Device is Ready
INFO
Zdaniem eksperta: Globalne wsparcie dla producentów i dostawców przemysłu motoryzacyjnego Wraz z utworzeniem nowego działu Automotive Business Unit firma Rutronik obiecuje wsparcie globalne ukierunkowane na producentów i dostawców. Uwe Rahn, Starszy Menedżer i Kierownik działu Automotive Business Unit, opowiada o szczegółach. Czego mogą oczekiwać klienci od nowego działu Automotive Business Unit? Klienci otrzymają na jednakowych zasadach wsparcie techniczne i handlowe udzielane przez zespół o długoletnim doświadczeniu w segmencie motoryzacyjnym. Będziemy pozostawać w ścisłej współpracy z wybranymi producentami. Co więcej, udzielamy wsparcia naszym klientom z Europy przy wejściu na rynki Ameryki i Azji. Dokładnie jakie usługi wchodzą w skład takiego wsparcia? Zastosowanie na masową skalę elektroniki w samochodach ze względu na coraz większe osieciowanie, zwracanie coraz większej uwagi na systemy komfortu, infotainment i wspomagania, jak również technologia e-mobility sprawiły, że niezbędne stają się elementy, których pierwotnym przeznaczeniem nie było zastosowanie w motoryzacji. Łączność internetowa w pojeździe oraz mniej lub bardziej bezpośredniej komunikacji, m.in. z wykorzystaniem bezpiecznych systemów, stawiają przed każdym projektantem ogromne wyzwania. Dzięki naszemu doświadczeniu zarówno w obszarze motoryzacji, jak i elektroniki oraz dzięki ścisłej współpracy z producentami możemy służyć pomocą, aby nasi klienci mogli poświęcić całą uwagę ich aplikacjami. ELEKTRONIKA PRAKTYCZNA 5/2015
Kluczowe w naszej globalnej działalności są centralne technologie informacyjne dostępne na całym świecie. Istotnym elementem jest tutaj nasza umiejętność centralnej obsługi wszystkich powiadomień PCN i EOL w jednej bazie danych, dzięki której wszyscy klienci i usługodawcy na całym świecie mają dostęp do danych o jakości, do której są przyzwyczajeni. Te systemy IT są stopniowo rozszerzane, np. o informacje dotyczące norm i certyfikacji, jak chociażby AECQ-100 lub -200, PPAP czy APQP (Advanced Product Quality Planning), dokumenty do FMEA, czyli analiz skutków, a nawet opisy procesów zgodnych z VDA. Wsparcie procesowe jest kolejnym ważnym aspektem. Profil wymagań wielu dostawców drugiego poziomu jest jeszcze bardziej surowy. Takim dostawcom możemy służyć pomocą podczas opracowywania i wdrażania procesów w sposób analogiczny do pomocy udzielanej dostawcom pierwszego poziomu. Trzecim bardzo istotnym elementem jest wsparcie oferowane naszym międzynarodowym klientom na rynkach północnoamerykańskim i azjatyckim. W tym celu Business Unit będzie dostosowany do warunków globalnych, wraz z regionalnymi filiami RUTRONIK oraz naszymi producentami na miejscu. Z jakimi producentami współpracujecie w nowym dziale Business Unit? Obecną sieć będziemy rozbudowywać w kolejnych latach – jednak wciąż ważniejsza dla nas będzie jakość niż ilość. Wybrani partnerzy muszą spełniać pewne kryteria, które naszym zdaniem są absolutnie konieczne dla naszych klientów. W szczególności chodzi tu o odpowiednie innowacyjne portfolio produktów motoryzacyjnych oraz ogólnoświatowy zasięg.
113
INFO Jak wygląda współpraca z tymi partnerami? Członkowie naszego działu utrzymują ścisły kontakt z osobami wyznaczonymi przez producenta do kontaktu. Już we wczesnym etapie odbywają oni specjalne szkolenia dotyczące najnowszych pochodnych. My natomiast informujemy producentów o aktualnym zapotrzebowaniu naszych klientów. Można powiedzieć, że trzymamy rękę na pulsie rynku. Już od kilku lat organizujemy Tech Days. Celem tego wydarzenia jest ukierunkowana wymiana wiedzy między wybranym kręgiem klientów a naszymi specjalnymi producentami. Po Tech Days zazwyczaj odbywają się dostosowane do potrzeb klientów warsztaty Expert Design Workshop z producentem, które dotyczą konkretnej aplikacji klienckiej i architektury jej systemu. Na jakich produktach koncentruje się aktualnie dział? Oprócz tworzonych obecnie specjalnie do zastosowań motoryzacyjnych nowych półprzewodników z zakresu mikrokontrolerów i MOSFET koncentrujemy się na przykład na wielowarstwowych kondensatorach ceramicznych MLCC, które mogą być wykorzystywane w zastosowaniach na rzecz bezpieczeństwa. Firma AVX stworzyła własną serię Automotive Plus zgodną z normą AEC-Q200. Te kondensatory MLCC odznaczają się wysoką niezawodnością i odpornością na oddziaływanie mechaniczne i termiczne. Niektóre produkty można zastosować nawet w temperaturach do 250°C. Nowe kondensatory charakteryzują się bardzo wysoką obciążalnością prądową oraz wysoką opornością izolacji, a także niskim wskaźnikiem ESR/ESL. Zostały one stworzone do najbardziej wyszukanych zastosowań, jak na przykład przełączniki wysokoprądowe, technologia lotnicza i kosmiczna czy auta hybrydowe. Kolejnym przykładem z zakresu produktów elektromechanicznych są nowe kontakty zaciskowe znajdujące się w ofercie JAE. Dzięki nim można szybko, łatwo i tanio połączyć każdy rodzaj przewodu z płytką obwodu drukowanego, co sprawia, że połączenie to bardzo trudno rozdzielić. Co więcej, charakteryzuje się ono wysokim stopniem bezpieczeństwa elektrycznego i mechanicznego. W zastosowaniach motoryzacyjnych takie połączenie jest oddawane do użytku, a następnie wprowadzana jest osłonka. Pominięcie tego pozwala na ogromne oszczędności w zakresie kosztów i miejsca. Przy jakich zastosowaniach zapotrzebowanie na pomoc jest Pana zdaniem największe? Należą do nich z pewnością najnowsze trendy, takie jak: e-mobility, komunikacja car-to-car czy osieciowanie w pojeździe, w tym systemy infotainment i wspomagania jazdy, tak zwane systemy ADAS, czy autonomiczna jazda na różnych poziomach zaawansowania, od jazdy tylko przez kierowcę po jazdę wspomaganą, częściowo wspomaganą, wysoce i całkowicie automatyczną. Ponadto ogromnym obszarem wymagającym konsultacji i porad są coraz wyższe wymogi bezpieczeństwa zgodnie z ISO 26262, np. w zakresie aplikacji pokładowych przy różnych zakresach napięć od 12, 24 czy 24 V do nawet 450 V w systemach hybrydowych. Również oświetlenie LED stanowi jeden z istotnych tematów. Obecne nowoczesne zastosowania oświetlenia LED do jazdy dziennej
charakteryzują się poborem mocy w granicach ok. 15 W – i to przy jednoczesnej dużo lepszej widoczności dla innych uczestników ruchu. Jest to równoznaczne z oszczędnością rzędu 0,2 l benzyny na 100 km, co przekłada się na około o 4 g mniejszą emisję CO2 na każdy przejechany kilometr. Kolejny etap rozwoju w tym obszarze będzie realizowany od 2017 r. z zastosowaniem diod OLED. O ile zastosowanie technologii OLED nie było do tej pory możliwe w każdym z obszarów, np. w wyświetlaczach o wysokiej rozdzielczości, w przyszłości będzie ona wykorzystywana w autach nawet jako światła tylne czy kierunkowskazy. Przyczyną takiego zastosowania jest fakt, że w przypadku tych diod potrzeba niewiele miejsca, a na dodatek można je zaprojektować tak, aby stanowiły wypukłe lub wklęsłe źródło światła. Diody OLED będą również unowocześniać wnętrza pojazdów. Obecnie trwa praca nad rozwiązaniami ambientowymi w zakresie przestrzeni na nogi, panelu sufitowego, deski rozdzielczej czy oświetlenia drzwi w różnorodnych wersjach. Ostatecznie cała koncepcja designerska dotycząca aut znajduje się obecnie w przełomowej fazie, jak w żadnej innej dziedzinie. Chodzi tutaj o przejście od mechaniki do elektroniki. Dlatego też poziom niepewności i w związku z tym również zapotrzebowania na doradztwo jest bardzo wysoki. Jednocześnie europejscy sprzedawcy doświadczają coraz większej presji konkurencyjnej ze strony nowych sprzedawców, szczególnie tych z krajów BRICS: Brazylii, Rosji, Indii, Chin i RPA. Uważamy, że mamy właściwą pozycję, by zaoferować naszym klientom wsparcie, którego potrzebują. Co w tym zakresie wyróżnia Automotive Business Unit? Przede wszystkim nasze wieloletnie doświadczenie. Udział sektora motoryzacyjnego w Rutronik wynosi ponad 45%, w związku z czym jest to dla nas od dawna najważniejszy sektor. Oznacza to, że: wiemy, czego potrzebują nasi klienci, mówimy ich językiem, znamy procesy, wymogi i zasady. Ponadto od wielu lat utrzymujemy ścisłe kontakty z istotnymi producentami w tym innowacyjnym segmencie. Dotyczy to jednak również waszej dotychczasowej oferty. Skąd więc nagle oddzielny dział Business Unit? Chcemy połączyć szczególne wsparcie, know-how i synergie z producentami i ich produktami oraz udostępnić je globalnie naszym klientom. Mógłby Pan przedstawić w kilku zdaniach Business Unit? Tak, z przyjemnością. Nasz zespół składa się z doświadczonych specjalnych FAE dedykowanych do zastosowań motoryzacyjnych, których wspierają nasi koledzy z działu sprzedaży zewnętrznej, wewnętrznej oraz administracji. Ponadto specjaliści motoryzacyjni pełnią funkcję łącznika dla pracowników z działu produktów, jak na przykład zasilanie elektryczne, mikrokontrolery, produkty pasywne i elektromechaniczne. Globalnym działem zarządzam ja z siedziby w Ispringen. Natomiast mój partner biznesowy, Lutz Henkel, wspiera nowy rynek północnoamerykański w dziale. Obaj mamy za sobą ponad 25-letnie doświadczenie na różnych stanowiskach u dostawców pierwszego poziomu i dystrybutorów. Nasi koledzy w oddziałach na całym świecie na miejscu udzielają wsparcia klientom w ścisłym porozumieniu z nami.
Seminarium „Designing with Freescale” kolejny raz w Polsce
którego zostaną zaprezentowane najnowsze produkty firmy oraz jej partnerów. Jak w ubiegłych latach, jest to spotkanie nie tyle mające charakter marketingowy, ile techniczny. Jak mogliśmy się przekonać przy okazji poprzednich edycji, produkty są prezentowane przez
Firma Freescale organizuje jednodniowe seminarium przeznaczone dla projektantów i programistów systemów embedded, podczas
114
ELEKTRONIKA PRAKTYCZNA 5/2015
INFO inżynierów i dla inżynierów. Dlatego też, jeśli Ci mają jakieś pytania, problemy techniczne, szukają nowych i nowoczesnych rozwiązań, to jest właściwe miejsce. Seminarium „Designing with Freescale” odbędzie się 18 czerwca w Warszawie, w hotelu Novotel przy ul. Marszałkowskiej 94/98. Rejestracja uczestników i wydawanie materiałów dydaktycznych rozpoczyna się o godzinie 8:00, natomiast wykłady o godz. 9:00. Seminarium jest bezpłatne – jedynym warunkiem uczestnictwa jest wcześniejsze zarejestrowanie się za pomocą strony internetowej http://goo.gl/vuOcpI.
komunikacji przemysłowej do szeroko pojętej automatyki przemysłowej, elektroenergetyki oraz dziedzin pokrewnych. Gościnnie zostaną także zaprezentowane rozwiązania firmy Mean Well. Dodatkowo podczas spotkania uczestnicy będą mieli możliwość zapoznania się realnymi przykładami omawianych rozwiązań z uwzględnieniem praktycznych aspektów konfiguracji prowadzonych w formie warsztatów. Seminarium odbędzie się 26 maja w Katowicach. Pod linkiem: http://goo.gl/LL5xhw można zapoznać się z agendą oraz szczegółami dotyczącymi imprezy.
Otwarcie nowej siedziby Phoenix Contact W marcu miało miejsce radosne wydarzenie – otwarcie nowej siedziby Phoenix Contact. Była to uroczystość szczególna bo dedykowana pracownikom i ich rodzinom. Z jedynej okazji poznania nowego miejsca pracy zlokalizowanego we Wrocławskim Parku Biznesu skorzystało ponad 100 członków rodzin. Prezes Phoenix Contact Maciej Merek powitał wszystkich gości dziękując za wsparcie i zaangażowanie w codziennej prac ale również podczas przygotowań jak i samej przeprowadzki. Dzięki sprawnemu przeprowadzeniu tego procesu był on właściwie niezauważalny dla klientów. Phoenix Contact na początku tego roku przeniósł siedzibę do nowego biura o powierzchni ponad 2500 m kwadratowych. W nowocześnie urządzonych wnętrzach znajdują się biura, sale szkoleniowe i show room produktowy. Dodatkowo dzień rodzinny był też niepowtarzalną okazją do zwiedzenia magazynu, który normalnie jest niedostępny dla osób postronnych. Na powierzchni ponad 1000 m kwadratowych przygotowano nowoczesny i ergonomiczny magazyn na ponad 12 000 lokalizacji. Podczas całego dnia dla gości zorganizowano szereg atrakcji, podczas których każdy mógł znaleźć coś dla siebie. Szczególnym powodzeniem cieszyły się warsztaty z automatyki oraz prezentacje chemiczne. Na koniec wydarzenia przygotowano dodatkową atrakcję. Przed naszym nowym biurem zamieszkał krasnal, jednoznacznie kojarzący się z wrocławskimi klimatami. Bo w końcu Phoenix Contact stał się firmą z siedzibą we Wrocławiu!
MOXA Solution Day – Katowice 2015 Elmark Automatyka serdecznie zaprasza na kolejne spotkanie z firmą Moxa, na którym zostaną zaprezentowane najnowsze rozwiązania
Firma Farnell element14 podpisuje pierwszą umowę na dystrybucję zestawu startowego ARM mbed IoT do rozwiązań z branży Internetu rzeczy Firma Farnell element14 podpisała umowę z firmą ARM, dzięki której będzie pierwszym dystrybutorem zaprezentowanego niedawno zestawu startowego ARM mbed IoT – Ethernet Edition for IBM Internet of
REKLAMA
ELEKTRONIKA PRAKTYCZNA 5/2015
115
INFO
Things Foundation, umożliwiając tym samym entuzjastom rozwiązań technologicznych z całego świata eksperymentowanie i tworzenie innowacji z dziedziny Internetu rzeczy (IoT). Nowy zestaw rozwojowy, dostępny w ofercie firmy element14 w cenie 79 GBP, pozwala osobom posiadającym małe doświadczenie w projektowaniu rozwiązań wbudowanych oraz aplikacji sieciowych, jak i osobom bez żadnego doświadczenia, rozpocząć pracę w zaledwie kilka minut. Umowa wzmacnia zobowiązanie firmy Farnell element14 do dostarczania podzespołów elektronicznych i zestawów rozwojowych wspierających innowacje projektowe z dziedziny Internetu rzeczy. Globalne zainteresowanie branżą Internetu rzeczy jest duże, a ostatnie badania przeprowadzone przez firmę element14 na ponad 3500 dorosłych osobach wskazują, że 43% pytanych chciałoby móc podłączyć do Internetu większą liczbę urządzeń. W Chinach i Indiach wynik ten wyniósł 71%. David Shen, Dyrektor techniczny w firmie Premier Farnell, mówi: „Nowy zestaw rozwojowy ARM mbed IoT to idealny ekosystem do opracowywania rozwiązań z dziedziny Internetu rzeczy. To niesamowite gotowe rozwiązanie pozwala inżynierom, bez względu na poziom ich umiejętności, w zaledwie kilka minut podłączyć ich urządzenia do chmury i rozpocząć zdalne odczyty z czujników z zestawu. Ta umowa to kolejny przykład naszych starań w celu stworzenia na rynku nowych możliwości w zakresie innowacji, a także udostępniania odpowiednich narzędzi i wiedzy inżynierom i entuzjastom z całego świata”.
116
„Dzięki umowie zawartej z firmą Farnell element14 Zestaw startowy ARM mbed IoT będzie łatwo dostępny dla deweloperów niemal w każdym zakątku globu i to w atrakcyjnej cenie”, mówi Zach Shelby, wiceprezes ds. marketingu biznesowego IoT w ARM. „Główną ideą mbed jest obniżenie barier w zakresie innowacji z dziedziny Internetu rzeczy poprzez umożliwienie każdemu tworzenia własnych rozwiązań. Ten zestaw pozwala zrealizować te ambicje”. Nowy zestaw rozwojowy, który przeprowadza użytkowników przez proces projektowania urządzeń z dziedziny Internetu rzeczy gotowych do wykorzystania w chmurze, dostępny jest z płytką rozwojową obsługującą technologię ARM mbed z wbudowanym mikrokontrolerem FRDM-K64F Kinetis firmy Freescale, wyposażonym w procesor ARM Cortex-M4 o taktowaniu 120 MHz. Połączenie Ethernet łączy zestaw z usługą chmurową Bluemix firmy IBM, która działa jako przewodnik objaśniający korzystanie z płytki. Zestaw zawiera także płytkę rozszerzającą możliwości dot. czujników, wyposażoną w graficzny wyświetlacz LCD o rozdzielczości 128×32 piksele, 256 kB RAM, 1 MB pamięci Flash, głośnik, pięciostykowy joystick, czujnik temperatury, akcelerometr, potencjometry oraz PWM (modulator szerokości impulsów) do odbierania sygnałów cyfrowych. Zestaw rozwojowy ARM mbed IoT oferowany jest przez firmę Farnell element14 in Europie, MCM i Newark element14 w Ameryce Północnej oraz element14 w rejonie APAC. Noty katalogowe i aplikacyjne, a także szeroki wybór powiązanych akcesoriów znaleźć można na stronach produktów. W przypadku pytań można skorzystać z centrum pomocy technicznej, dostępnego w dni robocze przez całą dobę. Społeczność Farnell element14 Community to bogate źródło zasobów dla użytkowników nowego zestawu rozwojowego, którzy mogą kontaktować się z ponad 300 000 inżynierów dzielących się doświadczeniami, wiedzą i poradami na temat projektowania aplikacji i systemów na potrzeby Internetu rzeczy. Więcej informacji znaleźć można na stronie element14 Design Center.
Sukces polskich zespołów w międzynarodowym konkursie Xplore New Automation Award Pod koniec marca w siedzibie Phoenix Contact w Bad Pyrmont było bardzo tłoczno. Panowała radosna i pełna ekscytacji atmosfera. 33
ELEKTRONIKA PRAKTYCZNA 5/2015
INFO zespoły z 14 krajów zostało zaproszonych do Niemiec, aby zaprezentować swoje projekty zrealizowane w ramach konkursu XPLORE New Automation Award organizowanego przez Phoenix Contact. Konkurs ma na celu umożliwienie młodym ludziom realizację ich innowacyjnych pomysłów oraz dać możliwość rozwijania pasji do technologii. Młodzi automatycy z całego świata mieli możliwość realizacji swoich projektów w 7 kategoriach. W tej edycji konkursu pośród 100 wybranych półfinalistów aż 13 zespołów pochodziło z Polski. Wszystkie projekty zostały zrealizowane dzięki wsparciu finansowemu Phoenix Contact. Jury wybrało 33 finalistów, którzy przyjechali do Niemiec zaprezentować swoje zrealizowane projekty. 3 zespoły z Polski znalazły się w tym gronie – zespół z Politechniki Warszawskiej z projektem „Automatic train”, zespół z Technikum im. Cegielskiego w Poznaniu z projektem „Smart mirrows” oraz studenci z Uniwersytetu Warmii i Mazur z „Muppet theater”. Po prezentacjach projektów i długich obradach jury nadszedł czas na ogłoszenie zwycięzców. Podczas uroczystej ceremonii wręczenie nagród dwa zespoły z Polski stanęły na podium: Zespół z Uniwersytetu Warmii i Mazur zajął III miejsce w kategorii Rekreacja. II miejsce zajął zespół z Technikum im Cegielskiego w kategorii Młodzi inżynierowie. Zwycięskie zespoły ze wszystkich kategorii otrzymają nagrody z rąk niemieckiego ministra gospodarki i technologii w Hanowerze podczas międzynarodowych targów Hanover Fair. Wszystkie ważne informacje dotyczące konkursu i zwycięzców można znaleźć na stronie głównej Xplore konkursu http://www.xplore.org.
Wyważanie dynamiczne VibroDAQ portable VibroDAQ portable to innowacyjny system do pomiaru drgań i wyważania elementów wirujących w łożyskach własnych oraz na specjalizowanych stanowiskach. Dzięki zastosowaniu dotykowego wyświetlacza LCD, oraz wbudowanego źródła zasilania, uzyskano dużą ergonomię pracy z urządzeniem. VibroDAQ portable posiada zarówno możliwość pracy samodzielnej jak i z komputerem PC. Przyrząd pozwala na wyważanie jedno i dwupłaszczyznowych detali, dodatkowo ma specjalizowane algorytmy wyważania dla ściernic szlifierskich oraz innych typów detali (np. wentylatory). Pomiary wyważania mogą być sprawdzone pod katem zgodności z normą ISO1940. ELEKTRONIKA PRAKTYCZNA 5/2015
Urządzenie ma unikalną funkcjonalność pozwalająca na ręczną edycję danych pomiarowych, co daje możliwość indywidualnego podejścia do skomplikowanych przypadków wyważania elementów wirujących. System wyposażono w dwa interfejsy pozwalające na podłączenie do komputera PC: USB 2.0 (high speed, full speed), oraz RS232. VibroDAQ portable to nowoczesne i bardzo skuteczne narzędzie diagnostyczne, przeznaczone do wyważania w jednej lub w dwóch płaszczyznach dowolnych detali wirujących, zarówno w łożyskach własnych jak i na stanowiskach pomiarowych, a także do pomiarów i analizy drgań. Zasadniczą cechą przyrządu jest jego pełna mobilność. Jest to urządzenie przenośne, wyposażone w dotykowy wyświetlacz LCD oraz wbudowane akumulatory. Niewielkie wymiary sprawiają, że VibroDAQ portable sprawdza się szczególnie dobrze podczas prac serwisowych, na obiektach, na których istnieje konieczność przemieszczania się wraz z przyrządem, lub wykonywane są np. prace na wysokościach. Zgodnie z aktualnymi trendami w zakresie nowoczesnych urządzeń pomiarowych VibroDAQ portable może również współpracować z komputerem. Komunikacja pomiędzy VibroDAQ portable, a PC odbywa się poprzez interfejs USB. W przypadku pracy samodzielnej oprogramowanie wbudowane w przyrząd zapewnia pełną niezależność systemu VibroDAQ portable. W tym przypadku przyrząd pracuje pod kontrolą własnego, autorskiego systemu operacyjnego, a użytkownik ma do dyspozycji kompletny wachlarz funkcji realizowanych przez przyrząd, czyli: wyważanie jednopłaszczyznowe, wyważanie dwupłaszczyznowe, wyważanie tarcz ściernych wyposażonych w głowicę wyważającą (jedno i dwupłaszczyznowe), wyważanie wentylatorów z możliwością wektorowego rozkładu masy korekcyjnej na składowe (jedno i dwupłaszczyznowe), a także analizę drgań FFT zarówno w trybie synchronicznym jak i asynchronicznym. Niezwykle pomocną funkcją jest możliwość obserwacji widma drgań, czyli ich amplitudy w funkcji częstotliwości. Umiejętne wykorzystanie tej funkcji pozwala na wyważenie detalu, gdy wibracje generowane przez diagnozowany element obrotowy są zakłócane przez drgania innych elementów pracujących na podobnej częstotliwości. VibroDAQ portable pozwala również na obserwację amplitudy drgań w funkcji czasu. W przypadku pracy samodzielnej interfejsem służącym do komunikacji z użytkownikiem jest wyświetlacz LCD, a szczegółowe dane pomiarowe uzyskane podczas kolejnych cykli wyważania lub pomiarów drgań rejestrowane są w pamięci wewnętrznej urządzenia. W przypadku pracy z komputerem sterowanie przyrządem odbywa się poprzez dedykowaną aplikację pracującą pod kontrolą Windows. Jak już wspomniano komunikacja z komputerem odbywa się poprzez interfejs USB. Oprogramowanie zainstalowane na PC pozwala zarówno na wyważanie detali, pomiary i analizę drgań, jak i na analizę danych, które zostały zarejestrowane przez przyrząd podczas pracy samodzielnej. Korzystanie z VibroDAQ portable w trybie z komputerem może okazać się wygodne np. w przypadku pracy stacjonarnej, kiedy wyważanie realizowane jest w jednym miejscu np. na dedykowanym stanowisku pomiarowym. W takiej sytuacji interfejsem służącym do komunikacji z użytkownikiem jest ekran monitora, który ze względu na rozmiary i czytelność wpływa pozytywnie na komfort pracy. Podobnie sprawa przedstawia się w przypadku konieczności szczegółowej analizy danych przechowywanych w pamięci urządzenia np. analiza FFT zarejestrowanych danych. Więcej informacji na stronie internetowej producenta pod adresem http://goo.gl/ONan74
117
AUTOMATYKA I MECHATRONIKA
MyRIO – platforma edukacyjna od National Instruments (1) Firma National Instruments zaproponowała kolejny system przeznaczony dla studentów. Tym razem jest on oparty to technologię wykorzystaną w popularnej platformie CompactRIO. Pozwala ona na przećwiczenie zagadnień związanych z automatyką, robotyką, systemami kontrolno-pomiarowymi – szczególnie z wbudowanym systemami czasu rzeczywistego. MyRIO jest względnie niedrogą platformą przeznaczoną do wykonywania wbudowanych systemów sterujących. Przeznaczona głównie dla uczelni i studentów pozwala inżynierom oraz studentom na budowę zaawansowanych systemów. Daje możliwość korzystania z wydajnego dwurdzeniowego procesora Cortex-A9, systemu czasu rzeczywistego, i technologii FPGA(Field Programmable Gate Array – programowalna struktura logiczna), pozwalającej „zbudować” brakujące elementy cyfrowego systemu przetwarzania danych. Oprócz tego udostępnia szereg wejść i wyjść analogowych i cyfrowych, również niezbędne interfejsy komunikacyjne. Pozwala budować systemy kontrolowane zdalnie za pomoczą komputera i aplikacji w LabView, jak również tabletu czy smartfona wyposażonego w interfejs Wi-Fi. No i chyba największa zaleta, o której nie wspomniałem, to możliwość konfigurowania wszystkich elementów systemu za pomocą LabView, które jest dostarczone na licencji studenckiej wraz z urządzeniem.
oprogramowaniem oraz kilkoma akcesoriami, takimi jak: złącze śrubowe do przyłączenia sygnałów z gniazda MSP, złącze kątowe wraz z płytą prototypową pozwalającą na zbudowanie elementów dodatkowych np. wzmacniacza wejściowego lub układu zasilania czujników. W pudełku znajdziemy również przewody USB i audio, śrubokręt oraz zasilacz sieciowy. Na fotografii 1 pokazano sterownik myRIO i płytkę prototypową.
Architektura systemu myRIO Schemat blokowy systemu pokazano na rysunku 2. Serce myRIO stanowi układ SoC firmy Xilinx typu Zynq-7010. Na jego pokładzie znajduje się dwurdzeniowy procesor
W zestawie Zestaw zawiera moduł myRIO 1900 wraz z niezbędnym do pracy
Cortex–A9 wspierający obliczenia na liczbach zmiennoprzecinkowych o pojedynczej i podwójnej precyzji oraz na wektorach dzięki instrukcjom NEON. Maksymalna, dopuszczalna częstotliwość taktowania układu wynosi 667 MHz. Mikroprocesor ma pamięć wewnętrzną Cache L1 o pojemności po 32 kB na instrukcje i dane, Cache L2 512 kB, wewnętrzną pamięć programu 256 kB oraz interfejsy do zewnętrznych pamięci DDR3, DDR2 i innych. Wyposażono go w liczne interfejsy komunikacyjne: 2×UART, 2×CAN, 2×I2C, 2×SPI, 4×32-bitowe GPIO, 8 kanałów DMA. Ale moim zdaniem największą zaletą jest umieszczenie w tej samej strukturze układu FPGA z rodziny Artix 7 zawierającego między innymi 28 tys. programowalnych komórek logicznych, 80 programowalnych bloków DSP o organizacji 18×25, a to tylko wybrane cechy tego układu. Na płycie sterownika umieszczono pamięć Flash o pojemności 256 MB zawierającą system operacyjny czasu rzeczywistego (NI Linux Real-Time). Część tej pamięci może być przeznaczona na dane i aplikacje użytkownika. Pamięć DDR3 o pojemności 512 MB stanowi pamięć operacyjną. Interfejs Wi-Fi służy do konfigurowania i programowania sterownika. Oprócz niego myRIO ma dwa interfejsy USB – Host i Device. Użytkownikowi oddano do dyspozycji interfejsy UART, I2C i SPI, które wyprowadzone na piny portów MXP, 8 sygnałów PWM, 32 linie cyfrowego wejścia wyjścia i dodatkowe 8 linii w standardzie TTL – 5 V, wejścia i wyjścia analogowe oraz napięcia niezbędne do zasilania dodatkowych układów wejściowych, jeden przycisk i cztery diody do dowolnego wykorzystania.
Zalety wynikające z architektury
Fotografia 1. Sterownik myRIO z płytką prototypową
118
Architektura myRIO ma wiele zalet, największą z nich jest połączenie dwurdzeniowego procesora i systemu operacyjnego czasu rzeczywistego ze strukturą FPGA. Takie rozwiązanie pozwala na efektywne wykorzystanie zasobów procesora i przerzucenie żmudnych i czasochłonnych obliczeń na algorytmy zrealizowane sprzętowo w strukturze FPGA. Najlepszym przykładem jest tutaj realizacja filtrów cyfrowych, które są nieodłącznym elementem systemu pomiarowego. ELEKTRONIKA PRAKTYCZNA 5/2015
MyRIO – platforma edukacyjna od National Instruments W każdym systemie pomiarowym występują przynajmniej filtry antyaliasingowe, na wejściach przetworników. Realizacja takich filtrów w sposób cyfrowy wiąże się z szeregiem operacji mnożenia i sumowania dla każdej próbki sygnału mierzonego i to wielokrotnie. Zakładając, że mierzony sygnał jest próbkowany z częstotliwością 100 kHz łatwo sobie wyobrazić, jak dużo obliczeń trzeba wykonać i to w ściśle określonym czasie, ponieważ bufory danych mają zwykle ograniczoną pojemność, a nowe dane ciągle napływają. Angażowanie do tego procesu CPU nie jest zbyt efektywne, ponieważ w tym czasie może on wykonywać bardziej złożone algorytmy. Kolejnym przykładem może być wyznaczenie szybkiej transformaty Fouriera FFT lub wyszukiwanie określonych wzorców w szybkozmiennym sygnale cyfrowym w przypadku, gdy sygnał mierzony ma częstotliwość np. o połowę niższą niż częstotliwość pracy CPU, może ono nie nadążać z jego śledzeniem, a już na pewno nie będzie w stanie robić nic więcej. I tutaj idealnym rozwiązaniem jest przerzucenie tego zadania na sprzętowo zrealizowany w FPGA algorytm, który w efekcie tylko poinformuje mikroprocesor, gdy wykryty zostanie określony wzorzec sygnału. Kolejną zaletą jest integracja w jednym układzie systemu zdolnego przetwarzać
dane, z przetwornikami A/C i C/A, jak również szeregu wejść i wyjść cyfrowych oraz interfejsów komunikacyjnych. Pozwala to za pomocą niewielu zewnętrznych elementów budować kompletne systemy. Watro tutaj wspomnieć, że na złączach dostępne są napięcia niezbędne do zasilania dodatkowych układów wejściowych, również wzmacniaczy wymagających napięcia symetrycznego ±15 V. Nie bez znaczenia jest wyposażenie sterownika w interfejs Wi-Fi. Dzięki niemu możliwe jest swobodne programowanie systemu bez konieczności przyłączania go do komputera i zdalne sterowanie budowanych aplikacji, co może być szczególnie ważne dla kontrolowanych robotów czy innych urządzeń poruszających się samodzielnie. Tutaj może też się przydać wbudowany w układ akcelerometru, pozwalający wyznaczyć orientację w przestrzeni.
System operacyjny MyRIO pracuje pod kontrolą systemu operacyjnego czasu rzeczywistego, NI Linux RealTime mającego mechanizmy umożliwiające wyróżnienie deterministycznych zadań. Dzięki systemowi priorytetów zapewnia on wielowątkowość przy zachowaniu determinizmu, pozwala na wyznaczenie wątku
Rysunek 2 Schemat blokowy sterownika myRIO ELEKTRONIKA PRAKTYCZNA 5/2015
o najwyższy priorytecie, co gwarantuje wykonanie go w pierwszej kolejności. Zazwyczaj powinien być tylko jeden taki wątek, mimo iż wielordzeniowe procesory umożliwiają równoległe wykonywanie kilku wątków. Planując aplikację czasu rzeczywistego należy zwrócić uwagę na inne czynniki, takie jak współdzielone zasoby systemu np. pamięć, sterowniki, porty wejścia wyjścia i interfejsy komunikacyjne. Nieuwzględnienie wszystkich czynników może doprowadzić do sytuacji, w której zadanie o wyższym priorytecie będzie czekało na zwolnienie zasobów przez zadanie o niższym priorytecie. NI Linux Real-Time ma wbudowany mechanizm, który dobrze radzi sobie z takimi sytuacjami, ale dobrą praktyką jest ich unikanie. Konfigurowanie systemu jest możliwe za pomocą programu Measurement & Automation Explorer lub przeglądarki internetowej. Sterownik może pracować niezależnie lub pod kontrolą aplikacji przygotowanej w LabView.
Komunikacja z otoczeniem Oprócz interfejsów dostępnych w portach MPX i przeznaczonych głównie do przesyłania danych pomiędzy elementami systemu pomiarowego, myRIO wyposażono również w dwa porty USB oraz wspomniany moduł Wi-Fi. Interfejs USB device umożliwia dołączenie sterownika do komputera. To za jego pomocą jest możliwy dostęp do systemu, konfigurowanie, wgrywanie aplikacji, praca pod kontrolą LabView i konfigurowanie wbudowanego bloku FPGA. Interfejs USB host pozwala na dołączenie urządzenia typu device, np. kamery do akwizycji obrazu lub pamięci masowej służącej do gromadzenia danych pomiarowych. Interfejs Wi-Fi docenią wszyscy budujący samobieżne roboty lub pojazdy, które nie mogą być ograniczone przewodem łączącym je z jednostką sterującą. Ponadto,
Rysunek 3. Struktura wejść analogowych
119
AUTOMATYKA I MECHATRONIKA tak jak przez USB, jest możliwe wgrywanie i uruchamianie aplikacji pod kontrolą LabView oraz konfigurowanie sterownika, co znacznie poprawia komfort pracy. Moduł może również pełnić rolę Routera.
+3.3V
DIO10 / PWM2
DIO9 / PWM1
DIO8 / PWM0
DIO7 / SPI.MOSI
DIO6 / SPI.MISO
DIO5 / SPI.CLK
DIO4
DIO3
DIO2
DIO1
DIO0
AI3
AI2
AI1
AI0
+5V
33
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
1
34
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
DIO14 / I2C.SCL
DGND
DGND
DIO13
DGND
DIO12 / ENC.B
DGND
DIO11 / ENC.A
DGND
UART.TX
DGND
UART.RX
DGND
AGND
AO1
AO0
Tor pomiarowy jest klasycznym rozwiązaniem, w którym jeden przetwornik próbkuje sygnał w wielu kanałach jego strukturę przedstawiono na rysunku 3. Zastosowany przetwornik próbkuje sygnał wejściowy z rozdzielczością 12 bitów i maksymalną częstotliwością wynoszącą 500 kS/s. Układy wejściowe doprowadzające sygnały z portów MPX akceptują napięcia z przedziału 0…5 V, co daje rozdzielczość napięciową wynoszącą 1,221 mV. Minimalne pasmo przenoszenia dla tych wejść wynosi 300 kHz. Sygnały wejściowe z portu MSP trafiają na wzmacniacze różnicowe akceptujące napięcia wejściowe o wartości ±10 V. Rozdzielczość, z którą możemy mierzyć te napięcia wynosi 4,883 mV. Typowo pasmo przenoszenia wynosi 50 kHz. Dopuszczalny zakres napięcia dla wejść audio wynosi ±2,5 V przy rozdzielczość napięciowej 1,221 mV, natomiast pasmo przenoszenia zawiera się w przedziale 2 Hz…20 kHz.
Rozmieszczenie sygnałów w portach MPX
DIO15 / I2C.SDA
Analogowe układy wejściowe
Fotografia 5. Porty MPX A i MPX B MSP udostępnia wyjścia bipolarne o napięciu ±10 V i rozdzielczości 4,883 mV. Wyjścia audio zapewniają pasmo przenoszenia do 50 kHz. Impedancję wyjściową stanowi szeregowe połączenie rezystora 100 V z kondensatorem 22 mF.
Analogowe układy wyjściowe
Porty MPX
Budowę analogowego toru wyjściowego ilustruje rysunek 4. Tor jest utworzony z 8 przetworników C/A o rozdzielczości 12 bitów i szybkości konwersji 345 kS/s. Każdy przetwornik współpracuje z wzmacniaczem wyjściowym zwiększającym jego wydajność prądową. Sygnały wyjściowe doprowadzone do portów MXP mogą przyjmować wartości z przedziału 0…5 V z krokiem 1,221 mV. Port
Użytkownikowi oddano do dyspozycji dwa porty rozszerzeń MPX A i MPX B. Ich sygnały zostały wyprowadzone na 2-rzędowe złącze o rastrze 2,54 mm i 34 wyprowadzeniach. Rozmieszczenie sygnałów jest identyczne na obu złączach. Tabela na rysunku 5 przedstawiona numery wyprowadzeń z przypisanymi sygnałami portu MPX. Każdy port udostępnia: 4 wejścia analogowe, 2 wyjścia analogowe, interfejs UART, do 16 linii cyfrowego wejścia wyjścia, 3 sygnały PWM, interfejs SPI, interfejs I2C, wejścia enkodera, napięcia zasilające 3,3 V i 5 V.
Port MSP
Rysunek 4. Struktura wyjść analogowych
120
Port MSP został wyprowadzony na 1-rzędowe złącze o rastrze 3,8 mm. W zestawie znajdziemy pasujące do niego złącze z zaciskami śrubowymi. Dostępne sygnały analogowe mogą przyjmować wartości z przedziału ±10 V. Oprócz sygnałów analogowych i cyfrowych, dostępne są również napięcia zasilające +15 V, –15 V i +5 V. Wydajność prądowa źródeł napięcia jest nieduża, ale z pewnością wystarczy do zasilenia dodatkowego obwodu wejściowego zbudowanego z kilku wzmacniaczy operacyjnych bez konieczności martwienia się o zasilacz, co jest ważną zaletą. Tabela na rysunku 6 opisuje szczegółowe rozmieszczenie sygnałów w złączu MSP. W porcie MSP C są dostępne: napięcia zasilające ±15 V (max 32 mA) oraz 5 V, 2 wyjścia analogowe ±10 V, 2 wejścia analogowe sygnału różnicowego ±10 V, 8 wejść wyjść cyfrowych,
2 wyjścia PWM, 2 wejścia enkoderów. Obok złącza MSP C jest dostępne również wejście i wyjście sygnału audio.
Programowanie Jak wszystkie produkty National Instruments, również myRIO jest programowany za pomocą środowiska LabView. Pozwala ono na wykorzystanie zalet graficznego języka programowania do przygotowania aplikacji dla systemu czasu rzeczywistego i konfigurowania struktury FPGA, bez konieczności zgłębiania szczegółów konstrukcyjnych urządzenia. Nie wymaga przy tym posiadania specjalistycznej wiedzy i znajomości specjalistycznych języków opisu sprzętu, takich jak VHDL czy Verilog. Dzięki temu ta technologia jest dostępna praktycznie dla każdego. Programy przygotowane w LabView są przetwarzana na język C, a następnie wywoływane są narzędzia Xilinx, które generują pliki wynikowe wgrywane później do myRIO. Wszystko to dzieje się automatycznie – z punktu widzenia programisty jest wystarczające uruchomienie pojedynczego programu. Oczywiście, myRIO można też programować za pomocą języka C/C++ przy wykorzystaniu środowiska opartego na popularnym Eclipse. Opis sposobu konfiguracji tego środowiska można znaleźć na stronie National Instruments. Wraz ze sterownikiem jest dostarczane oprogramowanie LabView na licencji studenckiej, pozwalającej na korzystanie z niego w celach edukacyjnych. Oprócz podstawowej wersji LabView przeznaczonej dla myRIO, możemy zainstalować kilka przydatnych modułów. Moduły niezbędne do obsługi wszystkich elementów architektury myRIO to: • Real – Time Module – pozwala przygotować aplikację czasu rzeczywistego wbudowaną w system wykonawczy. • FPGA Module – moduł graficznego programowania struktur FPGA, program ELEKTRONIKA PRAKTYCZNA 5/2015
MyRIO – platforma edukacyjna od National Instruments
+15V
-15V
AGND
AO0
AO1
AGND
AI0+
AI0-
AI1+
AI1-
DIO0/ENC0.A
DIO1
DIO2/ENC0.B
DIO3/PWM0
DIO4/ENC1.A
DIO5
DIO6/ENC1.B
DIO7/PWM1
DGND
5V
Rozmieszczenie sygnałów w porcie MSP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Fotografia 6. Widok układu od strony złącza MSP przygotowany w nim jest kompilowany i wgrywany do struktury FPGA. Dodatkowe moduły dostępne na licencji studenckiej wraz z LabView myRIO: • Vision Development Module – zespół funkcji wspomagających przetwarzanie obrazu. • LabVIEW Control Design and Simulation Module – zbiór funkcji do budowy projektowania i symulowania pracy regulatorów. • LabVIEW MathScript RT Module – pozwala korzystać w LabView z plików Matlaba, pod rygorem systemu czasu rzeczywistego. • LabVIEW Robotnic Module – zbiór funkcji wspomagających projektowanie układów sterowania robotami.
Pierwszy Program Pracę z myRIO możemy zacząć bardzo szybko. Po zainstalowaniu oprogramowania i dołączeniu układu do portu USB komputera na ekranie zostanie wyświetlone okno monitora (rysunek 7), z którego możemy przejść wprost do konfigurowania naszego układu wybierając z menu Configure NI myRIO. Następnie, wybierając Launch the I/O Monitor za pomocą myszki możemy testować wszystkie wyjścia, odczytać wartości napięcia na wejściach analogowych czy wygenerować przykładowy przebieg. Możliwe jest również przesłanie danych poprzez dostępne interfejsy.
Rysunek 8. Aplikacja testowa ELEKTRONIKA PRAKTYCZNA 5/2015
Wybierając Launch the Getting Started Wizard przejdziemy do panelu testowego pokazanego na rysunku 8. Możemy obserwować na nim wskazania akcelerometru i sterować diodami. Przechodząc do LabView należy wybrać Create Project myRIO myRIO Project i przechodząc kolejne etapy wygenerować przykładowy projekt pobierający dane z akcelerometru i wyświetlający je na wykresie. Panel czołowy aplikacji pokazano na rysunku 9. Wystarczy wcisnąć Run, poczekać aż zakończy się proces kompilacji, Wygenerowany kod zostanie przesłany i uruchomiony w myRIO. Na jego podstawie można zacząć tworzyć własne projekty.
Podsumowanie MyRIO jest dobrą platformą treningową, pozwalającą przećwiczenie wielu zagadnień z dziedziny automatyki, robotyki i przetwarzania sygnałów, jednocześnie pokazując aspekty związane z przygotowaniem systemów czasu rzeczywistego. Studenci zapoznawszy się z platformą nie będą mieli kłopotów podczas pracy z systemem CompactRIO. Programowanie w LabView pozwala na budowanie systemów sterujących, nie wymagając przy tym od studentów znajomości mikrokontrolerów lub innych języków programowania. Dzięki temu można skupić się na faktycznych zagadnieniach związanych z tematyką przedmiotu. Mimo że jest to układ przeznaczony do nauki, jego możliwości są bardzo
Rysunek 7. Okno monitora myRIO duże. Praktycznie w większości wypadków rozdzielczość przetworników jest wystarczająca, wydajność procesora często nie będzie w pełni wykorzystana, nawet przy złożonych aplikacjach. Takie zasoby w połączeniu modułem FPGA dają dużo swobody i pozwalają na postawienie przed studentami znacznie trudniejszych zadań. Firma National Instruments proponuje również zestawy montażowe pozwalające na zapoznanie się z różnymi zagadnieniami. Na stronie internetowej znajdziemy przykłady ćwiczeń laboratoryjnych wraz z instrukcjami. Oprócz zastosowań czysto akademickich, dla programisty LabView jest to doskonały przyrząd warsztatowy, pozwalający na wykonaniu dosłownie „na poczekaniu” brakującego elementy systemu pomiarowego. Może służyć jako oscyloskop, rejestrator i analizator poziomów logicznych, a nawet zastąpić mikroprocesor sterujący. Algorytmy sterujące można wygodnie przetestować z poziomu LabView obserwując przebiegi w różnych częściach układu. Po upewnieniu się, że wszystko będzie działało poprawnie, algorytm może być przeniesiony na docelowy mikroprocesor. W kolejnym artykule opiszę sposób wykonania uniwersalnego przyrządu warsztatowego wykorzystując przy tym zasoby dostępne w myRIO, a następnie system pomiarowy sterowany za pomocą przeglądarki internetowej.
Wiesław Szaj
[email protected]
Rysunek 9. Panel czołowy automatycznie generowanego projektu
121
AUTOMATYKA I MECHATRONIKA
Fotografia 1. Czujnik firmy Pepperl+Fuchs, zastosowany do detekcji obecności płytek drukowanych w trakcie montażu komponentów
Czujniki ultradźwiękowe w automatyce przemysłowej W kolejnej części cyklu artykułów o czujnikach stosowanych w automatyce, omawiamy sensory ultradźwiękowe. Choć nie są tak popularne, jak modele indukcyjne, ani ostatnio chętnie stosowane czujniki fotoelektryczne, cechują się pewnymi zaletami, które sprawiają, że można je nazwać najbardziej uniwersalnymi i niezawodnymi. W artykule przybliżamy sposób ich działania, pokazujemy, kiedy warto je stosować i jak wykorzystać ich możliwości. Jak to się stało, że pomimo wspomnianej we wstępie uniwersalności i niezawodności czujników ultradźwiękowych, nie spopularyzowały się one w przemyśle tak bardzo, jak inne technologie zbliżeniowe? Wynika to z pewnych zaszłości historycznych i ograniczeń technologicznych, które dawno już nie stoją na przeszkodzie. Czujniki ultradźwiękowe pojawiły się na rynku około 30 lat temu, czyli później niż np. sensory indukcyjne czy nawet optyczne. Aktualnie za niezbyt dużą popularność ultradźwięków odpowiadają przede wszystkim przyzwyczajenia inżynierów automatyków, którzy w gruncie rzeczy znani są z tego, że niechętnie zmieniają dawne zwyczaje, a po nowe technologie sięgają dopiero wtedy, gdy zostaną one na wskroś sprawdzone.
122
Zasada działania Trudność związana z zastosowaniem technologii ultradźwiękowej wynika z faktu, że o ile w przypadku innych rodzajów czujników zbliżeniowych, wystarczy tylko wykrywanie wysokiego lub niskiego stanu (np. napięcia) na przetworniku, to w omawianych sensorach często konieczne jest prowadzenie bardziej złożonych pomiarów. Emiter nadaje fale ultradźwiękową o częstotliwości od kilkudziesięciu kiloherców do kilkuset kiloherców, która skierowana jest w stronę wykrywanych obiektów. Gdy natrafi na przeszkodę, odbija się i wraca do sensora (rysunek 3). Specyfika rozchodzenia się fal ultradźwiękowych sprawia, że sygnał bardzo często dociera do detektora nawet, jeśli w zasięgu pracy czujnika nie znajduje się wykrywany obiekt. Wynika to z faktu,
Fotografia 2. Czujniki firmy PIL że fala może odbić się od innych obiektów – np. od obudowy maszyn i mogłaby powodować fałszywe odczyty. Z tego względu, kluczowe dla sensorów ultradźwiękowych jest liczenie czasu, który mija od wysłania sygnału do jego powrotu. Czas ten zależny jest od szybkości rozchodzenia się danej fali w ośrodku, jakim zazwyczaj jest powietrze o temperaturze pokojowej, pod ciśnieniem atmosferycznym i od odległości, jaka dzieli nadajnik od napotkanej przeszkody. Jeśli ELEKTRONIKA PRAKTYCZNA 5/2015
Czujniki ultradźwiękowe w automatyce przemysłowej
Rysunek 3. Zasada działania czujnika ultradźwiękowego
sygnał wróci do detektora po czasie krótszym niż określony, oznacza to, że w zasięgu sensora znalazł się obiekt. Jeśli po dłuższym, należy przyjąć, że odbicie nastąpiło od któregoś z elementów obudowy maszyn znajdujących się w pomieszczeniu, lub po prostu od ściany. Pomiar tego czasu dawniej nastręczał trudności, gdyż wymagało to znacznie
Fotografia 4. Czujniki i sondy ultradźwiękowe firmy SICK bardziej złożonych konstrukcji, niż np. w czujnikach indukcyjnych. Jednakże oparcie zasady działania sensorów o takie pomiary spowodowało, że bez większych modyfikacji mogą one pracować nie tylko jako czujniki zbliżeniowe, ale też jako analogowe mierniki odległości (fotografie 4…6). Same generatory najczęściej są wykonane z piezoelektryków i te same elementy ceramiczne mogą także posłużyć do odbioru fal ultradźwiękowych – tj. do zamiany ich na sygnał elektrycznych.
Fotografia 5. Ultradźwiękowe mierniki poziomu działają na tej samej zasadzie, co czujniki zbliżeniowe wykonane w identycznej technologii
Zalety czujników ultradźwiękowych Czujniki ultradźwiękowe mają wiele zalet w porównaniu do innych technologii. W odróżnieniu od sensorów pojemnościowych
Fotografia 6. Czujniki ultradźwiękowe mogą być zastosowane np. do monitorowania pozycji nad ziemią elementów maszyn rolniczych ELEKTRONIKA PRAKTYCZNA 5/2015
czy optycznych, mogą działać w praktycznie dowolnych warunkach, gdyż są bardzo odporne na zabrudzenia. Nie przeszkadza im nawet gruby kurz i gęsty pył. Co więcej, emisja ultradźwięków, czyli wibracji o wysokich częstotliwościach, powoduje automatyczne samooczyszczanie się sensorów, co nie ma miejsca w żadnych innych rodzajach czujników. A natura propagacji fal ultradźwiękowych sprawia, że nie są one pochłaniane ani tłumione przez pył w powietrzu, który sparaliżowałby działanie sensorów optycznych. Omawiane sensory mogą nawet pracować będąc zanurzonymi w płynach – w tym w nieprzeźroczystych cieczach, o ile tylko mają odpowiednio szczelne obudowy. Niemniej większość producentów komponentów automatyki koncentruje się jedynie na czujnikach przystosowanych do pracy w otoczeniu gazów (powietrza) i nie nadają się one do aplikacji podwodnych. Problemem może być też praca w ośrodkach, w których występują częste zmiany ciśnienia. Nie powinno się też stosować tego typu sensorów w otoczeniu atmosfery zagrożonej wybuchem. Sensory ultradźwiękowe nie mają natomiast ograniczeń odnośnie rodzaju obiektów, które wykrywają. W przeciwieństwie do czujników indukcyjnych, mogą wykrywać obiekty metalowe, a w przeciwieństwie do sensorów optycznych, nie stanowią dla nich problemu obiekty przezroczyste (np. szklane). Naturalnie, ultradźwięki pozwalają też na wykrywanie metali, plastiku, czy drewna. Co więcej, poprawnie pracują z wykrywaniem nie tylko ciał stałych, ale też płynów i materiałów o konsystencji proszku (fotografia 7). Jedynie przedmioty wykonane z silnie porowatych lub gąbczastych materiałów mogą powodować ograniczenie zasięgu pracy czujników.
Fotografia 7. Dobrze ustawiony czujnik ultradźwiękowy pozwala na detekcję poziomu płynów w butelkach
123
AUTOMATYKA I MECHATRONIKA
Fotografia 8. Rodzina czujników ultradźwiękowych firmy Pepperl+Fuchs
Fotografia 9. Czujniki firmy Banner
Fotografia 12. Czujniki ultradźwiękowe długiego zasięgu firmy Carlo Gavazzi
Odmiany sensorów
Fotografia 10. Czujnik ultradźwiękowy SICK z wyprowadzeniem fali pod kątem 90° względem osi obudowy
Fotografia 11. Firma Baumer wykonuje różne rodzaje czujników w identycznych obudowach. Na zdjęciu czujnik ultradźwiękowy serii U500, o wymiarach identycznych, jak czujniki fotoelektryczne serii O500
124
Tak, jak i w przypadku innych rodzajów czujników zbliżeniowych, tak i modele ultradźwiękowe można dostać w różnych wersjach (fotografie 8, 9, 10, 11), o odmiennym zasięgu pracy. Wynosi on od kilkudziesięciu centymetrów do kilku metrów i jest zależny przede wszystkim od użytej częstotliwości ultradźwięku. Im wyższa częstotliwość, tym silniejsze jest tłumienie emitowanego sygnału i przez to obszar roboczy czujnika maleje. Przy ponad 800 kHz będzie on wynosił nawet jedynie kilkanaście centymetrów (a sam sygnał ultradźwiękowy będzie docierał około dwa razy dalej. Wraz ze zmniejszeniem częstotliwości – np. do 50– 60 kHz, wzrasta zasięg do wspomnianych wcześniej kilku metrów (fotografia 12). Pewne różnice obejmują także kształt obszaru propagacji fali. Jest on zależny od sposobu zamontowania generatora sygnału
ultradźwiękowego w obudowie czujnika. Typowa charakterystyka przestrzenna emitowanego sygnału została przedstawiona na rysunku 13. W zdecydowanej większości przypadków, pożądane jest, aby emitowany sygnał rozchodził się jak najwęższym obszarem. Ma to znaczenie szczególnie tam, gdzie dostępna przestrzeń instalacji jest ograniczona. Szeroko emitowany sygnał będzie odbijał się od przeszkód znajdujących się w otoczeniu i w praktyce uniemożliwi zastosowanie czujnika do detekcji obiektów.
Obszary zastosowań Czujniki ultradźwiękowe produkowane są w różnych wykonaniach, które pozwalają je stosować w poszczególnych dziedzinach przemysłu. W przemyśle spożywczym, czy wszędzie tam, gdzie czujnik będzie narażony na działanie agresywnych chemicznie substancji, warto sięgnąć po modele z obudowami ze stali nierdzewnej (fotografia 14). Co ciekawe, ponieważ frontu czujnika nie da się ukryć za stalową obudową, producenci stosują warstwy ochronne z obojętnych chemicznie materiałów, takich jak np. PTFE (tzw. teflon) i FEP (tetrafluoroetylen), którymi szczelnie pokrywają generator sygnału ultradźwiękowego.
Ograniczenia Choć mają mnóstwo zalet, czujniki ultradźwiękowe pod pewnymi względami
Rysunek 13. Wpływ temperatury i wilgotności powietrza na zasięg i kształt pola detekcji ELEKTRONIKA PRAKTYCZNA 5/2015
Czujniki ultradźwiękowe w automatyce przemysłowej
Fotografia 16. Czujnik ultradźwiękowy z zestawu Lego Mindstorms
Fotografia 14. Czujniki ultradźwiękowe w obudowach ze stali nierdzewnej mogą być z powodzeniem stosowane w przemyśle spożywczym
Rysunek 15. Zastosowaniedwóch oddzielnych elementów piezoelektrycznych, jako generatorów i odbiorników ultradźwięków, w celu redukcji martwej strefy czujnika wypadają gorzej niż np. modele indukcyjne albo fotoelektryczne. Przykładowo – są mniej precyzyjne. Duża szerokość obszaru, w którym emitowane są ultradźwięki sprawia, że małe obiekty mogą nie być poprawnie wykrywane. Jeśli detekowany przedmiot odbije tylko niewielką część wyemitowanego sygnału, fale docierające do czujnika mogą nie być wystarczająco silne, by pobudzić piezoelektryk. A ponieważ trzeba pamiętać, że fale te są tłumione w powietrzu, w praktyce nieduży rozmiar obiektów skraca użyteczny zakres detekcji za pomocą tego typu sensorów. Powyższe ograniczenie ma znaczenie przede wszystkim wtedy, gdy ten sam piezoelektryk jest używany jako generator i jako odbiornik. Zresztą taka konstrukcja, choć z inżynierskiego punktu widzenia jest bardzo elegancka, niesie ze sobą także inne problemy. Powoduje powstanie tzw. strefy martwej, zaraz za czołem czujnika, w której detekcja nie jest możliwa. Wynika to z faktu, że generator nie może drgać nieskończenie krótko i w momencie, gdy jest wprawiony w wibracje za pomocą sygnału elektrycznego, nie może służyć jako odbiornik. Czas ten przekłada się na konkretną odległość, jaką przy znanej prędkości rozchodzenia się fal, może pokonać wyemitowany sygnał ultradźwiękowy. Jeśli długość tę podzielić przez dwa, otrzymamy rozmiar strefy martwej. W przypadku, gdy w strefie tej znajdzie się jakiś obiekt, który odbije ultradźwięki, nie ELEKTRONIKA PRAKTYCZNA 5/2015
dość, że przesłoni on obiekty za sobą, to nie zostanie w ogóle wykryty, gdyż fala dotrze do odbiornika jeszcze w momencie, gdy pracuje on w trybie generatora i nie zostanie zdetekowana. Rozwiązaniem tego problemu jest zastosowanie oddzielnych piezoelektryków do generowania ultradźwięków i do odbierania ich (rysunek 15). Czujniki tak zbudowane w praktyce nie mają strefy martwej, a więc też nie mają dolnego ograniczenia obszaru pracy. Warto przy tym zauważyć, że strefa martwa pojawia się też często w przypadku sensorów optycznych.
Problem temperatury Inną trudnością, która wpływa na wskazania sensorów ultradźwiękowych jest zmiana temperatury. Zależy od niej szybkość rozchodzenia się fal ultradźwiękowych i przez
to detekcja bywa utrudniona (rysunek 13). Jej wpływ ma szczególne znaczenie dopiero w przypadku czujników z wyjściem analogowym, dla których ważne jest nie tylko poinformowanie o natrafieniu na obiekt, ale też o odległości od niego oraz w sytuacji, gdy korzystamy z niektórych bardziej zaawansowanych funkcji czujników ultradźwiękowych. Te najczęściej działają właśnie w oparciu o odległość, w której znajduje się detekowany obiekt. Dlatego producenci czujników umieszczają w nich termometry, które pozwalają na monitorowanie temperatury i kompensację uzyskanych wyników. Niemniej pozostaje problem niejednorodności ośrodka, w którym propaguje fala ultradźwiękowa, dlatego nawet bardzo zaawansowane układy kompensacyjne nie zawsze dobrze radzą sobie z problemem temperatury. Podobna trudność wynika z różnic w wilgotności i ciśnieniu otoczenia. Im są one większe, tym fala propaguje szybciej, dlatego instaluje się również obwody kompensacyjne, redukujące wpływ zmian wilgotności i ciśnienia. Te wartości jest łatwiej monitorować niż temperaturę, a ich wpływ na uzyskane rezultaty, w rzeczywistych warunkach najczęściej nie jest tak duży.
Zaawansowane funkcje Bardziej skomplikowana zasada działania, niż w przypadku innych czujników zbliżeniowych, pozwala na łatwe wprowadzanie dodatkowych zaawansowanych funkcji do sensorów ultradźwiękowych. Skoro bardzo prosto można wyposażyć czujnik w interfejs analogowy (np. 0…10 V albo 4…20 mA) i podawać odległość od wykrywanego obiektu, niewielkim wysiłkiem można też przenieść funkcję oceny odległości do wnętrza sensora, a na wyprowadzeniu pozostawić np. wyjście
Rysunek 17. Okno aktywne obszaru pracy czujnika
125
AUTOMATYKA I MECHATRONIKA tranzystorowe lub przekaźnikowe. Z tego względu wielu producentów ma w swojej ofercie czujniki z regulowanym oknem wykrywania, tj. pozwalające na ustawienie obszaru – minimalnej i maksymalnej odległości – w jakim ma się znaleźć wykrywany obiekt, aby został uznany za wykryty (rysunek 17). Co więcej, nie stanowi większego problemu umieszczenie w czujniku dodatkowego wyjścia, które zmieniałoby swój stan, gdy obiekt w ogóle znajdzie się w zasięgu czujnika, ale gdy jest poza wyznaczonym obszarem pracy. Urządzenia takie pozwalają na zgrubną ocenę poprawności ułożenia obiektu np. na taśmie produkcyjnej, a nawet na likwidowanie wpływu mniejszych obiektów (np. fragmentów maszyny, uchwytów), które znajdują się przed lub za wykrywanymi przedmiotami i mogłyby powodować dodatkowe odbicia fali, zakłócające pracę czujnika (rysunek 18). Zaprogramowanie okna aktywnego obszaru pracy sensora realizowane jest najczęściej za pośrednictwem potencjometrów lub przycisków. Pierwsze z nich używane są do ręcznej regulacji maksymalnej i minimalnej odległości obiektów od sensora. Drugie natomiast stosowane są do tzw. nauczenia czujnika, poprzez umieszczenie obiektu najpierw w mniej z dwóch granicznych odległości i naciśnięciu odpowiedniego przycisku na obudowie sensora, a później na powtórzeniu tej czynności dla odległości maksymalnej. Zmierzone odległości są zapamiętywane w pamięci komponentu i używane w czasie pracy. W przypadku najmniejszych sensorów, gdzie zastosowanie przycisków do uczenia byłoby niewygodne, programowanie odbywa się elektrycznie, poprzez podanie konkretnych napięć do wejść uczących lub z użyciem tzw. przystawki uczącej, czyli programatora. Ta druga metoda jest o tyle korzystniejsza, że umożliwia dokładne wprowadzenie wyliczonych wcześniej odległości, z dokładnością do milimetra. Często pozwala też na wprowadzenie dodatkowych parametrów, takich jak histereza, współczynnik kompensacji temperaturowej czy tryb pracy wyjść. W najbardziej zaawansowanych czujnikach da się też ustawić liczbę emitowanych impulsów i szerokość fali ultradźwiękowej (rysunek 19), co przekłada się na czułość sensora. Niestety, ze względu na konieczność podłączania zewnętrznego programatora, metoda ta jest znacznie mniej wygodna, gdy chce się ją użyć już w trakcie działania instalacji czujnikowej.
jak czujniki fotoelektryczne – dyfuzyjne, tj. emitują sygnał, który jeśli zostanie odbity od obiektu i dotrze do odbiornika, umieszczonego w tej samej obudowie co nadajnik, to uznawane jest to za wykrycie obecności w zasięgu działania. Można jednak umieścić za obszarem działania płytkę odbijającą ultradźwięki w kierunku detektora i wykrywać obecność obiektów poprzez porównywanie czasu powrotu sygnału z czasem potrzebnym fali na trafienie do detektora, po odbiciu od wspomnianej płytki. Jest to podobna
sytuacja, jak w przypadku czujników fotoelektrycznych refleksyjnych. W końcu, da się też stworzyć bramki ultradźwiękowe, w których odbiornik i nadajnik znajdują się po przeciwległych stronach taśmy produkcyjnej (rysunek 20).
Sposób instalowania sensorów Z racji niemałego zasięgu fal ultradźwiękowych, a przede wszystkim ze względu na ich dosyć dużą szerokość obszaru pracy, instalacja kilku czujników tego typu na jednej linii
Rysunek 18. Poprawne określenie okna aktywnego obszaru pracy czujnika pozwala na zniwelowanie wpływu obiektów, nieco przysłaniających (fala zaznaczona na czerwono) obszar detekcji
Tryby pracy Ze względu na podobieństwa pomiędzy falami dźwiękowymi i elektromagnetycznymi, możliwe tryby pracy czujników ultradźwiękowych są podobne do tych, znanych z sensorów optycznych. Klasyczne modele ultradźwiękowe działają podobnie
126
Rysunek 19. Różne ustawienia kształtu emitowanej fali ultradźwiękowej czujnika, możliwe do wprowadzenia w zaawansowanych czujnikach ELEKTRONIKA PRAKTYCZNA 5/2015
Czujniki ultradźwiękowe w automatyce przemysłowej
Rysunek 22. Problem z odbiciami ultradźwięków od powierzchni, które nie są prostopadłe do kąta padania fali
Fotografia 20. Bariera ultradźwiękowa; czujniki ultradźwiękowe stosowane do szybkich pomiarów niewielkich obiektów muszą pracować z sygnałami dużych częstotliwości, a więc też przy małych zasięgach
Fotografia 23. Precyzyjny czujnik ultradźwiękowy firmy Microsonic
Rysunek 21. Montaż kilku czujników w jednym otoczeniu wymaga zachowania określonych odstępów pomiędzy nimi, zależnych od zasięgów i kształtu fali ELEKTRONIKA PRAKTYCZNA 5/2015
produkcyjnej wiąże się w pewnymi ograniczeniami. Trzeba dopilnować, by fale emitowane z jednego sensora nie zakłócały pracy innych czujników. Przede wszystkim konieczne jest oddalenie od siebie sąsiadujących sensorów. Za bezpieczne uznaje się najczęściej umieszczenie ich odległych od siebie o przynajmniej połowę zasięgu ich pracy, choć warto przy tym zwrócić uwagę na szerokość emitowanej fali, by sprawdzić, czy da się je ulokować bliżej od siebie, czy też konieczne jest ich większe oddalenie (rysunek 21). Należy też wziąć pod uwagę fakt, że fale odbite od obiektów znajdujących się pod nietypowym kątem względem sensora, będą propagować w innych kierunkach i mogą docierać dalej niż fale odbite od powierzchni prostopadłych do kierunku emisji ultradźwięków (rysunek 22). Nieco łatwiej jest z odległością czujników pracujących naprzeciwko siebie. O ile tylko ich zasięg został poprawnie podany przez producenta, a warunki środowiskowe
127
AUTOMATYKA I MECHATRONIKA
Fotografia 25. Czujnik ultradźwiękowych do zastosowań w elektronice
Fotografia 24. Czujnik ultradźwiękowy firmy Leuze w zakładzie przemysłowym odpowiadają referencyjnym, wystarczy umieścić czujniki nie bliżej niż w odległości 4-krotnie większej niż ich zasięgi (przynajmniej dwukrotnie większej niż suma ich zasięgów).
Zastosowania Bardzo duża odporność czujników ultradźwiękowych na trudne warunki środowiskowe, duży zasięg oraz uniwersalność
128
sprawiają, że komponenty te dobrze się sprawdzają w różnorodnych zastosowaniach (fotografia 23). Oprócz wymienionych w artykule przykładów, gdzie sensory działają na linii produkcyjnej, częstymi sytuacjami jest użycie omawianych czujników w pojazdach (np. tzw. czujniki parkowania), czy do mierzenia poziomów materiałów sypkich a nawet cieczy. Podobne sensory stosuje się też np. w windach do monitorowania pozycji
Fotografia 26. Czujnik firmy Keyence kabiny w szybie, ale w praktyce liczba ciekawych zastosowań jest tak duża, że ogranicza ją tylko wyobraźnia konstruktorów.
Marcin Karbowniczek, EP
ELEKTRONIKA PRAKTYCZNA 5/2015
WWW.ULUBIONYKIOSK.PL Tu przejrzysz, poczytasz sobie i kupisz Twoje ulubione czasopisma – bieżące i archiwalne wydania
a k ż i n Z
D
Ó w R i o O alb R AT
E M ENU
R P LA
% 0 3 W - ięcej!
Prenumerata dowolnego czasopisma AVT uprawnia do minimum 30% zniżki w www.ulubionykiosk.pl (z wyłączeniem przedsprzedaży, prenumeraty i dystrybucji bonów). Wpisuj numer prenumeraty w pole „Numer Twojej prenumeraty”, a będziesz płacił tylko 70% ceny (albo i jeszcze mniej). Masz pytania? Mailuj
[email protected] lub dzwoń 22 257 84 22
Ogłoszenia i reklamy hurtowni, sklepów, importerów, producentów, dealerów, itp. są płatne. Cena podstawowego modułu (35 x 20 mm) wynosi 66 zł + VAT. Koszt minimalnej ramki dla ogłoszeń o wielkości 3 modułów wynosi 198 zł + VAT. Moduły można łączyć zarówno w pionie jak i w poziomie. Maksymalna szerokość ogłoszenia to 5 modułów, wysokość 12 modułów. Rabaty stosujemy wyłącznie dla reklam powyżej 8 modułów: 4-6 emisji 10%, 7-11 emisji 15% i od 12 emisji 25%. Oferta specjalna: • publikacja fragmentów cennika w ramce o wielkości: 8 modułów w pionie cena 264 zł + VAT, 9 modułów w poziomie 305 zł + VAT • rabat specjalny dla firm poszukujących pracowników wynosi 25% (wyłącznie dla dużych reklam). Wszelkich informacji udziela Grzegorz Krzykawski, tel. 22 257 84 60, e-mail:
[email protected]. Reklamy do tej rubryki mogą być przygotowane przez Zamawiającego w postaci wydruku z drukarki laserowej lub pliku w formacie CDR, AI, EPS (tekst zmieniony na krzywe), PSD, PDF z próbnym wydrukiem albo pliku w dowolnym edytorze tekstu (także z wydrukiem), jeśli krój czcionek nie jest rzeczą dużej wagi. Małe reklamy mogą być przygotowane w redakcji (gratis) na podstawie odręcznego szkicu lub maszynopisu. Opracowania te nie będą jednak wówczas uzgadniane z Zamawiającym przed oddaniem do druku. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczonych w Elektronice Praktycznej
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
Nie przegap!
interesujących materiałów w siostrzanym czasopiśmie W kwietniowym wydaniu
6]NRãD.RQVWUXNWRUyZ²8NãDGZ\NRU]\VWXMĈF\GLRG\/('
Elektroniki dla Wszystkich między innymi:
Generator Van de Graaffa Do wytwarzania bardzo wysokich napięć wcale nie trzeba wykorzystywać układów elektronicznych. Od dawna znane są prostsze sposoby. Bardzo młody Autor prezentuje zmotoryzowany generator, wyposażony w regulator prędkości. Wykrywacz duchów To nie tylko wykrywacz, ale i narzędzie komunikacji z duchami. I to Ty masz się tym wszystkim zajmować... Jednak bez obaw! W EdW nie promujemy spirytyzmu – przeczytaj artykuł! Izolacja galwaniczna – co to i po co? W trzecim odcinku omawiamy dwa problemy, bardzo ważne dla każdego praktykującego elektronika. Jeden dotyczy zasilaczy beztransformatorowych, a drugi pojawia się przy współpracy urządzeń I klasy ochronności. Reflektorek jak żarówka Do Forum Czytelników trafił opis eksperymentów z oświetleniem rowerowym. Autor pokazuje historię swoich kolejnych układów sterujących diodami LED i zachęca do wypróbowania innych rozwiązań. Generatory nie tylko kwarcowe... A może masz pomysł na ciekawy artykuł lub projekt? W kolejnej części artykułu zapoznajemy się Skonstruowałeś urządzenie, z precyzyjnymi zegarami atomowymi i... jestektóre jest godne zaprezentowania szerszej publiczności? śmy zaskoczeniu bardzo prostą zasadą działaMożesz napisać artykuł edukacyjny? nia, a także zaskakująco niskimi cenami wzorChcesz podzielić się doświadczeniem? ców rubidowych. W takim razie zapraszamy do współpracy na łamach Ponadto w numerze Elektroniki dla Wszystkich. Kontakt:
[email protected] n Sterownik oświetlenia LED sterowany dowolnym pilotem n Regulowany zasilacz uniwersalny 1,2…13,5V/1A EdW możesz zamówić n Koder Morse’a współpracujący z klawiaturą AT na stronie Ulubionego Kiosku: www.ulubionykiosk.pl n Nadajnik małej mocy na 4. kanał CB n Warsztatowe patenty – Drukarka UV i płytki telefonicznie 22 257 84 50, fax: 22 257 84 55, n Zagubione e-maile i malware listownie lub za pomocą e-maila:
[email protected]. n Jak oświetlić ogród? Do kupienia także w Empikach n Szkoła Konstruktorów – Zaproponuj układ i wszystkich większych kioskach z prasą. elektroniczny, wykorzystujący diody LED Na wszelkie pytania czeka także Dział Prenumeraty n Szkoła Konstruktorów – Zaproponuj sposób tel. 22 257 84 22,
[email protected] realizacji płyty czołowej 04 1 3
www.elportal.pl
9 771425 16915 43 6
INDEKS 333 62X
ISSN 1425-1698
4 .:,(&,(Ę &(1$]ã (w tym 5% VAT) • 1$.à$'HJ]
www.elportal.pl
Reflektorek jak żarówka Do Forum Czytelników trafił opis eksperymentów z oświetleniem rowerowym. Autor pokazuje historię swoich kolejnych układów sterujących diodami LED i zachęca do wypróbowania innych rozwiązań.
Generatory nie tylko kwarcowe... W kolejnej części artykułu zapoznajemy się z precyzyjnymi zegarami atomowymi i... jesteśmy zaskoczeniu bardzo prostą zasadą działania, a także zaskakująco niskimi cenami wzorców rubidowych.
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
Najpopularniejsze Kity AVT
Pełna oferta oraz prezentacje techniczne kitów i modułów są dostępne na stronie: sklep.avt.pl 132
ELEKTRONIKA PRAKTYCZNA 5/2015 Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
Prenumerata
za darmo lub półdarmo
Jeśli jeszcze nie prenumerujesz Elektroniki Praktycznej, to spróbuj za darmo! Warunkiem otrzymania 3-miesięcznej bezpłatnej prenumeraty próbnej od czerwca jest wniesienie, jako swego rodzaju „kaucji”, opłaty za następne 9 miesięcy (144,00 zł). Jeśli nie uda się nam przekonać Cię do prenumeraty i zrezygnujesz z niej przed 16 sierpnia 2015 – otrzymasz zwrot całej swojej wpłaty. Nie musisz próbować, bo jesteś zdecydowany na prenumeratę? Wybierz relatywnie najtańszą opcję startową, czyli prenumeratę 2-letnią, której cenę obniżyliśmy o wartość aż 8 numerów! Jeśli już prenumerujesz EP, pamiętaj o przedłużeniu prenumeraty. W ten sposb uzyskasz prawo do jeszcze atrakcyjniejszych zniżek – nawet do 50% ceny czasopisma! Szczegóły na www.ep.com.pl/oferta-prenumeraty. Prenumerata Elektroniki Praktycznej to również: • 80% zniżki na równoległą prenumeratę e-wydań (co oznacza dostęp do najnowszych wydań jeszcze przed ukazaniem się pisma w kiosku!) • co miesiąc DVD „Niezbędnik Elektronika”, a na nim m.in. narzędzia programowe, karty katalogowe i noty aplikacyjne (tylko dla Prenumeratorów) • co miesiąc możliwość zamówienia dostępnych wydań archiwalnych gratis lub za symboliczną złotówkę • do 30% zniżki w sklepie www.sklep.avt.pl • co najmniej 30% zniżki na www.UlubionyKiosk.pl (patrz str. 125)
Zdarza Ci się biegać do kiosku po EP? Zmień bieg zdarzeń i zamów prenumeratę. Będzie taniej, łatwiej i z prezentem Zamów prenumeratę EP w maju i wybierz prezent: koszulkę z logo EP lub album zespołu Bracia „Zmienić zdarzeń bieg” Informację, który prezent wybierasz, wpisz jako uwagę przy składaniu zamówienia lub przekaż nam przed końcem maja mailem (
[email protected]), telefonicznie (22 257 84 22) lub listownie (Wydawnictwo AVT, Dział Prenumeraty, ul. Leszczynowa 11, 03-197 Warszawa)
A więc – zamów prenumeratę!
Cop yrig ht AV T
NIEZBĘDNIK ELEKTRONIKA
4.2015 23.0 ymi wan lizo tua ak mi za ba
wersji przeznaczonej tylko d ałość la Pr enu me rat oró w
10
ną c gral inte wi no sta
NARZĘDZIA DLA ELEKTRONIKA iz m
Ele ktr on iki
1. Altium Designer 14/15 Utils 6. Resistor Colour Calculator 2. Design Spark Mechanical 2.0 7. Segger JflashLite 3. Filter Wiz Lite 1.26 8. STMicroelectronics SPC5-STUDIO 3.0 4. NE555 Calculator 9. STMicroelectronics TwisterSIM TwisterSIM Vivado 2014.4.1.0220_1 5. Renesas E2 Studio upgrade 10. Xilinx Vivado ji ne cz ty ak Pr
na oddzielnie • Płyta sprawdzo dawa na p prze rog yć s ram że b am mo i an nie ty w iru so w
zeżo ne ©
5/15
(koszt sms wg Twojej taryfy)
Nin iej sz ap łyt
OM -R VD
r. • Wszystkie prawa zastr
. Sp ja
.o. zo
• wypełniając formularz w Internecie (na stronie www.avt.pl) – tu można zapłacić kartą lub dokonać szybkiego przelewu • wysyłając na numer 663 889 884 sms o treści PREN – oddzwonimy i przyjmiemy zamówienie
aD
Ko rp or ac
Możesz to zrobić na kilka sposobów: • dokonując wpłaty na nasze konto: AVT-Korporacja sp. z o.o., ul. Leszczynowa 11, 03-197 Warszawa, BNP Paribas Bank Polska SA, 97 1600 1068 0003 0103 0305 5153 • zamawiając za pomocą telefonu, e-maila, faksu lub listu.
NIEZBĘDNIK ELEKTRONIKA
to płyta DVD, którą co miesiąc dostają TYLKO PRENUMERATORZY EP. Niezbędnik elektronika to narzędzia programowe, karty katalogowe, noty aplikacyjne... Niezbędnik elektronika to krążek, który trzeba mieć. Nie pozwól, by taki rarytas przechodził Ci koło nosa: zaprenumeruj Elektronikę Praktyczną!
Wolisz rozłożyć płatność na raty? Zgłoś stałe zlecenie bankowe na www.avt.pl/szb lub załóż „teczkę” na www.ulubionykiosk.pl/teczka
Dział Prenumeraty Wydawnictwa AVT, ul. Leszczynowa 11, 03-197 Warszawa, tel.: 22 257 84 22, faks: 22 257 84 00, e-mail:
[email protected]
y
WYKAZ FIRM OGŁASZAJĄCYCH SIĘ W TYM NUMERZE ELEKTRONIKI PRAKTYCZNEJ
AKSOTRONIK ..........................130 ANTAIRA TECHNOLOGIES ..........59
Elektronika Praktyczna 5/2015 Kolejne gigabajty narzędzi niezbędnych do pracy konstruktora, czyli NIEZBĘDNIK ELEKTRONIKA na DVD. Tylko dla prenumeratorów EP.
ARMEL ....................................130 BORNICO ....................................6 COMPUTER CONTROLS..............15 CONRAD ELECTRONIC .................2 CONTRANS TI ............................55 DELTA ....................................130 ELMARK AUTOMATYKA ..............8 ELMAX....................................130 ELPIN ......................................131 FARNELL ELEMENT14 ..............136 FERYSTER ..................................11 FIRMA PIEKARZ .................11, 131 FREESCALE ................................19
Relayz: 8-kanałowy moduł przekaźników z interfejsem SPPoB
W kolejnej EP opiszemy projekt sterownika z wyjściami przekaźnikowymi, który może mieć szerokie zastosowanie w małej automatyce domowej dzięki interfejsowi RS-485 i zaimplementowanemu, opisywanemu w EP, protokołowi SPPoB.
GAMMA .............................11, 61 KRADEX ..................................131 MICRODIS ...........................39, 53 NATIONAL INSTRUMENTS ...........7 NDN .......................................135 NETRONIX.................................11 PYFFEL ....................................130 QWERTY ...................................12 RENEX ......................................11 RK-SYSTEM ...............................10 RUTRONIK ...................................9 SEMICON ................................115 ST MICROELECTRONICS ................. ...........................5, 27, 29, 31, 47 TELMATIK ...............................131 TESPOL .....................................13 Reklamy stron internetowych na str. 11 134
Miernik pojemności akumulatorów
Za miesiąc przydatny projekt wakacyjny! Urządzenie, które pozwala na zmierzenie m.in. pojemności akumulatora i oszacowanie jego zużycia. Modne ostatnio power-banki kuszą tysiącami miliamperogodzin, warto sprawdzić czy te niewielkie urządzenia rzeczywiście potrafią oddać tyle energii.
Kontroler oświetlenia RGB z Bluetooth
Urządzenie, którego cały interfejs użytkownika zaimplementowano w aplikacji dla systemu Android! Komunikacja odbywa się przez Bluetooth, moduł sterujący oparto na mikrokontrolerze ARM Cortex M3. Musisz to przeczytać!
DMX-owy sterownik lampy RGB
W czerwcowej EP lampa RGB do aranżacji sceny. Wyposażono ją w 60 diod LED o światłości nawet 100000 mcd kontrolowanych za pomocą interfejsu DMX.
Odbiornik nasłuchowy na pasmo 80 m
Wakacje, to dobry moment do rozpoczęcia przygody z krótkofalarstwem. Dla początkującego radioamatora najciekawszym wycinkiem „osiemdziesiątki” jest zakres częstotliwości 3,700…3,750MHz, w którym najczęściej pracują polscy radioamatorzy. Na taki ograniczony wycinek jest przeznaczony odbiornik, który zostanie opisany w kolejnej EP. ELEKTRONIKA PRAKTYCZNA 5/2015
DS1054Z: 50MHz, 4 kanały 1 GSa/s, 12 Mpkt, USB, 7"
Pole widzenia / minimalna 21° x 16° / 0,15m odległość ostrości (standard) Czułość termiczna <65mK przy 30°C Ekran Zakres pomiaru temperatury Dokładność Pomiar punktowy Analiza izotermiczna Sygnalizacja przekroczenia temperatury granicznej Korekcja emisyjności Korekcja temperatury Typ pamięci Komentarz głosowy Celownik Typ baterii Czas pracy baterii Odporność na udary Odporność na wibracje Wymiary Waga Mocowanie statywu Wejście zasilacza DC Wyjście audio Wyjście video USB
Integralny, 3,5”, kolor LCD -20°C do +120°C / 0°C do +350°C (przełączany), do 1200°C (opcja) ±2°C lub ±2% odczytu Do 4 punktów Detekcja temperatury górnej i dolnej / interwał Alarm dźwiękowy i wizualny (kolor) Regulowana od 0.01 do 1.0 Automatyczna Wbudowana pamięć flash do 1500 obrazów 40-sekundowe nagranie głosowe Laser czerwony, klasa 2, 1mW/635nm Wymienialny akumulator litowo-jonowy około 3 godzin 25G IEC68-2-29 2G IEC68-2-6 330mm x 95mm x 86mm 650g 1/4” – 20 Tak Tak PAL / NTSC Transfer obrazów do komputera PC
Cenazł 4000at +v Charakterystyka y y y y y y y y y y y y y
JAKOŚĆ I PRECYZJA
Pasmo: 50 MHz 4 kanały Maks. częstość próbkowania do 1 GSa/s Pamięć akwizycji do 12 Mpkt / opcjonalnie do 24 Mpkt Innowacyjna technologia „UltraVision”` Odświeżanie z częstotliwością do 30 000 przebiegów na sekundę Nagrywanie do 60 000 ramek przebiegów w czasie rzeczywistym (opcja) Niski poziom szumu, zakres dynamiki: 1 mV/dz do 10V/dz Opcjonalne wyzwalanie i dekodowanie magistral szeregowych (RS232, I2C, SPI) Wiele poziomów jasności wyświetlanych przebiegów Interfejsy komunikacyjne: USB Host i Device, LAN (LXI), AUX, USB-GPIB (opcja) Kompaktowe wymiary, mały ciężar, łatwa obsługa 7-calowy ekran TFT (800x480) WVGA
1300 zł + vat
LF-8800
Profesjonalny zestaw lutująco-rozlutowujący dużej mocy
REWELACJA! LF-2000 (U)
Grot zintegrowany z grzałką Zasilanie lutownicy 32V AC Masa lutownicy 72g Moc 100W Grot 44-5143112 - 1D
z³ 1000 t +va
LF-853D
LF-2000
LF-3500
Profesjonalna stacja lutująco- Profesjonalna stacja lutownicza Profesjonalna stacja lutownicza rozlutowywująca
³ 380 z +vat z³ 1300 t +va
³ 220 z +vat
³ 450 z +vat
LF-389D
LF-855D
Profesjonalna stacja lutująco- Profesjonalna stacja lutownicza rozlutowywująca do SMD/BGA
³ 120 z +vat
³ 770 z +vat
8096
Profesjonalny lampa 12W, 3 dioptrie + lupka
60 z³ +vat
*OPCJE* Groty: 44-5143115 - 0,2 44-5143113 - 2D 44-5143114 - 3D
TWZ120
®
02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50
http://www.ndn.com.pl e-mail:
[email protected]
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
8-14μm
Rewelacja cenowa
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
Zakres przetwarzania
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
Rozdzielczość IR
TI160 Niechłodzona matryca mikrobolometryczna FPA 160 x 120 pikseli
Typ detektora
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl