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

 
 
> 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
Golikov A.
сообщение Mar 14 2013, 06:05
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(richie @ Mar 14 2013, 09:35) *
P.S. Если совсем по-старинке, то есть четкий признак того, что всё передано, но это только в RS-232C.


там признак что есть данные для передачи, и признак что есть место для приема. Но строго говоря наличие или отсутствие данных для передачи не означает что все передано или нет. Все же формат определяется протоколом на уровне выше чем определен UARTом или RS232/422/485.

Цитата(demiurg_spb @ Mar 14 2013, 09:48) *
разговор ни о чём...

в целом да, просто все нашли возможность потоптать, и увлеклись этим процессом...
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
|- - 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 Текстовая версия Сейчас: 11th August 2025 - 23:43
Рейтинг@Mail.ru


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