Встраиваемые системы

Разработка на основе отладочных плат и встраиваемых операционных систем Linux, Windows, QNX

Микропроцессорные устройства систем управления

Разработка электронных устройств управления на микроконтроллерах, изготовление микропроцессорных устройств на заказ, прошивка микроконтроллеров

Прикладное программное обеспечение

Разработка программного обеспечения персонального компьютера и электронных устройств на заказ, диагностика через CAN, USB и другие интерфейсы, визуализация показаний датчиков

Принципиальные схемы и печатные платы

Проектирование, разработка, рисование, создание печатных плат, схема печатной платы на заказ и разработать , изготовить печатную плату
 

Подключение к бортовой сети автомобиля (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 и можно сразу переходить к подключению адаптера.


Структура регистра конфигурирования baud rate в контроллере AT91SAM7A3
Рисунок 1 – Структура регистра конфигурирования baud rate в контроллере AT91SAM7A3

 

BRP: Делитель системной частоты контроллера.

SYNC: Ширина скачка синхронизации.

SAM: Количество точек выборки при чтении бита по CAN-шине. Если SAM = 1, то используются 3 точки, в противном случае только 1 точка.

PROPAG: Программирование времени сегмента. Определяет компенсацию физической задержки.

PHASE: Время сегмента указывает положение точек выборки.

CLK: Частота работы микроконтроллера. Если CLK = 0, то 48Мгц иначе 24Мгц.


Структура одного бита на CAN-шине. (Atmel AT91SAM7A3)
Рисунок 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).


Окно настройки скорости CAN-адаптера в программе PcanView
Рисунок 3 – Окно настройки скорости CAN-адаптера в программе PcanView

 

Нажав кнопку «ОК» мы увидим окно настройки фильтров сообщений (Рисунок 4). Устанавливаем Message Filter = Standard, диапазон адресов от 000 до 7FFF и нажимаем «OK».


Настройка CAN фильтра
Рисунок 4 – Настройка CAN фильтра

 

Если все сделано верно, то мы увидим все сообщения передаваемые по бортовой CAN сети от подключенных блоков управления (Рисунок 5).


Главное окно в программе PcanView
Рисунок 5 – Главное окно в программе PcanView

 

Чем выше приоритет передаваемой информации, тем меньше адрес передаваемого сообщения, т.е. если необходимо найти информацию от двигателя или ABS, то смотреть надо начинать сверху вниз, если же искать кнопки, то снизу вверх. Например, данные с оборотами двигателя передаются в сообщении с адресом 004h, а информация о положении двери передается в сообщении с адресом 082h.

 

Теперь начинаем с небольшой периодичностью нажимать и отпускать кнопку центрального замка параллельно просматривая сообщения изменяющиеся в такт нажатию кнопки. В нашем случае это оказалось сообщение с адресом 02Ch, длиной 4 байта. При нажатии кнопки в первом байте появляется значение 20, а при отпускании становится 0.
Получается для имитации нажатия кнопки с компьютера необходимо нажатием клавиши «Insert» вызвать окно создания нового сообщения и указав адрес 02Ch, длину 4 байта, первый байт 20 и период 0 (Рисунок 6) нажать «ОК».

 

Окно создания нового сообщения в программе PcanView
Рисунок 6 – Окно создания нового сообщения в программе PcanView

 

В главном окне в разделе «TRANSMIT» появится наше сообщение, которое выделив и нажав клавишу «пробел» мы отправляем в бортовой CAN. Теперь каждый раз после отправки такого сообщения центральный замок будет открываться или закрываться.

Итог

Таким образом с помощью CAN - шины можно легко управлять с персонального компьютера исполнительными механизмами в современном автомобиле.