Как работает can шина на физическом уровне
telepnev › Блог › Ох эти три буквы… Спокойно, всё пристойно, я про CAN.
CAN шина, что же это такое? Много информации читал, но нихрена не понимал. А тут вот нашлось простое и доходчивое объяснение, которое поймёт и ребёнок. А может и не поймет…
В CAN сети все ЭБУ подключены к шине параллельно. Обмен данными производится короткими пакетами — сообщениями.
CAN сообщение
Каждое сообщение содержит идентификатор, который в сети является уникальным (например, «Температура двигателя 100 град» или «Скорость автомобиля 50 км/ч»). При передаче, все ЭБУ в сети получают сообщение и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному ЭБУ, то оно обрабатывается, в противном случае – игнорируется. Идентификатор может быть длиной 11 бит или 29 бит.
Арбитраж
В шине CAN биты 0 и 1 имеют ещё одно название: рецессивный уровень и доминантный уровень, соответственно. Если двумя разными передатчиками будет одновремнно передан рецессивный и доминантный уровни, то доминантный уровень подавит рецессивный. Этим механизмом подавления обеспечивается арбитраж на шине. Каждый передатчик одновремнено считывает то, что он предаёт в шину. Передатчик с более низким приоритетом вынужден отпустить шину, так как чужой доминантный уровень с более высоким приоритетом исказил его предачу. В то же время, пакет с более высоким уровнем остался неизменным. Передатчик, потерявший арбитраж, может повторить попытку через некоторе время.
Физический уровень
В автомобиле может применяться несколько типов шин CAN.
Высокоскоростной CAN (High speed) применяется в основном в сети управления двигателем и управления шасси. Там, где необходима высокая скорость реакции. Скорость обмена по этой шине 500 или 250 кбит/сек.
Схема подключения ЭБУ к высокоскоростной шине CAN
Низкоскоростной CAN (Low speed) применяется в сети управления кузова. Скорость обмена по этой шине, как правило, равняется 125 кбит/сек.
Схема подключения ЭБУ к низкоскоростной шине CAN
Однопроводный CAN (1-wire) Это удешевлённый варинат Low speed CAN, применяется в основном концерном GM. Используется для коммуникации между ЭБУ кузова машины. Работает на скорости 33,3 кбит/сек.
Схема подключения ЭБУ к однопроводной шине CAN
Надёжность
Двухпроводная шина сохраняет свою работоспособность при обрыве или замыкании одного из проводов (для двухпроводной шины).
Фазы работы
Шина CAN используется в автомобилях достаточно давно. Изначально шина CAN использовалась в простых конфигурациях. Например, для надёжной и быстрой связи между ЭБУ мотора и ЭБУ автоматической коробки передач. В этой конфигурации шина использовалась только для передачи данных. В ЭБУ заводилась линия питания и линия от замка зажигания, диагностика производилась по отдельным К-линиям, идущим из каждого ЭБУ.
В более современных автомобилях, по шине CAN передаётся не только управляющая, но и диагностическая информация. Помимо этого, шина CAN стала управлять системой питания ЭБУ. В этой конфигурации все ЭБУ подключены к общему питанию и шине CAN. Замок зажигания является электронным блоком управления и информация о включении зажигания передаётся от него по CAN шине.
Можно выделить четыре основные фазы работы шины:
Спящий режим
В этом режиме все ЭБУ, кроме ЭБУ замка, находятся в выключенном состоянии. На драйвер CAN подается питание. Драйвер так же находится в спящем состоянии. При этом, его энергопотребление составляет около 0,3 мА.
Пробуждение
Когда вставляется ключ зажигания или открывается дверь, замок выдаёт доминантное состояние в шину CAN. Это приводит к пробуждению CAN драйверов в спящих ЭБУ. Драйверы при обнаружении активности на шине включают стабилизаторы питания в своих ЭБУ.
Активный режим
В активном режиме ЭБУ постоянно обмениваются информацией. Энергопотребление каждого предатчика при доминантных уровнях может достигать 80 мА.
Засыпание
В момент выключения зажигания, по шине CAN выдаётся команда на выключение, после чего каждый ЭБУ сам себя обесточивает и преходит в спящий режим.
Примечание:
Для однопроводной шины CAN сигнал пробуждения имеет уровень 12 В, обычный обмен 0-4 В.
Немного отступлю от первоисточника.
Самый главный плюс, это очень высокая помехозащищённость сигнала. В чём прикол? Одновременно идут два дублирующих сигнала, только один высокий, второй низкий. Ловят они помеху. Помеха воздействует одинаково на оба сигнала. А на выходе у нас одинаковый уровень. Два уровня сигнала компенсируют помеху. Наглядно это выглядит вот так:
Вот такие пироги. Наткнулся тут : quantexlab
Источник: www.drive2.ru
Принцип работы и диагностика CAN-шины в автомобиле
Появление цифровых шин в автомобилях произошло позднее, чем в них начали широко внедряться электронные блоки. В то время цифровой «выход» им был нужен только для «общения» с диагностическим оборудованием – для этого хватало низкоскоростных последовательных интерфейсов наподобие ISO 9141-2 (K-Line). Однако кажущееся усложнение бортовой электроники с переходом на CAN-архитектуру стало ее упрощением.
Действительно, зачем иметь отдельный датчик скорости, если блок АБС уже имеет информацию о скорости вращения каждого колеса? Достаточно передавать эту информацию на приборную панель и в блок управления двигателем. Для систем безопасности это ещё важнее: так, контроллер подушек безопасности уже становится способен самостоятельно заглушить мотор при столкновении, послав соответствующую команду на ЭБУ двигателя, и обесточить максимум бортовых цепей, передав команду на блок управления питанием. Раньше же приходилось для безопасности применять не надежные меры вроде инерционных выключателей и пиропатронов на клемме аккумулятора (владельцы BMW с его «глюками» уже хорошо знакомы).
Однако на старых принципах реализовать полноценное «общение» блоков управления было невозможно. На порядок выросли объем данных и их важность, то есть потребовалась шина, которая не только способна работать с высокой скоростью и защищена от помех, но и обеспечивает минимальные задержки при передаче. Для движущейся на высокой скорости машины даже миллисекунды уже могут играть критичную роль. Решение, удовлетворяющее таким запросам, уже существовало в промышленности – речь идет о CAN BUS (Controller Area Network).
Суть CAN-шины
Цифровая CAN-шина – это не конкретный физический протокол. Принцип работы CAN-шины, разработанный Bosch еще в восьмидесятых годах, позволяет реализовать ее с любым типом передачи – хоть по проводам, хоть по оптоволокну, хоть по радиоканалу. КАН-шина работает с аппаратной поддержкой приоритетов блоков и возможностью «более важному» перебивать передачу «менее важного».
Для этого введено понятие доминантного и рецессивного битов: упрощенно говоря, протокол CAN позволит любому блоку в нужный момент выйти на связь, остановив передачу данных от менее важных систем простой передачей доминантного бита во время наличия на шине рецессивного. Это происходит чисто физически – например, если «плюс» на проводе означает «единицу» (доминантный бит), а отсутствие сигнала – «ноль» (рецессивный бит), то передача «единицы» однозначно подавит «ноль».
Представьте себе класс в начале урока. Ученики (контроллеры низкого приоритета) спокойно переговариваются между собой. Но, стоит учителю (контроллеру высокого приоритета) громко дать команду «Тишина в классе!», перекрывая шум в классе (доминантный бит подавил рецессивный), как передача данных между контроллерами-учениками прекращается. В отличие от школьного класса, в CAN-шине это правило работает на постоянной основе.
Для чего это нужно? Чтобы важные данные были переданы с минимумом задержек даже ценой того, что маловажные данные не будут переданы на шину (это отличает CAN шину от знакомого всем по компьютерам Ethernet). В случае аварии возможность ЭБУ впрыска получить информацию об этом от контроллера SRS несоизмеримо важнее, чем приборной панели получить очередной пакет данных о скорости движения.
В современных автомобилях уже стало нормой физическое разграничение низкого и высокого приоритетов. В них используются две и даже более физические шины низкой и высокой скорости – обычно это «моторная» CAN-шина и «кузовная», потоки данных между ними не пересекаются. К всем сразу подключен только контроллер CAN-шины, который дает возможность диагностическому сканеру «общаться» со всеми блоками через один разъем.
Например, техническая документация Volkswagen определяет три типа применяемых CAN-шин:
- «Быстрая» шина, работающая на скорости 500 килобит в секунду, объединяет блоки управления двигателем, ABS, SRS и трансмиссией.
- «Медленная» функционирует на скорости 100 кбит/с и объединяет блоки системы «Комфорт» (центральный замок, стеклоподъемники и так далее).
- Третья работает на той же скорости, но передает информацию только между навигацией, встроенным телефоном и так далее. На старых машинах (например, Golf IV) информационная шина и шина «комфорт» были объединены физически.
Интересный факт: на Renault Logan второго поколения и его «соплатформенниках» также физически две шины, но вторая соединяет исключительно мультимедийную систему с CAN-контроллером, на второй одновременно присутствуют и ЭБУ двигателя, и контроллер ABS, и подушки безопасности, и ЦЭКБС.
Физически же автомобили с CAN-шиной используют ее в виде витой дифференциальной пары: в ней оба провода служат для передачи единственного сигнала, который определяется как разница напряжений на обоих проводах. Это нужно для простой и надежной помехозащиты. Неэкранированный провод работает, как антенна, то есть источник радиопомех способен навести в нем электродвижущую силу, достаточную для того, чтобы помеха воспринялась контроллерами как реально переданный бит информации.
Но в витой паре на обоих проводах значение ЭДС помехи будет одинаковым, так что разница напряжений останется неизменной. Поэтому, чтобы найти CAN-шину в автомобиле, ищите витую пару проводов – главное не перепутать ее с проводкой датчиков ABS, которые так же для защиты от помех прокладываются внутри машины витой парой.
Диагностический разъем CAN-шины не стали придумывать заново: провода вывели на свободные пины уже стандартизированной в OBD-II колодки, в ней CAN-шина находится на контактах 6 (CAN-H) и 14 (CAN-L).
Поскольку CAN-шин на автомобиле может быть несколько, часто практикуется использование на каждой разных физических уровней сигналов. Вновь для примера обратимся к документации Volkswagen. Так выглядит передача данных в моторной шине:
Когда на шине не передаются данные или передается рецессивный бит, на обоих проводах витой пары вольтметр покажет по 2,5 В относительно «массы» (разница сигналов равна нулю). В момент передачи доминантного бита на проводе CAN-High напряжение поднимается до 3,5 В, в то время как на CAN-Low опускается до полутора. Разница в 2 вольта и означает «единицу».
На шине «Комфорт» все выглядит иначе:
Здесь «ноль» — это, наоборот, 5 вольт разницы, причем напряжение на проводе Low выше, чем на проводе High. «Единица» же – это изменение разности напряжений до 2,2 В.
Проверка CAN-шины на физическом уровне ведется с помощью осциллографа, позволяющего увидеть реальное прохождение сигналов по витой паре: обычным тестером, естественно, «разглядеть» чередование импульсов такой длины невозможно.
«Расшифровка» CAN-шины автомобиля также ведется специализированным прибором – анализатором. Он позволяет выводить пакеты данных с шины в том виде, как они передаются.
Сами понимаете, что диагностика шины CAN на «любительском» уровне без соответствующего оборудования и знаний не имеет смысла, да и банально невозможна. Максимум, что можно сделать «подручными» средствами, чтобы проверить кан-шину – это измерить напряжения и сопротивление на проводах, сравнив их с эталонными для конкретного автомобиля и конкретной шины. Это важно – выше мы специально привели пример того, что даже на одном автомобиле между шинами может быть серьезная разница.
Неисправности
Хотя интерфейс CAN и хорошо защищен от помех, электрические неисправности стали для него серьезной проблемой. Объединение блоков в единую сеть сделало ее уязвимой. КАН-интерфейс на автомобилях стал настоящим кошмаром малоквалифицированных автоэлектриков уже по одной своей особенности: сильные скачки напряжения (например, зимний запуск на сильно разряженном аккумуляторе) способны не только «повесить» ошибку CAN-шины, обнаруживаемую при диагностике, но и заполнить память контроллеров спорадическими ошибками, случайного характера.
В результате на приборной панели загорается целая «гирлянда» индикаторов. И, пока новичок в шоке будет чесать голову: «да что же это такое?», грамотный диагност первым делом поставит нормальный аккумулятор.
Чисто электрические проблемы – это обрывы проводов шины, их замыкания на «массу» или «плюс». Принцип дифференциальной передачи при обрыве любого из проводов или «неправильном» сигнале на нем становится нереализуем. Страшнее всего замыкание провода, поскольку оно «парализует» всю шину.
Представьте себе простую моторную шину в виде провода, на котором «сидят в ряд» несколько блоков – контроллер двигателя, контроллер АБС, приборная панель и диагностический разъем. Обрыв у разъема автомобилю не страшен – все блоки продолжат передавать информацию друг другу в штатном режиме, невозможной станет только диагностика. Если оборвать провод между контроллером АБС и панелью, мы сможем увидеть сканером на шине только ее, ни скорость, ни обороты двигателя она показывать не будет.
А вот при обрыве между ЭБУ двигателя и АБС машина, скорее всего, уже не заведется: блок, не «видя» нужный ему контроллер (информация о скорости учитывается при расчете времени впрыска и угла опережения зажигания), уйдет в аварийный режим.
Если не резать провода, а просто постоянно подать на один из них «плюс» или «массу», автомобиль «уйдет в нокаут», поскольку ни один из блоков не сможет передавать данные другому. Поэтому золотое правило автоэлектрика в переводе на русский цензурный звучит как «не лезь кривыми руками в шину», а ряд автопроизводителей запрещает подключать к CAN-шине несертифицированные дополнительные устройства стороннего производства (например, сигнализации).
Благо подключение CAN-шины сигнализации не разъем в разъем, а врезаясь непосредственно в шину автомобиля, дают «криворукому» установщику возможность перепутать провода местами. Автомобиль после этого не то что откажется заводиться – при наличии контроллера управления бортовыми цепями, распределяющего питание, даже зажигание не факт что включится.
Источник: avtocity365.ru
Как работает CAN-шина и для чего она нужна в автомобиле?
Сегодня автомобиль, представляет из себя, не просто средство на колесах с двигателем и аналоговыми релюхами, которые было при поломке с легкостью заменить не только специалиста, но и мало-мальски грамотному человеку. Автомобиль сегодня представляет из себя целый компьютер да и еще в добавок, передвигающийся на колесах.
И даже грамотный человек в сегодняшнем авто уже не сможет сам разобраться с этими системами электроники и программаторами работающими во благо передвижения автомобиля, а все работы по ремонту и исправностей каких-либо деталей, должны выполнять профессионалы и именно они, а не кто-то другой. И если вам понадобилось до оснастить свой автомобиль каким-либо дополнительным оборудованием, то доверить своего железно-электронного коня рекомендуем спецам и людям любящим свое дело.
Что такое автомобильная CAN-shina и для чего она нужна?
Очень частенько, при обсуждении с клиентами вопросов дополнительного оборудования и систем охраны в автомобили приходится проводить целые лекции на предмет почему той или иной монтаж дополнительного оборудования будет проводиться по времени больше суток, а иногда и несколько, конечно не обходится, при разговоре и без умных узконаправленных значений каких либо элементов автомобильной электроники типа CAN шина, RGB сигналы и пр… интересные штучки, что вводит незнающего человека в ступор, да я и сам когда-то, так же слушал про это все.))
Что такое автомобильная CAN-shina и для чего она нужна?
За последнее время, число различных опций в автомобиле выросло в разы. Увеличение опций произошло благодаря гонке за улучшения качества и пожеланиям клиентов и их потребностям не просто передвигаться, а передвигаться с комфортом, также еще законодательство увеличило требования безопасности окружающей среды. И при всех дополнительных оснащений потребление электроэнергии автомобиля увеличилось в двое.
Но можно было-бы оставить все без изменений и если раньше вопрос стоял о надежности, то сегодня еще к этому всему прибавилась масса различных опций электронного характера. И перед инженерами встает вопрос о приспособлении автомобиля к научно-техническому прогрессу не внося колоссальных изменений в конструкции но при этом учитывая все тонкости безопасности и эксплуатации.
Учитывая и стандартно применяющаяся схема однопроводного подключения к массе аккумулятора «GND (минус)», а вторым подключение является подключение массы к кузову, а плюсовой провод тянется по всему автомобилю и питается напрямую от генератора, и когда общая длина проводки в автомобиле достигла с километр и весом более центнера, выяснилось, что однопроводная схема хороша, но не во всем, как думали об этом прежде.
В Детройте на конференции в 1983 году компанией «Bosch» было официально анонсировано устройство под названием CAN (от англ. Controller Area Network) Сеть пространства датчиков.
Для уменьшения проводов в автомобиле и увеличения скорости передачи данных появилась CAN-шина (от англ. Controller Area Network) «сеть пространства датчиков», которую применяют с сохранением минуса на кузове автомобиля и для уменьшения огромных килограммовых жгутов в автомобиле. Эта разработка велась крупной компанией BOSCH с 1970 года, пройдя международную сертификацию «ISO» в 1993 году вышла на массовое производство примерно с 2011 года.
Для чего все таки нужна CAN-шина, принципы ее работы?
Современный автомобиль обладает современной бортовой электроникой с огромным количеством управляюще-исполнительных модулей, к ним можно отнести всевозможные контроллеры, датчики и пр…, а для обмена информацией требовалась надежная и быстрая передача данных, для общения между приборами.
Современная CAN-шина обеспечивает дуплексную систему для одновременной приемо-передачи цифровой информации, обрабатывая ее одним блоком, где скорость передачи данных играет немаловажную роль. Реализация кан шины представляет с собой витую пару и позволила в разы уменьшить электромагнитные поля, которые возникают при работе генератора и других немаловажных систем автомобиля.
Обычно проводка CAN-шины оранжевых цветов, отличаясь друг от друга различными цветными полосками (CAN-Higt – черная, а CAN-Low – оранжево-серая).
С приходом CAN шины и началом ее применения, схема автомобильных проводников высвободилась от определенного количества проводников, которые обеспечивали связь контроллера управления между диагностическим разъемом, двигателем, мультимедией (навигационные системы на ОС Android), системой защиты автомобиля и пр…, по протоколу KWP 2000.
Протокол управления автомобилем при помощи CAN шины KWP 2000
Скорость обработки данных по CAN-шине может быть до 1 Мбит/с, а скорость обработки информации между жизненно важными системами в автомобиле, например – система безопасности торможения ABS, трансмиссия двигателя составляет 500 кбит/с. Помимо основных систем в автомобиле присутствует система комплектации в которую входят – подушки безопасности, мультимедия для автомобиля, блоки управления в дверях авто и пр.. может составить 100 кбит/с.
При обмене информацией между какими-либо блоками управления, и при помощи трансивера сигналы приемо-передачи информации усиливаются до необходимого уровня.
Топология и формы сигналов CAN-шины
Каждый блок подключенный к CAN-шине обладает определенным входным сопротивлением, в следствии чего, образуется нагрузка СAN модуля. Нагрузка на центральную CAN шине зависит от одновременного подключения и использования исполнительных механизмов и электронных блоков управления автомобилем и различными датчиками, например – сопротивление силового агрегата подключенного к CAN-шине составляет в среднем 68 Ом, информационно-командные системы «комплектации КОМФОРТ» от 2,0 до 3,5 кОм. В момент обесточивания всей системы отключается и нагрузочное сопротивление модулей работающих по CAN-шине.
Фрагмент CAN-шины с распределением нагрузки в проводах: CAN High CAN Low.
Системные, автомобильные блоки управления, обладают помимо различных нагрузочных сопротивлений еще и скоростью передачи данных, что может привести к препятствию в момент обработки разнохарактерных импульсов.
Для решения технической проблемы разнохарактерных импульсов применяется для связи между шинами межсетевой преобразователь.
Преобразователь – это, так называемый межсетевой-интерфейс, в автомобиле применяется в блоке управления или отдельно стоящим блоком и пр… Преобразовывающий интерфейс применяется для различного ввода / вывода информации диагностического разъема OBD, по определенному проводу выведенному к диагностическому разъему и соединяющий центральный блок управления OBD разъемом при помощи CAN-шины.
OBD – это унифицированный диагностический разъем с массой удобств и преимуществ для сканирования автомобиля на предмет ошибок и диагностики.
Блок-схема межсетевого CAN интерфейса.
Как показано на картинке, общение в автомобиле электронных блоков CAN шины происходят при помощи разных блоков, но делающие одно дело, силовой агрегат CAN-шины, информационной-командной системы и системы Комфорт, в зависимости от марки автомобиля и по своему составу, блоки могут отличаться, но суть идее остается неизменной.
Диагностика автомобиля на предмет неисправностей производится посредством подключения специализированного диагностического оборудования с необходимым программным обеспечением, так называемого анализатора CAN-шины или при помощи осциллографа (с анализатором шины CHN) и мультиметра (цифрового).
Проверку на предмет работы CAN – шины начинаются с измерения между проводами CAN сопротивления. Но необходимо помнить о том, что CAN-блок шины информационно-командной системы и системой «КОМФОРТ» постоянно находятся под напряжением, что не скажешь про силовой агрегат. Для этого в момент проверки рекомендуется отсоединить аккумулятор, можно обойтись одной из 2 клемм (плюсом или минусом).
В основном все неисправности CAN-шины заключаются в обрыве или замыкании линий, нагрузочных резисторов, нарушением логики работы или понижением уровня сигналов. В случае с нарушением логики поиск и обнаружение проблемы можно только при помощи анализатора CAN – шины.
Источник: disgear.ru
CAN-шина
CAN – стандарт обмена информации промышленной автоматики, призванный объединить в единое сообщество все многообразие электронного оборудования.
Протокол разработан на основе стандартов ISO передачи данных.
В середине 80-х годов прошлого столетия компании Intel и Robert Bosch GmbH разработали цифровое устройство для обмена данных, которое стало стандартом автомобильной
электроники.
Подобно тому, как собираются в единую сеть несколько компьютеров, CAN собирает в цепь все электронные блоки автомобиля. Это делает управление более надежным, быстрым и эффективным. Кроме того, через кабель CAN происходит обмен данными между ЭБУ и сторонними электроприборами, что делает диагностику автомобиля максимально точной и быстрой.
Особенности устройства CAN-шины
Передаются данные, со скоростью 1Мбит/сек, по радиоканалам или на оптоволоконном уровне. Биты данных одномоментно превращаются в кадры (подобие ограниченных порций). Есть сложная схема разделения кадров на доминантные и рецессивные и приоритетов формирования очереди передачи, с применением арбитража. Однако в эти области высоких технологий, простому автолюбителю заглядывать нет никакой нужды.
На физическом уровне CAN-сеть – это непрерывная «шина» дифференциальной пары, в роли проводника информации, прописанной стандартом ISO. Доступ к ней осуществляется посредством драйвера CAN-шины.
Во всех системах современного автомобиля применяется протокол CAN для взаимодействия электронного блока управления с контрольными блоками систем, исполнительными устройствами, датчиками, и в целом всей совокупности периферийного оборудования. Устройство столь умного прибора, на удивление, очень простое (можно сказать примитивное) – два провода и чип. Вот и все!
Первые поколения прибора были снабжены множеством выходов, по каждому их которых передавался лишь один сигнал. Сейчас, по каждому проводу проходят сотни импульсов.
В последних выпусках есть функции подключения к смартфонам.
Есть заложенная функция предвидения и устранения некоторых неполадок электрооборудования автомобиля. Даже электробрелки зажигания, подключаясь через CAN, получают необходимые данные от ЭБУ автомобиля.
CAN – шина, практически, абсолютно нечувствительна к радиопомехам, с высокой степени изолированными контактами.
Передача данных по Кан-шине
Сигналы с электронных приборов, параллельно соединенных в цепь Кан-шины, по двум сплетенным проводам (витой паре), поступает на полосы шины. При этом, на каждом проводе будет свое напряжение, отличное от напряжения во втором проводе.
Другие участники считывают эту информацию. Путем проставления фильтров и идентификаторов, зашифрованных в самом послании, определяется адресат сообщения.
Тот, получив наказ на какое-либо действие, спешит его выполнить.
В покое, напряжение в проводах витой пары одинаковое и составляет 2,5В. Это, так называемое, рецессивное положение. Во время начала сеанса, провода приводятся в возбуждение участником, посылающим сообщение. Напряжение на одном из проводов (CAN High) начинает возрастать, достигая 3,5В. На другом (CAN low) – убывать, до достижения отметки 1В.
Каждое звено общей цепи подключается к CAN кабелю посредством трансивера, в котором разность двух напряжений преобразуется в одно, выходное (2В). Его и получают участники процесса. Таким образом, исключается влияние на обмен информации, непостоянство напряжения электрической сети автомобиля.
Обзор возможностей протокола CAN
- Продукты — микросхема, инструменты разработки, модули, инструменты проектирования;
- Распределение посланий — каждый участник будет иметь возможность выбирать к просмотру сообщения, касающиеся только его. Для этого предусмотрены фильтры;
- Широковещательный характер – если участник не выбрал только свои сообщения, то он имеет возможность просмотра всего потока информации;
- Контентная адресация – нет явного адресата. Выбираются адреса контента по идентификатору в самом сообщении;
- Виды сообщений – кадр данных, удаленный, ошибки, перезагрузки;
- СтандартныйCANи его расширенная версия – отличаются длиной установленного идентификатора. Если в станд. варианте он равен 11битам, то в его «толстом» собрате – 29 бит;
- Конфликтное разрешение и определение приоритета – чтобы избежать одновременной передачи данных несколькими участниками, выработан арбитражный механизм. Все пакеты поделены на доминантный и рецессивный. Не вдаваясь в подробности, отметим только, что всегда приоритет на стороне доминантного сообщения.
- Физические уровни:
— сигнальная сбалансированная двухпроводная схема high–speed CAN представляет вторую часть стандарта ISO 11898;
— третья часть ISO 11898 составляет следующий уровень вышеназванной схемы;
— однопроводной уровень, описываемый стандартом SAE J2411. Шины этого уровня установлены, например, на автомобилях линейки Дженерал Моторс.
- Прерывание конца – CAN-шина должна содержать на конце резисторное сопротивление (120ОМ), для гашения отражения сигнала, создания уровня постоянного тока.
- Кабель – сопротивление должно укладываться в интервал 108 – 132ОМ.
- Разъем – нет стандартов для разъемов CAN. Каждый протокол описывает свои предпочтения. Однако есть фактический стандарт для автопромышленности.
- Ошибка – контролер найдет ее и отметит флажком, разрушая передачу. Эти флажки станут знаком для всех участников цепи на ее сброс.
- Сбои в передачи – при различных сбоях дается возможность дальнейшего функционирования. Сбои могут быть разного характера: прерывание, короткое замыкание в разных частях, разъединение с оконечным сопротивлением.
Скорость передачи данных CAN-шины
Все составляющие сети CAN должны иметь единую скорость передачи информации. Однако данный стандарт не задает одного определенного параметра, ограничиваясь лишь максимальным пределом – 1Мбит/с. Изменения объема передаваемого кадра должно успеть распространиться по всей длине сети, что ставит в обратную зависимость скорости от протяженности – чем длиннее провод, тем ниже скорость. Для передачи 1Мбита за 1секунду нужная длина должна составлять не менее 40 метров. Добавьте к этому объективные факторы, снижающие скорость – защита от помех и разветвленная сеть, где происходят множественные отражения сигнала.
В угоду ускорения процесса, разработчики уменьшают протяженность проводов, одновременно увеличивая число цепей, с возможностью подключения большего количества приборов. Например, общая длина шины, составляющая 10 метров, способна пропускать через себя кадры, со скоростью 2 Мбит/c, с 64 подключенными приборами. Если автомобиль снабжен большим числом электрооборудования, то добавляется одна, две, и т. д. цепи.
Протоколы высокого уровня
CAN всего лишь решает проблему доставки информации из одного пункта в другой, малыми пакетами (всего 8 байт). Многие аспекты обмена данных, остаются вне его компетенции. Ввиду большого спроса на рынке, незамедлительно, появились разработки усовершенствованных протоколов – так называемые, протоколы высокого уровня. Они взялись оказывать более расширенный пакет услуг. Ими пользуются, когда нужно:
- Задать стандарты запуска, в т.ч. скорости обмена;
- Распределение, предварительно распознанных, адресов взаимодействующих элементов и видов сообщений;
- Точная разметка послания;
- Порядок разбора ошибок.
Достоинства и недостатки протокола CAN
Протокол CAN вошел в состав стандартного протокола OBD-II.
К несомненным преимуществам CAN относятся:
- Передача информации в реальном времени;
- Простота и дешевизна использования;
- Помехоустойчивость;
- Обеспечение доступа, путем арбитража, без снижения пропускных характеристик сети;
- Контроль всех ошибок обмена данных;
- Большой интервал рабочих скоростей;
- Широкое его применение, большое разнообразие ассортимента от разных поставщиков.
К недостаткам относятся:
- Маленький объем одного пакета данных, который составляет не более 8 байт;
- Служебные данные занимают больше объема, чем передаваемые, что значительно влияет на скорость (разработчикам есть куда расширяться);
- Нет общего стандарта на протоколы повышенного уровня. В CAN можно прописать любой протокол, если его исполнение помещается в рамках пропускной способности CAN.
Применяется этот протокол не только в автомобильной промышленности. В некоторых отраслях промышленности, дорожного строительства, при строительстве высокотехнологичных объектов (так называемые, умные дома), в велосипедном производстве.
Источник: elm327.club
CAN – шина, CAN – интерфейс
В данной статье не будем полностью расписывать CAN протокол, а обратим внимание лишь на вещи, которые надо обязательно знать и понимать для использования или разработки электронных устройств с поддержкой CAN.
Протокол CAN был разработан для автомобильной промышленности и впоследствии стал стандартом в области создания бортовых сетей автомобилей, железнодорожного транспорта и т.д. CAN позволяет создавать сети с развитыми средствами контроля ошибок, скоростью передачи до 1Мбит/с и пакетами содержащими не более восьми байтов данных.
Канальный и физический уровни CAN
В протоколе CAN нет строгого определения физического уровня, поэтому для передачи сообщений может использоваться, например, витая пара или оптоволокно. По сути дела CAN реализует канальный уровень, т.е. осуществляет формирование пакетов сообщений, ограничение распространения ошибок, подтверждение приема и арбитража. Есть конечно и распространенные стандарты прикладного уровня например CANopen, но если нет необходимости обеспечивать взаимодействие между оборудованием различных производителей, то лучше использовать внутренний протокол.
Структура узла сети CAN
Рассматриваемый нами узел сети CAN состоит из микроконтроллера, CAN контроллера и приемопередатчика (рисунок 1). Чаще всего мы используем микроконтроллеры с встроенным CAN контроллером для упрощения схемы, но иногда используется автономный контроллер CAN с интерфейсом SPI (MCP2510). Далее приемопередатчик подключается к витой паре, на концах которой размещены согласующие резисторы (терминатор) с сопротивлением 120 Ом.
Рисунок 1 – Узел сети CAN
Для формирования логической единицы в витой паре, или свободной шине, на оба провода подается напряжение, равное половине разности напряжения между 0 или Vcc. Логическому нулю соответствует подача на провода линии дифференциального напряжения (рисунок 2).
Рисунок 2 – Логические уровни на CAN-шине
Шина CAN позволяет передавать данные со скоростью 1 Мбит/c при длине кабеля не более 40 м. В обучающей литературе написано, что при снижении скорости передачи до 10кбит/с можно добиться длины сети в 1.5км.
Пакет сообщения CAN
Формат сообщения CAN показан на рисунке 3.
Рисунок 3 – Пакет сообщения CAN
По факту пакет сообщения формируется CAN контроллером, а прикладное ПО только устанавливает идентификатор сообщения, длину сообщения и предоставляет байты данных, поэтому полностью рассматривать пакет не будем, а посмотрим на данные которые мы изменяем при работе с CAN шиной.
Идентификатор (11 – битный )
Или идентификатор (29 – битный)
от 0 до 8 байт данных в пакете
Идентификатор сообщения используется для идентификации данных, отправленных в этом пакете. Каждое отправленное сообщение принимается всеми узлами сети и в данном случае идентификатор позволяет понять конкретному устройству, необходимо ли обрабатывать данное сообщение. Максимальная длина сообщения 8 байт, но можно уменьшить это значение для сохранения пропускной способности шины CAN. Для примера ниже по тексту есть несколько скриншотов CAN сообщений из автомобильной сети.
Арбитраж на шине CAN
Если без подробностей, то первым по шине CAN всегда передается сообщение с наименьшим идентификатором.
Настройка скорости передачи данных по шине CAN
Скорость передачи данных по CAN шине настраивается за счет формирования квантов времени, а не как во многих других протоколах последовательной передачи данных за счет делителя скорости. В большинстве случаев используются скорости 10Кбит/c, 20Кбит/c, 50Кбит/c, 100Кбит/c, 125Кбит/c, 500Кбит/c, 800Кбит/c, 1MBaud и настройки для этих скоростей уже посчитаны. На рисунке 4 изображено окно выбора скорости в программе PcanView.
Рисунок 4 – Выбор скорости передачи данных в программе PcanView
Как мы видим при установке стандартной скорости настройки проставляются автоматически, но бывают случаи когда необходимо использовать другую скорость передачи данных. Например бортовой CAN автомобиля может работать со скоростью 83Кбит/c. В этом случае придется провести расчет настроек самостоятельно или поискать специализированный калькулятор скорости в интернете. Для самостоятельного расчета скорости необходимо понимать, что для передачи одного бита сообщения используется несколько квантов, а интервал передачи состоит из трех сегментов (рисунок 5).
Рисунок 5 – Время передачи одного бита
Первый сегмент всегда фиксирован и равняется одному кванту. Далее идет два сегмента Tseg1 и Tseg2 и количество квантов в каждом сегменте определяется пользователем и может быть равно от 8 до 25. Точка выборки находится между Tseg1 и Tseg2, т.е. в конце первого и в начале второго сегмента. Так же пользователь может определить ширину скачка синхронизации (Synchronization Jump Width — SJW) для подстройки битовой скорости принимающего устройства, который может быть в диапазоне 1 – 4 квантов времени.
Теперь приведем формулу расчета скорости (Пример расчета скорости для CAN контроллера SJA1000):
BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))
BTR – скорость передачи данных,
Pclk – частота работы CAN контроллера,
BRP – значение предделителя частоты генератора скорости передачи
Tseg1 – первый сегмент
Tseg2 – Второй сегмент
Для проверки возьмем уже посчитанную скорость 125Кбит/c и попробуем получить настройки вручную. Pclk возьмем 16 МГц.
BRP = 16МГц /(125K * (1 + Tseg1 + Tseg2))
Затем подбираем интервал передачи бита находящийся в диапазоне от 8 до 25 квантов времени, так что бы получилось целое значение BRP. В нашем случае если взять (1 + Tseg1 + Tseg2) = 16, то BRP будет равен 30.
Далее нужно подобрать соотношение между Tseg1 и Tseg2, которое даст нам желаемое положение точки выборки (Sample Point – SP).
SP = ((1 + Tseg1 + Tseg2) * 70)/100
Подставляем значения и получаем 16 * 0.7 = 11.2, что соответствует соотношению Tseg1 = 10, Tseg2 = 5, т.е. 1 + 10 + 5 = 16. Далее смотрим если Tseg2 >= 5, то SJW = 4, если Tseg2
Рисунок 6 – Настройка CAN фильтра
Если все сделано правильно, то мы увидим сообщения от кресел (рисунок 7), а при нажатии кнопки наклона спинки на пульте управления мы увидим еще одно сообщение с адресом 1F4 идущее от пульта к креслу (рисунок 8).
Рисунок 7 – CAN сообщения от кресла с электроприводом
Рисунок 8 – CAN сообщения от кресла с электроприводом и сообщение от пульта управления к креслу
Теперь мы знаем какие должны быть адрес, длина и данные в CAN пакете для имитации нажатия кнопки изменения положения спинки. Во вкладке Transmit нажимаем NEW и в открывшемся окне создаем копию пакета 1F4, т.е. Length = 3, Data = 40 80 00. Period можно оставить 0 ms, тогда сообщения будут отправляться по факту нажатия кнопки пробел (рисунок 9).
Рисунок 9 – Создание CAN сообщения
На рисунке 10 отображено поле Transmit главного окна содержащее все отправляемые сообщения в CAN и информацию о них. При выделении сообщения и нажатии кнопки пробел произойдет отправка пакета в CAN сеть и кресло немного сдвинется в нужном направлении.
Рисунок 10 – Поле Transmit
Понятное дело, что добиться полноценного управления креслом в таком случае не получиться, т.к. мы не можем исключить из сети пакеты заводского пульта управления, но эта проблема вполне решаема.
Итог
Мы увидели как при определенных усилиях и навыках можно создавать собственные электронные системы с использованием высокотехнологичного протокола CAN и как можно подключаться, исследовать и управлять устройствами подключенными к автомобильной CAN шине.
Источник: www.embeddedsystem.ru