Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 lut 2026, o 10:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 16 lis 2015, o 13:15 
Offline
Nowy

Dołączył(a): 16 lis 2015
Posty: 3
Pomógł: 0

To mój pierwszy post, więc witam wszystkich bardzo serdecznie.

Zastanawiam się w jaki sposób będzie najlepiej rozwiązać pewien problem. Cały system składa się z centrali oraz podłączonych do niej sensorów. Sercem centrali oraz każdego z sensorów są oczywiście mikrokontrolery. Wymogiem projektu było kablowe połączenie sensorów z centralą (okablowanie 6-żyłową skrętką zakończoną złączami RJ12), dlatego ze względu na znaczne odległości (do 100m) zdecydowałem się na komunikację RS232. Komunikacja centrali z sensorami odbywa się zawsze w trybie master -> slave (centrala wysyła zapytanie, sensor odpowiada). Problem w tym, że sensorów jest dużo (docelowo kilkadziesiąt), a centrala ma tylko jeden wolny interfejs USART.

Nie mam za bardzo pomysłu jak to jakoś sensownie rozwiązać. Jedyne co mi przychodzi do głowy to multipleksery dla RxD i TxD połączone z rejestrem przesuwnym do wybierania odpowiedniego kanału. Tylko, że to będzie cała masa multiplekserów i nie podoba mi się to rozwiązanie.

Dużo bardziej podoba mi się mechanizm z SPI czyli centrala jest połączona z sensorem czterema przewodami. Dwa służą do wymiany danych, trzeci do sygnalizowania z którym urządzeniem centrala rozmawia, a czwarty to zegar. Tylko, że SPI nie nadaje się raczej na duże odległości. Pamiętam, że przy kilkudziesięciu centymetrach miałem już problem z komunikacją.

W związku z tym wymyśliłem, że komunikacja może odbywać się za pomocą RS232, a dodatkowo doprowadzę do każdego urządzenia sygnał sterujący (stan wysoki - nadawanie, stan niski - ustawi piny RxD i TxD w stan wysokiej impedancji). Tylko jakoś tak nie jestem przekonany do tego rozwiązania. Samo doprowadzenie takiego syngału może być problematyczne. Boję się również o zakłócenia. A Wy co sądzicie? Może macie jakieś lepsze pomysły?

Przy okazji chciałbym zasięgnąć opinii na jeszcze jeden temat. Przez skrętkę muszę również puścić zasilanie. Chcę puścić 12VAC, ponieważ wydaje mi się to dobrym kompromisem. Z jednej strony łatwiej to przesłać niż 5VDC lub 230VAC, a z drugiej łatwo to po stronie sensora wyprostować i ustablilizować (chodzi o zajętość miejsca, koszt i bezpieczeństwo). Wyczytałem, że 230VAC powoduje zbyt duże zakłócenia w transmisji w sytuacji gdy wszystko (zasilanie i transmisja) idzie jednym przewodem i ciekaw jestem czy ktoś miał z tym jakieś doświadczenia i czy 12VAC nie będzie powodować zakłóceń?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 13:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

veeveeoor napisał(a):
Jedyne co mi przychodzi do głowy to multipleksery dla RxD i TxD

eeeeh panie kolego - a nie przyszło ci do głowy RS485 ? lub podobne ? zainteresuj się tym


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 13:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Napisałeś, że masz komunikację na zasadzie zapytanie - odpowiedź. Co za problem, by każdy slave miał swój identyfikator (numer uint8_t daje 254 kombinacje plus np. 0xFF jako brodcast). Zapytanie typu $numer_slave#polecenie i nie masz problemu. Do tego przejście na RS485 i zakłócenia czy odległość już nie są ważne.

Sam mam tak, że czujniki mają identyfikatory, do tego identyfikator grupy i brodcast. Mam polecenia typu $numer_slave#komenda , $#numer_grupy#komenda lub $0xFF#polecenie. Dlaczego numer grupy? Ponieważ wysyłam np. dla grupy 3 polecenie podaj temperaturę. Każdy slave z wybranej grupy odeśle odpowiedź, a żeby uniknąć kolizji odpowiedź nastąpi po czasie 50ms*numer_slave od zapytania. Dlaczego brodcast? Bo mogę wysłać polecenie na przykład reset, aktualizacja czasu.



Ostatnio edytowano 16 lis 2015, o 13:40 przez icer_cmg, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 13:40 
Offline
Nowy

Dołączył(a): 16 lis 2015
Posty: 3
Pomógł: 0

mirekk36 napisał(a):
eeeh panie kolego - a nie przyszło ci do głowy RS485 ? lub podobne ? zainteresuj się tym

Panie Mirku, po co od razu tak wzdychać :) Nie jestem niedouczonym zawodowcem, tylko ambitnym amatorem. To będzie instalacja do moich prywatnych celów. Stąd u mnie tak mała znajomość przemysłowych rozwiązań.

Rzuciłem okiem na szybko na RS485 i na pewno zainteresuję się tym tematem. Z tego co widzę to ten standard ma ograniczenie do 32 urządzeń. To też kilkadziesiąt, przy czym moje kilkadziesiąt to tak bliżej setki, ale mimo to może znajdzie zastosowanie w moim systemie. Czekam na inne pomysły.

Cytuj:
Napisałeś, że masz komunikację na zasadzie zapytanie - odpowiedź. Co za problem, by każdy slave miał swój identyfikator (numer uint8_t daje 254 kombinacje plus np. 0xFF jako brodcast). Zapytanie typu $numer_slave#polecenie i nie masz problemu. Do tego przejście na RS485 i zakłócenia czy odległość już nie są ważne.

A czy nie będzie problemem to, że urządzenia które nie nadają mają linie RxD i TxD nie ustawione w stan wysokiej impedancji?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 13:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

veeveeoor napisał(a):
Z tego co widzę to ten standard ma ograniczenie do 32 urządzeń.

Dzisiaj nowe kostki mają większą impedancję wejściową i może ich pracować więcej na magistrali, Maxim robi takie, że może ich być na magistrali do 128.

veeveeoor napisał(a):
A czy nie będzie problemem to, że urządzenia które nie nadają mają linie RxD i TxD nie ustawione w stan wysokiej impedancji?

Mówiłem o RS485 i nie widzę problemu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 14:02 
Offline
Nowy

Dołączył(a): 16 lis 2015
Posty: 3
Pomógł: 0

Cytuj:
Dzisiaj nowe kostki mają większą impedancję wejściową i może ich pracować więcej na magistrali, Maxim robi takie, że może ich być na magistrali do 128.

No to super. Czyli wychodzi na to, że mam gotowe rozwiązanie.

icer_cmg napisał(a):
Mówiłem o RS485 i nie widzę problemu.

Masz rację. Ogólnie nie spodziewałem się tak szybkiej odpowiedzi z gotowym rozwiązaniem i mój umysł jeszcze nie zaakceptował tego faktu, więc jest w fazie negowania, że to może działać.

Dzięki za pomoc chłopaki. W razie czego, będę tu jeszcze zaglądał, a co najmniej dam znać jak wyszło i czy działa. Ale myślę, że to kwestia kilku tygodni pewnie, bo dopiero mam prototypy urządzeń.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 14:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

http://ep.com.pl/artykuly/10078-SPPoB_p ... u_cz_.html

Warto przeczytać



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 14:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

veeveeoor napisał(a):
Panie Mirku, po co od razu tak wzdychać Nie jestem niedouczonym zawodowcem, tylko ambitnym amatorem. To będzie instalacja do moich prywatnych celów. Stąd u mnie tak mała znajomość przemysłowych rozwiązań.

Spokojnie - nie wzdycham ;) .... po prostu podpowiedziałem widząc taką mnogość pomysłów ... podczas gdy kolejnym naturalnym krokiem po RS232 jest właśnie RS485.

Teraz będziesz miał nad czym myśleć po prostu ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 15:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Co do liczby nadajników to typowe dostępne w normalnej cenie układy mają ograniczenie do 32 odbiorników. Ograniczenie to wyniki z ograniczeń fizycznych działania szyny RS485 a nie logicznych. Ale z tym można bardzo łatwo sobie poradzić, robiąc podział szyny na części i dzięki temu nadając niezależnie do różnych odseparowanych segmentów - przecież i tak sterujesz w układzie nadajnika/odbiornika RS485 czy ma nadawać na szynę czy odbierać :)
Przy projektowaniu połączeń między układami pamiętaj też, że szyna RS485 nie może być zbudowana w topografii gwiazdy.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 17:33 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 18 sie 2014
Posty: 8
Lokalizacja: Bytom
Pomógł: 0

Ja tylko powiem tyle, że są takie fajne scalaczki, jak SN65HVD1780. Nie-do-ubicia napięciami 40V podawanymi na linie A/B i nie robią problemów przy dużej ilości urządzeń.
Niestety, cena nie jest już taka fajna, patrząc na TME :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 19:25 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 60
Pomógł: 1

Czy ten RS to jedyny interface dostępny w Twoich urządzeniach?
Piszesz o SPI (jak się domyślam AVR) to może zestaw MCP2515 i MCP2551 czyli CAN:
* około 6zł za "interface"
* do 112 urządzeń
* do 1Mb
* możesz mieć multimaster
Jeśli chodzi o zasilanie przez skrętkę, to zależy co chcesz zasilać, jaki prąd pobierać i na jakie odległości.
Ja w swoim "e-domu" wykorzystuję kabel UTP, 2 żyły na +, 2 na - zasilania stałym napięciem 24V, ale tylko do obwodów interfacu, zasilania procesorów i modułów "nie mocy" ;), moduły wykonawcze czyli wszystko co pożera więcej energii ma własne zasilacze



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2015, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

@Sebus
Układ fajny, tylko ta cena ...
Choć, nie patrząc się na polskiego dystrybutora i na ceny detaliczne, tylko na producenta i duże ilości, cena to tylko 1,85$ (przy 1KU) :D
W tym układzie oprócz płacenia za zabezpieczenia to także płaci się za to że jest on od 3,3V do 5V. A to przy driverach RS485 nie jest jeszcze standardem :cry:

Przy robienia instalacja opasającej dom ważne jest danie układów które mają wbudowane zabezpieczenia ESD. A za takie jak w tym układzie zabezpieczenie niskonapieciowe nie warto dopłacać takiej ceny.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2015, o 15:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

MAX487 (5V) lub MAX1487 (3V3) ma do 128 urządzeń w sieci rs485



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2015, o 19:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Cytuj:
MAX487 (5V) lub MAX1487 (3V3) ma do 128 urządzeń w sieci rs485

Oba MAX1487 i MAX487 są na 5V :(
https://www.maximintegrated.com/en/products/interface/transceivers/MAX1487.html/tb_tab1

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 9 minutach ]

Układy MAXIMa pracujące na niższe napięcia niż 5V muszą pochodzić z najnowszej rodziny określanej przez producenta jako "Next Generation Device". Ich oznaczenia numerowe są 4 cyfrowe zaczynające się od cyfry 3.
I niestety mają ceny na odpowiednio wyższym poziomie :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO