Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Время передачи 1 байта USART

Непрочитано 27.03.2017, 23:06  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Время передачи 1 байта USART

Привет! Я сделал такую штуку. Принимаю байт по USART, записываю его в массив и обнуляю счётчик таймера. И так далее. И вот наступил момент когда последний байт передан (Но я как бы не знаю что он именно последний). Так вот. Таймер настроен таким образом, что если какое-то время нет передачи по usart, значит информация принята вся. Срабатывает прерывание и ставится флаг, что можно кромсать массив. Говорили тут, что время, за которое можно судить о том, что данные приняты - это если нет приёма в течении времени за которое принимается 3 байта. Я бы хотел максимально точно подобрать это время, в зависимости от скорости usart конечно. Как расчитать: сколько времени в секундах тратит usart, что бы передать 1 байт, если скорость 9600 бод?
Реклама:
supercelt вне форума  
Непрочитано 27.03.2017, 23:17  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Сообщение от supercelt Посмотреть сообщение
Как расчитать: сколько времени в секундах тратит usart, что бы передать 1 байт, если скорость 9600 бод?
Вы забыли о других параметрах передачи.

Сообщение от supercelt Посмотреть сообщение
Я бы хотел максимально точно подобрать это время
Смысл в максимальной точности, если
Сообщение от supercelt Посмотреть сообщение
Говорили тут, что...
критерий весьма расплывчатый и зависит много от чего?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 27.03.2017 в 23:21.
akegor вне форума  
Непрочитано 27.03.2017, 23:36  
_SayHello
Частый гость
 
Регистрация: 24.08.2015
Сообщений: 13
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
_SayHello на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Обычно к байту добавляется бит четности и например стоп биты. Берете 9600/(8 + n битов четности + m стоп битов) получаете количество байт в секунду. Если у вас, что то типа модбаса, там вроде 3.5 символа, а не байта. Т.е. ваш 3,5*( байт + оформление к нему).Вроде так
_SayHello вне форума  
Непрочитано 28.03.2017, 00:07  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Какойто бред. Все нормальные усройства в конце передаюи либо рн либо еще какойто признак и нафиг не упало ждать у моря погоды.
А еще у уарта есть флаг idle line то есть ваше действо с таймером реализовано аппаратно уже
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 28.03.2017, 09:16  
dgrishin
Почётный гражданин KAZUS.RUN
 
Регистрация: 12.02.2013
Адрес: На болотах
Сообщений: 1,164
Сказал спасибо: 46
Сказали Спасибо 315 раз(а) в 244 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Сообщение от supercelt Посмотреть сообщение
И вот наступил момент когда последний байт передан (Но я как бы не знаю что он именно последний).
А вот именно для этого умные люди написали стандарт и придумали дополнительные цепи для управления потоком данных - RTC, CTS, DTR, DSR.
Можно использовать RTC или DTR для определения конца передачи (завести на отдельную ножку)
dgrishin вне форума  
Непрочитано 28.03.2017, 10:38  
_SayHello
Частый гость
 
Регистрация: 24.08.2015
Сообщений: 13
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
_SayHello на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Сообщение от индюк Посмотреть сообщение
Какойто бред. Все нормальные усройства в конце передаюи либо рн либо еще какойто признак и нафиг не упало ждать у моря погоды.
А еще у уарта есть флаг idle line то есть ваше действо с таймером реализовано аппаратно уже
Ну тут вы не правы, разделение пакетов интервалом "тишины" достаточно популярный метод. Взять хотя бы протокол Modbus - достаточно известный в промышленности протокол. Я подозреваю что автор пилит что-то под него или подобное.
_SayHello вне форума  
Непрочитано 28.03.2017, 10:44  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Сообщение от _SayHello Посмотреть сообщение
разделение пакетов интервалом "тишины" достаточно популярный метод.
ок, не вопрос - включаем прерывание по флагу idle line
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 28.03.2017, 10:51  
_SayHello
Частый гость
 
Регистрация: 24.08.2015
Сообщений: 13
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
_SayHello на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

индюк, это как вариант, хотя я тоже делал с таймером, в f3 есть вообще железная реализация проверки длины Idle в длинах символов для протокола Modbus, только у меня как то не получилось ее завести
_SayHello вне форума  
Непрочитано 28.03.2017, 11:22  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,292
Сказал спасибо: 11,863
Сказали Спасибо 4,162 раз(а) в 3,180 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

А может стоит определится с терминологией изначально? Таки UART или USART? Они конечно местами похожи но и разница весьма существенна. А по написанному выше пока таки исключительно UART.
А дальше запрашиваемое ТС считается для одной единственной посылки из параметров, заданных при конфигурации. Считать что-то на основе нескольких переданных байт - примерно как определять погоду на Марсе по косвенным признакам на Земле.
Логику такой передачи надо менять - или по количеству переданных данных, или по признаку завершения в потоке данных, или опросом источника. При асинхронной работе время ну никак не поможет, если только оно опять же не является условием.
Пока в спецификации задачи слишком много пробелов в существенных параметрах для ответа.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 28.03.2017, 11:41  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Отсутствие передачи, imho, ненадежно. Например - передающее устройство сдохло/оторвалось. Тишина... Обрабатываем весь массив (который не принят).

Я бы сделал протокол - с маркером, контрольной суммой.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние 4х потоков USART insiderbik Микроконтроллеры, АЦП, память и т.д 109 28.03.2013 16:50
Как 4 байта, принятых по USART превратить в число формата long int Black Jack Микроконтроллеры, АЦП, память и т.д 2 06.06.2012 21:32
USART MEGA8 yuta_86 Микроконтроллеры, АЦП, память и т.д 23 12.02.2012 04:30
USART (PIC): как сделать низкий уровень на TX после посылки? mxsimus Микроконтроллеры, АЦП, память и т.д 2 27.03.2008 13:07
USART Tiny2313 avrastorguev Микроконтроллеры, АЦП, память и т.д 2 04.03.2006 02:59


Часовой пояс GMT +4, время: 06:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.