AVR, МС памяти и ПК

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: AVR, МС памяти и ПК

Сообщение ILYAUL »

Кто мешает по правилам арифметики делить побайтно?
Я думаю , что никто не мешает и главное быстро.

Код: Выделить всё

InitCRC8:
		movi	CRC8,0xFF
		ldi	temp1,0x31				// полином
		ret
;*						
;-						
CalcCRC8:
		eor	CRC8,temp
		ldi	count,8
CRC_Loop:
		lsl	CRC8
		brcc	crc_Skip
		eor	CRC8,temp1
crc_Skip:
		dec	count
		brne	CRC_Loop
		ret
;*						
;-	
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: AVR, МС памяти и ПК

Сообщение Ser60 »

Если нужно быстро вычислять CRC, почему-бы не применить МК со встроенным CRC модулем?
Реклама
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

Re: AVR, МС памяти и ПК

Сообщение slavokhire5 »

Ser60 писал(а):Если нужно быстро вычислять CRC, почему-бы не применить МК со встроенным CRC модулем?
незнание об их существовании :) я даже не представляю, как это гуглить. поискал в интернетах, везде предложена только программная реализация. в каких дешевых контроллерах есть сие чудо (я работал только с AVR :?, в ближайшее время хочу попробовать MSP)
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: AVR, МС памяти и ПК

Сообщение shads »

Кстати, хоть я и не съел собаки по данной теме, но все равно, не советовал бы, применять UART в радио передаче. Тут нужны более стойкие протоколы, как например манчестер (фазовая модуляция). В этом протоколе синхронизируется каждый бит, легче поймать заголовок передачи (если эфир зашумлен), и еще много плюсов по сравнению с UART.

Организовать этот протокол нужно будет конечно программно.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: AVR, МС памяти и ПК

Сообщение Ser60 »

slavokhire5 писал(а): в ближайшее время хочу попробовать MSP
Очень правильный подход. После этого к AVR Вы не вернетесь никогда. Аппаратный CRC модуль имеется, например, в MSP30F5xxx микроконтроллерах, или Силабовских C801Fxxx. В обоих, конечно, и аппаратный UART имеется, и не один.
Реклама
O_l_e_g
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вт дек 27, 2011 01:13:21

Re: AVR, МС памяти и ПК

Сообщение O_l_e_g »

CRC кодирование обладает как минимум 2 изюминками. Во первых Код позволяет полностью заменить весь пакет на любой произвольный, и если правильно подобрать 2 последних (в зависимости от длинны полинома) байта, ни один декодер никогда не распознает что была подмена. Во вторых я не слышал чтобы эти коды использовались для испраления ошибок.
Если посмотреть на рисунок то видно что информационная последовательность помещается в трехмерный массив, каждая ячейка которого может хранить 1 бит. Красные ячейки -- информационные, зеленые дополнение до четности строки(столбца). Последний слой (не показан) содержит только биты четности для однотипных ячеек всех слоев. При помещении в таблицу элементы располагаются так чтобы быстрее всего изменялся первый индекс массива, а медленнее всего -- последний индекс. При извлечении данных для передачи данные извлекаются таким образом чтобы быстрее всего изменялся самый последний индекс и медленнее всего самый первый. Разумеется в декодере биты в массив помещаются в обратном порядке.
Данный код не только может исправить ошибки при передаче, он позволяет восстановить данные даже в случае пропадания(повреждения) нескольких битов идущих подряд (при 8 слоях) данный код легко справиться с восстановлением целого байта который был потерян
И хотя размер посылки увеличивается (при размерности 8.8.8) коэф использования 0,67. Но представьте если сбои бита идут чаще чем время передачи вашей посылки. Замирания, отражения, таксисты со своими рациями, мед кабинеты ... В этом случае CRC код просто приведет к тому что связь БУДЕТ ПОТЕРЯНА. И в самом деле каждая посылка будет содержать 1..2 ошибки и вы никогда не сможете успешно передать ни один пакет. Борьба с этим только в использовании кодов позволяющих исправлять ошибки. А тот пример который привел я относиться к классу турбо кодирования и позволяет бороться с идущими подряд ошибками, что очень актуально при условиях повышенного уровня помех.
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»