Разработка программно-аппаратного usb

advertisement
Разработка программно-аппаратного USB-интерфейса…
Е.А. ГРОМОВ
Национальный исследовательский ядерный университет «МИФИ»
РАЗРАБОТКА ПРОГРАММНО-АППАРАТНОГО USB-ИНТЕРФЕЙСА
ДЛЯ СПЕКТРОМЕТРА ИОННОЙ ПОДВИЖНОСТИ
Разработана плата спектрометрии с USB-интерфейсом для обеспечения работы спектрометра ионной
подвижности в среде Windows XP, а также разработаны прошивки микроконтроллеров и программное обеспечение.
Данный блок реализует интерфейсные функции для работы с аппаратными блоками спектрометра ионной подвижности
и персонального компьютера (PC), а также выполняет функции управления спектрометром ионной подвижности. Блок
позволяет обеспечить более высокую скорость обмена данными по сравнению со старыми интерфейсами COM, LPT,
которые использовались в первой версии прибора. Также большинство управляющих функций были перенесены из PC в
блок спектрометрии, что позволило освободить часть ресурсов PC.
Развитие спектрометрии ионной подвижности с момента появления первых лабораторных
установок в начале 1970-х гг. проходило неравномерно. Первоначальный энтузиазм по поводу
технической простоты и невероятной потенциальной чувствительности сменился общим
неприятием метода, поскольку электрохимические реакции и многие аспекты поведения ионов
при атмосферном давлении на тот момент не поддавались объяснению. Кроме того,
принципиальные технические ограничения в конструкциях дрейфовых трубок и методах
регистрации того времени не позволяли в полной мере изучить быстротекущие
электрохимические процессы. Таким образом, многие особенности спектрометрии ионной
подвижности оставались недоступными для детального исследования. Несмотря на то, что все
технические ограничения давно сняты, общее предубеждение против этого метода еще долгое
время препятствовало его развитию. В 1990-х гг., после нескольких удачных попыток управления
ионами в газовой среде при атмосферном давлении, отношение к спектрометрам ионной
подвижности и представление о перспективах их применения резко изменились. Значительный
прогресс в понимании принципов ионной спектрометрии в сочетании с несколькими
техническими инновациями, представленными в этой области за последние десять лет, позволили
многократно улучшить характеристики современных приборов в сравнении с их ранними
образцами. Первые серийно выпускаемые спектрометры быстро нашли применение в
вооруженных силах и службах охраны правопорядка разных стран. Несмотря на то, что в
настоящий момент эта технология рассматривается как универсальный способ обнаружения и
идентификации сверхмалых концентраций паров различных химических соединений в реальном
масштабе времени, как в полевых, так и в лабораторных условиях, многие особенности и
потенциальные возможности данного метода остаются неисследованными.
Спектрометр ионной подвижности является сложным измерительным комплексом, для
обеспечения максимальной чувствительности и селективности которого необходимы точный
контроль ряда параметров и тонкая регулировка многих внутренних систем. Существующий путь
решения такого рода задач – это распределение контрольно-измерительных и управляющих
функций между независимыми друг от друга микроконтроллерами, объединенными под
управлением центральной ЭВМ. Такой подход позволяет разгрузить основной вычислитель,
закрепив за ним основные контрольные функции и ресурсоемкие операции по обработке
результатов измерений.
Основой рассматриваемой архитектуры является система коммутации линий связи
последовательного асинхронного интерфейса UART, обеспечивающая подключение до 256
независимых внешних устройств к одному COM-порту центральной ЭВМ. Связь между
устройствами осуществляется в дуплексном режиме и устанавливается исключительно по запросу
ЭВМ.
Передача команд и данных управления в спектрометре ионной подвижности осуществляется
через интерфейс UART, а передача спектрометрических данных в IBM PC происходит по
параллельному интерфейсу. Контроллер спектрометрии ATMEGA-64 осуществляет передачу
данных.
Функция платы спектрометрии состоит в обработке поступившего с усилителя сигнала,
сохранении и передаче полученных данных в основной компьютер системы. Также плата
спектрометрии синхронизирует все процессы в системе и отдает команду на начало измерений.
Преимущества существующего прибора состоят только в простоте реализации
программного обеспечения и его быстродействии (обусловленного спецификой работы DOS).
ISBN 978-5-7262-1280-7. НАУЧНАЯ СЕССИЯ НИЯУ МИФИ-2010. Том II
1
Разработка программно-аппаратного USB-интерфейса…
Данный прибор имеет существенные недостатки, поскольку работает на базе старой
операционной системы DOS, соответственно плата спектрометрии ориентирована на работу в этой
системе. Это не позволяет связать прибор с современными внешними устройствами, а также
приходится использовать параллельный и UART-интерфейсы, которые морально устарели, имеют
невысокое быстродействие, громоздкие, не обладают универсальностью и встречаются все реже и
реже. В то время как современные устройства стремятся использовать современные интерфейсы
(такие как USB), которые понятны и доступны для пользователя, т.е. пользователь уже знает, как с
ними работать, создается ощущение простоты и надежности в использовании.
Одним из самых простых способов сопряжения USB с другими интерфейсами является
использование аппаратного моста для USB-интерфейса. В ходе работы при анализе доступных
аппаратных средств был выбран специализированный микроконтроллер Future Technology
FT2232, предназначенный для использования в системах, оснащенных шиной USB. Данный
аппаратный мост (USB to UART Bridge) представляет собой высокоскоростное USB-устройство,
предназначенное для подключения периферийных устройств, совместимых с асинхронным
последовательным портом (UART) и параллельным портом LPT, соответствующих стандарту
TIA/EIA232.
На базе FT2232 можно реализовать два независимых канала: USB–UART или USB–FIFO.
Выходные интерфейсы выбираются независимо друг от друга. Кроме основных функций,
микросхемы данной серии могут производить загрузку конфигурации в микросхемы FPGA
производства компании Altera или эмулировать последовательные интерфейсы IIC, SPI или JTAG.
Выбор выходного интерфейса зависит от требуемой скорости передачи и наличия
свободных линий ввода-вывода микроконтроллера, установленного в целевом приборе.
Максимальной скорости передачи в 8 Мбит/с можно достичь при использовании USB–FIFO.
Подключение к внешнему контроллеру обеспечивают
8 линий данных, 2 линии для передачи управляющих
сигналов чтения или записи и 2 линии статуса
приемного и передающего буферов. Для микросхем
FT2232 USB–UART максимально возможной является
скорость 3 Мбит/c. Обмен между контроллером и
микросхемой происходит по интерфейсу UART. В
этом случае 2 линии используются для передачи
данных, и еще 6 линий — для обеспечения
аппаратного контроля обмена. Линии аппаратного
контроля могут не использоваться.
Таким
образом,
проблему
аппаратной
реализации интерфейса USB в целевом приборе
решает
использование
специализированной
микросхем FTDI, но остается открытым вопрос
разработки драйвера. Для работы с мостами
разработаны и свободно распространяются два типа
драйверов: VCP (виртуальный COM-порт) и D2xx.
Рис. 1. Специализированный
Преимущество драйвера VCP заключается в
микроконтроллер-адаптер FT2232
том, что для обмена данными по USB можно
использовать
ранее
созданное
программное
обеспечение, работающее с COM-портом, при условии, что оно осуществляло корректный доступ
к последовательному порту через стандартные WIN32 API-функции. В этом случае модификация
программы будет заключаться лишь в замене номера последовательного порта. Также драйвер
VCP поддерживает работу со всеми микросхемами FTDI независимо от того, какой способ связи с
микроконтроллером они используют: последовательный (USB–UART) или параллельный (USB–
FIFO).
Драйверы D2xx включают драйвер WDM, осуществляющий связь с устройством через
Windows USB Stack, и библиотеку DLL, которая связывает прикладное программное обеспечение
(написанное на VC++, Borland C++ Builder, Delphi, VB и т. п.) с драйвером WDM. В общем случае,
они являются альтернативой драйверам VCP. Исключением будет использование
последовательных каналов IIC, SPI или JTAG для микросхем FT2232 или новой технологии
FTDIChipID для микросхем серий FT232R и FT245R, которые могут быть реализованы только с
помощью драйверов D2xx. Драйверы D2xx позволяют достичь максимальных заявленных
ISBN 978-5-7262-1280-7. НАУЧНАЯ СЕССИЯ НИЯУ МИФИ-2010. Том II
2
Разработка программно-аппаратного USB-интерфейса…
скоростей обмена данными – 8 Мбит/с для каналов, образующих параллельный интерфейс с
микропроцессорной системой, и 3 Мбит/c при использовании последовательной связи с
микроконтроллером.
На данный момент драйверы разработаны для таких операционных систем, как Windows (98,
ME, 2000, CE, server 2003, XP и XP x64), Mac OS (8, 9, X) и Linux. Драйверы VCP для Windows XP
имеют сертификат WHQL (также компания FTDI планирует получить сертификат WHQL для
драйверов D2xx).
В прототипе использовалось подключение системы к управляющему компьютеру через
стандартный последовательный интерфейс (COM, UART) и стандартный параллельный интерфейс
(LPT, EPP). Каждый контроллер системы получал управление непосредственно от компьютера
через диспетчер, выполняющий пассивные коммутирующие функции.
Особенностью архитектуры новой спектрометрической платы является то, что диспетчер,
кроме коммутирующих функций, выполняет достаточно сложные функции управления, которые
были перенесены из управляющего компьютера. При этом связь с PC осуществляется через USB –
LPT+UART мост. Это освободило часть ресурсов PC, но главное – это позволило исключить
одиночные посылки между PC и системой, и осуществлять пакетный обмен данными.
В устройстве реализована более сложная система коммутации, которая поддерживает
режимы передачи данных single и multiple. Режим single обеспечивает совместимость с
предыдущими версиями программного обеспечения PC и используется в основном для отладки. В
режиме multiple контроллер реализует сложный сценарий обмена данными с другими блоками
системы, накапливает информацию в RAM, а затем пакетом отправляет ее в IBM.
Рис. 2. Система коммутации
Диспетчер принимает все посылки от PC. Далее он определяет кому они адресованы. Если
посылка адресована к диспетчеру, то он переключает коммутатор (рис. 2) в режим multiple. При
этом линии RXD_USB и TXD_MK коммутируются между собой, а линии TXD_MUL и RXD_MUL
коммутируются с микроконтроллером – TXD, RXD. В режиме single коммутатор U12 соединяет
линии RXD, TXD и TXD_USB, RXD_USB напрямую.
Внутрисистемная передача команд и данных ведется по протоколу UART, побайтно и в
дуплексном режиме (после получения байта выдается отклик). Использование такого алгоритма
при обмене через USB приводит к катастрофически низкому быстродействию. Это связано со
спецификой интерфейса USB, в котором передача ведется редкими пакетами (интервал не менее
1мс), т.е. передача одного байта через мост фактически требует передачи целого пакета.
Алгоритмически управление микроконтроллерами основано на записи или чтении байтов
данных в (из) RAM. Процедура передачи данных содержит универсальную команду, номер
контроллера, номер ячейки памяти, общее количество байт. В разработанной системе для обмена
данными с микроконтроллерами используются посылки формата, представленного на рис. 3.
№ команды
№ контроллера
№ ячейки
Кол-во байт
ISBN 978-5-7262-1280-7. НАУЧНАЯ СЕССИЯ НИЯУ МИФИ-2010. Том II
данные
3
Разработка программно-аппаратного USB-интерфейса…
Рис. 3. Формат передаваемого пакета
В памяти диспетчера можно выделить блок, в который загружается последовательность
операций (в виде командных последовательностей), которые необходимо выполнить. Командные
последовательности представляют собой информацию из элементарных действий в выбранном
формате. В выделенную ячейку “старт” записывается количество команд, которые необходимо
выполнить (т.е. длина командной последовательности).
Информация о параметрах датчиков и исполнительных устройств должна храниться в
памяти микроконтроллера. На каждое устройство выделен блок по 16 байт. Для опроса всех
устройств был разработан ряд процедур.
Таким образом, в ходе работы выполнен комплекс работ по созданию интерфейсной платы
спектрометрии для обеспечения работы спектрометра ионной подвижности в среде Windows XP.
Разработанное программное обеспечение осуществляет полный внутрисистемный контроль,
реализует взаимодействие системы с PC и обеспечивает работу спектрометрического блока.
Так же исследованы параметры производительности устройства при управлении и передаче
данных через USB интерфейс. Проведена оптимизация быстродействия при графическом выводе
результатов.
Данная разработка является аппаратно-программной основой для разрабатываемого в
настоящее время спектрометра ионной подвижности.
СПИСОК ЛИТЕРАТУРЫ
1.
Агуров П.В. Интерфейсы USB. Практика использования и программирования. СПб.: БХВ-Петербург,
2004.
2.
Агуров П.В. Последовательные интерфейсы ПК. Практика программирования. СПб.: БХВ-Петербург,
2004.
3.
Неевижский В. Программирование аппаратных средств в Windows. СПб.: БХВ-Петербург, 2004.
4.
Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. Изд. 3-е, 2006.
5.
Уэбстера. Дж. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC: Пер. с
англ. / Под ред. У. Томпкинса. М.: Мир, 1992.
ISBN 978-5-7262-1280-7. НАУЧНАЯ СЕССИЯ НИЯУ МИФИ-2010. Том II
4
Download