Odczyt kilku urządzeń RS232 w FPGA

Tematy związane z LabVIEW FPGA oraz programowaniem układów.
PrzemB
Posty: 26
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017

Odczyt kilku urządzeń RS232 w FPGA

Post autor: PrzemB » 31 maja 2016 19:31

Witam,
próbuję opanować komunikację z urządzeniami po RS232 z poziomu FPGA (korzystam z sbRIO-9627 i karty NI9870). Wykorzystałem przykład "NI-987x Serial Loopback" i udało mi się skomunikować z jednym urządzeniem. I tu pytanie: jak rozszerzyć ten przykład na wiele urządzeń? Jestem początkujący w FPGA i z przerwaniami nigdy dotychczas nie miałem do czynienia. Czy dla kolejnych urządzeń dodaje się kolejne numery przerwań? Jak to rozwiązać w vi na FPGA - dodać kolejne pętle równoległe? W przykładzei są trzy opcje - na razie wykrzystuję zapis i odczyt za pomocą kolejek DMA.
Z góry dzięki za pomoc
Przemek
Ostatnio zmieniony 02 cze 2016 16:00 przez PrzemB, łącznie zmieniany 1 raz.

PiDi
Posty: 604
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2015
Lokalizacja: Katowice
Has thanked: 2 times
Been thanked: 1 time

Re: Odczyt kilku urządzeń RS232 w FPGA

Post autor: PiDi » 01 cze 2016 20:41

Może najpierw alternatywa: karty można używać w trzech trybach:
1. Pod FPGA, czyli tak, jak piszesz:
FPGAMode.png
FPGAMode.png (24.88 KiB) Przejrzano 2701 razy
2. W trybie Scan Mode, wtedy można jej używać bezpośrednio pod RT jako zasób VISA (tak, jak zwykłe porty COM):
ScanMode.png
ScanMode.png (22.29 KiB) Przejrzano 2701 razy
Zauważ, że w tym trybie FPGA Target jest usunięty - to ważne, żeby widzieć porty tej karty w systemie od razu. Więcej na ten temat: http://digital.ni.com/public.nsf/allkb/ ... A90067D9DC

3. W trybie Hybrid Mode, czyli kartę używamy jak w Scan Mode, a do tego mamy FPGA Target:
HybridMode.png
HybridMode.png (23.69 KiB) Przejrzano 2701 razy
'
W tym trybie, żeby zobaczyć pod systemem RT porty karty, musimy skompilować i uruchomić VI na FPGA - zobacz tutaj: http://digital.ni.com/public.nsf/allkb/ ... 5100646605


Ok, to teraz wracając do twojego problemu: możesz trochę więcej napisać o tym, co dokładnie chcesz zrobić? Z jakimi urządzeniami się komunikujesz - czy to kilka takich samych urządzeń, czy różne? Czy chcesz pisać całą komunikację na FPGA, czy potrzebujesz tak naprawdę mieć komunikację szeregową po stronie RT?
ObrazekObrazekObrazek

PrzemB
Posty: 26
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017

Odczyt kilku urządzeń RS232 w FPGA

Post autor: PrzemB » 02 cze 2016 15:50

Witam,
w moim przypadku dostępne jest tylko FPGA - moduł sbRIO-9627 z tego co wiem nie obsługuje Scan Mode - stąd cały problem - korzystając z VISA poradziłbym sobie. Zresztą jedno z urządzeń wymaga baud rate 921.6kbps a Scan Mode ma ograniczenie bodajże do 230kbps - tak mnie poinformował support. Komunikacja jest z kilkoma - 3-4 różnymi urządzeniami. Komunikacja z czujnikami tylko na RT, obróbka i zapis danych na RT, do hosta PC wysyłane niektóre dane - z wykorzystaniem DataSocket. Jestem w tej chwili w stanie poprawnie komunikować się z jednym urządzeniem, nie bardzo jednak wiem jak to "rozmnożyć" dla kilku urządzeń.
Pozdrawiam
Przemek

Awatar użytkownika
micard
Posty: 134
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 4 times
Been thanked: 2 times
Kontakt:

Odczyt kilku urządzeń RS232 w FPGA

Post autor: micard » 10 cze 2016 22:38

wg
http://www.ni.com/pdf/manuals/376415a.pdf
sbRIO-9627 obsługuje scan mode. Warto trochę pogrzebać, bo jak jest działająca visa, to jest o wiele łatwiej :)
Trzeba pamiętać o zainstalowaniu odpowiedniego oprogramowania (scn mode i VISA) na sbRio!

Co do ograniczenia prędkości w scan mode - to zazwyczaj dotyczy ono przesyłu danych pomiędzy interface'm FPGA a RT. Sama VISA powinna dać radę:
http://digital.ni.com/public.nsf/allkb/ ... 06005B9BE7

Moduł również:
http://www.ni.com/pdf/manuals/372276d.pdf

Domyślam się, że nie powinno być problemu z ustawieniem modułu na maksymalną prędkość (921.6 kbps) przy rozsądnej konfiguracji buforów.

ODPOWIEDZ