Dokumentacja
Transkrypt
Dokumentacja
POLITECHNIKA POZNAŃSKA
INSTYTUT AUTOMATYKI I INŻYNIERII INFORMATYCZNEJ
Projekt przejściowy
Power Line Communication
Transmisja danych przez sieci elektroenergetyczne
Dokumentacja projektu
Projekt wykonali:
Maciej Brencz
Mateusz Rutkowski
Opiekun projektu: dr inż. Paweł Drapikowski
Robotyka, semestr VII, rok akademicki 2006/2007
Spis treści
Spis treści.............................................................. 2
Blok nadawczy...................................................................5
Część wykonawcza.............................................................5
Wstęp do PLC........................................................ 3
Zasilacz transformatorowy................................................... 6
Definicja.................................................................................3
Zasilacz beztransformatorowy..............................................6
Podział i zastosowania.......................................................... 3
Detekcja nośnej.....................................................................6
Zastosowania w budynkach mieszkalnych....................... 3
Kontrola sieci przesyłu energii elektrycznej..................... 3
Transmisja programów radiowych................................... 3
Automatyzacja w pojazdach drogowych...........................3
Przegląd standardów.............................................................3
X10.....................................................................................3
POWERNET......................................................................4
LonWorks...........................................................................4
KNX....................................................................................4
Układ detekcji przejścia przez zero (Zero Cross Detector).. 7
Nadawanie danych................................................................7
Płytka modemu.....................................................................8
Obsługa komunikacji przez mikrokontroler ....................... 8
Algorytm odbioru danych................................................. 8
Realizacja praktyczna........................................................... 8
Bezpieczeństwo.....................................................................9
HomePlug..........................................................................4
Podsumowanie......................................................................9
Wpływ PLC na jakość energii elektrycznej...........................4
Literatura i materiały dodatkowe......................... 10
Projekt modemu PLC............................................. 5
Opis protokołu X10...............................................................5
Załączniki do dokumentacji.................................. 11
Bloki funkcjonalne modemu.................................................5
Schematy ideowe części elektronicznej...............................11
Blok zasilania.....................................................................5
Kod źródłowy oprogramowania w języku AVR-GCC......... 12
Blok odbioru...................................................................... 5
Zawartość płyty CD..............................................................15
Wstęp do PLC
Definicja
Power Line Communication (PLC) to termin
odnoszący się do transmisji danych poprzez istniejącą
instalację elektroenergetyczną. Transmisja taka bywa
także określana jako Mains Communication, Power
Line Telecoms (PLT), Powerband czy Power Line
używania systemu PLC przez sąsiadujące ze sobą
domy.
Kontrola sieci przesyłu energii elektrycznej
Firmy obsługujące sieci przesyłowe używają sygnałów
o częstotliwości 30-300 kHz, które umożliwiają
kontrolę i zarządzanie urządzeniami przesyłowymi,
np. odłączenie fragmentu sieci w przypadku wykrycia
uszkodzenia.
Networking (PLN).
Transmisja odbywa się poprzez wprowadzenie
Transmisja programów radiowych
dodatkowego sygnału analogowego do sieci
PLC bywa także używane do nadawania programów
elektroenergetycznej. Urządzenie nadawcze
radiowych poprzez sieć elektroenergetyczną
i odbiorcze PLC zawierają w swej strukturze
i telefoniczną. W Niemczech używano systemu
odpowiednie filtry pozwalając e odseparować napięcie
„Drahtfunk”, szwajcarski „Telefonrundspruch” używał
panujące w sieci od sygnałów zawierających
sieci telefonicznej. W ZSSR odbiorniki radiowe PLC
transmitowane dane.
były niezwykle rozpowszechnione z uwagi na
niemożność odbioru innych niż wybrane przez
Podział i zastosowania
nadawcę stacji. W Norwegii do 1987 roku używano
Systemy PLC można podzielić na dwie grupy pod
systemu „Linjesender” wykorzystującego sieci
względem oferowanej przez nie szybkości transmisji.
elektroenergetyczne jako gigantyczną antenę,
Broadband over Power Lines (BPL) z transmisją
szczególnie w obszarach górskich.
poniżej 1 Mbit/s i Narrowband over Power Lines
(NPL) z dużą większymi szybkościami.
Zastosowania w budynkach mieszkalnych
Automatyzacja w pojazdach drogowych
Systemy takie jakie CAN-bus, LIN-bus over power line
(DC-LIN) czy DC-bus umożliwiają transmisję danych,
Systemy PLC takie jak opisane poniżej X10 czy
głosu, muzyki i obrazu video poprzez linie zasilania
HomePlug używane są w systemach automatyki
DC w samochodach. Wykorzystują one złożone
budynkowej do zdalnego sterowania oświetleniem i
techniki komunikacji sprawdzające się w trudnym i
urządzeniami AGD bez konieczności instalacji
bogatym w zakłócenia środowisku pracy.
dodatkowego okablowania. Systemy takie bazują
zwykle na „wstawianiu” do sieci elektroenergetycznej
krótkich (rzędu milisekund) impulsów o częstotliwości
Przegląd standardów
X10
od 20-200 kHz. Urządzenia działające w systemie
X10 jest standardem przemysłowym i de facto
mają przydzielone unikalne identyfikatory i dzięki
standardem w budowie systemów automatyki
temu mogą być indywidualnie sterowane z centralki
budynkowej. Bazuje on na częstotliwościach
lub też przez inne urządzenia (np. czujnik światła
radiowych (120 kHz), których krótkie impulsy
słonecznego może wykryć zmierzch i zapalić światła w
wprowadzane są do sieci. X10 zostało opracowane w
przydomowym ogródku). Kody domowe (House
1975 roku przez szkocką firmę Pico Electronics. Jego
Codes) zapobiegają ew. konfliktom w przypadku
celem było zapewnienie zdalnej kontroli nad
urządzeniami gospodarstwa domowego. Była to
Power Line Communication – dokumentacja projektu
3
pierwsza tego typu technologia na świecie i do dzisiaj
zdefiniowało już kilka standardów: HomePlug 1.0
pozostaje najbardziej rozpowszechniona.
(łączenie urządzeń gospodarstwa domowego poprzez
POWERNET
sieć elektroenergetyczną, np. przesył sygnału telewizji
kablowej do odbiornika), HomePlug AV (transmisja
PowerNet jest projektem Komisji Europejskiej. Stawia
sygnału telewizji wysokiej rozdzielczości HDTV oraz
sobie za cel opracowanie i wdrożenie systemu typu
VoIP wewnątrz domu), HomePlug CC (tania
plug’n’play szerokopasmowej komunikacji poprzez
technologia o małej szybkości transmisji
linie elektroenergetyczne (Cognitive Broadband over
umożliwiająca zaawansowane sterowanie
Power Lines - CBPL) spełniającego normy emisji fal
oświetleniem, klimatyzacją oraz urządzeniami
elektromagnetycznych, umożliwiającego przesłanie
związanymi z bezpieczeństwem i ochroną
dużej ilości danych w wąskim zakresie częstotliwości
gospodarstwa domowego).
przy dużym odstępie sygnału do szumu.
LonWorks
Jest to platforma sieciowa stworzona dla zapewnienia
niezawodności, łatwości instalacji i utrzymania
systemów sterowania. LonWorks bazuje na protokole
stworzonym przez Echelon Corporation, używającym
takich kanałów transmisji jak skrętka, światłowody,
W HomePlug wykorzystywane są częstotliwości nośne
w paśmie od 2 do 24 MHz. Komunikacja jest
szyfrowana z użyciem 56-bitowego klucza
i przeprowadzana z szybkością dochodzącą do 150
MBit/s.
Wpływ PLC na jakość energii elektrycznej
sieć elektroenergetyczna, transmisja radiowa.
Rozporządzenie Ministra Gospodarki i Pracy z dnia 20
Stosowany jest w systemach sterowania oświetleniem
grudnia 2004 r. w sprawie szczegółowych warunków
i klimatyzacją.
przyłączenia podmiotów do sieci
elektroenergetycznych, ruchu i eksploatacji tych sieci
KNX
(Dz. U. z 2005 r. Nr 2, poz. 6) określa dopuszczalną
Określony normą EN 50090 standard bazujący na
zawartość poszczególnych harmonicznych w napięciu
modelu OSI. KNX jest następcą łączącym cechy trzech
sieci oraz dopuszczalną wartość współczynnika
starszych standardów: European Home Systems
odkształcenia harmonicznych THD. Dla
Protocol (EHS), BatiBUS i European Installation Bus
harmonicznych o krotności większej niż 25
(EIB). Transmisja może odbywać się poprzez skrętkę,
dopuszczalna wartość określona jest wzorem
światłowód, podczerwień, łącze radiowe, sieć
elektroenergetyczną oraz Ethernet (KNX-over-IP).
HomePlug
HomePlug Powerline Alliance jest międzynarodową
organizacją zrzeszającą 65 członków, w tym takie
firmy jak GE, Intel, Linksys, Cisco, Motorola,
Samsung, Sharp i Sony. Założona w marcu 2000 roku
0.2 + 0.5 ⋅
25
(%)
h
gdzie h to numer
harmonicznej. Podstawiając częstotliwość 125 kHz
(2500 harmoniczna częstotliwości sieci), którą używać
będziemy w komunikacji otrzymujemy wartość
0,025% co odpowiada 50 mV dopuszczalnej
amplitudy częstotliwości 125 kHz.
organizacja stawia sobie za cel promocję, adaptację
PLC spotyka się także z krytyką krótkofalowców, gdyż
i implementację standardów i produktów dla
często staje się źródłem fal radiowych powodujących
domowych sieci elektroenergetycznych, które
zakłócenia. Niezgodnie z prawem urządzenia PLC nie
konkurowałyby wydajnością i ceną z innymi
są uznawane za urządzenia radiowe.
standardami. HomePlug Powerline Alliance
Power Line Communication – dokumentacja projektu
4
Projekt modemu PLC
Opis protokołu X10
Protokół X10 został stworzony ponad ćwierć wieku
temu i stał się światowym standardem w automatyce
budynkowej.
Fizyczna implementacja X10 zasadza się na kilku
prostych zasadach. Transmisja danych ma miejsce
w „okolicach” przejścia przez zero napięcia sieci
(szczelina czasowa o długości 1ms). Dzięki temu
minimalizuje się wpływ zakłóceń na jakość transmisji
(np. załączenie triaka poza zerem wywołuje zakłócenie
o szerokim spektrum).
umożliwiają przenikanie między fazami sygnałów
modemów PLC). W sieciach jednofazowych
implementowana jest obsługa tylko pierwszej
szczeliny czasowej. Taką też implementację
zawarliśmy w projekcie.
Częstotliwość nośna 125 kHz została wybrana z uwagi
na łatwość jej uzyskania w mikrokontrolerze (jej okres
to 8 cykli przy zegarze 1 MHz) oraz jej zbliżoną
wartość ze 120 kHz używanymi w standardzie X1o
oraz wartościami przytaczanymi w literaturze [8].
Bloki funkcjonalne modemu
Modem PLC można podzielić na kilka części
funkcjonalnych:
Transmisja odbywa się w sposób „binarny”. Modem
wykrywa obecność częstotliwości nośnej 125 kHz
Blok zasilania
w czasie 1 ms od przejścia napięcia sieci przez zero,
Zasilanie części „cyfrowej” (mikrokontroler ATmega
przy czym jeden bit transmitowany jest w okolicy
oraz dodatkowe elementy specyficzne dla konkretnego
dwóch „zer sieci”. Jedynka kodowana jest jako
urządzenia – wyświetlacze LCD, czujniki światła,
obecność, a następnie brak nośnej, zaś zero
temperatury, dymu...) odbywa się przez transformator
odwrotnie. Zapewnia to dodatkową pewność
co zapewnia galwaniczną separację od sieci.
transmisji i stosunkowo dużą odporność na
zakłócenia typowe w domowych instalacjach
elektrycznych (ściemniacze, zasilacze i ładowarki
impulsowe itp).
Część bezpośrednio połączona z siecią zasilana jest
zasilaczem beztransformatorowy oraz izolowana od
części cyfrowej optoizolatorem oraz transformatorem
sygnał0wym.
Blok odbioru
W celu odbioru danych modem PLC musi odfiltrować
częstotliwość sieciową, a następnie wykryć
częstotliwość 125 kHz.
Blok nadawczy
Nadawanie danych odbywa się poprzez dodanie do
sieci częstotliwości 125 kHz o odpowiednio dobranej
amplitudzie.
Prezentowany powyżej wykres ilustruje zasadę
Część wykonawcza
działania protokołu X10 w USA (60 Hz, 110V). Trzy
Składa się z mikrokontrolera AVR kontrolującego
„przedziały czasowe” są implementowane w sieciach
transmisję i realizującego warstwę logiczną protokołu
trójfazowych (odpowiednie filtry zapewniają separację
X10 oraz ew. dodatkowych elementów (wyświetlacze,
między fazami dla zasilania sieci, a jednocześnie
przełączniki, diody LED) i czujników.
Power Line Communication – dokumentacja projektu
5
Zasilacz transformatorowy
Część z mikrokontrolerem zasilana jest przez
transformator typową aplikacją stabilizatora serii
78xx. Obecność kilku kondensatoróww bloku
zasilania podyktowana jest koniecznością
odfiltrowania bardzo wysokich harmonicznych
wprowadzanych do sieci przez modem.
Zasilacz beztransformatorowy
Powyżej znajduje się zaobserwowany oscyloskopem
Zasilanie części nadawczej i odbiorczej modemu
przebieg napięcia na wyjściu transformatora
odbywa się poprzez prosty zasilacz
sygnałowego w obecności nośnej (sygnał ten trafia na
beztransformatorowy. Kondensator o odpowiednio
przetwornik A/D mikrokontrolera).
dobranej pojemności ogranicza swoją impedancją
prąd (nie powodując przy tym strat mocy czynnej,
dodatkowy rezystor o znaczej rezystancji wpięty
równolegle odpowiada za rozładowanie kondensatora
w momencie wyłączenia modemu), mostek zaś
prostuje napięcie sinusoidalne, dodatkowo
wygładzane za pomocą kondensatora. Dioda Zenera
odpowiada za obniżenie amplitudy napięcia za
Działka osi Y odpowiada 50mV. Działka osi X
odpowiada czasowi 2μs.
Można przypuszczać, że obecność wyraźnych „picków”
związana jest ze zboczami prostokątnej fali nośnej
(co 4μs) i innymi zjawiskami zachodzącymi w sieci
elektroenergetycznej w obecności sygnałów o wysokiej
częstotliwości.
mostkiem Graetza do poziomu ok. 5,1V (SVCC).
Detekcja nośnej
Układ detekcji nośnej (częstotliwość 125 kHz)
zbudowano w oparciu o transformator sygnałowy
(model Y8848-A firmy Coil-Craft, dostępny u
producenta jako sample) z uzwojeniem pierwotnym
wpiętym między dwa przewody sieciowe oraz
szeregowo z kondensatorem 33nF ograniczającym
impendacyjnie prąd. Transformator został obciążony
Drugi przebieg przedstawia napięcie na uzwojeniu
rezystorem 36k, jeden z końców uzwojenia wtórnego
wtórnym transformatora sygnałowego przy braku
został zwarty z masą części izolowanej od sieci.
nośnej. Podstawa czasu pozostaje bez zmian, oś Y
Drugi koniec uzwojenia został podłączony do
została wyskalowana na 20mV/dz.
oscyloskopu, a przebiegi sygnałów zbadane dla dwóch
Z analizy tych przebiegów można stwierdzić, że
przypadków:
detekcję nośnej można zrealizować poprzez
–
obecność nośnej 125 kHz w sieci
–
brak obecności nośnej w sieci
stosunkowo prostą komparację napięcia na uzwojeniu
wtórnym transformatora z odpowiednio dobranym
napięciem odniesienia. Unika się tym samym bardziej
złożonej analizy częstotliwości (np. poprzez filtry
pasmowo- czy górnoprzepustowe).
Power Line Communication – dokumentacja projektu
6
W tym celu drugi koniec uzwojenia wtórnego
(pierwszy został zwarty do masy) zostaje połączony z
Układ detekcji przejścia przez zero (Zero
Cross Detector)
wejściem przetwornika A/D w mikrokontrolerze,
który będzie odpowiedzialny za wspomnianą
komparację napięcia.
Wydaje się, że właściwą wartością referencyjną będzie
wartość 40mV, odpowiednio (ponad 2-krotnie)
„oddalona” od maksimów przebiegu przy braku
nośnej oraz nie za duża dla przebiegu w obecności
nośnej.
„Picki” na pierwszym przebiegu osiągają wartość
Detekcja przejścia przez zero fazy sieci odbywa się
200mV, jednakże układ wejściowy przetwornika A/D
przy użyciu transformatora zasilającego część
musi mieć zapewnioną możliwie stałą wartość
izolowaną od sieci. Powoduje to co prawda pewne
mierzonego napięcia na czas pomiaru (Sample&Hold)
minimalne przesunięcie fazowe związane z niewielką
trwającego ok. 1,5 taktu zegara ADC (co przy zegarze
indukcyjnością uzwojeń, jednakże zabieg ten pozwala
1MHz daje 1,5μs), który jest zdecydowanie dłuższy niż
na wprowadzenie sinusoidy na wejście komparatora
czas trwania „picków”.
zbudowanego na wzmacniaczu operacyjnym LM311.
Wartości szczytowe przebiegów w obecności nośnej
silnie zależą od „drogi” jaką przebywa sygnał oraz
charakteru i mocy urządzeń podłączonych do sieci.
W czasie testów udało się jednak przesłać sygnał na
dość duże odległości (także poprzez liczniki oraz
między gniazdkami umieszczonymi na różnych
fazach) przy zachowaniu odpowiedniej różnicy
w przebiegach, umożliwiającej detekcję nośnej.
Wyjście komparatora (fala prostokątna ze zboczami w
chwili wykrycia przejścia przez zero) jest podłączone
na wejście przerwania INT0, gdzie układ detekcji
zbocza wykrywa przejście przez zero. Zamieszczony
powyżej schemat ideowy przedstawia sytuację, w
której komparator zasilany jest napięciem
symetrycznym +VCC -VEE. W naszym przypadku
„prostokąt” na wyjściu komparatora osiąga wartości
odpowiadające stanom logicznym TTL, dzięki czemu
upraszcza się jego podłączenie do logiki
mikrokontrolera. Podciąganie wyjścia do VCC jest
konieczne z uwagi na pracę wyjścia komparatora jako
otwarty kolektor (OC).
Nadawanie danych
Nośną 125 kHz wytwarza układ modulacji szerokości
impulsów (PWM) mikrokontrolera. Sygnał ten
(kluczowany poprzez mikro-switch na płytce
modemu) poprzez optoizolator 6n135 trafia na
bramkę tranzystora NPN 2n2222. Linia nadawcza jest
podciągania przez rezystor 1k do napięcia zasilania
Modem PLC złożony na
płytkach stykowych
części nieizolowanej (ok. 5,1V), w momencie otwarcia
tranzystora następuje jej zwarcie do masy.
Power Line Communication – dokumentacja projektu
7
Wbrew pozorom, nie jest to szczególnie niekorzystne
–
timer 8-bitowy
dla sieci czy samego modemu. Zwieranie to odbywa
–
porty do podłączenia diagnostycznych diod LED
się przy stosunkowo małych amplitudach (nadawanie
odbywa się w „okolicy” zera sieci) oraz w części, która
Algorytm odbioru danych
posiada impendancyjnie ograniczony prąd oraz
Opisana na wstępie niniejszego sprawozdania idea
ograniczone dwoma diodami Zenera 6,8V (wpiętymi
działania protokołu X10 została zrealizowana
szeregowo przeciwsobnie) napięcie (w celu uniknięcia
w sposób sprzętowy oraz częściowo programowo
uszkodzenia tranzystora zbyt dużym napięciem).
w mikrokontrolerze ATmega.
Warto także zauważyć, że nadawanie i odbiór danych
Komunikacja jest synchronizowana przejściami fazy
jest niezależne od sposobu podłączenia modemu do
sieci przez zero – układ detekcji zera (Zero Cross
sieci. Nie jest istotne, który przewód jest przewodem
Detection – ZCD) wytwarza na swoim wyjściu sygnał
„gorącym” L, a który neutralnym N.
prostokątny o częstotliwości 50Hz, który swoimi
zboczami wyzwala przerwania INT0 co 10 ms.
Płytka modemu
W momencie nastąpienia przerwania, następuje
Modem PLC składa się z kilku – wymienionych już
zablokowanie przerwania INT0 oraz ustawienia flagi
wcześniej – części: dwóch bloków zasilania
zero_cross_detected. Zostaje także uruchomiony
(stabilizowanego, izolowanego od sieci oraz
timer odmierzający czas 1 ms oraz układ przetwornika
nieizolowanego), bloku nadawczego i odbiorczego,
A/D w trybie konwersji ciągłej Free Run
detektora zera sieci oraz części „cyfrowej”
z wewnętrznym napięciem odniesienia 2,56V.
niskonapięciowej z mikrokontrolerem.
W przypadku detekcji nośnej (wynik konwersji
Rozmieszczenie elementów na płytce odpowiada
w rejestrze ADCH powyżej wartości referencyjnej)
powyższemu podziałowi, a „przesył” danych pomiędzy
zostaje ustawiona flaga carriage_detected.
częścią niskonapięciową (mikrokontroler),
a wysokonapięciową odbywa się poprzez optoizolator
i transformator sygnałowy.
Odliczenie 1 ms timer sygnalizuje przerwaniem.
Zostaje on wówczas zatrzymany, przetwornik A/D
wyłączony w celu minimalizacji zużycia energii,
Na powierzchni płytki znajdują się wyprowadzenia
a przerwanie INT0 aktywowane. W przypadku
sygnałów dla programatora PonyProg [9] na szynie
ustawionej flagi wykrycia nośnej odpowiednie dane
goldpin oraz trzy diody diagnostyczne LED.
zostają zapisane do bufora odbiorczego. Następuje
Wszystkie sygnały doprowadzone do mikrokontrolera
także wyzerowanie ustawionych wcześniej flag.
oraz jego zasilanie są galwanicznie (poprzez
transformatory oraz optoizolator) odizolowane od
sieci.
Realizacja praktyczna
Układ realizuje funkcję prostego telegrafu po sieci
energetycznej umożliwiając nadawanie i odbiór
Obsługa komunikacji przez mikrokontroler
danych binarnych za pomocą przycisku mikro-switch
W celu implementacji protokołu komunikacji PLC
i grupy diod LED, na których można obserwować
w mikrokonrotelrze AVR wykorzystaliśmy układ
działanie modemu:
ATmega8 oraz następujące jego elementy składowe:
–
–
układ modulacji szerokości impulsów (PWM)
–
przetwornik analogowo-cyfrowy (ADC)
–
układ przerwań wyzwalanych zboczem (INT0)
dioda czerwona: sygnalizuje obecność zasilania
(gaśnie w czasie trwania milisekundowej
szczeliny czasowej po wykryciu zera sieci)
Power Line Communication – dokumentacja projektu
8
–
–
dioda żółta: sygnalizuje generację nośnej przez
metrów, a także między dwoma fazami i poprzez
układ PWM (w trakcie szczeliny czasowej), sama
licznik.
nośna zanim trafi do sieci, jest kluczowana
Jakość jak i zasięg transmisji jest uzależniona od
„ręcznie” za pomocą dip-switch'a umieszczonego
samej sieci elektroenergetycznej oraz liczby, mocy
obok mikrokontrolera i transoptora
i charakteru podłączonych do niej urządzeń. Sama
dioda zielona: sygnalizuje detekcję nośnej w sieci
transmisja PLC nie wpływa niekorzystnie na pracę
Na płytce znajduje się także dioda LED sygnalizująca
innych urządzeń podłączonych do sieci.
napięcie bezpośrednio za stabilizatorem 78L05.
Można pokusić się o stwierdzenie, że na układy tego
Szczegółowy opis działania oprogramowania znajduje
typu będzie coraz większe zainteresowane związane
się w komentarzach w kodzie źródłowym
z udostępnianiem połączenia z Internetem poprzez
zamieszczonym na końcu dokumentacji projektu.
sieć elektroenergetyczną („Internet w gniazdku”) jak
i z coraz bardziej popularną automatyką domową
Bezpieczeństwo
(„inteligentne” budynki) z uwagi na wykorzystanie już
istniejącego okablowania.
Z uwagi na obecność napięcia sieciowego na
płytce modemu należy zachować ostrożność
przy badaniu i używaniu modemu!
Modem został zabezpieczony bezpiecznikami 100mA
na każdym z przewodów sieciowych oraz warystorem.
Przy badaniu przebiegów oscyloskopem o masie
uziemionej poprzez sieć należy zwrócić uwagę na
możliwość przepłynięcia prądu od masy układu do
masy oscyloskopu z uwagi na różnicę potencjałów.
Kondensatory znajdujące się na płytce mogą po
odłączeniu zasilania nadal posiadać pewien ładunek,
który stopniowo rozładowuje się poprzez równolegle
podłączone rezystory.
Podsumowanie
Załączone ze sprawozdaniem dwa uniwersalne
modemy PLC pozwalają na wprowadzenie
dodatkowych funkcji, o których wspomniano już
wcześniej. Oprogramowanie mikrokontrolera
umożliwia stosunkowo proste rozszerzenie możliwości
modemu.
W czasie testów modemu udało się dokonać transmisji
między dwoma domami na odległość ok. 100 – 200
Power Line Communication – dokumentacja projektu
9
Literatura i materiały dodatkowe
1.
„Mikrokontrolery AVR w praktyce” Jarosław Doliński, Wydawnictwo BTC, Warszawa 2003
2.
Nota aplikacyjna firmy Microchip: AN236 – „X-10 Home Automation Using the PIC16F877A”
3.
Nota aplikacyjna firmy Microchip: AN521 – „Interfacing to AC Power Lines”
4.
Nota aplikacyjna firmy Microchip: AN954 – „Transformerless Power Supplies: Resistive and Capacitive”
5.
Nota aplikacyjna firmy Microchip: TB008 – „Transformerless Power Supply”
6.
Nota aplikacyjna firmy Atmel: AVR182 - „Zero Cross Detector”
7.
Nota kalogowa firmy ATMEL dla mikrokontrolera AVR ATmega8(L)
8.
„Design of a Powerline Home Automation System - Final Report”, G.A. Richter, University of Pretoria
9.
http://www.lancos.com/e2p/betterSTK200.gif – schemat programatora PonyProg z wyprowadzeniami na szynę goldpin
Power Line Communication – dokumentacja projektu
10
Załączniki do dokumentacji
Schematy ideowe części elektronicznej
Powyżej zamieszczono schemat ideowy płytki
modemu PLC z podziałem na bloki
funkcjonalne.
Obok zaś znajduje się schemat części
z mikrokontrolerem nadzorującym pracę
modemu oraz realizującym warstwę fizyczną
protokołu transmisji.
Trzy diagnostyczne diody LED umożliwiają
obserwację działania modemu.
Power Line Communication – dokumentacja projektu
11
Kod źródłowy oprogramowania w języku AVR-GCC
#define f_osc
#include
#include
#include
#include
1000000UL
// fosc = 1 MHz
<avr/io.h> // ATmega8
<avr/interrupt.h>
<avr/signal.h>
"misc.h"
// piny dla diod LED (PD5 - PD7)
#define
LED1 5
#define
LED2 6
#define
LED3 7
// flagi
char zero_cross_detected = 0;
char carriage_detected
= 0;
//
//
// FUNKCJE INICJALIZACYJNE
//
//
// inicjalizacja PWM na wyjsciu PB1 - pin 15 (p. 87-88, 95-99)
//
void init_pwm()
{
// WGM13:0 = 15
TCCR1A |= (1 << WGM11) | (1 << WGM10);
TCCR1B |= (1 << WGM13) | (1 << WGM12);
// COM1A1:0 = 1
TCCR1A |= (1 << COM1A0);
// ustawienie prescalera (fosc = 1 MHz)
//TCCR1B |= (1 << CS10);
// ustawienie PB1 jako wyjście bez podciągania
DDRB |= 0x02;
PORTB &= ~0x02;
// ustawienie okresu PWM
OCR1AL = 0x03; // pełny okres fali -> 8 okresów zegara -> f PWM = fosc / 8 = 125 kHz
OCR1AH = 0x00;
}
// inicjalizacja przetwornika ADC na ADC0 (PC0)
//
void init_adc()
{
// napiecie ref 2.56 V wewnetrzne + wyrownanie wynikow (8 bitow w ADCH)
ADMUX |= (1<<REFS1) | (1<<REFS0) | (1<<ADLAR);
// kanał ADC0 - PC0
// MUX = 0
// dopuszczenie przerwania po zakończeniu konwersji
//ADCSRA |= (1<<ADEN) | (1<<ADIE);
ADCSRA |= (1<<ADIE);
// konwersja ciągła (Free Run)
ADCSRA |= (1<<ADFR);
// start konwersji
ADCSRA |= (1<<ADSC);
}
Power Line Communication – dokumentacja projektu
12
// inicjalizacja przerwań na INT0 (p. 64-66)
//
void init_zcd()
{
// INT0 - detekcja przejść przez zero fazy zasilania (Zero Crossing Detection)
MCUCR |= (1 << ISC00);
// zgoda na przerwanie od INT0
GICR |= (1 << INT0);
}
// inicjalizacja przerwania zegarowego od przepełnienia Timera0
//
void init_timer()
{
TIMSK |= (1 << TOIE0);// Timer Overflow
}
//
// OBSŁUGA PRZERWAŃ
//
// obsluga przerwan z ADC
//
SIGNAL(SIG_ADC)
{
if (ADCH > 4)
// 10 x 4 = 40 (40/1024 * 2,56 => 40 mV) – wart. referencyjna
{
carriage_detected = 1;
}
}
// detekcja przejścia przez zero - ZCD (początek szczeliny czasowej)
//
SIGNAL(SIG_INTERRUPT0)
{
// zablokuj detekcję zera
GICR &= ~(1 << INT0);
zero_cross_detected = 1;
// sygnalizujemy detekcję zera na diodzie zasilania
cbi(PORTD, LED1);
// początek szczeliny czasowej - start Timera0
//
odliczamy 1 ms = 1000 us (1000 / 8 cykli = 125)
TCNT0 = 255 - 125;
TCCR0 |= (1 << CS01); // preskaler CK/8
// póki co nic nie odebrano
cbi(PORTD, LED3);
// uruchamiamy PWM
TCCR1B |= (1 << CS10);
sbi(PORTD, LED2);
// uruchomienie przetwornika ADC + start konwersji
sbi(ADCSRA, ADEN);
sbi(ADCSRA, ADSC);
}
// przepełnienie timera (koniec szczeliny czasowej)
//
SIGNAL(SIG_OVERFLOW0)
{
// zatrzymujemy timer
Power Line Communication – dokumentacja projektu
13
TCCR0 &= ~(0x07);
// zapalenie diody zasilania
sbi(PORTD, LED1);
// zatrzymujemy PWM
TCCR1B &= ~(0x07);
cbi(PORTD, LED2);
// zatrzymanie ADC
cbi(ADCSRA, ADEN);
// sprawdzenie stanu flagi odbioru
if (carriage_detected)
{
sbi(PORTD, LED3);
carriage_detected = 0;
}
// zapalamy LED1 dla sygnalizacji zasilania
sbi(PORTD, LED1);
zero_cross_detected = 0;
// zgoda na ponowną detekcję zera
GICR |= (1 << INT0);
}
// INICJALIZACJA PRACY MODEMU I PRZEJŚCIE W OBSŁUGĘ ZGŁOSZEŃ OD PRZERWAŃ
int main()
{
// globalna zgoda na przerwania
sei();
// ustawienie portów jako wyjscia dla diod diagnostycznych
//
// LED1 R - zasilanie modemu (przygasa w trakcie 1ms szczeliny czasowej)
// LED2 Y - zapala się w momencie wysyłania danych
// LED3 G - zapala się w momencie odbioru danych
//
DDRD |= (1 << LED1) + (1 << LED2) + (1 << LED3);
// modem włączony
sbi(PORTD, LED1);
// test diod diagnostycznych
sbi(PORTD, LED2);sbi(PORTD, LED3);wait_ms(10);
cbi(PORTD, LED2);cbi(PORTD, LED3);wait_ms(10);
sbi(PORTD, LED2);sbi(PORTD, LED3);wait_ms(10);
cbi(PORTD, LED2);cbi(PORTD, LED3);
// inicjalizacje
//
init_pwm();
init_adc();
init_zcd();
init_timer();
//
//
//
//
PWM (generacja nośnej)
przetwornik A/D (detekcja nośnej)
przerwania na INT0 od zbocza (ZCD)
przerwania od timera (szczelina czasowa 1ms)
// praca ciągła -> czekanie na przerwania
while(1);
return 0;
}
Power Line Communication – dokumentacja projektu
14
Zawartość płyty CD
Na płytce dołączonej do projektu znajdują się:
–
wersja elektroniczna dokumentacji projektu
–
wersja elektroniczna schematów ideowych płytki modemu
–
kod źródłowy oprogramowania mikrokontrolera w języku AVR-GCC
–
komplet dokumentacji oraz not katalogowych zastosowanych elementów
Power Line Communication – dokumentacja projektu
15