Zamiast wysyłać przez RS232 binarnie - co często przy przesyłaniu większych porcji danych przez początkujących będzie się kończyło samymi problemami - to nie łatwiej ci zamieniać przesyłane liczby na stringi a po odebraniu ze stringów na liczby. Dzięki temu twoja ramka będzie mogła być po ludzku zakończona znakiem ENTER a co za tym idzie wszystko co...
Czyli sam czysty CH340 bez konwersi na RS485 Nie mieszaj człowiekowi w głowie! CH340 to konwerter USB do UART i żaden RSXXX nie ma tu nic do rzeczy! UART to nie RS232 czy 485/422. Komunikat błędu jasno sugeruje że połączenie jest tylko są niepoprawne dane. Proponuję odłączyć wszystkie inne rzeczy z portów USB i obserwując Menadżer urządzeń dokładnie...
Nie wiem do końca jak to jest w PC. O ile wiem to pracuje głównie jako porst asynchroniczny. Przesyłanie odbywa się w ramce bit startu, 8 bitów danych, 1 lub 2 bity stopu. Nie można zatem w jednej ramce przesłać więcej niż 1 bajt. Dane dłuższe trzeba podzielić na kilka ramek. W mikrokontrolerach rodziny '51 port szeregowy może także pracować w trybie...
Możesz załączyć wawe'a tego sygnału... wrzucę w analizator może da się ustalić jaki to typ transmisji... podłączyłeś to do terminala ??? coś się pokazuje ??
Tak jest to całkowicie normalne połączenie... Rzadko kiedy używa się pozostałych linii... Komputer wie, że coś jest w buforze odbiorczym... Generowane jest też przerwanie... Z tą ramką to trochę nie tak... Standardowa ramka dla rs232 ma 8-bit... max to 9... Natomiast pewnie chodzi o pakiet czyli 4x8bit...
To już właśnie zależy od urządzeń jakie są podłączone, bo jeśli jest to typowa transmisja szeregowa oparta o standard RS232 to wysyłać należy po kolei i nie ma problemu, natomiast jeżeli jest to jakiś inny rodzaj transmisji szeregowej i wysyłana jest cała ramka jako jeden ciąg danych, no to już jest trochę problem... ale też do rozwiązania...
Trzeba poprostu wypróbować. Istnieje też inna możliwość, jeżeli ilość danych będzie niewielka np. jedna ramka na sekundę, można spróbować umieścić w układzie kondensator który doładuje się między transmisjami i będzie źródłem energii dla nadajnika. Jeżeli będzie to transmisja ciągła - zapomnij (aczkolwiek nie zaszkodzi potestować).
Dokładnie - połączenie masy dwóch układów. Jest to wymagane do poprawnej transmisji w jakimkolwiek przypadku pomiędzy dwoma różnymi urządzeniami zasilanymi z różnych źródeł. Prawidłowe podłączenie: GND-GND TxD-RxD RxD-TxD Musisz podać jakieś dane: jak wygląda ramka transmisji i jak wysłać jakieś ustawienie danego serwa ... jak mamy sprawdzić czy program...
Uszanowanie dla wszystkich czytających, Stanąłem przed wyzwaniem skomunikowania się z radiem : model DM839 posiadającym Rs485. Posiadam konwerter RS232/485 To ETH waveshare. https://obrazki.elektroda.pl/7297303000_... Dostałem od producenta rozpiskę komend i zwracam się do Was szanownych forumowiczów o podpowiedz, jakim programem mógłbym...
Co do samego odczytu [syntax=basic4gl] Przerwanie_od_rxd: Dana = Udr Incr In_pos Buffer_in(in_pos) = Dana Wywal_bajt = 0 If In_pos >= 4 Then 'Jeśli są co najmniej 4 bajty (dwa startowe, długość ramki i jakaś dana) If Buffer_in(1) = &H7F Then 'Jeżeli pierwszy bajt startowy jest dobry If Buffer_in(2) = &HEF Then 'Jeżeli drugi bajt startowy jest dobry...
Przepraszam, trochę kolegów wprowadziłem w błąd. Otóż w prawdziwych warunkach pracy będzie to transmisja rzędu 1 ramka co 10 sekund. Nic szczególnego, kupa czasu na synchronizacje i możliwość 5 krotnego powtórzenia ramki w przypadku wykrycia błędu. Natomiast w fazie testów staramy się stworzyć ekstremalne warunki i chcemy aby układ działał poprawnie...
Witam Mam problem z uruchomieniem RS232 w AT89C5131. Tylko raz bardzo elementarny program mi zadziałał, niestety po wciśnięciu RST przestał. I już nigdy nie nadawał. Gdy sprawdzałam wysyłaną ramkę na analizatorze to wyszło, że raczej ustawiłam wszystko dobrze. Prędkość 9600 , zegar 24MHz , transmisja 8 bitowa. Niestety analizator pokazywał, że ramka...
ale kombinujesz!!! co ci szkodzi podlaczyc CTS i RTS przeciez scalaczek RS232 ma dwie line wejsciowe i 2 wyjsciowe. Jak się juz uparles no to mozna zrobic tak: robisz bufor na np. 16 bajtow. Ramka przychodzacych danych z kompa 16 bajtow.I teraz jesli chcesz aby kolejna ramka danych nadeszla musisz wyslac do kompa potwierdzenie gotowsci.Oczywiscie na...
Niekoniecznie transmisja musi zawierać string z nazwą. W transmisji w ogóle może nie być znaków asci. Aplikacja może zawierać nazwy w postaci stringów. Urządzenie może wysyłać np numer od 1-15 który aplikacja rozpoznaje i wyświetla jako string. Ramka może mieć konkretną strukturę i określone pola zawierają przewidziane wartości którym aplikacja nadaje...
Witam, Od jakiegoś czasu próbuję opanować komunikację protokołem Modbus. Udało się uruchomić komunikację na arduino (Uno, mega). Przeszedłem teraz do komunikacji z innymi urządzeniami. Tutaj również udało się nawiązać komunikację aż natrafiłem na urządzenie które posiada coś co według producenta to zwykły modbus który tylko obsługuje większą ilość rejestrów(5000)....
Witam! Zbudowałem pewien system wieloprocesorowy i aby nim sterować potrzebuję zamiast standardowej ramki danych 8 bitowej przesyłać 9-cio bitową. Port inicjuję w ten sposób: DCB dcb; //konfiguracja portu //otwarcie portu COM2 z prawami do zapisu hCom = CreateFile( TEXT("COM2"), GENERIC_WRITE, 0, // exclusive access NULL, // default...
Witam, Robię prosty program, który m.in. ma odbierać dane wysłane na rs232 z pewnej "stacji" pomiarowej konstrukcji kolegi. Ramka wygląda tak: nagłowek 1B | typ komunikatu 1B | rozmiar bloku danych 1B | crc 1B | blok danych ... | komunikacja asynchroniczna. Mój problem polega na tym, że nie wiem jak te dane obrabiać. Potrafię tylko odebrać ramkę i wyrzucić...
Witojcie! Zastanawiam się ile trwa odebranie jednej ramki przez UART mikroproca. Stosuje prędkość Baud 19200, bez parzystości, bit stopu i startu. Nie wiem po prostu ile program ma czekać po ostatnim odebranym bajcie na kolejny żeby umieścić go w pojedyńczej ramce. Po prostu po jakim czasie program ma uznać że odebrany bajt należy do następnej ramki,...
Czy kolejne bajty danych odbieranych przez ten port muszą posiadać bit startu na początku i bit stopu na końcu, odpowiednio 0 start i 1 stop ??
Szukam gotowych urządzeń lub schematów układów RS232 - podczerwień - RS232 do transmisji dwukierunkowej. Mam komputer i program który komunikuje się z innym urządzeniem. Chciałbym się dowiedzeć gdzie mógłbym kupić taki układ: do COM1 podłączam coś co konwertuje mi na podczerwień sygnał wysyła i do odbiornika podłączam urządzenie odbierające ten sygnał....
Bieżący program wygląda następująco: #include <avr/io.h> #include <avr/interrupt.h> unsigned char volatile p1[8] = {0x50,0x90,0x90,0x90,0x30,0x30,0x30... unsigned char volatile p2[8] = {0x90,0x90,0x90,0x90,0x30,0x30,0x30... unsigned char volatile p3[9] = {0x90,0x30,0x90,0x30,0x90,0x30,0x50...
Proponuje free-serial-port-monitor z http://www.serial-port-monitor.com/free-... .
Kontrola parzystości i liczba bitów stopu to parametry transmisji przez łącze szeregowe RS232/485, podobnie jak szybkość transmisji w bitach/sekundę. Są niezależne od protokołu.
Tak jak pisali Koledzy wcześniej, te 2% błędu oznacza niedopasowanie częstotliwości zegarów i jako takie może być pominięte. Niemniej jednak przy transmisji danych może dojść do chwilowych zakłóceń sygnału, co spowoduje powstanie "krzaków". Aby temu zaradzić można zastosować kontrolę CRC dla ramki danych, transmisję z potwierdzeniem i retransmisją w...
Polecam Docklight - w wersji ewaluacyjnej nie można zapisać pliku definiującego ramki, ale że jest to plik tekstowy, to można go sobie wygenerować z palca. Oprócz podglądania transmisji można wysyłać swoje ramki, również automatycznie w reakcji na wystąpienie określonej wiadomości na magistrali (z tego co pamiętam).
Sprawdź dokładnie parametry transmisji, ze szczególnym naciskiem na parzystość i ilość bitów stopu. Po obu stronach muszą być identyczne. Na obrazkach masz parzyście (Even), więc sprawdź czy po stronie skanera jest to samo. czytałem o tym ramkowaniu że zaczyna się przecinkiem a kończy na <cr> To już chyba mówisz o ramkach ze skanera. To nie ma...
Uart nie uart - tu trzeba dobrze sygnał przygotować do transmisji. Można się pokusić o pętlę prądową 20mA albo prawdziwe RS232 ( ±12V) tudzież RS485 (para skręcona) Im większe prądy będą płynąć w linii tym odporniejsza będzie na śmieci. Poza tym błędne ramki można zwykłą sumą kontrolną eliminować.
0,000000069s - 1/14,475MHz - czas jednej instrukcji procesora 0,000086806s - (1/115200) *10 - najkrótsza ramka(8 bitów danych + start + stop) - co taki okres może przyjść przerwanie od portu szeregowego. Jak widać czasu jest dość(ponad 1000 instrukcji na przerwanie) pytanie co jeszcze robi procesor. Jak odbierasz impulsy z enkodera?
To musisz sobie sam ustalić. Wszystko zależy ile danych przesyłasz i od protokołu transmisji (nie mylić ze stadardem poziomów napięć RS232). Jeżeli jest to kilka bajtów możesz liczyć te bajty i jak naliczysz ile przyszło to musisz wiedzieć ile miało przyjsć, porównać i odpowiednio zareagować. Ostatni bajt to przeważnie jakis specyficzny kod np: (ETX...
Drogi kolego. Koledzy wyraźnie powiedzieli, że musisz wiedzieć jaki masz protokół transmisji. Moduły mogą mieć protokół MODBUS RTU lub zwykły RS232 z dedykowanymi komendami odczytu poszczególnych kanałów. Podam Ci przykład. Wagi elektroniczne mają różne protokoły. Jedne odpytuje się wysyłając S I CR LF, inne wysyłając samo S CR LF, a jeszcze inne protokołami...
Masz zły sposób sprawdzania poprawności transmisji. Komp stacjonarny może powodować jakiś mały impuls na linii TXD podczas uruchamiania się komputera. Więc AVR odbiera go jako bajt. Potem wysyłasz 72 Bajty, ale AVR odbiera 71 bo wcześniej już odebrał jeden. I na koniec odbiera ten 72-gi i traktuje go jako ten ostatni bajt kontrolny. A on nim nie jest....
W analizatorze (nawet tak prostym) to trzeba jednak obejrzeć każdą ramkę (przynajmniej jej początek) i tu raczej RS232 się nie wyrobi (nawet na 115Kb). To co widziałeś to najprawdopodobniej bardziej rozbudowany układ który po RS232 wysyła jedynie transmisje z wybranego portu (TCP/UDP)/IP. Ty musisz widzieć ramki ethernetu. Potem tylko analizować odpowiednie...
Jak chcesz przesyłać dane na takie duże odległości to może RS485. W tym przypadku możesz łączyć więcej niż jedno urządzenie. Musiałabyś niestety zastosować konwerter RS232/RS485 przy każdym nadajniku/odbiorniku. Musisz sobie zaprojektować ramkę danych tak żeby odbiornik wiedział co odbiera (np jakiś bajt startowy) wtedy będziesz w odbiorniku po prostu...
RS232 standardowo łączy dwa urządzenia. Można jeden nadajnik (w masterze) podłączyć do dowolnej liczby odbiorników. Problem będzie z transmisją od odbiornika do nadajnika, gdyż bez specjalnych zabiegów nadajników łączyć nie można. W twoim przypadku wydaje się, że transmisja zwrotna jest niepotrzebna, więc nie będzie problemów. Jeśli byłaby niezbędna...
Nie napisałeś jaki ma to być Modbus ascii czy rtu, kodu w bascomie nie posiadam ale może Ci coś podpowiem, więc tak jeśli chodzi o rtu jest to postać bitowa i ważne są odstępy czasu miedzy znakami oraz początkiem i końcem ramki, jak to zrealizować a no bardzo prosto ramkę składasz z ascii i posyłasz to na rs232/485 i będzie działało może nie jest to...
Ale po co od razu WatchDog do tego? Nie lepiej dać TimeOut funkcji Inputbin? A jeszcze lepiej dać jakiś bajt wyróżniający początek ramki i CRC na końcu ramki. Tyle że liczenie CRC musiało by być szybkie żeby procesor nadążył z liczeniem po zgubieniu synchronizacji transmisji (Wtedy musiał by przeliczać cały bufor wielokrotnie przesówając się o jedne...
Po przez RS232 nie wyślesz 11 bitów danych. Maksymalnie osiem bitów. Taką transmisję zrealizujesz na LPT. Pod warunkiem, że jest w komputerze.
Jak dla mnie temat zaczyna nakręcać się wyszukiwaniem możliwych problemów, przeszkód nie prowadząc do sensownego rozwiązania. marcint43 musisz określić się czy chcesz wykonać ten zdalny wyświetlacz czy też nie oraz jaką metodą. Osobiście zrobiłbym przerwę konserwacyjną i wpiął się w sterownik, lub wykonał to działanie w lecie. Jeżeli chcesz wykonać...
Szkoda, że dopiero teraz zauważyłem ten temat. Wszyscy macie rację. Większość wag posiada bardzo prostą ramkę transmisji dla RS232. Wystarczy zwyczajny "Hyper Terminal", (odpowiednie ustawienie parametrów transmisji) z windy żeby cieszyć sie odczytem z wagi. Jednak niektore są bardziej zaawansowane i trzeba w nich np podać adres sieciowy czy tym podobne...
Na 10000% podanie napięcia 5,1V nie mogło uszkodzić tych modułów ;) A problem jest prozaiczny. Przesyłanie danych bezpośrednio poprzez RS232 to nieporozumienie niestety nieporozumienie i mało kto o tym wie i pisze. Co gorsza, na allegro ludziska sprzedają tego typu moduły radiowe podając w przykładach właśnie chore aplikacje narysowane własnoręcznie...
Dzisiaj otrzymałem konwerter RS232-TTL i udało mi się podsłuchać całą transmisję pomiędzy AG-LUX i ST-505. Transmisja AG-LUX posiada zbyt niskie napięcie aby konwerter je wyłapał, więc podłączyłem Tx poza nim. Parametry transmisji podawałem wcześniej. Co do transmisji ST-505, to uwaga, w transmisji zmieniony musi być parametr na Not Inverted. Każdego...
prokopcio -> oczywiście też już pomyślałem poprostu o własnych ramkach danych z sumą kontrolną na końcu itp. A jeśli chodzi o 115200 to naprawdę kilkubajtowe pakiety śmigają pięknie ;) McRancor -> oczywiście masz rację co do tej synchronizacji (ja nie doczytałem o tej synchronizacji z każdym bitem startu ale dobrze do wiedzieć, dzięki za info) Jednak...
Witam i proszę o pomoc. Potrzebuję się skomunikować z urządzeniem, które potrafi przy wykorzystaniu RS232 odbierać odpowiednie ramki, również odpowiednimi ramkami odpowiada. Problem polega na tym, że nie posiada zaimplementowanego żadnego "poważniejszego" protokołu komunikacyjnego, np Modbus, Profinet, itp. Poszukuję małego sterownika, który umożliwi...
Proszę o informację czy taki sposób rozwiązania problemu (np 89Sx051 -> MAX232) będzie ok, czy istnieją mikrokontrolery z mniejsza ilością wyprowadzeń z rodziny 51, AVR oraz posiadające UART - czy może iść jeszcze w zupełnie innym kierunku? Najmniejszy dostępny w detalu serii MCS51 ze sprzętowym UARTem to chyba 89C(S)4051 20pin. Z rodziny AVR to ATTINY85....
Trzeba by poczytać troszku o RS485. Jeśli chodzi o sprzęt, to w zasadzie masz dwie główne możliwości. Pierwsza to półdupleks, czyli transmisja naprzemienna po tej samej parze przewodów, druga dupleks w układzie czteroprzewodowym (para przewodów od mastera, para do mastera). Dodatkowo korzystnie z punktu widzenia linii może być pociągnięcie między układami...
Pozostaje tylko sprawdzić rozwiązania o których pisałem wcześniej. Wysyłając nawet po 10 zyskasz bardzo wiele na szybkości. Nie napisałeś czy używasz przerwania do odbioru danych. Tak myśle że jak obniżysz trochę prędkość, a zaczniesz przesyłać po kilkadziesiąt bajtów naraz to i tak będzie szybciej niż teraz. Chodzi o to że teraz masz tylko 25% danych...
/* Set frame format: 8data, 1stop bit */ UCSR0C = (1<<USBS0)|(1<<UCSZ00); Przy takim ustawieniu to masz ramkę 6 bitow + 2 bity stopu.
Komunikacje pomiedzy PLC (profibus) z peryferiami (rs232) ma zalatwic urzadzenie GW-7552 PROFIBUS/MODBUS GATEWAY. Urzadzenie jesty widoczne w HArdware Configurator, nie ma zadnych bledow, moge wystawiac dowolne wartosci na bajty wyjsciowe ale nie wiem czy sa one w odpowiedniej formie (ramka transmisji) przesylane do urzadzen na RS232.
Temat transmisji IR nie jest mi specjalnie bliski, niemniej rozumiem, że będziesz operował modulowanym (na poziomie powiedzmy 36-40 kHz) sygnałem RS232, demodulowanym bezpośrednio przez TSOP1736 (tak to chyba działa?). W związku z tym pierwsze pytanie - po co te zmiany częstotliwości, skoro ewentualną selekcję robotów i ich kanałów możesz umieścić gdzieś...
Skoro chesz przesyłać dane czyste dane binarne to chyba zrozumiałe, że odpada ci konstrikcja Bytematch z zastosowaniem dowolnego bajtu, który byłby końcem jakiejś tam ramki w związku z tym musisz je albo: 1. wysyłać czysto binarnie z kompa a w procku po prostu czekać na zakończenie transmisji - wprowadzając jakiś TimeOUT (ale to czasami mało eleganckie...
W jeden kanal CB wepchniesz max 9600bps (to chyba niejaki Kotielnikow udowodnil, ops przepraszam - Shannon i na razie nikt tego nie obalil), a CBecy powiesza cie na sznurkach od ich anten za zaklocanie, poza tym to zabronione (transmisja inna niz glosowa w tym pasmie). Jesli chodzi o serwisowanie to poprostu chcesz miec koniecznie dwa pudelka (bojka...
Witam serdecznie!! Jak obliczyć czas trwania pojedynczej ramki w transmisji szeregowej , przy założeniu : 1. bit startowy 2. 8 bitów danych 3. bit stopu i przy danej prędkości X Lub inaczej : jak obliczyć czas trwania pojedynczego bitu informacji przy prędkości X ( transmisja szeregowa ) Pozdrawiam
IO Ninja z nakładką ModBus Analyzer. Wprawdzie nie jest darmowy, ale ma kilkudniową wersję próbną i potrafi całkiem fajnie wykryć parametry transmisji i rozkodowywać złapane ramki.
Co ma znaczyć: "radiem leci RS485"? RS485 to interfejs fizyczny a nie danych. Ramka może mieć dowolną strukturę. Najczęściej taką jak RS232. Czyli nie musisz konwertować na RS485.
//pisze się drugiej:) Z tych hexów co zrzuciłeś to wynika, że nie ma końca transmisji. Ja nie rozumiem specjalnie tych dwóch znaków po FE 03...
Na 10m to nie kombinuj i daj po prostu max232 i zrób normalne RS232, a nie TTL. Dalsze polepszenie odporności na błędy to już tylko odpowiednia ramka danych i korekta programowa.
Ramki RS485 i RS232 są identyczne. Standardy te różnią się tylko sposobem transmisji (RS232 - niesymetryczny, RS485 - różnicowy), więc nie ma to od strony uC najmniejszego znaczenia który wykorzystujesz. Sprawę dopasowania napięć do danego standardy załatwia transceiver (np. MAX232). Pozdrawiam :)
ramka rs232 rs232 ramka transmisja rs232
schemat kostek radio renault megane sterowniki lenovo thinkpad mierniki indukcyjnosci
karcher kranzle karcher kranzle
Naprawa przycisku zasilania w Dell Latitude E6540 Szumy i trzaski w lewym kanale Sony TA-E2000ESD