logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

program do obslugi rs232 (reczne ster) i kosci FT245 do USB

wilk125 05 Sty 2006 13:38 4895 13
REKLAMA
  • #1 2148719
    wilk125
    Poziom 23  
    Posty: 912
    Pomógł: 17
    Ocena: 44
    Witam
    Załączam dwa programiki mojego autrstwa, może się komuś przydadzą. Przy pomocy pierwszego możemy rcznie sterwać liniami portu com oraz odbierać/wysyłąć dane jak w hyperterminal.
    Drugi służy do komunikacji z układem FT245 firmy FTDI. Można wysyłąć odbierać dane oraz podgadać zawartość bufora odbiorczego.

    pozdrawiam
    wilkxt
    Załączniki:
    • Com_port.rar (6.37 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Usb_ftdi.rar (52.48 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 2148955
    denooky
    Poziom 20  
    Posty: 497
    Pomógł: 3
    Ocena: 26
    A jaka jest predkosc otwieranego portu w pierwszym programie? Przydalaby sie opcja wyboru baudrate..i moze kilku innych waznych parametrow typu parzystosc, bity stopu. Pozdrawiam!
  • REKLAMA
  • #3 2152202
    wilk125
    Poziom 23  
    Posty: 912
    Pomógł: 17
    Ocena: 44
    wszystkie opcje są dostepne pod przyciskiem parametry portu, zmian dokonuje sie gdy port jest juz otwarty.

    pozdrawiam
  • REKLAMA
  • #4 2153075
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Wilku, wydaje mi się (bo nie sprawdzałem) że dane które wysyłasz idą w ASCI. A czy można wysłać daną binarną?. Jeśli nie można to pomyśl o opcji która by to umożliwiała.
    Piszę to, bo właśnie taki programik by mi się przydał (nie musiałbym go za parę dni pisać samemu), ale musi on mieć możliwość wyedytowania zarówno danych ASCI jak i BIN i ich wysłania.
    Może w trakcie wpisywania zrobić przełącznik asci/bin?
    Będę śledził temat, bo jeśli to wprowadzisz to mam z głowy trochę roboty.
  • REKLAMA
  • #5 2167242
    wilk125
    Poziom 23  
    Posty: 912
    Pomógł: 17
    Ocena: 44
    ok, na dniach postaram sie dodać ta opcje z danymi binarnymi

    pozdrawiam
  • #6 2169805
    bol3k
    Poziom 12  
    Posty: 42
    Ocena: 10
    Moge wiedzieć jakiej biblioteki używałeś przy pisaniu tego programiku i w jakim języku ?
    Musze zrobić generator funkcyjny przy użyciu pinów com i to by mi bardzo pomogło.
  • #7 2171058
    wilk125
    Poziom 23  
    Posty: 912
    Pomógł: 17
    Ocena: 44
    uzywałem API windowsa, a program napisałem w visual C++. Do otwierania portu służy funkcja create file(...), zapisywania writefile(...), do dostępu do poszczegołnych pinów escepecommstat(..) lub cos podobnego dokladnie nie pamietam, napisze pozniej jak sprawdze jaka to dokladnie byla funkcja

    pozdrawiam
  • #8 2173263
    bol3k
    Poziom 12  
    Posty: 42
    Ocena: 10
    Do dostępu do pinów pewnie : BOOL EscapeCommFunction(HANDLE hCommDev, DWORD dwFunc);
    ale jak wyświetlałeś stan lini: CTS, DSR, DCD, RI ??
    czy przy użyciu funkcji : BOOL GetCommMask(HANDLE hCommDev, LPDWORD lpfdwEvtMask);
    Mógłbym prosić o dokładny sposób na odczyt wszystkich lini ?
  • #9 2383999
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    Muszę przyznać że całkiem ciekawy wątek.

    Może ktoś mi pomoże w mojej sprawie. Jeśli chodzi o rs232 to jestem jeszcze zielony więc sorry za banalność pytań. Jak za pomocą tej metody z której ty Wilku korzystasz, wysłać na COM`a (na linię TXD) słowo 8 bitowe, powiedzmy 00100110? Głównie chodzi mi o współpracę z tym układem:

    program do obslugi rs232 (reczne ster) i kosci FT245 do USB

    Z góry dzięki za pomoc,
    pozdrawiam
  • #10 2384182
    denooky
    Poziom 20  
    Posty: 497
    Pomógł: 3
    Ocena: 26
    Zazwyczaj przez port szeregowy wysyla sie paczkami dane o dlugosci 8 bitow. Dlugosc taka ma tez dana typu char, a wiec wystarczy po prostu skorzystac z funkcji WriteFile() i jako argument LPCVOID lpBuffer podac wskaznik do znaku typu char.
    
    {
    ...
    char cZnak = A; //jakis znak
    DWORD dwRead;
    ...
    WriteFile( HANDLE hPort, //uchwyt do wczesniej otwartego portu
                  &cZnak, //wysylany znak
                  1, //ilosc znakow do wyslania
                  &dwRead, //ilosc znakow faktycznie wyslanych
                  NULL );
    }
    


    To chyba najprostsza opcja, jesli chodzi o windows i jego funkcje API.
    Oczywiscie podany przeze mnie kod nie ma prawa sie skompilowac, a jedynie obrazuje, jak wyslac 8 bitow po RS`ie. Pozdrawiam.
  • #11 2384196
    korneliuszo
    Poziom 17  
    Posty: 185
    Pomógł: 15
    Ocena: 30
    No to co tego schematu to mogę powiedzieć że jest żywcem wzięty z CHIPa (mam program sterujący), a sterowanie nim jak dobrze pamiętam to 8 paczek 8 bitowych brak parzystości i 1 bit stopu(wysyłamy wartości 0 i 255)
  • #12 2385164
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    korneliuszo napisał:
    No to co tego schematu to mogę powiedzieć że jest żywcem wzięty z CHIPa (mam program sterujący), a sterowanie nim jak dobrze pamiętam to 8 paczek 8 bitowych brak parzystości i 1 bit stopu(wysyłamy wartości 0 i 255)


    No dokładnie tak jest - to schemat z chip`a i nigdzie nie powiedziałem że tak nie jest :) Głównie właśnie o to mi chodzi by napisać aplikacje sterującą tym układem. Tylko nie wiem za bardzo jak to zrealizować. Co należy wysłać na rs`a i w jaki sposób skonfigurować port. korneliuszo, masz może źródła do programu sterującego tym układem?


    BTW: obsługę portu chcę oprzeć na WinAPI, tak jak denooky pokazywał w przykładzie. Środowisko Borland C++ Builder 6 choć to w tym momencie mało istotne.
  • #13 2385743
    korneliuszo
    Poziom 17  
    Posty: 185
    Pomógł: 15
    Ocena: 30
    Źródeł nie mam, lecz program w którym parametrami są dane wyjścia (jest na płycie).
    A tak nawiasem: Nie prościej wziąść tiny2313 i wsadzić tam prosty program? Części takiego układu wtyczkaDB9+kabel+max232(albo jakoś tak)(można próbować z tranzystorem lub diodą zenera)+tiny2313+diody led(z rezystorami)+układy wyjściowe.
    Jest też możliwość podłączenia urządzenia przez USB. Strona Igora Ceski się przyda.
  • #14 2385801
    denooky
    Poziom 20  
    Posty: 497
    Pomógł: 3
    Ocena: 26
    Jesli myslisz o opanowaniu od podstaw komunikacji przez port szeregowy, to sa dwie opcje. Pierwsza to ksiazka "RS232 - praktyczne programowanie" wydawnictwa Helion. Znajdziesz tam chyba wszystko co do szczescia potrzebne. Druga opcja to MSDN, czyli wszystko o wszystkim, tylko ze po angielsku, ale jesli to dla Ciebie nie problem, to pod ponizszym linkiem prawdopodobnie znajdziesz wszystko, co bedzie potrzebne do podstawowej komunikacji szeregowej.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp

    Pozdrawiam ;-)

Podsumowanie tematu

LABEL_AI_GENERATED
Omówiono dwa autorskie programy do obsługi portu RS232 i układu FT245 USB firmy FTDI. Pierwszy program umożliwia ręczne sterowanie liniami portu COM oraz wysyłanie i odbieranie danych podobnie jak w HyperTerminal, z możliwością konfiguracji parametrów portu (baudrate, parzystość, bity stopu) po otwarciu portu. Drugi program służy do komunikacji z układem FT245, pozwalając na wysyłanie, odbieranie danych oraz podgląd zawartości bufora odbiorczego. Dyskutowano możliwość wysyłania danych binarnych obok ASCII, co ma zostać dodane w kolejnej wersji. Programy napisano w Visual C++ z wykorzystaniem Windows API, m.in. funkcji CreateFile(), WriteFile(), EscapeCommFunction() i GetCommMask() do kontroli i odczytu stanów linii sygnałowych (CTS, DSR, DCD, RI). Poruszono także kwestie konfiguracji portu i wysyłania 8-bitowych danych na linię TXD, z przykładowym kodem użycia WriteFile(). Wskazano na schemat sterowania układem z CHIPa, gdzie dane wysyłane są w 8-paczkach bez parzystości i z 1 bitem stopu. Zaproponowano alternatywę w postaci mikrokontrolera ATtiny2313 z interfejsem RS232 (DB9, MAX232) oraz diodami LED do sygnalizacji. Polecono literaturę "RS232 - praktyczne programowanie" oraz dokumentację MSDN dotyczącą komunikacji szeregowej w Windows jako źródła wiedzy.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA