Strona 1 z 1
rs232 full-duplex?
: 19 cze 2012 22:47
autor: nasiono
Witam ponownie .
Tym razem mam problem. Mój mikrokontroler pracuje w trybie full-duplex i chciałbym się dowiedzieć jak tego dokonać po stronie LabView czy to jest w ogóle możliwe by jednocześnie nadawać i odbierać?
W załączniku aktualny program jak dodać do niego równoległe nadawanie?
Re: rs232 full-duplex?
: 19 cze 2012 23:13
autor: PiDi
Dokładając bloczek VISA Write i już.
Re: rs232 full-duplex?
: 20 cze 2012 10:11
autor: nasiono
Gdy nadaje z mikroprocesora ciągły nie przerwany pakiet paczek w Labview którym odbywa sie tylko odbiór wszytko zostaje przejęte prawidłowo każda paczka. jeśli jednak umieszcze szeregowo bloczek Write ( przed Property Node ) następuje gubienie paczek co oznacza ze nadawanie odbieranie odbywa się własnie szeregowo. Próbowałem wstawić Write w osobnej pętli (równolegle) ale nie moge połączyć tego makaronami.
Zrobiłem pomiar prawidłowo odebranych paczek na sekundę. Bez nadawania jest kilkanaście razy więcej. Wniosek Fullduplex w rs232 pod Labview nie działa albo wykorzystuje się to w jakis specjalny sposób.
rs232 full-duplex?
: 27 lis 2013 18:34
autor: zgorzal
Jest to możliwe, nie wiem tylklo czy nie potrzeba dodatkowej nakładki
rs232 full-duplex?
: 28 lis 2013 08:19
autor: Jamal79
Jak czesto zapisujesz??
Ja by zrobil osobna petle do odczyty i aby nie tracic paczek wrzucal bym je w kolejke. Wtedy bedziesz mial pewnosc ze wszystkie paczki zostaly odczytane. Ale ogranicz petle tylko do odczytu paczek. Calkowicie osobna do jej analizy...
Do zapisu zrob eventa w kolejnej petli.
Jak to spelnia twoje wymagania oczywiscie...
Dodalem obrazek z moja wizja. Po przerobieniu ojego kodu na taka strukture mam mniej problemow i znaczna poprawe szybkosci dzialania.
Re: rs232 full-duplex?
: 28 lis 2013 10:45
autor: TMa
Moment. NI VISA implementuje bufory na wejściu i wyjściu. Nie jest możliwe zgubienie paczki, bo nie zdążyłeś z odczytem czy dane za szybko przychodzą. Bez większych problemów da się stworzyć dwustronny kanał szeregowy na 9600bps z wykorzystanie przepustowości na poziomie 90%. I nie rozdzielałbym to na osobne wątki (TX/RX). Zazwyczaj komunikacje z danym urządzeniem zamyka się w jednym wątku. Ma to swoje uzasadnienie przy wielowątkowości (alokacja pamięci) i ew. podziale zadań w systemach wielordzeniowych (zużycie mocy obliczeniowej).
Na początek proponuje przykład: Advanced Serial Write and Read z Find Examples.