Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".

  Переглядів 34,692

SamON

SamON

4 роки тому

Недавно перед мной встала задача разработать IP ядро CAN контроллера. Конечно же это повлекло за собой разбор работы шины CAN на более низком уровне. Так как в русскоязычном сегменте интернета данную информацию мне найти не удалось, пришло обратиться к книге, где в крайней степени подробно описано как работает этот интерфейс. Так как вся книга на английском языке, я решил сделать цикл обучающих видео о работе CAN bus. Конкретно в этом видео я рассказываю про общую структуру CAN сообщения, немного затронул физический уровень. Надеюсь это видео будет полезно. Если я где-то что-то упустил или допустил неточность, прошу поправить меня в комментариях.
Ссылка на кешбэк платформу bit.ly/2IJ4wAh -- Бесплатно регистрируйся на платформе и получи бесплатный бонус - повышенный кешбэк на 66% во всех магазинах на платформе! Установи приложение на смартфон и расширение для браузера! Это реально удобно!
По разным вопросам можете писать сюда: saswt@ro.ru
Привет! Меня зовут Сергей. Псевдоним Семён (SamOn). Я являюсь HW и SW embedded разработчиком. По совместительству еще и страйкболист/походник/велосипедист. На этом канале вы найдете контент про мои разработки для страйкбола. Также, по мере возможности, я буду делиться своим опытом в embedded разработке. Подписывайтесь на канал! Впереди много интересного!

КОМЕНТАРІ: 66
@BigMike_123
@BigMike_123 3 роки тому
Мне, инженеру-электронщику с почти 40 летним стажем, было очень смешно услышать сентенцию про отсутствие переднего и заднего фронта, автор, спасибо, ты сделал мой день)))
@ms-33
@ms-33 2 роки тому
ну а детальнее? профи посмеялся. мне эта инфа зачем?
@486OverDrive
@486OverDrive 2 роки тому
@@ms-33 а мне зачем инфа о том, что тебе не нужна инфа другого комментатора?
@ms-33
@ms-33 2 роки тому
@@486OverDrive я попросил сказать подробнее. Обратная связь для автора - это очень ценно. Василий, признаюсь, о Вас не думал, когда комментировал.
@samon655
@samon655 2 роки тому
да, я всегда с юмором говорю :)
@younadym
@younadym 3 роки тому
Суперррр! Чётенко, понятненько, без воды. Благодарю!
@igorlu
@igorlu 4 роки тому
Гениальный протокол, спасибо за объяснение на пальцах, все понятно.
@samon655
@samon655 4 роки тому
Спасибо за отзыв! Я рад что помог разобраться )
@nurlannurlan6049
@nurlannurlan6049 4 роки тому
Спасибо. Очень интересно! Будем ждать новых видео.
@samon655
@samon655 4 роки тому
Спасибо за отзыв! Я постараюсь рассказать ещё про что-то интересное. ))
@viktoryofzsu3922
@viktoryofzsu3922 4 роки тому
Спасибо большое за столь подробный урок. Хотелось бы ещё. Удачи вам!
@samon655
@samon655 4 роки тому
Спасибо за теплые слова! Я рад что это было полезно. Да, у меня запланированы обучающие видео, но не могу добраться до монтажа. Следите за каналом!
@viktoryofzsu3922
@viktoryofzsu3922 4 роки тому
@@samon655 уже подписался!!!
@user-cp3kp8ep1y
@user-cp3kp8ep1y 2 роки тому
Спасибо большое, очень простая и непринуждённая подача материала, данное видно мне очень помогло разобраться в данном вопросе
@user-si8eg3zc5w
@user-si8eg3zc5w 4 роки тому
спасибо, ждём продолжения
@rewalex
@rewalex Рік тому
Информация прекрасно подана! Очень интересно,
@user-le3wb7mn1g
@user-le3wb7mn1g 4 роки тому
Привет, спасибо за видосик, познавательно, жду вторую часть :))))
@samon655
@samon655 4 роки тому
Спасибо за отзыв ) приятно знать что не просто так это сделал )
@Adnreus74
@Adnreus74 4 роки тому
153 подписчика у такого канала, у такого, не побоюсь этого слова, преподавателя - это не дело. Давайте, парни, доведем эту цифру хотя бы до 10 000, чтоб мотивация у человека появилась.
@samon655
@samon655 4 роки тому
Ого ) спасибо за такую высокую оценку. Я крайне рад что был полезен!
@Mulinby
@Mulinby 4 роки тому
Если кто то использует термины передний и задний, фронт, это совершено не говорит о его бещграмотности. Это дело привычки и не более того. Подавляющее большинство инженеров использует эти термины, точно так же как и в технической литературе. Но за видео спасибо
@samon655
@samon655 4 роки тому
Спасибо за обратную связь!
@sava789
@sava789 3 роки тому
Сергей, спасибо за познаватеное видео. Хотелось бы узнать как обозначается кан линия на схеме авто (витая пара).
@zahartm3577
@zahartm3577 4 роки тому
Ждём продолжения!
@samon655
@samon655 4 роки тому
Рад слышать! Работаю над этим )
@ambako
@ambako 7 місяців тому
otlichni material, nakonecto ponial kak proisxodit arbitraj v can shine :)
@sebasnianpereirok9527
@sebasnianpereirok9527 4 роки тому
Ничего не понял,но оч интересно.
@user-yv6tg1md3q
@user-yv6tg1md3q 3 роки тому
Очень познавательно!
@user-jr3on9ne3n
@user-jr3on9ne3n 4 роки тому
С передачей данных все понятно но как быть или как понять если блоки одинаковые и если их поменяли местами то выходит ошибка сан шины. Или его стерли тоже самое как опять настроить блок.
@user-xm3yx9vf3s
@user-xm3yx9vf3s 4 роки тому
Спасибо
@user-io5gm2xf8q
@user-io5gm2xf8q Рік тому
Спасибо.
@dankeschone874
@dankeschone874 4 роки тому
Спасибо за видео. Подскажите,что за книга?
@samon655
@samon655 4 роки тому
Добрый день! Книга Controller Area Network by Konrad Etschberger.
@dankeschone874
@dankeschone874 4 роки тому
SamON Добрый! Благодарю за информацию.Все очень доступно и понятно.
@azamatazamat9216
@azamatazamat9216 4 роки тому
Сергей! Спасибо за видео! А как со второй частью? Когда выйдет?
@samon655
@samon655 4 роки тому
Привет! Пока сложно сказать. Я далеко от компа, на котором я делаю видео да и много работы на работе. В любом случае, у меня есть планы по второй части CAN. При этом этот канал больше про программирование контролёров, FPGA, самоделки электронные. По этому следующее видео будет из этой области. Но пока руки не доходят. Канал у меня - это хобби, чтобы отвлечься от других задач ))
@azamatazamat9216
@azamatazamat9216 4 роки тому
@@samon655 Сергей, но первая видео-лекция получилась очень неплохо. Логично было бы продолжить. Количество просмотров об этом говорит. Не у всех болтунов-политологов столько за год набирается, как у вас за 3 месяца. Желаю здоровья и вдохновения!
@Andriuhaa
@Andriuhaa 4 місяці тому
Продолжение будет?
@dmitryzdor9116
@dmitryzdor9116 4 роки тому
Крассавчик) очень интересно) жду продолжения) с автомобильной шиной не работал?
@samon655
@samon655 4 роки тому
Спасибо за отзыв! Нет, я не работал. Я разработчик электроники, в которой используется шина CAN. Тут я рассматриваю базовые принципы работы шины, не привязываясь к протоколу верхнего уровня.
@Numsarmik
@Numsarmik 3 роки тому
Я пытаюсь сделать самодельную систему индикации параметров двигателя где источник данных - КАН шина. Я ни разу не электронщик. Насмотрелся в ютубе и собрал схему: Модуль каншины, ардуино, ноутбук. Данные получил. Что делать дальше не могу найти информацию. Можете проконсультировать?
@486OverDrive
@486OverDrive 2 роки тому
Ищите информацию конкретно по вашей машине. Каждый производитель использует КАН-шину как считает нужным, причём, может от машины к машине менять свой собственный стандарт. В поле "Arbitration field" содержится уникальный идентификатор каждого сообщения (либо устройства) на шине. Если на ваш автомобиль совсем нет никакой информации, то выход только один: собирать все данные с шины и анализировать их. Посчитайте как часто каждый "Arbitration field" (далее будем называть его просто "ID") встречается. Определённый ID говорит о том, что в данном фрейме содержится температура ОЖ, другой - обороты двигателя, третий - напряжение бортовой сети, и т.д. Эти "сообщения" (фреймы) появляются на шине с определённой периодичностью или по запросу от других устройств. Например, блок климата может что то запросить у ЭБУ, тот ему ответит, а так же, ЭБУ может тоже что то запросить у блока климата. Некоторые ID будут появляться на шине только на заведенном моторе. Пробуйте включать разные функции (фары, омыватель, заднюю передачу и т.д.) и смотрирте какие новые ID стали появляться на шине. Таким образом, сможете сопоставить ID с событиями. Если есть БК или другой способ диагностики, посмотрите какая температура мотора, обороты и пробуйте сопоставить с тем, что ловите на CAN-шине. Процесс долгий, требует много терпения. Для диагностики мотора проще, всё-же использовать готовое решение. Либо найти готовую программу диагностики и найти в ней зашитую таблицу соответствия под ваш автомобиль. В простейшем случае в папке программы может отдельный файл под каждого производителя, может быть SQLite база и т.д. Ковырять самому есть смысл, если вы хотите не просто читать сообщения, но и как то воздействовать на другие устройства. Например, менять громкость или транслировть какие-то надписи на штатный экран магнитоллы (есть в ютубе доклад, человека, который такое делал).
@DarkLord-bmw
@DarkLord-bmw 2 роки тому
Здравствуйте Добрый вечер Я жду от вас 2 часть этого видео уже долго
@user-ei1td7sm3j
@user-ei1td7sm3j 2 роки тому
Было страшно в начале... А потом стало просветляться. Чуть чуть
@user-qs9gv2xh7w
@user-qs9gv2xh7w 4 роки тому
А что будет если кто-то захочет передать данные когда уже идёт передача в линии, получается арбитраж уже пройден..... Т.е. как работает арбитраж когда все одновременно начинают передавать понятно, но ведь в жизни более вероятен случай когда вначале один начинает передавать, потом второй и т.д.
@samon655
@samon655 4 роки тому
Привет! Будет сгенерирован кадр ошибки с флагом, который описывает саму ошибку. В любом случае, кадр ошибки имеет специфический формат и заткнет все узлы на линии. После чего, в общем случае, процессы в лини нормализуются и все начнется опять с арбитража.
@user-qs9gv2xh7w
@user-qs9gv2xh7w 4 роки тому
@@samon655 Спасибо. Но всё равно не могу понять: захотел я передать данные, сформировал сообщение, переслал его в подсистему CAN. Если тут же это сообщение будет выдано в линию, то есть вероятность, что могу попасть в середину уже другого передающегося пакета. Получается в линии будут постоянно возникать кадры ошибок?
@samon655
@samon655 4 роки тому
Нет, немного не так. В общем случае, каждая нода мониторит сеть. Если в сети идёт обмен данными, при этом ещё узел, который захватил сеть не передал EOF, все остальные молчат, даже если им надо передать данные. Как только сеть освобождается, то нода, которой надо было что-то передать начинает выдавать кадр... да и все ноды, которым надо было передать данные начинают передачу после того, когда линия осовободится. Они борются за захват линии, побеждат тот который имеет более близкий к нулю ID. Конечно может быть такая ситуация что более приоритетный узел передает чаще и больше, чем низкоприоритетный и, теоретически, узел с более низким приоритетом никогда не победит в арбитраже, но это уже задача программиста системы примерить так протокол что бы не было таких вот коллизий.
@user-qs9gv2xh7w
@user-qs9gv2xh7w 4 роки тому
Ещё раз спасибо большое. Много источников перечитал, пересмотрел. На этот вопрос так ответа и не нашёл. Теперь стало понятно.
@vmarin5929
@vmarin5929 Рік тому
Семен спасибо. Краткость сестра таланта...
@spechulfapticks3108
@spechulfapticks3108 4 роки тому
теперь понятно, почему арбитраж выигрывает тот, у кого id меньше
@user-rn1jp9ex4o
@user-rn1jp9ex4o 3 роки тому
Братишка где вторая часть
@mindread3r
@mindread3r 3 роки тому
TCP/IP в автомобильном варианте)
@endprg6477
@endprg6477 4 роки тому
На каком этапе задаются и ID и каким образом?
@samon655
@samon655 4 роки тому
Привет. ID зашиы в прошивку микроконтроллера. На этапе конфига устройства ID заносится в спец.регистр и хранится там. С динамической сменой ID я не сталкивался.
@user-sk7mg9rj6h
@user-sk7mg9rj6h 2 місяці тому
Что это понять надо минимум пол года походить как школьнику на занятия. Что значит ушло в землю))
@sergeygold9000
@sergeygold9000 3 роки тому
А ведь по поводу понятий фронт и срез... Действительно, верно сказано! Спасибо!
@user-yv3xc1dm1f
@user-yv3xc1dm1f 3 роки тому
смотря с какой стороны смотреть на импульс сигнала сзади или спереди. А слово фронт просто прилипло . Это просто обрусевший английский. И парень просто придирается к словосочитанию
@Infinitycity78
@Infinitycity78 2 роки тому
3:00 тебя взломали ! Валим отсюда ))
@ewgenilukashin6868
@ewgenilukashin6868 10 місяців тому
Жалко что началось и закончилось все 1 частью... А тема становиться зло и насущной .... Тема касается ремонта автомобилей. У людей в крови улучшательство , даже иногда не понимая действий и последствий даже на уровне "специалистов" ( поубивал бы таких спецов) , когда в исправный автомобиль у которого система живет здоровой жизнью начинают пихать вредные улучшалки. Различные сигналки на кан шину, китайские нештатные мультимедиа девайсы . Тахографы , глонасы и прочее прочее, которое гадит в кан шину по различным причинам , сбивая работу отлаженной штатной системы. И тут наступает трудоёмкий процесс выяснения причин и проблем. Если раньше таких испорченных автомобилей было единицы и можно было потратить время на лечение редкой неисправности по выявлению виновника бардака , то сейчас это нарастает в какой то глобальный кризис . Автомобили сложнеют и еще нарастает количество кривых девайсов которые народ пихает в свое исправное авто. По этой причине пытаюсь создать устройство которое просто бы мониторило шину и помогало вычислить индификатор хама в шине который сносит по разной причине штатную и правильную связь жизненно важных блоков автомобиля. Я не программист такого уровня чтоб самостоятельно понимать как и что. Собираю все по крупицам и ваше виде зашло и так досадно закончилось . Вы дали доступно нужную информацию , но увы осталось применительно к моим задачам многое недосказанным. Мне не нужно ломать протоколы и пр. Нужен просто помощник который бы за меня сидел слушал шину и подсказал примерное направление в ремонте. Я уже умалчиваю к примеру ситуацию неисправности штаного оборудования - к примеру устройство перестало слышать линию. К чему столько букв - вы затронули актуальную тему , но увы хотелось бы продолжения вашего опыта который был бы любом варианте полезен.
@hidekimotosuwa7106
@hidekimotosuwa7106 4 місяці тому
Здравствуйте я тоже сталкиваюсь с такими проблемами и сейчас нахожусь в выборе анализатора или осцилографа с функцией декодирования сигнала (скажите пожалуйста каким прибором вы пользуетесь ? так как миксиг дорогущий - овн дешевле но не слишком много инфы а хантек не однозначен хоть и дешовый .
@user-el3zj3fj2e
@user-el3zj3fj2e 4 роки тому
че то ты много лишнего болтаешь, мозги путаются
@samon655
@samon655 4 роки тому
Спасибо за отзыв. Если есть вопросы, можете их озвучить тут. Постараюсь ответить.
@user-hu3sc8qj7s
@user-hu3sc8qj7s 3 роки тому
НУДНО!
@samon655
@samon655 3 роки тому
Спасибо за отзыв! ))
@user-cp3kp8ep1y
@user-cp3kp8ep1y 2 роки тому
Спасибо большое, очень простая и непринуждённая подача материала, данное видно мне очень помогло разобраться в данном вопросе
Подробно про CAN шину
30:19
Eugene Irimia
Переглядів 659 тис.
Вебинар: Как найти любые данные из CAN-шины любого автомобиля?
57:17
Galileosky | Телематика и решения для IOT
Переглядів 40 тис.
ВЫШИБАЛЫ - Сатир, Янчик, Джарахов, Миша, Антон Форсаж
1:09:04
Секретная разработка КГБ! Волга «Догонялка» на V8…
1:07:10
Мастерская Синдиката
Переглядів 2,4 млн
Não pode Comprar Tudo 5
00:29
DUDU e CAROL
Переглядів 68 млн
Laravel web guard authentication || admin guard login
24:01
лекция 403  CAN шина- введение
13:04
Электротехника и электроника для программистов
Переглядів 346 тис.
STM32 CAN шина. Часть 1. Настройка и странности HAL
19:54
CAN Bus: Serial Communication - How It Works?
11:25
Electronoobs
Переглядів 183 тис.
Кан шина, что это? Поймет школьник! принцип работы
13:36
Бешеный Электрик
Переглядів 79 тис.
Power AC Coolness with Anker SOLIX F3800
0:27
Anker SOLIX
Переглядів 3,3 млн