Strona 1 z 1

akwizycja danych cyfrowych

: 08 sty 2012 01:44
autor: sovolex
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 :)

Re: akwizycja danych cyfrowych

: 08 sty 2012 09:42
autor: AGF
Może tak jak w załączniku.

akwizycja danych cyfrowych

: 08 sty 2012 11:24
autor: sovolex
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 :)

Re: akwizycja danych cyfrowych

: 09 sty 2012 22:30
autor: Grzesiek080
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.

Re: akwizycja danych cyfrowych

: 10 sty 2012 07:44
autor: AGF
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