Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Optoizolowana magistrala - jaki protokół?

30 Lis 2010 01:52 2638 16
  • Poziom 18  
    Realizuję projekt, w którym muszę połączyć 1 mastera (najprawdopodobniej atmega 128) z 4-8 slave'ami (chyba atmega 8, ew attiny 2313). Magistrala musi być izolowana galwanicznie. Do wyboru mam SPI, I2C oraz UART via RS485 (na układzie max485). Odległość nie będzie duża, wszystko raczej zamknięte w jednej sporej obudowie (powiedzmy max 40cm przewodu). Prędkość przesyłu danych nie musi być ogromna. 1kbps spokojnie starczy.

    Którą wybrać i jak ją odizolować galwanicznie? Wiem, że są np transceivery rs485 z wbudowaną izolacją optyczną, ale cena powala, a dostępność w kraju jeszcze bardziej.

    Wszystkie propozycje oraz schematy mile widziane.
  • Poziom 28  
    Czy nie nadadzą się, po może małej modyfikacji, układy optoizolacji portów RS232?
  • Poziom 18  
    przestań tak kombinować użyj po pierwsze zwykłej pętli prądowej do optoizolacji. przy tych prędkościach nie komplikuj sobie życia. A co do protokołu to przy tym co piszesz po prostu skleć sobie sam protokół. Więcej czasu zajmie ci poznawanie co ktoś napisał niż narysowanie swoich ramek danych i ich zaimplementowanie.
  • Poziom 18  
    Pętla prądowa to za dużo zachodu. Rs-232 generalnie nie jest przeznaczone do użytku magistralnego, do tego jest wersja rs485. Chodziło mi bardziej o porównanie: który z wymienionych protokołów/magistral (spi/i2c/rs485) będzie najłatwiejszy do wykonania w warstwie sprzętowej z wykorzystaniem transoptorów.

    Chcę zastosować układy ILCT6 Vishay'a (datasheet Link), ponieważ posiadam ich kilka sztuk na stanie (kolega podzielił się samplami). Mają czasy narostu i opadu 3us, więc transmisję rzędu 9600 baud można na nich zrealizować spokojnie.

    Myślę nad czymś takim:
    Optoizolowana magistrala - jaki protokół?

    Co o tym sądzicie? (rezystory obliczałem 'na oko' żeby nie przekroczyć prądu maksymalnego)
  • Poziom 33  
    Zwiększ wartość rezystorów z 150Ω na 300Ω i 200Ω na 1kΩ.
    Taka magistralka będzie pięknie hulać. Do takiej konfiguracja aż się prosi zaimplementować MODBUS'a :D
  • Moderator Mikrokontrolery Projektowanie
  • Poziom 14  
    Fakt ze nie robilem do tej pory transmisji danych z optoizolacja ale innych cyfrowych ukladow na transoptorach troche popelnilem (np. sprzezenia enkoderow )
    wiec mysle iz trzeba wziasc specyfikacje transmisji i porownac z faktyczna szybkoscia transoptora w ukladzie oscyloskopem 2 kanalowym i dobrac rezystory (rezystorami da sie zoptymalizowac uklad ale tylko w pewnym zakresie) . Pozatym jak masz wiecej tych transoptorow to mozesz z nich wyselekcjonowac te szybsze.
    Te rezytory w kolektorach raczej wieksze tak jak ktos tu wczesniej napisal ale podstawa to pomiar oscyloskopem wtedy masz pewnosc.
    Ps.Jakbys mal oscyloskop 1 kanalowy to tez sie da to pomierzyc , trzeba zastosowac maly myk.
  • Poziom 18  
    tmf napisał:
    Pamiętaj tylko, że żeby to była pełna optoizolacja musisz też MAXa zasilić z przetworniczki zapewniającej optoizolację.


    Myślałem bardziej o tym, żeby max'y zasilić z osobnego transformatora (zanabyłem kiedyś kilka takich zalewanych 230V/2x9V 120mA po okazyjnej cenie).

    Generalnie celem zastosowania optoizolacji jest ochrona nie tyle przed niebezpiecznymi napięciami, które mogą się wyindukować na przewodach sygnałowych, a bardziej zabezpieczenie mastera przed jakiś 'random kaboom' (slave'y to stopnie sterujące wysokimi napięciami i prądami, coś może się im przytrafić)
  • Poziom 20  
    Dobrym rozwiązaniem byłby układ ADM2483BRWZ (RS485) + protokół Modbus.
    Aplikacje testujące znajdziesz w sieci (Modbus tester). Napisanie programu dla mikrokontrolera też nie jest niezwykle trudne. Najpierw napisz program dla slave (serwer), przetestuj go, no i potem można by napisać dla Master (klient).
  • Poziom 18  
    ależjasne... może od razu zaproponuj firewire... chłopak potrzebuje przesyłać ze śmieszną prędkoscią śmieszne ilości danych. On potrzebuje rozwiązanie proste w budowie fizycznej i proste w oprogramowaniu.
  • Specjalista - oświetlenie sceniczne
    RS232, 485 różni się tylko napięciami, te nazwy nie definiują ramki danych. Może mam zaciemnienie, ale nie widzę czy transmisja jest w jedną czy dwie strony.
    Jeśli to jest w "obrębie jednej obudowy" to w pętle prądowe nie ma sensu się bawić. Wystarczy każdemu słuchaczowi dać opto na RX, ewentualnie także na TX.
  • Poziom 20  
    No rozumiem że prosty, jak będzie chciał, to może nawet zrobić proste wysyłanie danych "w przewód" bez potwierdzania i kontroli poprawności odebranych danych z powiedzmy przerwą o wartości czasu trwania kilku znaków rozdzielającym ramki. Na początek dobre i to, dodanie CRC to już mały kłopot.
    Później niewielka modyfikacja ramki (adres urządzenia, numer funkcji), no i mamy
    prawie Modbus :)
  • Poziom 27  
    a może moduł radiowy optoizolacja jest pełna i w dodatku w eterze?
  • Poziom 20  
    Nie no, nie ironizujmy :) :). Jednak warto chyba od razu podejść do tego tak że wymiana informacji (przesył) wymagająca odbioru poprawnych danych powinien odbywać się co najmniej z sumą kontrolną. No jak chcemy zrobić niezawodne połączenie, to już musi być potwierdzenie otrzymania danych (np. w formie odpowiedzi slave-a z wysłaniem żądanych danych).
  • Poziom 18  
    Cytat:
    Dobrym rozwiązaniem byłby układ ADM2483BRWZ (RS485) + protokół Modbus.


    Cena niestety mocno odstrasza. 22.90 w tme

    Fakt, nie zaznaczyłem, że komunikacja ma być w obie strony.

    Komunikacja radiowa przez np btm-222 czy cos podobnego wydaje sie kusząca. Pozwalałaby na oddzielenie fizyczne modułów wykonawczych od sterującego (oddzielne urządzenia, mniejsze potencjalne ograniczenia w podpinaniu kolejnych modułów wykonawczych). Muszę sie nad tym zastanowić. Problem jest taki, że każdy moduł potrzebuje zasilania z transformatora minimum 60VA. Generalnie zakupienie np 4 transformatorów po 60VA wychodzi sporo drożej niż zakupienie jednego większego, np. 300VA z wieloma odczepami.

    Suma kontrolna, podwójne wysyłanie wiadomości albo inne sposoby weryfikacji będą zastosowane, ponieważ przypadkowa zmiana jednego bitu instrukcji może dać katastrofalne w skutkach wysterowanie wyjść modułu wykonawczego, więc zostanie to zaimplementowane na 100%.
  • Poziom 20  
    Ale ten moduł kosztuje 45.90 bez VAT (w TME). No tu się uwolnisz od kabla, ale maksymalna odległość będzie znacznie mniejsza. Gdyby prędkość przesyłu mogła pozostać malutka, to zwykłe transoptory wystarczą. Jeśli chodzi o pewność transmisji, to kabel jest bez porównania lepszy. Wada: burza może zniszczyć wszystkie urządzenia podłączone do przewodu komunikacyjnego.
  • Poziom 27  
    kol. Fafjfer wcale nie ironizowałem a sądzę że jest na tyle modułów radiowych o różnych standardach transmisji i cenach że spokojnie można coś wyszukać poza tym sama komunikacja z modułem może być wykonana np. po SPI a nie po zwykłym RS-sie więc i szybkość jest zdecydowanie większa. Bynajmniej nie żartowałem.