Шина can зачем и для чего нужна в машине
Содержание:
- Introduction
- литература
- Что такое CAN шина в машине
- Необходимость изоляции
- Преимущества и недостатки встроенных шин
- Технология iCAN
- Что такое шина LIN
- CAN модуль (контроллер шины CAN) MCP2515
- Data transmission
- Система передачи данных по шине CAN
- Эмуляция сети CAN на бездисковых станциях под управлением ОС Linux
- Что такое CAN-шина и принцип ее работы
- CAN Interface Hardware
- Driver Operation¶
- Что такое CAN-шина
Introduction
CAN is a two-wire, half duplex, high-speed network system, that is far superior to conventional serial technologies such as RS232 in regards to functionality and reliability and yet CAN implementations are more cost effective.
While, for instance, TCP/IP is designed for the transport of large data amounts, CAN is designed for real-time requirements and with its 1 MBit/sec baud rate can easily beat a 100 MBit/sec TCP/IP connection when it comes to short reaction times, timely error detection, quick error recovery and error repair.
CAN networks can be used as an embedded communication system for microcontrollers as well as an open communication system for intelligent devices. Some users, for example in the field of medical engineering, opted for CAN because they have to meet particularly stringent safety requirements.
Similar requirements had to be considered by manufacturers of other equipment with very high safety or reliability requirements (e.g. robots, lifts and transportation systems).
The greatest advantage of Controller Area Network lies in the reduced amount of wiring combined with an ingenious prevention of message collision (meaning no data will be lost during message transmission).
Without CAN — With CAN
The following shows a need-to-know overview of CAN’s technical characteristics.
Controller Area Network
- Is a serial networking technology for embedded solutions.
- Needs only two wires named CAN_H and CAN_L.
- Operates at data rates of up to 1 Megabit per second.
- Supports a maximum of 8 bytes per message frame.
- Does not support node IDs, only message IDs. One application can support multiple message IDs.
- Supports message priority, i.e. the lower the message ID the higher its priority.
- Supports two message ID lengths, 11-bit (standard) and 29-bit (extended).
- Does not experience message collisions (as they can occur under other serial technologies).
- Is not demanding in terms of cable requirements. Twisted-pair wiring is sufficient.
литература
- Список опубликованных книг по CAN можно найти на сайте CiA.
- Вольфхард Лоуренц (ред.): Сеть контроллеров CAN — Основы и практика. , 5-е издание, VDE, Берлин / Оффенбах 2011, ISBN 978-3-8007-3332-3 .
- Конрад Эчбергер (ред.): Сеть контроллеров CAN — основы, протоколы, модули, приложения. Hanser, Мюнхен 1994, ISBN 3-446-19431-2 .
- Хорст Энгельс: CAN-шина — технология, представленная просто, понятно и практично. Францис, Поинг 2002, ISBN 3-7723-5146-8 .
- Вернер Циммерманн и Ральф Шмидгалл: Автобусные системы в автомобильной технике — протоколы, стандарты и архитектура программного обеспечения. 5-е издание, Springer Vieweg, Висбаден, 2014 г., ISBN 978-3-658-02418-5 .
- Кай Боргест: Электроника в автомобильной технике. 3-е издание, Springer-Vieweg, Висбаден, 2013 г., ISBN 978-3-8348-1642-9 .
- Конрад Рейф: Аккумуляторы, электрические системы и сети. Vieweg + Teubner Verlag, Висбаден 2010, ISBN 978-3-8348-1310-7 .
- Герхард Шнелл и Бернхард Видеманн: Автобусные системы в автоматизации и технологических процессах, Vieweg + Teubner Verlag, Висбаден 2008, ISBN 978-3-8348-0425-9 .
Что такое CAN шина в машине
Тем автомобилистам, которые хотят узнать, что это такое, не стоит обращаться к каталогам зимней или летней резины. Рекомендуем углубить свои знания в электронике.
CAN шина автомобиля – это часть электронной системы автомобиля, предназначенная для быстрого мониторинга технического состояния транспортного средства в целом и отдельных его элементов и систем.
В машину CAN-шина монтируется для объединения датчиков и процессоров в единую информационную сеть, помогающую синхронизации команд и обработке информации. Благодаря ей происходит сбор данных и мгновенный обмен ими. За счет параллельного подключения обеспечивается возможность корректировки отправляемых сигналов для систем или узлов через датчики на лету.
CAN является аббревиатурой и расшифровывается как Controller Area Network, что может переводиться как «сеть из контроллеров». Фактически шина занимается приемом информации от расположенных вокруг устройств и отправкой данных на такие устройства. Разработка и первые внедрения стандарта проводились еще более трех десятилетий назад.
Необходимость изоляции
Помимо широкого распространения в автомобильных приложениях, интерфейс CAN используется в системах промышленной автоматизации, драйверах двигателей переменного и постоянного тока, каналах обмена ПЛК, источниках питания телекоммуникационного оборудования, системах отопления и кондиционирования, лифтах, солнечных инверторах и зарядных станциях электрических автомобилей. В некоторых случаях в оборудовании имеются низко- и высоковольтные сегменты, которые должны быть изолированы друг от друга, чтобы защитить низковольтные компоненты от повреждения.
Высоковольтные двигатели, коммутаторы, источники питания и другое оборудование могут генерировать помехи амплитудой в сотни и тысячи вольт. Высоковольтный сигнал, попадающий в низковольтную подсистему, потенциально может уничтожить микроконтроллер. Способом решения этой проблемы является использование изолированных приемопередатчиков и отдельных источников питания с их собственными возвратными землями.
Преимущества и недостатки встроенных шин
Как и у каждой системы у CAN-шины есть свои позитивные негативные характеристики. Основные плюсы заключаются в таких факторах:
- за счет высокого быстродействия устройства способны практически мгновенно связываться пакетными данными;
- кабельные установки выдерживают воздействие электромагнитых помех;
- электроника наделена системой контроля с несколькими уровнями, что способствует минимизации возникновения ошибок во время приема/передачи пакетов данных;
- за счет автоматики шина самостоятельно распределяет по CANалам скорость, оказывая позитивное влияние на работу электронных систем в целом;
- производители позаботились о достаточной степени безопасности цифрового интерфейса, поэтому внешние несанкционированные подключения будут мгновенно заблокированы;
- использование в конструкции цифрового интерфейса позволяет без проблем осуществлять монтаж сигнализации либо иных систем безопасности с минимальным взаимодействием с бортовой штатной системой.
Важно знать минусы установки шин:
- определенные модели интерфейсов рассчитаны на лимитированный объем пакетных данных, что является малоприемлемым для современных автомобилей, нашпигованным большим количеством электроники. Если добавлять к шине новых источников данных, то это негативно скажется на нагрузке, а также существенно повысит время отклика оборудования;
- передаваемые данные по каналам связи обладают исключительным назначением. Полезная информация отнимает минимум трафика;
- может случаться отключение стандартизации из-за внедрения протокола повышенного уровня.
Более стабильно работают интерфейсы последних поколений. Предпочтительней выбирать машины с такими шинами.
Технология iCAN
Рассматривая шины транспортного средства, следует уделить внимание программе блокировки работы двигателя. Для этого разработан обмен данными посредством шины CAN, iCAN-модулем
Он подключается к цифровой шине и отвечает за соответствующую команду
Для этого разработан обмен данными посредством шины CAN, iCAN-модулем. Он подключается к цифровой шине и отвечает за соответствующую команду.
Имеет небольшие габариты и присоединяется к любому отделению шины. При старте движения автомобиля iCAN посылает команду соответствующим блокам, и мотор глохнет. Преимуществом данной программы является отсутствие разрыва сигнала. Существует инструктирование электронного блока, после этого сообщение отключает функционирование соответствующих исполнительных элементов.
Этот тип блокировки характеризуется наивысшей скрытностью, а потому и надежностью. При этом ошибки не записываются в память ЭБУ. CAN-шина предоставляет всю информацию о скорости, движении автомобиля данному модулю.
Что такое шина LIN
Шина LIN – это простая последовательная однопроводная шина для автомобильных применений и используется в тех случаях когда применение CAN шины – дорого. По шине LIN управляются различные приводы (корректоры фар, заслонки климатической системы, приводы центрального замка), а так же собирается информация с простых датчиков (датчики дождя, света, температуры).
Для изучения шины LIN Вы можете использовать наш адаптер CAN-Hacker 3.0 с дополнительной опцией LIN анализатора. А так же интерфейс CAN-Hacker CH-P
Пример системы управления дверью с шиной LIN и без нее:
Еще пример, в автомобиле Porsche Macan 2015 г. все привода и датчики климатической системы подключены к шине LIN а сам блок климат контроля связан с автомобилем при помощи CAN шины.
Дешевизна LIN обусловлена тем что реализация протокола LIN полностью программная и строится на базе обычного UART (родственник RS232, COM порт). Так же LIN не требует применения точных времязадающих цепей – кварцевых резонаторов и генераторов. Поэтому можно применять дешевые микроконтроллеры.
Скорость передачи данных
Скорость передачи данных на шине LIN стандартная для устройств построенных на базе UART: 2400; 9600; 10400; 19200; 20000 Бод. Это немного но достаточно для передачи данных от датчиков и для управления медленными механизмами.
Электрическая реализация LIN
Электрически интерфейс LIN реализован так же просто. В каждом узле линия шины подтянута к шине питания +12V. Передача осуществляется опусканием уровня шины до уровня массы GND. Микроконтроллер подключается к шине LIN при помощи специальной микросхемы Трансивера, например TJA1021
Подключение LIN трансивера к микроконтроллеру
Архитектура сети LIN
Особенностью шины LIN является то, что в сети присутствует два вида узлов: Master и Slave, Master – ведущий, Slave – подчиненный.
Master может опрашивать Slave о его состоянии, будить его, отправлять ему команды. Обмен информации на шине LIN происходит в формате обмена пакетами, и на первый взгляд может показаться что механизм идентичен шине CAN, это не так. Объясняем почему:
Структура LIN пакета выглядит так:
Frame – Header – заголовок кадра, который отправляется в шину Мастером. Включает в себя ID кадра
Уловите разницу – в шине CAN все узлы передают и ID кадра и данные. В шине LIN – заголовок пакета это задача Мастер-узла.
Поле Frame-Header состоит из полей:
BREAK – Это сигнал шине о том что мастер сейчас будет говорить
Поле синхронизации – это просто байт = 0x55. При его передаче приемники подстраивают свою скорость.
PID – это поле защищенного идентификатора. В дальнейшем будем писать просто – идентификатор.
Идентификатор может принимать значения от 0 до 59 (0x3B в HEX) для пользовательских пакетов. Так же возможно использование специальных служебных пакетов с ID 0x3C, 0x3D, 0x3E и 0x3F. Защищенность идентификатора заключена в следующем:
В структуре байта ID мы видим биты собственно самого идентификатора с ID0 по ID5, а затем идут два контрольных бита P0 и P1, которые рассчитываются так:
P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4 P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
ID = 0x0C PID = 0x4C
Если в PID контрольные биты рассчитаны неверно то пакет не будет обработан принимающей стороной.
В случае если мы будем эмулировать работу какого либо узла Master, предварительно изучив отправляемые им данные при помощи LIN сниффера, то нам не придется задумываться о расчете контрольных битов ID, поскольку в пакетах которые мы видим сниффером все уже посчитано до нас.
После того как Slave принял Header мастера он отвечает полем Frame Response который состоит из байтов данных в количестве от 1 до 8 и байта контрольной суммы.
Обратите внимание на отсутствие поля DLC отвечающего за количество байтов данных как в CAN шине. В шине LIN количество байтов данных определяется на этапе написания ПО контроллера
Поэтому процесс обмена на шине LIN сложнее анализировать при помощи сниффера – приходится вводить специальный алгоритм разделения пакетов, который угадывает сколько байтов данных было в принятом пакете.
CAN модуль (контроллер шины CAN) MCP2515
Модуль MCP2515 включает в себя CAN контроллер MCP2515, который представляет собой высокоскоростной CAN приемопередатчик. Соединение модуля MCP2515 с микроконтроллером осуществляется с помощью интерфейса SPI, поэтому его легко подключить ко всем микроконтроллерам с данным интерфейсом.
Начинающим изучение CAN-шины целесообразно начинать именно с этого модуля ввиду его простоты и легкости подключения к большинству современных микроконтроллеров.
Основные технические характеристики модуля MCP2515:
- включает в себя высокоскоростной CAN приемопередатчик TJA1050;
- размеры модуля: 40×28mm;
- управление по интерфейсу SPI с возможностью подключения к CAN-шине нескольких устройств;
- кварцевый генератор на 8 МГц;
- сопротивление на концах 120 Ом;
- включает независимый ключ, светодиодный индикатор, индикатор мощности;
- поддерживает скорости передачи данных до 1 Мбит/с;
- низкий потребляемый ток в режиме ожидания;
- возможность подключения до 112 устройств (узлов).
Назначение контактов (распиновка) CAN модуля MCP2515 представлено в следующей таблице.
Наименование контакта | Назначение контакта |
VCC | контакт питания 5 В |
GND | общий провод (земля) |
CS | SPI SLAVE select pin (Active low) (выбор ведомого) |
SO | SPI master input slave output lead |
SI | SPI master output slave input lead |
SCLK | контакт синхронизации SPI |
INT | контакт прерывания MCP2515 |
В данном проекте мы будем передавать данные, считываемые с датчика температуры и влажности DHT11 платой Arduino Nano, плате Arduino Uno с помощью CAN модуля MCP2515.
Data transmission
CAN features an automatic arbitration-free transmission. A CAN message that is transmitted with highest priority will succeed, and the node transmitting the lower priority message will sense this and back off and wait.
This is achieved by CAN transmitting data through a binary model of «dominant» bits and «recessive» bits where dominant is a logical 0 and recessive is a logical 1. This means open collector, or wired or physical implementation of the bus (but since dominant is 0 this is sometimes referred to as wired and). If one node transmits a dominant bit and another node transmits a recessive bit then the dominant bit «wins» (a logical AND between the two).
|
|
|
So, if a recessive bit is being transmitted while a dominant bit is sent, the dominant bit is displayed, evidence of a collision. (All other collisions are invisible.) A dominant bit is asserted by creating a voltage across the wires while a recessive bit is simply not asserted on the bus. If any node sets a voltage difference, all nodes will see it. Thus there is no delay to the higher priority messages, and the node transmitting the lower priority message automatically attempts to re-transmit 6 bit clocks after the end of the dominant message.
When used with a differential bus, a carrier sense multiple access/bitwise arbitration (CSMA/BA) scheme is often implemented: if two or more devices start transmitting at the same time, there is a priority based arbitration scheme to decide which one will be granted permission to continue transmitting. The CAN solution to this is prioritized arbitration (and for the dominant message delay free), making CAN very suitable for real time prioritised communications systems.
During arbitration, each transmitting node monitors the bus state and compares the received bit with the transmitted bit. If a dominant bit is received when a recessive bit is transmitted then the node stops transmitting (i.e., it lost arbitration). Arbitration is performed during the transmission of the identifier field. Each node starting to transmit at the same time sends an id. with dominant as binary 0, starting from the high bit. As soon as their id. is a larger number (lower priority) they will be sending 1 (recessive) and see 0 (dominant), so they back off. At the end of id. transmission, all nodes but one have backed off, and the highest priority message gets through unimpeded.
For example, consider an 11-bit id. CAN network, with two nodes with id’s of 15 (binary representation, 00000001111) and 16 (binary representation, 00000010000). If these two nodes transmit at the same time, each will transmit the first 6 zeros of their id. with no arbitration decision being made. When the 7th bit is transmitted, the node with the id. of 16 transmit a 1 (recessive) for its id., and the node with the id. of 15 transmits a 0 (dominant) for its id.. When this happens, the node with the id. of 16 will realize that it lost its arbitration, and allow the node with id. of 15 to continue its transmission. This ensures that the node with the lower bit value will always win the arbitration. The id. with the smaller number will win the right to use.
Система передачи данных по шине CAN
Логические состояния шин и шифрование
Для обмена данными шина CAN использует два состояния «доминантное» и «рецессивное», с помощью которых передаются информационные биты. Доминантное состояние соответствует «0», а рецессивное — «1». Для шифрования передачи используется процесс NRZ (без возврата на ноль), в котором нулевое состояние не всегда возвращается в промежуток между двумя одинаковыми состояниями передачи и, соответственно, необходимый для синхронизации временной интервал между двумя фронтами может оказаться слишком большим.
В основном используется двухпроводной кабель, в зависимости от окружающих условий, с витой или не витой парой. Две шинные линии называются CAN-H и CAN-L (рис. «Уровень напряжения передачи по CAN» ).
Двухпроводный кабель обеспечивает симметричную передачу данных, при которой биты передаются через обе шинные линии с использованием разных напряжений. Это уменьшает чувствительность к синфазным помехам, поскольку помехи влияют на обе линии и могут быть отфильтрованы путем создания разности (рис. «Фильтрация помех по шине CAN» ).
Однопроводный кабель представляет собой способ сокращения производственных затрат за счет экономии на втором кабеле. Однако общее подключение к массе, выполняющей функцию второго кабеля, должно быть доступно для этой цели всем пользователям шины. Поэтому однопроводный вариант шины CAN возможен только для системы связи с ограниченным монтажным пространством. Передача данных по однопроводному кабелю более чувствительна к излучаемым помехам — он не позволяет фильтровать импульсы помех так, как в двухпроводном кабеле. В результате на шинной линии требуется сигнал более высокого уровня. Это, в свою очередь, отрицательно сказывается на излучении помех. Поэтому необходимо снизить крутизну фронта импульсов сигналов шины по сравнению с двухпроводным кабелем. Это связано с уменьшением скорости передачи данных. По этой причине однопроводной кабель используется только для низкоскоростной шины CAN в области кузова и электроники для функций комфорта. Например, низкоскоростная шина CAN с двухпроводным кабелем в случае обрыва кабеля должна продолжать работать как однопроводная система. Однопроводное решение не описывается в спецификации CAN.
Уровни напряжения шины CAN
Высокоскоростные и низкоскоростные шины CAN используют разные уровни напряжения для передачи доминантных и рецессивных состояний. Уровни напряжения низкоскоростной шины CAN показаны на рис. а, «Уровень напряжения передачи по CAN», а высокоскоростной — на рис. Ь, «Уровень напряжения передачи по CAN».
Высокоскоростная шина CAN в рецессивном состоянии на обеих линиях использует номинальное напряжение 2,5 В. В доминантном состоянии на CAN-H и CAN-L подается номинальное напряжение 3,5 В и 1,5 В, соответственно. В низкоскоростной шине CAN в рецессивном состоянии на CAN-H подается напряжение 0 В (максимум 0,3 В), на CAN-L — 5 В (минимум 4,7 В). В доминантном состоянии на CAN-H напряжение составляет не менее 3,6 В, а на CAN-L не более 1,4 В.
Предельные значения
Для арбитражного метода в случае CAN важно, чтобы все узлы в сети видели биты идентификатора фрейма одновременно, чтобы узел, передавая бит, видел, передают ли их другие узлы. Задержки возникают из-за распространения сигнала в шине данных и обработки в трансивере
Таким образом, максимально допустимая скорость передачи данных зависит от общей длины шины. Стандарт ISO предусматривает скорость 1 Мбит/с для 40 м. У более длинных проводов возможная скорость передачи данных примерно обратно пропорциональна длине провода. Сети с дальностью 1 км могут работать со скоростью 40 кбит/с.
Эмуляция сети CAN на бездисковых станциях под управлением ОС Linux
Сеть персональных компьютеров, объединенных одновременно сетью CAN и локальной сетью Ethernet, может быть эффективно использована для моделирования распределенной системы управления, в которой для обмена между компонентами системы используется сеть CAN-bus. В этом случае каждый из ПК имитирует отдельный узел CAN-сети. Локальная сеть Ethernet позволяет централизованно управлять узлами CAN-сети, модернизировать программы, имитирующие поведение CAN-узлов и осуществлять контроль за состоянием CAN-узлов. Эта методика была опробована в НИИЯФ им. Д. В. Скобельцина МГУ совместно с ООО «Марафон» при разработке распределенной системы диагностики пучка в ускорителе электронов — разрезном микротроне на 70 МэВ . В качестве ПК, имитирующих отдельные узлы системы, используются бездисковые IBM-совместимые компьютеры. В бездисковых станциях устанавливаются только два адаптера — CAN-cети и локальной сети. Видеоадаптер, жесткий диск и другие периферийные устройства в ПК не устанавливаются. В адаптер локальной сети устанавливается ПЗУ для загрузки ПК по сети с использованием протокола BOOTP. Бездисковые станции загружаются с центрального единого сервера. И сервер, и бездисковые станции работают под управлением операционной системы Linux с расширением реального времени RTLinux. После загрузки операционной системы по сети и разворачивания ее в памяти бездисковой станции производится монтирование тома сетевой файловой системы (NFS) на центральном сервере, и станция получает доступ к «своей» прикладной программе, имитирующей определенный узел CAN-сети. Централизованная загрузка позволяет менять образ операционной системы сразу для всех станций и оперативно в одном месте менять прикладное программное обеспечение, имитирующее узел CAN-сети. Прикладная программа, реализующая функциональность CAN-узла, разрабатывается на ANCII С под компилятор gnu, что позволяет потом достаточно быстро портировать исходный код под один из компиляторов для встраиваемых микроконтроллеров. По мере появления готовых компонентов будущей распределенной системы бездисковые ПК могут ими заменяться.
Данная методика может быть рекомендована для имитационного моделирования сложных распределенных систем управления на транспорте, в промышленности, в автоматизации больших экспериментальных установок.
Что такое CAN-шина и принцип ее работы
КАН-шина представляет собой сеть контроллеров. Устройство используется для объединения всех управляющих модулей автомобиля в одну рабочую сеть с общим проводом. Этот девайс состоит из одной пары кабелей, которая называется CAN. Информация, передающаяся по каналам из одного модуля на другой, отправляется в закодированном виде.
Схема подключения устройств к CAN-шине в Мерседесе
Какие функции может выполнять CAN-шина:
- подключение к автомобильной бортовой сети любых девайсов и устройств;
- упрощение алгоритма подсоединения и функционирования вспомогательных систем машины;
- блок может одновременно получать и передавать цифровые данные из разных источников;
- использование шины снижает воздействие внешних электромагнитных полей на функционирование основных и вспомогательных систем машины;
- CAN-шина позволяет ускорить процедуру передачи информации к определенным устройствам и узлам автомобиля.
Эта система работает в нескольких режимах:
- Фоновый. Все устройства отключены, но на шину подается питание. Величина напряжения слишком мала, поэтому разрядить аккумуляторную батарею шина не сможет.
- Режим запуска. Когда автолюбитель вставляет ключ в замок и проворачивает его либо жмет кнопку Старта, происходит активация устройства. Включается опция стабилизации питания, которое подается на контроллеры и датчики.
- Активный режим. В этом случае между всеми контроллерами и датчиками происходит обмен данными. При работе в активном режиме параметр потребления энергии может быть увеличен до 85 мА.
- Режим засыпания или отключения. При глушении силового агрегата контроллеры КАН перестают функционировать. При включении режима засыпания все узлы машины отключаются от бортовой сети.
Канал Виалон СУшка в своем видео рассказал о КАН-шине и что надо знать про ее эксплуатацию.
Плюсы и минусы
Какими преимуществами обладает КАН-шина:
- Простота установки устройства в автомобиль. Владельцу машины не придется тратиться на монтаж, поскольку выполнить эту задачу можно самостоятельно.
- Быстродействие устройства. Девайс позволяет быстро обмениваться информацией между системами.
- Устойчивость к воздействию помех.
- Все шины обладают многоуровневой системой контроля. Ее использование дает возможность предотвратить появление ошибок при передаче и приеме данных.
- В процессе функционирования шина автоматически разбрасывает скорость по разным каналам. Это позволяет обеспечить оптимальную работу всех систем.
- Высокая безопасность устройства, при надобности система блокирует несанкционированный доступ.
- Большой выбор устройств различных типов от разных производителей. Можно подобрать вариант, предназначенный для конкретной модели авто.
Какие недостатки характерны для устройства:
- В девайсах бывают ограничения по объему передаваемых данных. В современных автомобилях используется множество электронных девайсов. Их большое количество приводит к высокой загруженности канала передачи информации. Это становится причиной увеличения времени отклика.
- Большая часть отправляющихся по шине данных обладает конкретным назначением. На полезную информацию отводится маленькая часть трафика.
- При использовании протокола высшего уровня автовладелец может столкнуться с проблемой отсутствия стандартизации.
CAN Interface Hardware
A great variety of microprocessor chips, such as the ARM Cortex-M3 processor, provide interfaces such as Ethernet, digital I/O, analog I/O, USB, UARTS, and, last but not least, Controller Area Network. However, that does not mean that you can use the chip “as is” and connect it to a network, sensors, etc. All of these interfaces require some kind of a “hardware driver.” In case of serial technologies such as RS232 or CAN, you will need the corresponding transceiver.
In the specific case of the CAN bus controller, we need a line driver (transceiver) to convert the controller’s TTL signal to the actual CAN level, which is a differential voltage. The use of differential voltage contributes to the vast reliability of CAN.
The next image compares both signals, TTL and differential voltage:
The actual signal status, recessive or dominant, is based on the differential voltage between CAN_H and CAN_L (2V during dominant bit time; 0V during recessive bit time).
Driver Operation¶
The CAN driver is designed with distinct states and strict rules regarding the functions or conditions that trigger a state transition. The following diagram illustrates the various states and their transitions.
State transition diagram of the CAN driver (see table below)
Label | Transition | Action/Condition |
---|---|---|
A | Uninstalled -> Stopped | |
B | Stopped -> Uninstalled | |
C | Stopped -> Running | |
D | Running -> Stopped | |
E | Running -> Bus-Off | Transmit Error Counter >= 256 |
F | Bus-Off -> Uninstalled | |
G | Bus-Off -> Recovering | |
H | Recovering -> Stopped | 128 occurrences of bus-free signal |
Driver States
Uninstalled: In the uninstalled state, no memory is allocated for the driver and the CAN controller is powered OFF.
Stopped: In this state, the CAN controller is powered ON and the CAN driver has been installed. However the CAN controller will be unable to take part in any CAN bus activities such as transmitting, receiving, or acknowledging messages.
Running: In the running state, the CAN controller is able to take part in bus activities. Therefore messages can be transmitted/received/acknowledged. Furthermore the CAN controller will be able to transmit error frames upon detection of errors on the CAN bus.
Bus-Off: The bus-off state is automatically entered when the CAN controller’s Transmit Error Counter becomes greater than or equal to 256 (see CAN2.0B specification regarding error counter rules). The bus-off state indicates the occurrence of severe errors on the CAN bus or in the CAN controller. Whilst in the bus-off state, the CAN controller will be unable to take part in any CAN bus activities. To exit the bus-off state, the CAN controller must undergo the bus recovery process.
Recovering: The recovering state is entered when the CAN driver undergoes bus recovery. The CAN driver/controller will remain in the recovering state until the 128 occurrences of the bus-free signal (see CAN2.0B specification) is observed on the CAN bus.
Что такое CAN-шина
Электронный КАН-интерфейс в авто представляет собой сеть контроллеров, использующихся для объединения всех управляющих модулей в единую систему.
Данный интерфейс представляет собой колодку, с которой можно соединять посредством проводов блоки:
- противоугонного комплекса, оборудованного функцией автозапуска либо без нее;
- системы управления мотором машины;
- антиблокировочного узла;
- системы безопасности, в частности, подушек;
- управления автоматической коробкой передач;
- контрольного щитка и т. д.
Устройство и где находится шина
Конструктивно CAN-шина представляет собой блок, выполненный в пластиковом корпусе, либо разъем для подсоединения кабелей. Цифровой интерфейс состоит из нескольких проводников, которые называются CAN. Для подключения блоков и устройств используется один кабель.
Место монтажа устройства зависит от модели транспортного средства. Обычно этот нюанс указывается в сервисном руководстве. СAN-шина устанавливается в салоне автомобиля, под контрольным щитком, иногда может располагаться в подкапотном пространстве.
Как работает?
Принцип работы автоматической системы заключается в передаче закодированных сообщений. В каждом из них имеется специальный идентификатор, являющийся уникальным. К примеру, «температура силового агрегата составляет 100 градусов» или «скорость движения машины 60 км/ч». При передаче сообщений все электронные модули будут получать соответствующую информацию, которая проверяется идентификаторами. Когда данные, передающиеся между устройствами, имеют отношение к конкретному блоку, то они обрабатываются, если нет — игнорируются.
Длина идентификатора CAN-шины может составить 11 либо 29 бит.
Каждый передатчик информации одновременно выполняет считывание данных, передающихся в интерфейс. Устройство с более низким приоритетом должно отпустить шину, поскольку доминантный уровень с высоким показателем искажает его передачу. Одновременно пакет с повышенным значением остается нетронутым. Передатчик, который потерял связь, спустя определенное время ее восстанавливает.
Интерфейс, подключенный к сигналке или модулю автоматического запуска, может функционировать в разных режимах:
- Фоновый, который называется спящим или автономным. Когда он запущен, все основные системы машины отключены. Но при этом на цифровой интерфейс поступает питание от электросети. Величина напряжения минимальная, что позволяет предотвратить разряд аккумуляторной батареи.
- Режим запуска или пробуждения. Он начинает функционировать, когда водитель вставляет ключ в замок и проворачивает его для активации зажигания. Если машина оборудована кнопкой Старт/Стоп, это происходит при ее нажатии. Выполняется активация опции стабилизации напряжения. Питание подается на контроллеры и датчики.
- Активный. При активации этого режима процедура обмена данными осуществляется между регуляторами и исполнительными устройствами. Параметр напряжения в цепи увеличивается, поскольку интерфейс может потреблять до 85 мА тока.
- Деактивация или засыпание. Когда силовой агрегат останавливается, все системы и узлы, подключенные к шине CAN, перестают функционировать. Выполняется их деактивация от электрической сети транспортного средства.
Характеристики
Технические свойства цифрового интерфейса:
- общее значение скорости передачи информации составляет около 1 Мб/с;
- при отправке данных между блоками управления различными системами этот показатель уменьшается до 500 кб/с;
- скорость передачи информации в интерфейсе типа «Комфорт» — всегда 100 кб/с.
Канал «Электротехника и электроника для программистов» рассказал о принципе отправки пакетных данных, а также о характеристиках цифровых адаптеров.