Can bus адаптер для магнитолы своими руками
Приветствую форумчане. Давно у меня появилась идея создать CANBUS decoder для Lada Vesta под ГУ на базе PX5. Суть в том, что таких устройств для этой машины нет (точнее недавно появилась под ГУ от какого-то производителя и есть еще один, который применяется только для динамических парковочных линий и по достаточно кусачей цене).
Прошу Вас помочь мне в этом деле. На данный момент хочу попробовать только для динамических линий, а далее как пойдет.
Как идет ход моих мыслей:
- на драйве нашел статью по снифферу для CAN.
Как я понял LS CAN мне в этой схеме пока что не нужен. А MS CAN я буду подключать к пинам 6 и 14 раъема OBD (в Весте одна CAN-шина, по факту у меня есть CAN-H и CAN-L, штатно выведенные к ГУ).
BT модуля по идее у меня не будет, вместо этого UART я подключу к ГУ?
Питание можно сделать, а можно по идее запитаться от USB ГУ?
И еще вопрос - возможно ли сделать прошивку микроконтроллера через ГУ, чтобы не выводить лишних проводов и каждый раз не разбирать? Апк написать возможно смогу, если это возможно.
Один форумчанин согласился предоставить мне несколько команд. Пока что я ограничусь углом поворота руля:
Открытый на данный момент вопрос - в каком виде нужно передать информацию по UART в ГУ или где можно запросить эту информацию.
Исходный код MTCCanbus по ссылке
Добавляю код из поста на драйве. Буду пытаться переписать под считывание только нужной информации (пока только угол поворота угла. Кто поможет переписать, буду благодарен. Код буду обновлять по мере правки.
// Instanciation of CAN interface
HardwareCAN canBus(CAN1_BASE);
CanMsg msg ;
CanMsg *r_msg;
CAN_STATUS Stat ;
void CANSetup(CAN_GPIO_MAP remap, CAN_SPEED speed)
<
// Initialize CAN module
canBus.map(remap); // This setting is already wired in the Olimexino-STM32 board
Stat = canBus.begin(speed, CAN_MODE_NORMAL);
canBus.filter(0, 0, 0);
canBus.set_irq_mode(); // Use irq mode (recommended), so the handling of incoming messages
// will be performed at ease in a task or in the loop. The software fifo is 16 cells long,
// allowing at least 15 ms before processing the fifo is needed at 125 kbps
Stat = canBus.status();
if (Stat != CAN_OK)
* Your own error processing here */ ; // Initialization failed
Serial1.print("Initialization failed");
>
// Send message
// Prepare and send a frame containing some value
void SendCANmessage(long byte dlength=8, byte d0=0x00, byte d1=0x00, byte d2=0x00, byte d3=0x00, byte d4=0x00, byte d5=0x00, byte d6=0x00, byte d7=0x00)
<
// Initialize the message structure
// A CAN structure includes the following fields:
msg.IDE = CAN_ID_STD; // Indicates a standard identifier ; CAN_ID_EXT would mean this frame uses an extended identifier
msg.RTR = CAN_RTR_DATA; // Indicated this is a data frame, as opposed to a remote frame (would then be CAN_RTR_REMOTE)
msg.ID = id ; // Identifier of the frame : 0-2047 (0-0x3ff) for standard idenfiers; 0-0x1fffffff for extended identifiers
msg.DLC = dlength; // Number of data bytes to follow
void setup()
<
pinMode(PC13, OUTPUT); // LED
digitalWrite(PC13, PC13ON);
Serial1.begin(115200);
Serial1.println("Hello World!");
Serial1.println("Starting Astra-H sniffer v01 program");
Приветствую! Это моя первая запись и сейчас я расскажу, как сделать CANBUS адаптер для ММС. Проверено на ММС на базе MTCD/MTCE, как правило это те, что с процессором px3/px5/px6. Возможно и другие ММС заработают с данным адаптером.
Upd. Работает и с другими ММС (кроме tеyеs), но был случай, когда происходила инверсия дверей и линий (в итоге поправил файл прошивки под этого человека).
Вот так выглядит все в работе.
Вместо температуры окружающего воздуха я решил вывести температуру охлаждающей жидкости двигателя. Единственное, что тут есть ограничение — выше +86 градусов температура не отображается. Задние двери показывает сразу обе, так как задние двери на нашей машине в CAN шине определяются как задняя правая.
Upd. В версии 2 нет температуры в статус-баре, но есть приложение, где отображается температура двигателя, обороты, скорость, пробег, остаток топлива в литрах и еще немного информации. Линии менее плавные (не доходят руки над этим поработать).
Вообщем купил я ММС на платформе MTCE с процессором PX5 на замену штатной ММС. Так как в комплектации у меня стоит камера, то штатная ММС умела рисовать динамические парковочные линии. А вот андроидные так не умеют, точнее умеют с канбас адаптером. Поискав, я нашел только один подобный канбас для Весты и решил, что за 3.5к рублей оно мне не надо. Однако руки чесались и в итоге я начал изучать вопрос. Отправной точкой была статься про CAN Sniffer. Собственно за основу и была взята статься, а позже я начал общаться с ребятами по возникающим вопросам. За что им огромное спасибо. А также большая благодарность HAL9K, автор прошивок под наши ММС. Он помог мне с общением между адаптером и ММС.
Думаю хватит предыстории и перейдем к сборке. Все, что нам надо, это микроконтроллер STM32F103C8T6 (отладочная плата bluepill) и плата CAN трансивера MCP2551. Ну и соответственно пины для коннекта, провода и коробочка (хотя в итоге я плату засунул в термоусадку). Для прошивки микроконтроллера подойдет USB-RS232 или ST-Link (например, v2 с Алиэкспресс).
Схема подключения выглядит так (если у Вас в колодке mini ISO нет проводов CAN шины, придется тянуть из другого места).
Пины брал из подручных материалов, поэтому какие нужно покупать, не подскажу. Питание брал с USB ММС, подпаяв на плату все.
В итоге все выглядело вот так.
Промежуточные фото сделать забыл.
После подключения в настройках ММС в меню разработчика необходимо выбрать канбас (номер) в зависимости от выбранной прошивки.
Для диагностики есть следующие вещи:
— при успешном приеме микроконтроллером данных из CAN шины зеленый светодиод моргает (очень быстро, поэтому едва видно);
— если зеленый индикатор пару раз моргнул и горит, значит микроконтроллер готов к работе, но данных из шины не получает — проверяйте соединения и питание;
— если зеленый индикатор пару раз моргнул и потух, то тут два варианта — или контроллер не исправен (маловероятно), или он успел получить несколько пакетов и связь пропала — проверяйте соединения и питание.
Про питание — у одного человека были проблемы при питании от USB ММС, почему мы так и не поняли, напряжение было нормальное.
Строго не судите, но я все таки решил сделать страничку для "благодарности" — дело естественно добровольное =) Помочь можно здесь.
Не редкость, что на автомобилях выходят из строя штатные мультимедийные системы,
особенно если в них используются многодисковые CD-чейнджеры. Стоимость ремонта или замены такого неисправного устройства может составлять большую сумму.
Иногда целесообразнее приобрести переходную рамку и установить современную мультимедийную систему(далее МС), недорогую и гораздо более функциональную.
Останется только задействовать кнопки управления на руле для управления ею.
Как правило, многие МС (made in CHINA) могут легко адаптироваться к штатным резистивным кнопкам руля.
Но вот по штатной автомобильной системе CAN их мало.
Имеем автомобиль Volvo S60 2006 года (аналогично и у XC70, XC90).
Родная МС пережевала и накрошила CD — диски, при включении впадала в конвульсии,
и в конце концов была выкинута на мороз.
В данном автомобиле, блоки кнопок на руле (каждый на микроконтроллере),
передают информацию по LIN – шине о их состоянии в центральный электронный блок автомобиля — CEM.
А дальше по низко скоростной CAN шине, в МС и другие заинтересованные в звуке блоки.
В качестве новой МС владелец выбрал магнитолу Pioneer, имеющий специальный вход для
подключения дистанционного управления:
В интернете полно схем и решений использования данного входа, приведу для примера такой рисунок:
Подключение проводов питания, зажигания, громкоговорителей думаю читателей мало интересна,
все на уровне школьных знаний, есть даже переходные разъемы…
С помощью планшета, программы CANHACKER, своего переходника CAN-USB, подключенного к CAN шине на разъеме МС,
был определен пакет данных, содержащий информацию о состоянии кнопок управления МС.
Нужные провода CAN — белый и зеленый:
Ищем и записываем:
Я для своей работы разработал и использую универсальные платы-конструкторы, на базе STM32,
с помощью которых можно быстро реализовывать разнообразные устройства
(если CAN модуль Starline не подходит для этого :) ).
Вот схема одной из плат:
Теперь осталось только запрограммировать следующий алгоритм:
Настраиваем плату только слушать CAN шину по указанному адресу. Из принятых данных анализируем выбранный байт. И в зависимости от его содержимого, активируем определенные транзисторы для выдачи правильного сопротивления резисторной матрицы на плате в шину дистанционного управления МС Pioneer. Я знаю что есть электронные сопротивления и прочее прочее. Мне так было дешевле и удобней.
Весь проект выкладывать не буду, там много еще другого реализовано. А кусочки кода для Volvo приложу.
Настройка CAN фильтра:
Процедура, вызываемая при приеме пакета:
И далее разбор принятого сообщения:
Некоторые данные для работы программы хранятся в оперативно изменяемой области флеш памяти, что бы к примеру подключив плату к компьютеру, оперативно что либо изменить, не внося изменений в код:
Написав все это, думаю что чуть упростил жизнь другим интересующимся людям, хотя разбираться в чужом коде сомнительное удовольствие. Главное не боятся. И «лучше день потерять, затем за час долететь». В итоге все заработало как надо.
Если есть вопросы, пишите, буду исправлять и дополнять по возможности.
установка автозвука Киев, установка автомагнитолы Киев, шумоизоляция авто Киев
Практически все современные автомобили имеют электронику, в основе своей архитектуры имеющую CAN-шину. С точки зрения производителя автомобиля шина CAN это очень полезная вещь, позволяющая гибко изменять функционал автомобиля без серьезных переделок электрооборудования. Например, чтобы добавить складывающееся зеркало со встроенным поворотником на машину традиционной архитектуры (без КАН-шины) необходимо протянуть от главного блока предохранителей провода на выключатель складывания зеркал, затем протянуть провода от выключателя в каждую дверь (левую и правую) и плюс провода от поворотников. Имеем в итоге кучу лишней меди и невозможность изменить комплектацию быстро (на конвеере). В случае автомобиля с платформой на CAN-шине просто добавляем новое зеркало, подключаем к дверному блоку, программируем что зеркало есть и должно складываться и мигать поворотником. Выключатель зеркала подключаем к центральному блоку и программируем что он есть. Ну это если очень просто объяснить 🙂
Смысл в том что CAN-шина это хорошо, и абсолютно все автомобили в самом ближайшем будущем будут иметь такую архитектуру. На данный момент все лидирующие европейские производители производят автомобили с CAN, к ним подтягиваются корейцы и японцы ну и американцы конечно.
нет ни провода от замка зажигания, ни подсветки.
Подключая нештатную магнитолу на такую машину, вы скорее всего возьмете ISO-переходник и подключите оба питания (постоянное и от ключа) магнитолы на постоянное питание. Подсветку вообще подключать не будете, и с первого взгляда вроде бы как все ОК. Но на самом деле нет, есть несколько проблем.
При подключении магнитолы без КАН-адаптера будут следующие проблемы:
Универсальный CAN-BUS адаптер для магнитолы:
Этот простой кан адаптер подключается к большинству автомобилей с CAN-шиной и выдает сигнал ACC для подключения магнитолы. Его удобно использовать тогда когда вам просто нужно решить проблему разрядки аккумулятора из-за неправильно подключенной магнитолы.
Версия для использования на грузовых автомобилях с бортовой сетью с напряжением 24В называется Connects2 IGNI-GEN24V
Штатный CAN-BUS адаптер для магнитолы:
Штатный кан-адаптер предназначен для конкретной модели автомобиля, комплектуется с одной стороны штатным разъемом для подключения к проводке автомобиля, с другой стороны стандартным ISO-разъемом для подключения магнитолы. Бывает два варианта таких can-bus адаптеров для магнитолы, первый (серия Essentials) дешевле, выдает только сигнал ACC и в принципе по функционалу не отличается от IGNI-GEN12V.
Серия CAN-BUS адаптеров Professional может больше:
Помимо сигнала ACC для подключения магнитолы такой адаптер выдает сигналы (в зависимости от модели авто): Подсветка (+12В), Задний ход (+12В), Ручник (земля), Импульс скорости (отрицательный импульс, зависящий от скорости автомобиля)
Конечно же, с таким адаптером подключение будет еще более простым и надежным, однако он и стоит дороже.
Список штатных CAN-BUS адаптеров для магнитолы и поддерживаемых автомобилей:
Alfa Romeo:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-AR1 | ACC +12V | 159 (2006-2011), Brera (2007-2010), |
Giulietta (2010-2014), Mito (2008-2014)
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-AU1 | ACC +12V | A2 (2004-2005), A3 (2003-2013), A4 (2005-2015) |
A6 (2004-2011), TT (2003-2013)
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-BM1 | ACC +12V | 1-Series E87 (2004-2013), 3-Series E90 (2005-2012), |
5-Series E60 (2004-2010), 7-Series E65 (2002-2008),
Chevrolet:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-CV1 | ACC +12V | Camaro (2009->), Cruze (2009-2015), Equinox (2009->), |
Chrysler:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-CH1 | ACC +12V | 300C (2008->), Aspen (2008-2009), |
Grand Voyager (2008->), Sebring (2007-2010),
Citroen:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-CT1 | ACC +12V | Berlingo (2008>), C2 (2006>),C3 (2006>), |
C3 Picasso (2009>), C4 (2006>),
C4 Picasso (2006>),
C5 (2005>), C6 (2004>),
C8 (2006>), DS3 (2009>),
Dodge:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-DG01 | ACC +12V | Avenger (2007>), Caliber (2009>), |
Charger (2008>),Charger (2008>),
Dakota (2008>), Durango (2008-2015),
Grand Caravan (2007-2015), Journey (2008>),
Magnum (2008>), Nitro (2008>), Ram (2008>)
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-F1 | ACC +12V | Fiat 500L (2012>), Ducato (2014>) | |
CTHUP-FT01 | ACC +12V, ручник, подсветка, |
Ducato (2008-2014), Idea (2006>),
C-Max (2004-2011), Fiesta (2006-2008),
Focus (2005-2011), Fusion (2005>),
Galaxy (2006>),Mondeo (2004-2014),
S-Max (2005-2011), Transit (2005>),
Kuga (2008-2012),
Transit Connect (2004-2013)
Escape (2013>), Fiesta (2012>),
Focus (2011>), Kuga (2012>), Ranger (2012>),
Transit Connect (2013>),Transit Custom (2013>)
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-JP1 | ACC +12V | Cherokee (2014>), |
Lancia:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUP-LA01 | ACC +12V, ручник, подсветка, |
Land Rover:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUP-LR01 | ACC +12V, ручник, подсветка, |
Mercedes:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-MC1 | ACC +12V | E-Class (2004-2009), SLK (2002>) | |
CTHUE-MC2 | ACC +12V | A-Class (2004>), B-Class (2004>) C-Class (2004>), CL (2008>) CLK (2004>), GL (2006-2012) ML (2004-2011), R-Class (2006>) Sprinter (2006>), Vito (2007>) | |
CTHUP-MC01 | ACC +12V, |
B-Class W245 (2004-2012),
C-Class W203 (2000-2007),
CLK W209 (2000>),
ML (2005-2011), R-Class W251 (2005>),
Sprinter (2006>), Viano (2004>),
C-Class W204 (2008>), CLA (2013>),
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-VX1 | ACC +12V | Agila (2008-2015), Antara (2006>), Astra (2004-2009), Combo (2004>), |
Corsa (2004-2014), GTC (2005>),
Meriva (2005-2010), Movano (2006>), Vectra (2004>),
Signum (2004>), Tigra (2005>), Vectra (2004>),
Peugeot:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-PE2 | ACC +12V | 207 (2004>) , 208 (2012>), 2007 (2008>), 2008 (2013>), 307 (2004-2007), 308 (2007>), 3008 (2004>), 407 (2004>), 508 (2011>), 5008 (2009>), 607 (2005>), 807 (2004>), Expert (2007>), iON (2010>), Partner (2008>), RCZ (2010>) | |
CTHUP-PE01 | ACC +12V, |
3008 (2009>), 308 (2007>), 407 (2005>),
5008 (2009-2013), 607 (2004>),
807 (2005>), Bipper (2007>), Boxer (2008>),
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-ST1 | ACC +12V | Alhambra (2006>), Altea (2005>), |
Cordoba (2005>), Exeo (2008>),
Ibiza (2008>), Leon (2005-2014),
Toledo (2005>)
Skoda:
Модель адаптера | Функции | Список моделей авто | разъем магнитолы |
CTHUE-SK1 | ACC +12V | Fabia (2007-2010), Octavia (2004-2013), |
Roomster (2006>), Superb (2006-2013),
Функционал автомобиля уже давно не ограничивается лишь транспортировкой. Сегодня автомобиль – это не просто средство передвижения, а полноценный комфортабельный и высокотехнологичный продукт с множеством дополнительных функций.
Однако большинство автомобилистов при расширении функционала своего автомобиля сталкиваются с множеством неудобств.
Что же собственно такое этот CanBus?
CanBus – новая архитектура обмена данными между устройствами, которую сегодня можно заказать на Алиэкспресс. И как раз с алиэкспресс может прийти магнитола, производители которой не упустили шанс воспользоваться дополнительным потенциалом, который дает Can BUS.
Если машина оснащена устройством Кан-шины, то магнитолу необходимо приобретать со встроенным декодером, так как иначе вы рискуете столкнуться с множеством проблем при установке. Например, у вас не будет функционировать штатный цифровой усилитель (JBL, Pioneer, Rockford). Также возможны и проблемы с рядом других функций в вашем автомобиле.
Из приведенной выше информации становится понятным, что при покупке новой магнитолы необходимо убедиться в абсолютной совместимости вашего мультимедийного головного устройства и машины.
Более того, если вы считаете, что обычный соединитель – это слишком скучно, то вы можете порадовать себя примерно таким же адаптером, но только серии Professionals. Данная серия примечательна наличием подсветки. Однако за подсветку, естественно, придется немного доплатить.
Самое главное – это понимание того, что любую мультимедийность ваше авто стоит подбирать, исходя из совместимости форматов. Более того, неожиданно возникшие проблемы с авто после установки нового девайса вполне могут быть связаны с этой установкой. Поэтому стоит узнавать всю информацию у продавца еще до покупки товара.
Читайте также: