Wiele protokołów komunikacji szeregowej jest dostępnych do przesyłania danych między urządzeniami elektronicznymi, czy to odczyt danych z czujnika przez mikrokontroler czy wysyłanie danych do urządzenia przechowującego. Jest to jeden z serii artykułów, które omówią niektóre z bardziej popularnych protokołów powszechnie używanych. Serię zakończymy porównaniem zalet i wad każdego z nich.
Celem serii jest, aby stała się ona przydatnym źródłem odniesienia następnym razem, gdy znajdziesz się w sytuacji potrzeby implementacji magistrali komunikacji szeregowej, abyś mógł wybrać najlepszą opcję dla swojej konkretnej aplikacji.
W tym artykule przyjrzymy się popularnemu protokołowi 1-Wire.
1-Wire to niskoszybkościowa magistrala komunikacyjna opracowana przez Dallas Semiconductor Corp. (obecnie Maxim Integrated), która używa jednej linii danych sygnałowych oprócz masy. Jest to system komunikacji typu master-slave, gdzie urządzenie master lub host jest połączone przez pojedynczą linię danych z jednym lub większą liczbą urządzeń slave. Każde urządzenie slave 1-Wire będzie miało unikalny, zaprogramowany fabrycznie 64-bitowy numer identyfikacyjny (ID), który jest adresem tego urządzenia.
Urządzenia 1-Wire są zazwyczaj produkowane tylko przez Maxim Integrated i dostępne są w różnych typach obudów, takich jak typowy tranzystor TO-92, jak również różne układy scalone. Bardzo popularnym urządzeniem komunikującym się przez 1-Wire jest iButton (znany również jako Dallas Key). iButton to małe, modułowe urządzenie używane w aplikacjach takich jak rejestratory danych, czujniki temperatury i wilgotności, diody LED, urządzenia pamięciowe, adaptery itp. Chociaż iButton był historycznie bardzo popularną implementacją 1-Wire, obecnie dostępnych jest wiele czujników od Maxim Integrated, które implementują protokół 1-Wire.
W zasadzie iButton to mikroukład bardzo podobny do tych używanych w kartach inteligentnych. Różnica polega na tym, że mikroukład jest umieszczony w okrągłym, stalowym przycisku i jest zaprojektowany do użytku w trudnych i wymagających środowiskach. Opierają się na fizycznych kontaktach do połączenia z magistralą 1-Wire.
Typowe zakresy napięć 1-Wire, w których urządzenie działa, obejmują:
Jedną z najciekawszych cech magistrali 1-Wire jest możliwość zasilania przez linię komunikacyjną, zamiast wymagać zewnętrznego zasilania. Pozwala to na podłączenie zewnętrznych czujników, takich jak czujniki temperatury, za pomocą tylko przewodów danych i masy, przy czym czujnik jest zasilany przez parasolowe zasilanie z magistrali danych. Może to znacznie zmniejszyć złożoność i ilość okablowania w porównaniu do innych protokołów komunikacji szeregowej, które badaliśmy w tej serii.
Typowe połączenie urządzenia magistrali 1-Wire można zobaczyć na poniższym schemacie obwodu:
W powyższym przykładzie jedno urządzenie główne kontroluje kilka urządzeń podrzędnych.
Większość urządzeń 1-Wire wymaga bardzo niskiej mocy i nie potrzebuje pinów zasilania. Te urządzenia czerpią energię, której potrzebują do działania, z linii danych 1-Wire, znanej jako parasolowe zasilanie.
Typowa konfiguracja zasilania pasożytniczego urządzenia 1-Wire może być zobaczona na poniższym schemacie obwodu:
Istnieje wiele urządzeń 1-Wire, które mogą być używane w aplikacjach takich jak pomiar temperatury, identyfikacja, rejestrowanie czasu, EEPROM lub EPROM (programowalne jednokrotnie), bezpieczna autentykacja itp., co pozwala na tworzenie urządzeń z zastosowaniami różniącymi się od identyfikacji, autentykacji materiałów eksploatacyjnych, akcesoriów PCB i komputerowych, ochrony własności intelektualnej, kontroli dostępu do systemów patrolowych, elektronicznej gotówki, rejestracji czasu pracy, monitorowania temperatury żywności lub bezpieczeństwa farmaceutycznego.
Wartość rezystora podciągającego potrzebnego dla połączenia 1-Wire powinna być na tyle niska, aby zapewnić wystarczającą ilość prądu do zasilania urządzenia, ale nie na tyle niska, aby urządzenia podrzędne nie były w stanie skutecznie ściągnąć linii danych do poziomu logicznego 0.
Typowe wartości rezystora podciągającego dla połączenia 1-Wire mieszczą się w przedziale od 1 kΩ do 4.7 kΩ. Ustawia to prąd z zasilania 5 V między 5 mA a 1.06 mA. Jako przykład, urządzenie DS2480B wymaga wartości prądu między 1.5 mA a 5 mA do działania, typowo 3 mA.
Na magistrali 1-Wire zawsze jest jeden główny nadzorca, którym może być komputer osobisty lub mikrokontroler. Mistrz zawsze inicjuje aktywność na magistrali, aby uniknąć kolizji transmisji. Urządzenie główne jest odpowiedzialne za wykrywanie i zarządzanie wszelkimi kolizjami wynikającymi z jednoczesnej transmisji przez wiele urządzeń podrzędnych.
Urządzenia transmitują, używając krótkich i długich niskich impulsów do reprezentowania danych. Niski impuls 1–15 µs odpowiada logicznemu poziomowi 1, podczas gdy niski impuls 60 µs odpowiada logicznemu poziomowi 0. Opadające (ujemne) zbocze impulsu jest używane przez urządzenia podrzędne do nasłuchiwania szerokości impulsu. Mierzą jego czas trwania za pomocą bardzo prostego monostabilnego multivibratora. Mistrz inicjuje komunikację, wysyłając impuls resetujący, po którym następuje 8-bitowa komenda, a następnie dane są wysyłane lub odbierane w grupach po 8 bitów. Wykrywanie błędów jest realizowane za pomocą prostego 8-bitowego cyklicznego kodu nadmiarowego (CRC).
W tym artykule przyjrzeliśmy się niektórym cechom popularnego protokołu 1-Wire i omówiliśmy niektóre z jego zalet oraz szczegóły implementacji. W innych artykułach z tej serii przyjrzymy się niektórym alternatywnym protokołom komunikacji szeregowej dostępnym.
Czy chciałbyś dowiedzieć się więcej o tym, jak Altium Designer® może pomóc Ci w Twoim następnym projekcie PCB? Porozmawiaj z ekspertem w Altium.