Реконфигурируемые выводы периферии в однокристальных микроконтроллерах

№ 5’2010
PDF версия
Цена однокристальных микроконтроллеров (МК) постоянно уменьшается, и одновременно возрастает объем их функциональных возможностей. Типовой МК сегодня содержит несколько таймерных каналов, у которых есть в наличии разнофункциональные входы и выходы: захват событий, генерация событий, ШИМ-сигналы, запрос прерываний по переполнению и прочее, набор разнотипных последовательных интерфейсов, каналы аналого-цифрового и цифро-аналогового преобразования, а кроме того, значительное количество линий цифрового ввода/вывода.

Общее количество внутрикристальных линий, которые требуется вывести на внешние выводы, для сложных МК может составлять многие сотни. Корпуса для мощных МК имеют число выводов, превышающее сто. (Хотя можно вспомнить, что корпуса универсальных процессоров могут содержать до 1000 выводов.)

Поэтому в МК широко используется мультиплексирование выводов, когда один и тот же вывод может быть программно связан с одним из нескольких внутренних сигналов. При этом нередки ситуации, когда несколько внутренних сигналов, требуемых в конкретном приложении, используют один и тот же вывод, и это существенно затрудняет совместное использование этих сигналов либо даже делает его невозможным.

Вот какими могут быть проблемы, связанные с большим количеством внутренних сигналов и с использованием мультиплексирования при проектировании устройств на сложных микроконтроллерах:

  1. Большое количество внутренних сигналов, внешних выводов не хватает, приходится мультиплексировать четыре и более функций на один вывод.
  2. Большое количество внешних выводов (для сложных МК — более 100), сложность разводки платы, нередко приходится использовать плату с большим количеством слоев разводки.
  3. В любом конкретном приложении далеко не все подсистемы нужны. При этом нередко оказывается так, что сигналы нужных подсистем подаются на одни и те же выводы. Это может приводить как к усложнению проектирования системы при использовании временного мультиплексирования выводов, так и к вынужденному выбору более мощного (и более дорогого) МК, корпус которого содержит большее количество выводов, но одновременно и большее количество встроенных подсистем, значительная часть которых не будет использоваться.
  4. При проектировании платы необходимо учитывать:
  • расположение разъемов на плате, которое может определяться конструктивными особенностями окружения платы;
  • взаимное влияние сигналов, в частности, влияние цифровых цепей на близко расположенные аналоговые цепи.

Это усложняет задачу проектирования (разводки связей) печатной платы.

  • В течение жизненного цикла управляющей системы нередко возникает необходимость модернизации путем замены микроконтроллера на более мощный (как по быстродействию, так и по объему предоставляемых ресурсов: объемов памяти, перечня и количества периферийных подсистем). Такая замена чаще всего требует изменения разводки печатной платы, что при различиях в геометрии корпуса микросхемы и в количестве контактов сопряжено с существенными трудозатратами.
  • Однако в последних поколениях МК все шире используется программное реконфи-гурирование связей внутренних сигналов с внешними выводами (Software Input/Output Mapping). Разработчик имеет возможность в весьма широких пределах выбирать, на какой вывод направить тот или иной сигнал, учитывая расположение на плате внешних элементов (например, разъемов), связанных с этим сигналом, взаимное влияние цифровых и аналоговых цепей и т. п.

    Первым примером использования подобной техники, который встретился авторам статьи, было семейство МК ADuC70 xx фирмы Analog Devices [2]. В подсистеме UART этих МК разработчик мог направить каждый из двух сигналов Tx (выход передатчика) и Rx (вход приемника) на один из двух внешних выводов. Это давало возможность освободить одни либо другие выводы для связи с прочими внутренними подсистемами.

    Кроме того, это давало возможность реализовать в системе два логически различных приемопередатчика UART путем программного переключения выводов в период исполнения программы. Каждая из двух пар выводов могла быть связана со своим внешним абонентом через отдельные линии связи. Конечно, эти два «логических» интерфейса нельзя было использовать одновременно, но это избавляло либо от необходимости организовывать на одном порте UART структуру с более чем двумя абонентами, либо от необходимости дополнительных элементов цифровой коммутации сигналов.

    Не так давно (в 2009 г.) появились МК с возможностью гораздо более мощного конфигурирования цепей ввода/вывода. Это семейство МК H8S/Tiny фирмы Renesas [1]. Фирма образовалась несколько лет назад в результате слияния полупроводниковых отделений Hitachi Ltd и Mitsubishi Electric Co. Ее название расшифровывается как Renaissance Semiconductor for Advanced Solutions.

    Далее детально рассматриваются возможности реконфигурирования ввода/вывода для упомянутого семейства МК.

    Микроконтроллеры этого семейства (шесть моделей) весьма насыщены периферийными подсистемами. Разные представители семейства содержат от 55 до 69 линий параллельного дискретного ввода/вывода, которые объединены в 10 портов. Большая часть линий параллельных портов мультиплексирована с выводами периферийных подсистем.

    Перечень периферийных подсистем включает:

    • семь таймерных каналов, имеющих режимы автоперезагрузки, счета импульсов, измерения длительности или периода следования импульсов, регистрации и генерации событий (Input Capture, Output Compare);
    • контроллер блочных пересылок в памяти (Data Transfer Controller);
    • три канала последовательного интерфейса SCI, поддерживающие синхронный или асинхронный режимы обмена;
    • cинхронный последовательный интерфейс, поддерживающий режимы I2C и SPI;
    • аппаратно реализованный интерфейс LIN;
    • один либо два АЦП (10 бит, 2 мкс/канал, общее количество каналов от 8 до 16);
    • два канала ЦАП (8 бит, 3 мкс);
    • контроллер прерываний (83 активных вектора, из них 9 — внешние сигналы, 73 — внутренние события, 1 — сигнал начального сброса);
    • контроллер реконфигурирования линий ввода/вывода (Peripheral I/O Mapping Controller).

    Микроконтроллеры рассматриваемого семейства следует отнести к разряду сложных систем, об этом говорит тот факт, что количество периферийных регистров у представителей семейства составляет 350, а объем технического описания (Data Sheet) превышает тысячу страниц.

    Далее приведены общие характеристики выводов представителей семейства:

    • для моделей H8S/20103 и H8S/20115 корпус имеет 64 вывода, из которых 55 выводов общего назначения;
    • для моделей H8S/20203, H8S/20215, H8S/20223 и H8S/20235 корпус содержит 80 выводов, из которых 69 — общего назначения.

    Все линии ввода/вывода можно разделить на три группы: а) цифровые выводы, которые могут быть выводами периферии или входами запроса прерывания; б) цифровые выводы, относящиеся к подсистеме тактирования; в) цифровые выводы, которые также могут быть аналоговыми входами.

    Реконфигурирование возможно только для групп а и б. Аналоговые входы и выходы подсистемы АЦ-преобразования используют группу контактов, компактно расположенных на одной стороне корпуса. Это представляется разумным, поскольку позволяет уменьшить влияние на аналоговые сигналы со стороны близко расположенных цифровых цепей.

    В следующем перечне перечислены подсистемы, выводы которых можно реконфи-гурировать:

    • АЦП — внешний запуск — 3 входа запуска;
    • регистраторы/генераторы событий, ШИМ — 22 входа/выхода;
    • входы запроса прерываний (внешние) — 8 входов запроса;
    • входы приемников, выходы передатчиков SCI — 6 выводов;
    • входы/выходы тактовых сигналов — 5 входов или выходов;
    • выводы интерфейсов I2C/SPI — 4 входа/выхода;
    • входы/выходы таймерных каналов — 8 входов/выходов.

    Перечисленные внутренние сигналы можно программно направить на выводы параллельных портов. Рассмотрим общие характеристики параллельного дискретного ввода/вывода для МК H8S/20223 и H8S/20235, наиболее мощных в семействе. Все линии собраны в 10 портов:

    • P1, P2, P3, P5, P6, P9 содержат каждый по 8 выводов, P8 имеет 3 вывода. Каждый из перечисленных выводов может быть программно связан с некоторыми из 56 внутренних сигналов периферийных подсистем. То есть перечисленные выводы являются программно реконфи-гурируемыми.
    • Порты PA и PB имеют по 8 выводов, которые могут использоваться для дискретного ввода/вывода либо служить аналоговыми входами для подсистемы АЦП. Порт J имеет два вывода. Выводы портов PA, PB и PJ не могут реконфигурироваться.

    На рисунке можно видеть расположение всех выводов 80-контактного корпуса МК. Линии портов, которые могут реконфигу-рироваться, отмечены цветами, которые указаны в нижней правой части рисунка. Как видно, аналоговые входы (ANxx), линии тактирования (X1, X2) и выводы питания аналоговой части МК (AVss, AVcc) сосредоточены вблизи одного из углов корпуса, что уменьшает наводки в аналоговую часть МК от переключающихся цифровых сигналов.

    Корпус 80-выводного МК H8S/20223, H8S/20235

    Рисунок. Корпус 80-выводного МК H8S/20223, H8S/20235

    Таблицы 1 и 2, заимствованные из технического описания [1], показывают, каковы возможности конфигурирования выводов.

    Перечисленные в таблице 1 сигналы могут быть направлены на выводы портов P1, P2, P3, P5 и P6. Перечисленные в таблице 2 сигналы могут быть направлены на выводы портов P8 и P9. Общее количество сигналов, для которых возможен выбор из нескольких выводов, составляет 51, причем для некоторых сигналов возможен выбор одного из семи выводов. Каждый сигнал может быть направлен не более чем на один вывод. Как правило, один сигнал связан с определенным номером вывода в разных портах, хотя есть и исключения. В нижней строке таблиц 1 и 2 указан номер порта, с которым связаны сигналы соответствующего столбца после начального сброса (включения питания).

    Таблицы 1 и 2 недостаточно удобны для использования при проектировании. Авторы данной статьи составили таблицу 3, которая более удобна, хотя и имеет больший объем.

    Таблица 1. Возможности конфигурирования выводов (порты P1, P2, P3, P5 и P6)

    Контакт Функция 1 Функция 2 Функция 3 Функция 4 Функция 5 Функция 6
    7 IRQ7 вх. TXD_2 вых. TXD_3 вых. SCL/SSI вх/вых. FTIOD1 вх/вых. ADTRG2 вх.
    6 IRQ6 вх. RXD_2 вх. RXD_3 вх. SDA/SCS вх/вых. FTIOC1 вх/вых. ADTRG1 вх.
    5 IRQ5 вх. SCK3_2 вх/вых. SCK3_3 вх/вых. SSCK вх/вых. FTIOB1 вх/вых. TRDOI_1 вх.
    4 IRQ4 вх. TRDOI_0 вх. FTCI вх. SSO вх/вых. FTIOA1 вх/вых. TRAIO вх/вых.
    3 IRQ3 вх. TRCOI вх. FTIOD вх/вых. TGIOB вх/вых. FTIOD0 вх/вых. TRAO вых.
    2 IRQ2 вх. TXD вых. FTIOC вх/вых. TGIOA вх/вых. FTIOC0 вх/вых. TRBO вых.
    1 IRQ1 вх. RXD вх. FTIOB вх/вых. FTIOB вх/вых. FTIOB0 вх/вых. TRGB вх.
    0 IRQ0 вх. SCK3 вх/вых. FTIOA вх/вых. TCLKA вх. FTIOA0 вх/вых. TREO вых
    Reset Port 1 Port 2 Port 3 Port 5 Port 6 Нет

    Таблица 2. Возможности конфигурирования выводов (порты P8 и P9)

    Контакт Функция 1 Функция 2 Функция 3 Функция 4 Функция 5 Функция 6
    7 IRQ7 вх. TXD вых. TREO вых.. FTIOD3 вх/вых. TXD_3 вых.
    6 IRQ6 вх. RXD вх. TRBO вых. FTIOC3 вх/вых. RXD_3 вх.
    5 IRQ5 вх. SCK3 вх/вых. TRAIO вх/вых. FTIOB3 вх/вых. SCK3_3 вх.
    4 IRQ4 вх. TRGB вход FTIOA3 вх/вых.
    3 IRQ3 вх. TRAO вх/вых. FTIOD2 вх/вых.
    2 IRQ2 вх. FTIOC2 вх/вых.
    1 IRQ1 вх. FTIOB2 вх/вых.
    0 IRQ0 вх. FTIOA2 вх/вых.
    Reset Нет Нет Нет Port 8 Port 9 Нет

    В таблице 3 перечислены все реконфигу-рируемые сигналы (51 шт.) и выводы портов, на которые эти сигналы могут быть направлены. Три сигнала позволяют выбор одного из двух выводов, 31 сигнал — одного из пяти выводов, 6 сигналов — одного из шести выводов, 11 сигналов — одного из семи выводов. Столбцы таблицы 3 содержат:

    • порядковый номер;
    • обозначение сигнала;
    • направление сигнала;
    • назначение сигнала;
    • указание (портов) вывода, с которыми может быть связан сигнал;
    • количество вариантов связи.

    Таблица 3. Все реконфигурируемые сигналы и выводы портов

    № п.п. Сигнал Направление Назначение сигнала (Порты)/контакты Количество вариантов
    01 ADTRG1 вход Внешний запуск АЦП-1 P (1, 2, 3, 5, 6)/6 5
    02 ADTRG2 вход Внешний запуск АЦП-2 P (1, 2, 3, 5, 6)/7 5
    03 FTCI вход Вход внешнего события P (1, 2, 3, 5, 6)/4 5
    04 FTIOA вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/0 5
    05 FTIOA0 вход/выход Вход регистрации события, выход генератора событий, вход внешнего тактового генератора P (1, 2, 3, 5, 6)/0 5
    06 FTIOA1 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/4 5
    07 FTIOB вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/1 5
    08 FTIOB0 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/1 5
    09 FTIOB1 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/5 5
    10 FTIOB3 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (8, 9)/5 2
    11 FTIOC вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/2 5
    12 FTIOC0 вход/выход Вход регистрации события, выход генератора событий, выход синхронного ШИМ P (1, 2, 3, 5, 6)/2 5
    13 FTIOC1 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/6 5
    14 FTIOC3 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (8, 9)/6 2
    15 FTIOD вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/3 5
    16 FTIOD0 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/3 5
    17 FTIOD1 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/7 5
    18 FTIOD3 вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (8, 9)/7 2
    19 IRQ0 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 9)/0 6
    20 IRQ1 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 9)/1 6
    21 IRQ2 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 9)/2 6
    22 IRQ3 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 9)/3 6
    23 IRQ4 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 9)/4 6
    24 IRQ5 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 8, 9)/5 6
    25 IRQ6 вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 8, 9)/6 7
    26 IRQ7 Вход Запрос внешнего прерывания (фронт, спад или оба) P (1, 2, 3, 5, 6, 8, 9)/7 7
    27 RXD вход Вход SCI P (1, 2, 3, 5, 6):1, P(8, 9)/6 7
    28 RXD_2 вход Вход SCI P (1, 2, 3, 5, 6)/6 5
    29 RXD_3 вход Вход SCI P (1, 2, 3, 5, 6, 8, 9)/6 7
    30 SCK3 вход/выход Входы/выходы тактовых сигналов P (1, 2, 3, 5, 6):0, P(8, 9)/5 7
    31 SCK3_2 вход/выход Входы/выходы тактовых сигналов P (1, 2, 3, 5, 6)/5 5
    32 SCK3_3 вход/выход Входы/выходы тактовых сигналов P (1, 2, 3, 5, 6, 8, 9)/5 7
    33 SCL/SSI вход/выход I2C SCL/SPI SSI (MISO) P (1, 2, 3, 5, 6)/7 5
    34 SDA/SCS вход/выход I2C SDA/SPI SCS (Slave Sel) P (1, 2, 3, 5, 6)/6 5
    35 SSCK вход/выход Тактирование SPI P (1, 2, 3, 5, 6)/5 5
    36 SSO вход/выход SPI (MOSI) P (1, 2, 3, 5, 6)/4 5
    37 TCLKA вход Внешнее тактирование P (1, 2, 3, 5, 6)/0 5
    38 TCLKB вход Внешнее тактирование P (1, 2, 3, 5, 6)/1 5
    39 TGIOA вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/2 5
    40 TGIOB вход/выход Вход регистрации события, выход генератора событий, выход ШИМ P (1, 2, 3, 5, 6)/3 5
    41 TRAIO вход/выход Вход счетчика импульсов, выход импульсного ТмRA-канала P (1, 2, 3, 5, 6)/4 5
    42 TRAO выход Инвертирующий выход импульсов ТмRA-канала P (1, 2, 3, 5, 6, 9)/3 5
    43 TRBO выход Выходной сигнал таймера RB P (1, 2, 3, 5, 6):2, P(8, 9)/6 7
    44 TRCOI вход Входной сигнал разрешения выхода таймера RC P (1, 2, 3, 5, 6)/3 5
    45 TRDOI_0 вход Управление выходом таймера RD P (1, 2, 3, 5, 6)/4 5
    46 TRDOI_1 вход Разрешение выхода таймера RD P (1, 2, 3, 5, 6)/5 5
    47 TREO выход Выходной сигнал таймера RE P (1, 2, 3, 5, 6):0, P(8, 9)/7 7
    48 TRGB вход Вход управления таймером RG P (1, 2, 3, 5, 6)/1, P(9)/4 6
    49 TXD выход Выход передатчика SCI P (1, 2, 3, 5, 6):2, P(8, 9)/7 7
    50 TXD_2 выход Выход передатчика SCI P (1, 2, 3, 5, 6)/7 5
    51 TXD_3 выход Выход передатчика SCI P (1, 2, 3, 5, 6, 8, 9)/7 7

    Реконфигурирование линий ввода/вывода предоставляет разработчику следующие возможности и преимущества:

    1. Выбрать и вывести на внешние выводы именно тот набор внутренних сигналов, который требуется в конкретном применении.
    2. Резко упростить процесс разводки печатной платы благодаря возможности выбора такого расположения внешних выводов, которое обеспечивает минимальное количество пересечений печатных дорожек, это позволит существенно уменьшить количество слоев печати и удешевить плату.
    3. Уменьшить взаимные влияния переключающихся сигналов и, в частности, уровень наводок на аналоговые цепи путем удаления активно переключающихся цифровых линий от аналоговых.
    4. Использовать малое количество либо даже единственный последовательный интерфейс (например, внутрикристальный UART) для связи со многими внешними абонентами в режиме временного мультиплексирования. Каждый из внешних абонентов может быть подсоединен к своей паре внешних выводов TXD-RXD, а программа затем может производить переключение внутренних сигналов TXD-RXD на нужную пару внешних выводов, что позволит избежать использования таких усложнений, как топология UART с несколькими абонентами, либо внешних коммутирующих элементов.

    Для оценки того, насколько широки могут быть возможности выбора положения выводов для конкретного случая, можете вновь обратиться к рисунку. На нем красными точками отмечены выводы корпуса МК, на которые может быть выведен внутренний сигнал TXD (выход передатчика UART), и синими точками — выводы, которые могут быть связаны с внутренним сигналом RXD (вход приемника UART). Выбор подходящих выводов может существенно уменьшить длину печатных проводников на плате.

    В заключение авторы хотели бы заметить, что пока неизвестны аналогичные изделия других полупроводниковых фирм, обладающие подобными возможностями.

    Литература

    1. Техническое описание семейства HSS/Tiny — REl09b0465_0200 — n8S/20103, n8S/20203, n8S/20223, n8S/20115, n8S/20215, n8S/20235 Group Hardware Manual, Rev. 2.00. lun. 01, 2009. Renesas Technology — www.renesas.com
    2. Техническое описание семейства МК ADuC7xxx фирмы Analog Devices, Precision Analog Microcontroller ADuC7019/20/21/22/24/25/26/27/28, Rev.B. 2005-2007. Analog Devices Inc. — www.analog.com

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *