Can адаптер bluetooth схема

Использование стандарта CAN в Arduino – полное руководство

Современные автомобили включают в себя несколько десятков разнообразных датчиков. И все эти датчики регулярно обмениваются информацией с другими датчиками/устройствами автомобиля. Причем автомобили с каждым годом становятся все «умнее» и поэтому количество датчиков в них все больше увеличивается. В автомобилях сегодняшнего дня находят широкое применение системы автономного вождения, системы безопасности с автоматически срабатывающими подушками безопасности, системы контроля давления в шинах, круиз-контроль и т.д. В большинстве случаев информация, поступающая от этих датчиков, является критически важной. Например, если сработает датчик столкновения, которому срочно нужно передать сигнал на раскрытие подушек безопасности, а ему это помешают сделать какие-либо сигналы/процессы в электронной системе автомобиля. В этом случае жизнь людей в автомобиле может оказаться под угрозой. Поэтому в автомобилях не используют такие широко распространенные в обычной электронике протоколы передачи данных как UART, SPI или I2C. Вместо них конструкторы автомобилей отдают предпочтение значительно более надежным протоколам передачи данных, таким как LIN, CAN, FlexRay и т.д.

Внешний вид подключения контроллера шины CAN MCP2515 к плате Arduino

Наибольшее распространение среди этих «надежных» протоколов получил стандарт (протокол) CAN. Этот стандарт широко применяется не только в электронных системах современных автомобилей, но и во многих других промышленных устройства, в которых критически важна надежная передача данных. Достаточно подробную информацию о стандарте CAN можно прочитать в соответствующей статье Википедии. Мы же в данной статье рассмотрим обмен данными между двумя платами Arduino с помощью протокола CAN.

Краткие сведения о протоколе CAN

CAN (Controller Area Network – сеть контролеров) представляет собой протокол (стандарт) последовательной связи, разработанный для промышленных и автомобильных приложений. Это ориентированный на обмен сообщениями протокол, используемый для связи между множеством (несколькими) устройств. Когда различные CAN устройства соединены между собой как показано на следующем рисунке, они формируют сеть, которая работает наподобие центральной нервной системы человека и позволяет любому устройству общаться с любым другим устройством в этой сети.

Структура сети в стандарте CAN

CAN-сеть состоит из двух проводников (CAN High и CAN Low) и обеспечивает двунаправленную передачу данных. На практике под CAN-сетью обычно подразумевается сеть топологии «шина» с физическим уровнем в виде дифференциальной пары. Передача ведется кадрами, которые могут принимать все узлы сети. Для доступа к такой шине выпускаются специализированные микросхемы (модули) – драйверы CAN-шины.

Обычно скорость передачи по CAN-шине варьируется от 50 Кбит/с до 1 Мбит/с, а дальность связи лежит в диапазоне от 40 метров (на скорости 1 Мбит/с) до 1000 метров (на скорости 50 Кбит/с).

Читайте также:  Usb bluetooth dongle printer

Формат CAN сообщений

В CAN-сети данные передаются в виде сообщений определенного формата. Этот формат состоит из большого числа сегментов, но двумя основными сегментами является идентификатор (identifier) и данные (data), которые и позволяют передавать и принимать сообщения по CAN-шине.

Идентификатор (Identifier) – также известен под именами CAN ID и PGN (Parameter Group Number). Он используется для идентификации CAN устройств в CAN-сети. Длина идентификатора составляет 11 или 29 бит в зависимости от того какой тип протокола CAN используется:

Data – это данные, которые необходимо передать от одного устройства другому. Длина данных может составлять от 0 до 8 байт.

Data Length Code (DLC) (длина поля данных): может принимать значения от 0 до 8 в зависимости от количества байт для передачи.

Проводники, используемые в CAN

CAN протокол работает по двум проводникам, именуемыми CAN_H и CAN_L, для передачи и приема информации. Оба проводника работают как дифференциальная линия, что означает что CAN сигнал (0 или 1) представляет собой разность потенциалов между CAN_L и CAN_H. Если эта разность положительна и больше определенного минимального уровня напряжения, то это 1, а если эта разность отрицательна – то это 0.

Обычно в протоколе CAN используется кабель с витыми жилами. Как показано на выше приведенном рисунке, на обоих концах CAN-сети включается 120-омный резистор для обеспечения баланса в линии.

Сравнение CAN с SPI и I2C

На нашем сайте мы ранее уже рассматривали использование в платах Arduino протоколов SPI и I2C, поэтому давайте сравним данные протоколы с протоколом CAN.

По скорости стандарт CAN не в лидерах, но его главным «козырем» является высокая надежность связи.

Применения CAN протокола

  1. В связи с чрезвычайно высокой надежностью и устойчивостью CAN протокола он широко применяется в автомобилях, промышленных механизмах, сельском хозяйстве, медицинском оборудовании и т.д.
  2. В связи с небольшим количеством используемых проводников CAN протокол исключительно удобен для применения в автомобилях.
  3. Устройства на основе CAN протокола отличаются низкой стоимостью.
  4. В CAN-сеть (шину) легко добавлять и удалять новые устройства.

Использование протокола CAN в Arduino

Поскольку платы Arduino не имеют в своем составе встроенного CAN порта, то для реализации связи между ними по данному протоколу мы будем использовать внешние CAN модули MCP2515. Эти модули подключаются к плате Arduino по интерфейсу SPI.

CAN модуль (контроллер шины CAN) MCP2515

Модуль MCP2515 включает в себя CAN контроллер MCP2515, который представляет собой высокоскоростной CAN приемопередатчик. Соединение модуля MCP2515 с микроконтроллером осуществляется с помощью интерфейса SPI, поэтому его легко подключить ко всем микроконтроллерам с данным интерфейсом.

Внешний вид контроллера шины CAN MCP2515

Начинающим изучение CAN-шины целесообразно начинать именно с этого модуля ввиду его простоты и легкости подключения к большинству современных микроконтроллеров.

Читайте также:  Acer aspire e1 531g драйвер блютуз

Основные технические характеристики модуля 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

Назначение контактов (распиновка) CAN модуля MCP2515

В данном проекте мы будем передавать данные, считываемые с датчика температуры и влажности DHT11 платой Arduino Nano, плате Arduino Uno с помощью CAN модуля MCP2515.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Плата Arduino Nano (купить на AliExpress).
  3. Датчик температуры и влажности DHT11 (купить на AliExpress).
  4. ЖК дисплей 16х2 (купить на AliExpress).
  5. MCP2515 CAN Module (контроллер шины CAN MCP2515) – 2 шт. (купить на AliExpress).
  6. Потенциометр 10 кОм (купить на AliExpress).
  7. Макетная плата.
  8. Соединительные провода.

Схема проекта

Схема проекта для связи между двумя платами Arduino с помощью протокола CAN и модулей MCP2515 представлена на следующем рисунке.

Схема проекта для связи между двумя платами Arduino с помощью протокола CAN и модулей MCP2515

Соединения на передающей стороне:

Компонент — контакт Arduino Nano
MPC2515 — VCC +5V
MPC2515 — GND GND
MPC2515 — CS D10 (SPI_SS)
MPC2515 — SO D12 (SPI_MISO)
MPC2515 — S I D11 (SPI_MOSI)
MPC2515­ — SCK D13 (SPI_SCK)
MPC2515 — INT D2
DHT11 — VCC +5V
DHT11 — GND GND
DHT11­ — OUT A0

Соединения на приемной стороне:

Компонент — контакт Arduino Uno
MPC2515 — VCC +5V
MPC2515 — GND GND
MPC2515 — CS 10 (SPI_SS)
MPC2515 — SO 12 (SPI_MISO)
MPC2515 — SI 11 (SPI_MOSI)
MPC2515 — SCK 13 (SPI_SCK)
MPC2515 — INT 2
LCD (ЖК дисплей) — VSS GND
LCD — VDD +5V
LCD — V0 к среднему контакту потенциометра 10 кОм
LCD — RS 3
LCD — RW GND
LCD — E 4
LCD — D4 5
LCD — D5 6
LCD — D6 7
LCD — D7 8
LCD — A +5V
LCD — K GND

Соединения между двумя CAN модулями MCP2515:

MCP2515 (Arduino Nano) MCP2515 (Arduino UNO)
H H
L L

После сборки всей схемы на макетных платах у нас получилась следующая конструкция.

Конструкция проекта в сборе

Объяснение программы для Arduino

Первым делом нам необходимо установить библиотеку для работы с протоколом CAN в Arduino IDE. Сначала скачайте ZIP файл библиотеки по следующей ссылке — Arduino CAN MCP2515 Library. Затем установите ее в Arduino IDE с помощью пункта меню Sketch -> Include Library -> Add .ZIP Library.

Читайте также:  Наушники накладные bluetooth jbl t460bt black jblt460btblk наушники накладные bluetooth jbl t460bt

В нашем проекте мы код программы разделим на две части: для передающей части и для приемной части. Полные коды программ приведены к конце статьи, здесь же мы кратко рассмотрим их основные фрагменты.

Инициализация CAN модуля MCP2515

Для установления соединения платы Arduino с модулем MCP2515 выполните следующую последовательность шагов. Но перед этим убедитесь в том, что указанная выше библиотека CAN MCP2515 установлена в вашу Arduino IDE.

Шаг 1. Установите номер контакта, к которому подключена линия CS интерфейса SPI (10 по умолчанию).

Источник

K-Line адаптер: вся информация в одной статье — от схемы до прошивки по К-Линии

Адаптеры K-LINE

Статьи 18 комментариев 18 декабря 2019 Просмотров: 65700 Рейтинг:

  1. Виды K-LINE адаптеров и их применение
  2. Схема и принцип работы К-Лайн шины и адаптеров
  3. Возможности и совместимость K-Line адаптера
  4. Прошивка ЭБУ через К-линию
  5. Популярные модели адаптеров
  6. Описание и особенности K-Line USB VAG
  7. Диагностика автомобиля через К-линию
  8. Способ изготовления К-адаптера своими руками
  9. Отличия ELM327 от К-Лайн
  10. Минусы и плюсы K-Line
  11. Отзывы и реальные примеры использования
  12. Полезные видео по применению адаптера

K-Line — одноканальная, но двунаправленная шина, которая применяется в оборудовании для автодиагностики, для связи с электронными блоками управления (ЭБУ). Используется в системах с инжекторным впрыском топлива двигателей внутреннего сгорания (ДВС). Работа K-Line обеспечена протоколами ISO 9141-2 и ISO 14230, которые входят в известный стандарт OBD II. До появления шины CAN, как раз K-линия соединяла электронные узлы автомобиля в единую цепь.

Адаптер K-Line

Адаптер VAG K-Line

Стандарты ISO 9141 и ISO 14230 схожи по аппаратной реализации линий передачи данных (14230 является развитием 9141). Различаются они требованиями к электрическим параметрам линии, а также протоколами верхних уровней.

Скорость обмена данными небольшая – до 10 КБ за секунду. В протоколе ISO 9141-2 пакеты передаются по 7 пину (K-линия) сервисной колодки. L-Line используется только для соединения ЭБУ со сканером.

Выводы адаптера k line и схема

Используя простой K-Line адаптер, можно настроить множество узлов в автомобилях группы VAG. Для этого необходимо знать основные каналы адаптации.

В этом материале максимально подробно рассказано о шине K-Line, а так же об адаптерах для соединения с ЭБУ автомобиля по этой линии.

1. Виды K-LINE адаптеров и их применение

В настоящее время K-Line адаптеры в основном распространяются с USB разъемом, а не COM. Это связано с тем, что диагностику обычно проводят ноутбуком, а в которых нет COM-портов . Однако суть работы адаптера не меняется. Внутри адаптера устанавливают микросхему-преобразователь из интерфейса USB в интерфейс COM или в Bluetooth. Под каждый тип таких микросхем необходим драйвер, чтобы в системе появился так называемый виртуальный COM-порт, через который адаптер будет сопрягаться с диагностическим ПО на компьютере.

USB K-Line – это простой блок, коммутирующийся через обычный ноутбук. При помощи сервисного ПО владельцу доступны базовые настройки, включая чтение кодов ошибок.

Источник

Оцените статью
Adblock
detector