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



Teraz jest 3 mar 2025, o 14:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 6 sie 2014, o 12:04 
Offline
Nowy

Dołączył(a): 23 mar 2014
Posty: 8
Pomógł: 0

Witam,
mam problem z wymyśleniem jak za pomocą mikro-kontrolera obsłużyć 3 urządzenia działające na porcie rs232.
Konkretnie mówiąc mam 3 urządzenia, które działają na porcie rs232 i wysyłają w różnym lub w tym samym czasie dane i ja chce otrzymane dane sprawdzać, czy są prawidłowe i jeśli coś się nie zgadza, to np załączyć alarm.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 12:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

A czy masz mozliwość programowania tamtych urządzeń? Jeśli tak to każdemu nadasz jakiś specjalny numer/nazwę i będziesz wysyłał zapytanie do konkretnego urządzenia. Wtedy to urządzenie i tylko to będzie odpowiadać.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 12:45 
Offline
Moderator
Avatar użytkownika

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

WoodPaker napisał(a):
A czy masz mozliwość programowania tamtych urządzeń? Jeśli tak to każdemu nadasz jakiś specjalny numer/nazwę i będziesz wysyłał zapytanie do konkretnego urządzenia. Wtedy to urządzenie i tylko to będzie odpowiadać.


Tylko zastanów się co będzie z liniami Tx panie kochany ;) spróbuj to sobie rozrysować ;)

------------------------ [ Dodano po: 2 minutach ]

juli126 napisał(a):
mam problem z wymyśleniem jak za pomocą mikro-kontrolera obsłużyć 3 urządzenia działające na porcie rs232.


bo do tego używa się normalnie rzecz biorąc RS485 to jest magistrala dla wielu urządzeń a RS232 został pomyślany do połączeń tylko 1:1 dlatego ciężko wymyślić inne ;)

ale jest pewien myk jak to rozwiązać z tym że hmmm taki no ... może nieelegancki ale czasem można skorzystać do jakichś testów lub nietypowych rozwiązań ;)

po prostu każdą linię Tx procka separujesz diodą shottky a po drugiej stronie robisz podciąganie rezystorem do VCC ... dla niewielkich prędkości będzie to działać stabilnie

_________________
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: 6 sie 2014, o 12:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Może przejść na RS485 on jest magistralą....

Albo jeśli możesz spowodować, że w danej chwili tylko jedno, konkretne urządzenie (jedno z trzech) będzie nadawało to możesz zastosować multiplekser i przełączać jego wyjścia z poziomu programu w MCU.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 12:59 
Offline
Nowy

Dołączył(a): 23 mar 2014
Posty: 8
Pomógł: 0

działanie całego systemu ma być następujące są trzy urządzenia odczytujące dane z kart RFID osób wchodzących/wychodzących z firmy, ja za pomocą sterownika mam sprawdzać, czy osoba jest upoważniona na wejście do firmy, czytnik już są i działają na porcie rs232.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 13:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Czyli transmisja jest inicjowana przez urządzenia (czytniki) na skutek zdarzenia jakim jest zbliżenie karty.

Zdecydowanie najlepiej byłoby przejść z RS232 do RS485. Zwłaszcza, że wtedy dysponujesz możliwością stosowania dłuższych linii transmisyjnych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 13:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 175
Lokalizacja: Kraków
Pomógł: 9

A może by tak użyć dwóch sprzętowych UART-ów, w które wyposażone są większe ATMEG-i a trzeci zrobić programowy.
Jest trochę rzeźbienia ale możliwe do realizacji. Skoro programowe UART-y da się zrobić na '51 to tym bardziej
na ATMEGA-ch.

_________________
Rozwój i utrzymywanie Oprogramowania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 13:43 
Offline
Nowy

Dołączył(a): 23 mar 2014
Posty: 8
Pomógł: 0

użycie dwóch UARTów i programowego, to była by za duża dla mnie rzeźba i też w przyszłości jeśli miałby być dodany następny czytnik kart, to rozwój byłby niemożliwy, dlatego muszę zapytać czy wchodzi w grę wymiana czytników z portem rs485.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 13:48 

Pomógł: 0

juli126 napisał(a):
użycie dwóch UARTów i programowego


To użyj j.w Atmega1280, masz 4 uarty, za pomocą bibliotek z zielonej książki bez problemu obsłużysz.
Sam przerobiłem je do pracy na 2 x UART przez eventy, do tego wyświetlanie na 4 miejscowym LED + parsowanie danych, obsługa debounce i działa wszystko pięknie, z 4 też nie powinno być problemu, ot po prostu powielasz dane fragmenty kodu, rozdzielasz by można było różnicować który uart.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tu fragment mkuart.h (mam nadzieje że za fragment mnie Mirek nie przechrzci ;) )
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 14:06 

Pomógł: 0

Nie koniecznie, można zrobić prostą przejściówkę uart=inne medium
bo nie wiem czy wymiana czujników coś da;), chyba że od razu celować w coś typu CAN, LIN, itp.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 15:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

jeśli dane płynące z tych czujuników mogą być pominięte kosztem niższej częstotliwości próbkowania, to można spawe załatwić stosując tzw multiplexery iwtedy można na jednym uart z atmegi8 można obsłużyć więcej niż4 urządzenia...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 15:43 
Offline
Użytkownik

Dołączył(a): 24 kwi 2012
Posty: 76
Lokalizacja: Ostrów Wielkopolski
Pomógł: 6

Pewnie się nie znam... ale w tym konkretnym przypadku... co będzie jak dokładnie w tym samym czasie przy trzech czytnikach pojawią się osoby (czytaj zacznie się odczyt). Wiem że pojęcie "w tym samym czasie" jest względne.. ale pierwsza osoba przyłożyła kartę do czytnika co spowoduje zapewne transmisję po rs232, i zanim ta transmisja się zakończy kolejna osoba przy innym czytniku zrobi to samo. Wydaje mi się że to zakłuci transmisję :?: i mimo tego że rs485 "strawi elektrycznie" taką sytuację to informatycznie nastąpi haos.. ale jak na wstępi napisałem..się nie znam i chętnie poznam rozwiązanie takiego problemu :oops:
Pzdr Wojtek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 16:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

albo najprościej zrobić sobie konwerterek uart->np stm32f030f4p4(za 2,5zł)->SPI iii później jednym prockiem ściągać dane po jednej magistrali... wspomniany stm32 można se zaprogramować tak że będzie zdarzenia mógł buforować z notacją czasową i ewentualnym przetłumaczeniu danych z czujnika...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Pojęcia nie mam co za czujniki to są , ale tak na szybko mi tak zaświtało że mam 4 końca kabla z rs232 i teraz jak reagować równocześnie na dane pochodzące z tych kabli :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2014, o 12:10 
Offline
Użytkownik

Dołączył(a): 24 kwi 2012
Posty: 76
Lokalizacja: Ostrów Wielkopolski
Pomógł: 6

xbary napisał(a):
Pojęcia nie mam co za czujniki to są , ale tak na szybko mi tak zaświtało że mam 4 końca kabla z rs232 i teraz jak reagować równocześnie na dane pochodzące z tych kabli :)


Moim zdaniem przy każdym czytniku kart musi być procek który będzie buforował odczyty kart(pracujący na rs485 jako slave) i jeden "główny" procesor(master) który będzie "odpytywał" kolejno wszystkie slave. Nadasz każdemu slave adres 8-bitowy i jeżeli slave go odbierze to wyśle ci zawartość bufora..i już
Pzdr Wojtek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 13:12 
Offline
Nowy

Dołączył(a): 23 mar 2014
Posty: 8
Pomógł: 0

Dzięki za pomoc!!!
postanowiłem, że zrobię to na rs485 i dodatkowo przy takim czytniku będzie czujnik ruchu i po wykryciu przez czujnik ruchu osoby będę włączał czytnik, jeśli będzie więcej osób, to będę odczytywał z każdego czytnika dane szeregowo.



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: 16 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO