Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 2 sie 2026, o 02:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 13 wrz 2014, o 18:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2013
Posty: 38
Lokalizacja: Warszawa
Pomógł: 0

Z pczatku sprawa wydawała mi sie prosta. Potem zmieniłem zdanie.

Powiedzmy że mamy nieznane urządzenie z transmisją szeregową i trzeba określić parametry tej trnsmisji. Szybkość, ilośc bitów, itd.
W grę nie wchodzi wysyłanie żadnych ramek testowych ponieważ nie wiemy nic o "pudełku " które badamy.
Podłączam mój skaner i on mi określa parametry transmisji.
Jak to zrobić?

_________________
auto gaz, serwis instalacji LPG, Instalacje LPG



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2014, o 18:30 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2607
Pomógł: 129

To zalezy od rodzaju interfejsu. Jesli to rs232 to mozesz badac dlugosc najkrótszego impulsu - bedziesz mial rozmiar jednego bitu. Najlatwiej popatrzec sobie na to na oscyloskopie, zeby zrozumiec. Co do reszty to moze byc problem - trzeba próbować oglądać to np. na Putty.
Po drugie niektore urzadzenia zaczynaja nadawac dopiero po otrzymaniu odpowiedniej sekwencji.

Sent from my mobile.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2014, o 18:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

Na AVR pewnie się da ale nie próbowałem. uC PIC mają taką opcję sprzętowo.
Tak czy inaczej po wpisaniu w Google 'avr auto baud' znalazło kilka ciekawych rozwiązań na AVR w C.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2014, o 19:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

afrikanerhart napisał(a):
Z pczatku sprawa wydawała mi sie prosta. Potem zmieniłem zdanie.
(...)Powiedzmy że mamy nieznane urządzenie z transmisją szeregową i trzeba określić parametry tej trnsmisji. (...)
Jak to zrobić?


1. Robisz to na minimalnym okablowaniu, czyli w grę wchodzą linie sygnałowe: TX, RX + GND (tyle powinno wystarczyć) -chyba że z dokumentacji urządzenia końcowego wiesz, że potrzebuje ono do transmisji więcej niż te 3 linie sygnałowe. Zakładamy jednak, że wystarczą te 3 linie.

2. Cyklicznie zmieniając dane struktury uart (właśnie w tej strukturze zapisana jest ilość bitów danych, stopu, etc.) i ściśle przestrzegając czasów na wysłanie i odebranie wiadomości W PĘTLI próbujesz wysłać i odebrać dane ustalenia transmisji pomiędzy twoim terminalem (PC, lub MCU AVR -czyli skanerem) a urządzeniem końcowym.

3. Zaczynaj od niższych szybkości transferu danych i od transmisji bez dodatkowych potwierdzeń, a czas na odbiór danych urządzenia zwiększaj (do określonej ustalonej wartości, nie w nieskończoność) w trakcie kolejnych zapytań.

4. Do testu używaj BEZPIECZNYCH rozkazów danych, tzn. mam na myśli, że jeśli testujesz jakąś frezarkę, lub tokarkę cnc to nie wysyłaj rozkazu np. uruchomienia obrotów wrzeciona - zresztą jeśli już do tego miałbyś się zabierać, to weź po prostu pod uwagę podstawy BHP.

To tyle ile z mojej strony mogę pomóc. Reszta to dokumentacja protokołu RS-232 i książka Pana Mirka, w której akurat transmisja UART jest wyjątkowo ładnie i konkretnie opisana. Ze swojej strony polecić mogę jeszcze "Sztukę Elektroniki" aa:Horowitz'a i Hill'a Tom.2 str:271-281 -tam z kolei masz bardziej obrazowo pod kątem samych połączeń sygnałowych, protokołu transmisji rs-232 i OGÓLNEJ elektroniki (ale nie tej do procesorków avr). Do AVR szczerze uważam, że książka Pana Mirka jest najlepsza (Bluebook).

Pozdrawiam! Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2014, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2013
Posty: 38
Lokalizacja: Warszawa
Pomógł: 0

Transmisja jest najprostsza tylko Tx i Rx.

Musze polegać tylko na odbieraniu ramki danych i na tej podstawie ustaleniu wszystkich parametrów. Mam przed sobą "czarne pudełko" i wszystko muszę ustalić. Co mi da nadawanie do "pudełka" skoro nawet jak trafię na właściwe parametry łącza to i tak "pudełko" może odpowiedzieć dopiero jak zauważy właściwą ramkę/sekwencję danych. A na inne sygnały może zwyczajnie nie reagować.

_________________
auto gaz, serwis instalacji LPG, Instalacje LPG



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2014, o 09:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 gru 2013
Posty: 43
Lokalizacja: Toruń
Pomógł: 2

afrikanerhart napisał(a):
Transmisja jest najprostsza tylko Tx i Rx.

Musze polegać tylko na odbieraniu ramki danych i na tej podstawie ustaleniu wszystkich parametrów. Mam przed sobą "czarne pudełko" i wszystko muszę ustalić. Co mi da nadawanie do "pudełka" skoro nawet jak trafię na właściwe parametry łącza to i tak "pudełko" może odpowiedzieć dopiero jak zauważy właściwą ramkę/sekwencję danych. A na inne sygnały może zwyczajnie nie reagować.


Słabo sprecyzowałeś czemu to ma służyć..., mi to zapachniało "samochodówką", więc:

Ad. green

Nie tak do końca, bo jeśli wziąć pod uwagę np "K-line" (ISO 9141 i pochodne) to moduły śpią do czasu pobudki, więc trzeba je obudzić > jakiś init, np przewidziany normą baud init 5bit/s i 0x55 lub 0xAA, albo fast init....; albo potrząśnięcie za nogawki na L-line (rzadziej) potem może być "synchro" na 9.6kbit/s (w odpowiedzi bajt, bajty - dane parametrów do komunikacji dostajesz na talerzu - więc zależy do czego ma Ci to służyć), a dane jeszcze na innej częst. (np 10.4kbit/s), by programowanie odbywało się po baud np 41.6kbit/s, albo wiele innych prędkości... (jeśli chcesz dobrać się właśnie do samochodówki to googluj: PassThru_API-1.pdf).

/*
Coś jakbyś szarpał gościa za rękaw (wg jakiejś normy, np 0x55 > baudrate 5bit/s), a on (również wg normy) odpowiada po baudrate 9.6kbit/s bajtem (który również wg normy) mówi Ci jak szybko będziecie gadać, jakie długie będą zdania i jakich znaków interpunkcji będziecie używać; Ty się do tego stosujesz i "biadolicie"...
*/
Jeśli jednak to jakieś zadanie do wykonania, a nie Twój zamysł "na coś" i "puszka" coś stale nadaje to do sprawdzenia wystarczy samo Rx i GND. Wszystko koledzy ujęli powyżej. Interesują Cię (jak to kolega powyżej napisał "odległości") czasy...
,ALE ponieważ napisałeś o całej ramce danych.... domniemam, że chcesz nie tylko rozpoznać sposób przesyłania danych (poszczególnych bitów/bajtów), ale cały protokół transmisji, a tych jest mnóstwo....

Ad. blue
...., a jeśli źle trafisz to może się nawet wykrzaczyć :D

Tak mi przyszło do głowy, że możesz sobie sprawić jakiś prosty analizator stanów logicznych, choćby za 30 złociszy ale te mają tylko odbiór, w zamian rozróżniają wiele protokółów lub sam możesz sobie stworzyć jakiś plugin.
Pudełka, którymi możesz coś dodatkowo nadawać są sporo droższe i "fizycznie sprecyzowane" na jeden do kilku protokołów....
Zaś te, które zrobią większość za Cb są drogie - rząd wielkości kilku tys E i znacznie górę np Vector, a ich obsługa i nauka softu to szmat czasu.

PS.
Proszę mnie nie rugać, bo ja początkujący i dłuuuugo się zastanawiałem, czy w ogóle coś bazgrolić :D

_________________
Skajpaj: Zbyszek_1976



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2014, o 23:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2013
Posty: 38
Lokalizacja: Warszawa
Pomógł: 0

Projekt robię dla siebie do domu, a wziąłem się za niego bo w pierwszej chwili wydawało mi się że to prościzna. Po zastanowieniu okazało sie że aż takie proste to nie jest.

Zostawmy protokoły i ramki , mam czarne pudełko i musze ustalić parametry transmisji.

A do czego ma mi to służyć? Ot, "przedłużacz" na Bluetooth do kompa.
Lubię budoawć projekty któe mają praktyczne zastosowanie a nie kolejny zegar elektroniczny czy mrygałkę na diodach.

_________________
auto gaz, serwis instalacji LPG, Instalacje LPG



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2014, o 17:03 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

afrikanerhart napisał(a):
Lubię budoawć projekty któe mają praktyczne zastosowanie a nie kolejny zegar elektroniczny czy mrygałkę na diodach.


chwali się takie podejście , niemniej pomijając takie bzdury jak zegarek czy mrygałaka diodowa robisz sam sobie krzywdę , bo bez tych "ambitnych projektów , nigdy do końca nie zrozumiesz zasady działania podstawowych rzeczy w mikrokontrolerach , jak choćby obsługe pinów GPIO, czy w przypadku zegarka multiplexingu ... no ale twoja broszka ...

Co do projektu jest do wykonania i stosunkowo prosto w zasadzie nie trzeba się wcale namęczyć , pomijając auto detect w PIC ....można też programowo zrobić na AVR ... tymczasem nie napiszę jak ... (gwoli złośliwości - czerpiąc z tego jawną przyjemność)

nie mniej mała podpowiedź ci się należy


w celu wykonania tzw auto baud na atmedze najprościej jest ustalić np zakres szybkości:
-- powiedzmy 4800 do 57600 Baud , ale w ustalonym formacie zwykle i tak jest stosowany 8N1 co ułatwia sprawę

-- jak to się robi ?? to proste:P

Sprawdzasz błędy transmisji i ustawiasz przerwanie by się wykonało po błedzie. Po 20 błędach , przechodzisz do następnej prędkości transmisji
i zerujesz licznik wykrywania. To jedna z wielu możliwości .... jednak mało przydatna :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2014, o 21:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

SunRiver napisał(a):
(...)....można też programowo zrobić na AVR ... tymczasem nie napiszę jak ... (gwoli złośliwości - czerpiąc z tego jawną przyjemność) (...)
nie mniej mała podpowiedź ci się należy
;)
SunRiver napisał(a):
w celu wykonania tzw auto baud na atmedze (...)
-- powiedzmy 4800 do 57600 Baud , ale w ustalonym formacie zwykle i tak jest stosowany 8N1 co ułatwia sprawę
:D
SunRiver, jesteś zbyt łaskawy ;) - Kolega afrikanerhart wyraźnie zaznaczył:
afrikanerhart napisał(a):
(...) Zostawmy protokoły i ramki , mam czarne pudełko i musze ustalić parametry transmisji.

Osobiście nie wiem jak pomóc Koledze afrikanerhart... Hmm.. Może dobra by była metoda inż.Macajewa? ;)

Pozdrawiam! Jarek

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO