-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!peer01.iad.highwinds-media.c
om!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.
com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-
b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "michal" <...@b...pl>
Newsgroups: pl.misc.elektronika
References: <5341b961$0$2228$65785112@news.neostrada.pl>
Subject: Re: Modbus, mierzenie odstępu między znakami i paczkami
Date: Mon, 7 Apr 2014 18:16:05 +0200
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512
X-RFC2646: Format=Flowed; Response
Lines: 39
Message-ID: <5342cf47$0$2163$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.10.91.55
X-Trace: 1396887367 unt-rea-a-02.news.neostrada.pl 2163 83.10.91.55:20465
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 2378
X-Received-Body-CRC: 3009057393
Xref: news-archive.icm.edu.pl pl.misc.elektronika:662624
[ ukryj 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
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=