Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj siękonwersja parzystości sygnału RS232
Moderatorzy:Jacek Bogusz, Moderatorzy
W jaki sposób dokonać konwersji sygnału szeregowego RS232 z sygnału z brakiem parzystości na sygnał z parzystością? Z jednej strony mam urządzenie, które mogę otworzyć jedynie z NOPARITY, a z drugiej urządzenie działające tylko z EVENPARITY.
Jakiegos specjalizowanego układu to chyba nie ma. Mozna to zrealizować na jakimś prostym mikrokontrolerze z dwoma portami UART lub na dwuch zwykłych mikrokontrolerach obslugujacych truym pzrzystosci i nieparzystosci. Musisz jednak pamietac o predkosciach, najprosciej zrobic je rozne a dane buforowac (na w pamieci mikrokontrolera). W razie pytan chcetnie pomoge.
Dzięki za info. Generalnie chcemy właśnie zrobić coś w tym stylu. Znaleźliśmy dwa układy zawierające w sobie po dwa UART-y, w tym jeden o d razu z flashem. Co do prędkości to po obu stronach będzie 9600 więc odpada problem z synchronizacją. Mam nadzieję, że wystarczy tylko odczytać z jednej strony, zbuforować i wysłać drugą stroną. W międzyczasie pojawił się problem z poborem prądu. Rozważamy też użycie jednego UART-a i użycie portów mikrokontrolera jako wy-we zamiast drugiego. Jeżeli znasz jakieś układy, które można by było zastosować, byłbym wdzięczny. Dam Ci znać jak coś ruszy.
Zgadza się, ale gdyby, powiedzmy, jeden UART odczytuje daną (1 bajt) na swoich ustawieniach, zapisuje go do bufora i generuje przerwanie 'jest bajt', to wówczas drugi UART mógłby odczytać 'czystą' daną, i przesłać go na swoich ustawieniach. Zresztą, masz rację, sprowadza się to, jakby nie było, do czekania na ten bajt, czyli synchronizacji. Myślisz, że mogłoby to zadziałać?
Jezeli Twój procek będzie odbierał od jakiegos urządzenia sygnał uart wraz z sygnałem parzystości, a wysyłał bez to pracując na tej samej prędkości bedzie nadążał i wszystko będzie OK. problem jest w druga strona, gdy procek odbiera dane 10 bit a wysyła 11 bit. Po prostu nie nadąży w przypadku gdy bedziesz mu wysyłał większą ilosc danych. Musisz to sztucznie spowolnić robiac odstępy czasowe pomiędzy poszczególnymi "bajtami". pamiętaj o tym a będzie działać.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 52 gości