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

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2016
  • CRC алгоритм рассмотрен в уроке 48. Рассказано, что такое CRC и что такое контрольная сумма CRC. Для каких целей может применяться CRC алгоритм. Рассказано что такое полиномиальная функция CRC или порождающий многочлен. Показан пример вычисления CRC из некоторых данных, а также показан способ определения ошибки данных с использованием CRC алгоритма.
    Спасибо за Like и за Подписку на мой канал.
    Получить информацию о канале можно и со страницы в вконтакте! Страница в вконтакте: mychippic

ความคิดเห็น • 60

  • @sofiatarasova7517
    @sofiatarasova7517 4 ปีที่แล้ว +12

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

  • @nogeus
    @nogeus 6 ปีที่แล้ว +24

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

    • @nogeus
      @nogeus 6 ปีที่แล้ว

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

    • @fogi31
      @fogi31 11 หลายเดือนก่อน

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

    • @Zeka1111g
      @Zeka1111g 10 หลายเดือนก่อน +1

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

    • @fogi31
      @fogi31 10 หลายเดือนก่อน

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

    • @Zeka1111g
      @Zeka1111g 10 หลายเดือนก่อน +1

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

  • @user-sz9du5qq8b
    @user-sz9du5qq8b 8 หลายเดือนก่อน

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

  • @wandos777
    @wandos777 3 ปีที่แล้ว

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

  • @gvich
    @gvich 4 ปีที่แล้ว +3

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

  • @sakkralk
    @sakkralk 5 ปีที่แล้ว +1

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

  • @kztemir5570
    @kztemir5570 8 ปีที่แล้ว +2

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

    • @MyChipPic
      @MyChipPic  8 ปีที่แล้ว

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

  • @uultraa347
    @uultraa347 4 ปีที่แล้ว

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

  • @dimaspb
    @dimaspb 5 ปีที่แล้ว +1

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

  • @samplename8840
    @samplename8840 5 ปีที่แล้ว +1

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

  • @TBoNOpblT
    @TBoNOpblT 7 ปีที่แล้ว +1

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

  • @0nk0l0g
    @0nk0l0g 7 ปีที่แล้ว +1

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

  • @chipok_tuning
    @chipok_tuning 3 ปีที่แล้ว

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

  • @yanapodyapolskaya4690
    @yanapodyapolskaya4690 3 ปีที่แล้ว

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

  • @alexg.6658
    @alexg.6658 ปีที่แล้ว

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

  • @user-bu5cl5uf3x
    @user-bu5cl5uf3x 4 ปีที่แล้ว

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

  • @polinakorogodsky7120
    @polinakorogodsky7120 5 ปีที่แล้ว

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

  • @llaabbssful
    @llaabbssful 6 ปีที่แล้ว +1

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

  • @MyChipPic
    @MyChipPic  8 ปีที่แล้ว +5

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

    • @user-wu3yi5eq2e
      @user-wu3yi5eq2e 3 ปีที่แล้ว +1

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

  • @user-ci8ll4kx4i
    @user-ci8ll4kx4i 2 ปีที่แล้ว

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

  • @user-il8be7oq5m
    @user-il8be7oq5m 7 ปีที่แล้ว +2

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

  • @vikagankina5331
    @vikagankina5331 2 ปีที่แล้ว

    kak ponjatno!!!!!! Super!

  • @user-pp2iq4cf1o
    @user-pp2iq4cf1o 4 ปีที่แล้ว

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

  • @user-cr1hc9cj6t
    @user-cr1hc9cj6t 9 หลายเดือนก่อน

    Спасибо

  • @yuraholod8050
    @yuraholod8050 4 ปีที่แล้ว

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

  • @progdevel
    @progdevel 3 ปีที่แล้ว +1

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

  • @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 бит меньше, потому что если количество бит будет совпадать, значит мы не полностью выполнили операцию. Это пока понятно?

  • @user-ce8yw5mt7v
    @user-ce8yw5mt7v 6 ปีที่แล้ว

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

  • @ALATIR
    @ALATIR 3 ปีที่แล้ว

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

  • @user-tn3bs3qh5k
    @user-tn3bs3qh5k 8 ปีที่แล้ว +1

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

  • @olimpolimp2860
    @olimpolimp2860 6 ปีที่แล้ว +1

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

    • @mishkasensei
      @mishkasensei 6 ปีที่แล้ว

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

  • @user-bb6qv5vi7l
    @user-bb6qv5vi7l 5 ปีที่แล้ว

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

  • @HiHi024
    @HiHi024 2 ปีที่แล้ว

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

  • @alexmiska2115
    @alexmiska2115 8 ปีที่แล้ว +1

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

    • @MyChipPic
      @MyChipPic  8 ปีที่แล้ว

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

  • @alexmiska2115
    @alexmiska2115 8 ปีที่แล้ว +1

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

    • @MyChipPic
      @MyChipPic  8 ปีที่แล้ว

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

  • @user-gh7ly6ni3o
    @user-gh7ly6ni3o 2 ปีที่แล้ว

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

    • @loshoque
      @loshoque ปีที่แล้ว

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

  • @user-yi1mh2lu5j
    @user-yi1mh2lu5j 7 ปีที่แล้ว +1

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

    • @MyChipPic
      @MyChipPic  7 ปีที่แล้ว +1

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

    • @mozgotron12
      @mozgotron12 6 ปีที่แล้ว

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

  • @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 ปีที่แล้ว

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

  • @gvich
    @gvich 4 ปีที่แล้ว +1

    черный

  • @Nakojher
    @Nakojher 4 ปีที่แล้ว

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