porzadkowanie danych do przesylu na port szeregowy

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC

Autor tematu
moonkey
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 4
Rejestracja: 12 lut 2006, 23:43
Lokalizacja: crackoff

porzadkowanie danych do przesylu na port szeregowy

#1

Post napisał: moonkey » 12 lut 2006, 23:57

temat dotyczy tego urzadzonka ktore chce zrobic:

http://www.elektroda.pl/rtvforum/viewto ... highlight=

otoz w calym urzadzeniu bede mial okolo 10 (moze wiecej) fototranzystorow, ktorych stany bede musial przeslac do komputera. postanowilem wykorzystac do tego port szeregowy. nie wiem jednak jak te dane uporzadkowac i wyslac na port szeregowy. padl pewien pomysl z ust mojego kuzyna
dorob za kazdym fototranzystorami kondensatory o roznych pojemnosciach. beda sie wyladowywac w roznym czasie, dzieki czemu bedziesz mial wysylany jeden bit w danym czasie
czy to bylo by skuteczne? jesli tak, czy to jest najlepsze rozwiazanie? (nie wydaje mi sie).



Tagi:

Awatar użytkownika

ludas
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 2
Posty: 58
Rejestracja: 22 lis 2004, 21:27
Lokalizacja: okolice Poznania

#2

Post napisał: ludas » 13 lut 2006, 11:40

ehh.. Zabłądziłem od tych wszystkich postów...

Moja propozycja: wykorzytaj jakiś rejestr PISO (Paralel In Serial Out)
Może jeszcze tutaj znajdziesz coś co ci pomoże: Odczyt stanu jednego bitu z portu COM
----
Zresztą możesz do tego celu bez problemu wykorzystać port LPT.
Do dyspozycji masz 8 bitów wejściowych i cztery bity dwukierunkowe,
więc razem możliwość podłączenia 12 sygnałów.
Zużywaj się, nie rdzewiej...


ggg1986
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 1
Posty: 23
Rejestracja: 22 lip 2005, 23:39
Lokalizacja: pl

#3

Post napisał: ggg1986 » 13 lut 2006, 17:13

wydaje mi się że wejść jest 5, a nie 8. I raczej naraz 12 sygnałów nie pobierze. Ale te 10 możesz pobrać na 2 razy po 5. Myśle że można zrobic tak: Bierzesz 5 bramek AND. jedną końcówkę dajesz do tego fototranzystora i pozostałe 5 łączysz ze sobą i podpinasz je do jednego pinu wyjścia z portu szeregowego. Oczywiście te wyjścia z bramek And podpinasz do 5 wejść, tak samo robisz z drugą piątką fototranzysorów. Teraz dajesz na tym pinie wyjścia 1 i odczytujesz zawartośc pierwszych pięciu, później dajesz 1 na drógim pinie i odczytujesz kolejne 5. Biorąc pod uwagę że jest 8 wejść możesz odczytać 8x5=40 wartości, zakładając oczywiście że komputer jest w stanie czasowo wyrobić, zanim nie nadejdzie kolejna partia danych i nie zmienią się stany na fototranzystorach, ale to chyba lepsze od tych kondensatorów.

Awatar użytkownika

ludas
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 2
Posty: 58
Rejestracja: 22 lis 2004, 21:27
Lokalizacja: okolice Poznania

#4

Post napisał: ludas » 13 lut 2006, 17:58

ggg1986 pisze:wydaje mi się że wejść jest 5, a nie 8. I raczej naraz 12 sygnałów nie pobierze.
faktycznie, nie wiem skąd mi się uroiło to 8 bitów wejściowych :oops:
LPT FAQ

Moim zdaniem pomysł z podzieleniem odczytu na dwie części jest całkiem dobry,
nie jestem tylko pewien czy jeden pin wyjściowy zdoła zasilić 5 bramek, ale zawsze
możesz wykorzystać pozostałe wyjście np. po jednym na każdą bramkę, dzięki temu
będziesz miał wiekszą dowolność przy odczytywaniu stanu poszczególnych bitów.
Zużywaj się, nie rdzewiej...


MarK
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 108
Rejestracja: 28 sty 2006, 08:32
Lokalizacja: Lublin

#5

Post napisał: MarK » 13 lut 2006, 22:41

ludas pisze:faktycznie, nie wiem skąd mi się uroiło to 8 bitów wejściowych
wcale się nie "uroiło", bo rzeczywiście można odczytać conajmniej 8 bitów. większość "dzisiejszych" portów lpt ma dwukierunkowy rejestr danych. żeby włączyć tą możliwość trzeba ustawić jeden bit w rejestrze statusu lpt (nie pamiętam teraz który, ale w razie potrzeby mogę poszukać :-) )
sprawdziłem to "samodzielnie" - swego czasu przez port lpt podłączałem przetwornik adc (MAX197). końcówki D0-D7 przetwornika podłączyłem właśnie do rejestru danych (końcówki 2 - 9 portu lpt).


Zink
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 15
Rejestracja: 11 lut 2006, 14:14
Lokalizacja: Polska

#6

Post napisał: Zink » 15 lut 2006, 13:55

Niestety nie wszystkie nowe płyty to mają. Ja kiedyś zrobiłem urządzenie, które komunikowało się z PC-tem właśnie za pomocą dwukierunkowego portu danych. W trakcie projektowania padła mi płyta główna, musiałem kupić nową, i ta nowa już nie miała tej opcji.

Tak na marginesie: gdyby ktoś potrzebował prostego monitora portu LPT, to napisałem takie coś (w załączniku). Podaje on także nazwy sygnałów, bity w rejestrach oraz numery nóżek, któe odpowiadają sygnałom. Program jest mojego autorstwa, używam w nim nie mojej biblioteki Inpout32.dll, która też jest dostępna za darmo.

A jeśli chodzi odczytywanie stanów z wielu czujników, to można użyć rejestrów przesuwających (np. 74HC165), zamieniających dane równoległe na szeregowe. Można je łączyć szeregowo usykując w ten sposób praktycznie dowolną liczbę wejść, a z portu będą użyte tylko jedno wyjście (zegar) i jedno wejście (dane), ewentualnie jeszcze jedno wyjście do sterowania. Przy zwiększaniu liczby wejść będzie się tylko zwiększał czas potrzebny na odczytanie wszystkich.
Innym sposobem jest zastosowanie multipleksera (na przykład 4051), który ma 8 wejść i jedno wyjście. Dzięki niemu można programowo przełączać z którego wejścia chcemy aktualnie coś odczytywać. Wadą jest to, że oprócz wejścia danych z portu musimy wyprowadzić sygnały ustawiające numer odczytywanego wejścia w kodzie binarnym, dla multipleksera 8-wejściowego będą to 3 sygnały (2^3 = 8), dla 16-wejściowego - 4. W związku z tym, że potrzebujesz więcej niż 8 wejść, to trzebaby było łączyć dwa multipleksery 8-wejściowe (16-wejściowe istnieją, ale bardzo trudno je dostać), co wymagałoby dodatkowej bramki NOT i dodatkowego 4-tego wyjścia z portu. Dlatego chyba w Twoim przypadku najlepszym wyjściem będzie rejestr presuwający.
Załączniki
PortMon.zip
(239.19 KiB) Pobrany 286 razy

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”