WordPress database error: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

USB Модуль Ke-USB24A

Наверняка, те кто занимаются разработкой и эксплуатацией устройств сопряжения с компьютером хорошо знакомы и LPT и COM портами – еще бы, ведь именно они являлись до недавнего времени основными способами коммуникации между внешней схемой и компьютером. Однако, в настоящий момент времени эти порты постпенно исхезают из состава материнских плат современных компьютеров. Встает вопрос о переходе на шину USB. Помимо кучи преимуществ использование этой шины требует гораздо больше уксилий чем например, обычный COM порт. Теперь необходимо программировать USB микроконтроллер, заниматься разработкой USB драйвера, существенно усложнять программное обеспечение. Даже использование HID устройства не всегда является удобным – требуется довольно громоздкая процедура работы с устройством на стороне PC. Примеры для работы с ней широко распространены для языка С++. А что делать, если мы хотим использовать, например, Java?

Якщо перед нами стоїть завдання управління зовнішніми пристроями, наприклад, ключами, реле і т. д. через шину USB цікавим ходом буде використання модуля Ke-USB24A. Він призначений для сполучення зовнішніх цифрових і аналогових пристроїв, датчиків і виконавчих механізмів з комп'ютером через шину USB. Модуль має 24 лінії вводу/виводу з можливістю незалежної налаштування напрямку передачі даних.

Однією з найцікавіших особливостей цього модуля є те, що при підключенні його до комп'ютера він визначається операційною системою як додатковий COM порт! Тобто якщо встановити для модуля драйвера (вже готові і доступні для скачування на сайті розробника) в диспетчері пристроїв в розділі послідовних портів з'явиться новий COM порт. Саме через нього ми будемо спілкуватися з модулем.

Це означає що з програмної точки зору обмін інформацією між модулем і комп'ютером здійснюється через інтерфейс звичайного послідовного порту. Остання обставина істотно полегшує програмування, оскільки немає необхідності в застосуванні додаткових динамічних бібліотек, складних інтерфейсів і безпосереднього спілкування з драйвером. Для написання власних програм управління модулем можливе застосування будь-якої мови/середовища програмування, що підтримують можливість роботи з COM-портами. Можна використовувати C++, Delphi, VisualBasic, Java і навіть вбудований в Excel мову VBA!

Також всередині модуля вже інтегрований 10-ти розрядний аналого-цифровий перетворювач (АЦП) з частотою дискретизації до 400 Гц. Також модуль має можливість збереження налаштувань напрямків ліній введення/виводу, що дозволяє зберігати в своїй пам'яті дані користувача. Також модуль дозволяє змінювати свій строковий дескриптор USB пристрою. Саме цей текст з'являється в Windows при підключенні нового USB-пристрою. У Вас є можливість встановити і зберегти свій власний текст, який буде з'являтися при підключенні модуля до комп'ютера.

Как осуществляется управление модулем? Решение тоже весьма интересно – используются текстовые команды, наподобие тех, которые применяются в управлении модемами. Например, чтобы установить высокий уровень напряжения (+5 В) на линии ввода/вывода под номером 14 необходимо в COM порт, ассоциированный с модулемм записать команду вида $KE,WR,14,1 , чтобы подать логический ноль – $KE,WR,14,0 і т. д. Для далбнейшего ознайомлення з модулем рекомендую скачати опис команд управління Ke-USB24A (скачати).

Познайомимося ближче з висновками модуля. Призначення та схема їх розташування показано на малюнку і в таблиці нижче.

Номер висновку Позначення Опис виведення
1, 32 + 5 В Якщо джампер JM1 встановлено – на виведення встановлено напруга +5 В від шини USB (живлення модуля здійснюється від шини USB). Якщо джампер не встановлено, на даний висновок необхідно подати напругу + 5 В від зовнішнього джерела для живлення модуля Ke-USB24A (модуль фізично вимкнено живлення від шини USB).
2 Vadc Аналоговий вхід АЦП
3 I/O 1 Лінія вводу/виводу 1
4 I/O2 Лінія введення/виведення 2
5 I/O3 Лінія введення/виводу 3
6 I/O4 Лінія введення/виводу 4
7 I/O5 Лінія введення/виводу 5
8 I/O6 Лінія введення/виводу 6
9 I/O7 Лінія введення/виводу 7
10 I/O8 Лінія введення/виводу 8
11 I/O9 Лінія введення/виводу 9
12 I/O10 Лінія введення/виводу 10
13,14,15 Північна Кароліна Висновок не використовується (Not Connected)
16, 17 Земля Земля
18 I/O11 Лінія введення/виводу 11
19 I/O12 Лінія введення/виводу 12
Двадцять I/O13 Лінія вводу/виводу 13
21 I/O14 Лінія введення/виводу 14
22 I/O15 Лінія введення/виводу 15
23 I/O16 Линия ввода/вывода 16
24 I/O17 Линия ввода/вывода 17
25 I/O18 Линия ввода/вывода 18
26 I/O19 Линия ввода/вывода 19
Двадцять сім I/O20 Линия ввода/вывода 20
28 I/O21 Линия ввода/вывода 21
29 I/O22 Линия ввода/вывода 22
30 I/O23 Линия ввода/вывода 23
31 I/O24 Линия ввода/вывода 24

Теперь давайте перейдем сразу к практическому использованию модуля. Соберем схему на основе модуля для управления внешними нагрузками через шину USB, например, давайте будем управлять светодиодами, подключенными к линиям ввода/вывода. Рекомендованная схема от производителя представлена ниже. Схема предельно проста – к линиям ввода/вывода просто подключены светодиоды. Все светодиоды “сажаются” на общий провод схемы – напрмер, вывод 16 модуля. Обратите внимание, что если Вы хотите управлять болле мощными нагрузками, например, лампочками, реле или моторами Вам необходимо позаботится о буферной схеме, т.к. Ke-USB24A не выдержит такой нагрузки и перегорит. Светодиоды можно подключать вполне спокойно.

Со схемотехникой разобрались – пора переходить к софту. Нам необходима программа, которая могла бы передавать данные через COM порт. Тут есть несколько вариантов – можно использовать уже готовую программу, например, HyperTerminal, входящую в состав любой ОС Windows. Можно использовать специальную терминальную программу KeTerm, рекомендуемую разработчиком (для нее доступны исходные коды на языке С++, среда разработки Microsoft Visual C++ 6.0). Скачать ее можно на сайте Kernelchip. И наконец, наиболее интересный вариант – написать свою программу. Это весьма просто, т.к. нам потребуются знания только по программированию COM порта – о программировании USB нам даже вспоминать не ненужно.

Начнем с HyperTerminal т.к. она есть в любой версии Windows и всегда под рукой. Для ее запуска выберите Пуск ->Программы -> Стандартные -> Связь -> HyperTerminal. Тотчас же запуститься мастер создания нового соединения с предложением указать имя соединения. Укажите любое название, нажмите “OK”. Следующим шагом необходимо выбрать COM порт через который необходимо установить соединение. В списке выбираем такой номер порта который был выделен Windows для модуля (можно посмотреть в диспетчере устройств). Нажмите “OK”. Далее мастер предложит изменить настройки порта. Здесь необходимо сделать важное замечание – такие параметры как скорость, количество битов данных, битов четности и остальные настройки не имеют ни какого значения для модуля, т.к. фактически данные передаются по шине USB. Можно смело оставить все настройки по умолчанию. Нажмите “OK”.Итак, соединение установлено. Далее настоятельно рекомендуется изменить некоторые настройки в программе для удобства работы. В главной панели программы нажмите на кнопку “Свойства”. В открывшемся окне перейдите на вкладку “Параметры” и нажмите на кнопку “Параметры ASCII…”. Установите флажки как на рисунке ниже. Обратите внимание на первый флажок. Синтаксис команд модуля требует чтобы все команды заканчивались символом возврата каретки и перевода на новую строку. Нажмите “OK”.

Все настройки выполнены. Можно приступать к работе. Для начала отправим модулю самую простую команду $KE – команду проверки. Набираем текст $KE и нажимаем Enter. В ответ мы получаем строку #OK – это значит что модуль исправен и готов к работе.

Ну а дальше дело техники – используем команду $KE,WR с нужным номером линии и необходимым значением для записи. Посылаем разные команды – мигаем светодиодами.

На этом я хотел бы закончить эту вводную статью. Далее мы познакомимся с тем как управлять модулем из программ написанных на С++, Delphi и даже из EXcel. Познакомися с другими полезными функциями модуля, например АЦП.

Дмитрий Иванов

адмін

Залишити коментар

Your email address will not be published. Required fields are marked *