|
UART STM32F100Rxx и определение окончание приема "пакета" данных |
|
|
|
 |
Ответов
|
Mar 12 2013, 16:57
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Думаю все тянется со старого пика, который работает без нареканий.
у вас есть определенное количество действий которое надо совершить с символами. Это занимает сколько-то тактов процессора. И это будет всегда занимать столько тактов (с точностью до оптимизации) не важно как вы будете их обрабатывать, сначала все сложите, а потом проверите, или будете складывать попутно проверяя.
Я так понимаю у вас есть функция монопольного парсинга строк, эта функция работает долго и вызывать ее каждый символ вы не можете. А переписать ее чтобы она был легкой и работала в несколько этапов параллельно вы не хотите.
Тогда вам надо самим определить критерий прихода всего пакета (его нет в описании протокола и остается только придумать), и реализовать. У уарта есть флаги что начался прием, и прием закончен. Можете мерить паузу между ними. Но будет ли это все дальше работать без нареканий никто вам не скажет...
П.С, Если уж быть совсем взрослыми мальчиками, то я бы подключил ДМА контроллер, который бы пихал уарт символы в буфер заведомо большей длины, так процессор вообще не тратит ресурсов на сбор сообщения. Проблема лишь в критерии когда проверять буфер...
|
|
|
|
|
Mar 12 2013, 17:38
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(Golikov A. @ Mar 12 2013, 20:57)  П.С, Если уж быть совсем взрослыми мальчиками, то я бы подключил ДМА контроллер, который бы пихал уарт символы в буфер заведомо большей длины, так процессор вообще не тратит ресурсов на сбор сообщения. Проблема лишь в критерии когда проверять буфер... Ну так что я в прерывании складываю, что ДМА заставлю. Упор опять же в одно "критерии когда проверять буфер". В общем тенденции я понял. И понял главное, в UART надёжного механизма определения того что данные прекратились приходить нет.
|
|
|
|
Сообщений в этой теме
alexdos UART STM32F100Rxx и определение окончание приема "пакета" данных Mar 12 2013, 08:14 uriy ЦитатаТоесть может быть к примеру 146 байт, а може... Mar 12 2013, 08:39 alexdos "NMEA пакеты заканчиваются символом переноса ... Mar 12 2013, 09:36  KnightIgor Цитата(alexdos @ Mar 12 2013, 10:36) Knig... Mar 12 2013, 13:12 KnightIgor Цитата(alexdos @ Mar 12 2013, 09:14) По к... Mar 12 2013, 08:50 drum1987 вы когда байт складываете в буфер попутно проверяй... Mar 12 2013, 09:48 alexdos Цитата(drum1987 @ Mar 12 2013, 12:48) вы ... Mar 12 2013, 10:06  mempfis_ Цитата(alexdos @ Mar 12 2013, 13:06) Я уж... Mar 12 2013, 10:26  Сергей Борщ QUOTE (alexdos @ Mar 12 2013, 12:06) Я уж... Mar 12 2013, 10:44   alexdos Сергей Борщ , спасибо за понятный ответ.
Теперь... Mar 12 2013, 13:49    Сергей Борщ QUOTE (alexdos @ Mar 12 2013, 15:49) Тепе... Mar 12 2013, 14:05    KnightIgor Цитата(alexdos @ Mar 12 2013, 14:49) знаю... Mar 12 2013, 14:07 richie А это зависит от самих данных, соглашения об их ор... Mar 12 2013, 18:10 alexdos Цитата(richie @ Mar 12 2013, 22:10) P.S. ... Mar 12 2013, 18:31  richie Цитата(alexdos @ Mar 12 2013, 22:31) СRC ... Mar 14 2013, 05:35   demiurg_spb разговор ни о чём... Mar 14 2013, 05:48   Golikov A. Цитата(richie @ Mar 14 2013, 09:35) P.S. ... Mar 14 2013, 06:05    alexdos Наверное я не так изначально поставил вопрос. Но т... Mar 14 2013, 08:38 Golikov A. можно делать выводы что вы их не нашли.
Я больше ... Mar 12 2013, 19:55 DmitryM Цитата(Golikov A. @ Mar 12 2013, 23:55) м... Mar 13 2013, 04:35 Golikov A. но только потому что на каждое сообщение должен бы... Mar 13 2013, 14:57 DmitryM Цитата(Golikov A. @ Mar 13 2013, 18:57) н... Mar 13 2013, 15:48 Golikov A. в этом и фишка, что если устройство ответит то мож... Mar 13 2013, 16:56 alexdos Цитата(Golikov A. @ Mar 13 2013, 20:56) П... Mar 13 2013, 20:29  _Артём_ Цитата(alexdos @ Mar 13 2013, 22:29) Да г... Mar 13 2013, 21:11 vlad_new ЦитатаСпециального механизма отслеживания пауз в U... Mar 13 2013, 17:02 Golikov A. Не тут что-то не так.
Любой протокол на базе УАРТ... Mar 14 2013, 03:27 Golikov A. Ну хотелось бы разделить лавры с другими участника... Mar 14 2013, 15:28 alexdos Цитата(Golikov A. @ Mar 14 2013, 19:28) Н... Mar 14 2013, 18:48 Golikov A. весьма познавательно, спасибо. Надо будет где нибу... Mar 14 2013, 18:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|