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
Odczyt kilku urządzeń RS232 w FPGA
Odczyt kilku urządzeń RS232 w FPGA
Ostatnio zmieniony 02 cze 2016 16:00 przez PrzemB, łącznie zmieniany 1 raz.
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Odczyt kilku urządzeń RS232 w FPGA
Może najpierw alternatywa: karty można używać w trzech trybach:
1. Pod FPGA, czyli tak, jak piszesz: 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): 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: '
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?
1. Pod FPGA, czyli tak, jak piszesz: 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): 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: '
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?
Odczyt kilku urządzeń RS232 w FPGA
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
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
Odczyt kilku urządzeń RS232 w FPGA
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.
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.