Подключение к бортовой сети автомобиля (CAN-шине) работающей на скорости 83кбит/c
В статье CAN-шина и CAN-интерфейс были изложены основы и был приведен пример подключения к салонному CAN автомобиля работающему на скорости 125кбит/c. В данной статье настроим скорость работы модуля SYSTEC sysWORXX (USB-CANmodul1/2) для работы с бортовым CAN на 83кбит/c и с помощью компьютера c установленной программой PcanView откроем центральный замок микроавтобуса Mercedes Sprinter.
Расчет скорости для модуля USB-CANmodul1/2 с контроллером AT91SAM7A3
Для тех кто не хочет самостоятельно считать скорость сразу сообщу, что BTR ext будет равен 0x00230741 и можно сразу переходить к подключению адаптера.
Рисунок 1 – Структура регистра конфигурирования baud rate в контроллере AT91SAM7A3
BRP: Делитель системной частоты контроллера.
SYNC: Ширина скачка синхронизации.
SAM: Количество точек выборки при чтении бита по CAN-шине. Если SAM = 1, то используются 3 точки, в противном случае только 1 точка.
PROPAG: Программирование времени сегмента. Определяет компенсацию физической задержки.
PHASE: Время сегмента указывает положение точек выборки.
CLK: Частота работы микроконтроллера. Если CLK = 0, то 48Мгц иначе 24Мгц.
Рисунок 2 – Структура одного бита на CAN-шине. (Atmel AT91SAM7A3)
Математический расчет:
tmck0 = 1/48MHz (частота работы при CLK = 0)
tmck1 = 1/24MHz (частота работы при CLK = 1)
tcsc = tmckx * (RRP + 1)
tsyncseg = 1 * tcsc
tprs = tcsc * (PROPAG + 1)
tphs1 = tcsc * (PHASE1 + 1)
tphs2 = tcsc * (PHASE2 + 1)
tbit = tsyncseg + tprs + tphs1 +tphs2
Пример для 83кбит/с (PROPAG = 3, PHASE1 = 5, PHASE2 = 4, BRP = 35, CLK = 0)
tcsc = tmck0 * 36
tsyncseg = 1 * tcsc
tprs = tcsc * 4
tphs1 = tcsc * 6
tphs2 = tcsc * 5
tbit = tsyncseg + tprs + tphs1 +tphs2
1/tbit = 83,333 kbit/sec
Теперь если подставить полученные значения, то регистр настройки скорости для AT91SAM7A3 будет равен 0x00230741.
P.S. Получить на этом контроллере скорость ровно 83кбит/c нельзя, но это и не нужно.
Пример подключения к бортовому CAN автомобиля, управление центральным замком
Для подключения к бортовому CAN работающему на скорости 83кбит/с можно использовать любой CAN – адаптер, мы будем использовать SYSWORXX 3204001 с программой PcanView от SYSTEC. Автомобиль для экспериментов Mercedes Sprinter.
Для начала на схеме автомобиля находим наиболее удобно расположенный разъем с линиями CANH и CANL и подключаем к нему наш адаптер. Если нет схемы, то можно подлезть к любому блоку управления использующему бортовой CAN (например электроусилитель, ABS и т.д.), найти два скрученных между собой провода подходящие к блоку и аккуратно надрезав провода подключить адаптер. Если после подключения и настройки адаптера сообщения не приходят, то в первую очередь попробуйте поменять между собой CANH CANL и проверить включено ли зажигание.
Запускаем программу PcanView, указываем в поле Baudrate значение user и в активировавшемся поле BTR Ext вписываем посчитанное ранее значение для работы на скорости 83кбит/c, в нашем случае BTR Ext = 00230741 (Рисунок 3).
Рисунок 3 – Окно настройки скорости CAN-адаптера в программе PcanView
Нажав кнопку «ОК» мы увидим окно настройки фильтров сообщений (Рисунок 4). Устанавливаем Message Filter = Standard, диапазон адресов от 000 до 7FFF и нажимаем «OK».
Рисунок 4 – Настройка CAN фильтра
Если все сделано верно, то мы увидим все сообщения передаваемые по бортовой CAN сети от подключенных блоков управления (Рисунок 5).
Рисунок 5 – Главное окно в программе PcanView
Чем выше приоритет передаваемой информации, тем меньше адрес передаваемого сообщения, т.е. если необходимо найти информацию от двигателя или ABS, то смотреть надо начинать сверху вниз, если же искать кнопки, то снизу вверх. Например, данные с оборотами двигателя передаются в сообщении с адресом 004h, а информация о положении двери передается в сообщении с адресом 082h.
Теперь начинаем с небольшой периодичностью нажимать и отпускать кнопку центрального замка параллельно просматривая сообщения изменяющиеся в такт нажатию кнопки. В нашем случае это оказалось сообщение с адресом 02Ch, длиной 4 байта. При нажатии кнопки в первом байте появляется значение 20, а при отпускании становится 0.
Получается для имитации нажатия кнопки с компьютера необходимо нажатием клавиши «Insert» вызвать окно создания нового сообщения и указав адрес 02Ch, длину 4 байта, первый байт 20 и период 0 (Рисунок 6) нажать «ОК».
Рисунок 6 – Окно создания нового сообщения в программе PcanView
В главном окне в разделе «TRANSMIT» появится наше сообщение, которое выделив и нажав клавишу «пробел» мы отправляем в бортовой CAN. Теперь каждый раз после отправки такого сообщения центральный замок будет открываться или закрываться.
Итог
Таким образом с помощью CAN - шины можно легко управлять с персонального компьютера исполнительными механизмами в современном автомобиле.