Dzień dobry.
Zwracam się do Was bo zapewne cześć osób zna i stosuje rozwiązanie problemu z którym walczę.
Jak radzicie sobie z błędami w transmisji danych w komunikacji szeregowej RS232?
Szukając informacji o błędach występujących w komunikacji szeregowej znalazłem informację, że uzyskanie błędu na poziomie 0 % jest sprawą złożoną i że gdy procent błędów wynosi 1-2 % to poziom ten uznaje się za zadowalający.
A teraz przykładowo: mam mikrokontroler który steruje procesem i przez RS232 przesyłam z PC wartości zadane do tego mikrokonteolera jako strumień ASCII a mikrokontroler to odczytuje i zapisuje sobie jako kolejne wartości zadane w czasie (nie chodzi mi tu o sterowanie w czasie rzeczywistym za pośrednictwem RS232 bo mikrokontroler robi to tak, że zapisuje sobie cały zadany przebieg z PC a sterować zaczyna dopiero po zapisaniu go).
Jak teraz rozumieć, że 2 % błędu jest poziomem akceptowalnym? Jeżeli wysyłam strumień danych, np. 1000 próbek zadanego przebiegu i teraz 2 % z nich jest błędne a gdzieś zostanie odczytany krzaczek zamiast poprawnej wartości liczbowej to taki sterownik a wraz z nim cały proces utyka. Dla mnie (i na pewno dla was też) jest to nie do zaakceptowania.
I tu rodzi się moje pytanie bo może o czymś nie wiem:
W jaki sposób rozwiązujecie problem polegający na tym, że do 2 % przesłanych danych może być błędnych gdy chcecie przesyłać dane bezbłędne? Przesyłacie je dwa razy i porównujecie? Sprawdzacie czy przesłane wartości są liczbami i w przypadku krzaczków wznawiacie transmisję? Jak sobie z tym radzicie? Czy jest jakieś rozwiązanie sprzętowe które samo sprawdza poprawność transmisji i ponawia wysyłanie gdy wystąpi błąd? Czy jest to jakoś związane z kontrolą parzystości (u mnie włączanie i wyłączanie kontroli parzystości nie miało wpływu na błędy w komunikacji)?
Proszę o Waszą pomoc i pozdrawiam,
M.
Zwracam się do Was bo zapewne cześć osób zna i stosuje rozwiązanie problemu z którym walczę.
Jak radzicie sobie z błędami w transmisji danych w komunikacji szeregowej RS232?
Szukając informacji o błędach występujących w komunikacji szeregowej znalazłem informację, że uzyskanie błędu na poziomie 0 % jest sprawą złożoną i że gdy procent błędów wynosi 1-2 % to poziom ten uznaje się za zadowalający.
A teraz przykładowo: mam mikrokontroler który steruje procesem i przez RS232 przesyłam z PC wartości zadane do tego mikrokonteolera jako strumień ASCII a mikrokontroler to odczytuje i zapisuje sobie jako kolejne wartości zadane w czasie (nie chodzi mi tu o sterowanie w czasie rzeczywistym za pośrednictwem RS232 bo mikrokontroler robi to tak, że zapisuje sobie cały zadany przebieg z PC a sterować zaczyna dopiero po zapisaniu go).
Jak teraz rozumieć, że 2 % błędu jest poziomem akceptowalnym? Jeżeli wysyłam strumień danych, np. 1000 próbek zadanego przebiegu i teraz 2 % z nich jest błędne a gdzieś zostanie odczytany krzaczek zamiast poprawnej wartości liczbowej to taki sterownik a wraz z nim cały proces utyka. Dla mnie (i na pewno dla was też) jest to nie do zaakceptowania.
I tu rodzi się moje pytanie bo może o czymś nie wiem:
W jaki sposób rozwiązujecie problem polegający na tym, że do 2 % przesłanych danych może być błędnych gdy chcecie przesyłać dane bezbłędne? Przesyłacie je dwa razy i porównujecie? Sprawdzacie czy przesłane wartości są liczbami i w przypadku krzaczków wznawiacie transmisję? Jak sobie z tym radzicie? Czy jest jakieś rozwiązanie sprzętowe które samo sprawdza poprawność transmisji i ponawia wysyłanie gdy wystąpi błąd? Czy jest to jakoś związane z kontrolą parzystości (u mnie włączanie i wyłączanie kontroli parzystości nie miało wpływu na błędy w komunikacji)?
Proszę o Waszą pomoc i pozdrawiam,
M.