57. CRC алгоритм (Урок 48. Теория)

Поделиться
HTML-код
  • Опубликовано: 17 янв 2016
  • CRC алгоритм рассмотрен в уроке 48. Рассказано, что такое CRC и что такое контрольная сумма CRC. Для каких целей может применяться CRC алгоритм. Рассказано что такое полиномиальная функция CRC или порождающий многочлен. Показан пример вычисления CRC из некоторых данных, а также показан способ определения ошибки данных с использованием CRC алгоритма.
    Спасибо за Like и за Подписку на мой канал.
    Получить информацию о канале можно и со страницы в вконтакте! Страница в вконтакте: mychippic

Комментарии • 60

  • @sofiatarasova7517
    @sofiatarasova7517 4 года назад +12

    Большое спасибо, чуть в обморок не упала когда увидела ту страницу на википедии со всеми теми формулами и вариациями, а так хоть поняла как оно работает

  • @user-sz9du5qq8b
    @user-sz9du5qq8b 7 месяцев назад

    Один человек объяснить полноценно. Большой спасибо!

  • @nogeus
    @nogeus 6 лет назад +24

    Спасибо тебе, на пальцах объяснил как откуда появляется Многочлен.
    Сколько перечитал - толком не понятно, а у тебя всё чётко.
    Спасибо.

    • @nogeus
      @nogeus 6 лет назад

      Подскажи почему в конце Данного видео, в таблице где Где входные данные Нули, CRC также 0000,
      А порождающий многочлен 111010 ?

    • @fogi31
      @fogi31 10 месяцев назад

      ндааа))) гуляли видимо лекции))), у нас в институте палкой загоняли науку ))) уже почти 40 лет прошло, я ещё помню фамилии преподов на кафедре радиосистем

    • @Zeka1111g
      @Zeka1111g 9 месяцев назад +1

      @@fogi31 а что хорошего в палке? я тоже помню фамилии преподов, хоть 25 лет прошло и ничего кроме неприязни к ним не испытываю,обучали топорно и насильно

    • @fogi31
      @fogi31 9 месяцев назад

      @@Zeka1111g наверно разная мотивация. до сих пор без интернета могу что-то быстро посчитать ))) причем без калькулятора.

    • @Zeka1111g
      @Zeka1111g 9 месяцев назад +1

      @@fogi31 я не очень понял в чем именно повод для гордости, с каких это пор счет в уме стал достижением?или вы трехзначные числа перемножаете?я бы еще понял,если бы вы многочлены полей Галуа разбирали в голове во время прогулки

  • @gvich
    @gvich 4 года назад +3

    Лосек спасибо .В долгу не останусь .Лосишке "привет"!!!!!

  • @wandos777
    @wandos777 3 года назад

    Блин, супер объяснение, просто супер, никаких слов. Кто еще не посмотрел это видео и не разобрался как считать CRC, то посмотрите, не пожалеете.

  • @sakkralk
    @sakkralk 5 лет назад +1

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

  • @uultraa347
    @uultraa347 4 года назад

    Спасибо. Изучаю сетевые технологии и столкнулся с CRC, после этого видео стал стал гораздо понятнее общие принципы CRC.

  • @MyChipPic
    @MyChipPic  8 лет назад +5

    CRC алгоритм рассмотрен в уроке 48. Рассказано, что такое CRC и что такое контрольная сумма CRC. Для каких целей может применяться CRC алгоритм. Рассказано что такое полиномиальная функция CRC или порождающий многочлен. Показан пример вычисления CRC из некоторых данных, а также показан способ определения ошибки данных с использованием CRC алгоритма.
    Спасибо за Like и за Подписку на мой канал.
    Получить информацию о канале можно и со страницы в вконтакте! Страница в вконтакте: vk.com/mychippic

    • @user-wu3yi5eq2e
      @user-wu3yi5eq2e 3 года назад +1

      Мил человек, не подскажешь какими программулинами можно подсчитать контрольную сумму например исходной прошивки wifi роутера в bin и скорректировать её до исходной после внесённых в прошивку правок. Спасибо.

  • @kztemir5570
    @kztemir5570 8 лет назад +2

    Спасибо за столь объемное объяснения каждой темы, просмотрел все видео так сказать на одном дыхании. Научился хоть что то писать для контроллера, адаптировал все коды из уроков для 628А. В первых видео было сказано что в последующих уроках будет рассмотрена строка конфигурации контроллера но как то это проскочило мимо)) А для адаптации кода под другой контроллер необходимо его настроить, вот тут то и возникли трудности. С нетерпение жду новых выпусков и желаю успехов!

    • @MyChipPic
      @MyChipPic  8 лет назад

      +Евгений KZTemir Спасибо) Да, действительно про строку конфигурации я пока не рассказывал. Хотел её затронуть поближе к моменту перехода от одного микроконтроллера к другому) Т.е. к моменту знакомства с другим микроконтроллером PIC. А вот ссылка на следующий урок: ruclips.net/video/ggMhrRYShWs/видео.html

  • @samplename8840
    @samplename8840 5 лет назад +1

    Большое спасибо за доходчивое объяснение!

  • @dimaspb
    @dimaspb 5 лет назад +1

    Спасибо за великолепное объяснение!

  • @chipok_tuning
    @chipok_tuning 3 года назад

    Спасибо огромное за ваше видео.Успехов!

  • @TBoNOpblT
    @TBoNOpblT 7 лет назад +1

    СУПЕР!!!! спасибо за работу большой!!!! )))

  • @0nk0l0g
    @0nk0l0g 6 лет назад +1

    Отличное видео. Огромное спасибо

  • @alexg.6658
    @alexg.6658 Год назад

    Благодарю, очень понятно получилось!

  • @yanapodyapolskaya4690
    @yanapodyapolskaya4690 3 года назад

    От души спасибо за хорошее объяснение.

  • @polinakorogodsky7120
    @polinakorogodsky7120 4 года назад

    Спасибо, видео помогло разобраться в теме

  • @user-bu5cl5uf3x
    @user-bu5cl5uf3x 4 года назад

    Отличное объяснение!

  • @llaabbssful
    @llaabbssful 6 лет назад +1

    Вот только в этом видео я нашел ответ на один нюанс, над которым бился неделю! Спасибо.
    Могли бы вы еще сделать такое видео о корректировке битого сообщения?

  • @user-ci8ll4kx4i
    @user-ci8ll4kx4i 2 года назад

    Великолепно рассказал Супер

  • @user-cr1hc9cj6t
    @user-cr1hc9cj6t 7 месяцев назад

    Спасибо

  • @user-il8be7oq5m
    @user-il8be7oq5m 7 лет назад +2

    Спасибо за ваш труд. Весьма полезно!
    У меня возникла необходимость в моей скромной радиолюбительской практике считать CRC при обработке сообщений CAN протокола. Благодаря Вашему видео стало понятно как рассчитать контрольную сумму..
    Использую контроллеры ATmel пытаюсь писать на GCC в AVR Studio
    при вычислении контрольной суммы побитово чувствую не успею(( то-есть слишком много процессорного времени будет затрачено и не успею выставить в шину бит подтверждения приема.
    У вас есть следующее видео где вычисления производятся сдвигом... еще вроде как таблицами можно ускорить... но.... следующее видео на ассемблере... не могли бы помочь разьяснить сам принцип не привязываясь к конкретному языку?

  • @vikagankina5331
    @vikagankina5331 2 года назад

    kak ponjatno!!!!!! Super!

  • @user-pp2iq4cf1o
    @user-pp2iq4cf1o 4 года назад

    Спасибо большое

  • @dmitriinema6199
    @dmitriinema6199 7 лет назад +1

    Подскажите пожалуйста, в данном примере первые биты всегда совпадают. Однако возможен такой вариант, данные 1010110b, а порождающий многочлен 00101b, тогда исключающее ИЛИ даст 10000b (снова 5-ть бит) и на первом месте будет не ноль. Можно ли в таком случае откинуть 1-цу (все же это не 0)? Я так понимаю нет, но дальше также будут несовпадения. Ещё, прошу подсказать, в таблице раздела "Популярные и стандартизованные полиномы" (ru.wikipedia.org/wiki/Циклический_избыточный_код#cite_note-9) указано, что старший бит опущен, но для USB под CRC-5 выделено всего 5 битов, а если добавить ещё один, то это будет 6-ть и в зарезервированное битое пространство не поместится. Тогда где же будет храниться 6-ой бит?
    Ну и ещё один вопросик, везде указана формула расчета CRC для USB x^5+x^4+1, а под его хранение выделено 5-ть бит. Правильно ли я понимаю, что в этом случае степень должна была бы быть на 1-цу меньше или это возможно как раз благодаря тому самому неизвестному мне 6-му биту?
    Однако, у них же в примере на ru.wikipedia.org указано
    CRC-5/USB 5 бит 0x5 (Poly) "- т.е. без старшего бита" 0x1F(Init) true true 0x1F 0x19 и как тогда будет двигаться старший бит при разных представлениях: реверсионное от обратного, реверсионное. Если он не в одном адресном пространстве с предшествующими битами, то его нельзя так просто переместить в конец или начало последовательности.
    Заранее благодарен!

    • @MyChipPic
      @MyChipPic  7 лет назад +3

      Если порождающий многочлен равен 00101, тогда эквивалентное ему уравнение должно выглядеть: 0x^4+0x^3+1x^2+0x^1+1x^1. Но в таких многочленах нет смысла, поэтому по факту он будет вот таким 1x^2+0x^1+1x^1 или кратко 101. Нули в начале пропадут.
      x^5+x^4+1 = 110001 - это порождающий многочлен. CRC будет занимать памяти на 1 бит меньше. Т.е. если порождающий многочлен включает в себя 6 бит, то CRC будет 5. Чтоб было понятней представьте себе следующий пример обычного деления: "Делимое" / "делитель" = "целая часть" + "остаток от деления". "Остаток от деления" всегда меньше чем "делить" иначе мы не до конца разделили, т.е. мы не полностью выполнили операцию. Похоже работает и CRC. Если представить CRC на подобии остатка от деления, то он будет меньше делителя, что в нашем случае является порождающим многочленом, и занимать будет как минимум на 1 бит меньше, потому что если количество бит будет совпадать, значит мы не полностью выполнили операцию. Это пока понятно?

  • @ALATIR
    @ALATIR 3 года назад

    Наконец то я понял что и от куда

  • @progdevel
    @progdevel 3 года назад +1

    А почему в примере с делением сказано, что количество битов 4, а не 5. Если степень старшего бита - 4, то битность - 5, т.к. степень младшего - 0. Или я что-то не так понял? Значит ли это, что остаток от деления всегда на бит короче делителя?
    Не хвататет информации так же о том, зачем мы добавляем остаток каждый раз к данным. Каков математический расклад этой магии?

  • @yuraholod8050
    @yuraholod8050 4 года назад

    Спасибо за урок! Я правильно понял, что 1-wire применяется и в ibutton ключах?

  • @user-tn3bs3qh5k
    @user-tn3bs3qh5k 8 лет назад +1

    Огромное спасибо, теперь все стало понятно)

  • @user-ce8yw5mt7v
    @user-ce8yw5mt7v 5 лет назад

    Что-то не получается у меня также посчитать. Табличный калькулятор и онлайн калькулятор показывают другой crc для приведенного примера. Точно нет ошибки в вычислениях?

  • @HiHi024
    @HiHi024 2 года назад

    Здравствуйте, у меня не получается запустить службу автонайстройки WLAN на windows 10, мне пишет: не удалось запустить службу Служба автонастройки WLAN Ошибка 23 Ошибка в данных (CRC).

  • @olimpolimp2860
    @olimpolimp2860 6 лет назад +1

    Здравствуйте, а возможно ли точно узнать, какой бит был изменен?

    • @mishkasensei1337
      @mishkasensei1337 6 лет назад

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

  • @user-bb6qv5vi7l
    @user-bb6qv5vi7l 5 лет назад

    Я правильно понял, что порождающий многочлен - это стандарт, для каждого свой? В нашем случае для 1-wire:11001?

  • @alexmiska2115
    @alexmiska2115 8 лет назад +1

    Подскажите вв чем разница между PIC16F84a и PIC628A

    • @MyChipPic
      @MyChipPic  8 лет назад

      +alex miska В PIC16F628a есть дополнительные модули, которые расширают возмностьи микроконтроллера. Из-за наличия дополнительных модулей, приходится больше времени уделять програмной настройке микроконтроллера. Например, чтоб все ножки портов работали как цифровые выходы для управления внешними устройствами уже настройка тольо одного регистра TRIS не решит эту задачу. Но задача не сильно усложняется, нужно использовать ещё одни регистр.Также регистры специального назначения могут находится по другим адресам или их может быть больше.

  • @user-yi1mh2lu5j
    @user-yi1mh2lu5j 7 лет назад +1

    Здравствуйте, вы бы могли сукинуть этот файл с примерами?

    • @MyChipPic
      @MyChipPic  7 лет назад +1

      В следующем уроке в описании к видео там приложена таблица. Насколько помню, то это та самая таблица)

    • @mozgotron12
      @mozgotron12 6 лет назад

      Кого сукинуть?

  • @alexmiska2115
    @alexmiska2115 8 лет назад +1

    Я так понял,что во время передачи кодов команд CRC не формируется,и при неправильном приеме может быть выполнена неправильная команда.

    • @MyChipPic
      @MyChipPic  8 лет назад

      +alex miska На счёт команд я не уверено, но наверно так и есть, но данные, которые отправляет 1 wire ведомое устройство отправлет информацию (не только адрес), которую также можно проверить с помощью CRC. Я пока об этом ещё не говорил, говорил только про адрес, но позже расскажу.

  • @timichpyatigorsk9093
    @timichpyatigorsk9093 8 лет назад +2

    Наверняка существуют гораздо менее сложные интерфейсы. Может с них начнем??)))

    • @MyChipPic
      @MyChipPic  8 лет назад +1

      +Timich Pyatigorsk Нужно закончить раз уже начали) Немного осталось) Впринципе мы уже можем использовать интерфейс 1 wire не зная про CRC и про другие ROM команды, просто мы можем сделать наше устройство более надежным и более функциональным, если мы будем использовать все возможности 1 wire интерфейса.

    • @timichpyatigorsk9093
      @timichpyatigorsk9093 8 лет назад +2

      +MyChipPic Да нет проблем)). Это для меня оказалось пока сложновато. Кому-то в самый раз. Но для общего развития смотрю с удовольствием.

    • @user-so1rg5fu8q
      @user-so1rg5fu8q 5 лет назад

      Нитка и два спичечных коробка :)

  • @oblibox1
    @oblibox1 2 года назад

    Кто нить объяснит почему тут ruclips.net/video/JuXaYeEF80w/видео.html автор говорит что для 1-wire используется 8 bit CRC а чуть позже в примере использует 4 бита ? И откуда он взялся полином X^4+X^3+1 по которому автор наскок я понимаю и получил многочлен или это ноу хау раз такого тут ruclips.net/video/JuXaYeEF80w/видео.html нет то стоит попробыватью

  • @user-gh7ly6ni3o
    @user-gh7ly6ni3o 2 года назад

    Начиная с 10:35 абсолютно не понятен дальнейший ход мысли. Откуда взялся порождающий многочлен 11001? Нафига мы до этого его раскладывали на составляющие?

    • @loshoque
      @loshoque Год назад

      я так понял, что порождающий многочлен должен быть заранее задан, в этом примере задан 11001

  • @gvich
    @gvich 4 года назад +1

    черный

  • @stazher123
    @stazher123 3 года назад

    Великолепное объяснение. Но дикция автора оставляет желать лучшего. Студни такую невнятную речь будут слушать в пол уха.