Два специальных внешних вывода контроллера CANNY 7, расположенные на 4х контактном разъеме: CAN-H и CAN-L, предназначены для подключения к цифровой информационной шине CAN.
Регистры драйвера
Ниже приведено описание допустимых значений регистров управления работой драйвера CAN.
Регистры конфигурации драйвера CAN позволяют установить параметры работы контроллера в качестве узла шины CAN:
Примечание: В режиме пассивного приема сообщений CAN (listen only) в отличие от нормального режима CAN (normal) драйвер выполняет прием данных из CAN-шины, но при этом не отправляет подтверждение их приема и не переводит сеть в состояние ошибки при обнаружении таковой. Таким образом контроллер остается незаметным для остальных устройств на шине, никак себя не проявляя. Для нормальной работы сети, в ней должны находится минимум два устройства работающие в режиме normal.
Примечание: При включенном режиме фильтрации CAN драйвер будет принимать только те сообщения, идентификаторы которых совпадают с указанными в регистрах установки фильтра приема сообщений CAN значениями, игнорируя все остальные.
Примечание: При включенном режиме запрета автоматической повторной отправки сообщения CAN при ошибке передачи, драйвер будет предпринимать только однократные попытки отправки сообщения CAN, вне зависимости от успешности его получения приемником, предотвращая, таким образом, возникновение ошибки приема (зависания) шины в случае отсутствия в сети приемника данного сообщения, иначе, в соответствии со стандартом CAN, сообщение будет отправляться до получения подтверждения его успешного приема хотя бы одним приемником.
Именованные константы, определяющие конфигурацию CAN-драйвера, содержатся в разделе «Конфигурация CAN» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Регистры диагностики драйвера CAN позволяют пользователю определить состояние драйвера в тот или иной момент выполнения диаграммы.
Регистры приема драйвера CAN позволяют получить доступ к значениям, полученным по шине.
Примечание: Регистр принятого сообщения CAN ERL, помимо числа байт в принятом сообщении 0…8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 — признак EXT и бит 14 признак RTR. Где EXT = 1 при приеме сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при приеме удаленного запроса данных, RTR = 0 при приеме обычного сообщения.
Регистры передачи сообщений CAN используются для размещения в буфере передачи драйвера данных, подлежащих отправке.
Примечание: Регистр сообщения передачи CAN ERL, помимо числа байт в передаваемом сообщении 0…8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 — признак EXT и бит 14 признак RTR. Где EXT = 1 при передаче сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при передаче удаленного запроса данных, RTR = 0 при передаче обычного сообщения.
Примеры отправки сообщений
Пример №1 функциональной диаграммы отправки данных в шину CAN.
Пример функциональной диаграммы отправки данных в шину CAN.
Выполняя диаграмму контроллер, с периодичностью 1 раз в 100мс, передает в шину на скорости 125 кБод данные о состоянии трех своих входов, используя сообщения стандартного формата с идентификатором 0x123, содержащие один байт данных.
Пример №2 функциональной диаграммы отправки CAN-сообщения.
Пример функциональной диаграммы отправки CAN-сообщения со стандартным идентификатором 0x001: 0xDE 0xAD 0xBE 0xEF 0x12 0x34 0x56 0x78 по появлению сигнала на восьмом канале контроллера.
Пример функциональной диаграммы отправки CAN-сообщения.
Пример №3 функциональной диаграммы отправки CAN-сообщения.
Пример функциональной диаграммы отправки CAN-сообщения с расширенным идентификатором 0x1f110001: 0xDE 0xAD 0xBE 0xEF 0x12 0x34 0x56 0x78 по появлению сигнала на восьмом канале контроллера.
Отличия в отправке расширенного сообщения от отправки стандартного: установить бит 15 регистра [Регистр сообщения передачи CAN ERL], старшую часть идентификатора записать в регистр [Регистр сообщения передачи CAN IDH].
Пример функциональной диаграммы отправки CAN-сообщения с расширенным идентификатором.
Пример №4 функциональной диаграммы отправки CAN-сообщения.
Пример функциональной диаграммы отправки CAN-сообщения со стандартным идентификатором 0x001: 0xDE 0xAD 0xBE 0xEF 0x12 0x34 0x56 0x78 по появлению сигнала на восьмом канале контроллера, а также отправка сообщения с тем же ID, но с нулевыми данными при пропадании сигнала восьмом канале контроллера.
Пример функциональной диаграммы отправки CAN-сообщения.
Пример №5 функциональной диаграммы периодической отправки нескольких сообщений.
Пример периодической отправки нескольких сообщений.
Примеры получения сообщений
Пример №1 функциональной диаграммы приема данных из шины CAN.
Выполняя диаграмму контроллер, получая по шине сообщения стандартного формата с идентификатором 0x0123, содержащие один байт данных, устанавливает на трех своих выходах состояние в соответствии с полученным значением.
Пример функциональной диаграммы приема данных из шины CAN.
Пример №2 функциональной диаграммы приема данных из шины CAN.
Выполняя диаграмму контроллер, получая по шине сообщения стандартного формата с идентификатором 0x01F3, анализирует содержащееся в одном из байтов сообщения значение и устанавливает на своих выходах и встроенном светодиоде соответствующие состояния.
Пример функциональной диаграммы приема данных из шины CAN.
Пример №3 функциональной диаграммы приема данных из шины CAN с использованием фильтров.
В процессе работы контроллер, получая по шине сообщения в расширенном формате, сравнивает их идентификаторы со значениями, заданными в регистрах установки фильтров сообщения CAN и, если они совпадают, передает их содержимое в регистры приема CAN для обработки в функциональной диаграмме, сопровождая это включением своего зеленого контрольного светодиода на 10мс. Сообщения, идентификаторы которых не совпадают с указанными в фильтрах, автоматически отбрасываются, сокращая расходование ресурсов контроллера и повышая возможности бесперебойного приема требуемых сообщений.
Пример функциональной диаграммы приема данных из шины CAN с использованием фильтров.
Видео:Что такое CAN шинаСкачать
Побеждаем шину CAN. Часть 1. Технология
Сегодня я хочу познакомить вас с интересной микроконтроллерной платформой CANNY. Это обзорная статья в которой вы узнаете о технологии, а в последующих статьях я расскажу вам о работе с сообщениями CAN, интеграции CANNY c Arduino Mega Server и о тех возможностях, которые предоставляет эта связка.
Почему CANNY? От названия шины CAN, которая широко используется на транспорте и, в частности, во всех современных автомобилях в качестве бортовой сети. Итак, что же можно сделать, имея специализированный контроллер, подключённый к CAN шине вашего автомобиля?
Видео:CAN шина👏 Как это работаетСкачать
Шина CAN
Образно говоря, шина CAN это нервная система вашего автомобиля. По ней передаётся вся информация о состоянии блоков и систем, а также управляющие команды, которые во многом определяют поведение автомобиля. Зажигание фар, открывание и закрывание дверей, управление проигрыванием музыки в салоне машины, срабатывание сигнализации и т. д. — всё это работает и управляется по этой шине.
Физически, шина CAN представляет собой два перевитых провода и очень проста в монтаже и подключении. Несмотря на свою простоту, она, благодаря своей дифференциальной природе, хорошо защищена от различных наводок и помех. Высокая надежность и большая допустимая длина сети, до 1000 метров, помогла CAN завоевать широкую популярность у производителей различного, не только автомобильного оборудования.
Видео:Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
Контроллеры CANNY
Это целое семейство специализированных контроллеров, имеющих встроенную «родную» поддержку работы с шиной CAN. Это касается как «железной» части, так и поддержки на уровне «софта».
Флагманом линейки является контроллер CANNY 7, наиболее мощный и имеющий максимум возможностей. Большое количество памяти, мощные выходы, позволяющие напрямую управлять реле автомобиля, интеллектуальная система защиты от коротких замыканий, защита от бросков тока и напряжения в бортовой сети автомобиля — всё это делает этот контроллер отличным решением для воплощения любых ваших идей и проектов.
Кроме CANNY 7 в линейке контроллеров присутствует ещё несколько моделей, мы будем проводить свои эксперименты с более простой встраиваемой моделью CANNY 5 Nano. Она также поддерживает работу с CAN шиной, но при этом похожа на уже знакомую нам Arduino Nano.
Видео:Подробно про CAN шинуСкачать
Визуальное программирование
Развитая поддержка шины CAN это не единственная особенность этих контроллеров, кроме этого CANNY имеют свою собственную среду программирования, CannyLab, но не «обычную», а визуальную, где весь процесс написания программ сводится к манипулированию готовыми структурными блоками, заданию их параметров и соединению входов и выходов этих блоков в определённой последовательности, в соответствии с алгоритмом решаемой задачи.
Хорошо это или плохо? На мой взгляд, это дело привычки. Мне, как человеку привыкшему к «традиционному» программированию, было непривычно манипулировать блоками, вместо написания строк кода. С другой стороны, существует множество приверженцев именно такого подхода к составлению алгоритмов и считается, что для инженеров и «не программистов» это наиболее простой и доступный метод программирования микроконтроллеров.
Мне, как минимум, было «прикольно» составлять программы таким образом и через некоторое время мне это стало даже нравиться. Возможно, что если продолжить этим заниматься, то через некоторое время уже написание кода покажется неудобным.
CannyLab является бесплатной средой разработки и вы можете свободно скачать её с сайта разработчиков, она также не требует специальной процедуры инсталляции — достаточно распаковать файл с архивом — и вы можете начинать работу.
Видео:Компьютерная диагностика авто. K-линия и CAN шинаСкачать
Подключение
Подключение CANNY 5 Nano к компьютеру мало чем отличается от подключения контроллеров Arduino. При наличии в системе драйвера Silicon Labs CP210x, либо после его установки из скаченного дистрибутива CannyLab, Windows создаёт виртуальный COM порт и CANNY готов к работе. В моём случае понадобилось ещё перезагрузить компьютер, но возможно это особенность моей системы.
Видео:Экспресс диагностика CAN шины на автомобиле. №21Скачать
Практические примеры
Давайте на простых примерах разберём, как в CannyLab выполнять действия, привычные нам в Arduino IDE. Начнём с традиционного мигания светодиодом.
В контроллере CANNY 5 на выводе С4 (Channel 4) присутствует тестовый светодиод (аналог светодиода, находящегося на 13 выводе в Arduino). И его тоже можно использовать для индикации и экспериментов, чем мы и воспользуемся.
Что же нужно, чтобы помигать светодиодом в контроллере CANNY? Нужно сделать всего две вещи — сконфигурировать пин четвертого канала как выход и подать на этот выход сигнал с ШИМ генератора. Все эти действия мы уже не раз проделывали в Arduino IDE, посмотрим как это выглядит в CannyLab.
Итак, конфигурируем пин четвертого канала как выход
Настраиваем генератор ШИМ. Задаём период 500 миллисекунд, заполнение — 250 миллисекунд (то есть 50 %) и 1 (true) на входе генератора «Старт» и… всё! Больше ничего делать не нужно — программа готова, осталось только залить её в контроллер.
Видео:С чего начать ремонт ЭБУ: Типы шин данных, CANСкачать
Режим симуляции
Тут нужно сказать пару слов о процессе симуляции на компьютере работы контроллера и заливке разработанной программы в память «железного» контроллера.
Среда разработки CannyLab позволяет запускать и отлаживать программу, не записывая её в память контроллера. В режиме симуляции вы можете видеть результат работы программы прямо в реальном времени и даже вмешиваться в её работу.
Видео:Кан шина, что это? Поймет школьник! принцип работыСкачать
Заливка в контроллер
Для работы контроллеров CANNY, перед заливкой программы (в терминологии разработчиков «диаграммы») нужно сначала залить операционную систему «Устройство/Системное ПО/Записать». Это нужно сделать только один раз, для этого нужно выбрать соответствующий вашему контроллеру файл с расширением .ccx.
После того, как программа написана и отлажена, её можно загрузить в ваш контроллер. Это делается просто — в меню выбираете пункт «Устройство/Диаграмма/Записать» и через несколько секунд программа оказывается записанной в контроллер.
Далее нужно отключить контроллер от USB порта компьютера, снять перемычку на плате и можно включать запрограммированный контроллер, который после включения будет работать по вашей программе.
Видео:поиск нерабочей can шины, часть дваСкачать
Аналоговые входы
Для того, чтобы лучше понять принцип программирования контроллеров CANNY в среде разработке CannyLab, давайте ещё разберём пример работы с аналоговым входом в этой системе.
Мы будем отслеживать уровень напряжения на 10 пине контроллера и если он находится в диапазоне 2,5 В ± 20%, будем зажигать встроенный в плату светодиод.
Как и в предыдущем примере, конфигурируем 4-й пин как выход для того, чтобы иметь возможность управлять работой светодиода.
Включаем АЦП на 10-м канале.
Далее пользуемся двумя логическими блоками, которые выдают 1 на выход, если напряжение находится в заданном диапазоне. Полный диапазон от 0 до 4095.
Блок «Логическое И» довершает работу и со своего выхода управляет работой светодиода на плате.
Вот и всё. То, что мы привычно делали на Arduino, мы легко сделали в CannyLab. Осталось только освоиться в этой среде программирования и вы сможете легко и непринуждённо создавать свои проекты на этой платформе.
Эти простые примеры составления программ даны для того, чтобы вы могли понять принцип визуального программирования микроконтроллеров CANNY. В дальнейшей работе вам поможет отличная справочная документация и поддержка разработчиков на сайте и форуме системы.
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
Заключение по вводной статье цикла
Подключив контроллер CANNY к своему автомобилю вы сможете реализовать множество интересных и уникальных идей, например, нестандартную сигнализацию, которую не так то легко будет вскрыть (в силу её нестандартности) или добавите новые функции, о которых мечтали, но не надеялись, что это возможно реализовать на практике.
Если вам нравится визуальное программирование в стиле CannyLab, то контроллеры CANNY могут стать для вас интересной альтернативой Arduino или работать в связке с контроллерами Arduino. Об этом мы поговорим во второй статье цикла, в которой я расскажу вам об интеграции контроллеров CANNY с системой Arduino Mega Server.
Напомню, что AMS теперь работает не только на платах Arduino, но и на беспроводных Wi-Fi модулях ESP8266 и именно о такой связке пойдёт речь в следующий раз.
И как обычно, оставайтесь с нами, будет интересно!
📺 Видео
CAN шина простыми словами на примере Nissan X-TrailСкачать
Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать
Для чего служит CAN-шина в сигнализацииСкачать
Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
Как управлять автомобилем через CAN-шину?Скачать
Магия CAN-шиныСкачать
Проверка исправности CAN шиныСкачать
Как проверить CAN шину Используем симулятор ElectudeСкачать
Мерседес разьем CAN шины, как выглядит и где?Скачать
LIN шина - пример работы. LIN bus exampleСкачать