Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 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
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
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
Адрес: мурмурляндия
Сообщений: 10,416
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Время передачи 1 байта USART

Какойто бред. Все нормальные усройства в конце передаюи либо рн либо еще какойто признак и нафиг не упало ждать у моря погоды.
А еще у уарта есть флаг idle line то есть ваше действо с таймером реализовано аппаратно уже
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 28.03.2017, 09:16  
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,016
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
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
Адрес: мурмурляндия
Сообщений: 10,416
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
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,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
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, время: 10:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot