| |
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 (798 odsłon)
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.
(Czytaj więcej... | 3531 bajtów więcej | Język C | Wynik: 0)
|
|
Język C: Podłączenie drukarki do uK z rodziny 8051. Aplikacja w języku C.
Wysłany przez Jacek dnia 17-12-2004 o godz. 12:35:07 (2554 odsłon)
Obecnie port równoległy wypierany jest z zastosowań przez dużo wygodniejszy w użyciu interfejs USB. Stale jednak stanowi podstawowe wyposażenie komputerów PC, a w sklepach czy na rynku podzespołów wtórnych, bez większych kłopotów można kupić drukarkę wyposażoną w złącze równoległe. Jej przeznaczenie w systemie z mikrokontrolerem może być różne i zależy od potrzeb i inwencji konstruktora czy programisty. Ciekawy dla elektroników amatorów wydaje się być zwłaszcza rynek wtórny, gdzie za niewielką cenę można nabyć drukarkę igłową czy atramentową, wyposażoną w ten rodzaj interfejsu i dołączyć ją do własnego urządzenia.
Typowo złącze portu równoległego komputera PC to tzw. złącze DSUB żeńskie o 25 doprowadzeniach. Złącze zawiera:
-8 linii danych,
-5 linii do raportowania statusu urządzenia,
-4 linie kontrolne.
Zestawienie linii wraz z krótkim opisem ich funkcji zawiera tabela 1. Port równoległy nowoczesnego komputera PC może pracować w jednym z 5 trybów: Compatibility Mode, Nibble Mode, Byte Mode, EPP (Enhanced Parallel Port), ECP (Enhanced Capability Port). Oczywiście nic nie stoi na przeszkodzie, aby opracować własny interfejs dla systemu z mikrokontrolerem pracujący w trybach rozszerzonych, jednak dla większości zastosowań służących dołączeniu drukarki wystarczającym jest tryb standardowy, to jest Compatibility. Na jego opisie skupi się ten artykuł, dla niego również opracowany został przykładowy interfejs łączący mikrokontroler AT89S8252 z drukarką igłową marki EPSON LX400.
(Czytaj więcej... | 1622 bajtów więcej | Język C | Wynik: 4)
|
|
Podzespoły: Translator poziomów napięć dla interfejsów SPI oraz I2C
Wysłany przez Jacek dnia 31-10-2004 o godz. 12:11:43 (1266 odsłon)
Interfejsy szeregowe najczęściej używane są do komunikacji pomiędzy układami w obrębie urządzenia, modułu czy wręcz płytki drukowanej. Najczęściej stosowane i przez to najczęściej spotykane są interfejsy I2C oraz SPI. W dzisiejszych czasach konstruktor może napotkać jeden problem: często mikrokontrolery czy mikroprocesory zasilane są dużo niższym napięciem niż układy peryferyjne. Wykonywane są one w bardzo dużej skali integracji, w technologii w której rozmiar pojedynczego tranzystora to ułamki mikrometra. Takie układy zapewniają dużą wydajność (większy stopień upakowania elementów, krótsze połączenia pomiędzy elementami) ale wymagają do zasilania napięć rzędu 1,5V. Co zrobić, gdy pozostałe układy komunikujące się z procesorem zasilane są przez napięcie o innej wartości? Na przykład przetworniki analogowo - cyfrowe, które dla uzyskania dobrej dynamiki potrzebują napięć zasilania 5V i wyższych? Konieczna staje się wówczas budowa tzw. translatora poziomów napięć.
(Czytaj więcej... | 1080 bajtów więcej | Podzespoły | Wynik: 4)
|
|
Układy cyfrowe: Interfejs szeregowy RS232 (EIA232)
Wysłany przez Jacek dnia 31-10-2004 o godz. 01:17:51 (3252 odsłon)
We wczesnych latach 60 instytucja, dziś znana pod nazwą Electronic Industries Association opracowała, wspólną dla urządzeń przesyłających dane, specyfikację standardu interfejsu szeregowego. W tamtych latach jako "przesyłanie danych" rozumiano przede wszystkim komunikację pomiędzy głównym komputerem mainframe i dołączonymi doń terminalami lub też pomiędzy terminalami, bez angażowania komputera centralnego. Ci przodkowie współczesnego komputera PC byli połączeni ze sobą przeważnie przy pomocy linii telefonicznej i modemu. Jakkolwiek jest to bardzo prosta koncepcja, to jednak zamiana sygnału cyfrowego na analogowy, przesłanie go przez linię telefoniczną a następnie ponowna konwersja do postaci cyfrowej, wiąże się z możliwością powstania licznych błędów transmisji. Standard przesyłania danych był więc konieczny po to, aby po pierwsze eliminować błędy a po drugie doprowadzić do sytuacji, w której wyroby różnych producentów mogły być ze sobą łączone. Tak powstał interfejs RS232 ze specyfikacją szybkości transmisji, czasów trwania sygnałów i ściśle określonym protokołem transmisji. Trwa on w niezmiennej prawie postaci od ponad 40 lat, chociaż 1991 EIA wydała dokument zawierający pewne modyfikacje.
(Czytaj więcej... | 1315 bajtów więcej | Układy cyfrowe | Wynik: 4)
|
|
Artykuły: Interfejs 1-Wire: opis warstwy fizycznej
Wysłany przez Jacek dnia 31-10-2004 o godz. 00:47:26 (2927 odsłon)
Podobnie jak w większości interfejsów szeregowych, również i w 1-Wire transmisja przebiega w konfiguracji master - slave. Układ master wyszukuje i adresuje układ slave, steruje przepływem danych, wysyła sygnał zegarowy. Dane przesyłane są synchronicznie z prędkością od bliskiej 0 do 16,3 kbps w trybie standard oraz do 115 kbps w trybie overdrive. Każde opadające zbocze sygnału inicjuje i synchronizuje przesyłany bit. Czas trwania bitu jest ściśle określony i wynosi 60 us + 1 us na tak zwany recovery time. Wyznacza on maksymalną prędkość transmisji w trybie standard (1 / 61 us = 16,3 kbps). Po opadającym zboczu sygnału musi upłynąć czas potrzebny na "upewnienie się", że nie jest to zakłócenie pojawiające się na linii. Pó?niej następuje już właściwa dla przesyłanego bitu zmiana stanu linii interfejsu. Bity przesyłane są jako zanegowane, to znaczy "1" odpowiada stan niski linii, natomiast "0" stan wysoki trwający przez tSLOT - tRDV, to jest od 45 do 105 us. Przesyłane są słowa jednobajtowe. Jako pierwszy transmitowany jest bit mniej znaczący.
(Czytaj więcej... | 1160 bajtów więcej | Artykuły | Wynik: 4)
|
|
| |
 |
Artykuł dnia |
 |
|
|
Dziś nie dodano nowego artykułu.
|
|
|
 |
|