Каталог статей


Выбранная схема!!!


7970
USB Интерфейс с использованием программного обеспечения Python | Полный проект электроники

USB Интерфейс с использованием программного обеспечения Python | Полный проект электроники

Это выход простого транзистора программа трассировки характеристических кривых через микроконтроллер PIC & USB интерфейс с использованием языка программирования Python. Выходная характеристика транзистора автоматизируется с использованием программного обеспечения Python и интерфейса USB. Прикладное программное обеспечение для сбора измеренного значения и отображения его на экране монитора разработано с использованием Python.

Типы USB

В последних компьютерах устаревшие порты, такие как параллельный порт, последовательный порт и т. д., были заменены на USB. Функция Plug-and-Play USB может использоваться для автоматизации лабораторных приборов/систем сбора данных. Чтобы удовлетворить потребности различных приложений, использующих интерфейс USB, в спецификации USB V2.0 были разработаны три скорости работы: низкая скорость (1,5 Мбит/с), полная скорость (12 Мбит/с) и высокая скорость (480 Мбит/с).

Недавно в спецификации USB3.0 появилась сверхскорость — 5 Гбит/с. Физическое соединение USB использует четыре провода. Два провода используются для передачи дифференциального сигнала (D+ и D-), а два других предназначены для питания и заземления. Для передачи данных между главным ПК и устройством USB V2.0 поддерживает четыре типа передачи данных, а именно: управление, групповую передачу, прерывание и изохронную.

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

Массовая передача данных используется, когда данные генерируются или потребляются в относительно больших количествах.

Прерывание передачи данных используется для своевременной, но надежной доставки данных.
Изохронная передача данных занимает заранее согласованную полосу пропускания USB с заранее согласованной задержкой доставки (также называемой потоковой передачей в реальном времени).
Одним из основных препятствий для разработчиков периферийных устройств USB является разработка драйверов для специализированных устройств USB. Это было удалено с помощью LibUSB-Win32, драйвера с открытым исходным кодом.

Хостовое программное обеспечение

USB поддерживает конфигурацию «главный-подчиненный». Мастер – это всегда ПК. Программное обеспечение, которое находится на ПК и управляет потоком данных, называется хост-программой. В этой статье хост-программа, используемая для связи с классом запоминающего устройства/устройством связи USB, — это Python.

Python — это интерпретируемый язык, который позволяет значительно сэкономить время при разработке программ, поскольку не требуется компиляция и компоновка. Это популярный язык программирования, используемый как для автономных программ, так и для сценариев. Это бесплатная, портативная, мощная и удивительно простая в использовании программа.

Интерпретатор можно использовать в интерактивном режиме, что позволяет легко экспериментировать с особенностями языка. Программы, написанные на Python, обычно намного короче, чем эквивалентные программы на C или C++. Существует два способа использования интерпретаторов: интерактивный режим и режим сценария. В интерактивном режиме интерпретатор печатает результат по мере набора программы.

Шеврон >>> — это подсказка, которую переводчик использует, чтобы указать, что он готов. Альтернативно вы можете сохранить код в файле и использовать интерпретатор для выполнения содержимого файла, который называется скриптом.

Требуется программное обеспечение

Необходимое программное обеспечение включает Python 2.5 (python-2.5.2) или более позднюю версию IDE, Win32 Python (pywin32-210.win32-py2.5), библиотеку Matplot (matplotlib-0.91.2.win32-Py2.5), Numeric Python (numpy-1.0.4.win32-py2.5) и PyUSB-1.0.0a2.

PyUSB-1.0.0a2 — это библиотека Python, обеспечивающая легкий доступ к USB. Версия PyUSB-1.0.0a2 написана на Python, что позволяет программистам Python, не имеющим опыта работы с C, понять, как работает PyUSB. PyUSB может работать на любой платформе с Python 2.4 и более поздних версий. Общаться с устройством USB еще никогда не было так просто. USB — сложный протокол, но PyUSB имеет все необходимые функции, необходимые для настройки устройства с поддержкой USB. Модули PyUSB имеют два подмодуля: usb.core в качестве основного модуля и usb.util, содержащий служебные функции.

Руководство по PyUSB 1.0 дает базовую информацию о сложном протоколе USB. Если вы хотите узнать всю информацию, связанную с USB, обратитесь к книгам USB Design by Sample Джона Хайда и USB Complete Яна Аксельсона.

Функции, необходимые для настройки USB и сбора данных, включены в pic18f4550.py, а именно: __init__(self,val1,val2), set_portb_output(self,val), set_portd_output(self,val), read_analog_0(self), read_analog_1(self) и set_voltage12(self, val).
Подробности следующие:
• __init__(self,val1,val2) обеспечивает связь USB.
• set_portb_output(self,val) помогает установить значения порта B от 0 до 255.
• set_portd_output(self,val) помогает установить значения порта D от 0 до 255.
• read_analog_0(self) помогает считывать аналоговые значения из канала 0.
• read_analog_1(self) помогает считывать аналоговые значения из канала 1.
• set_voltage12(self, val) помогает отправить 12-битное значение в DAC MAX5154.

Установка программного обеспечения

Установите Python2.5.2 IDE или более позднюю версию в операционной системе Windows 7. Затем установите вспомогательные инструменты один за другим. Папкой по умолчанию является папка C (C:Python25). Извлеките zip-файл PyUSB-1.0.0a2 в папку Python25. Теперь, используя командную строку, перейдите в папку PyUSB, которая находится внутри папки Python25, и установите PyUSB с помощью следующей команды (также показано на рис. 1):

>установка python setup.py

Установив необходимое программное обеспечение, поместите файлы pic18f4550.py и efy_trans.py в папку Python25.

Рис. 1: Скриншот командной строки

Цепь и работа

Принципиальная схема интерфейса USB с использованием Python и трассировщика характеристик транзисторов показана на рис. 2. Он построен на базе микроконтроллера PIC18F4550, 12-битного цифро-аналогового преобразователя MAX5154, стабилизатора напряжения AD780, усилителя напряжения LM358, преобразователя ток-напряжение OP741, силового транзистора SL100/CL100, исследуемого транзистора. BC547 (T1) и другие важные компоненты, необходимые для конфигурации USB.

Рис. 2: Принципиальная схема интерфейса USB и индикатора кривой транзистора

Микроконтроллер имеет встроенный приемопередатчик USB, который подключается к главному ПК через кабель USB. Тактовая частота, необходимая для работы USB на полной скорости, определяется внешним кристаллом 20 МГц. Подтягивающий резистор, внутренний в микроконтроллере, настраивает устройство USB как полноскоростное устройство. В этой конструкции питание, необходимое для работы PIC18F4550, берется из шины.

Ток базы исследуемого транзистора изменяется от 0 мкА до 175 мкА за восемь шагов с использованием контактов порта D (D0, D1 и D2). Напряжение коллектора изменяется от 0 В до 2,5 В за восемь шагов на цифро-аналоговом преобразователе от порта B.

Выходное напряжение цифро-аналогового преобразователя впоследствии усиливается примерно в четыре раза с помощью LM358 и подается на базу силового транзистора. Эмиттер силового транзистора SL100 соединен с коллектором транзистора, напряжение которого изменяется.

Коллекторное напряжение подается на канал 0 встроенного аналого-цифрового преобразователя после деления напряжения ровно пополам с использованием устройства делителя потенциала для удовлетворения ограничения напряжения микроконтроллера. Предполагая, что ток коллектора равен току эмиттера, выходной сигнал снимается на сопротивлении в один Ом, а падение на сопротивлении в один Ом усиливается примерно в 50 раз и подается на канал 1 встроенного аналого-цифрового преобразователя.

Авторский прототип показан на рис. 3.

Рис. 3: Авторский прототип

Строительство

Односторонняя компоновка PCB для интерфейса USB показана на рис. 4, а компоновка его компонентов — на рис. 5. После сборки схемы на PCB поместите ее в подходящую коробку.

Рис. 4: PCB макет интерфейса USB с использованием программного обеспечения Python
Рис. 5. Компоновка компонентов PCB

Загрузите PCB и PDF-файлы компоновки компонентов: Нажмите здесь

Прошивка

Все устройства USB обрабатывают стандартный набор запросов, описанный в спецификации USB. Это реализовано с использованием заголовочного файла pic18_usb, предоставляемого компилятором CCS C. Компилятор предоставляет базовую основу для перечисления. Во время перечисления хост запрашивает у устройства структуры данных, называемые дескрипторами. Эти дескрипторы содержат информацию об устройстве USB и типе связи. Если вы хотите создать собственное устройство USB, обратите внимание на детали конечной точки, идентификаторы поставщиков и идентификаторы продуктов. Эта информация необходима для перечисления устройств и содержится в файле usb_desc_cdc1.h. Прошивка, помимо требования USB, реализует следующие задачи:

  • Генерирует различные базовые напряжения
  • Генерирует различные токи эмиттера.
  • Измеряет напряжение коллектора.
  • Отправляет данные на компьютер.
  • Хост USB взаимодействует с периферийным устройством USB через драйвер устройства. Драйвер устройства — это программный компонент, который позволяет приложению получать доступ к аппаратному устройству. USB драйверы устройств для Windows должны соответствовать модели драйверов Win32.

    Windows включает функции интерфейса программиста приложений, которые позволяют приложениям взаимодействовать с драйверами устройств. Драйвер устройства создается с помощью мастера библиотеки USB, и устройство устанавливается на главный компьютер. Libusb-win32 — это порт библиотеки USB для операционной системы Windows. Библиотека позволяет приложениям пользовательского пространства получать доступ к любому устройству USB в Windows обычным способом без написания какой-либо строки кода драйвера ядра.

    Процедура установки оборудования

    Шаг 1

    После встраивания программы (шестнадцатеричного файла) в микроконтроллер подключите плату к ПК. Как только они будут подключены, появится всплывающее окно, как показано на рис. 6.

    Рис. 6: Экран мастера оборудования

    Шаг 2

    Используйте inf-master, расположенный в папке libusb-win32-device-bin-1.2.6.0, чтобы сгенерировать драйвер для подключенного устройства. Если драйвер установлен правильно, подключенное устройство появится в диспетчере устройств, как показано на рис. 7.

    Рис. 7. Окно диспетчера устройств

    Шаг 3

    Основные функции, включая настройку USB, настройку битов порта B и считывание аналоговых напряжений, можно протестировать с помощью интерактивного окна Python default. С помощью команды set_portb_output (192) можно зажечь подключенные светодиоды (LED1 и LED2).

    Аналогично аналоговое напряжение можно измерить, подключив клемму (AN0) к 5 В. Значение, соответствующее 5 В, равно 255. Лучше протестировать базовую функцию в интерактивном окне Python (рис. 8) перед тестированием реальной платы.

    Рис. 8. Интерактивная оболочка Python

    Шаг 4

    Откройте файл efy_trans.py из интерактивного окна PythonWin 2.5.2 и запустите сценарий, как показано на рис. 9. Шаблон вывода программы отображается с помощью программного обеспечения Tkinter, которое показано на рис. 10.

    Рис. 9. Открытие файла efy_trans.py и запуск его с помощью pywin32
    Рис. 10: Программный вывод ВАХ транзистора
    Рис. 10: Программный вывод ВАХ транзистора

    Система сбора данных на базе USB, использующая интерфейс Python и драйвер устройства общего назначения с открытым исходным кодом, упрощает подключение USB. Интерактивный характер программного обеспечения Python делает подключение USB более удобным для пользователя по сравнению с другими визуальными языками.

    Загрузить исходный файл: Нажмите здесь


    Категория: Железо | Добавил: Администратор (20.05.2026)
    Просмотров: 5 | Рейтинг: 0.0/0


    Всего комментариев: 0

    Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
    Жалоба

    ьте свои комментарии !!!!

    Имя *:
    Email:
    Код *:

    Copyright Zloy Soft (Company) © 2008 - 2026