Komputery

Interface szeregowy MicroLAN

Rozwiązanie proponowane przez firmę Dallas Semiconductor, opierające się na komunikacji jedno-przewodowej (1-Wire bus) nadrzędnego urządzenia master z urządzeniami 1-Wire. Rozwiązanie poparte szeregiem praktycznych realizacji narzędzi 1-Wire np. produktów z serii Touch Memories DS19xx. Sieć MicroLAN składa się z trzech zasadniczych elementów :

nadrzędnego urządzenia master przyłączonego do szyny komunikacyjnej za pośrednictwem wyjścia typu ´otwarty dren´, wykonującego logiczny iloczyn na przewodzie< używającego rezystora podciągającego (ang. pull-up resistor) do nominalnego napięcia 5[V] zasilającego urządzenie master
pojedyncza, dwukierunkowa magistrala umożliwiająca komunikację pomiędzy urządzeniem master i narzędziami 1-Wire, spełniająca wszelkie wymagania czasowe dla przesyłu danych na wymagane odległości
narzędzi typu slave dopasowanych do standardu 1-Wire, mogących się komunikować za pomocą dwukierunkowej magistrali z urządzeniem master za pośrednistwem protokołu 1-Wire Protocol.
Narzędziami przeznaczonymi do pracy z siecią MicroLAN jest między innymi rodzina produktów nazwana Touch Memory. Produkty komunikują się za pośrednictwem wspólnego pojedynczego przewodu, przesyłając specyficzną sekwencję komend rekomendowaną dla 1-Wire Protocol. Każdy element rodziny charakteryzuje się numerem identyfikacyjnym (ang. Unique Serial Number) oraz kodem całej rodziny (ang. Family Code). Unikalny numer podzespołu może być wykorzystywany jako adres dla narzędzia w magistrali 1-Wire. Uzupełnieniem 8 bajtowego komunikatu w sieci MicroLAN z udziałem narzędzi Touch Memory serii DS19xx jest bajt kontrolny CRC, wymagający od nadrzędnych urządzeń odpowiednich algorytmów przeliczeniowych.

Magistrala MicroLAN zgodna z protokołem 1-Wire dla produktów Touch Memory reprezentuje przy zapisie logiczne zero jako impuls o niskim poziomie i czasie trwania minimum 60[mikros.] (tzw. Write 0), logiczną jedynkę natomiast jako impuls o niskim poziomie i czasie trwania maksimum 15[mikros.] (tzw. Write 1). Magistrala czyta z rejestrów Touch Memory podciągając niską linię danych kiedy jest uwolniona, monitorując arunki panujące na niej. Dla Touch Memory sygnał do czytania logicznego zera (Read 0) jest niskim impulsem z przedziałem czasu, trwającym minimum 15[mikros.], dla opadającego, początkowego zbocza. Odczytywany sygnał Read 1 jest przedziałem czasu, pozwalającym linii danych na powrót do wysokiego stanu przez rezystor podciągający. Czas pomiędzy kolejnymi przedziałami czasu musi być równy minimum 1[mikros.].

Dobór rezystorów podciągających, ze względu na czasową reprezentację stanów logicznych, jest kompromisem pomiędzy zakresem transmisji, ilością narzędzi a poziomem napięcia zasilającego. Dla Touch Memory założono minimalną wartość rezystora podciągającego na poziomie R=1150[ohm]. Jest to uwarunkowane znanym (0,4[V]) spadkiem napięcia na elemencie Touch Memory w trakcie nadawania, przy poborze prądu 4[mA], (R narzędzi na poziomie min. 100[ohm], dla DS19xx). Określenie dokładnej wartości rezystorów podciągających sieci MicroLAN jest trudne i uzależnione od wielu warunków (pojemności linii komunikacyjnej, rezystancji okablowania i połączenia, ilości narzędzi itp.), zasadniczo zawierają się one w przedziale R(1[kohm]-10[kohm]).

Jako urządzenie master, może być wykorzystany dowolny szeregowy port typu otwarty dren, mogący współpracować z rezystorami podciągającymi (np. wyprowadzenie 3 portu 0 mikrokontrolera DS5000) lub inny odpowiednio zaadaptowany standardowy port szeregowy.

Ponieważ nie jest możliwe idealne dopasowanie przewodów komunikacyjnych sieci MicroLAN do narzędzi (np. Touch Memory), należy się liczyć z odbiciami w trakcie znacznego niedopasowania, mogącymi wywołać błędy. Chcąc wprowadzić tolerancję nidopasowania należy przewidzieć możliwe opóźnienia, zastosować prawidłowe okablowanie oraz odpowiednio dobrać rezystory podciągające. Komunikację może przerwać również całkowita, nadmierna pojemność sieci MicroLAN, która wraz z rezystancją R wprowadzi stałą czasową (RC) przekraczającą przedziały czasowe zdefiniowane przez protokół komunikacyjny.

Przy kontrolowanych opóźnieniach (rzędu 3-4[mikros.]), aktywnych elementach podciągających i prawidłowym okablowaniu (np. wyselekcjonowanych kabli telefonicznych, skrętki kategorii 5 lub kabli zgodnych z IEEE 1394 tzw. ,,Firewire”) zakłada się bezbłędną komunikację 500 różnych 1-Wire narzędzi na odcinku 300[m] z szybkością ~16[kbitów/s].