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

 
 
> Алгоритм CRC-32
maksya
сообщение Jan 25 2005, 17:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-08-04
Из: Ленинград
Пользователь №: 562



Столкнулся с проблемой - необходимо реализовать алгоритм CRC-32. Поиски в интернете описания самого алгоритма дали очень мало. В основном попадаются тексты программ. В чужом коде я еще с первого курса разбираться не любил. Да еще, насколько я понял, единого алгоритма (а тем более его реализации не существует). Они (алгоритмы), вроде как различаются по начальным значениям, по тому сколько бит сдвигается на каждом шаге и т.д.

Суть формирования контрольной суммы понятна - деление входной посылки на фиксированный полином, остаткаток от деления и есть CRC. Непонятно отчего возникают различия. Например, при использовании табличного метода подсчета CRC, непонятно как влияет начальное значение, заносимое в регистр.

Единственный толковый источник, обнаруженный мной - это "Элементарное руководство по CRC алгоритмам обнаружения ошибок" Ross N. Williams (в переводе на русский). Файл на всякий случай прикладываю к сообщению, вдруг кому пригодиться. Но там рассматриваются общие вопросы. Мне же необходимо выработать точный алгоритм. И реализовать его на VHDL.

Если кто в этой теме разбирается - просьба откликнуться.
Прикрепленные файлы
Прикрепленный файл  crcguide.pdf ( 199.59 килобайт ) Кол-во скачиваний: 472
 


--------------------
Лень - это не врожденное чувство русского человека, а средство борьбы с неуемной, но бестолковой энергией начальника.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Esquire
сообщение Feb 19 2005, 09:52
Сообщение #2


Эсквайр
*****

Группа: Почетный участник
Сообщений: 1 013
Регистрация: 19-06-04
Из: • ℮lectronﭑχ •
Пользователь №: 62



basileus
Есть ли литература, в которой описан указанный метод расчета CRC32?


--------------------
Кто ищет, тот всегда найдет
Go to the top of the page
 
+Quote Post
evgeniy_s
сообщение Dec 4 2005, 14:03
Сообщение #3


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

Группа: Свой
Сообщений: 75
Регистрация: 3-09-05
Из: Россия, Москва
Пользователь №: 8 195



Цитата(Esquire @ Feb 19 2005, 12:52) *
Есть ли литература, в которой описан указанный метод расчета CRC32?


Посмотри этот материал и список литературы в нём - там достаточно хорошо объясняется принцип вычисления CRC-кода и дан конкретный пример:
Прикрепленный файл  crcW2003.rar ( 52.06 килобайт ) Кол-во скачиваний: 791

Что касается начальной инициализации, то единицами регистр инициализируется для того, чтобы первые нули сообщения были охвачены CRC-кодом. Если этого не сделать, то алгоритм начнёт работать только после появления первой единицы - вне зависимости от реализации. Поэтому во всех спецификациях (например, RapidIO, PCI Express) требуют начальной инициализации регистров единицами.
В качестве литературы по циклическим избыточным кодам, а также по формированию полиномов рекомендую следующие:
1. Никитин Г.И. Помехоустойчивые циклические коды : Учеб. пособие/ Г.И.Никитин,С.С.Поддубный. -СПб., 1998.-71 с. :ил.
2. Евдонин А.М. Циклическое кодирование : Учеб. пособие/ А.М.Евдонин. -Челябинск: Изд-во ЮУрГУ, 1997.-59 с. :ил.
3. Когновицкий О.С. Основы циклических кодов : Учеб. пособие 2305/ О.С.Когновицкий. -Л., 1990.-64 с.
4. Смирнов А.С. Основы теории кодирования. Линейные групповые и циклические коды : Учеб.пособие/ А.С.Смирнов. -СПб, 1998.-148 с.
Когда-то на заре появления RapidIO мне пришлось сделать для физического уровня CRC-кодер/декодер по приведённой в прилагаемом файле методике. После перехода на PCI Express по этой же методике (чуть усовершенствовав реализацию) сделал новый CRC-кодер/декодер - на Xilinx'е вот уже несколько лет работает безукоризненно (время прохождения конвейера 1 такт, частота 125 МГц).


--------------------
"О наслажденье ходить по краю.
Замрите, ангелы, смотрите: я играю.
Разбор грехов моих оставьте до поры,
Вы оцените красоту игры!"
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- maksya   Алгоритм CRC-32   Jan 25 2005, 17:16
- - makc   Думаю это поможет http://www.easics.be/webtools/cr...   Jan 25 2005, 17:30
|- - maksya   Цитата(makc @ Jan 25 2005, 20:30)Думаю это по...   Jan 26 2005, 10:06
- - jojo   Кое-что положил в /upload/CODE/crclib_toolbox   Jan 25 2005, 18:52
- - aal   Вот кусочек для CRC 16. Может аналогично и CRC 32 ...   Jan 26 2005, 03:56
- - Esquire   ALL ЦитатаМне же необходимо выработать точный алг...   Jan 26 2005, 08:35
- - makc   Идея проста до гениальности - берется модель сдвиг...   Jan 26 2005, 11:46
- - aal   2 Esquire При схемном вводе этот алгоритм можно р...   Jan 26 2005, 12:10
- - Esquire   aal Все зависит от конкретных требований проекта: ...   Jan 26 2005, 17:40
|- - CeDeX   Тут у меня файлец валялся на винте. Мож кому сгоди...   Feb 9 2005, 04:32
- - derun   «A Painless Guide to CRC Error Detection Algorithm...   Feb 9 2005, 07:50
- - basileus   Может, моё изложение на пальцах тебе поможет реали...   Feb 18 2005, 15:53
- - Porychik Kize   Посмотри на Xilinx.com - XAPP209. К нему прилагает...   Mar 16 2005, 14:21
- - Z0Rk   Дабы не начинать новый топик, позвольте мне задать...   Apr 7 2005, 19:19
|- - Fast   Цитата(Z0Rk @ Apr 7 2005, 22:19)Как формирова...   Apr 8 2005, 10:15
- - Z0Rk   То есть прямая задачка формирования полинома по за...   Apr 8 2005, 14:59
|- - Fast   Цитата(Z0Rk @ Apr 8 2005, 17:59)То есть пряма...   Apr 11 2005, 07:16
- - Anton_org   Вот замечательная программка, правда под Сол...   Apr 15 2005, 09:29
- - basileus   Совершенно верно- поля Галуа. Я даже где-то (уж ...   May 17 2005, 10:45
- - Z0Rk   2basileus Каких полиномов? формирующих для CRC32?...   May 17 2005, 16:16


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

 


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


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