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

 
 
> Контроль правильности передачи по USART, Подскажите как проверить надежность
Serega Doc
сообщение Jan 9 2006, 10:25
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



Пересылка данных между мастером и слейвом (На 64 MEGE) - мультипроцессорный обмен
В основном long числа
Как проверить правильность передачи.
1 вариант (сложный)
Можно использовать встроенний контрольчетности
Но тогда если не правильная посылка то необходимо повторять только один байт и еще и делать анализ какой байт из 4 принят.
2 вариант (IMHO проще 1-го)
Может быть лучше пятым байтом досылать еще и по XOR сложенные 4 байта long числа
И в следующем сеансе связи просить повтор того что передалось не правильно
Думал 5 байтом применить CRC8 контроль но это много ресурсов и времени для расчетов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Gennadiy_
сообщение Jan 17 2006, 14:00
Сообщение #2


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

Группа: Свой
Сообщений: 79
Регистрация: 13-01-06
Из: Москва
Пользователь №: 13 133



Позаимствуй протокол из стандарта Irda там используется PPP и CRC16, только вместо таблицы
Перед вызовом таблицы
eor CRC_L,Ir_byte_buf ;считаем FCS

таблица может быть вызвана перед выходом из обработчика,
если используется полный дуплекс я делал две подпрограммы для экономии времени.



CRC_V_table:
mov temp_a,CRC_L ; 1
swap temp_a ; 1
andi temp_a,$F0 ; 1
eor CRC_L,temp_a ; 1 FCS_L = FCS_L XOR (FCS_L << 4)

mov temp_a,CRC_L ; 1
swap temp_a ; 1
andi temp_a,$0F ; 1
lsr temp_a ; 1
eor temp_a,CRC_L ; 1 temp_a = FCS_L XOR (FCS_L >> 5)

lsl CRC_L ; 1
lsl CRC_L ; 1
lsl CRC_L ; 1
eor CRC_L,CRC_H ; 1 FCS_L = (FCS_L << 3) XOR FCS_H

mov CRC_H,temp_a ; 1 FCS_H = temp_a

swap temp_a ; 1
andi temp_a,$0F ; 1
eor CRC_L,temp_a ; 1 FCS_L = FCS_L XOR (temp_a >> 4)
; /17 CLOCK
ret ;/21 CLOCK

www.scenix.com
Application Note 16
February 15, 1999
SX IrDA Virtual Peripheral
Implementation

рекомендую,ссылки нет, есть документ:
Ross N. Williams
Элементарное руководство
по CRCалгоритмам
обнаружения ошибок
Все, что Вы хотели бы знать о CRCалгоритмах, но боялись спросить,
опасаясь, что ошибки Ваших знаний могут быть обнаружены
A painless guide to CRC error detection algorithms
Ross N. Williams
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Serega Doc   Контроль правильности передачи по USART   Jan 9 2006, 10:25
- - Vic1   Основной критерий выбора - какой? И ограничения вр...   Jan 9 2006, 10:47
- - &-rey   Цитата(Serega Doc @ Jan 9 2006, 14:25) Ду...   Jan 9 2006, 11:11
- - Serega Doc   Основной критерий это как можно меньше слать байт ...   Jan 9 2006, 11:12
|- - vm1   Цитата(Serega Doc @ Jan 9 2006, 14:12) Ос...   Jan 17 2006, 17:31
- - Petka   Понимаю, что вам хочется по-надёжнее, но задайтесь...   Jan 9 2006, 11:37
- - Serega Doc   Насколько надежно будут пересылатся данные это воп...   Jan 9 2006, 12:29
|- - Petka   Цитата(Serega Doc @ Jan 9 2006, 15:29) Во...   Jan 9 2006, 13:18
- - Volodymyr   Возможно использовать помехозащищённые коды. Единс...   Jan 9 2006, 13:00
- - *SERG   может эхо использовать   Jan 9 2006, 13:56
|- - defunct   Цитата(*SERG @ Jan 9 2006, 15:56) может э...   Jan 9 2006, 16:01
- - Laptop   Для контроля правильности посылки вполне хватит CR...   Jan 9 2006, 19:12
- - haker_fox   2Serega Doc: может Вам это подойдет http://www.spe...   Jan 10 2006, 01:41


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

 


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


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