Распределение энергии
Шина USB создавалась в соответствии с концепцией ACPI (Advanced Configuration and Power Interface) – расширенный интерфейс конфигурирования и питания. ACPI представляет собой довольно сложную комбинацию средств. ACPI – позволяет операционной системе управлять конфигурированием и энергопотреблением устройств и компьютера в целом и описывает и программный и аппаратный интерфейсы. Поэтому режимы энергопотребления USB устройства имеют несколько усложн.нный вид.
Спецификация USB позволяет устройству получать энергию прямо от шины, и это имеет свои очевидные преимущества. Но имеются и некоторые сложности, которые нужно учитывать. По стандарту, любое USB устройство с питанием от шины, может потреблять не более 500 мА. Это ограничение касается не усредненного значения за период, а пикового значения. Потребляемый ток должен быть заявлен в процессе энумерации USB устройства. Но для энумерации на микроконтроллер уже должна поступать энергия, получается замкнутый круг. Поэтому по умолчанию на микроконтроллер, при подключении должно подаваться не менее 100 мА, а что сверху, то после энумерации.
Так как современные операционные системы поддерживают ACPI, то режимы питания шины USB зависят от программного и аппаратного обеспечения хоста. По моему мнению, питание от шины подходит для гаджетов, а не для ответственных приборов. Серьезные приборы лучше питать от собственных источников, с индикацией состояния на собственную панель.
Физически – шина USB состоит из 4-х проводников:
- VBUS – линия питания;
- GND – нулевой провод;
- D- и D+ - линии данных.
В составе USB устройства условно можно выделить подсистему, выполняющую коммуникационные функции протокола USB и подсистему, выполняющую основные функции, например оцифровки аналогового сигнала. Уже говорилось, что имеется 3 типа USB устройств по типу подачи энергии:
- ток от шины (Low powered),
- повышенный ток от шины (High powered),
- с собственным источником тока (Self powered).
Рассмотрим USB устройство, имеющее собственный источник питания. Схема приведена на рисунке 13. «БО» – это блок обработки, выполняющий основную функцию. Квадрат c «USB» – это подсистема, отвечающая за обмен по USB. Квадраты «Рег» - это стабилизаторы. «ИП» - локальный источник питания USB устройства.
Рисунок 13 |
При такой схеме питания, возможны 2 варианта организации подачи тока. Можно подавать ток в подсистему USB от шины VBUS, через регулятор Рег1, а БО питать от внутреннего источника питания.
Второй вариант, питание всех подсистем от внутреннего источника. Подача энергии на подсистему USB отмечена штриховой линией, а регулятор Рег1 может отсутствовать. В первом случае, инициализация процесса энумерации происходит при подаче питания на подсистему USB, через регулятор Рег1. Во втором случае, когда Рег1 отсутствует, для обнаружения подключения и отключения к хосту, необходимы дополнительные цепи.
Требуется постоянное сканирование присутствия шины VBUS. Напряжение с VBUS, через делитель подается на один из портов ввода-вывода микроконтроллера и производится чтение состояния порта. Когда на контакте обнаруживается 1, начинается процесс энумерации.
На рисунке 14 изображена конфигурация USB устройства с высоким потреблением энергии и питанием от шины. Питание на такую функцию подается в 2 ступени. Первоначально пода.тся не более 100 мА на USB, а затем после энумерации подается требуемый ток, но не больше 500 мА. Ток подается с хоста, от хаба. А команду хабу, на выдачу требуемой энергии, подает операционная система.
Рисунок 14 |
Подача тока на USB устройство с малым потреблением энергии, самая простая, в одну ступень. Все цепи питаются от VBUS.
Проще понять архитектуру питания AT90USB162, соотнеся ее со стандартами USB. На рисунке 15, приведена схема питания:
- VCC- цепь питания цифровой подсистемы,
- UVCC – вход внутреннего регулятора напряжения USB,
- UCAP – выход внутреннего регулятора USB, должен подключаться конденсатор 1МкФ,
- AVCC – цепь питания аналоговой подсистемы,
- UVSS, VSS – земля.
Видно, что AT90USB162 позволяет реализовать, все режимы питания, описанные в стандарте. Для подсистемы USB требуется 3,3 В. Если проектировщик решит не использовать ток от VBUS, а использовать собственный источник 5В, тогда напряжение пода.тся на UVCC и задействуется встроенный регулятор на 3,3В. А на цепи VCC и AVCC подается 5В. Дополнительно требуется сканирование линии VBUS.
Если на микроконтроллер подается напряжение 3,3В от внешнего источника, тогда внутренний регулятор программно отключается, управляет включением регистр REGCR(0x63), BIT0 – REGDIS. Для отключения регулятора, этот бит нужно установить. После сброса бит обнуляется, регулятор включен. Внутренний стабилизатор можно отключать, для избежания потерь энергии в режимах с низким потреблением.
Рисунок 15 |
В случае питания от VBUS, все цепи, UVCC, VCC, AVCC подключаются к этой линии.
Следует заметить, что только хаб имеет право подавать напряжение на VBUS. Подача напряжения от USB устройства запрещена.
Именно хаб управляет сегментом шины с подключенным USB устройством. По спецификации USB, хаб может сигнализировать USB устройству о необходимости перехода в состояние с пониженным потреблением энергии. Это выражается в отсутствии пакетов SOF в течение 3 мс, затем в течение 10 мс ещ. поддерживается нормальный ток на шине VBUS. За эти 10мс USB устройство должно перейти в режим с низким энергопотреблением или переключиться на другой источник. Для устройств получающих энергию от шины с повышенным потреблением энергии, максимальный ток ограничивается в 2,5 мА, а для устройств с низким потреблением и того меньше, всего 0,5 мА. Практически хаб может давать до 2-3 мА, не отключаясь совсем. Устройства, имеющие собственный источник энергии, сами решают, как им действовать в случае потери активности шины.
Если устройство способно подавать сигнал удал.нного пробуждения (Remote Wakeup), то USB устройство может разбудить хост и проснувшийся хост перевед.т порт хаба в активное состояние, тогда USB устройство может нормально общаться с хостом. Сигнал удаленного пробуждения, один из немногих, которые может посылать USB устройство хосту по своей инициативе. Конечно, хост может перевести сегмент шины в активное состояние и по своей инициативе. Каким образом, USB устройство подает сигнал пробуждения хабу, рассмотрим в следующих главах.
.
|