Peak can usb распиновка
Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.
Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:
- Способ передачи видео с фронтальной камеры, которую я добавлю.
- Способ отображения на экране картинки с камеры заднего вида в любое время.
Запуск на экране оказался более сложным, и после некоторого расследования я пришёл к выводу, что машина должна подавать сигнал от камеры заднего вида на экран через какую-то шину данных.
У Chevrolet две разные шины данных. Первая — это стандартная CAN, быстрая (500 Кбит/с) и надёжная, она используется для критических данных. Вторая — то, что GM называет LAN (GMLAN), более старая и медленная шина (33,3 Кбит/с), которая используется для данных, не связанных с безопасностью.
Мне нужен был способ прослушивать трафик по CAN, то есть снифер. Для этой цели невероятно полезно устройство PCAN.
Peak Can
Поскольку камера заднего вида менее важна для безопасности, чем другие компоненты, я предположил, что искомые данные, скорее всего, будут на шине GMLAN.
Самая простая точка доступа — разъём OBD2. Я подключил Peak Can к шине GMLAN, запустил программное обеспечение — и сразу началось прослушивание трафика.
Впрочем, я не планировал постоянно ездить с ноутбуком. Нужен был способ автоматизировать эти функции — и здесь пригодилась Arduino. Возможность напрямую получать питание 12V в сочетании с большим количеством ресурсов и поддержки в интернете сделала этот выбор очевидным.
В дополнение к Arduino для завершения проекта мне понадобилось два компонента: модуль CAN и модуль реле. По сути, Arduino — это мозг, запускающий и выполняющий код. Модуль CAN предоставляет возможность взаимодействовать с шиной данных, а реле обеспечивает питание фронтальной камеры, а также действует как видеомикшер между ней и камерой заднего вида.
Модуль mcp2515 (сверху), Arduino Uno (посередине), модуль реле (снизу)
После добавления и настройки соответствующих библиотек Arduino установил связь с автомобилем.
Прослушивание трафика через Arduino
Поскольку я уже знал, что могу запустить дисплей, то начал думать о том, КАК это сделать. Первоначальная идея состояла в том, чтобы установить на панели специальную кнопку мгновенного вызова, но я начал думать: «А что ЕЩЁ в сети можно использовать в качестве триггера?»
Распознавание однократного нажатия кнопки
Однако я не хотел, чтобы камера активировалась каждый раз, когда я отменяю круиз-контроль, поэтому я решил, что лучший подход — превратить её (по сути) в многофункциональную кнопку. Камера активируется только в том случае, если кнопка «дважды нажата».
После долгого уикенда изучения функции millis и отладки кода я успешно запрограммировал распознавание двойного нажатия.
Распознавание двойного нажатия
И когда я привязал его к своим командам для управления дисплеем, у меня собралась довольно крутая небольшая утилита.
Двойное нажатие + команды
Теперь у меня была возможность включать и выключать дисплей, но оставалась одна проблема — что насчёт камеры заднего вида? Мне нужно было, чтобы они с фронтальной камерой работали вместе, словно их так настроили на заводе.
На блок-схеме я изобразил, как я это представляю.
Я быстро понял, что для такой системы нужно в любой момент времени знать состояние трёх переменных:
- Модуль передней камеры: водитель включил или выключил его?
- Дисплей камеры: изображение на дисплее включено или выключено?
- Задний ход: автомобиль в реверсе или нет?
В конце концов, я добился успеха!
Активный мониторинг
Теперь я смог реализовать операционную логику, которая контролирует реле.
Управление через реле
На протяжении всего процесса я всё больше узнавал об Arduino и заметил, что версия Nano способна делать всё, что нужно, при этом у неё меньший размер и более низкая цена. Она идеально подходит для постоянной установки в автомобиль. Я разработал модель и распечатал на 3D-принтере корпус для размещения компонентов в качестве компактного блока для установки.
3D корпус
Наконец настал день, когда я увидел результаты. Хотя нужно ещё повозиться с таймингом, но было приятно видеть, что модуль корректно работает.
Включение/выключение режима парковки, включение/выключение фронтальной камеры, автоматическое переключение на камеру заднего вида и автоматическое переключение обратно
В целом, этот опыт меня многому научил и открыл глаза на возможности интеграции непосредственно с шиной CAN. Довольно удивительно, чего можно достичь соединением по двум проводам.
В будущем я планирую написать углублённый учебник о том, как добавить дополнительную функциональность к существующим кнопкам в вашем автомобиле, используя бесплатное программное обеспечение и компоненты.
Данный проект предназначен для изготовления простого устройства для мониторинга шины CAN. Я выбрал микропроцессор NUC140LC1CN 32K Cortex-M0 по одной главной причине – он имеет периферийные блоки USB и CAN.
See Also
Huh on 16th March 2022 at 10:52 said: What about GND?
Tek Eye on 17th March 2020 at 13:45 said: CAN uses differential signalling so ground (GND) is not as important, however, it can be used in noisy environments as an additional reference and shielding. See the article Can Bus Wiring Diagram, a Basics Tutorial for the required pins.
Характеристики проекта
Схемное решение
Для разрешения периферийному блоку 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 перед подачей питания на интерфейс приведет к запуску загрузчика.
A PEAK-System PCAN-USB Library and Demo
Note: Please consider the software as beta. It is your responsibility ensure that the software will not cause you any issues.
Once the zip file is extracted, or the project cloned, the demo program can be tried. However, it will require the PEAK-System PCAN-USB drivers to be installed, along with the PCANBasic.dll (see above). Another CAN device will be required to form a CAN network. It you have two PCAN-USB devices they can be used to talk to each other.
The Visual Studio solution file is PCAN_For_USB.sln. Open the solution, it should build and run when the Start/Run button is pressed.
A Brief Introduction to CAN
The Controller Area Network (CAN) is a digital data bus used to transfer sensor readings and actuator values between computers and microcontrollers in many types of systems. It was invented by Bosch for use in cars but is now used in other transport systems, buildings and factory automation. Its popularity is due to its simplicity (just two wires), lowcost and reliability. The data speed is low by todays standards, commonly up to one megabit per second (1 Mb/s). Five hundred kilo bits per second (500 kb/s) is often seen in vehicles. For long cable lengths low speeds are required (less than 125 kb/s). For links to detailed resources on the CAN protocol, and information on CAN bus wiring see the article CAN Bus Wiring Diagram, a Basics Tutorial.
Программирование интерфейса 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 загрузчика.
USB 3.0
1 | Vbus (Vcc) | Red |
2 | -Data | White |
3 | +Data | Green |
4 | GND | Black |
5 | StdA_SSRX- | Blue |
6 | StdA_SSRX+ | Yellow |
7 | GND_DRAIN | GROUND |
8 | StdA_SSTX- | Purple |
9 | StdA_SSTX+ | Orange |
Shell | Shield | Connector Shell |
The PEAK-System PCAN Software
The software for use with the PCAN-USB hardware is available from the PEAK-System web Support area. It includes:
- Windows drivers (installed by running PeakOemDrv.exe from the PEAK-System_Driver-Setup.zip download).
- PCAN-View, a CAN data traffic viewing and data packet transmission program. Good to verify PCAN-USB devices are working and performing basic CAN traffic capturing, viewing and analysis functions. (Copy PcanView.exe from the pcanview.zip download.)
- A variety of Application Programming Interaces (APIs), in the form of Windows DLLs, are available (e.g. XCP, ISO-TP, UDS, etc.). The starting point (as used in the software provided here) is the PCAN-Basic API, accessed via PCANBasic.dll which can be installed with the drivers, or download the pcan-basic.zip.
Характеристики проекта
Схемное решение
Для разрешения периферийному блоку 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 перед подачей питания на интерфейс приведет к запуску загрузчика.
PCAN-USB Interface Software Demo UI
- Select the PCAN-USB device from the list of detected devices.
- Select the correct or required baud rate.
- Click the Start button.
- A standard eight byte message can be transmitted, and received messages are displayed.
The code for the UI demo should be easy enough to understand, and helps to see how the PCAN_USB class is used.
Do you have a question or comment about this article?
(Alternatively, use the email address at the bottom of the web page.)
↓markdown↓ CMS is fast and simple. Build websites quickly and publish easily. For beginner to expert.
Распиновка USB-кабеля означает описание внутреннего устройства универсальной последовательной шины. Это устройство применяется для передачи данных и зарядки аккумуляторов любых электронных приборов: мобильных телефонов, плееров, ноутбуков, планшетных компьютеров, магнитофонов и других гаджетов.
Проведение качественной распиновки требует знаний и умения читать схемы, ориентирования в типах и видах соединений, нужно знать классификацию проводов, их цвета и назначение. Длительная и бесперебойная работа кабеля обеспечивается правильным соединением проводами 2 коннекторов USB и mini-USB.
USB Type-C (USB 3.1)
none Опубликована: 2007 г. 0 4
Вознаградить Я собрал 0 1
The PEAK-System PCAN-USB Interface Wiring
The PCAN adaptor comes with a standard USB connection for attaching to a laptop or desktop computer. The connection to CAN is via a 9-way D-type plug. The pinouts match the common CiA 303-1 specification. See the CAN Bus Wiring Diagram article. Note, some single board computers and Arduino CAN adapters do not follow the usual CiA CAN wiring. If using the PEAK USB adapter on some of those devices, check the device information to ensure correct wiring. The PCAN-USB manual available from the PEAK-System support page contains information on the PCAN-USB D-type connector. For basic CAN operation the CAN high, pin 7, and CAN low, pin 2 are connected together.
A CAN data bus requires a termination resistor at each end to absorb signal energy. This prevents the signal from reflecting back along the two wires an interfering with subsequent data transmissions. The termination resistance is typically 120 ohms. The PEAK-System PCAN-USB manual has details on enabling the termination internally in the PCAN-USB device.
Программное обеспечение
Интерфейс CAN-USB совместим с протоколом LAWICEL CANUSB и будет работать с приложениями, предназначенными для данного протокола. Я протестировал два приложения с интерфейсом CAN-USB:
CANHacker V2.00.02
Это бесплатное приложение CANHacker. Я не смог найти руководство пользователя для этого приложения. Однако оно достаточно простое и интуитивное при использовании.
CAN Monitor Pro V2.2
Данное приложение разработано wgsoft.de. Заметьте, что данный сайт разработчика в основном на немецком языке.
Распиновку у Micro USB см. в таблице выше (Mini USB)
Распиновка USB 2.0 разъема типы A и B
Классические разъемы содержат 4 вида контактов, в мини- и микроформатах — 5 контактов. Цвета проводов в USB-кабеле 2.0:
- +5V (красный VBUS), напряжение 5 В, максимальная сила тока 0,5 А, предназначен для питания;
- D- (белый) Data-;
- D+ (зеленый) Data+;
- GND (черный), напряжение 0 В, используется для заземления.
Для формата мини: mini-USB и micro-USB:
- Красный VBUS (+), напряжение 5 В, сила тока 0,5 А.
- Белый (-), D-.
- Зеленый (+), D+.
- ID — для типа А замыкают на GND, для поддержания функции OTG, а для типа B не задействуют.
- Черный GND, напряжение 0 В, используется для заземления.
В большинстве кабелей имеется провод Shield, он не имеет изоляции, используется в роли экрана. Он не маркируется, и ему не присваивается номер. Универсальная шина имеет 2 вида соединителя. Они имеют обозначение M (male) и F (female). Коннектор М (папа) называют штекером, его вставляют, разъем F (мама) называется гнездо, в него вставляют.
Комментарии (95)
| Я собрал ( 0 ) | Подписаться
Для добавления Вашей сборки необходима регистрация
0
Можно ли заставить телефон думать что он заряжается, путем замыкания ног разъема микро усб или подачей питания на отдельный контакт? Основное питание подаётся через контроллер АКБ с dc-dc преобразователя.
0
0
Добрый день. На флешке usb3.0 сломался разъём, решил вместо него припаять провод с usb2.0. Возможно такое решение? Если да то к каким контактам припаять.
0
Скажите плиз , переломался провод в джое, решил обрезать у места перелома и спаять с другим проводом с юсб выходом (от юсб мыши). Но есть проблемка: Разные цвета в проводах ,а я не шибко секу с электронике и тех. оборудования нет. С джоя идут такие провода:
1)красный
2)белый
3)зелёный
4)чёрный.
А в проводе от мыши:
1)белый
2)зелёный
3)синий
4)жёлтый
Подскажите, как мне быть:?
0
Попробуй разобрать мышку и джостик и на плате будет написано какие провода откуда. В мышке это точно есть распиновка контактов да и в джостике тоже есть распиновка контактов
0
Синий=черный= земля
Зеленый и ток понятно-data- .
В джое и так понятно что красный питающий а белый data+ , а вот от мыши штекер засунь в ненужную(которую не жаль) зарядник и проверь языком напряжение: сначало белый с синим, потом желтый с синим, и смотря на каком будет щипать язык, тот и питание, к красному комутируй. НЕ ТЫКАЙ В ПОРТ КОМПА data пин на 5В не расчитан, в лучшем случии спалишь порт в худшем материнку.личный опыт
0
Знаю что ответ будет лишним , по давности вопроса, но тут легче всего мультиметром прозвонить от пинов до кабеля на юсб узнать какой цвет кабеля какому пину соответствует, и узнать в нэте распиновка Джоя и припаять. Либо если не нэте нету распиновка юсб джоя просто отрывок юсб джоя расчистить и узнать какой кабель на какой пин идёт и там уже припаять по полученным данным
0
Подключал через картридер Explay c родным проводом карты CFTranscend и San Disk, одна читается, другая нет, пришлось провода подбирать. Как так?
0
0
Классификация и распиновка
При описаниях и обозначениях в таблицах разъемов ЮСБ принято по умолчанию, что вид показан с внешней, рабочей стороны. Если подается вид с монтажной стороны, то это оговаривается в описании. В схеме светло-серым цветом отмечаются изолирующие элементы разъема, темно-серым цветом — металлические детали, полости обозначаются белым цветом.
Несмотря на то что последовательная шина называется универсальной, она представлена 2 типами. Они выполняют разные функции и обеспечивают совместимость с устройствами, обладающими улучшенными характеристиками.
К типу A относятся активные, питающие устройства (компьютер, хост), к типу B — пассивное, подключаемое оборудование (принтер, сканер). Все гнезда и штекеры шин второго поколения и версии 3.0 типа A рассчитаны на совместную работу. Разъем гнезда шины третьего поколения типа B больше, чем нужен для штекера версии 2.0 типа B, поэтому устройство с разъемом универсальной шины 2.0 тип B подключается с использованием только кабеля USB 2.0. Подключение внешнего оборудования с разъемами модификации 3,0 тип B выполняется кабелями обоих типов.
Разъемы классического типа B не подходят для подключения малогабаритного электронного оборудования. Подключение планшетов, цифровой техники, мобильных телефонов выполняется с использованием миниатюрных разъемов Mini-USB и их улучшенной модификации Micro-USB. У этих разъемов уменьшенные размеры штекера и гнезда.
Последняя модификация разъемов ЮСБ — тип C. Эта конструкция имеет на обоих концах кабеля одинаковые коннекторы, отличается более скоростной передачей данных и большей мощностью.
Виды USB-разъемов, основные отличия и особенности
Универсальная последовательная шина представлена 3 версиями — USB 1.1, USB 2.0 и USB 3.0 . Первые две спецификации полностью совмещаются между собой, шина 3.0 имеет частичное совмещение.
USB 1.1 — это первая версия устройства, используемая для передачи данных. Спецификацию применяют только для совместимости, так как 2 рабочих режима по передаче данных (Low-speed и Full-speed) обладают низкой скоростью обмена информацией. Режим Low-speed со скоростью передачи данных 10-1500 Кбит/с используется для джойстиков, мышей, клавиатур. Full-speed задействован в аудио- и видеоустройствах.
В USB 2.0 добавлен третий режим работы — High-speed для подключения устройств по хранению информации и видеоустройств более высокой организации. Разъем помечается надписью HI-SPEED на логотипе. Скорость обмена информацией в этом режиме — 480 Мбит/с, которая равняется скорости копирования в 48 Мбайт/с.
На практике, из-за особенностей конструкции и реализации протокола, пропускная способность второй версии оказалась меньше заявленной и составляет 30-35 Мбайт/с. Кабеля и коннекторы спецификаций универсальной шины 1.1 и второго поколения имеют идентичную конфигурацию.
Универсальная шина третьего поколения поддерживает скорость 5 Гбит/с, равняющуюся скорости копирования 500 Мбайт/с. Она выпускается в синем цвете, что облегчает определение принадлежности штекеров и гнезд к усовершенствованной модели. Сила тока в шине 3.0 увеличилась с 500 мА до 900 мА. Эта особенность позволяет не использовать отдельные блоки питания для периферийных устройств, а задействовать шину 3.0 для их питания.
Совместимость спецификаций 2.0 и 3.0 выполняется частично.
Загрузчик
Флэш-память NUC140LC1 разделена на две секции. Одна из них предназначена для выполнения кода пользовательской программы (APROM) размером 32K, а другая для загрузчика (LDROM). Размер LDROM только 4K, что делает проблематичным создание полностью функционального USB загрузчика. Я использовал загрузчик, размещенный на запоминающемся устройстве (MSD), предоставленный Nuvoton. Установка джампера JP1 запускает выполнение загрузчика. В результате съемный диск будет отображаться в файловой системе хоста размером 32 кБ. Просто скопируйте и вставьте или перетащите и опустите обновление микропрограммы CAN-USB на диск загрузчика. Отсоедините USB кабель, снимите джампер и подсоедините кабель снова. Теперь должна выполняться обновленная микропрограмма.
Reusing the PCAN_USB Class
To reuse the PCAN_USB class add the project to a new solution (or add a reference to the compiled DLL). For example copy the PCAN_USB project to the new solution folder. (It is good practice to change the ProjectGuid.) In Microsoft Visual Studio add the PCAN_USB project to the solution using the Add and Existing Project menu options. Add the reference to PCAN_USB in the project that will using the PCAN_USB class.
The class to interface to the PCAN-USB adaptor is called PCAN_USB, in the CAN.PC namespace:
The plugged in PCAN-USB devices are return with the GetUSBDevices() method:
Possible baud rates are provided in a string array:
The PEAK-System API uses an unsigned short integer to reference a PCAN-USB device, use DecodePEAKHandle to extract it from the string displayed in the list.
Use WriteFrame to send a CAN message:
A PCAN_USB class stores the data from a received CAN packet:
Received CAN packets are stored in a PCAN_USB list:
Use the usual Count for a List to get the number of packets in the buffer:
Received packets overwrite the last one with the same id, unless it is turned off:
A list box can be updated automatically as packets are received. Note: This feature has not been optimized for performance.
When finished with a PCAN-USB adaptor call Uninitialize().
Оценить статью
Средний балл статьи: 4.7 Проголосовало: 1 чел.
Читайте также: