Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Długie sieci 1-wire - jak je realizować?

ghost666 05 Maj 2016 20:42 2673 5
  • #1 05 Maj 2016 20:42
    ghost666
    Tłumacz Redaktor

    Protokół 1-Wire® zaprojektowany został do komunikacji pomiędzy znajdującymi się blisko siebie układami scalonymi. Interfejs 1-Wire zapewnia możliwość podpinania sensorów, ale także np. układów pamięci do mikroprocesorów z wykorzystaniem zaledwie jednego pinu. Po opracowaniu samego protokołu zajęto się szeregiem metod pozwalających na realizację transmisji z większym zasięgiem niż wstępnie założono.

    W poniższym artykule opisano różne aspekty związane z konstrukcją sieci komunikacyjnych 1-Wire o dużym zasięgu. Artykuł pozwala na konstrukcję takiej sieci, która wykazywać się będzie niezawodną pracą z dołączonymi do niej układami. Dodatkowo, do artykułu dołączono szereg oscylogramów, obrazujących przebiegi na wyjściu z mikroprocesora sterującego siecią, co pomóc może w rozwiązywaniu rozmaitych problemów związanych z uruchamianiem sieci 1-Wire o dużym zasięgu pracy.

    Wstęp

    Sieć 1-Wire składa się z układu odbiorników, linii komunikacyjnych i połączeń oraz pojedynczego układu nadzorującego transmisję (mastera), np. mikrokontrolera. Każda sieć jest inna, tak pod względem topologii połączeń, jak i sprzętu, jaki w niej się znajduje.

    Dopasowanie do siebie wszystkich komponentów w sieci - połączeń, mastera i urządzeń podległych - nie jest proste, ale jest warunkiem koniecznym, aby skonstruować poprawnie i niezawodnie działającą sieć 1-Wire. Jeśli siecią steruje niepoprawnie zaprojektowany układ typu master bądź taki, który dedykowany jest do krótkich połączeń, sieć może nie działać poprawnie, szczególnie jeśli jej ramiona są długie.

    W poniższym artykule opisano szereg różnych topologii sieci 1-Wire, jaki spotyka się w rozmaitych układach. Dodatkowo wyszczególniono optymalne parametry działania układu, które są w stanie zapewnić bezawaryjne działanie sieci 1-Wire o długich połączeniach. Część wyszczególnionych tutaj kwestii nie jest istotna dla sieci krótkich (o długości poniżej 1 metra), ale staje się bardzo istotna dla dłuższych instalacji.

    Opis sieci

    W zasięgu zainteresowania tego artykułu są sieci 1-Wire łączone z wykorzystaniem kabla cat 5, który służy do przesyłania danych oraz zasilanie (5 V) do układów w sieci. W artykule nie opisujemy niestety programowania pamięci typu EEPROM - układy tego rodzaju powinny znajdować się możliwie blisko układu master. Podobnie nieopisane są metody zwiększania prędkości sieci 1-Wire z uwagi na to, że tzw. overdrive speed dedykowany jest podobnie jak pamięci EEPROM do bardzo krótkich sieci 1-Wire.

    Ogrom różnego rodzaju topologii sieci 1-Wire nie pozwala na opisanie ich tutaj w pełni, dlatego też w tym artykule skupimy się na podstawowych z nich. Każda topologia sieci wiązać się będzie z inną charakterystyką i maksymalnymi parametrami sieci.

    Terminologia

    Aby w sposób ścisły opisywać sieci, konieczne jest zdefiniowanie dwóch pojęć:

    Promień sieci - odległość od mastera do najdalszego układu w sieci.




    Waga sieci - sumaryczna odległość wszystkich połączeń w sieci.

    Promień i wagę sieci podaje się w metrach. Na przykład dla sieci o topologii gwiazdy z trzema urządzeniami oddalonymi od mastera o 10 m, 20 m i 30 m promień sieci wynosi 30 m, a jej waga 60 m.

    Oba te parametry mają wpływ na sygnały elektryczne w sieci - waga sieci ogranicza czasy narastania sygnałów, a promień sieci definiuje zależności czasowe odbić.

    Waga urządzeń w sieci

    Sumaryczna waga całej sieci (tj. sieci i urządzeń), jaka może być wysterowana przez konkretny driver jest ograniczona i zależy od mastera. Każde urządzenie dodawane do sieci wprowadza pewną dodatkową wagę - każdy układ dodaje pewien ekwiwalent długości kabla. Podsumowując - sieć może składać się z wielu układów na krótkich połączeniach lub z małej ilości urządzeń na długich kablach.

    Każde urządzenie dodaje pewną wagę, zależną od urządzenia. Ogólnie przyjąć można, że jedna pastylka z rodziny iButton to ekwiwalent jednego metra przewodu, a każde inne urządzenie 1-Wire - około pół metra. Oznacza to, że na przykład do wysterowania 100 pastylek iButton, potrzebny jest driver mogący sterować siecią o wadze 100 m.

    Dodatkowo do wagi sieci wkład mają też elementy pasywne w torze - złącza, ścieżki na PCB czy układy zabezpieczające przed wyładowaniami ESD. To, ile wagi dodawać będą one do sieci zależy od ich pojemności. W przybliżeniu zależność wiążąca pojemność z wagą to 24 pF/m. To znaczy, że ścieżki interfejsu 1-Wire o pojemności pomiędzy nimi równej 24 pF dodadzą około pół metra do wagi sieci.

    Podstawowe topologie sieci 1-Wire

    Jakkolwiek sieci 1-Wire bywają często bardzo chaotyczne, podzielić je można na kilka kategorii, opierając się na tym, jak połączone są urządzenia w sieci z masterem. Na poniższych ilustracjach przedstawiono podstawowe topologie wraz z opisem.

    Długie sieci 1-wire - jak je realizować?
    Topologia linowa. Szyna interfejsu składa się z pojedynczej pary przewodników, które rozciągają się od mastera do najdalszego układu. Pozostałe układy podłączone są 'po drodze' krótkimi (poniżej 3 m) doprowadzeniami do szyny.

    Długie sieci 1-wire - jak je realizować?
    Topologia rozgałęziona. Szyna interfejsu składa się z pojedynczej pary przewodników, która łączy mastera z najdalszym układem, a pozostałe układy połączone są z główną szyną z wykorzystaniem połączeń dłuższych niż 3 m.

    Długie sieci 1-wire - jak je realizować?
    Topologia gwiazdy. Połączenia pomiędzy masterem a układami w sieci rozdzielają się blisko mastera i biegną do poszczególnych układów. Układy te mogą być włączane do sieci na końcach gwiazdy, ale także 'po drodze' na trasie jej ramion.


    Dosyć łatwo jest opisać ograniczenia i charakterystyki poszczególnych topologii, tak długo, jak długo układ sieci rzeczywiście jest wierny danej topologii. W sytuacji, gdy rzeczywista sieć jest mieszanką opisanych powyżej topologii, oszacowanie zachowania sieci jest o wiele trudniejsze. W takiej sytuacji zaleca się stosowanie do 'najgorszego scenariusza' spośród wszystkich trzech topologii w każdym kryterium działania sieci. Pozwoli to zapewnić bezawaryjną pracę całej sieci 1-Wire.

    Uwagi do topologii gwiazdy

    Testy wykazały, że topologia gwiazdy jest najbardziej problematyczna w sieci 1-Wire, z uwagi potencjalne niedopasowanie impedancji/wagi poszczególnych ramion i fakt, że w takiej sieci odbicia sygnałów podróżować mogą w sieci na odległość o wiele większą niż nie tylko promień sieci, ale jej waga(!). Przekłada się to na powstawanie licznych błędów w transmisji. Dlatego też topologia tego rodzaju jest co najmniej odradzana. Łatwo jest jednakże zastąpić układ o topologii gwiazdy układem liniowym z wykorzystaniem przełączników, fizycznie odłączających poszczególne ramiona gwiazdy.

    Sieci multipleksowane

    Wraz z rozrostem sieci dobrym pomysłem jest dodanie multiplekserów, które pozwalają na zwiększanie się sieci, ale bez powiększania wagi czy promienia sieci. Wykorzystując do tego celu analogowe przełączniki o niskiej impedancji możliwe jest odłączanie np. poszczególnych ramion sieci o topologii gwiaździstej, dzięki czemu taka sieć mimo zachowania kształtu i przebiegu połączeń będzie elektrycznie siecią o topologii liniowej.

    Długie sieci 1-wire - jak je realizować?


    Powyższy obrazek pokazuje sieć o topologii gwiazdy o promieniu 150 m i wadze 450 m. Dodanie przełączników w poszczególnych ramionach powoduje, że efektywna waga sieci spada do 150 m. Zasadniczo, oprócz opisywanych powyżej zysków, sieci multipleksowane nie różnią się niczym od klasycznych układów.

    Ograniczenia sieci 1-Wire

    Kilka czynników determinuje maksymalny promień sieci i jej wagę. Na niektóre z nich mamy wpływ projektując układ, a na inne - niestety - nie.

    Master sieci ma istotny wpływ na maksymalną wielkość układu. Driver tego układu musi dostarczyć odpowiedni prąd, aby móc wysterować całą wagę połączeń i układów w sieci. Dodatkowo, musi on generować przy takim obciążeniu sygnały odpowiednio szybko, aby zachować ścisłe zależności czasowe, jakie wymagane są od interfejsu 1-Wire. Przekłada się to na odpowiednio szybkie ładowanie i rozładowywanie pojemności sieci przez driver wyjściowy układu sterującego siecią.

    Dla małych sieci wystarczą bardzo proste drivery. Pojemność jest niska, odbicia sygnału przybywają do układu po bardzo krótkim czasie, co pozwala je zaniedbać, a straty na przewodach są niemalże pomijalne. W przypadku niewielkich sieci do wysterowania jej wystarczy prosty układ składający się z FETa pomiędzy sygnałem a masą i podciągnięciem sygnału do napięcia zasilania przez opornik. W przypadku większych sieci drivery nie są już niestety tak proste, z uwagi na szereg problemów wspominanych powyżej: odbicia i pojemność okablowania i portów wejściowych w urządzeniach 1-Wire.

    Na ograniczanie promienia sieci największy wpływ mają zależności czasowe odbić sygnałów, opóźnienia powstające na kablach oraz sama rezystancja przewodów. W typowym przypadku prędkość propagacji sygnałów w kablach cat5 wynosi około 2/3 prędkości światła. Oznacza to, że w 750-metrowym przewodzie sygnał dochodzi do końca i wraca w czasie około 7,5 µs. Oznacza to, że jeżeli master ustawi linię w stan niski po takim czasie, aby odczytać nadchodzące dane, powracający impuls - odbicie - nadejdzie w podobnym czasie, w którym układu będzie odpowiadał. Spowoduje to błędy w transmisji i uniemożliwi poprawną komunikację z najdalszymi urządzeniami w sieci.

    Waga sieci ograniczona jest z kolei ładunkiem, jaki potrzebny jest do naładowania sieci i jak szybko można sieć rozładować. Jeśli czasy ładowania i rozładowywania sieci są zbyt długie, układ może nie spełniać wymagań co do zależności czasowych opisanych w specyfikacji protokołu 1-Wire. Najprostszy driver z opornikiem pozwala na wysterowanie około 200 m sieci. Bardziej wyrafinowane drivery wyposażone w aktywne układy podciągania do zasilania (co umożliwia ładowanie/rozładowywanie znacznie większym prądem) są w stanie wysterować ponad 500 m sieci. Tego rodzaju drivery sieci 1-Wire opisano w nocie aplikacyjnej 244 - https://www.maximintegrated.com/en/app-notes/index.mvp/id/244.

    Problemy z pasożytniczym zasilaniem układów w sieci

    Sygnały w sieci 1-Wire muszą służyć nie tylko do komunikacji, ale także zapewnić prąd do zasilania układów. Każdy z układów w sieci pobiera z niej prąd, którym ładuje swój wewnętrzny kondensator, jeśli napięcie na linii danych jest większe niż napięcie na tym kondensatorze. Jeśli waga sieci będzie zbyt wielka, prąd dostarczany z sieci do układów może być niedostateczny do naładowania kondensatorów do napięcia umożliwiającego działanie układów.

    W najgorszym przypadku dla tego rodzaju zasilania w sieci wystąpić może długi ciąg przesyłanych zer. W takiej sytuacji jest niewiele momentów, które pozwalają na ładowanie układów. Jeśli czas pomiędzy zerami w sieci jest dostatecznie długi, to pojemności ładowane są do odpowiedniego napięcia. Dodatkowo pamiętać trzeba, że wraz ze spadkiem napięcia zasilającego każdego z układów, spada ich zdolność do wysterowania sieci w celu komunikacji z masterem i zmieniają się zależności czasowe takiej transmisji. Jeśli napięcie na kondensatorze spadnie poniżej pewnego krytycznego poziomu, układ wejdzie w stan resetu i przestanie odpowiadać na zapytania mastera. Gdy pojemność naładuje się znowu do wymaganego poziomu, układ nada sygnał o obecności w sieci, który może zakłócić inną transmisję. Błędy w transmisji spowodowane zbyt małym prądem ładowania pojemności układów, nie występują w sposób stały i zależne są od transmisji danych w sieci.

    Dopasowywanie rozproszonej impedancji

    Siłą interfejsu 1-Wire jest prostota i minimalizm, które przekładają się na niskie koszty implementacji. Powinno unikać się stosowania w sieci innych elementów niż układy, z którymi komunikować ma się master 1-Wire.

    Przy rozgałęzianiu sieci 1-Wire w miejscu rozgałęzienia następuje punkt niedopasowania impedancji. Odbicia od końca gałęzi docierają z powrotem do głównej szyny sieci, opóźnione o czas zależny od długości gałęzi. Mogą one zakłócać komunikację z innymi układami - szeregowe rezystory w gałęziach sieci pozwalają redukować problem spowodowany niedopasowaniem impedancji i zmniejszać problem z odbiciami. Dzięki zastosowaniu rezystancji w tym punkcie odbicia wygenerowane w gałęzi nie docierają do głównej szyny sieci.

    Długie sieci 1-wire - jak je realizować?


    Najlepsza implementacja zaprezentowanej powyżej koncepcji polega na dodaniu opornika 150 Ω przy każdym rozgałęzieniu sieci. Wartość ta zmniejsza niedopasowanie impedancji o około 20% i tłumi powstałe w gałęzi odbicie o około 40%. Niestety jednakże dodanie takiego opornika pogarsza odporność sieci na szum o około 80%, więc konieczne mogą okazać się testy sieci z taką wartością i zastąpienie opornika mniejszym np. 100 Ω.

    Warto pamiętać, że niektóre układy z aktywnym podciąganiem do masy, np. DS2480B, nie są kompatybilne z takim rozwiązaniem. Rozwiązania z opornikiem tłumiącym odbicia i dopasowującym impedancję najlepiej sprawdzają się z driverami opartymi o elementy dyskretne.

    Układy po stronie master interfejsu

    Istnieje szereg rodzajów układów master w sieci 1-Wire, a każdy z nich dedykowany jest do pracy w innym charakterze i niekoniecznie sprawdzi się sterując siecią innego rodzaju. Typowe drivery sieci 1-Wire dedykowane do małych sieci nie sprawdzą się w większych i bardziej skomplikowanych sieciach, a wyrafinowane drivery służące do sterowania dużymi sieciami niekoniecznie muszą działać poprawnie z sieciami o małej lub średniej wadze.

    Najczęściej w roli mastera sieci 1-Wire występują:

    * Pin mikroporocesora
    * Pin mikrokontrolera z wbudowanym sprzętowym driverem sieci 1-Wire.
    * Syntezowalny master 1-Wire (DS1WM) dla układów programowalnych.
    * Konwertery innych interfejsów na 1-Wire (RS232, USB etc): DS2480B, DS2482-100, DS2482-800.

    Aby za pomocą tych typowych masterów sterować dłuższymi sieciami, konieczne są pewne modyfikacje układu. W dodatku A pokazano, jak podłączyć do wyjścia mikroprocesora driver, który pozwoli sterować siecią o promieniu/wadze do 200 m.

    Układ DS2480B zaprojektowany został do sterowania sieciami o małym i średnim zasięgu. Dodanie prostego układu RC, jaki pokazano w dodatku B, pozwoli na zwiększenie zasięgu i współpracę z średnimi sieciami do 200 m. Warto zauważyć, że układ ten oferuje możliwość kontroli zależności czasowych, co pozwala na dopasowanie ich do wymagań konkretnej sieci.

    Rekomendowany schemat drivera dla długich sieci omówiony został w nocie aplikacyjnej 244 wspominanej powyżej. Opiera się on o zastosowanie układów dopasowujących impedancję i inteligentnego aktywnego podciągania interfejsu. Pozwala to na sterowanie siecią o promieniu i wadze do 500 m.

    Co czyni sieć 1-Wire niezawodną

    Awarie w sieci 1-Wire objawiają się najczęściej jako tajemnicze znikanie układów, gdy przeszukuje się sieć. Układy są nadal fizycznie obecne w sieci, ale nie zawsze możliwa jest z nimi komunikacja. Czemu tak się dzieje?

    Ze wszystkich aktywności, jakie odbywają się w sieci 1-Wire wyszukiwanie obecnych w niej układów jest jedną z najtrudniejszych i najbardziej skomplikowanych. Wyszukiwanie układów to jedyna z sytuacji, w której nadawać będą naraz wszystkie układy w sieci. Oznacza to najtrudniejsze warunki do prowadzenia komunikacji. Jeśli podczas wyszukiwania układów w sieci któryś z nich zgubi synchronizację z interfejsem, nie będzie on w stanie 'odnaleźć się' i będzie powodował błędy w transmisji innych układów. Oznacza to, że problemy z odnajdywaniem układów w sieci pojawią się, gdy:

    * Sieć powodować będzie zakłócenia na zboczu narastającym sygnału.
    * Sygnał w sieci nie osiągnie odpowiedniego poziomu.
    * Jakikolwiek układ rozładuje swój wewnętrzny kondensator podczas wyszukiwania.

    Większość układów master sieci 1-Wire radzi sobie dosyć dobrze z tego rodzaju awariami, automatycznie przerywając proces szukania układów i rozpoczynania go na nowo. W takiej sytuacji nieodkryte dotychczas układy będą wydawać się odłączone od sieci. Jak widać - błąd podczas transmisji nawet jednego bitu na jednym układzie powodować może problemy z transmisją większej liczby układów.

    Algorytmy przeszukiwania sieci 1-Wire zakładają, że możliwe jest przeoczenie układu z uwagi na szum. Dodatkowo w sieciach z układami iButton układ, po podłączeniu do sieci, nadawać będzie impuls o obecności w sieci, który zakłócać może działania algorytmu przeszukiwania sieci. Dlatego też algorytmy kontroli interfejsu zdejmują układ z listy odnalezionych w sieci układów dopiero po pewnym czasie.

    Przyczyny niepoprawnego zachowania interfejsu są różne. Najczęstszymi z nich są:

    * Rozładowanie pojemności zasilającej układ przy długich i mocno obciążonych sieciach.
    * Odbicia na zboczach sygnału.
    * Fałszywe wyzwalanie aktywnego podciągania w układach opartych i driver DS2408B z uwagi na oscylację sygnału.

    Problemy z wyszukiwaniem układów czułe są także na inne zmiany w sieci. Nierzadko zmiany te są ciężkie do wykrycia, co prowadzi do frustracji projektantów. Czułość ta wynika z faktu, że tak duże sieci operują w granicach stosowalności interfejsu 1-Wire. Niewielkie zmiany w układzie sieci doprowadzić mogą do przekroczenia tych granic, a jak opisano powyżej - wystarczy jeden bit pomyłki, aby dany układ zniknął z naszej sieci.

    Sieć, w której algorytm wyszukiwania układów działać będzie poprawnie, jest siecią, w której działać będą także wszystkie inne operacje.

    Problemy z zależnościami czasowymi

    Jeśli zależności czasowe w sieci generowane są programowo (tzw. "bit-banging"), łatwo jest popełnić pewne błędy, których nie da się od razu wykryć.

    Najczęstszym problemem z zależnościami programowymi w sieci 1-Wire jest próbkowanie danych od podrzędnych układów zbyt daleko od opadającego zbocza sygnału. Zależności czasowe generowane przez podległe układy mogą bardzo się różnić, w zależności od temperatury układów czy ich aktualnego napięcia zasilania, a także pomiędzy poszczególnymi układami z różnych serii.

    Na przykład, jeśli próbkujemy wartość 30 µs za zboczem, to układ może działać poprawnie w warsztacie, jednakże okazać się może, że stała czasowa zmieni się nieznacznie w warunkach realnej pracy układu i system może przestać działać poprawnie. Dlatego też niezwykle ważne jest w przypadku programowo realizowanego protokołu, dostosowywanie go do warunków otoczenia i testowanie nie tylko w warsztacie, ale także w docelowym miejscu pracy.

    Podsumowanie

    Tak jak w przypadku każdego układu, tak i sieć 1-Wire musi spełniać konkretne wymagania co do m.in. zależności czasowej. Odpowiednie dobranie układów, okablowania i rodzaju sieci współpracującej z interfejsem 1-Wire pozwala na stworzenie niezawodnej sieci.

    Źródło: https://www.maximintegrated.com/en/app-notes/index.mvp/id/148

    Dodatki

    Dodatek A. Driver dla mikroprocesora

    Długie sieci 1-wire - jak je realizować?


    Dodatek B. Filtr wyjściowy RC dla układu DS2480B dla średnich i krótkich sieci

    Długie sieci 1-wire - jak je realizować?


    Pokazany powyżej prosty filtr RC na wyjściu układu DS2408B pozwala lepiej mu współpracować z sieciami o wadze do 200 m. Filtr taki jak pokazano na obrazku powinien być stosowany z sieciami o wadze od 10 m do 100 m. Kondensator o pojemności 4700 pF w filtrze jest ekwiwalentem około 100 m sieci, więc stanowi znaczne obciążenie dla drivera. Jeśli ma on współpracować z 'cięższymi' sieciami konieczne może być zmniejszenie pojemności w filtrze R do ok. 470 pF.

    Dodatek C. Optymalizacja zależności czasowych układu DS2480B

    W układzie DS2480B możliwe jest programowe kontrolowanie zależności czasowych w protokole 1-Wire. Ustawienia domyślne dedykowane są dla najmniejszych sieci, więc nie zawsze dobrze sprawdzą się z większymi.

    Zależności czasowe i prędkość narastania sygnału w DS2480B mogą być kontrolowane programowo. Sterowniki dla Windows dla tego układu dostosowują parametry czasowe układu wraz z czasem jego pracy. Jeśli układ ten współpracuje z innym systemem lub np. mikrokontrolerem, konieczne jest pamiętanie, aby pracował on w tzw. "Flex Mode". Więcej informacji zasięgnąć można w karcie katalogowej tego układu.

    W układzie regulować można następujące parametry:

    * Prędkość narastania podciągania do masy - prędkość, przy jakiej układ sprowadza sieć od najwyższego napięcia do potencjału masy. Zbyt szybka zmiana potencjału może wprowadzić do układu oscylacje, które zakłócą transmisję, a zbyt wolna, nie pozwoli zachować wymagań co do zależności czasowych protokołu 1-Wire.

    * Czas impulsu zapisu - czas, na jaki master sprowadza do masy sieć na początku każdej transmisji. Jeśli jest zbyt krótki, to krańcowe układy w sieci mogą go nie odczuć.

    * Offset próbek danych - definiuje on, kiedy dane od układów będą próbkowane przez mastera. Jeśli czas jest zbyt krótki, może nie zapewnić zapasu czasu na stabilizację sygnału od układów w sieci. Jeśli jest za długi, to można nie zdążyć odczytać najbliższych układów. Dodatkowo, czas ten determinuje przerwę pomiędzy bitami, podczas której ładowana jest pojemność zasilająca układy w sieci.

    Testy średniej i dużej sieci wykazały, że optymalne parametry to:

    * Prędkość narastania podciągania do masy: 1,37 V/µs
    * Czas impulsu zapisu: 11 µs
    * Offset próbek danych: 10 µs

    Ustawienia te zapewniają najmniejszy czas pomiędzy próbkami (21 µs dla napięcia zasilania od 4,5 do 5,5 V) przy najdłuższym czasie ładowania kondensatorów w układach (10 µs). Jednocześnie czas narastania napięcia w sieci pozwala na dobre jej kontrolowanie. Czas impulsu zapisu i offset próbek danych można zmniejszyć jeszcze o jedną mikrosekundę podczas testów układu.

    Dodatek D. Przykładowe przebiegi

    Poniższe oscylogramy pokazują przebiegi na wyjściu mastera/drivera sieci w różnych sytuacjach, opisanych pod obrazkami.

    Długie sieci 1-wire - jak je realizować?


    Oscylogram pokazujący reset sieci i sekwencję detekcji obecności układów. Co istotniejsze pokazuje też narastanie z kontrolowaną prędkością (master) i bez niej (slave). Zbocze generowane przez mastera jest gładkie i wolne od oscylacji, a zbocze układu nie.

    Długie sieci 1-wire - jak je realizować?


    Ten oscylogram również pokazuje reset i wykrywanie układów. Widoczne jest nakrywanie impulsów obecności, wygenerowanych przez układy w sieci, co zlewa się w jeden impuls.

    Długie sieci 1-wire - jak je realizować?


    Oscylogram pokazujący pojedynczą operację zapisu/odczytu. Warto zwrócić uwagę na zbocze opadające o kontrolowanym nachyleniu.

    Długie sieci 1-wire - jak je realizować?


    Oscylogram pokazujący pojedynczy zapis zera. Master sprowadza interfejs do zera na 60 µs a następnie podnosi na 10 µs przed kolejną operacją.

    Długie sieci 1-wire - jak je realizować?


    Tutaj zaprezentowano odczyt pojedynczego zera. Master sprowadza interfejs do zera na ok. 10 µs i uwalnia go, ale slave sprowadza interfejs do zera, przytrzymując go dłuższy czas 0 od 15 do 60 µs.

    Długie sieci 1-wire - jak je realizować?


    Powyższy oscylogram prezentuje efekty nadmiernej wagi sieci z driverem jedynie z podciągającym opornikiem. 30 układów na końcu sieci o wadze 300 m powoduje, że widoczne są odbicia sygnałów, podobnie jak powolne narastanie sygnału w sieci. Taka transmisja może nie zostać poprawnie odczytana przez mastera.

    Długie sieci 1-wire - jak je realizować?


    Gdy narastanie napięcia w sieci jest powolne, czas pomiędzy transmisjami może być zbyt krótki, aby naładować kondensatory w układach - może to doprowadzić do odłączenia się tych układów.

    Długie sieci 1-wire - jak je realizować?


    Tutaj widzimy przykład bardziej zaawansowanego drivera z dopasowaniem impedancji i aktywnym podciąganiem. Pozwala to lepiej wysterować 'ciężką' sieć. Oscylogram przedstawia pojedynczy zapis jedynki i odczytanie jedynki.

    Długie sieci 1-wire - jak je realizować?


    Tutaj widzimy analogiczny do powyższego przebieg podczas odczytu zera.

    Długie sieci 1-wire - jak je realizować?


    Przebieg napięcia podczas resetu sieci. Aktywne podciąganie do zasilania pozwala na pokonanie wagi sieci po impulsie resetu i po impulsach obecności w sieci poszczególnych układów. W zaprezentowanym przebiegu widać efekty nakładania się impulsów obecności dalekich i bliskich układów. Rezystancja przewodów w sieci powoduje spadek napięcia impulsów dalszych układów.

    Długie sieci 1-wire - jak je realizować?


    Oscylogram prezentujący chaos w sieci podczas fałszywego wyzwolenia aktywnego podciągania do zasilania odbiciami sygnału powstałymi na rozgałęzieniach sieci. Oscylogram powinien przedstawiać pojedynczy odczyt zera, ale aktywne podciągnięcie koliduje ze sprowadzeniem sieci do masy przez układ nadający zero.

    13 5
  • Sklep HeluKabel
  • #2 06 Maj 2016 09:56
    leonow32

    Poziom 29  

    Moim zdaniem jest to trochę przerost formy nad treścią - 1-wire zostało wymyślone po to, żeby łączyć proste układy scalone na krótkie odległości. Jeśli chcemy ciągnąć większe sieci to lepiej wziąć RS485, CAN, Ethernet lub inne rozwiązania przeznaczone właśnie do tego celu. Po co wyważać otwarte drzwi :)

    0
  • Sklep HeluKabel
  • #3 06 Maj 2016 13:48
    autoservice
    Poziom 20  

    ...po to aby latwo i szybko podlaczyc 50 rozproszonych czujnikow temperatury bez 50 uP i bez 50 interfejsow CAN/Eth/RS485 :)

    0
  • #4 06 Maj 2016 13:55
    pawel1148
    Poziom 19  

    leonow32 napisał:
    Moim zdaniem jest to trochę przerost formy nad treścią - 1-wire zostało wymyślone po to, żeby łączyć proste układy scalone na krótkie odległości. Jeśli chcemy ciągnąć większe sieci to lepiej wziąć RS485, CAN, Ethernet lub inne rozwiązania przeznaczone właśnie do tego celu. Po co wyważać otwarte drzwi :)

    Sam sobie zaprzeczyłeś. 1-wire stosowany jest głównie do łączenia czujników Dallasa. Widziałeś kiedykolwiek pojedyncze czujniki na RS485, CAN, Ethernet ?? Ja osobiście nie widziałem by ktoś takie stosował. Czujniki Dallasa są bardzo dobre np. do środowisk bardzo wilgotnych, gdzie należy pociągnąć od nich bardzo długie przewody do najbliższej skrzynki elektrycznej z układem do odczytu. Takie ma zastosowanie długi 1-wire. Wiele osób ma problem właśnie z długością przewodów do 1 wire bo jak zastosuje się ,,dowolny" przewód do takiego połączenia to zasięg może spaść poniżej 10metrów. Ja osobiście używałem OMY 0,5 który zapewniał w miarę dobry zasięg (nieporównywalny z tym tutaj), ale bez filtrów sie obyło. Konkurencją do 1- wire jest w tych środowiskach co najwyżej pętla prądowa, ale ciężko później dla laika zorientować się czy uszkodzony jest czujnik czy układ pomiarowy gdy ma się do czynienia z czujnikiem temperatury (pętla prądowa może działać tylko w określonych bardzo krótkich przedziałach czasu by nie podgrzewać czujnika temperatury).

    0
  • #5 06 Maj 2016 16:56
    mlukjani
    Poziom 11  

    Panowie podłącze się.

    Mam sieć opart na module I2C / 1wire podpiętym do Rapsberry. 1wire jest gwiazdą z 14 DS18B20. Do tego mam jeszcze wpięty licznik. Czujniki są podpięte 3 przewodami i zasilane 3.3V. Wszystko działa dobrze od kilku miesięcy. Tydzień temu podpiąłem switch na DS2408 z kartą przekaźników.
    Wykorzystałem taką płytkę:
    http://www.meraprojekt.com.pl/files/MP-1W-2408.pdf

    Nie chciało mi działać na zasilaniu zewn 5V a 3.3V z magistrali nie mam jak doprowadzić. Poszło w końcu na zasilaniu pasożytniczym 3.3v z szyny danych. Karta przekaźnikowa miała oddzielne zasialnia 5V + sterownie z moduły DS2408 (8 x IN-IN, GND-GND). Działało tak kilka dni, po czym DS2408 zaczął siać błędami (w owfs na losowych portach pojawiał się error, nie można byłe wtedy wysterować danego wyjścia).
    Zaczełem badać temat dlaczego nie chce ruszyć z zasilaniem zewn, owa płytka /DS2408 przy zasilaniu zewn 5V na porcie 1wire pojawia się napięcie ok 2V. W tym momencie wywala mi wszystkie urządzenia z szyny. Po odpięciu zasilania na DS2408 wszystko wraca do normy (ale wywala błędy po jakimś czasie).
    Co może być przyczyną i dlaczego DS2408 podaje napięcie na szynę ?

    Dzisiaj kupiłem drugą płytkę z DS2408 i dalej to samo, wywala mi urządzenia.

    0
  • #6 09 Maj 2016 10:03
    _jta_
    Specjalista elektronik

    Ja kilka lat temu zrobiłem dla znajomego system pomiaru temperatury w domku letniskowym (potrzebne to było głównie po to, żeby wiedzieć, czy nie grozi zamarznięcie instalacji wodociągowej), na 1-Wire, kilkanaście czujników DS18B20. Ze względu na sporą długość połączeń i kiepski kabel (tani telefoniczny, chyba jakaś chińska produkcja, cienkie druciki stalowe pokryte miedzią, 100 metrów miało opór 200 omów), zrobiłem układ wzmacniacza po stronie komputera, który tym sterował (to było coś bardziej złożonego, niż ten schemat z 2N7000 w #1 - nie tylko zwiększona wydajność prądowa nadajnika, ale i czulszy odbiornik, i zrobiłem to na tranzystorach bipolarnych BC547/BC557). Uzyskałem stabilną łączność na 200 metrów tego kabla, plus około 50 metrów lepszego, nie miałem więcej kabla, żeby to wypróbować. Dla wygody łączenia użyłem wtyczek "telefonicznych" 4-pinowych (każdy czujnik ma dwa gniazda, kable mają wtyczki na końcach, i można robić "daisy chain"). Pomiary oscyloskopem pokazały, że istotna jest głównie pojemność i oporność kabla - one spowalniają zmiany napięcia (w sumie tego było z kilkanaście nF i prawie 1k). Musiałem dostosować program, bo odbierane odpowiedzi były nieco dłuższe, niż na krótkich kablach - program w jakiś prymitywny sposób to mierzył i dostosowywał progi rozpoznawania '0' i '1'.

    0