easy - soft elektronika i programowanie mikrokontrolerów - Algorytm poszukiwania układów w sieci 1-Wire.
Witaj w easy - soft  elektronika i programowanie mikrokontrolerów
Szukaj


Menu
· Strona główna
· Ankiety
· Archiwum artykułów
· Działy tematyczne
· FAQ
· Inne WWW
· Kontakt
· Książki
· Najczęściej odwiedzane
· Ostatnio dodane
· Redakcja
· Szukaj artykułu
· Ustawienia własne
· Wiadomości prywatne
· Zasoby

Licznik
Otrzymaliśmy
Powered by PHPCounterPowered by PHPCounterPowered by PHPCounterPowered by PHPCounterPowered by PHPCounter
odsłon strony od
Listopada 2002

 
interfejsy w systemach cyfrowych Język C: Algorytm poszukiwania układów w sieci 1-Wire.
Wysłany przez jacek dnia 26-11-2008 o godz. 21:12:11
Autor jacek

Każdy z układów z interfejsem 1-Wire posiada unikatowy 64-bitowy kod identyfikacyjny. Kod ten nosi nazwę "kod ROM" i może być utożsamiany z unikatowym adresem układu z interfejsem 1-Wire. Kod ten używany jest przez układ Master do wyboru układu w sieci. W związku z tym, że jest to kod unikatowy, to jeśli nie jest znana liczba układów Slave w sieci, może ona zostać określona przy jego użyciu przez zastosowanie funkcji przeszukiwania sieci. Algorytm jej działania oparty jest o zasadę przeszukiwania drzewa binarnego. Gałęzie przeszukiwane są do momentu aż zostanie odnaleziony koniec gałęzi lub pamięć ROM układu 1-Wire. Funkcja przeszukuje drzewo do momentu aż wszystkie numery ROM i wszystkie zakończenia zostaną odkryte. Algorytm rozpoczyna się od wysłania rozkazu reset. Jeśli jego przesłanie zakończy się powodzeniem, to znaczy odpowiednio zareagują na niego układy dołączone do magistrali, wysyłana jest 1-bajtowa komenda zwana "search" o kodzie 0xF0 lub 0xFC. Komenda ta przygotowuje układy podłączone do magistrali do przeszukiwania. Firma Dallas zaimplementowała dwa rodzaje komend przeszukujących. Najczęściej używane jest przeszukiwanie tzw. normalne (0xF0) sprawdzające wszystkie układy podłączone do linii. Innym rodzajem przeszukiwania jest tzw. warunkowe, które znajduje układy będące w stanie alarmowym, np. załączone termostaty czy timery, które sygnalizują zakończenie odmierzania czasu. Redukowany jest w ten sposób obszar przeszukiwania do tylko tych układów, które muszą zostać z jakiś powodów odczytane czy ustawione. Po wysłaniu przez układ Master komendy przeszukiwania, układy Slave podłączone do magistrali 1-Wire (wszystkie, których dotyczy komenda) odpowiadają wysyłając jednocześnie mniej znaczący bit własnego adresu. Według standardu 1-Wire, układ Master inicjuje przesłanie każdego bitu zapisywanego czy odczytywanego z układu Slave. W związku ze specyfiką interfejsu, gdzie wszystkie układy podłączone są do wspólnej linii przesyłowej i na odebraną komendę przeszukiwania odpowiadają w tym samym czasie (jednocześnie i synchronicznie z sygnałem zegarowym wysyłanym przez układ Master), rezultat odczytu docierający do układu Master jest iloczynem logicznym stanów wyjść układów Slave (wired and). Po tym jak układy Slave prześlą 1-szy bit swojego adresu, układ Master inicjuje odbiór następnego bitu, na który układy Slave odpowiadają wysyłając ponownie 1-szy bit adresu lecz tym razem jest to jego bit komplementarny. Następnie układ Master wysyła bit adresu do układów Slave. Jeśli urządzenie Slave odbiera bit, który zgadza się z bitem na pozycji adresu, pozostaje załączone i aktywne. Jeśli natomiast odebrany bit nie odpowiada temu z adresu, urządzenie Slave przechodzi do stanu oczekiwania i nie przesyła już żadnych danych. Stan ten trwa aż do odebrania następnego sygnału reset. Opisywana wyżej procedura tzn. odbiór przez układ Master jednego bitu jako normalny i komplementarny a następnie przesłanie tego bitu adresu do układu Slave (jako normalny), powtarzana jest dla wszystkich 63 pozostałych bitów adresu. W takiej sytuacji urządzenie Slave wywołuje wszystkie układy dołączone do magistrali, lecz w danym momencie, po odbiorze bitu adresu, tylko jeden z nich przejdzie do stanu oczekiwania. Na końcu procedury znany jest adres ostatniego układu dołączonego do magistrali. W następnych przejściach procedury uwzględniana jest inna ścieżka, dotąd nie przeszukiwana.

Artykuł w formacie PDF


 
Pokrewne linki
· Więcej o interfejsy w systemach cyfrowych
· Napisane przez jacek


Najczęściej czytany artykuł o interfejsy w systemach cyfrowych:
Interfejs szeregowy RS232 (EIA232)


Oceny artykułu
Wynik głosowania: 0
Głosów: 0

Poświęć chwilę i oceń ten artykuł:

Wyśmienity
Bardzo dobry
Dobry
Przyzwoity
Zły


Opcje

 Strona gotowa do druku Strona gotowa do druku

 Wyślij ten artykuł do znajomych Wyślij ten artykuł do znajomych


Tematy pokrewne

elektronika: podzespołyinterfejsy w systemach cyfrowychprogramowanie: język C

Przepraszamy, komentarze dla tego artykułu są niedostępne.
Wszystkie artykuły są umieszczane na stronie za wiedzą i zgodą ich autorów lub właścicieli praw autorskich. Jeśli czujesz, że z jakiegoś powodu twoje dobra zostały naruszone, skontaktuj się z admin@easy-soft.net.pl a podejmiemy natychmiastowe działania mające na celu wyjaśnienie sytuacji. Autorzy nie ponoszą żadnej odpowiedzialności za skutki wykorzystania treści zawartych w artykułach. Uwaga: mimo naszych najlepszych chęci i starań, artykuły mogą zawierać błędy!

Wszystkie logo, znaki handlowe i nazwy towarów są własnością ich właścicieli. Na tej stronie używane są wyłącznie w celach informacyjnych lub promocyjnych. Komentarze wysyłane przez użytkowników są ich komentarzami, za które administratorzy nie ponoszą żadnej odpowiedzialności! Nie mniej jednak treści obsceniczne i obra?liwe będą usuwane a artykuły bedą moderowane, to znaczy ich treść, przydatność i zgodność z tematami prezentowanymi na stronie, będzie oceniana przez administratorów przed umieszczeniem na stronie.

Web site engine code is Copyright © 2003 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Tworzenie strony: 0.136 sekund