Meloci.ru

Как прошить по can шине

Преобразователь шины интерфейса CAN на USB

Данный проект предназначен для изготовления простого устройства для мониторинга шины CAN. Я выбрал микропроцессор NUC140LC1CN 32K Cortex-M0 по одной главной причине – он имеет периферийные блоки USB и CAN.

Характеристики проекта

  • Простота разработки
  • Совместимость с протоколом LAWICEL CANUSB
  • Мониторинговое устройство отображается как USB FTDI устройство
  • Поддержка 11-битных CAN 2.0A и 29-битных CAN 2.0B кадров
  • Наличие внутреннего буфера сообщений FIFO CAN
  • Питание от USB порта
  • Загрузчик, хранимый в памяти USB запоминающего устройства, для обновлений микропрограммы
  • Микропрограмма, которая доступна для загрузки

Схемное решение

Для разрешения периферийному блоку NUC140 CAN соединяться с шиной CAN необходимо наличие приемопередатчика CAN. Для этой цели наиболее пригодна микросхема TJA1051T от компании NXP. Блок NUC140 может работать от источника питания напряжением 5В. Поэтому нет необходимости для применения дополнительного стабилизатора напряжение на 3.3В. Это позволяет значительно упростить задачу реализации интерфейса шины CAN. В схеме предусмотрено три светодиодных индикатора состояния:

  • D1 – индикатор состояния USB соединения с хостом
  • D2 отображает активность шины CAN
  • D3 отображает ошибки интерфейса CAN

NUC140 не имеет встроенного загрузчика и единственным способом его запрограммировать – использовать интерфейс ARM Serial Wire Debug (SWD) (J2 коннектор) и программатор Nuvoton ICP. Ну и естественно, если загрузчик уже заранее запрограммирован, то его можно активировать. Для этой цели необходимо использовать джампер JP1. Использование джампера JP1 перед подачей питания на интерфейс приведет к запуску загрузчика.

Загрузчик

Флэш-память NUC140LC1 разделена на две секции. Одна из них предназначена для выполнения кода пользовательской программы (APROM) размером 32K, а другая для загрузчика (LDROM). Размер LDROM только 4K, что делает проблематичным создание полностью функционального USB загрузчика. Я использовал загрузчик, размещенный на запоминающемся устройстве (MSD), предоставленный Nuvoton. Установка джампера JP1 запускает выполнение загрузчика. В результате съемный диск будет отображаться в файловой системе хоста размером 32 кБ. Просто скопируйте и вставьте или перетащите и опустите обновление микропрограммы CAN-USB на диск загрузчика. Отсоедините USB кабель, снимите джампер и подсоедините кабель снова. Теперь должна выполняться обновленная микропрограмма.

Программирование интерфейса CAN-USB и NuTiny-SDK-140

Для программирования процессора NUC140 потребуется программатор Nu-Link от Nuvoton и программное приложение Nuvoton ICP. Но вместо него я решил использовать демонстрационную плату NUC140 (NuTiny-SDK-140), доступную от Digi-Key. Она имеет две части, часть с микросхемой NUC140 и собственно программатор Nu-Link. Плата равномерно перфорирована, что позволяет отсоединить часть Nu-Link. На самом деле вы может изготовить данное устройство исключительно на демонстрационной плате NuTiny-SDK-140, добавив только дополнительную микросхему приемопередатчика CAN.

При подсоединении Nu-Link процесс программирования NUC140 становится несложным. Ключевым вопросом является выбор загрузки из LDROM вместо APROM (в Config настройках) для обеспечения функционирования USB загрузчика.

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

Интерфейс CAN-USB совместим с протоколом LAWICEL CANUSB и будет работать с приложениями, предназначенными для данного протокола. Я протестировал два приложения с интерфейсом CAN-USB:

CANHacker V2.00.02

Это бесплатное приложение CANHacker. Я не смог найти руководство пользователя для этого приложения. Однако оно достаточно простое и интуитивное при использовании.

Настройка CAN-декодера на магнитоле Teyes Spro и CC2L/CC2.

Для полноценной интеграции магнитолы в автомобиль необходимо настроить декодер CAN-BUS шины на работу с конкретной моделью. Рассказываем, как зайти в соответствующие настройки. А так же здесь можно найти пароль от заводских настроек (они же — инженерное меню, скрытые настройки).

Для начала заходим в список установленных приложений путем нажатия круглой кнопки:

Выбираем пункт “Установки в автомобиле”:

Откроется приложение взаимодействия с системами автомобиля:

Если вы наблюдаете такую же картину, значит магнитола не настроена на взаимодействие с автомобилем. В этом приложении отображаются данные CAN-шины. Если в вашем автомобиле предусмотрено подключение к CAN-BUS (в случае Chevrolet Cobalt и Ravon R4да), то необходимо произвести соответствующие настройки.

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

Возвращаемся на главный экран и жмем в нижнем правом углу по шестеренке:

Читать еще:  Как читается размер шин

Откроются настройки магнитолы. Нас интересует вкладка “Заводские настройки”. Тапаем по ней:

Магнитолой будет предложено ввести пароль для доступа к заводским настройкам. Опасаться этого не стоит, никакого сброса не произойдет. Вводим 168 и жмём “Да”:

В списке заводских настроек прокручиваем до интересующего нас пункта “Выбор системы авто”:

Видим четыре столбца (китайцы как всегда жгут: в слове из трех букв четвертого столбца умудрились допустить ошибку ): Марка CAN BUS, Система авто, Выбор системы авто, CUN BUS. В первом выбираем производителя своего CAN-декодера. Если не знаете, то посмотрите на его корпусе стикер. Во втором ищем производителя автомобиля, и в третьем, соответственно, модель.

Выходим на главный экран и убеждаемся, что CAN-декодер заработал. В случае Chevrolet Cobalt и Ravon R4 можно попробовать включить подогрев сидений, появится всплывающее окошко с информацией о климате, уличной температуре и закрытых дверях:

На автомобилях, оборудованных мультирулем достаточно просто попробовать изменить громкость или переключить треки соответствующими кнопками. Магнитола должна будет отреагировать на эти действия.

В итоге можно снова зайти в приложение “Установки в автомобиле” и убедиться, что появились элементы управления конкретно для вашего автомобиля:

Среди них можно выделить уровень топлива в бензобаке (показания с ЭБУ ДУТ, особой точностью похвастаться не могут), температура охлаждающей жидкости ДВС, напряжение в бортовой сети, пристегнутые ремни, состояние концевика багажника, ручника, наличие стеклоомывающей жидкости. В некоторых автомобилях даже считываются числовые параметры, такие как обороты, скорость и пробег.

Как прошить по can шине

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Алгоритм настройки:

  1. Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

    После чего мы увидим все настройки принтера.
  2. Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  3. Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  4. Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  5. Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.

  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

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

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

    Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
    1 Способ:
    Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

    2 Способ:
    Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.

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

    Вы можете помочь и перевести немного средств на развитие сайта

    Накрутка одометра по CAN шине.

    Устройство для накрутки пробега по CAN шине.

    Имя: Намотка спидометра по CAN шине.
    Цена: 5,000 р.
    Заказы принимаются на почту

    Описание: Данное устройство служит для намотки километража спидометра по CAN шине. Устройство не требует установки, не вызывает ошибок электроники автомобиля и не требует знаний для его использования, является съемным. Достаточно подсоединить устройство к диагностическому разъему автомобиля в ногах водителя, включить зажигание и оно начинает увеличивать пробег спидометра.

    Мотает пробег БЕЗ ОГРАНИЧЕНИЙ – Гарантия 1 год.

    Поддерживаемые автомобили:
    AUDI:
    1. Audi A6
    2. Audi A8
    3. Audi Allroad
    4. Audi Q5 2009
    5. Audi Q7
    BMW:
    1. BMW 525 2007
    2. BMW 525 2009
    3. BMW 530
    4. BMW 745 2002
    5. BMW 760 2007
    Chevrole:
    1. Chevrolet Cruze
    2. Chevrolet Captiva
    3. Chevrolet Epica 2010
    4. Chevrolet Tahoe
    5. Citroen C5 2010
    6. Citroen C4
    7. Citroen Jamper 2010
    Fiat:
    1. Fiat Albea 2011
    2. Fiat Doblo
    3. Fiat Linea
    4. Fiat Punto Robot
    Ford:
    1. Ford C-MAX
    2. Ford Connect
    3. Ford Expedition 2007
    4. Ford Expolorer 2007
    5. Ford Focus 2
    6. Ford Focus 3
    7. Ford Focus 3 2011
    8. Ford Fusion
    9. Ford Galaxy 2005
    10. Ford Galaxy 2006
    11. Ford Maverick 2006
    12. Ford Mondeo
    13. Ford Mondeo New
    14. Ford S-MAX
    15. Ford Tourneo
    16. Ford Tourneo турецкий
    17. Ford Tranzit
    Honda:
    1. Honda CR-V
    2. Honda Civic
    Hyunda:
    1. Hyundai IX35
    2. Hyundai IX55
    3. Hyundai Santa FE
    4. Hyundai Solaris
    5. Hyundai Sonata
    6. Hyundai Elantra
    7. Hyundai Getz
    8. Hyundai Accent
    9. Hyundai H1
    Infinity:
    1. Infinity FX35
    2. Infinity FX45
    3. Infinity G35
    4. Infinity GX35
    5. Infinity QX56
    Kia:
    1. Kia Sorento 2010
    2. Kia Sportage
    3. Kia Rio
    Land Rover:
    1. Land Rover Discovery 3 2007
    2. Land Rover Discovery 3 дизель
    3. Land Rover Vogue 2008 бензин
    Lexus:
    1. Lexus RX270
    2. Lexus RX450h
    3. Lexus GX460- 2005г
    4. Lexus LS460 2010
    5. LEXUS LS600HL 2008
    6. Lexus LX570 2008г
    Mazda:
    1. Mazda 2 2003
    2. Mazda 3
    3. Mazda 5
    4. Mazda 6
    5. Mazda CX7
    Mercedes:
    1. Mercedes VITO 3.5L AT 07-08
    2. Mercedes Benz W211
    3. Mercedes Benz W221
    4. Mercedes C-class W203
    5. Mercedes C-class W204
    6. Mercedes GL500 2007
    7. Mercedes ML320 2001
    8. Mercedes ML500 W164
    9. Mercedes R-class
    10. Mercedes Sprinter-NEW
    11. Mercedes Viano
    12. Mercedes МL350 163/164
    Mitsubishi:
    1. Mitsubishi Outlander 2010
    2. Mitsubishi Lancer X
    NISSAN:
    1. NISSAN MURANO
    2. NISSAN NOTE 1,4L MT 2011
    3. Nissan Almera 2005
    4. Nissan NAVARA
    5. Nissan Pathfinder
    6. Nissan PATROL 2010
    6. Nissan Primera 2005
    7. Nissan Qashqai
    8. Nissan Teana 2010
    9. Nissan Teana до 2008
    10. Nissan Tiida 2008
    11. Nissan X-trail 2008
    12. Nissan Х-Trail 2007
    Opel:
    1. Opel Antara
    2. Opel Astra
    3. Opel Insignia
    4. Opel Vectra
    5. Opel Zafira
    Peugeot:
    97. Peugeot 207 2009
    98. Peugeot Boxer
    99. Peugeot Partner
    Porsche:
    1. Porsche Cayenne
    Renault:
    1. Renault Megane II
    2. Renault Kangoo 2010
    3. Renault Koleos
    4. Renault Laguna II 2004
    5. Renault Scenic II
    Saab:
    1. Saab 93
    Skoda:
    1. Skoda Oktavia
    2.Skoda Oktavia 2011г
    3. Skoda Superb
    SSangyong:
    1. SSangyong Action
    2. SSangyong Kyron бензин дизель
    3. SSangyong Rexton 2 бензин дизель
    Suzuki Grand Vitara:
    1. Suzuki Grand Vitara 2010
    2. Suzuki Grand Vitara 2007
    Toyota:
    1. Toyota Auris
    2. Toyota Avensis 2010
    3. Toyota Camry 2.4
    4. Toyota Camry 3.5
    5. Toyota Camry 20011
    6. Toyota Corolla
    7. Toyota HIGHLANDER 2010-11
    8. Toyota LC200
    9. Toyota Prado 150 2010
    10. Toyota Rav4
    Volvo:
    1. Volvo S60
    2. Volvo S80 08-2010 sport/comfort
    3. Volvo XC90
    4. Volvo CX70 2010
    5. Volvo S40 New
    6. Volvo S80
    7. Volvo S80 New
    8. Volvo XC70
    VW:
    1. VW CRAFTER
    2. VW PASSAT B6
    3. VW PHAETON
    4. VW CADDY
    5. VW Caravella
    6. VW Passat CC
    7. VW SHARAN 2005
    8. VW T5 Transporter
    9. VW Touareg
    10. VW Touareg
    11. VW TOURAN 2003

    Возможность изготовления на другие марки – Поз заказ!
    так как устройство не имеет ограничений.

    Ссылка на основную публикацию
    Adblock
    detector