На рынке электронных компонентов предлагается множество различных микроконтроллеров с интерфейсом USB, каждый из которых имеет свои уникальные особенности, ориентированные на ту или иную задачу. В данной статье представлены микросхемы с интерфейсом USB компании Silicon Labs, предназначенные для применения в системах сбора данных, либо позиционируемые как микроконтроллеры общего назначения. Производитель выпускает полный набор программно-аппаратных средств поддержки разра-боток, помогая разработчику в минимальные сроки решить задачу создания прибора на этих компонентах, не вдаваясь в детальные подробности спецификации интерфейса USB.
Компания Silicon Labs специализируется на производстве микроконтроллеров (МК) различного назначения. Выпускаются МК с прецизионными аналоговыми блоками для систем сбора данных, в миниатюрных корпусах для различных портативных приборов и микросхемы с самой большой в мире производительностью среди 8-разрядных МК. Общее число МК фирмы Silicon Labs насчитывает порядка ста микросхем, среди которых присутствуют МК с интерфейсом USB (см. табл. 1). Последние можно разделить на четыре группы:
Микроконтроллеры фирмы Silicon Labs строятся по единой топологии, и на примере функциональной схемы кристалла C8051F340 можно выделить следующие области (см. рис. 1), заслуживающие особого внимания:
Отметим, что в МК встроен тактовый генератор, обеспечивающий частоту 48 МГц ±1,5% во всем рабочем диапазоне температур, что обеспечивает стабильную работу интерфейса USB без использования внешнего кварца, исключая тем самым лишний ненадежный компонент и, снижая общую стоимость прибора. Генератор снабжен делителем тактовой частоты, что позволяет устанавливать различные значения частот в диапазоне 1,5...48МГц, обеспечивая тем самым гибкое управление энергопотреблением.
Энергопотребление самых энергоемких блоков - ядра и интерфейса USB - на максимальной частоте (48 МГц) составляет менее 35 мА. Если же интерфейс USB не задействован, то суммарное энергопотребление кристалла на частоте 48 МГц составит порядка 25 мА.
В микроконтроллере предусмотрены два режима энергосбережения: IDLE и STOP. Энергопотребление также может быть снижено за счет переключения источника тактового сигнала на внутренний низкочастотный генератор, обеспечивающий тактовый сигнал частотой 10...80 кГц. При тактовой частоте 80 кГц, энергопотребление ядра составит 55 мкА.
Прочие микросхемы Silicon Labs с интерфейсом USB имеют похожую структуру, но могут быть снабжены меньшим набором периферии или объемом памяти или иметь меньшую производительность.
Silicon Labs обеспечивает комплексную поддержку аппаратными средствами поддержки разработок и инструментальным программным обеспечением для реализации конечного приложения, как на нижнем, так и на верхнем уровне (см. рис.2).
Для каждой серии микросхем Silicon Labs предлагаются стартовые наборы, название которых состоит из наименования самого "мощного" микроконтроллера в линейке и суффикса DK. Для микросхем с интерфейсом USB предлагаются стартовые наборы C8051F320-DK, C8051F326-DK и C8051F340-DK.
В состав каждого набора входит целевая (target) плата с установленным МК, внутрисхемный эмулятор USB Debug Adapter, источник питания, набор кабелей и компакт-диск с документацией и программным обеспечением.
Возвращаясь к рисунку 2, выделим специфическое для МК с интерфейсом USB программное обеспечение, находящееся на компакт-диске стартовых наборов C8051F320-DK, C8051F326-DK и C8051F340-DK.
На верхнем уровне обозначены драйверы для мостов СР210х, описанных ранее в статье [1]. Эти микросхемы являются двунаправленными преобразователями интерфейса USB в интерфейс UART. Для этих микросхем выпускаются драйверы виртуального СОМ-порта, позволяющие избавиться от разработки ПО для передачи данных непосредственно по шине USB. Обмен данными здесь производится по интерфейсу UART со стороны микроконтроллера и через виртуальный СОМ-порт со стороны ПК.
На втором уровне обозначена библиотека USBXpress, включающая в свой состав библиотеку нижнего уровня, драйверы USB для ПК и DLL-библиотеку для разработки приложений на верхнем уровне.
Для реализации передачи данных на нижнем уровне USBXpress содержит библиотеку с такими простыми для понимания функциями как USB_Init(), Block_Write() или Block_Read(), которые существенно упрощают задачу освоения интерфейса USB на микроконтроллерах Silicon Labs. В библиотеке реализована передача данных только в режиме BULK. При использовании всех функций библиотеки, их реализация займет всего 3 Кбайта Flash-памяти микроконтроллера.
На верхнем уровне задача написания драйверов сводится к простому конфигурированию готового драйвера с помощью распространяемого производителем программного обеспечения [2]. Конфигурирование драйвера включает назначение идентификаторов VID и PID, для которых будет устанавливаться этот драйвер, а также текстовой строки, которая будет обозначать устройство в диспетчере задач операционной системы.
Для написания программного обеспечения на верхнем уровне, которое будет осуществлять обмен данными по интерфейсу USB посредством вышеупомянутого драйвера, в набор USBXpress включена DLL-библиотека, которая реализует простой пользовательский интерфейс к этому драйверу. Функции этой библиотеки также просты и понятны любому разработчику: Si_Open(), Si_Write(), Si_Read() и так далее.
Для демонстрации функций библиотек USBXpress предлагаются примеры программ для верхнего и нижнего уровня, демонстрирующие обмен файлами между ПК и Flash-памятью микроконтроллера, а также реализацию пользовательской панели на ПК, управляющую ресурсами микроконтроллера.
Более подробную информацию по набору библиотек USBXpress можно найти в руководстве по применению [3]. На рисунке 2 приведены примеры программ, реализующих некоторые типовые задачи, возникающие при использовании интерфейса USB:
Благодаря своей прецизионной аналоговой подсистеме, микроконтроллеры Silicon Labs в первую очередь позиционируются для систем сбора данных. У пользователя может возникнуть вопрос: "Куда сохранять данные и как их впоследствии передать на ПК?". Silicon Labs предлагает набор USB-MSD-RD (см. рис. 3), в котором реализована данная задача, исходя из следующих принципов:
![]() Рис. 3. Набор USB-MSD-RD и целевая плата набора C8051F340-DK |
![]() Рис.4. Организация сохранения и считывания данных в наборе USB-MSD-RD |
Именно такое решение на сегодняшний день является наиболее привычным и удобным для пользователей подобных приборов.
Набор USB-MSD-RD включает в состав плату, подключаемую к разъему расширения целевой платы стартового набора C8051F340-DK, приобретаемого отдельно, карту памяти SD объемом 256 Мбайт и набор программного обеспечения, схема работы которого изображена на рисунке 4.
В соответствии со схемой работы, изображенной на рисунке, микроконтроллер C8051F340 выполняет все функции конечного приложения либо приема данных из прочей периферии в приборе, формирует данные в формате файловой системы FAT16 и записывает их на карту памяти. Поддерживаются карты памяти SD, ММС и CF. При подключении устройства к компьютеру по интерфейсу U SB, микроконтроллер декодирует запросы, поступающие к файловой системе, и обеспечивает прозрачный доступ к данным со стороны ПК.
Ввиду того, что данные на карте памяти хранятся в файловой системе FAT16, возникает ограничение на объем используемой карты памяти - ее объем должен быть не меньше 16 Мбайт и не более 4 Гбайт.
Красным пунктиром на рисунке 4 обведена та часть, которая уже реализована. Разработчику требуется только реализовать свою задачу сбора данных и передать эти данные функциям доступа к файловой системе. При подключении такого устройства к ПК система обнаружит новый USB-накопитель и создаст для него логический диск, на котором будут размещены файлы с сохраненными прибором данными.
Приобретать набор USB-MSD-RD необязательно - схема включения и исходные файлы проекта размещены в свободном доступе на сайте производителя в руководстве по применению AN282 и описании к набору USB-MSD-RD.
Необходимые для реализации доступа к файловой системе функции, в бинарном формате требуют 18 Кбайт Flash-памяти (см. рис. 5), что позволяет реализовать достаточно сложное приложение с использованием остальных 46 Кбайт Flash-памяти микроконтроллера C8051F340.
Интерес со стороны разработчиков к МК с интерфейсом USB компании Silicon Labs растет с каждым годом. Это происходит благодаря тщательной продуманности не только самих МК, но и программно-аппаратного комплекса для них. Далеко не каждый производитель микросхем с интерфейсом USB может предложить подобный набор аппаратных средств и ПО, позволяющий разработать программное обеспечение верхнего и нижнего уровня, не вдаваясь в детальные подробности спецификации интерфейса USB.
В качестве примера универсальности микроконтроллеров Silicon Labs с интерфейсом USB, приведем оценочный набор USBFMRADIO-RD (см. рис. 6), выпускаемый Silicon Labs для оценки возможностей однокристальных FM-приемников (на рисунке справа). Набор построен с использованием микроконтроллера C8051F321 (на рисунке слева), который выполняет в устройстве функцию управления FM-приемником, "оцифровку" звукового сигнала с выхода приемника и передачу его по интерфейсу USB для дальнейшего воспроизведения радиотрансляции на компьютере.