-
Data: 2014-04-07 18:16:05
Temat: Re: Modbus, mierzenie odstępu między znakami i paczkami
Od: "michal" <...@b...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Robbo" <n...@g...com> napisał w wiadomości
news:5341b961$0$2228$65785112@news.neostrada.pl...
> Witam uprzejmie,
>
> Tworzę bibliotekę Modbus/RTU w języku C, łącze szeregowe, slave, która
> będzie działać na mikrokontrolerze ATmega. Korzystam ze sprzętowego
> USART-a w ATmega. Zgodnie ze standardem Modbus dla łącza szeregowego,
> odstęp między znakami w pojedynczej paczce nie może być większy niż 1,5 *
> czas_przesyłania_pojedynczego_znaku. Natomiast odstęp między paczkami
> powinien być większy niż 3,5 * czas_przesyłania_pojedynczego_znaku. Jest
> to pokazane na stronie nr 13 tego dokumentu:
> http://modbus.org/docs/Modbus_over_serial_line_V1_02
.pdf
> Przygotowałem ilustrację graficzną:
> http://s11.postimg.org/43qi83etf/Modbus.png
>
> Pozdrawiam,
> Robbo
czesc.
w mojej opinii (niekoniecznie prawidlowej) najprosciej zrobić to za
pomocą timera uruchamianego właśnie w obsłudze SIG_UART_RECEIVE
uruchamiasz timer i kolejne przerwanie SIG_UART_RECEIVE kasuje timer
a jak nie zdąży to w przerwaniu timera musisz ocenić czy błąd transmisji czy
koniec ramki przy czym ja zrobiłbym tylko warunek na koniec ramki (by nie
mieć
kłopotów z tym że komuś uart/(program właściwie) w drugim urządzeniu nie
wyrabia - gdy transmisja błędna to i tak wyjdzie za pomocą crc - format
ramki jest dość sztywny) tym ze przeranie jest na końcu a nie na początku
znaku
przejmowałbym się najmniej, uart jak zacznie odbierać to musi odebrać do
konca.
pozdrawiam.
michal
Następne wpisy z tego wątku
- 09.04.14 09:50 John Smith
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=