Система сбора данных с USB интерфейсом, v1.1.

   Ниже приведён лишь краткий обзор прибора. Полное описание со схемами, фотами, исходниками и техдокументацией (всё в структурированной форме) можно найти в этом архиве!!!

   Добавление от 5.08.10. По данному девайсу написано уже с десяток дипломов. Один из них был прислан мне его автором с разрешением выложить. Устройство там несколько доработано плюс куча текстового и графического материала. Кому надо, качайте:   часть1,   часть2,   часть3.   Архивы примерно по 5 Мб.

   Третью версию прибора можно лицезреть ТУТ.

   Для нужд моей кафедры как-то понадобилась хитрая АЦП, при помощи которой можно писать значения отклонений аналоговых акселерометров и гироскопов на винт в течение долгого времени (несколько суток). По ТЗ входное напряжение должно было быть -15...+15 вольт, не менее 50000 измерений в секунду и разрешение в 0,05 В. Этим требованиям удовлетворяла 12-и разрядная АЦП AD7896. Чтобы прокачать её 100000 измерений в секунду (что равняется потоку 1600 кБод, учитывая 16-и битный протокол) решено было использовать USB интерфейс. Т.к. ARM-ов тогда небыло, совокупление AVRки и USB сделал посредством конвертора FT232BM. Это такая хитрая англицкая микросхемка, которая имеет вход UART (или параллельный, аналог LPT, если это FT245BM) и выход USB. Также она имеет драйвер, распространяемый бесплатно. Установив этот драйвер на ПК вы можете подключить ваше устройство к любому USB порту вашего ПК. При этом, как только винда обнаружит девайс, этот USB таинственным образом исчезает из списка портов ОС, а вместо него появляется "виртуальный" порт COMn. n - номер, как правило, следующий за последним из реальных СОМ пртов; однако на моём компе только 2 реальных СОМ-а, но винда упорно ставит FT232 на СОМ7... :-/

   С точки зрения программирования этот порт ничем не отличается от реального СОМ порта, за исключением возможности установки нетипично высокой скорости обмена. По этому писать драйвер для своего девайса элементарно просто, особенно учитывая обилие всяких готовых компонентов по работе с портами, типа Tcom.pas или ComPort.pas.

   В этом компоненте следует установить скорость обмена. В папке "Прога" упомянутого архива находим файл "ComPort.pas" а в нём строчку "dcb.BaudRate := 2000000;". Собсна, число - это и есть скорость в бит/с. Также на заданную скорость надо настроить UART вашего МК (в прошивке) и самму FT232. Для этого существует файл FTDIPORT.INF а в нём сточка с битами. В архиве, в отчёте, описано как оно настраивается. Готовый файлик с настройками под скорость 2 Мбит/с также есть в архиве. Его надо скопировать в папку system32 вместе с остальными дровами от FTDI. Если всё ОК, устройство начинает работать сразу.

   Получился прибор, фото которого ниже:

         

   На правом фото хорошо видна отдельная платка с FT232BM (сделал так, чтобы можно было использовать платку в других поделках).

   Схема прибора представлена ниже (кликните для увеличения):

   Опишу кратенько (полное описание есть в архиве). Напряжение -15...+15 вольт преобразуется входным "выпрямителем" на ОУ к уровню 0...5 вольт, пригодным для подачи на вход АЦП. АЦП питается через ИОН, построенный на REF195GP. На вход этого ИОНа поступает напряжение 10 вольт от удвоителя напряжения на переключаемых конденсаторах - необходимая мера для устойчивого получения "рефенированных" пяти вольт... Кстати, в более поздней версии прибора в качестве генератора импульсов для удвоителя напряжения использованы ШИМ выходы МК. Это позволило избавиться от микросхемы КР1211ЕУ1 и упростить схему.

   Пакеты от АЦП (два байта, первый с 8 значащими битами, второй с 4: остальные 4 - нули) поступают в МК, там перетряхиваются в два байта по 6 значащих бит в каждом + 2 бита для служебной информации и в таком виде "плюются" в UART. UART при этом разогнан аж до 2,5 Мбит/сек. Достигнуто это установкой регистра делителя в "0", а бита U2X в "1". Как показала практика, всё работает без сбоев.

   В ПК данные получает программа, написаная на Delphi7 (скриншот ниже). Исходник и EXE есть всё в том же архиве. Работает под любой виндовс (тестировалась на Win98 и WinXP). Прога имеет точки для выбора номера виртуального COM порта, кнопки включения и отключения приёма данных и многое другое. Позволяет сохранять данные в виде BMP картинки и txt файла. Последний удобен для обработки в EXEL и т.п. программах.

   Также есть две служебные кнопы: Init и Reset. По нажатию первой на устройстве мигает зелёный светодиодик (проверка связи). Назначение второй не помню... Для чего-то предусматривали, но никто и никогда этим не пользовался :)

   Прежде, чем начать пользовать устройство (уже подключённое и найденное виндой) надо нажать кнопу "открыть" - тогда пограмма займёт выбранный порт для своих нужд и никто ей не будет мешать. Кнопа "приём данных" по умолчанию нажата (приём разрешён).

  Режимов измерения есть два: первый с ограничением по количеству (в окошке надо ввести количество измерений). Как только АЦП отмолотит это количество, она останавливается. Второй режим позволяет проводить измерение до того момента, пока не будет нажата кнопа "стоп". Переключение режимов осуществляется "точечкой", при этом ненужные поля и кнопки становятся неактивны. В обеих случаях обязателен ввод задержки между измерениями. Значение может быть от 0 до, почти, бесконечности :) При нулевой задержке частота выборки будет 100 kSPS. Задержку выполняет микроконтроллер, так что измерение временных интервалов происходит достаточно точно.

   Результат измерения вибраций сейсмодатчиком можно лицезреть ниже:

   Измерение велось в течение 25 сек, результат в txt файле есть в архиве.

   

   Для просмотра информации из архива вам могут понадобиться следующие програмки (все крякнутые и русские):

     RusPlan50 rus

     Sprint-Layout 3.0 rus

     Sprint-Layout 4.0 rus

     Статья про работу с портами на низком уровне (имеется в архиве).

 

Дата последнего обновления страницы и архива: 12 октября 2006г.

   Ключевые слова: применение FT232, включение FT232, USB конвертор, USB2UART, UART2USB, подключение АЦП к ПК, АЦП с USB интерфейсом, описание USB интерфейса, измерение ускорений и вибраций, работа с USB портами под Windows.