Witam,
zmagam się z takim założeniem:
- Urządzenie A wysyła po Uarcie (9600) dane co ok. 1s, danych jest dość dużo, bo ok 2x200 bajtów, transmisja jest buforowana - nie mogę sobie pozwolić na utratę danych.
- Urządzenie B wysyła (115200, mogę zmniejszyć do 5600, jeśli to stanowiłoby kłopot) dane w bliżej nie określonym czasie, np. co 4 sekundy, 1 minutę, 10 minut, paczki nie są duże - od 10 do 230 bajtów. Odebrane dane muszę bezwzględnie odebrać! Czyli przydał by się jakiś bufor wejściowy.
Problem: Jak rozwiązać tę transmisję, by wszystko pewnie działało?
Moja propozycja rozwiązania: Myślałem by urządzenie A podpiąć na sprzętowy uart, a urządzenie B na programowy, lecz z tego co się orientuję tam nie mam możliwość buforowania transmisji. Zastanawiałem się również nad zastosowaniem uC z dwoma sprzętowymi uartami, i odpowiednio dużą ilością pamięci SRAM przeznaczonej na bufor.
Proszę o pomoc w wyborze rozwiązania, może polecicie mi jeszcze inne rozwiązanie?
Dodam jeszcze, że każde paczki danych zakończone są standardowo <CR><LF>, i niestety nie ma żadnego znaku początku ramki. Program poza odbiorem danych będzie je (odpowiednio sprasowane) wyświetlał na LCD oraz wysyłał dalej po którymś z uartów (albo urządzenia A, albo urządzenia B), dane te będą "mocno okrojone" do ok. 50 bajtow.
Za każdą informację serdecznie dziękuję, pozdrawiam.
zmagam się z takim założeniem:
- Urządzenie A wysyła po Uarcie (9600) dane co ok. 1s, danych jest dość dużo, bo ok 2x200 bajtów, transmisja jest buforowana - nie mogę sobie pozwolić na utratę danych.
- Urządzenie B wysyła (115200, mogę zmniejszyć do 5600, jeśli to stanowiłoby kłopot) dane w bliżej nie określonym czasie, np. co 4 sekundy, 1 minutę, 10 minut, paczki nie są duże - od 10 do 230 bajtów. Odebrane dane muszę bezwzględnie odebrać! Czyli przydał by się jakiś bufor wejściowy.
Problem: Jak rozwiązać tę transmisję, by wszystko pewnie działało?
Moja propozycja rozwiązania: Myślałem by urządzenie A podpiąć na sprzętowy uart, a urządzenie B na programowy, lecz z tego co się orientuję tam nie mam możliwość buforowania transmisji. Zastanawiałem się również nad zastosowaniem uC z dwoma sprzętowymi uartami, i odpowiednio dużą ilością pamięci SRAM przeznaczonej na bufor.
Proszę o pomoc w wyborze rozwiązania, może polecicie mi jeszcze inne rozwiązanie?
Dodam jeszcze, że każde paczki danych zakończone są standardowo <CR><LF>, i niestety nie ma żadnego znaku początku ramki. Program poza odbiorem danych będzie je (odpowiednio sprasowane) wyświetlał na LCD oraz wysyłał dalej po którymś z uartów (albo urządzenia A, albo urządzenia B), dane te będą "mocno okrojone" do ok. 50 bajtow.
Za każdą informację serdecznie dziękuję, pozdrawiam.