NOTATNIK KONSTRUKTORASerwer www – pracaz interfejsem Wi FiW EP 12/2012 na stronie 39 opisaliśmy projekt serwera WWWmogący pełnić funkcję centrum automatyki domowej. To urządzeniemoże być dołączone do sieci Ethernet nie tylko za pomocąprzewodu, ale również z użyciem fal radiowych. Artykuł wyjaśniakrok po kroku, jak dodać do serwera możliwość komunikowaniasię poprzez Wi-Fi oraz wykonać program uwzględniający tęfunkcjonalność.Serwer wyposażony w interfejs Ethernetmożna dołączyć do sieci lokalnej LAN za pomocąkabla. To rozwiązanie jest pewne, niezawodnei tanie. Standard Ethernet zapewniaizolację galwaniczną i sporą prędkość przesyłudanych. Jednak konieczność wykonania połączeniakablowego może być uciążliwa, a pewnychprzypadkach trudna lub nawet niemożliwado wykonania. Znacznie wygodniejszejest połączenie radiowe pomiędzy klientem(komputerem z uruchomioną przeglądarką)a serwerem. Zarówno w sieciach kablowychjak i w radiowych obowiązują standardy. Chybakażdy użytkownik komputera zna nazwęWi-Fi. Tak jest nazywany zestaw rozwiązańsprzętowych i programowych przeznaczonychdo radiowego łączenia urządzeń w lokalnejsieci LAN. Sieci, w których jest możliwe bezprzewodowedołączanie urządzeń są bardzowygodne w użyciu i dlatego błyskawiczniezdobyły olbrzymią popularność. WszystkieTopologia sieci Wi-FiNazwy Wi-Fi zwykliśmy używać dla standardułączącego bezprzewodowo komputerz siecią Internet. Jednak tak naprawdę, jestto połączenie opisywane przez normę IEEE802.11b lub jej odmiany różniące się w nazwieliterą końcową. Więcej informacji na tematstruktury, topologii i zabezpieczeń sieci z interfejsemradiowym IEEE 802.11b podałemw artykule „Wi-Fi od Microchipa” opublikowanymw EP 9/2012. Na potrzeby tego artykułuprzypomnę tutaj niezbędną część zawartychtam informacji.Sieci radiowe Wi-Fi mogą pracować w 2topologiach:• Infrastructure,• Ad Hoc.Przeciętnemu użytkownikowi połączeniaWi-Fi zwykle jest znana tylko topologia Infrastructurepokazana na rysunku 1. Punktemcentralnym sieci pracującej w tej topologiijest urządzenie nazywane punktem dostępowym(Access Point). Wszystkie dane pomiędzyurządzeniami w sieci przepływają przez punktdostępowy i nie ma możliwości transmisji bezpośredniopomiędzy urządzeniami. TopologiaInfrastructure najczęściej jest stosowana w sienoweurządzenia mobilne: laptopy, tablety, czysmartfony mają wbudowany interfejs WiFi,poprzez który mogą łączyć się z lokalnymipunktami dostępowymi. Takim punktem dostępowymmoże być domowy router ADSLz funkcją Wi-Fi, komercyjne punkty dostępudo Internetu lub darmowe punkty dostęputypu Hot Spot.Zalety połączenia bezprzewodowego możnawykorzystać do połączenia naszego serweraz lokalną siecią LAN. Ponieważ funkcje sterowniczemogą wymagać umieszczenia modułuserwera w nietypowych miejscach, to połączenieradiowe może znacznie ułatwić jego zainstalowanie.W porównaniu do interfejsu Ethernetpołączenie radiowe Wi-Fi jest trudniejsze dowykonania z punktu widzenia konstruktora,a konfiguracja sieci wymaga zwrócenia uwagina możliwe zagrożenia. Jednak wykonanie niezawodniedziałającego połączenia radiowegonaszego serwera z siecią LAN jest jak najbardziejmożliwe.100 ELEKTRONIKA PRAKTYCZNA 2/<strong>2013</strong>
Serwer www – praca z interfejsem Wi FiListing 1 zmiana definicji linii SPI1#if defined ENC_IN_SPI1#define ENC_CS_TRIS (TRISFbits.TRISF1) // Comment this line out if you areusing the ENC424J600/624J600, MRF24WB0M, or other network controller.#define ENC_CS_IO (PORTFbits.RF1)#define ENC_RST_TRIS (TRISFbits.TRISF0) // Not connected by default. It isokay to leave this pin completely unconnected, in which case this macro shouldsimply be left undefined.#define ENC_RST_IO (PORTFbits.RF0)Rysunek 1. Topologia InfrastructureRysunek 2. Topologia sieci Ad Hocciach domowych umożliwiających dostęp doszerokopasmowego Internetu (router z opcjąWi-Fi), w sieciach publicznych Hot Spot orazw komercyjnych sieciach radiowych.Mniej znana jest sieć typu Ad Hoc, którejtopologię pokazano na rysunku 2. Jest to siećtypu peer-to-peer, w której każdy z komputerówmoże bezpośrednio komunikować się zewszystkimi komputerami tworzącymi sieć. Tatopologia może być stosowana do tworzeniarozległych sieci, bo jej węzły mogą pracowaćjako przekaźniki danych pomiędzy bardzo oddalonymiurządzeniami.Jak wiemy serwer z EP 12/2012 ma wbudowanykompletny interfejs Ethernet. Na etapieprojektowania układu nie było jednak pewne,czy w ogóle uda się uruchomić połączenieradiowe w środowisku TCPmakera. Jednakprojektując płytkę na wszelki wypadek przewidziałemmożliwość wyposażenia serweraw moduł Wi-Fi typu MRF24WB0M Pictail Plusprodukowany przez firmę Microchip. Zarównoukład ENC28J60, jak i moduł Wi-Fi komunikująsię z mikrokontrolerem poprzez pojedynczy,szeregowy interfejs SPI – w naszym wypadkujest to interfejs sprzętowy SPI1.Wygląd modułu Wi-Fi pokazano na fotografii3. Jest on przystosowany do podłączaniado firmowych modułów ewaluacyjnych (naprzykład Explorer16) głównie za pomocą złączakrawędziowego. Tak się dobrze składa, żema on też złącze szpilkowe (goldpiny) łatwe doużycia bez konieczności stosowania specjalnegogniazda. Tę właściwość wykorzystałem dopołączenia modułu z płytką serwera (fotografia4). Po zainstalowaniu modułu trzeba rozewrzećwszystkie zworki J12 i zewrzeć wszystkiepiny złącza konfiguracyjnego J13 (fotografia5). Linie interfejsu SPI1 zostaną odłączoneod ENC28J60 i dołączone do modułu Wi-Fi.Tak skonfigurowany serwer jest sprzętowo gotowydo testowania. W prototypie musiałemwykonać jedną zamianę połączeń. Linia RD8sterująca przekaźnikiem PRZ1 jest jednocześniewejściem przerwania zewnętrznego INT0.Oprogramowanie transmisji wykorzystuje toprzerwanie i dlatego sterowanie przekaźnikiemmusiało być przełączone na linię RB0.projekt musiał zostać przekonfigurowany. Niebyło to zadanie łatwe, bo nie mogłem znaleźćinformacji, jak to zrobić. Dużą pomocą okazałasię znajomość przykładowego programu testującegołącze Wi-Fi dostarczanego przez Microchipa.Kiedyś musiałem dobrze zapoznaćsię z tą aplikacją i dzięki temu udało mi sięskonfigurować projekt wygenerowany przezTCPMakera do obsługi modułu MRF24WB0Mi połączenia radiowego.Najnowsza wersja TCPMakera umieszczaw podkatalogu \Configs\ pliki konfigurującesprzęt dla różnych zestawów sprzętowychmodułów ewaluacyjnych Microchipa. Autorzyprogramu wyszli ze słusznego założenia,że użytkownik powinien najpierw sprawdzićdziałanie programu na przetestowanym sprzęcie.Oczywiście, nic nie stoi na przeszkodzieby pliki konfiguracyjne przystosować do własnychpotrzeb i ja tak właśnie zrobiłem. Abyzmienić konfigurację, należy użyć edytoratekstowego np. Notepad. Na początek wybieramyplik HWP PIC32_GP_SK_MRF24WB.hprzeznaczony do konfigurowania modułuPIC32 StarterKit połączonego z modułemMRF24WB0M poprzez interfejs SPI1. Ta konfiguracjabyłaby idealna, gdybym w serwerzeużył takiego samego mikrokontrolera, jakw PIC32 StarterKit. Jednak mikrokontrolerw układzie serwera ma inną liczbę wyprowadzeńi linie SPI są mapowane do innych nóżek.Dlatego w pliku trzeba zmienić definicjęlinii interfejsu SPI1. Jest to czynność nieskomplikowanai nie powinna sprawić żadnychFotografia 3. Moduł Wi-FiFotografia 4. Płytka z modułem Wi-FiELEKTRONIKA PRAKTYCZNA 2/<strong>2013</strong>TCPMaker i Wi-FiPierwsze moje próby z połączeniem radiowymi projektem wygenerowanym przezTCPmakera zakończyły się niepowodzeniem.Zazwyczaj w przypadkach, kiedy coś powinnodziałać a nie działa i nie wiadomo dlaczego,kontaktuję się ze wsparciem technicznym producenta.Jak się okazało, miałem starszą wersjęprogramu, która nie wpierała komunikacji Wi--Fi. Dzięki uprzejmości pana Roberta Millerawłaściciela firmy Trace Systems Inc., wykonałemaktualizację używanego przez mnie TCP-Makera do najnowszej wersji 1.5.0 i prace naprojektem mogły zakończyć się sukcesem.TCPMaker po wybraniu kompilatoraMPLAB-C32 domyślnie konfigurujeprojekt dla modułu ewaluacyjnegoExplorer16 i modułu Ethernetz układem ENC28J60. Połączenieethernetowe jest uznawane za standardowei trudno się temu dziwić. DlategoFotografia 5. Konfiguracja zworek dlainterfejsu Wi-FiListing 2 zmiany w pliku HardwareProfile.h#if defined(__C30__)#include “Configs/HWP EX16_ENC28 C30.h”#else//#include “Configs/HWP EX16_ENC28 C32.h”#include “/Configs/CONFIG_SERWER_WF.h”#endif101