Ixxat usb to can v2 распиновка

Обновлено: 04.07.2024

Работа с конвертором интерфейсов CH341
Приветствую всех присутствующих. Есть необходимость осуществлять обмен данными между ПК с WIN XP и.

Работа с USB-token или usb с премудростями
Доброго пятничного утра всем! Сначала опишу что есть и как это выглядит, а потом опишу что.

Работа внешнего жд USB 3.0 на компе с USB 2.0
Всем доброго дня и с Праздником! Вопрос такой значит хочу приобрести внешний жесткий диск на 2.

Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства
name: как передавать сигнал от требующего установку драйверов USB WIFI Адаптера через компьютер по.

по идее, просто читать из порта
медленным устройствам иногда требуется небольшая пауза перед чтением по идее, просто читать из порта
медленным устройствам иногда требуется небольшая пауза перед чтением других вариантов получения данных из порта, кроме чтения, не бывает ))
sleep(200); перед чтением не помогает? Хм, дело сдвинулось с одного камня и угодило в другой. массив AnsiChar вроде как-то сработал, теперь на

Радостно выдает либо "у",либо жирную точку, в зависимости от BaudRate порта

Добавлено через 1 час 42 минуты

Подсмотрел я с помощью одной софтинки, что другая софтинка для прослушки can шины данные в hex туда отсылает. Думаю завтра то же самое попробовать А на аппаратном уровне в этом преобразователе присутствует ли uart? Или с USB в чип и оттуда сразу can? А на аппаратном уровне в этом преобразователе присутствует ли uart? Или с USB в чип и оттуда сразу can? ЮСБ --> Контроллер (коробочка) --> CAN. Что там внутри - фиг его знает. Мне не рассказывали. Знаю, что там прошивка самодельная стоит. Просто для чисто виртуальных портов скорость значения не имеет. А скорость CAN измеряется мегабитами. Мне нужно задать ей BaudRate, но я не могу уловить когда она кушает полученные команды и как она на них реагирует

как это все друг с другом связано? Вам скорость неизвестна и вы перебором по данным пытаетесь определить что-ли, пока не будет известная команда в наборе? В этом случае только так и делается при работе со многими разными неизвестными девайсинами.

С другой стороны девайсине скорость обмена менять незачем и ее можно подсмотреть в сниффере и уже задать фиксированно у себя. Так зачем извращения?

доки принято прикладывать к посту, испорченный телефон он такой испорченный. Нашел, где собака порылась. Оказывается нужно было слать данные в виде

Коробочка всё кушает. Ну и напутал в 1 месте с оператором Move, потому он мне ересь и писал
Доки прилагаю сейчас, программку скину, когда доделаю.
USB-CAN Bus Interface - Documentation (не дает он ссыль на пдф, потому придется так жмякать)

Добавлено через 51 минуту
ComMon'ом смотрю на работу своей программулины и вижу следующее
КомМон
Как, собсна, добавить этот IOCTL_SERIAL_WAIT_ON_MASK? Если запустить это всё дело, то рваные записи выходят аля
Программа

USB-CAN интерфейс, или просто CAN хакер своими руками


В последнее время, как в автомобилях так и в промышленной автоматике, очень часто стал применяться так называемая CAN (Controller Area Network) шина. Высокая скорость передачи данных, отличная помехоустойчивость и возможность объединения множества устройств в одну сеть, делают ее практически вне конкуренции с другими шинами. Для передачи данных по КАН шине достаточно двух проводов, или иными словами одна витая пара. Подробности работы CAN шины описаны неоднократно, кому интересно тот найдет и почитает. Нас больше интересует как же подключится с помощью компьютера, ноутбука или планшета к шине КАН. Для данной задачи я изготовил

адаптер шины USB to CAN

который позволяет подключится с помощью ПК к любой CAN шине, смотреть пакеты которые по ней идут, записывать их, а также есть полноценная возможность слать свои данные в CAN шину!
Адаптер USB to CAN будет полезен авто электрикам, он отлично подходит для отслеживания пакетов людям которые изготавливают CAN подмотки одометров, а так же инженерам которые работают с автоматикой, которая использует КАН шину.


Устройство выполнено с применением микроконтроллера фирмы microchip PIC18F1XK50. как контроллере с SPI интерфейсом MCP2515, и высокоскоростного КАН трансивера mcp2551. ВАЖНО. микросхемы КАН контроллера MCP2515 бывают в разных корпусах, и у них не совпадают выводы, плата разведена под MCP2515IST. если будете пихать с другими буквами придется брать даташит, сверять ноги и разводить под ваш экземпляр. Нумерация выводов в плате и схеме не совпадает, так как на схеме MCP2515 нарисована в другом корпусе!
И так вот схема адаптера USB to CAN.

USB-CAN интерфейс, или просто CAN хакер своими руками


В принципе ничего особо сложного, если сравнивать с теми схемами которые гуляют по сети. Схема 100% работает, я по мимо того что сделал прототип я его еще и испытывал, если не поленюсь то запишу видео, как работает с CAN подмоткой спидометра, а может и на работе к автоматике подключу для наглядности. Собственно под сей девайс я развел печатную плату, по размерам получилось 55 х 45мм. все компоненты SMD кроме нескольких перемычек. Вот собственно и плата.

USB-CAN интерфейс, или просто CAN хакер своими руками


Ну я думаю все понятно где что, на плате предусмотрена перемычка бутлоудера для программирования контроллера, так же перемычка терминатора, и собственно контакты шины CAN. плату делал пленочным фоторезистом, ничего сложного в ней нет, разьем стоит MINIUSB не микро!
Для работы с КАН адаптером можно использовать разные программы, но я рекомендую программу CANHacker, про нее будет отдельная статья с вылеченной от жадности разработчиков рабочей прогой, она достаточно функциональна, имеет функцию фильтрации пакетов, что часто бывает просто незаменимо, также запись данных как с шины, так и в шину, в том числе и записанных ранее (эмуляция работы некого устройства).
Теперь самое интересное, прошивка) а там все интересно, я уже не помню но по моему шил все через USB без программатора, ну короче вам повезет если с завода у вас прошит бутлоадер в контроллере, если нет то в архиве с прошивкой есть описание как прошится. В архиве самая последняя версия прошивки, бутлоадер на всякий случай, драйвера под виндовс и линукс, в общем разберетесь. При прошивке не забываем установить перемычку BOOT.
=====================================
В папке Bootloader есть хекс файл его нужно прошить в контроллер, программатором! потом поставить перемычку бутлодера, и подключить к компу по юсб. далее утилитой Mphidflash заливаем черею юсб прошивку, команда mphidflash -Write USBtin_firmware_v1.7.hex, после обновления отключаем кабель, снимаем перемычку, и устройство готово!, ставим драйвера и пользуемся. Ну по крайней мере по памяти было все как-то так)
=====================================
Правильно прошитое и работающее устройство должно определится как ком порт.

USB-CAN интерфейс, или просто CAN хакер своими руками

Так же коротенькое видео работы КАН интерфейса с перехватом пакетов от промышленного оборудования.


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

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

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

Для разрешения периферийному блоку 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. Я не смог найти руководство пользователя для этого приложения. Однако оно достаточно простое и интуитивное при использовании.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Использование адаптера USB – to – COM для подключения
контроллера ЭСУД автомобиля к PC

Данный материал публикуется впервые, любезно предоставлен для публикации на нашем сайте компанией IC Book Labs и является эксклюзивной собственностью данной компании. Перепечатка без письменного разрешения правообладателя запрещена.


Как известно, для диагностики и перепрограммирования автомобильных систем, в частности ЭСУД, используется диагностическая линия K – Line 12 V (ISO 9141 ), электрически совместимая с последовательным интерфейсом RS 232 , применяемым в персональных компьютерах. Но, при сопряжении авто и компьютера возникает проблема, связанная с тем, что обмен с автомобильными системами выполняется на скоростях 200 и 10400 бод, которые нетипичны для компьютеров. В предлагаемой статье рассматривается простое решение данной проблемы для адаптеров USB – to – COM с помощью программного обеспечения, штатно поставляемого разработчиками.


Управление скоростью обмена

Скорость обмена для последовательного интерфейса зависит от установленного делителя. Значение делителя определяется содержимым регистра Baud Rate Divisor. Анализ архитектуры контроллера и несложные расчеты показывают, что нет препятствий для использования интересующих нас скоростей в 200 и 10400 бод. Так в чем же проблема?


При написании операционных систем, драйверов и различных прикладных программ обслуживания последовательного интерфейса, в целях упрощения, использовался стандартный, ставший традиционным для персональных компьютеров, ряд скоростей: 300 , 600 , 1200 , … , 115200 бод. Скорости 200 и 10400 бод, которые использует диагностическая линия автомобиля, не входят в этот ряд.

Наша задача — обеспечить поддержку скоростей обмена, которые поддерживают контроллеры FT 232 и CP 2102 , но не поддерживает “классическое” программное обеспечение. Идея заключается в том, чтобы переопределить скорости из стандартного ряда новыми значениями, например, заменить 14400 бод на 10400 бод. После такого переопределения, запрос на включение режима 14400 бод будет приводить к включению режима 10400 бод. Смысл в том, что мы добавляем новую скорость, сохранив интерфейс, совместимый с имеющимся программным обеспечением. В принципе, для подстановки можно использовать любую скорость из заданного ряда.

Переопределение скоростей для контроллера CP 2102

Рассмотрим реал изацию описанной выше идеи для обеспечения совместимости контроллера USB – to – COM CP 2102 с контроллером электронной системы управления двигателем (ЭСУД) автомобиля. Как было сказано выше, для диагностической линии K – Line 12 V типичны скорости в 200 и 10400 бод.

К счастью, производитель контроллера CP 2102 предусмотрел возможность гибкого управления режимами работы и снабдил свое устройство утилитой для переназначения скоростей обмена, поэтому сегодня нам не понадобятся дизассемблер и отладчик, наши действия будут очень простыми и сведутся к использованию штатной утилиты CP 210 xBaudRateAliasConfig.exe поставляемой компанией Silicon Labs.

Также отметим, что результатом наших действий будет изменение содержимого таблицы, хранящей значения делителей частоты для поддерживаемых скоростей. Эта таблица находится во внутренней энергонезависимой памяти микросхемы CP 2102 , поэтому изменения сохранятся при выключении питания или переносе перепрограммированного устройства на другой компьютер. Для большинства применений, такой вариант удобнее, чем, например, внесение изменений в драйвер. Для обеспечения совместимости с диагностической линией автомобиля и программным обеспечением, используемым для контроля состояния ЭСУД, нам необходимо осуществить следующие переопределения: 14400 на 10400 и 300 на 200 бод.

Итак, запускаем утилиту CP 210 xBaudRateAliasConfig.exe. Появляется окно CP 210 x Baud Rate Configuration. Если подключено несколько устройств CP 2102 , в верхней строке Connected Devices необходимо выбрать устройство, которое мы будем перепрограммировать. Если устройства подключались уже после того, как утилита была запущена, следует использовать кнопку Refresh для обновления списка задействованных адаптеров.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Нажимаем кнопку Get Configuration и получаем список поддерживаемых скоростей обмена для выбранного устройства.

Если используется один USB – to – COM адаптер, список формируется автоматически, если несколько, — то после выбора устройства обязательно следует нажать кнопку Get Configuration, иначе будет визуализироваться таблица, соответствующая не текущему, а ранее выбранному адаптеру!

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Дважды щелкаем мышью на строке, соответствующей редактируемому режиму. Вводим требуемое значение скорости обмена — Desired Baud Rate. При этом автоматически обновляется фактическое значение скорости Actual Baud Rate. С точки зрения стандарта последовательного интерфейса, допустимым является отклонение ± 3 %. Точность установки скорости для контроллера CP 2102 удовлетворяет этому требованию. Редактируем строку 19 . Исходное значение скорости обмена 14400 бод.


Вводим новое значение – 10400 бод, нажимаем OK и переопределение задано!


Редактируем строку 28 . Исходное значение скорости обмена 300 бод.


Вводим новое значение – 200 бод, нажимаем OK и переопределение задано.

После того, как все изменения внесены, не забываем нажать кнопку Set Configuration в окне CP 210 x Baud Rate Configuration и проверить, что значения Desired и Actual в редактируемых строках изменились.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

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

Дополнительно отметим, что кнопка Advanced позволяет выполнить более тонкую настройку параметров. Для переопределения необходимо установить флажок Override Recommended.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Параметры Prescaler (коэффициент деления для предварительного делителя частоты) и Reload (значение для загрузки в счетчик основного делителя частоты) определяют скорость обмена Baud Rate в бодах в соответствии со следующей формулой:

Baud Rate = ( 24 . 000 . 000 /Prescaler) / ( 65536 — Reload)

Отметим, что контроллер CP 2102 поддерживает скорости до 1 . 000 . 000 бод в режиме 7 и 8 – битных данных и 921 . 600 бод в режиме 5 и 6 – битных данных, для полнодуплексного обмена. При установке скорости, превышающей указанные ограничения, возможны сбои в работе контроллера.

Управление таймаутом при обмене данными по USB осуществляется редактированием параметра USB Receive Timeout. Значение таймаута в секундах определяется по формуле:

Timeout = ( 65536 – Reload) / 500 . 000

Указанный таймаут используется при передаче по USB в компьютер данных, принятых по последовательному интерфейсу. Он определяет промежуток времени, в течение которого контроллер ожидает входных данных. Если в течение заданного промежутка данные не поступают, контроллер завершает передачу по USB. Типовое значение таймаута – 1 ms. Управление таймаутом позволяет устанавливать компромисс при достижении двух взаимно противоречащих критериев:

1 . Минимизация задержки обслуживания USB устройства компьютером, что в данном случае дает увеличение скорости реакции диагностической программы на события в диагностируемом объекте.

2 . Минимизация загрузки компьютера операциями передачи пустых пакетов данных по USB, имеющими место при отсутствии поступления данных по последовательному интерфейсу. От этого зависит общая производительность.
Чем больше таймаут, тем дольше устройство “не засыпает” при отсутствии данных, то есть для улучшения первого критерия, таймаут следует увеличивать, а для второго — уменьшать.

Переопределение скоростей для контроллера FT 232

Рассмотрим решение подобной задачи для одного из конкурирующих продуктов – контроллера FT 232 компании FTDI. В отличие от выше приведенного примера, здесь нам придется редактировать файл конфигурации драйвера последовательного порта FTDIPORT.INF . Структура этого файла описана в [ 3 ], процедура редактирования полей, устанавливающих скорость обмена для последовательного порта, описана в [ 4 ]. Поэтому, в целях компактности изложения, в нашем описании внимание акцентировано только на тех параметрах, которые необходимо изменять. Также отметим, что данный пример соответствует одному из нескольких вариантов представления параметров, все возможные варианты перечислены в [ 3 ], [ 4 ].

Находим в файле FTDIPORT.INF следующую запись:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 10 , 27 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Последовательность, начиная с шестого по счету параметра, содержит пары байтов, каждая из которых задает коэффициент деления частоты для делителя, определяющего скорость обмена по последовательному интерфейсу. Каждая пара соответствует определенной скорости. Рассмотрим первую пару параметров 10 h, 27 h.

1 . Так как два смежных байта 16 – битного слова записаны начиная с младшего байта, для получения 16 – битного числа, их нужно обменять местами: 10 , 27 соответствует 2710 h, h — означает, что число записано в шестнадцатеричной системе счисления.

2 . Переводим 16 – ричное число 2710 h в двоичную систему.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3 . Интерпретируем полученное двоичное значение. Два старших бита 16 – битного числа, а именно биты 15 , 14 определяют дробную часть коэффициента деления частоты согласно следующей таблице:

Бит 15 Бит 14 Дробн ая часть делителя
0 0 0
0 1 0 . 5
1 0 0 . 25
1 1 0 . 125

В нашем случае дробная часть делителя равна нулю. Битовое поле 13 – 0 16 – битного числа численно равно целой части делителя, переведем из шестнадцатеричной системы в десятичную 2710 h = 10 . 000 .

4 . Тактовая частота на входе делителя равна 3 MHz = 3 . 000 . 000 Hz. Скорость обмена в бодах (Baud Rate) будет равна входной частоте делителя, разделенной на коэффициент деления.

Baud Rate = 3 . 000 . 000 / 10 . 000 = 300 бод.

Таким образом, первая пара значений задает скорость 300 бод. Пусть нам необходимо переопределить эту скорость на 10400 бод. Вычислим требуемый коэффициент деления (Divisor):

Divisor = 3 . 000 . 000 / 10 . 400 = 288 , 46

Ближайшее доступное значение 288 , 5 . Нам требуется задать целую часть делителя равной 288 , дробную равной 0 , 5 . Согласно таблице 2 , биты 15 , 14 будут равны 01 b, b — означает, что число записано в двоичной системе счисления. Переведем 288 в шестнадцатеричную систему: 288 = 120 h. Это значение необходимо поместить в битовое поле 13 – 0 . Объединяем биты 15 – 14 и 13 – 0 , получим 4120 h.

Для переопределения скорости 300 бод на 10400 бод запись должна иметь вид:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 20 , 41 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Напомним, что если драйвер устройства FT 232 уже установлен, для вступления изменений в силу, программное обеспечение устройства необходимо полностью деинсталлировать и установить повторно из каталога, в котором находится отредактированный INF файл. В силу особенностей операционной системы, функция обновления драйвера или удаление устройства в диспетчере устройств может не дать результата.

Источники информации.

5 . М. Гук. Аппаратные средства IBM PC. Энциклопедия. Санкт – Петербург, издательство “Питер” 2006 .

Читайте также: