Cześć. Witam wszystkich forumowiczów!
Mam kłopot w napisaniu programu w języku G.
Chodzi o napisanie programu rozpoznającego znaki wysyłane przez port RS232.
Dane wysyłane przez port są odbierane przez kartę pomiarową przez wejście analogowe.
Sam już sobie poradziłem z tym, że ładnie wyświetlane są na wykresie spróbkowane skoki napięcia,
a chodzi jeszcze o to aby zamienić te skoki napięcia na bity, a potem sekwencję 8 bitów na znak ASCII.
Transmisja jest asynchroniczna znakowa. Pierwszy bit to bit Start, potem jest sekwencja 8 bitów danych i na końcu jeden bit Stop (zależnie od ustawień). Być może łatwo jest to zrobić, ale siedzę nad tym dłuższy czas i mam z tym problem. Będę wdzięczny za pomoc. Pozdrawiam
akwizycja danych cyfrowych
akwizycja danych cyfrowych
- Załączniki
-
- lv1.vi
- (21.49 KiB) Pobrany 311 razy
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: akwizycja danych cyfrowych
Może tak jak w załączniku.
- Załączniki
-
- lv_ex_1.vi
- dodałem proste skalowani i wysyłkę RS-em
- (31.02 KiB) Pobrany 343 razy
akwizycja danych cyfrowych
Dzięki za zainteresowanie. Chodzi jednak o to, że znaki są wysyłane przez port RS z innego komputera (przez pewien program do wysyłania znaków). Na moim komputerze w LabView muszę te znaki odbierać poprzez połączenie sygnału TX i masy do wejścia analogowego karty pomiarowej. Karta próbkuje skoki napięcia, następnie skoki te zamieniane są na bity, a potem na znaki ASCII.
Powinno to działać w ten sposób, że po wysłaniu znaku (lub kilku znaków) z jednego komputera od razu powinny się one wyświetlić na drugim komputerze w LabView. Pozdrawiam
Powinno to działać w ten sposób, że po wysłaniu znaku (lub kilku znaków) z jednego komputera od razu powinny się one wyświetlić na drugim komputerze w LabView. Pozdrawiam
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: akwizycja danych cyfrowych
Niegdyś bawiłem sie komunikacją "Dali" wysyłając o odbierając dane kartą analogowa i działało to bez zarzutów. Robiłem to w natepujący sposób:
1. Jeśli chcesz zrobić odbiór automatyczny bedziesz potrzebował konfiguracji triggera dla karty analogowej.
2. Ważną rzeczą jest okreslenie z jaką czestotliwoscią bedzie próbkować karta w stosunku do predkości transmisji ( ile próbek poberze karta poczas stanu niskiego lub wysokiego ramki ja miałem 100).
Wykonuje sie po to zeby sie wstrzelić w środek poziomu.
3. PO wykonaniu akwizycji sygnału z karty wykonujesz nastepującą sekwencje:
-znajdujesz poczatek transmisji
-szukasz środka pierwszego poziomu sygnału ( czyli przesuwasz sie o połowe ilości próbek jaka przypada na jeden poziom) i odczytujesz stan i wrzucasz do tablicy.
-przesuwasz sie o ilość nastepne 100 próbek ( ile wyznaczyles w punkcie 2 lub to co wyżej x 2 i znowu sprawdzasz stan i do tablicy
- i tak dalej do konca az osiagniesz ostatni stan (coś znaczacy stan)
- przeksztacasz tablice bitową na postac binarną i pózniej dekodujesz to co otrzymałes.
Pewnie nie pisze dosyc zrozumiale wiec jak bedziesz miał pytania to pisz.
1. Jeśli chcesz zrobić odbiór automatyczny bedziesz potrzebował konfiguracji triggera dla karty analogowej.
2. Ważną rzeczą jest okreslenie z jaką czestotliwoscią bedzie próbkować karta w stosunku do predkości transmisji ( ile próbek poberze karta poczas stanu niskiego lub wysokiego ramki ja miałem 100).
Wykonuje sie po to zeby sie wstrzelić w środek poziomu.
3. PO wykonaniu akwizycji sygnału z karty wykonujesz nastepującą sekwencje:
-znajdujesz poczatek transmisji
-szukasz środka pierwszego poziomu sygnału ( czyli przesuwasz sie o połowe ilości próbek jaka przypada na jeden poziom) i odczytujesz stan i wrzucasz do tablicy.
-przesuwasz sie o ilość nastepne 100 próbek ( ile wyznaczyles w punkcie 2 lub to co wyżej x 2 i znowu sprawdzasz stan i do tablicy
- i tak dalej do konca az osiagniesz ostatni stan (coś znaczacy stan)
- przeksztacasz tablice bitową na postac binarną i pózniej dekodujesz to co otrzymałes.
Pewnie nie pisze dosyc zrozumiale wiec jak bedziesz miał pytania to pisz.
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: akwizycja danych cyfrowych
Miej więcej tak trzeba to zrobić jak kogel Grzesiek080 napisał. Tak naprawdę chodzi o to aby odtworzyć działanie układu UART jakiegoś dowolnego uC, więc na pewno coś o tym na wiki lub w manualu jakiegoś uC znajdziesz. Oczywiście jest jeszcze problem BaudRate. Czy je znasz czy musisz zdekodować. Jeśli tak to możesz do tego wykorzystać bit startu i stopu, ale oczywiście wtedy musi występować odpowiedni czas bezczynności Lini (pomiędzy ramkami).
No i mam jeszcze pytanie czy realizujesz projekt w pracy czy na studiach?
Pozdrawiam
Andrzej
No i mam jeszcze pytanie czy realizujesz projekt w pracy czy na studiach?
Pozdrawiam
Andrzej