ООО ЭФО
Поиск по складу
Программа поставок 2016
Сегодня
www.powel.ru
источники питания
www.korpusa.ru
конструктивы и корпуса РЭА
www.wless.ru
беспроводные технологии
www.mymcu.ru
микроконтроллеры
altera-plis.ru
микросхемы Altera
www.infiber.ru
волоконно-оптические
компоненты в
промышленности
www.efo-power.ru
силовая электроника
www.efo-electro.ru
электротехническая
продукция
www.efometry.ru
контрольно-измерительные приборы
www.golledge.ru
кварцевые резонаторы и генераторы Golledge
www.sound-power.ru
профессиональные усилители класса D
Поиск по сайту
Подписка на новости

Система менеджмента
качества сертифицирована на соответствие требованиям:
ISO 9001, ГОСТ Р ИСО 9001 и СРПП ВТ - подтверждено сертификатами соответствия в системах сертификации Русского Регистра, ГОСТ Р, международной сети IQNet, "Оборонсертифика" и "Военный Регистр".

ООО "ЭФО" в 2011г. получило Лицензию Федеральной службы по экологическому, технологическому и атомному надзору на изготовление оборудования для ядерных установок.


Rambler s Top100



ChipFind - поисковая система по электронным компонентам
EEN
webmaster
Санкт-Петербург: (812) 327-86-54  zav@efo.ru Москва: (495) 933-07-43  moscow@efo.ru Екатеринбург: (343) 278-71-36  ural@efo.ru Пермь: (342) 220-19-44  perm@efo.ru
Казань: (843) 518-79-20  kazan@efo.ru Ростов-на-Дону: (863) 220-36-79  rostov@efo.ru Н. Новгород: (831) 434-17-84  nnov@efo.ru Новосибирск: (383) 286-84-96  nsib@efo.ru
о нас склад библиотека статьи
 
   
Шестнадцатиразрядные комбинированные микроконтроллеры фирмы Infineon (семейство XC166)

В.В.Гребнев

Комбинированные микроконтроллеры фирмы Infineon семейства XC166 могут совместно выполнять функции встроенного управляющего микроконтроллера и цифрового сигнального процессора (Digital Signal Processor, DSP). Они созданы на базе шестнадцатиразрядных микроконтроллеров семейства С166 фирмы Infineon путем изменения структуры и функций процессора и структуры памяти с использованием для хранения программы запоминающего устройства типа Flash memory.

В состав семейства XC166 входят микроконтроллеры пяти типов (по состоянию на конец 2004 г.).

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

1. Память микроконтроллера.

У микроконтроллеров всех типов имеются следующие запоминающие устройства:

  • постоянное ЗУ программ (Program memory, PM),
  • оперативное ЗУ программ (Program SRAM, PSRAM),
  • оперативное ЗУ данных (Data SRAM, DSRAM),
  • двухпортовое оперативное ЗУ (Dual-Port RAM, DPRAM),
  • регистровое ЗУ.

Постоянное ЗУ программ (РМ) предназначено для хранения команд программы и постоянных данных. В качестве РМ в микроконтроллерах всех типов используется энергонезависимое запоминающее устройство типа Flash Memory, допускающее многократную перезапись кодов. У микроконтроллеров некоторых типов в качестве РМ может использоваться также запоминающее устройство масочного типа (Mask ROM).

Оперативное ЗУ программ (PSRAM) предназначено для хранения программы и может быть использовано для хранения данных.

Запоминающие устройства PM и PSRAM связаны с процессором 64-разрядной шиной данных.

Оперативное ЗУ данных (DSRAM) предназначено для хранения данных. Оно может быть использовано для организации системного стека. DSRAM связано с процессором 16-разрядной шиной данных.

Двухпортовое ЗУ (DPRAM) предназначено для хранения данных и, в том числе, данных для выполнения операций DSP. Оно также используется для организации глобальных регистровых банков и может быть использовано для организации системного стека. DPRAM связано с процессором двумя 16-разрядными шинами данных.

Регистровое ЗУ содержит два блока шестнадцатиразрядных регистров по 16 регистров в блоке. Каждый блок представляет собой локальный регистровый банк. Регистровое ЗУ входит в состав процессора.

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

Адресное пространство при использовании внешней шины может содержать до 12М адресов. Оно может быть разделено на зоны ((до пяти зон). При обращении к каждой зоне на одном из выводов микроконтроллера формируется активное значение сигнала выбора зоны CSx (x=1-5). Для каждой зоны могут быть заданы свои временные параметры сигналов управления.

Обращение к устройствам, подключенным к внешней шине, выполняется под управлением контроллера внешней шины (External Bus Controller, EBC). В микроконтроллерах могут вырабатываться сигналы для арбитража (HOLD, HLDA, BREQ) при совместном использовании внешней шины несколькими микроконтроллерами.

Адресуемым элементом памяти является восьмиразрядная ячейка. При обращении для чтения или записи слова указывается четный адрес, который является адресом младшего байта слова.

В табл. 1 указаны тип запоминающего устройства РМ и емкость запоминающих устройств (в числе байтов) и отмечена возможность выполнения арбитража внешней шины (Н/Н) у микроконтроллеров разных типов и модификаций.

Таблица 1
Тип МК Модификация Тип РМ Емкость ЗУ Н/Н
PM PSRAM DSRAM DPRAM
XC161CJ -16F Flash 128K 2K 4K 2K +
XC161CS -32F Flash 256K 6K 4K 2K +
XC164CM* -8F Flash 64K 2K 2K 2K  
XC164CS -8F
-8R
-16F
-16R
-32F
Flash
Mask
Flash
Mask
Flash
64K
64K
128K
128K
256K
2K
2K
2K
2K
6K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
 
XC167 CI-16F
CS-32F
Flash
Flash
128K
256K
2K
6K
4K
4K
2K
2k
+
+
* - внешние ЗУ не подключаются

2. Блок генерации тактового сигнала.

Блок формирует три тактовых сигнала - базовый сигнал с частотой fmc, сигнал для процессора c частотой fcpu и сигнал для периферийных устройств с частотой fsys (fsys = fcpu).

Выпускаются микроконтроллеры, которые могут работать с тактовой частотой fcpu до 40 МГц и до 20 МГц.

В качестве исходного сигнала используется сигнал внутреннего генератора с внешним кварцевым резонатором или сигнал из внешнего источника, поступающий на вход XTAL1.

Тактовые сигналы формируются путем деления или умножения частоты исходного сигнала с коэффициентом от 1/60 до10.

В состав блока входят дополнительный генератор и детектор исходного сигнала (Oscillator Watchdog, OWD). При обнаружении пропажи исходного сигнала формируется запрос прерывания и в качестве тактового сигнала используется сигнал дополнительного генератора.

3. Процессор (процессорное ядро С166SV2).

Процессор производит выборку команд из памяти и организует выполнение каждой команды. Машинный код команды может иметь формат слово или двойное слово.

Адреса команд и адреса данных входят в единое адресное пространство объемом 16 М адресов (М=220).Адресное пространство разделено на 256 сегментов по 64К адресов. Сегмент делится на 4 страницы по 16К адресов. Двоичный код адреса содержит 24 разряда, из которых 8 старших разрядов представляют номер сегмента, два следующих разряда - номер страницы в сегменте, 16 младших разрядов - адрес в пределах страницы.

Для представления адреса команды в процессоре используются 8-разрядный регистр-указатель сегмента (Code Segment Pointer, CSP) и 16-разрядный регистр-указатель команды (Instruction Pointer, IP).

Выборка команд из памяти выполняется по принципу двухэтапного конвейера (2-Stage fetch Pipeline). На первом этапе команды выбираются в порядке их записи в памяти и помещаются в буфер емкостью 96 бит. В буфере выявляются команды перехода, анализируются условия перехода и определяется адрес команды, к выполнению которой нужно перейти. "Предсказанная" команда считывается из памяти и помещается в блок хранения "предсказанных" команд.

На втором этапе команды из буфера команд и блока хранения "предсказанных" команд записываются в стек типа FIFO в том порядке, в каком они должны выполняться в ходе программы. Команды перехода, выполненные в процессе выборки, в буфер FIFO не попадают.

Выполнение команд, выходящих из стека, осуществляется по принципу пятиэтапного конвейера (5-stage execution pipeline). Процесс выполнения команд арифметических и логических операций содержит последовательность следующих действий:

  • декодирование команды,
  • формирование адресов операндов,
  • выборка операндов,
  • выполнение операции в операционном блоке,
  • отсылка результата.

Каждое действие выполняется за один такт.

Для представления адресов операндов в процессоре имеются четыре регистра-указателя страницы данных (Data Page Pointer x, DPPx, x=1,2,3,4), в которых представлены 10 старших разрядов адреса. Младшие 14 разрядов поступают в составе 16-разрядного кода из команды (при прямой адресации) или из указанного регистра (при косвенной адресации). Два старших разряда 16-разрядного хода определяют номер регистра DPP, который нужно использовать для образования 24-разрядного кода адреса данных.

Адреса в запоминающих устройствах DSRAM и DPRAM находится в нулевом сегменте адресного пространства. Для представления этих адресов используется 16-разрядный код адреса.

Данные могут размещаться в регистровых банках. Для выбора регистра необходимо указать его номер в банке. Выбор банка (глобальный или один из двух локальных) производится путем занесения номера банка в соответствующий управляющий регистр.

Глобальный регистровый банк организуется с использованием 32-х ячеек памяти в DPRAM путем занесения начального адреса группы ячеек в регистр-указатель начального адреса (Context Pоinter, CP).

В нулевом сегменте адресного пространства находятся также адреса, по которым производится обращение к регистрам специальных функций - стандартным (SFR) и дополнительным (ESFR).

Для выполнения операций в процессоре имеются два операционных блока - стандартный арифметико-логический блок (Arithmetic and Logic Unit, ALU) и специальный арифметический блок (Multiply and Accumulate Unit, MAC).

В табл.2 перечислены стандартные арифметические и логические операции, выполняемые в ALU, указаны формат операндов и число команд, по которым могут выполняться эти операции, с учетом разных способов адресации операндов.

Все операции, перечисленные в табл.2, кроме операции деления, выполняются за один такт.

Таблица 2
Операция Формат операндов Число команд
Сложение 16; 8 7 + 7
Сложение с учетом переноса 16; 8 7 + 7
Вычитание 16; 8 7 + 7
Вычитание с учетом займа 16; 8 7 + 7
Изменение знака числа 16; 8 1 + 1
Умножение (числа со знаком) 16 1
Умножение (числа без знака) 16 1
Деление (числа со знаком) 16; 32:16 1 + 1
Деление (числа без знака) 16; 32:16 1 + 1
Инверсия 16; 8; 1 1 + 1 + 1
Логическое умножение 16; 8; 1 7 + 7 + 1
Логическое сложение 16; 8; 1 7 + 7 + 1
Исключающее ИЛИ 16; 8; 1 7 + 7 + 1
Сравнение 16; 8; 1 6 + 6 + 1
Сравнение с инкрементированием 16 6
Сравнение с декрементированием 16 6
Логический сдвиг на N разрядов 16 4
Циклический сдвиг на N разрядов 16 4
Арифметический сдвиг на N разрядов 16 2
Определение параметра нормализации 16 1
Маскирование младшего/старшего байта 16 2

В табл.3 описаны операции, выполняемые в блоке MAC. В операциях участвуют 40-разрядный код (ACC) в регистре - аккумуляторе, два 16-разрядных кода ор1 и ор2, которые выбираются из ячеек DPRAM и регистров с использованием нескольких способов адресации, и 32-разрядный код (ор2 || ор1), получаемый при конкатенации кодов ор2 и ор1. 40-разрядный код результата находится в регистре-аккумуляторе.

Числа могут быть целыми и дробными. В операции умножения могут участвовать два числа со знаком, или два числа без знака, или одно число со знаком, а другие - без знака. Результат умножения может быть получен с округлением или без округления.

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

Все операции, описанные в табл.3, выполняются за один такт.

Таблица 3
Тип операции Операция Число команд
Сложение (ACC) + (OP2 || OP1) 3
(ACC) + 2 (OP2 || OP1) 3
Вычитание (ACC) - (OP2 || OP1) 3
(ACC) - 2 (OP2 || OP1) 3
(OP2 || OP1) - (ACC) 3
2(OP2 || OP1) - (ACC) 3
Умножение OP1 x OP2 24
- (OP1 x OP2) 12
Сложение/вычитание парных произведений (ACC) + OP1 x OP2 32
(ACC) - OP1 x OP2 16
OP1 x OP2 - (ACC) 32
Получение абсолютной величины числа abs (ACC) 1
abs (OP2 || OP1) 3
Округление (ACC) + 00 0000 8000H 1
Сравнение (ACC) ↓ (OP2 || OP1) 3
Выделение большего числа max (ACC), (OP2 || OP1) 3
Выделение меньшего числа min (ACC), (OP2 || OP1) 3
Сдвиг на N разрядов влево/вправо ↑ (ACC) / (ACC) → 12
Изменение знака числа - (ACC) 2

При конвейерном способе выполнения команд разные этапы выполнения команд в последовательности из пяти команд совмещены во времени. При этом на выполнение последовательности из N команд, каждая из которых выполняется за пять тактов, затрачивается N тактов и расчетное время выполнения одной команды для определения быстродействия микроконтроллера оказывается равным длительности одного такта (1/fcpu).

В процессоре семейства XC166 команды перехода выполняются в процессе выборки команд. Действия, совершаемые при выборке команд, совмещены во времени с действиями, совершаемыми при исполнении ранее выбранных команд. Поэтому команды перехода выполняются без затраты дополнительных тактов в ходе программы (Zero cycle jump execution).

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

Таблица 4
Операция Область адресов Число команд
Безусловный переход 16 М 1
Абсолютный переход 64 К 20
Косвенный переход 64 К 20
Относительный переход -128, +127 20
Условный переход -128, +127 4
Безусловный переход с возвратом 16 М 1
Абсолютный переход с возвратом 64 К 20
Косвенный переход с возвратом 64 К 20
Безусловный относительный переход с возвратом -128, +127 1
Безусловный переход с возвратом с пересылкой "регистр-стек" 64 К 1
Программное прерывание 128→16 М 1
Возврат из подпрограммы 16 М 1
Возврат из подпрограммы 64 К 1
Возврат из подпрограммы с пересылкой "стек-регистр" 64 К 1
Возврат из прерювающей программы 16 М 1
Переход через 1 команду - 1

4. Система команд.

В систему команд микроконтроллеров семейства XC166 входят все 325 команд системы команд микроконтроллеров семейства С166 (исходная система команд) и дополнительные команды.

В исходную систему команд входят:

  • 150 команд, по которым выполняются арифметические и логические операции, перечисленные в табл.2,
  • 45 команд операций пересылки слов, байтов и битов с различными способами задания адресов источников и приемников пересылаемых кодов,
  • 114 команд операций перехода, перечисленных в табл.4,
  • 6 команд управления состоянием микроконтроллера, которые перечислены в табл.5,
  • 10 команд операций, выполняемых при работе процессора в мультипрограммном режиме, которые перечислены в табл.6.

Таблица 5
Операция Мнемокод команды
Программный перезапуск МК SRST
Переход в режим холостого хода IDLE
Переход в режим пониженного энергопотребления PWRDN
Перезапуск сторожевого таймера SRVWDT
Отказ от использования WDT DISWDT
Конец инициализации EINIT
Программный останов* SBRK
Разрешение работы WDT* ENWDT
* - нет в исходной системе команд

Таблица 6
Операция Мнемокод операции Число команд
Защита от прерывания последовательности из N команд (N=1,2,3,4) ATOMIC 1
Защита от прерывания последовательности из N команд (N=1,2,3,4) с переходом:
- от области SFR к области ESFR EXTR 1
- от текущей страницы памяти к указанной странице EXTP 2
- от текущего сегмента памяти к указанному сегменту EXTS 2
- от текущей страницы памяти к указанной странице и от области SFR к области ESFR EXTPR 2
- от текущего сегмента памяти к указанному сегменту и от области SFR к области ESFR EXTSR 2

Кроме команд исходной системы в систему команд входят 180 команд, по которым выполняются операции при работе DSP. В эту группу входят 162 команды, по которым выполняются операции, описанные в табл.3, и 18 команд для засылки и пересылки кодов при работе операционного блока MAC.

Кроме того, в группу команд управления состоянием микроконтроллера добавлены две команды (см. табл.5) и в группу команд операций перехода добавлены модифицированные команды абсолютного перехода (JMPA+ и JMPA-) и абсолютного перехода с возвратом (CALLA+ и CALLA-), упрощающие процедуру выборки "предсказанных" команд.

В группу кодов условия перехода добавлены четыре кода (nusr0, nusr1, usr0, usr1), которые используются только в командах абсолютного перехода и абсолютного перехода с возвратами.

5. Система прерываний.

В систему прерываний входят два контроллера прерываний - основной (Interrupt Controller, IC) и дополнительный (Peripheral Event Controller, PEC).

Основной контроллер прерываний может обслуживать запросы прерывания, поступающие их всех внешних и внутренних источников, включая запросы системных прерываний (traps). При поступлении запроса прерывания IC организует переход от выполнения текущей программы к выполнению прерывающей программы с сохранением в стеке кодов, необходимых для возврата к выполнению прерванной программы.

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

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

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

Дополнительный контроллер прерываний (PEC) может обслуживать запросы не более, чем из восьми источников, выбранных с использованием программных средств. Обслуживание запроса заключается в пересылке одного слова или байта, считанного по заданному адресу, и записи его по другому заданному адресу. Пересылка выполняется за один такт, который исключается из хода текущей программы.

Адреса источника и приемника и количество актов обслуживания для данного запроса прерывания задаются программными средствами. После выполнения пересылки адрес источника и/или адрес приемника могут инкрементироваться или декрементироваться. После выполнения заданного числа пересылок обслуживание запросов прерывания из данного источника передается в основной контроллер прерываний (IC).

В микроконтроллерах всех типов, кроме ХС164СМ, могут использоваться до 80 источников запросов прерывания, у МК типа ХС164СМ - до 45. В указанное число не входит запрос немаскируемого прерывания NMI и запросы, возникающие при выявлении ошибок в работе процессора и при выполнении команды прерывания (Hardware and Software Traps). По этим запросам выполняются 6 прерывающих программ.

6. Периферийные устройства.

Периферийные устройства микроконтроллеров семейства ХС166 по структуре и выполняемым функциям совпадают с одноименными периферийными устройствами микроконтроллера семейства С166.

В состав периферийных устройств входят регистры управления, регистры состояния и регистры, образующие в совокупности группу регистров специальных функций (Special Function Registers,SFR). В эту группу входят также регистры, расположенные в процессоре и других функциональных блоках микроконтроллера.

Сокращенные наименования периферийных устройств приведены в табл. 7. В таблице отмечено наличие данных периферийных устройств у микроконтроллеров разных типов и приведены основные характеристики некоторых устройств. В таблице также указано число выводов корпуса микроконтроллера (Pin).

Таблица 6
Тип МК ADC ASC CAN CCU CC6 GPT IIC PP RTC SDLM SSC WDT Pin
XC161CJ 12 2 2 2   5 + 10; 99 + + 2 + 144
XC161CS 12 2 2 2   5 + 10; 99 +   2 + 144
XC164CM 14 2 2 1 + 5   4; 47 +   2 + 64
XC164CS 14 2 2 2 + 5   7; 79 +   2 + 100
XC167 16 2 2 2 + 5 + 10;103 +   2 + 144

ADC (Analog/Digital Converter).

Аналого-цифровой преобразователь формирует 10-разрядный или 8-разрядный двоичный код числа, пропорционального величине напряжения на его входе. Преобразователи могут иметь от 12 до 16 входов (каналов). Количество входов ADC у микроконтроллеров разных типов указано в табл.7 в колонке ADC.

Формирование кода выполняется по методу последовательных приближений. Длительность выполнения преобразования задается с использованием программных средств. Минимальная длительность при формировании 10-разрядного и 8-разрадного кодов равна 2,55 мкс и 2,15 мкс соответственно.

Преобразование начинается по команде в программе или по сигналу из другого устройства (CCU) . При получении результата формируется запрос прерывания.

После запуска преобразователь может работать в следующих режимах:

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

При выполнении заданной последовательности преобразований есть возможность ввести в последовательность дополнительное одиночное преобразование.

При включении питания микроконтроллера автоматически выполняется процедура автокалибровки преобразователя. Усеченная процедура автокалибровки может выполняться после каждого преобразования.

ASC (Asynchronous/Synchronous Channel).

Асинхронно-синхронный канал представляет собой универсальный синхронно-асинхронный приемопередатчик (USART). Он предназначен для последовательного приема и передачи данных с использованием двух выводов - RXD и TXD.

У микроконтроллеров всех типов имеются два ASC - ASC0 и ASC1.

В синхронном режиме вывод RXD используется для последовательного приема или передачи байта, а вывод TXD - для выдачи серии импульсов, управляющих сдвигом байта во внешнем устройстве. Прием и передача могут вестись со скоростью до 5 Мбит/с.

В асинхронном режиме данные передаются в составе кадра. Вывод RXD используется для приема, а вывод TXD - для передачи кадров. Прием и передача могут вестись одновременно.

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

При использовании проводного канала кадр может содержать 10 или 11 битов - стартовый бит, 7 или 8 битов данных, дополнительный бит и 1 или 2 стоповых бита. Дополнительный бит может отсутствовать.

Передача может вестись со скоростью до 2,5 Мбит/с. Могут использоваться стандартные значения скорости или значения, заданные программно. В состав ASC входит схема для определения скорости принимаемого кадра и настройки передатчика на данную скорость.

Дополнительный бит может использоваться для выявления ошибок в принятом кадре путем контроля на четность или нечетность или для выявления кадров, содержащих адрес станции, при работе микроконтроллера в микроконтроллерной сети.

При использовании инфракрасного канала связи кадр содержит стартовый бит, 8 битов данных и один стоповый бит. Передача ведется со скоростью 115,2 Кбит/с.

В составе ASC для накопления данных, предназначенных для передачи и получаемых при приеме, имеется два стека типа FIFO, каждый из которых содержит 8 девятиразрядных ячеек.

При завершении передачи кадра или приема кадра и при обнаружении ошибок в принятом кадре формируются запросы прерывания.

CAN (Controller Area Network).

В состав микроконтроллера входит модуль, содержащий два блока передачи и приема сообщений в сети, работающей по CAN - протоколу (Twin CAN Module). Блоки могут работать независимо друг от друга или обмениваться принимаемыми и предаваемыми сообщениями.

Для подключения микроконтроллера к сети используется две пары выводов. Подключение выполняется с использованием внешних приемопередатчиков CAN.

Сообщение содержит идентификатор из 11 или 29 битов, группу байтов, в которую могут входить до 8 байтов, и контрольный циклический код CRC. Передача сообщений может вестись со скоростью до 1 Мбит/с.

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

CCU (Capture/Compare Unit).

Блок захвата - сравнения предназначен для определения параметров входных импульсных сигналов (в режиме захвата) и формирования выходных импульсных сигналов с заданными параметрами (в режиме сравнения). У микроконтроллеров всех типов, кроме XC164CM, имеются два блока - CCU1 и CCU2, у МК типа ХС164СМ - один блок (CCU2).

В состав каждого блока входят два шестнадцатиразрядных таймера и 16 шестнадцати зарядных регистров. На вход таймера поступает сигнал с частотой fsys. Каждый регистр совместно с одним из таймеров может работать в режиме захвата или в режиме сравнения. С каждым регистром связан вывод микроконтроллера, который используется как вход в режиме захвата или как выход в режиме сравнения.

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

В режиме сравнения код, ранее занесенный в регистр, сравнивается с кодом в выбранном таймере. При совпадении кодов изменяется уровень сигнала на соответствующем выходе и формируется запрос прерывания. В режиме сравнения блок может использоваться для формирования сигналов с широтно-импульсной модуляцией (PWM).

CC6 (Capture/Compare Unit 6).

Блок захвата - сравнения СС6 содержит два шестнадцатиразрядных таймера (Т12 и Т13) и четыре шестнадцатиразрядных регистра.

Три регистра совместно с таймером Т12 могут работать в режиме захвата или в режиме сравнения. С каждым регистром связаны два вывода микроконтроллера, один из которых может работать в качестве входа (в режиме захвата) или в качестве выхода (в режиме сравнения), а другой - в качестве выхода (в режиме сравнения).

При работе в режиме сравнения на выходах формируется пара импульсных сигналов, один из которых является инверсией другого сигнала. При этом моменты изменения уровня одного сигнала могут быть сдвинуты относительном моментов изменения уровня другого сигнала на заданный интервал. Изменение уровня сигнала может происходить при совпадении кодов в таймере и регистре или при поступлении внешнего сигнала на дополнительный вход микроконтроллера. Три регистра совместно с таймером Т12 могут быть использованы для формирования трехфазного сигнала PWM.

Таймер Т13 совместно с четвертым регистром могут работать только в режиме сравнения с выдачей импульсного сигнала на отдельный выход.

Блок имеет дополнительный вход. При появлении активного значения сигнала на этом входе прекращается генерация сигналов во всех каналах блока.

GPT (General Purpose Timer).

Таймер общего назначения представляет собой шестнадцатиразрядный счетчик, который может вести счет времени или счет внешних событий, представленных изменением уровня внешнего сигнала. Счет может вестись на сложение или на вычитание.

У микроконтроллеров всех типов имеются 5 таймеров общего назначения (Т2,Т3,Т4,Т5 и Т6), которые объединены в два блока - GPT1 (Т2,Т3, Т4) и GPT2 (Т5,Т6). При счете времени максимальная частота поступления счетных импульсов у таймеров блока GPT1 равна fsys/4, а у таймеров блока GPT2 - fsys/2.

Все таймеры могут работать независимо друг от друга. Таймеры в блоке могут соединяться последовательно.

При независимой работе таймеры могут использоваться для формирования запросов прерывания при истечении заданного интервала времени или наступлении заданного числа внешних событий и для измерения длительности и периода следования импульсов во внешних сигналах.

При переполнении таймеров Т3 и Т6 может изменяться уровень сигнала на выводах микроконтроллера, связанных с этими таймерами, что позволяет формировать выходные импульсные сигналы с заданными характеристиками.

К любому таймеру в блоке GPT1 может быть непосредственно подключен датчик положения (инкрементный шифратор) для представления в таймере состояния датчика.

В блоке GPT1 таймеры Т2 и Т4 могут использоваться в качестве регистров загрузки для таймера Т3 или в качестве регистров захвата (capture) для запоминания кода, сформированного в таймере Т3 в момент наступления внешнего события. При совместном использовании таймеров Т2 и Т4 в режиме загрузки, на выходе микроконтроллера, связанном с таймером Т3, формируется широтно-модулированный сигнал (PWM).

В блоке GPT2 имеется вспомогательный регистр, который может использоваться в качестве регистра загрузки для таймера Т6 или в качестве регистра захвата для запоминания кода формируемого в таймере Т5. При использовании вспомогательного регистра в качестве регистра загрузки на выходе, связанном с таймером Т6, формируется импульсный сигнал с заданными временными характеристиками.

IIC (Inter Integrated Circuit)

Блок IIC (I2C) предназначен для последовательной передачи и приема данных с использованием двух шин - шины SCL для передачи синхросигнала и шины SDA для передачи адреса, данных и служебных символов.

Адрес может быть представлен семиразрядным или десятиразрядным кодом. Передача может вестись со скоростью до 400 Кбит/С или со стандартной скоростью 100 Кбит/С.

Блок может работать в режиме ведущего с выдачей синхросигнала в шину SCL или ведомого с получением синхросигнала из шины SCL. Возможна также работа в переменном режиме с переходом из режима ведущего в режим ведомого и обратно.

В блоке имеется буфер емкостью 4 байта.

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

PP (Parallel Port)

Параллельный порт предназначен для ввода и выдачи данных в виде много- разрядного параллельного кода. Отдельные разряды порта могут использоваться независимо от других разрядов для ввода и выдачи битов. Количество параллельных портов и суммарное число разрядов в параллельных портах у микроконтроллеров разных типов указано в табл. 7 в колонке РР.

Каждый разряд параллельного порта может быть запрограммирован для работы в качестве входа или выхода.

При работе в качестве входа вывод порта находится в высокоимпедансном состоянии. Пороги для определения значения сигнала (0/1) с помощью программных средств могут быть установлены для работы с сигналами TTL или CMOS типа.

При работе в качестве выхода с использованием программных средств выводы порта могут быть подключены через внутренние резисторы к положительной шине питания (push/pull) или оставаться неподключенными (open drain). Разряд порта может быть запрограммирован для работы с высокой, средней или низкой нагрузочной способностью (drive control) и с высокой или менее высокой крутизной фронтов при изменении уровня сигнала (edge control).

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

RTC (Real Time Clock).

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

В состав блока входит вспомогательный генератор с внешним кварцевым резонатором с частотой 32 768 Гц, пересчетные схемы и пять таймеров с различным числом разрядов, которые могут соединяться последовательно.

Блок может формировать временной интервал длительностью более 100 лет. Он продолжает работу при переводе микроконтроллера в состояние сброса.

SDLM (Serial Data Link Module)

Модуль предназначен для последовательной передачи и приема данных в сети, работающей по протоколу J1850. Модуль имеет вход RxD и выход TxD, которые с помощью мультиплексора могут быть подключены к одной из трех пар выводов микроконтроллера. Выводы микроконтроллера подключаются к сети с использованием внешних приемопередатчиков.

Байты данных передаются в составе кадра. В кадр кроме байтов данных входит байт-заголовок (header) и могут входить байты подтверждения обмена (response). В кадр также входят служебные символы и контрольный циклический код CRC.

Данные могут передаваться со скоростью 10,4 Кбод или 41, 6 Кбод.

SSC (Synchronous Serial Channel).

Синхронный последовательный канал предназначен для последовательной передачи и приема данных с использованием трех шин по интерфейсу SРI (Serial Peripheral Interface).

SSC имеет три вывода - SCLK, MTSR и MRST. Он может работать в режиме ведущего или ведомого. Передаваемый код может содержать от двух до шестнадцати битов. Передача кода сопровождается передачей серии из 2-16 синхроимпульсов соответственно. Код может передаваться, начиная со старшего или с младшего бита, синхроимпульсы могут иметь положительную или отрицательную полярность.

По шине, соединяющей выводы SCLK, предаются синхроимпульсы из ведущего устройства в ведомое. По шине, соединяющей выводы MTSR, передается код из ведущего устройства в ведомое, а по шине, соединяющей выводы MRST, -из ведомого устройства в ведущее.

Передача может вестись со скоростью до 6,25 Мбит/с.

У микроконтроллеров всех типов имеются два SSC - SSC0 и SSC1.

WDT (Watchdog Timer).

Сторожевой таймер предназначен для устранения последствий сбоя в ходе программы путем перезапуска микроконтроллера.

WDT содержит шестнадцатиразрядный счетчик, который ведет счет времени. При переполнении счетчика происходит перезапуск микроконтроллера. Для предотвращения перезапуска в определенных местах программы помещаются команды сброса счетчика в нулевое состояние с продолжением счета.

При сбое в ходе программы очередная команда сброса счетчика не выполняется. Счетчик продолжает счет до переполнения и происходит перезапуск микроконтроллера. Длительность интервала счета до переполнения программируется и может иметь величину от 13 мкс до 419 мс.

Запуск WDT после перезапуска микроконтроллера происходит через 3,28 мс.

7. Вспомогательные устройства.

Вспомогательные устройства не участвуют в работе микроконтроллера в процессе выполнения рабочей программы. Они используются при подготовке микроконтроллера к работе.

В группу вспомогательных устройств входят:

  • блок загрузки памяти,
  • блок отладки программ,
  • блок эмуляции.

Блок загрузки памяти (Bootstrap Loader BSL) предназначен для загрузки начального участка программы (32 байта) во внутреннее оперативное запоминающее устройство PSRAM и записи массивов команд и данных во внутренние и внешние запоминающие устройства, включая внутренние ЗУ программ типа Flash memory.

Запись производится из персонального компьютера, подключенного к микроконтроллеру с использованием асинхронно-синхронного канала ASC0 (USART). В режим загрузки микроконтроллер переводится при создании соответствующей комбинации уровней сигналов на определенных его выводах. Первый загружаемый кадр содержит нулевой байт. Он используется для автоматической настройки канала ASC0 на работу с заданной скоростью.

Программа работы микроконтроллера в режиме загрузки хранится в специальном постоянном запоминающем устройстве (Boot ROM). Начальный участок загружаемой программы (32 байта) настраивает микроконтроллер для приема последующих массивов кодов и записи их по определенным адресам.

Переход из режима загрузки в рабочий режим происходит при подаче сигнала аппаратного сброса RESET.

Блок отладки программ (On-Chip Debug Support, OCDS) предназначен для отладки программ в микроконтроллере, установленном в устройстве, для управления работой которого он предназначен. Блок работает под управлением внешнего отладочного устройства, которое подключается к микроконтроллеру по интерфейсу JTAG (5 линий) и по Break- интерфейсу (2 линии). Выводы микроконтроллера, предназначенные для подключения внешнего отладчика, используются только в процессе отладки.

При отладке могут использоваться следующие приемы:

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

Ввод кодов, управляющих работой блока отладки, и новых кодов в элементы микроконтроллера выполняется через специальный блок ввода-вывода (Cerberus).

Блок эмуляции (Emulation Device, EDEV) предназначен для отладки программных и аппаратных средств разрабатываемого устройства по новой эмуляционной технологии (New Emulation Technology, NET). Для работы в режиме эмуляции микроконтроллер устанавливается на специальном дополнительном устройстве NET Carrier Chip.

Блок эмуляции имеется у микроконтроллеров модификации - 16F (см. табл.1).

Литература

  1. XC16x Family. Migration from C161/C164/C167
    Microcontrollers to XC161/XC164/XC167.
    Application Note, V2.01, Dec 2003
  2. XC161CJ 16-Bit Single-Chip Microcontroller. Date Sheet. V2.2. Jun.2003.
  3. XC 164CS 16-Bit Single-Chip Microcontroller. Date Sheet. V2.1. Jun.2003.
  4. XC164CM-8FF to XC164CS. Draft Delta Sheet, V.1.OD3, March 2004.
  5. XC167CI 16 - Bit Single - Chip Microcontroller. Preliminary. Data Sheet, V.1.1, Jun 2003.
  6. C166S V2 16-Bit Microcontroller. User Manual, V.1.7, January 2001.
  7. XC161 16- Bit Single-Chip Microcontroller with C166SV2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V.2.2, January 2004.
  8. XC-161-32 16 Bit Single-Chip Microcontroller with C166SV2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V.1.0, Feb.2004.
  9. XC-164-16 16 Bit Single-Chip Microcontroller with C166V2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V.2.1, March 2004.
  10. XC164-32 16-Bit Single-Chip Microcontroller with C166SV2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V.1.0, May 2004.
  11. XC167-16 16- Bit Single-Chip Microcontroller with C166SV2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V2.0, April 2004.
  12. XC167-32 16- Bit Single-Chip Microcontroller with C166SV2 Core.Volume1: System Units. Volume2: Peripheral Units. User's Manual, V.1.0, June 2004.
© 1999-2016 All Right Reserved. EFO Ltd. При использовании материалов ссылка на источник обязательна.
Контактная информация