Новые микросхемы компании Maxim для реализации асинхронных последовательных интерфейсов
Последовательный порт (или COM-порт) - аппаратная часть компьютера или микроконтроллера, предназначенная для обмена байтовой информацией по двунаправленному последовательному интерфейсу. Последовательным интерфейс называется в том случае, если информация передается бит за битом (в отличие от параллельных интерфейсов), дополняясь служебными вставками (стартовые и стоповые биты, а также биты паритета). Хотя некоторые другие интерфейсы, применяемые в вычислительной технике (такие как Ethernet, FireWire или USB), используют аналогичный способ обмена, название «последовательный порт» закрепилось за портом, реализующим стандарт RS-232C и предназначенным изначально для обмена информацией с модемом или для подключения мыши. Интерфейс RS-232C был предназначен для взаимодействия компьютера только с одним устройством (если передача дуплексная, то в нем отсутствуют понятия ведущего и ведомого устройств). Отметим, что RS-232C является асинхронным интерфейсом, то есть линия синхронизации последовательных данных отсутствует; поэтому параметры обмена должны быть заранее одинаковым образом настроены у обоих абонентов. Для взаимодействия компьютера (ведущее устройство - Master) с несколькими ведомыми (Slave) устройствами, что актуально для промышленных и специализированных приложений, используется интерфейс RS-485, предполагающий работу в полудуплексном режиме.
Развитие архитектуры UART
Изначально под универсальным асинхронным приемопередатчиком (UART - Universal Asynchronous Receiver Transmitter) понимали периферийное устройство на системной шине компьютера или микроконтроллера, реализующее обмен данными по интерфейсу RS-232C. Уровни сигналов на выходе UART - логические, а согласование с более высокими уровнями сигналов в канале RS-232C обеспечивают специализированные микросхемы - драйвера. Первое время UART реализовывался в виде отдельной микросхемы, позднее стал интегрироваться в более сложные микросхемы в качестве фрагмента. Для отечественных разработчиков первой моделью был Intel 8251.
Входным интерфейсом являлась интеловская 8-разрядная шина x88, что не препятствовало использовать ее и в 16-разрядных микропроцессорах x86. Параметры обмена (количество битов в посылке, количество стоповых битов, наличие бита паритета и его тип, а также скорость передачи) настраивались программно. Скорость передачи не превышала 19200 бод. Также настраивались регистры управления линией, прерываниями и модемом. Упрощенно обмен происходил следующим образом. На стороне передатчика обмен начинался с «посылки» байта в регистр передаваемых данных. На стороне приемника формировалось прерывание и производилось считывание из регистра принимаемых данных. Отметим, что если данные не успевали «забрать» до приема следующего байта, то они пропадали.
Основной недостаток UART 8251 заключался в следующем: при высоких скоростях передачи процесс приема данных становился едва ли не самым приоритетным - при обмене даже короткими пакетами процессор, реагируя на каждый байт, на остальные задачи мог реагировать с существенными задержками. Способы решения этой проблемы - снижение скорости передачи или использование модемных линий - во многих случаях приводили к появлению недостатков в других местах. Таким образом, снижение нагрузки на процессор в процессе высокоскоростной передачи стало ключевой задачей.
Эффективным решением было введение буферов FIFO в трактах приема и передачи (например, в UART 16550A компании National Semiconductor) по 16 байт в каждом. Это позволило прерывать процессор не на каждый байт, а при определенном заполнении буфера. Максимальная скорость передачи выросла до 115200 бод, что является разумным ограничением RS-232C и в настоящее е время.
Адаптация UART 8251 и 16550A для работы с интерфейсом RS-485 затруднений не вызывает - необходимо лишь перед передачей переключать драйвер в соответствующий режим, поскольку в полудуплексном обмене все абоненты по умолчанию работают на прием. Отметим, что механизмы арбитража и устранения коллизий в этих UART отсутствуют и, следовательно, становятся заботой разработчика. Отличная от RS-232C физическая среда позволяет использовать скорости передачи до 10 Мбод на расстояния до 10 м. Реализация подобных скоростей передачи достигалась двумя способами: увеличением размера буфера (вплоть до 64 байт) и реализацией механизма прямого доступа к памяти (иногда одновременно).
Постепенный переход от концепции «БИС микропроцессора (микроконтроллера) плюс БИС периферийных устройств» к концепции «система-на-кристалле» привел к размещению блоков UART внутри микросхемы микропроцессора. При этом сохранилась архитектура существующих блоков UART, но скорость передачи несколько снизилась - вместо максимально возможных стали использоваться оптимальные для большинства приложений значения. Так, например, в микроконтроллерах семейства STM32F105 используются два блока UART с максимальной скоростью передачи до 2,25 Мбод.
Микросхемы UART компании Maxim
В номенклатуре компании Maxim линейка микросхем UART включает:
- Интегрированный UART с драйверами интерфейса RS-232C- MAX3110E/3111E;
- Интегрированный UART с драйверами интерфейса RS-485- MAX31404;
- Контроллер UART- MAX3100. Основное отличие данных микросхем от микросхем рассмотренных выше: в качестве входного интерфейса используется не параллельная системная шина микропроцессора, а синхронный последовательный интерфейс SPI, то есть вторичный в архитектуре микропроцессора интерфейс. Целесообразность подобного решения будет обоснована ниже;
- UART категории Stand-Alone со встроенным кварцевым генератором- MAX3107E, который мы рассмотрим подробнее.
Основные функции и характеристики
микросхемы MAX3107
- Входные интерфейсы: I2C и SPI;
- Буферы FIFO в трактах приемника и передатчика на 128 байт каждый;
- Компактный 24-контактный корпус TQFN (3,5x3,5мм) или 24-контактный корпус SSOP;
- Возможность как использования встроенного генератора синхросигналов, так и подключения внешнего кварцевого резонатора;
- Встроенные схемы фазовой автоподстройки частоты и делителя;
- Максимальная скорость передачи 24Мбод;
- Частота сигналов синхронизации SPI до 26МГц;
- Автоматический выбор направления передачи данных;
- Эхокомпенсация в полудуплексном режиме;
- Автоматическое управление обменом данными при активном низком логическом уровне сигналов RTS/CTS и XON/XOFF;
- Детектирование специальных символов и символов, управляющих вводом/выводом общего назначения GPIO (четыре программируемых вывода);
- Индикация зашумленности канала;
- Режим отключения и дежурный режим;
- Напряжение питания 2,35...3,6В;
- Автоматическое согласование логических уровней в интерфейсах контроллера и приемопередатчика (вплоть до 1,7В);
- Ток потребления от источника питания 640мкА при скорости 1Мбод и тактовой частоте 20МГц;
- Ток потребления от источника питания в режиме отключения 20мкА.
Какие из этих характеристик являются передовыми для устройств данного типа?
- Входные интерфейсы: I2C и SPI. Обычно используется только четырехпроводный SPI.
- Буферы FIFO в трактах приемника и передатчика на 128 байт каждый. Как правило, размер буфера не превышает 64 байта в каждом каскаде.
- Максимальная скорость передачи 24 Мбод. В большинстве случаев частота передачи не превышает 5 Мбод. Отдельные модели UART поддерживают частоту передачи до 20 Мбод, но за счет снижения функциональных возможностей микросхемы.
- Частота сигналов синхронизации SPI до 26МГц. Строго говоря, спецификация интерфейса SPI предполагает частоту синхронизации от 1 до 70МГц, но UART MAX3110E/3111E, MAX3140 и MAX3100 поддерживают частоту синхронизации лишь до 4МГц. Прорыв в линейке Maxim налицо.
Целесообразность применения интерфейсов SPI и I2C в качестве входного интерфейса UART
Интеграция блоков UART внутрь современных микроконтроллеров - объективная и естественная тенденция. Тем не менее, для многих массовых приложений (например, мобильные и портативные устройства) альтернативу применению микроконтроллеров составляют заказные специализированные интегральные схемы (ASIC), которые в большинстве случаев не содержат избыточных на момент разработки блоков. Однако при дальнейшем расширении функциональных возможностей устройств (подключение к научной и производственной аппаратуре, в которой интерфейсы RS-232C и RS-485 весьма популярны) применение таких UART будет более дешевым решением, нежели разработка новой ASIC. Вероятно, создание UART MAX3110E/3111E, MAX3140 и MAX3100 (скромных по своим возможностям) преследовало именно эти цели.
Применительно к UART MAX3107 эта же причина имеет несколько другой оттенок. Включение в состав ASIC блока UART с рекордными характеристиками может быть экономически нецелесообразно или невозможным по технологическим причинам. И наконец, производитель ASIC может просто не иметь архитектурных решений, обеспечивающих подобные параметры. Может оказаться, что применение отдельной микросхемы MAX3107, при ее компактных габаритах и приемлемой цене, будет единственным разумным решением.
Как отмечалось выше, параметры блоков UART, интегрированных в микроконтроллер, редко бывают рекордными. Как правило, они оптимальны для многих приложений, но не для всех. Применение дополнительной микросхемы MAX3107 в этом случае вполне обоснованно.
Применение микросхемы MAX3107 для мобильных приложений
Для компактных портативных устройств таких, как мобильные телефоны, UART MAX3107 может использоваться в качестве буферного элемента между системным микроконтроллером и модулями Bluetooth, приемниками сигналов системы GPS или модемами 3G. Повышенная скорость передачи данных в настоящее время используется для обмена через интерфейс Bluetooth (до 3 Мбод) и 3G-модемы (до 20 Мбод). Если скорость передачи до 3 Мбод поддерживается некоторыми блоками UART, встроенными в микроконтроллер (это, опять же, вопрос цены), то 20 Мбод однозначно не поддерживается. Кроме того, внешние приемопередатчики помогают разгрузить буфер основного микроконтроллера. В дополнение, MAX3107 имеет встроенный генератор, что позволяет не использовать внешний кварцевый резонатор, сэкономив, таким образом, на цене и размере печатной платы.
MAX3107 имеет несколько режимов работы с пониженной рассеиваемой мощностью. В дежурном режиме отключаются все интегрированные блоки синхронизации, а в режиме отключения ИС выключается полностью. Эти режимы позволяют снизить до минимума ток потребления от источника питания во время отсутствия активной работы системы. В режиме AutoSleep MAX3107 автоматически переходит в дежурный режим при отсутствии активности сигналов на выводах. ИС автоматически покидает этот режим при активизации сигналов на любом из выводов. В обоих режимах ожидания UART останавливает передачу и прием, а также отключает ряд функций для снижения рассеиваемой мощности. Несколько режимов дают возможность уменьшить расход энергии и продлить время непрерывной работы аккумулятора, что делает MAX3107 подходящим для применения в мобильных устройствах.
Применение микросхемы MAX3107 для промышленных интерфейсов
UART MAX3107 позволяет соединить синхронные последовательные интерфейсы SPI или I2C микропроцессора с такими асинхронными последовательными портами передачи данных, как RS-485, RS-232, PROFIBUS, IrDA. Стандарт интерфейса PROFIBUS DP требует обеспечения работы со скоростью до 12 Мбод, что, опять же, большинством современных микроконтроллеров со встроенными UART не поддерживается. В этой связи скорость передачи MAX3107 вполне подходит для работы промышленных коммуникационных протоколов.
MAX3107 позволяет полностью задействовать пропускную способность интерфейсов SPI и I2C. Наличие буферов FIFO на 128 слов в трактах приема и передачи уменьшит интервалы времени, необходимые основному процессору на обслуживание обмена данными. За счет увеличения размеров FIFO в MAX3107 прерывания основного процессора становятся более редкими и влияют на выполнение основной задачи в меньшей степени. Часть функций управления системы переносится с основного процессора на UART, так как MAX3107 имеет встроенное автоматическое аппаратное и программное управление потоком данных, которое также осуществляет переключение буферов FIFO при изменении направления передачи.
На рисунках 1 и 2 показаны способы применения UART MAX3107 в последовательных интерфейсах RS-232C и RS-485, соответственно.
Рис. 1. Применение MAX3107 в последовательных интерфейсах RS232C
Рис. 2. Применение MAX3107 в последовательных интерфейсах RS485
Драйверы асинхронных последовательных интерфейсов
При разработке средств подключения к интерфейсам RS-232C и RS-485 имеет значение не только правильный выбор UART, но и оптимальный выбор микросхем драйвера.
Одним из существенных параметров драйверов является напряжение защиты от электростатического разряда. Типовое значение этого параметра для большинства драйверов интерфейса RS-485 - ±15 кВ (режим Human Body Model). В номенклатуре компании Maxim драйверов интерфейса RS-485 с лучшей защитой (±30 кВ) было не так много - MAX13430E/31E/32E/33E. Из них только MAX13431E и MAX13433E были ориентированы на работу с высокими скоростями передачи (до 16 Мбод).
Новинка компании MAXIM - драйверы MAX13450E/51E. С одной стороны, сохранены лучшие параметры по ESD защите - ±30 кВ, однако скорость передачи повышена и доведена до 20 Мбод. Казалось бы, ситуация вполне нормальная, и другие параметры подтянуты в лучшую сторону, но в микросхему были введены дополнительные функции.
Известно, что начало и конец физической витой пары канала RS-485 замыкаются так называемыми терминальными резисторами, то есть между линиями A и B включается резистор определенного номинала. Как правило, заранее никто не знает, будет или нет конкретное устройство крайним в каждой конкретной реализации. Поэтому на всех устройствах установлены эти резисторы, но при этом также установлены перемычки (джамперы), которые необходимо снять на всех промежуточных устройствах. И резисторы, и перемычки, естественно, занимают место на плате. В драйверах MAX13450E/51E эти резисторы установлены в микросхему, а их замыкание или размыкание управляется логическим сигналом. Кроме того, оптимальный номинал терминального резистора зависит от многих факторов: скорости передачи, длины линии, сопротивления витой пары (хотя и изменяется при этом в небольших пределах). Понятно, что в реальных условиях физический резистор никто менять не будет. Но в драйверах MAX13450E/51E заложено два варианта номиналов - 100 и 120 Ом, причем конкретный номинал выбирается логическим сигналом. Кроме того, в реальных условиях может оказаться, что подключения линий A и B перепутаны - в этом случае микросхема MAX13451E определяет такую ситуацию и имеет специальный вход инвертирования уровня. Хочется отметить, что новые изделия компании Maxim, помимо естественного улучшения основных характеристик, уделяют внимание и этим, зачастую полезным, мелочам.
Получение технической информации, заказ образцов, поставка - e-mail: analog.vesti@compel.ru
Ваш комментарий к статье | ||||