81. Data: 2014-02-20 20:34:00
Temat: Re: Odczyt czujników - RS485 czy I2C?
Od: Piotr Gałka <p...@c...pl>
Użytkownik "Atlantis" <m...@w...pl> napisał w wiadomości
news:le5kpb$rin$1@portraits.wsisiz.edu.pl...
> Hmm... To może w takim razie następujące podejście:
> 1) Licznik ustawiany na określoną wartość w przerwaniu odbiorczym
> USART-a, a następnie dekrementowany. Procedura rozpoczynająca nadawania
> ramki z bufora wstrzymuje się z działaniem, dopóki licznik ma wartość
> różną od zera. W ten sposób jedno urządzenie nie rozpocznie nadawania,
> jeśli jeszcze przed chwilą odbierało znak. Nadawanie będzie możliwe
> dopiero w chwilę po zwolnieniu linii.
> Oczywiście nie chroni mnie to przez kolizją, gdy nadawanie rozpocznę w
> trakcie odbierania pierwszego znaku (przed wystąpieniem przerwania) albo
> gdy dwa urządzenia zdecydują się nadawać dokładnie w tym samym momencie.
>
> 2) Jeśli jednak dojdzie do takiej sytuacji, w zadanym czasie nie
> otrzymuję potwierdzenia otrzymania wiadomości, albo dostaję informację o
> błędnej sumie CRC. W takiej sytuacji urządzenie odczekuje losową chwilę
> i ponownie próbuje nadawać. Próby są podejmowane do skutku albo do
> wyczerpania limitu.
>
> Czy takie podejście jest właściwe? Pozwoli mi na w miarę bezproblemową
> komunikację po magistrali RS485?
Się nie wypowiem. Nigdy nie pisałem programów na mikrokontroler.
>
> Czy od strony elektrycznej nic się nie stanie, jeśli dwie lub więcej
> stron zacznie jednocześnie wysyłać sygnały na linię różnicową?
Drivery RS485 muszą być przygotowane na takie zdarzenia.
P.G.