ООО ЭФО
Поиск по складу
Программа поставок 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

В.В.Гребнев

  1. Структура микроконтроллеров.
  2. Система команд.
  3. Периферийные устройства.
  4. Работа микроконтроллеров.

Фирма Infineon, выделившаяся из фирмы Siemens, выпускает различные электронные компоненты, в число которых входят 8-разрядные, 16- разрядные и 32- разрядные микроконтроллеры. Восьмиразрядные микроконтроллеры выпускаются в составе двух семейств - С500 и С800. В семейство входят микроконтроллеры разных типов. Обозначение типа содержит букву и цифру, означающие принадлежность микроконтроллера к семейству, (С5 или С8) и две цифры, за которыми могут следовать одна или две буквы. Например, С504, С505L, C505CA.

Микроконтроллеры обоих семейств имеют единую базовую структуру и систему команд, которые совпадают с базовой структурой и системой команд микроконтроллеров семейств МCS-51 фирмы Intel, AT-89 фирмы Atmel и отечественных микроконтроллеров серий 1816/51 и 1830/51.

1. Структура микроконтроллеров.

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

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

Кварцевый резонатор подключается к выводам микроконтроллера XTAL1 и XTAL2. Сигнал внешнего генератора подается на вывод XTAL1. Частота тактового сигнала (fosc) должна находиться в пределах определенного частотного диапазона. Микроконтроллеры типа С504 и С868 могут работать при максимальной частоте 40 Мгц, микроконтроллеры типа С515 - при максимальной частоте 10 Мгц. Микроконтроллеры других типов - при максимальной частоте 20 Мгц.

Двенадцать тактов тактового сигнала образуют машинный цикл. Из 111 команд, входящих в систему команд, 64 команды выполняются за один машинный цикл, 45 команд - за два цикла, 2 команды - за 4 цикла.

Процессор микроконтроллера содержит:

  • шестнадцатиразрядный счетчик команд (РС),
  • шестнадцатиразрядный регистр-указатель данных (DPTR),
  • восьмиразрядный указатель стека (SP),
  • арифметико-логическое устройство (ALU)
    и другие элементы, обеспечивающие выборку команд из памяти программ в заданном порядке и выполнение каждой команды.
В состав ALU входят:
  • регистр-аккумулятор (А),
  • вспомогательный регистр (В),
  • регистр слова состояния программы (PSW).

Процессор микроконтроллеров фирмы Infineon всех типов, кроме С504, содержит 8 регистров-указателей данных (DPTR0, :, DPTR7).

В качестве памяти программ могут использоваться:

  • внутреннее запоминающее устройство,
  • внешнее запоминающее устройство,
  • совместно внутреннее и внешнее запоминающие устройства.

В микроконтроллере типа С505L внешнее ЗУ для хранения программ может использоваться только совместно с внутренним ЗУ. В микроконтроллере типа С868 внешнее ЗУ программ не используется.

Адресное пространство памяти программ содержит 64K адресов (К= 2 10). Адреса для обращения к внутреннему ЗУ расположены в начальной области адресного пространства.

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

  • постоянное запоминающее устройство масочного типа (Mask ROM),
  • программируемое постоянное запоминающее устройство с однократным программированием (OTP ROM),
  • статическое оперативное запоминающее устройство (SRAM).

Для указания емкости и типа внутреннего ЗУ для хранения программ в обозначение типа микроконтроллера добавляют цифру и букву. В табл. 1 приведены обозначения типов микроконтроллеров, выпускаемых фирмой Infineon по состоянию на середину 2004 года, и указаны тип и емкость их запоминающих устройств. Емкость указана в числе байтов.

Таблица 1
Тип МК Внутреннее ЗУ программ XRAM
C504
- 2R
- 2E
- L
Mask 16K
OTP 16K
-
256
C505
- 2R
- L
Mask 16K
-
256
C505A
- 2R
- 4R
- 4E
- L
Mask 16K
Mask 32K
OTP 16K
-
1K
C505C
- 2R
- L
Mask 16K
-
256
C505CA
- 2R
- 4R
- 4E
- L
Mask 16K
Mask 32K
OTP 32K
-
1K
C505L OTP 32K 256
C508
- 4R
- 4E
Mask 32K
OTP 32K
1K
C515C
- 8R
- 8E
- L
Mask 64K
OTP 64K
-
2K
C868
- 1R
- 1S
Mask 8K
SRAM 8K
256

Микроконтроллеры, в которых программа хранится в SRAM, имеют дополнительное постоянное запоминающее устройство (Boot ROM) для хранения программы загузки памяти микроконтроллера. У микроконтроллеров типа С868 Boot ROM имеет емкость 4 Кбайт.

В качестве памяти данных используется внутреннее оперативное запоминающее устройство (RAM) и может использоваться внешнее запоминающее устройство.

У микроконтроллеров фирмы Infineon имеется дополнительное внутреннее оперативное запоминающее устройство для хранения данных (XRAM). Емкость XRAM у микроконтроллеров разных типов указана в табл. 1.

Основное внутреннее ЗУ (RAM) имеет собственное адресное пространство объемом 256 адресов. У микроконтроллеров всех типов RAM имеет емкость 256 байт.

Адресное пространство внешней памяти данных имеет объем 64K адресов. Внешнее ЗУ данных может иметь емкость до 64K байт.

Адреса из конечной области адресного пространства внешней памяти данных используются также для обращения к XRAM и специальным запоминающим устройствам и регистрам специальных функций, которые входят в состав некоторых периферийных устройств. Для разделения обращений к внешнему ЗУ данных и к XRAMи специальным ЗУ и регистрам в периферийных устройствах используется значение разряда XMAP0 в регистре SYSCON. Обращение к внешнему ЗУ данных выполняется при единичном значении этого разряда.

В микроконтроллере типа С868 внешнее ЗУ данных не используется.

Для обращения к любой из 256 ячеек RAM могут использоваться команды с косвенной адресацией. К 128 ячейкам RAM с адресами от 00H до 7FH можно также обращаться по командам с прямой адресацией. К 32 ячейкам RAM с адресами от 00Н до 1FH можно, кроме того, обращаться по командам с регистровой адресацией. Эти ячейки объединены в 4 регистровых банка по 8 регистров в банке. Номер регистра (0, :, 7) указывается в команде. А номер используемого регистрового банка (0, :, 3) предварительно записывается в регистр PSW. Регистровый банк, номер которого указан в регистре PSW, является активным банком. Первые два регистра в каждом регистровом банке могут использоваться для записи адресов при обращении к RAM по командам с косвенной адресацией.

К ячейкам RAM можно также обращаться с использованием регистра-указателя стека SP. Стек типа LIFO может располагаться в любой области адресного пространства RAM.

К отдельным разрядам шестнадцати ячеек RAM с адресами от 20H до 2FH можно обращаться по командам с битовой адресацией. 128 разрядов в этих ячейках имеют адреса от 00H до 7FH в битовом адресном пространстве.

Адреса из адресного пространства RAM от 80H до FFH используются также в качестве адресов регистров специальных функций (SFR). Обращение к SFR выполняется по командам с прямой адресацией. К отдельным разрядам регистров специальных функций с адресами, кратными числу 8, (80H, 88H, 90H, :, F8H) можно обращаться по командам с битовой адресацией. Разряды в этих регистрах имеют адреса от 80H до FFH в битовом адресном пространстве.

Для обращения к ячейкам XRAM и ячейкам внешнего ЗУ данных используются команды с косвенной адресацией, при этом двухбайтовый код адреса предварительно записывается в регистр-указатель данных DPTR. При использовании нескольких DPTR существенно упрощается программа, в которой на разных участках производится обращение по адресам в разных областях адресного пространства внешней памяти данных. Номер регистра DPTR, используемого на данном участке, предварительно записывается в специальный регистр (DPSEL), входящий в группу SFR.

К ячейкам внешнего ЗУ данных можно также обращаться по командам с косвенной адресацией с использованием регистра R0 или R1 активного регистрового банка, в который предварительно записывается младший байт адреса. Старший байт адреса выдается через параллельный порт ввода-вывода P2.

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

  • параллельные восьмиразрядные порты ввода-вывода P0,P1, P2 и P3,
  • таймер-счетчик Т0,
  • таймер-счетчик Т1,
  • последовательный порт ввода-вывода USART (универсальный синхронно-асинхронный приемо-передатчик),
  • контроллер прерываний (Interrupt Controller, IC).

Микроконтроллеры всех типов фирмы Infineon кроме перечисленных выше периферийных устройств имеют следующие периферийные устройства:

  • таймер-счетчик Т2,
  • сторожевой таймер (Watchdog Timer, WDT),
  • аналого-цифровой преобразователь (Analog-to-Digital Converter, ADC).

Таймер-счетчик Т2 у микроконтроллеров некоторых типов может выполнять дополнительные функции - захват (capture) и сравнение (сompare). Такой таймер-счетчик (Т2 С/С) позволяет определять характеристики входных импульсных сигналов и формировать выходные импульсные сигналы с заданными характеристиками.

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

  • параллельные порты ввода-вывода Р4, :, Р7,
  • блок захвата/ сравнения (capture/ compare unit, C/CU),
  • последовательный порт ввода-вывода SSC (Synchronous Serial Channel),
  • CAN - контроллер (Controller Area Network Controller, CANC),
  • сторожевой генератор (Oscillator Watchdog, OWD),
  • таймер реального времени Real-Time Clock Timer, RTCT),
  • контроллер жидкокристаллического дисплея (Liquid-Crystal Display Controller, LCDC).

В табл. 2 указано наличие у микроконтроллеров разных типов дополнительных периферийных устройств и таймера-счетчика Т2 С/С и отмечено отсутствие устройств базовой структуры.

Таблица 2
Тип МК Р Т2 С/С C/CU SSC CANC OWD RTCT LCDC
C504 - - - + - - + -
C505, C505A P4 + - - - + - -
C505C, 505CA P4 + - - + + - -
C505L P4, P5 + - - - + + +
C508 P4, P5 + + - - + - -
C515C P4- P7 + - + + + - -
C868 нет Р0,Р2 - + - - - - -

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

Система команд содержит 111 команд. Машинные коды команд имеют формат байт (49 команд), два байта (46 команд) или три байта (16 команд).

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

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

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

  • С - бит в старшем разряде регистра PSW,
  • В - бит, хранящийся в разряде ячейки RAM или регистра специальных функций с битовой адресацией,
  • / В - инверсия бита В.

В машинном коде команды и в мнемокоде команды на место В помещается адрес разряда (00H - FFH), а в мнемокоде команды может указываться имя разряда.

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

Таблица 3
Операция Мнемокод команды
С: = 0 CLR C
С: = 1 SETB C
В: = 0 CLR B
В: = 1 SETB B
С: = /С CPL C
В: = /В CPL B
С: = В MOV C, B
В: = С MOV B, C
С: = С ^ В ANL C, B
С: = С ^ /В ANL C, /B
C: = C v B ORL C, B
С: = С v /В ORL C, /B
: = - знак операции присваивания

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

A - байт находится в регистре-аккумуляторе,

B - байт находится во вспомогательном регистре В в ALU,

RX - байт находится в регистре X (X = 0, 1, :,7) активного регистрового банка,

S - байт находится в ячейке RAM по адресу S (S = 00H, :, 7FH) или в регистре SFR (S = 80H, :, FFH),

@ RY - - байт находится в ячейке RAM по адресу, который указан в регистре Y ( Y = 0,1) активного регистрового банка,

#N - байт в коде команды,

@ A + DPTR - байт находится в ячейке внешнего ЗУ данных или в XRAM по адресу, который равен сумме чисел, записанных в регистре-аккумуляторе и регистре DPRT,

@A + PC - байт находится в ячейке ЗУ программ по адресу, который равен сумме чисел, записанных в регистре-аккумуляторе и счетчике команд,

DPTR - байт находится в регистре DPRT,

# N2N1 - слово в коде команды.

С байтами и словами выполняются арифметические, логические и пересылочные операции. Арифметические и логические операции выполняются по командам с одним адресом или с двумя адресами.

В табл. 4 перечислены операции, выполняемые по командам с одним адресом, и указаны коды, входящие в мнемокод команды. С использованием табл. 4 могут быть образованы мнемокоды 16 команд. При выполнении этих команд результат помещается на место операнда.

Таблица 4
Операция Мнемокод операции Адресная часть
Сложение с единицей INC A, RX, S, @RY, DTPR
Вычитание единицы DEC A, RX, S, @RY
Обнуление CLR A
Десятичная коррекция DA A
Инверсия CPL A
Сдвиг влево * RLC A
Сдвиг вправо * RRC A
Циклический сдвиг влево RL A
Циклический сдвиг вправо RR A
* - с участием разряда С регистра PSW

В табл. 5 перечислены операции, выполняемые по командам с двумя адресами, и указаны коды, входящие в мнемокод команды. С использованием табл. 5 могут быть образованы мнемокоды 32 команд. При выполнении этих команд первый операнд находится по первому адресу, второй операнд - по второму адресу, результат посылается на место первого операнда.

Таблица 5
Операция Мнемокод операции Адресная часть
1-й адрес 2-й адрес
Сложение ADD A, RX, S, @RY, #N
Сложение с учетом переноса ADDC A, RX, S, @RY, #N
Вычитание с учетом займа SUBB A, RX, S, @RY, #N
Логическое умножение (И) ANL A, S, RX, S, @RY, #N A, #N
Логическое сложение (ИЛИ) ORL A, S, RX, S, @RY, #N A, #N
Исключающее ИЛИ XRL A, S, RX, S, @RY, #N A, #N
Умножение MUL A B
Деление DIV A B

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

Операции умножения и деления выполняются с целыми числами без знака. Результат умножения имеет формат слово и размещается в паре регистров А и В. При выполнении деления частное размещается в регистре А. а остаток - в регистре В.

В табл. 6 перечислены пересылочные операции и указаны коды, входящие в мнемокоды команд. С использованием табл. 6 могут быть образованы мнемокоды 29 команд. При выполнении этих команд по первому адресу указывается адрес приемника кода, участвующего в пересылке, а по второму адресу - адрес источника кода.

Таблица 6
Операция Мнемокод операции Адресная часть
1-й адрес 2-й адрес
Посылка в аккумулятор MOV MOVC MOVX A, A, A, RX, S, @RY, #N DA+PC, @A+DPTR @DPTR, @RY
Пересылка из аккумулятора MOV MOVX RX, S, @RY, @DPTR, @RY, A A
Посылка в регистр MOV RX, S, #N
Пересылка из регистра MOV S, RX
Пересылка в ячейку RAM и из ячейки RAM MOV MOV MOV S2, S, @RY, S1 @RY, #N S, #N
Стековые пересылки PUSH POP S S  
Обмен байтов XCH A, RX, S, @RY
Обмен нибблов XCHD SWAP A, A @RY
Засылка в DPTR MOV DPTR, #N2 N1

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

Таблица 7
Операция Мнемокод команды
"Длинный" безусловный переход (в пределах 64K адресов) LJMP M
"Абсолютный" безусловный переход (в пределах 2K адресов) AJMP M
"Короткий" безусловный переход (в пределах от +127 до -128 от очередного адреса) SJMP M
"Косвенный" безусловный переход (в пределах 64K адресов) JMP @A+DPTR
"Длинный" безусловный переход с возвратом LCALL M
"Абсолютный" безусловный переход с возвратом ACALL M
Возврат из подпрограммы RET
Возврат из прерывающей программы RETI
Переход через 1 адрес NOP

При выполнении команд условного перехода переход по указанному адресу совершается, если выполняется некоторое условие. В противном случае выполняется очередная команда программы. Переход может совершаться в пределах от +127 до -128 адресов от очередного адреса. В табл. 8 приведены мнемокоды команд условного перехода и указаны условия, при выполнении которых переход совершается.

Таблица 8
Мнемокод Команды Условие перехода Мнемокод команды Условие перехода
JZ M A = 0 CJNE A, S, M A ≠ S
JNZ M A ≠ 0 CJNE A, #N, M A ≠ N
JC M C = 1 CJNE RX, #N, M RX ≠ N
JNC M C = 0 CJNE @RY, #N, M @RY ≠ N
JB B, M B = 1 DJNZ RX, M** RX ≠ 0
JNB B,M B = 0 DJNZ S, M** S ≠ 0
JBC B,M* B = 1    
* - при выполнении перехода В:= 0
** - перед проверкой условия число в регистре RX или ячейке S уменьшается на 1

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

Параллельные порты ввода-вывода предназначены для приема и выдачи байтов данных. Отдельные выводы портов могут использоваться независимо от других выводов для приема и выдачи битов. Порты имеют двунаправленные выводы (I/O) и выводы, выполняющие только функцию приема (I).

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

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

Таблица 9
Тип МК Pin Pin P Alt P0 P1 P2 P3 P4 P5 P6 P7
C504 44 32 32 8 8 8 8 - - - -
C505 44 34 32 8 8 8 8 2 - - -
C505A 44 34 32 8 8 8 8 2 - - -
C505C 44 34 34 8 8 8 8 2 - - -
C505CA 44 34 34 8 8 8 8 2 - - -
C505L 80 46 46 8 8 8 8 8 6 - -
C508 64 48 48 8 8 8 8 8 8 - -
C515C 80 57 49 8 8 8 8 8 8I 8 1
C868 28, 38 16 15 - 5+3I - 8 - - - -
I - только вход

Таймеры-счетчики Т0 и Т1 предназначены для формирования с заданной периодичностью запросов прерывания. На вход таймера-счетчика может поступать внутренний сигнал микроконтроллера с частотой fosc /12 (режим таймера) или внешний сигнал, поступающий на входы Т0 и Т1 микроконтроллера соответственно (режим счетчика внешних событий). Внешним событием является отрицательный перепад (1>0) уровня входного сигнала. Запрос прерывания формируется при истечении заданного интервала времени или при поступлении заданного числа внешних событий.

Таймеры-счетчики могут использоваться для измерения длительности импульса во внешнем сигнале, а таймер-счетчик Т1 - для формирования синхросигнала для последовательного порта USART.

Таймеры-счетчики могут вести счет по модулю 28 или 216. При счете по модулю 28 счет может вестись в режиме с автоперезагрузкой или с предварительным делением частоты внутреннего входного сигнала на 32.

Таймер-счетчик Т0 может использоваться как два независимых устройства - восьмиразрядный таймер и восьмиразрядный таймер-счетчик. Таймер-счетчик Т1 в этом случае не работает.

Таймер-счетчик Т2 содержит шестнадцатиразрядные счетчик и регистр загрузки CRC и имеет два внешних вывода - T2 и T2EX. Он может вести счет времени или внешних событий на выводе T2 с формированием запроса прерывания при истечении заданного интервала времени или наступлении заданного числа внешних событий. При переполнении счетчика или появлении отрицательного перепада уровня сигнала (1>0) на выводе T2EX происходит перезагрузка счетчика кодом числа из регистра CRC с формированием запроса прерывания. Счетчик может вести счет на сложение или на вычитание.

Таймер-счетчик T2 также может работать в режиме захвата и в режиме генeратора синхросигнала для последовательного порта USART. В режиме захвата он ведет счет времени на сложение. При появлении отрицательного перепада уровня сигнала на выводе T2EX код числа из счетчика переписывается в регистр CRC и формируется запрос прерывания.

    Таймер-счетчик Т2 С/С
кроме шестнадцатиразрядных счетчика и регистра CRC содержит три шестнадцатиразрядних регистра СС1, СС2 и СС3 и кроме выводов Т2 и Т2ЕХ имеет дополнительные внешние выводы СС0, СС1, СС2 и СС3.

Он может выполнять все функции таймера-счетчика Т2, кроме функции генератора синхросигнала для последовательного порта, и, кроме того, может работать в следующих режимах:

  • режим сравнения кода в счетчике с кодами в регистрах CRC, CC1, CC2 и СС3 с изменением уровня сигнала на выводах СС0, СС1, СС2 и СС3 соответственно при совпадении кодов и при переполнении счетчика с формированием запросов прерывания,
  • режим захвата кода с переписью кода из счетчика в регистры CRC, СС1, СС2 и СС3 при появлении перепада уровня сигнала на выводах СС0, СС1, СС2 и СС3 соответственно с формированием запросов прерывания или по команде в программе.

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

Блок захвата/сравнения (C/CU) предназначен для определения параметров входных импульсных сигналов и формирования выходных импульсных сигналов с заданными параметрами. В состав C/CU входят:

  • шестнадцатиразрядный таймер сравнения/захвата (ТС/С),
  • три шестнадцатиразрядных регистра сравнения/захвата (С/С0, С/С1 и С/С2),
  • десятиразрядный таймер сравнения (ТС),
  • десятиразрядный регистр сравнения (СОМ).

В микроконтроллерах типа C868 таймер ТС и регистр СОМ имеют шестнадцать разрядов.

Блок имеет внешние выводы СС0, COUT0, CC1, COUT1, CC2, COUT2, COUT3 и CTRAP.

В режиме захвата таймер ТС/С ведет счет на сложение от нуля до заданного числа (period), сбрасывается в нулевое состояние с формированием запроса прерывания и вновь ведет счет. При изменении уровня входного сигнала заданного типа (0 → 1 или 1 → 0) на входе CCi (i=0,1,2) код числа из таймера переписывается в регистр C/Ci и формируется запрос прерывания. Таким образом, в регистре C/Ci фиксируется момент времени во внутренней системе отсчета, когда произошло изменение уровня входного сигнала.

В режиме сравнения таймер ТС/С ведет счет на сложение от нуля до заданного числа, сбрасывается в нулевое состояние или изменяет направление счета с формированием запроса прерывания и продолжает вести счет. Код числа в таймере сравнивается с кодом числа в регистре C/Ci. При совпадении кодов изменяется уровень сигнала на выводе COUTi (i=0,1,2) и инверсно уровень сигнала на выводе CCi. Момент изменения уровня сигнала на выводе CCi может быть сдвинут во времени относительно момента изменения уровня сигнала на выводе COUTi (i=0,1,2) на заданную величину (offset).

Таким образом, на выходах CCi и COUTi (i=0,1,2) формируется пара импульсных сигналов, один из которых является инверсией другого сигнала, и моменты изменения уровня в этом сигнале могут быть смещены во времени относительно моментов изменения уровня другого сигнала.

Таймер ТС и регистр СОМ работают в режиме сравнения с выдачей сигнала на вывод COUT 3.

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

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

Последовательный порт ввода-вывода USART предназначен для приема и выдачи байтов данных в последовательном коде. Он может работать в четырех режимах - "0", "1", "2" и "3".

В режиме "0" (синхронный режим) порт последовательно выдает или принимает байт, работая совместно с внешним сдвигающим регистром. Вывод TXD используется для выдачи серии из восьми импульсов управления сдвигом, вывод RXD предназначен для приема или выдачи последовательности из восьми битов, начиная с младшего бита в байте.

В порте микроконтроллера типа C868 режим "0" не выполняется (UART).

В режимах "1", "2" и "3" (асинхронные режимы) порт принимает через вывод RXD и выдает через вывод TXD байты в виде кадров, содержащих стартовый бит, восемь битов байта, начиная с младшего бита, и стоповый бит. В режимах "2" и "3" между старшим битом байта и стоповым битом помещается дополнительный бит.

Скорость приема и передачи битов в режимах "0" и "2" определяется частотой тактового сигнала микроконтроллера.

В режимах "1" и "3" скорость определяется частотой переполнения таймера - счетчика Т1, работающего в режиме восьмиразрядного таймера с автоперезагрузкой. У микроконтроллеров типа С504 и С868 в качестве второго источника синхросигнала может использоваться таймер-счетчик Т2, у микроконтроллеров других типов вторым источником служит специальный генератор (baud rate generator), содержащий десятиразрядные таймер и регистр загрузки. При использовании двух источников синхросигнала прием и передача могут вестись с разной скоростью. При завершении передачи и приема кадра формируется запрос прерывания.

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

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

Последовательный порт ввода-вывода SSC предназначен для обмена байтами по последовательному каналу с использованием трех шин. Работа порта SSС совпадает с работой порта SPI ( Serial Peripheral Interface) у микроконтроллеров других фирм.

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

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

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

CAN-контроллер предназначен для передачи и приема сообщений при подключении микроконтроллера к сети, работающей по CAN-протоколу.

В состав CAN-контроллера входит специальное запоминающее устройство (Intelligent Memory) емкостью 256 байт, в котором запоминаются байты, предназначенные для передачи в сеть и байты принятые из сети. Обращение к ячейкам ЗУ выполняется с использованием адресов из адресного пространства внешней памяти данных.

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

При завершении приема или передачи сообщения формируется запрос прерывания, который на входе контроллера прерываний объединен по ИЛИ с программным запросом прерывания.

Максимальная скорость приема и передачи 1 Мбит/с.

Аналого-цифровой преобразователь (ADC) формирует двоичный код числа, пропорционального величине напряжения на его входе. В микроконтроллерах типа С868 преобразователь имеет 5 входов, в микроконтроллерах других типов - 8 входов. Выбор входа для выполнения преобразования выполняется путем занесения соответствующего кода в регистр управления ADC.

Запуск преобразователя происходит по команде в программе. У микроконтроллеров типа С868 запуск может быть также выполнен по сигналу из блока захвата-сравнения (C/CU). При завершении преобразования формируется запрос прерывания.

У микроконтроллеров типа С505, С505С и С868 результат преобразования представлен восьмиразрядным двоичным кодом, у микроконтроллеров других типов - десятиразрядным кодом, при этом имеется возможность считывать лишь старшие восемь разрядов кода.

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

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

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

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

Сторожевой генератор (OWD) предназначен для перевода микроконтроллера в состояние сброса, если частота тактового сигнала микроконтроллера станет меньше минимально допустимого значения. Он содержит вспомогательный RС-генератор и частотный компаратор.

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

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

На вход таймера поступает тактовый сигнал из генератора реального времени, имеющего внешний кварцевый резонатор с частотой 32762 Гц ( Гц).

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

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

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

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

Контроллер выдает сигналы на четыре вывода (R0,:, R3) для подключения входов рядов дисплея и на 16 пар выводов (C0, С1,:, С30, С31) для подключения входов столбцов дисплея.

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

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

В каждом такте работы контроллера, имеющем длительность 1/360 секунды, управляющие сигналы могут иметь один из четырех уровней (0, 1/3, 2/3, 1) напряжения питания дисплея VLCD. Уровень VLCD формируется с использованием восьмиразрядного цифро-аналогового преобразователя. Другие уровни формируются с помощью резисторного делителя напряжения.

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

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

В табл. 10 в строке EI указано число входов микроконтроллера (INT) для приема запросов прерывания из внешних источников у микроконтроллеров разных типов.

Таблица 10
Тип МК С504 С505 С505А С505С С505СА С050L C508 C515C C868
EI 3 6 6 6 10 9 3
IV 12 12 12 12 19 17 13
PL 2 4 4 4 4 4 4

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

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

Для размещения начальных участков прерывающих программ в начальной области памяти программ отведены восьмибайтовые участки, которые начинаются с адресов 0003H, 000BH, 0013H,: . В табл. 10 в строке IV указано число прерывающих программ, которые могут быть использованы у микроконтроллеров разных типов.

Каждой прерывающей программе присвоен определенный приоритет, который может быть отнесен к одному из двух или четырех уровней приоритета. Число уровней приоритета у микроконтроллеров разных типов указано в табл. 10 в строке PL.

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

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

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

4. Работа микроконтроллеров.

Микроконтроллеры семейства С500 работают при напряжении питания 5 В, микроконтроллеры типа С868 - при напряжении питания 3,3 В.

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

Таблица 11
Обозначение Диапазон t°C
SAB 0: + 70
SAF - 40 : + 85
SAH -40 : + 110
SAK - 40 : + 125

Пуск микроконтроллера происходит при подаче напряжения питания, если к выводу RESET подключен конденсатор (у микроконтроллеров семейства С500) или RC-цепочка (у микроконтроллера типа С868). Перезапуск микроконтроллера с использованием внешнего сигнала происходит при кратковременном изменении уровня сигнала на выводе RESET.

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

Для уменьшения тока потребления микроконтроллер может быть переведен в энергосберегающие режимы работы:

  • режим с пониженной скоростью работы (Slow-down-mode),
  • режим холостого хода (Idle mode),
  • режим пониженного энергопотребления (Power-down mode).

Микроконтроллеры типа С504 не могут работать в режиме с пониженной скоростью

Перевод микроконтроллера в энергосберегающие режимы выполняются по командам в программе. Микроконтроллеры типа С515С могут быть переведены в режим пониженного энергопотребления путем изменения уровня сигнала на выводе HWPD микроконтроллера (Hardware Power-down mode).

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

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

В режиме пониженного энергопотребления остановлен генератор тактового сигнала. Выход из режима происходит при поступлении внешнего сигнала перезапуска микроконтроллера или при изменении уровня сигнала (1 ) на входе INT0. У микроконтроллеров, имеющих CAN-контроллер, выход происходит также при появлении активного уровня сигнала на входе RXDC, а у микроконтроллеров типа С868 - при появлении активного уровня сигнала на входе RXD. В микроконтроллерах типа С505L выход происходит по сигналу от таймера реального времени. У этих микроконтроллеров в режиме пониженного энергопотребления может продолжать работу контроллер жидкокристаллического дисплея с использованием в качестве тактового сигнала сигнала от генератора реального времени.

Если микроконтроллер типа С515С был переведен в режим пониженного энергопотребления путем изменения уровня внешнего сигнала на выводе HWPD, выход из режима происходит при появлении исходного уровня сигнала на этом выводе.

Микроконтроллеры семейства С500 имеют внутреннюю память программ в виде постоянного ЗУ масочного типа или ЗУ с однократным программированием. Отладка программ для таких микроконтроллеров возможна с использованием внутрисхемных эмуляторов или при подключении внешнего запоминающего устройства для хранения программ с возможностью многократной записи. Для организации работы микроконтроллера с подключением внутрисхемного эмулятора в микроконтроллере имеется специальный блок - On Chip Emulation Support Module.

Микроконтроллеры типа С868, у которых в качестве памяти программ используется оперативное запоминающее устройство (SRAM) и имеется дополнительное постоянное запоминающее устройство (Boot ROM) для хранения программы загрузки памяти, могут работать в четырех режимах.

В нормальном режиме (Normal mode) выполняется программа, хранящаяся в памяти программ, дополнительное запоминающее устройство (XRAM) используется для запоминания данных.

В нормальном XRAM режиме (Normal XRAM mode) выполняется программа, записанная в XRAM. Коды, хранящиеся в памяти программ, используются как данные.

В первом режиме загрузки (Boot Strap mode) выполняется программа, хранящаяся в Boot ROM, по которой выполняется запись кодов в SRAM и/или в XRAM.

Во втором режиме загрузки (Boot strap XRAM) выполняется программа, хранящаяся в Boot ROM и в XRAM, по которой выполняется запись кодов в SRAM.

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

При загрузке памяти с использованием Boot ROM микроконтроллер должен быть подключен к персональному компьютеру по интерфейсу RS-232 или к микроконтроллеру должна быть подключена микросхема энергонезависимой памяти последовательного типа, в которой хранятся загружаемые коды. Подключение микросхемы может быть выполнено по интерфейсу SSС (SPI) или I2C.

Литература.

  1. С500 Architecture and Instruction Set. User's Manual. July 2000.
  2. C504 8-Bit Singl-Chip Microcontroller. Data Dheet. May 2000.
  3. C505, C505C, C505A, C505CA 8-Bit Single-Chip Microcontroller. Data Sheet. Dec.2000.
  4. C505L 8-Bit CMOS Microcontroller. User's Manual. Nov.1999.
  5. C508 8-Bit CMOS Microcontroller. User's Manual. May 2001.
  6. C515C 8-Bit Single-Chip Microcontroller. Data Sheet. Feb.2003.
  7. C868 8-Bit Single-Chip Microcontroller. Data Sheet, V1.0. May 2003.
© 1999-2016 All Right Reserved. EFO Ltd. При использовании материалов ссылка на источник обязательна.
Контактная информация