реклама на сайте
подробности

 
 
> UART STM32F100Rxx и определение окончание приема "пакета" данных
alexdos
сообщение Mar 12 2013, 08:14
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



По какому признаку можно определить что "пакет" данных в буфер по прерыванию принят. Данные идут от GPS приёмника, их количество не фиксировано. Тоесть может быть к примеру 146 байт, а может быть 152 байта.
Пробую через (USART_GetITStatus(USART2,USART_IT_IDLE) != RESET), но неверно определяет окончание приёма, данные не приняты все, а мне уже симафорит что принято.
Или по старинке, использовать таймер для определения окончания приёма?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
richie
сообщение Mar 12 2013, 18:10
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261



А это зависит от самих данных, соглашения об их организации.
Это в народе кличут "протоколом обмена", в котором строго оговаривается разделение данных.
Вот Вам и объясняют, что в NMEA имеет строго определенный "маркер начала" и "маркер конца".

P.S. То что разделение по времени работает на сотнях устройств c PICами, не является доказательством
правильной реализации. Есть ли в том, PIcовском, драйвере диагностика того сколько было "ошибочных" пакетов?
В чем заключается "ошибочность" пакета?
Go to the top of the page
 
+Quote Post
alexdos
сообщение Mar 12 2013, 18:31
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



Цитата(richie @ Mar 12 2013, 22:10) *
P.S. То что разделение по времени работает на сотнях устройств c PICами, не является доказательством
правильной реализации. Есть ли в том, PIcовском, драйвере диагностика того сколько было "ошибочных" пакетов?
В чем заключается "ошибочность" пакета?


СRC пакетов проверяется, в случае несовпадения CRC все NMEA по этой точке бракуются. Длительные тесты с частотой точек раз в 1 сек, пропусков не давали , можно делать вывод что все в порядке.
Go to the top of the page
 
+Quote Post
richie
сообщение Mar 14 2013, 05:35
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261



Цитата(alexdos @ Mar 12 2013, 22:31) *
СRC пакетов проверяется, в случае несовпадения CRC все NMEA по этой точке бракуются. Длительные тесты с частотой точек раз в 1 сек, пропусков не давали , можно делать вывод что все в порядке.

Мои наводящие вопросы про диагностику ошибок заключаются в том, чтобы вы задумались об автомате разбора пакетов.

P.S. Если совсем по-старинке, то есть четкий признак того, что всё передано, но это только в RS-232C.
Для начала можно почитать тут: http://www.gaw.ru/html.cgi/txt/interface/rs232/index.htm.
Только, думаю что у вашего девайса нет таких сигналов, у передатчика, скорее всего, тоже нет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - Golikov A.   Думаю все тянется со старого пика, который работае...   Mar 12 2013, 16:57
|- - alexdos   Цитата(Golikov A. @ Mar 12 2013, 20:57) П...   Mar 12 2013, 17:38
|- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 23:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016