Pytanie:
Najlepsza praktyka w przesyłaniu sygnału analogowego czujnika na większe odległości (ok. 100 ') - w produktach wrażliwych na koszty dla mikrokontrolerów
risingtiger
2020-01-13 07:38:27 UTC
view on stackexchange narkive permalink

Szukam najlepszych praktyk w zakresie przesyłania sygnału czujnika analogowego na duże odległości do mikrokontrolera, takiego jak Arduino pracującego pod napięciem 3,3 V lub 5 V. Konieczne jest utrzymanie niskich kosztów.

SPI i I2C są bardzo powszechne w Arduino, ale wydaje się, że nie ma dobrego rozwiązania, gdy czujniki muszą znajdować się dalej niż kilka stóp od mikrokontrolera. Ale być może I2C lub SPI będą działać z odpowiednimi komponentami i okablowaniem. Jakieś pomysły?

Pętle prądowe 4-20 mA wydają się solidnym rozwiązaniem, ponieważ prąd nie spada na odległość, o ile dostarczana moc pozostaje powyżej zapotrzebowania. Jednak systemy czujników, nadajników i odbiorników 4-20 mA wydają się być podstawą w świecie przemysłowym i praktycznie nie występują w tanich systemach wbudowanych.

Klasyczną potrzebą jest wykrywanie temperatury za pomocą rezystancyjnego termistora. Czy są to niedrogie nadajniki, które można połączyć z termistorem w celu przesyłania sygnału pętli prądowej 4-20 mA? A potem niedrogi odbiornik po stronie mikrokontrolera? Pomyślałbym, że zadziałaby coś takiego jak MOSFET po stronie nadajnika, w połączeniu z rezystorem po stronie osadzonej.

Niestety, będąc inżynierem oprogramowania, elektronika jest dla mnie nadal trochę niejasna.

AKTUALIZACJA: Powinienem był podać więcej. Odległości 30 '- 150' w potencjalnie hałaśliwym otoczeniu. Mogę BARDZO niska szybkość transmisji: 10 kHz. Nawet 1 kHz, jeśli coś takiego jest wykonalne. Wprowadzenie filtra dolnoprzepustowego i / lub filtrów programowych nie jest wielkim problemem. Chciałbym mieć mniej niż 10 dolarów na czujnik (bez obudowy). Ale chciałbym również trzymać się z daleka od niestandardowej płytki PCB przy czujniku, jeśli to możliwe.

Masz rację, jeśli chodzi o rezystor po stronie odbiornika jako konwerter prądu na napięcie, dzięki czemu można go łatwo odczytać przez ADC MCU.Nie wiem o stronie nadajnika, ale zamiast MOSFET-u użyłbym wzmacniacza operacyjnego (lub wzmacniacza operacyjnego, który używa zewnętrznego tranzystora jako wzmacniacza mocy, aby wzmacniacz operacyjny mógł obsługiwać regulację bez koniecznościsamo rozpraszają ciepło).Nie próbowałbym uruchamiać I2C lub SPI na kilku metrach, chociaż możesz i ludzie to robią.Używałbym RS-422 lub RS-485.
Czy potrafisz zdefiniować „duże odległości”?Cale?Metry?Miles?
Pomogłoby nam, gdybyś opowiedział nam nieco więcej o swojej aplikacji.Jaki czujnik lub co zamierzasz zmierzyć?Ile energii zużywają czujniki?Jak rozmieszczone są czujniki (gwiazda, linia, siatka)?Czy jest to jeden sygnał na węzeł?(Czy na pewno pozostanie jeden sygnał na węzeł?;)
Jak sugeruje DKNguyen, czy rozważałeś uruchomienie SPI przez RS-422 (lub półdupleks RS-485)?
Zależy od przepustowości, a ile jest tanie, a jak długie jest duże odległości? Na https://www.lammertbies.nl/comm/info/rs-232-specs, podczas gdy RS232 ma około 16 m przy 19200 bodów, przy 2400 bodów został przetestowany przy 1000 m.Pętla prądowa 60mA może obsłużyć 5 km przy niskiej prędkości.Modemy mogą przejechać wiele kilometrów na skrętce.A może to Bluetooth - choć nieskończenie bardziej skomplikowany, para urządzeń Bluetooth jest prawie na pewno tańsza niż 500 m kabla.
** MUSISZ ** określić wymaganą szybkość transmisji danych.Można powiedzieć 100 bps na mokrym strunie (prawie dosłownie, jeśli jest mokry od słonej wody :-)).||NAPRAWDĘ pomocne byłoby określenie pożądanej kolejności kosztów i wszelkich innych ograniczeń, które znasz i które musimy zgadnąć.||Odrzucasz RS422 / 485 jako zbyt złożony.To nie jest.Podstawowym mechanizmem jest zrównoważone napięcie różnicowe i można to zrobić za dużo poniżej dolara.I dobrze pod tym względem, jeśli tak musi być.
Możesz użyć magistrali CAN
Jako przykład podajesz termistor.Jeśli faktycznie potrzebujesz zmierzyć temperaturę, prawdopodobnie możesz uciec z uruchomieniem skrętki z termistora bezpośrednio z powrotem na płytkę uC, zamiast digitalizacji na czujniku.Temperatura zmienia się dość wolno, co oznacza, że łatwo jest uśrednić w oprogramowaniu, aby usunąć szum.To rozwiązanie jest oczywiście mniej ważne dla każdego szybciej zmieniającego się sygnału analogowego.
@Selvek.To interesujące.Będzie to temperatura, wilgotność i poziom wody.Wszystko zmienia się bardzo powoli.A wszystko polega na podstawowym pomiarze rezystancji.Wiem, że mogę wiele zrobić w kodzie, aby odfiltrować nieoczekiwane sygnały, jeśli znam maksymalną szybkość zmian (która będzie wynosić około 1 stopień na minutę).Czy działałoby coś takiego jak linia Cat5 lub nawet Cat7?I po prostu przepuść sygnał analogowy.
W IoT odczyty danych o niskiej częstotliwości są powszechne.Wyczuwając poziom w zbiorniku wody, światło otoczenia na zewnątrz, wilgoć w glebie lub wilgotność w szklarni.Te zmieniają się powoli.Punkt danych można uzyskać tylko raz na minutę.Kontrastuje to z większością zastosowań przemysłowych.Dla tych punktów danych o niskiej częstotliwości być może dokładność można byłoby uzyskać, odczytując sygnał analogowy wiele razy w ciągu 2 sekund.Następnie uruchom filtry dolnoprzepustowe i górnoprzepustowe w oparciu o poprzednią minutę.Następnie oblicz na podstawie średniej kroczącej.
Weź pod uwagę IR, jeśli odległość jest duża i masz linię wzroku
Czy jest jakiś powód, dla którego musisz doprowadzić sygnał do tak odległej tablicy, zamiast zbliżać tablicę do sygnału?Co to jest „niski koszt”?Dolary?Dziesiątki dolarów?
Jeśli naprawdę chcesz wdrożyć rozwiązanie analogowe dla czujnika zdalnego, pamiętaj o uwzględnieniu kosztów kabli.Możesz poślubić rozwiązanie tylko po to, aby przekonać się, że potrzebujesz magicznego kabla, aby działało dobrze.
Jeśli zależy Ci tylko na temperaturze, termistory NTC 10K są bardzo tanie, nie wymagają wiele do czytania, a kilka omów rezystancji kabla ma znikomy wpływ na dokładność.Używamy ich na nieekranowanej skrętce przez ponad 50 metrów bez problemów w ustawieniach biurowych.
@someonesomewheresupportsmonica.Myślę, że w przypadku czujników temperatury i prostych czujników rezystancyjnych to jest droga.
Dziesięć odpowiedzi:
TimWescott
2020-01-13 08:10:14 UTC
view on stackexchange narkive permalink

„Najlepsza praktyka” i „niedrogi” podlegają ocenie.

We wszystkich przypadkach umieszczałem naprawdę niedrogi mały procesor przy czujniku i kazałem mu mówić cyfrowo.Sposób na lata 1950-1975 to 4-40mA lub wysłanie przez pilota sygnału PWM lub modulowanego częstotliwościowo.

  • Do około sześciu stóp zasilaj zdalny czujnik z poziomu + 5 V (lub + 3,3 V) i poprowadź uziemiony asynchroniczny szeregowy obwód szeregowy (styki UART) bezpośrednio z czujnika do „głównego” procesora.
  • Do około sześćdziesięciu stóp zasilaj czujnik zdalnego sterowania z dowolnego źródła i zregeneruj go w pilocie.Zapewne dałbym mu + 12V na napowietrzną i użyłbym regulatora przełączającego „tam”, ale można użyć regulatora liniowego.Użyj RS-422 z pilotem ustawionym tylko na wysyłanie lub użyj RS-485 w trybie półdupleksu, z pewnym protokołem, dzięki czemu piloty mówią tylko wtedy, gdy ktoś do nich mówi.
RS-422 to praktyczny sposób przesyłania danych na duże odległości.Ale ten projekt wymaga utrzymania niskich kosztów / złożoności.Może wydawać się, że po prostu wrzucenie dodatkowego mikrokontrolera na czujnik nie jest wielkim problemem, ale to zwiększa złożoność: więcej kodu;więcej płytek PCB do produkcji;więcej komponentów do rozbicia;i więcej rzeczy do utrzymania.Ale jeśli istnieje niedrogi, prosty z półki komponent RS-422/485, który po prostu przekształci sygnał analogowy na cyfrowy i wyśle go przez linię, może to zadziałać.Nadal dodano złożoność, ale złożoność, która w większości może być uzewnętrzniona.
VillageTech
2020-01-13 08:56:45 UTC
view on stackexchange narkive permalink

Innym rozwiązaniem może być I2C - istnieją przedłużacze pozwalające na tworzenie autobusów do 100m (300ft). Jednym z nich jest NXP P82B96. Jest bardzo przydatny w konstrukcjach amatorskich, ponieważ nie jest drogi i występuje również w łatwej w montażu obudowie DIP-8. Dodatkowo umożliwia przekładanie poziomów logicznych na wyższe napięcia (np. 12V). Niektóre uwagi dotyczące aplikacji można znaleźć na stronach NXP, na przykład: https://www.nxp.com/docs/en/application-note/AN10658.pdf

Istnieje również możliwość zbudowania optoizolowanej magistrali przy użyciu P82B96: https://www.nxp.com/docs/en/application-note/AN10364.pdf

Inną możliwością jest P82B715, ale jest ona prawdopodobnie mniej użyteczna, ponieważ maksymalna długość magistrali wynosi około 50 m (150 stóp) i istnieją inne ograniczenia. Jest taka notatka: https://www.nxp.com/docs/en/data-sheet/P82B715.pdf

Korzystanie z I2C jest bardzo efektywnym rozwiązaniem, ponieważ na rynku dostępnych jest wiele tanich układów interfejsu (ADC, DAC, IO, czujniki temperatury itp.), więc od strony czujnika nie ma potrzeby stosowania MCU (i stworzyć dedykowane oprogramowanie dla tego MCU).

Osobiście zbudowałem swój system automatyki domowej korzystając z tego rozwiązania (P82B96 z optoizolacją) i mogę potwierdzić, że działa on bardzo dobrze, jest stabilny i niezawodny.

Ciekawy!P82B96 wydaje się realnym rozwiązaniem.Dodanie złożoności mikrokontrolerów wraz z ich zasilaniem i konwersjami niezbędnymi do komunikacji przez rs422 jest nadmierne: większe koszty;więcej komponentów do rozbicia;więcej kodu do konserwacji i więcej PCB do stworzenia.Jakiego rodzaju źródła zasilania wymaga P82B96?
Paul
2020-01-14 00:40:29 UTC
view on stackexchange narkive permalink

Osiągnąłem doskonałe wyniki podczas przesyłania danych z czujników za pomocą sieci kontrolera (CAN).Mam 16-bitowy mikrokontroler z wbudowanym CAN, który łączy się przez SPI z 24-bitowym przetwornikiem A / D.Ten mikrokontroler pobiera próbki co 20 ms i wysyła dane przez CAN do innego mikrokontrolera (32-bitowego) znajdującego się 50 metrów dalej.CAN ma zaawansowane funkcje sprawdzania błędów, których starsze systemy mogą nie mieć.Wykorzystuje parę różnicową, więc jest dość odporny na szum.Microchip tworzy MCP2515, który będzie łączyć się z CAN poprzez SPI.

+1 Jest powód, dla którego większość elektroniki samochodowej używa CAN do komunikacji między modułami, zamiast czegoś takiego jak RS-232 lub RS-485.To po prostu lepszy system i znacznie bardziej niezawodny.Ze względów historycznych istnieją inne systemy używane do OBD, takie jak ISO-9141 („K-line”) i J1939, ale aby moduły mogły ze sobą rozmawiać, CAN jest obecnie w zasadzie jedyną grą w mieście.
Chociaż J1939 pierwotnie nie wspominał o CAN, prawie na pewno oznacza to obecnie CAN.Być może szukałeś J1850. Ale tak, CAN to silny protokół.Pomysłowi automatyki domowej należy przypisać udział automatyki przemysłowej wykorzystującej CAN, na przykład CANOpen.Jeśli to im wystarczy ...
CAN jest rzeczywiście imponujący.Ale to wymaga mikrokontrolera na końcu czujnika, a przynajmniej tak zakładam.Czy na rynku są jakieś opłacalne komponenty, które mogą przyjąć sygnał analogowy i przekształcić go w sygnał CAN przez przewód?Chodzi o to, że staram się unikać dodatkowej złożoności, kosztów i kodu.Ale jeśli na rynku istnieje prosty, niedrogi konwerter CAN, który jest dość łatwy w obsłudze, może to być najlepszy sposób.
@foreverska Ach, mój błąd - minęło kilka lat, odkąd nad tym pracowałem, a liczby pomieszały mi się w głowie.:)
@risingtiger Istnieją różne definicje taniego.AnalogX (Autosport Labs) kosztuje najwyraźniej 100 dolarów.Za 150-200 $ prawdopodobnie możesz zakupić łącznik magistrali CANOpen + moduł analogowy Beckhoff lub WAGO z Ebay.
„CAN ma zaawansowane funkcje sprawdzania błędów, których starsze systemy mogą nie mieć”.Delikatnie mówiąc.Narzut jest ogromny - wysłanie 8 bitów danych zajmuje minimum 52 bity - i to przed jakimkolwiek upychaniem bitów.W tym przypadku nie stanowi to problemu, biorąc pod uwagę niską szybkość transmisji danych.Rezultatem jest jednak bardzo wysoka niezawodność na długich dystansach.I możesz kupić uP zarówno z konwerterami CANBUS, jak i A / D za bardzo tanie pieniądze - Digikey sprzedaje DSPIC33EP32GP502-I / SO za mniej niż 2 dolary za sztukę 1. Nie wspominasz o innych wymaganiach, więc polecamw jakimś miejscu, takim jak Digikey i szukam informacji.
cstanto
2020-01-13 21:55:16 UTC
view on stackexchange narkive permalink

Pętla 4-20 mA będzie wymagała skomplikowanej elektroniki sterującej i wyższego napięcia zasilania (wcześniej używane wzmacniacze napędowe miały napięcie 18 V).Chociaż nadal jest powszechnie stosowany w systemach przemysłowych do dziś i ma zalety, jest to naprawdę bardziej starszy system, jeśli chodzi o większość zastosowań, i głównie używany do modernizacji czujników w starszych systemach daq, które są starsze niż powszechne cyfrowekomunikaty dostępne dzisiaj.

Najprostszym rozwiązaniem byłoby dodanie sterownika RS-422 lub RS-485 do obwodu.Normy te są bardzo powszechne w branży czujników przemysłowych.Większość układów scalonych ma również sugerowany obwód w arkuszu danych, więc możesz je wdrożyć bez większego bólu.

Urządzenia 4-20mA * nie * są urządzeniami starszymi - są chlebem powszednim w świecie przemysłowym, a półki są pełne zupełnie nowych urządzeń wszelkiego rodzaju, które wykorzystują wyjście analogowe 4-20mA.
@J ..., cstanto powiedział, że starszy * system *, a nie starsze urządzenia.Oczywiście istnieją nowoczesne urządzenia zaprojektowane do współpracy ze starszymi systemami i odwrotnie.Ale gdyby ktoś miał dzisiaj zaprojektować system od podstaw, wątpię, czy protokół komunikacyjny byłby najlepszym wyborem.
@NateS.Mylisz się.To bardzo dobry wybór, nawet dzisiaj.
@J Tak, rozumiem, że nowe urządzenia są nadal projektowane i sprzedawane z pętlami 4-20 mA, spędziłem 5 lat pracując dla firmy, która właśnie to zrobiła, ale duża część tej popularności wynika z tego, że są one montowane w systemach, które nie mająbardziej nowoczesne funkcje komunikacji cyfrowej.Zawsze zalecamy warianty CAN / RS232 / RS485 naszych przyrządów i czujników powyżej wariantów 4-20 mA, chyba że klient był przeciw nim i wiedział, jak pozyskiwać dane z 4-20, ponieważ umożliwiło to bardziej wyrafinowane możliwości sterowania i diagnostyki.cd ...
... Wraz z „przemysłem 4.0” i rosnącym naciskiem na inteligentne czujniki, pętle 4–20 mA zostaną z czasem wyparte z rynku we wszystkich zastosowaniach oprócz niszowych.
@cstanto Fair, i nie zaprzeczam użyteczności komunikacji cyfrowej dla wielu urządzeń, ale jest też wiele prostych komponentów w maszynach, które naprawdę nie potrzebują więcej niż zwykła pętla analogowa, a korzyści płynące z tego, że nie są nadmiernie skomplikowanenie można też przeoczyć.To jeszcze jedna rzecz, która może zawieść i na pewno widzę (i projektuję) zupełnie nowy sprzęt ze sporą ilością analogowych I / O w miksie I / O.Z mojego doświadczenia wynika, że producenci chętnie polecają najnowszą rzecz, aby być na bieżąco z tym, co tam jest - nie oznacza to, że zawsze jest najlepiej dopasowana.
@J Bez wątpienia istnieje element sprzedaży im najnowszych rzeczy ze względu na to, a niektóre prostsze aplikacje naprawdę nie wymagają dużo więcej niż wyjścia analogowego.Ale z naszego doświadczenia wynika, że konfigurowanie ludzi z wyjściami takimi jak Modbus przez RS485 zamiast analogowymi prowadziło do znacznie mniej czasu spędzonego na zapewnianiu wsparcia technicznego klientom, ponieważ nie rozumieli, jak prawidłowo przekształcić swoje 4-20 mA w coś czytelnego dla człowieka lub jak skalibrowaćich czujnik z potencjometrami itp.
Komunikacja cyfrowa @J umożliwia wykonanie wielu czynności diagnostycznych, kalibracyjnych i konserwacyjnych bez wyjmowania czujnika / instrumentu z aplikacji i otwierania go, co może być bardzo korzystne dla użytkowników końcowych.Jednak często stwierdzaliśmy, że nie zawsze było to brane pod uwagę, dopóki im tego nie wyjaśniliśmy.
@cstanto Wygląda na to, że mówisz o neofitach i małych majsterkowiczach, którzy tak naprawdę nie wiedzą, co robią.Osoby budujące poważne maszyny warte wiele milionów dolarów nie wymagają takiego trzymania się za ręce podczas projektowania i wdrażania systemu.Jeśli czujnik się zepsuje lub wymaga kalibracji, musisz go usunąć - szczerze mówiąc nie widzę, jak komunikacja cyfrowa to zmienia.Używam zarówno urządzeń cyfrowych, jak i analogowych - wielu z nich, wszystkich smaków, protokołów i typów - i każde z nich ma swoje zalety i wady.Nadal uważam, że obaj zajmują odpowiednie miejsce w nowoczesnej automatyzacji.
@J Nie, zdecydowanie mówię o ludziach pracujących dla dużych firm.Nie mieliśmy do czynienia z majsterkowiczami i hobbystami.Zdziwiłbyś się, jak wielu ludzi budujących maszyny o wartości wielu milionów dolarów nie ma pojęcia, co robią.Widziałem inżynierów mechaników, menedżerów itp., Którzy nie mieli żadnego doświadczenia w elektronice, wrzuconej do czujników zaopatrzenia i systemów daq.
@J W przypadku czujnika, który wymaga uwagi, może się zdarzyć, że nie zostanie uszkodzony.Możliwość obejrzenia go bez rozbierania całego systemu, aby się do niego dostać, jest bezcenna.Nie musisz też koniecznie wyjmować czujników, aby je skalibrować, jeśli system jest odpowiednio zaprojektowany.
@cstanto To z pewnością prawda dla * niektórych * czujników, ale absolutnie nie jest prawdą dla * wszystkich * czujników.W każdym razie jest zrozumiałe, że ludzie, którzy kłopoczą się Twoim wsparciem technicznym, to ludzie, którzy nie wiedzą, co robią.Nie będzie to reprezentatywny przekrój Twoich klientów.W każdym razie analogowe wejścia / wyjścia są wszechobecne, aktualne i bardzo żywe.Jak wszystko, oczywiście nie jest to właściwe rozwiązanie dla wszystkiego, ale jak wszystko, nadal ma wiele miejsc, w których pozostaje najlepszym wyborem.
jonathanjo
2020-01-15 20:04:22 UTC
view on stackexchange narkive permalink

Podzielam Twoją niechęć do umieszczania całego procesora na czujnik ...

RS-485 do ekonomicznej komunikacji czujnika / wyjścia

Mogę polecić co następuje, w jaki sposób teraz wykonuję tego rodzaju czujniki / urządzenia wyjściowe:

  • Lokalny bardzo mały procesor podobny do Arduino na pozycję czujnika
  • Sterownik RS-485
  • Lokalny bardzo mały zasilacz impulsowy
  • Zasilanie centralne
  • Podłącz za pomocą kabla CAT-5 lub pary zasilania + danych

Oznacza to, że możesz zachować bardzo małą elektronikę dla każdego czujnika, co upraszcza wszystko (mniej szumów, mniej błędów). Oprogramowanie do komunikacji z czujnikiem jest dedykowane - bez przetwarzania wieloprocesowego lub przeplatania funkcji, ma cały procesor. Jeśli jest tylko jeden czujnik, umieszczam adapter RS-485 w komputerze odbiorczym; częściej mam urządzenie Atmega z RS-485 i Ethernetem i konwertuję do iz pakietów UDP. Wtedy serwer - lub serwery, które tak łatwo można uczynić nadmiarowymi - mogą wykonywać pracę w dogodnym dla siebie miejscu.

RS-485 jest tani, prosty i łatwy do debugowania, jeśli zastosujesz się do kilku prostych zasad. Działa na krótkich lub długich dystansach. Wybierasz prędkość i konfigurujesz prosty protokół (łatwy dla inżynierów oprogramowania), który będzie działał wiecznie. Często uruchamiam go przy 9600 lub nawet wolniej. Jeśli masz odpowiednie diody LED, możesz zrozumieć uszkodzenia bez użycia narzędzi. To wystarczająco proste. Dostałem zajęcia z „obliczeń fizycznych” w szkole artystycznej w Nowym Jorku, aby w ciągu jednego popołudnia uruchomić sieć, opartą na formacie bardzo podobnym do syslog (RFC 3164) oraz CRC-32.

DNie używaj radia. Trzymałem się z daleka od wszystkiego, co oparte na radiu, z wyjątkiem sytuacji, w których absolutnie niemożliwe jest prowadzenie przewodów. Po prostu nie wiadomo, kiedy pojawi się jakaś maszyna zakłócająca: zbyt często jest to coś w rodzaju krótkofalówki prasowej lub policyjnej podczas wielkiego otwarcia mojego wydarzenia.

Dnie używam ethernet Kiedyś używałem Ethernetu z POE, ale zmieniłem się po tym, jak musiałem pracować w wielu trudnych warunkach (na zewnątrz, pod wodą, w pobliżu dużych maszyn przemysłowych). Nie ma przełącznika do obsługi, nie ma napięć POE. I bez wyścigu zbrojeń 10BaseT, 100BaseT, 1000BaseT.

DNie używaj autobusów typu board Kiedyś miałem system (zbudowany przez innych), który był SPI na 2 metry: prawie działał, ale kiedy musieliśmy przenieść go na 3 metry ... nigdy nie działał. W końcu zastąpiłem go RS-485, jak opisano tutaj.

CAN jest świetny, ale rozwiązuje trudny problem, dlatego jest bardzo złożony. Interfejs szeregowy i RS-485 jest absolutnie wszechobecny, co pozwoli Ci zaoszczędzić czas w kółko.

Proste zasady

  • Dwuprzewodowy półdupleks (nigdy czteroprzewodowy)
  • Albo a) jeden nadrzędny (komputer) wiele podrzędnych (czujniki) lub b) jeden głośnik i prawdopodobnie wielu słuchaczy
  • Jeśli jest więcej niż kilkunastu niewolników, pomyśl o a) kolizjach i b) ładowaniu autobusów
  • Zasilanie z centrali
  • Brak lokalnego połączenia po stronie czujnika
    • Jeśli potrzebujesz, użyj izolatorów optycznych lub przekaźników
  • Niezależnie od protokołu, musi mieć sumę kontrolną
  • Używaj go jak UDP, a nie TCP
  • Uruchom to tak wolno, jak tylko możesz
    • Przy 9600 prawdopodobnie nigdy nie będziesz mieć żadnych problemów
  • Ponad 20 metrów, zwróć uwagę na zakończenie
  • Jeśli jesteś na zewnątrz, pod wodą lub w pobliżu dużej mocy, nadal dobrze, ale zrób więcej zadań domowych
  • Jeśli potrzebujesz szybko (powiedzmy 1 Mbit / s), nadal dobrze, ale zrób więcej zadań domowych
  • Jeśli potrzebujesz odosobnienia, nadal dobrze, ale odrób więcej zadań domowych
  • Jeśli potrzebujesz setek węzłów, nadal dobrze, ale zrób więcej pracy domowej

Koszty

Koszty są niskie, poniżej 10,00 USD / szt. - większość zależy od obudowy i złączy. Poniżej znajdują się ceny z 10 rabatami od Digikey lub Ebay.

Do jednorazowej lub eksperymentalnej tablicy używam tablic z Chin:

  • Konwertery TTL na RS-485 z serwisu Ebay (0,90 £)
  • Arduino „Pro Micro” lub podobny (z przyciskiem resetowania!) (1,80 £)

W przypadku płyt dedykowanych wolę pojedyncze żetony:

  • 75176-pinowy układ scalony 0,70 £ + gniazdo w przypadku miejsca
  • ATTiny22 lub podobny 0,50-1,50 GBP

75176-pinout jest standardem dla sterowników RS-485, co oznacza, że ​​możesz użyć egzotycznych sterowników, jeśli potrzebujesz (np. z wyższą ochroną ESD).

W obu przypadkach dla zasilania podaję 12VDC lub 24VDC wraz ze skrętką dla sygnału. Ponad CAT-5 działa dobrze lub kabel zasilający + danych. Na każdym urządzeniu jeden zasilacz Recom R-78E5.0-0,5 (1,99 GBP / szt.). Te urządzenia są świetne. Umieszczenie małego zasilacza obok każdej jednostki sprawiło, że wszystkie problemy z zasilaniem i hałasem zniknęły.

Przyszłościowe

Kolejną zaletą tego podejścia jest to, że umieszcza wszystkie ważne kwestie dotyczące kompatybilności w protokole na linii RS-485. Jeśli w przyszłości nie możesz uzyskać tego samego czujnika lub procesora, kup inny i utwórz ponownie. Jeśli używasz układów sterownika 75176-pinout, zawsze będziesz mógł uzyskać zamienniki.

A jeśli musisz połączyć się z czymś, co chcesz odizolować, łatwo jest uzyskać izolowany sterownik, taki jak ten z Digilent (choć znacznie droższy, około 17,00 GBP). Ale bez żadnego przeprojektowywania podstawowego systemu ani przekodowywania.

Referencje

Aby właściwie przeczytać o RS-485, zacznij od nich i postępuj zgodnie z odnośnikami.

  • Texas Instruments Przewodnik projektowy RS-485 PDF
  • Texas Instruments AN 1057 Dziesięć sposobów na kuloodporne interfejsy RS-485 PDF
  • Bob Perrin, „The Art and Science of RS-485”, Circuit Cellar, lipiec 1999. PDF

Szczegóły

  • „Dwużyłowy półdupleks” w rzeczywistości oznacza trzy przewody: skrętkę dla sygnału i masę, która często jest uziemieniem prądu stałego, jeśli systemy są zasilane z tej samej mocy.
  • Zobaczysz ogromne spór o to, czy potrzebujesz tarczy, ale Perrin mówi, że nie, chyba że masz egzotyczne okoliczności
  • W trybie półdupleksu wyjście sterownik jest włączany podczas transmisji.
    • Na komputerze PC zazwyczaj włączasz sterownik z RTS wyjścia RS-232. Jądro Linuksa ma wywołanie ioctl (8) umożliwiające włączenie tego na liniach szeregowych TIOCSRS485 doc
    • W mikrokontrolerze używasz linii IO dla Driver-Enable DE . Zawsze możesz słuchać (podłączyć Receive-Enable / RE do ziemi) lub częściej dołączyć do DE i / RE i jechać z tego samego pinu we / wy . Można sobie wyobrazić, że użyjesz pinu IO i napiszesz / RE , ale nigdy go nie widziałem.
  • Istnieje wiele różnych układów sterowników, ale wybierz jeden z pakietu 75176, ponieważ jest najbardziej powszechny
  • Świetnym pomysłem jest użycie 8-pinowych pakietów DIL i gniazda dla sterownika, aby jak ktoś źle go podłączył, można wymienić przepalony sterownik; możesz także użyć bardziej niezawodnych chipów sterownika, jeśli chcesz, lub wersji o niskim EMI z niższymi prędkościami obrotu.
Łał!Bardzo dobrze sformułowana odpowiedź.Posiadanie mikrokontrolera przy czujniku nadal jest dla mnie w tej sytuacji trudniejsze.Choć ledwo, kiedy zastanawiam się, jak tania jest naprawdę nawet pełna płyta Arduino.Twoja odpowiedź wydaje się więc ważna.
Gwyn
2020-01-14 03:52:15 UTC
view on stackexchange narkive permalink

Jeśli chcesz zachować prostotę i nie chcesz konwertować na format cyfrowy, obecne wykrywanie jest tanim i praktycznym sposobem.

To nie musi być system 4-20 mA. Możesz dowolnie wybierać prądy w zależności od odległości, dostępnego zasilania i poziomu szumów elektrycznych w Twoim otoczeniu. Kolejną zaletą jest to, że potrzebujesz tylko 2-przewodowego kabla, więc wszystko (nawet kabel sieciowy) wystarczy.

Oto przykład, którego użyłem z kablem o długości około 40m. LM35 generuje napięcie proporcjonalne do temperatury, używane do napędzania prądu przez R2. R1 służy do podwyższenia dolnej granicy mierzalnych temperatur. Wybierz R_sense, aby dopasować napięcie zasilania i wejścia mikrokontrolera.

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

Po prostu upewnij się, że minimalne napięcie na zasilaniu LM35 jest przestrzegane w Twoim przypadku użycia. Więcej informacji na temat wyboru wartości rezystorów znajduje się w arkuszu danych dla LM35.

Czy znasz jakieś dobre zasoby do nauki metod pętli prądowej?
@risingtiger.W tej chwili nie mam pod ręką kopii, ale musi być coś w „Sztuce elektroniki” Horowitza i Hilla.To moja książka do wszystkiego, co elektroniczne, odkąd jako student wybrałem egzemplarz z drugiej ręki ....
Graham
2020-01-14 16:50:46 UTC
view on stackexchange narkive permalink

Jeśli masz odpowiednią kartę micro na każdym końcu, a karta micro radzi sobie z wymaganym przetwarzaniem, Ethernet jest bardzo dobrym rozwiązaniem do komunikacji na duże odległości. Kable Ethernet Cat5 są dostępne w prawie dowolnej długości, a ich szerokie zastosowanie we wszystkich rodzajach aplikacji oznacza, że ​​możesz uzyskać również wzmocnione wersje. Wskazówka: kable używane do łączenia pulpitów dźwiękowych i oświetleniowych w zastosowaniach scenicznych są rzeczywiście bardzo dobre - jeśli twój komputer nie może połączyć się z Internetem przez godzinę, to nic wielkiego, ale jeśli stracisz dźwięk i oświetlenie dla AC / DC grając na stadionie, masz na rękach ogromny rachunek!

Jest to najłatwiejsze, jeśli mikroukłady na każdym końcu działają na „normalnym” systemie operacyjnym. Windows lub Linux będzie działał, komercyjne systemy operacyjne, takie jak Wind River, również będą dobrze działać i jestem pewien, że są inne. Windows nie byłby moim pierwszym wyborem, ale Linux jest obecnie całkiem dobry w przetwarzaniu w czasie rzeczywistym. Mając system operacyjny, możesz po prostu użyć portów IP do wysyłania danych.

Możesz pomyśleć, że brzmi to niestabilnie lub zbyt dobrze, aby mogło być prawdziwe - ale właśnie tak SpaceX łączy elektronikę w swoich rakietach.

Jedyne przewody między sceną a każdym silnikiem to kabel Ethernet i kabel zasilający.

Jeśli uda im się wynieść rakietę w kosmos, podejrzewam, że będzie to działać również w przypadku Twojej aplikacji. :)

Użyłem podobnych rozwiązań, które nakreśliłeś w poprzednich projektach.Ale te projekty miały znacznie większy budżet na instalację.Ten konkretny projekt wymaga bardzo małych kosztów i minimalnej konserwacji.Ale tak, Ethernet jest niesamowity w swoim szerokim zastosowaniu.
AaronD
2020-01-15 03:26:35 UTC
view on stackexchange narkive permalink

Najbardziej podoba mi się odpowiedź TimWescotta, ale inną opcją jest przyjrzenie się profesjonalnemu mikrofonowi do dźwięku na żywo i pracy w studio. Często biegną setki metrów przez hałaśliwe oświetlenie i zasilanie prądem zmiennym, zanim zostaną wzmocnione do użytecznego poziomu przez resztę elektroniki:

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

Kapsuła mikrofonowa sama w sobie jest elektrycznie unoszona, nie jest połączona z uziemioną metalową obudową, a dwa przewody sygnałowe są od siebie odejmowane, a różnica jest przekazywana jako zamierzony sygnał.

Więc jakikolwiek szum przedostaje się przez uziemiony ekran kabla i do obu przewodów, jest kasowany w odbiorniku. Skręcenie ich umieszcza je tak blisko tej samej pozycji, jak to tylko możliwe, tak aby ta sama ilość szumu docierała do obu, a utrzymanie ich impedancji na równym poziomie pozwala im zaakceptować go w tym samym stopniu.


Jeśli potrzebujesz również zasilania po stronie mikrofonu i nie chcesz mieszać baterii, możesz użyć funkcji „Phantom Power”:

schematic

zasymuluj ten obwód

R1,2,5,6 pozwalają, aby sygnał audio AC nadal istniał na tych samych przewodach, a wysokie napięcie źródła ma i tak uzyskać użyteczną ilość energii.

C1,2,3,4 blokują DC z komponentów audio.

R3,4 przywraca średni poziom DC, który został zablokowany przez limity.

D1,2,3,4 zaciskają maksymalne i minimalne napięcie w celu ochrony przed skokami spowodowanymi włączaniem lub wyłączaniem zasilania, podłączaniem z nim kabla itp.

R7 utrzymuje aktywny sterownik stabilnie w długim (pojemnościowym) kablu.

R8 dopasowuje R7, aby utrzymać równe impedancje i pokazuje, że sygnał nie musi pojawiać się na obu przewodach. Potrzebna jest tylko różnica pewnego rodzaju i równa impedancja.

jcaron
2020-01-15 17:46:43 UTC
view on stackexchange narkive permalink

Nie wiem, jakie są twoje dokładne ograniczenia, ale zamiast doprowadzić sygnał do tablicy, podałem płytkę do sygnału, a następnie przeniosłem wynikowe dane przez Ethernet (lub nawet Wi-Fi, jeśliśrodowisko jest do tego odpowiednie).

Tania płytka ESP8266 lub ESP32 obok czujnika prawdopodobnie by się nadała.

Jeśli masz problem z doprowadzeniem zasilania do płyty, możesz użyć Power over Ethernet (PoE), aby je zasilić, z tanimi wtryskiwaczami i rozdzielaczami na obu końcach.

Istnieją nawet płyty z wbudowanym PoE, takie jak Olimex ESP32-POE-ISO lub wESP32 dostępne w Crowd Supply.

richard1941
2020-01-17 10:24:13 UTC
view on stackexchange narkive permalink

Zbudowałbym i oscylator, którego częstotliwość zależy od termistora.Jego wyjście może być sprzężone z transformatorem, aby blokować szum w trybie wspólnym.Można by wykonać demodulator, którego moc wyjściowa zależy tylko od częstotliwości, a nie od amplitudy.Reszta to tylko nieprzyjemny problem z kalibracją.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...