Научная статья на тему 'Программируемые системные приборы фирмы STMicroelectronics. Часть 3. 8-разрядные микроконтроллеры семейства mpsd3xx'

Программируемые системные приборы фирмы STMicroelectronics. Часть 3. 8-разрядные микроконтроллеры семейства mpsd3xx Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
266
60
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Крылов Евгений

В данной статье рассматриваются особенности архитектуры 8-разрядных микроконтроллеров семейства mPSD3xxx фирмы STMicroelectronics. Особенностью этих микроконтроллеров является объединение стандартного микроконтроллера с архитектурой 8051 с PSD прибором, что позволило создать ряд серий 8-разрядных микроконтроллеров с исключительно высокими характеристиками.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программируемые системные приборы фирмы STMicroelectronics. Часть 3. 8-разрядные микроконтроллеры семейства mpsd3xx»

Компоненты и технологии, № 6'2003 Компоненты

Продолжение. Начало в № 3-4'2003

Программируемые системные приборы фирмы $ТМкгое!ейгопк5

Часть 3. 8-разрядные микроконтроллеры семейства цРЗОЗххх

В данной статье рассматриваются особенности архитектуры 8-разрядных микроконтроллеров семейства цРБОЭххх фирмы БТМкгое^сГгошсв. Особенностью этих микроконтроллеров является объединение стандартного микроконтроллера с архитектурой 8051 с Р5Р прибором, что позволило создать ряд серий 8-разрядных микроконтроллеров с исключительными характеристиками.

Евгений Крылов

[email protected]

Восьмиразрядные микроконтроллеры семейства |iPSD3xxx, или «Программируемые системные Flash-приборы с ядром микроконтроллера 8032» (Flash Programmable System Devices with 8032 Microcontroller Core), как они называются в фирменных описаниях, получили все достоинства PSD-приборов, в том числе внутрисхемное программирование (ISP) посредством интерфейса JTAG ISP и, кроме того, существенно расширенный набор встроенной периферии.

Естественен вопрос: почему в приборах семейства |iPSD3xxx используется ядро с архитектурой 8051? Приведем некоторые ответы на этот вопрос.

• Это ядро все еще является самым популярным среди 8-разрядных микроконтроллеров.

• На рынке объемом 4 млрд штук микроконтроллеры с архитектурой 8051 составляют 15%.

• Мощная поддержка архитектуры 8051 третьими поставщиками.

• Колоссальное количество пользователей.

• Огромный опыт разработчиков, громадные объемы апробированных программных средств.

• Естественное сопротивление разработчиков переходу на новые и непривычные микропроцессорные архитектуры.

• Статистика использования приборов PSD, показавшая, что в большинстве случаев они использовались именно с микроконтроллерами с архитектурой 8051, о чем упоминалось в предшествовавшей статье.

Может быть задан и другой вопрос: чем отличаются микроконтроллеры семейства |jPSD3xxx от традиционных микроконтроллеров и в чем их преимущество? Далеко не полный перечень ответов на этот вопрос приведен ниже.

• Большие объемы Flash-памяти и RAM, превышающие, как правило, объем памяти микроконт-

роллеров традиционных архитектур, наличие вторичной памяти обеспечивают: -использование языков высокого уровня, операционных систем реального времени (RTOS); -организацию насыщенного интерфейса пользователя;

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

-высокую скорость обмена за счет организации в RAM буфера большого объема.

Возможность управления распределением памяти посредством встроенной PLD декодирования и регистра страниц:

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

-встроенная PLD декодирования позволяет преодолеть традиционный для архитектуры 8051 барьер адресуемого пространства в 64 кбайт, налагаемый 16 линиями адреса;

-8-разрядный регистр страниц, встроенный в PLD декодирования, эквивалентен добавлению еще 8 линий адреса, что позволяет в 256 раз расширить адресуемое пространство. Встроенный последовательный JTAG-интерфейс обеспечивает внутрисистемное программирование (ISP) без участия ядра процессора, что позволяет:

- программировать систему с уже запаянным на печатную плату микроконтроллером, что исключит влияние температуры пайки на записанную в память информацию;

-выполнить программирование полностью пустого прибора за время порядка 10-25 секунд.

Компоненты и технологии, № 6'2003

Таблица 1. Номенклатура B-разрядных микроконтроллеров с ядром B032 серии pPSD32xx (стандартные)

Тип прибора а, т о т ,с wO -r О \ с вМ Мз и о р П Основная Flash (кбайт) Вторич ная Flash (кбайт) SRAM (кбайт) Макр.ячеек USB 1,1 Каналов/ разрядов ADC ч. т е ч W £ й а Т Каналов PWM UART о в о а н а К КаналовSPI Протокол IrDA Канал DDC GPIO Напр. питания, В Внеш. шина 8D32 Диапазон рабочих температур Корпус Поставки

mPSD3254A-40U6 3 MIP/40 256 32 32 16 Малая 4xB 3 5 2 1 Нет Нет Есть 46 4,5-5,0 Есть -40 ~ B5"C TQFPB0 2 кв. 03

mPSD3254A-40T6 3 MIP/40 256 32 32 16 Малая 4xB 3 5 2 1 Нет Нет Есть 51 4,5-5,0 Нет -40 ~ B5"C TQFP52 2 кв. 03

mPSD3254BV-24U6 2 MIP/24 256 32 32 16 Нет 4xB 3 5 2 1 Нет Нет Есть 46 3,0-3,б Есть -40 ~ B5"C TQFPB0 2 кв. 03

mPSD3234A-40U6 3 MIP/40 256 32 B 16 Малая 4xB 3 5 2 1 Нет Нет Есть 46 4,5-5,0 Есть -40 ~ B5"C TQFPB0 Есть

mPSD3234BV-24U6 2 MIP/24 256 32 B 16 Нет 4xB 3 5 2 1 Нет Нет Есть 46 3,0-3,б Есть -40 ~ B5"C TQFPB0 Есть

mPSD3234A-40T6 3 MIP/40 256 32 B 16 Малая 4xB 3 5 2 1 Нет Нет Есть 37 4,5-5,0 Нет -40 ~ B5"C TQFP52 Есть

mPSD3253B-40T6 3 MIP/40 12B 32 32 16 Нет 4xB 3 5 2 1 Нет Нет Есть 37 4,5-5,0 Нет -40 ~ B5"C TQFP52 2 кв. 03

mPSD3253BV-24T6 2 MIP/24 12B 32 32 16 Нет 4xB 3 5 2 1 Нет Нет Есть 37 3,0-3,б Нет -40 ~ B5"C TQFP52 2 кв. 03

mPSD3233B-40U6 3 MIP/40 12B 32 B 16 Нет 4xB 3 5 2 1 Нет Нет Есть 46 4,5-5,0 Есть -40 ~ B5"C TQFPB0 Есть

mPSD3233BV-24U6 2 MIP/24 12B 32 B 16 Нет 4xB 3 5 2 1 Нет Нет Есть 46 3,0-3,б Есть -40 ~ B5"C TQFPB0 Есть

mPSD3233B-40T6 3 MIP/40 12B 32 B 16 Нет 4xB 3 5 2 1 Нет Нет Есть 37 4,5-5,0 Нет -40 ~ B5"C TQFP52 Есть

mPSD3233BV-24T6 2 MIP/24 12B 32 B 16 Нет 4xB 3 5 2 1 Нет Нет Есть 37 3,0-3,б Нет -40 ~ B5"C TQFP52 Есть

mPSD3212CV-24T6 2 MIP/24 64 16 2 16 Нет 4xB 3 5 2 1 Нет Нет Нет 37 3,0-3,б Нет -40 ~ B5"C TQFP52 Есть

mPSD3212C-40T6 3 MIP/40 64 16 2 16 Нет 4xB 3 5 2 1 Нет Нет Нет 37 4,5-5,0 Нет -40 ~ B5"C TQFP52 Есть

mPSD3212CV-24U6 2 MIP/24 64 16 2 16 Нет 4xB 3 5 2 1 Нет Нет Нет 46 3,0-3,б Есть -40 ~ B5"C TQFPB0 Есть

mPSD3212C-40U6 3 MIP/40 64 16 2 16 Нет 4xB 3 5 2 1 Нет Нет Нет 46 4,5-5,0 Есть -40 ~ B5"C TQFPB0 Есть

Таблица 2. Номенклатура B-разрядных микроконтроллеров с ядром B032 серии pPSD33xx (Turbo pPSD)

Тип прибора а, т о .ст | "й-г Мз и о р П Основная Flash (кбайт) Вторич ная Flash (кбайт) SRAM (кбайт) Макр. ячеек PLD USB 1.1 Каналов/ разрядов ADC ч. т е ч о £ й а Т Каналов PWM UART о в о а н а К Каналов SPI Протокол IrDA Канал DDC GPIO Напр. питания, В Внеш. шина 803о Диапазон рабочих темпе ратур Корпус Поставки

MPSD3312D-40T6 10 MIP/40 64 16 2 16 Нет Bx10 9 б 2 1 1 Есть Есть 36 4,5-5,5 Нет -40 ~ B5 "C TQFP52 3 кв. 03

MPSD3312DV-40T6 B MIP/40 64 16 2 16 Нет Bx10 9 б 2 1 1 Есть Есть 36 3,0-3,б Нет -40 ~ B5 "C TQFP52 3 кв. 03

MPSD3333D-40T6 10 MIP/40 12B 32 B 16 Нет Bx10 9 б 2 1 1 Есть Есть 36 4,5-5,5 Нет -40 ~ B5 "C TQFP52 3 кв. 03

MPSD3333DV-40T6 B MIP/40 12B 32 B 16 Нет Bx10 9 б 2 1 1 Есть Есть 36 3,0-3,б Нет -40 ~ B5 "C TQFP52 3 кв. 03

MPSD3334D-40U6 10 MIP/40 256 32 B 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 4,5-5,5 Есть -40 ~ B5 "C TQFPB0 3 кв. 03

MPSD3334DV-40U6 B MIP/40 256 32 B 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 3,0-3,б Есть -40 ~ B5 "C TQFPB0 3 кв. 03

MPSD3354DV-40U6 B MIP/40 256 32 32 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 3,0-3,б Есть -40 ~ B5 "C TQFPB0 3 кв. 03

MPSD3354D-40U6 B MIP/40 256 32 32 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 4,5-5,5 Есть -40 ~ B5 "C TQFPB0 3 кв. 03

MPSD3354DV-40T6 B MIP/40 256 32 32 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 3,0-3,б Есть -40 ~ B5 "C TQFP52 3 кв. 03

MPSD3354D-40T6 10 MIP/40 256 32 32 16 Нет Bx10 9 б 2 1 1 Есть Есть 45 4,5-5,5 Есть -40 ~ B5 "C TQFP52 3 кв. 03

Є~

Таблица 3. Номенклатура 8-разрядных микроконтроллеров с ядром 8032 серии |jPSD34xx (Turbo jjPSD plus)

Тип прибора а, т о ст О* з и о р П Основная Flash (кбайт) Вторич ная Flash (кбайт) SRAM (кбайт) Макр. ячеек PLD USB 1.1 Каналов/ разрядов ADC Тайм./счетч. Каналов PWM UART о в о а н а К Каналов SPI Протокол IrDA Сброс по WDT/ Vcc Напр. питания, В Внеш. шина 803о Диапазон рабочих темпе ратур Корпус Поставки

MPSD3433EV-40U6 10 MIP/40 12B 32 B 16 Полная Bx10 9 б 2 1 1 1 Есть 3,0-3,б Нет -40 ~ B5 "C TQFPB0 4 кв. 03

MPSD3434EV-40U6 10 MIP/40 256 32 B 16 Полная Bx10 9 б 2 1 1 1 Есть 3,0-3,б Нет -40 ~ B5 "C TQFPB0 4 кв. 03

MPSD3434FV-40H6 10 MIP/40 256 32 B 32 Полная Bx10 9 б 2 1 1 1 Есть 3,0-3,б Есть -40 ~ B5 "C TQFP100 4 кв. 03

MPSD3454FV-40U6 10 MIP/40 256 32 32 32 Полная Bx10 9 б 2 1 1 1 Есть 3,0-3,б Нет -40 ~ B5 "C TQFPB0 4 кв. 03

MPSD3455FV-40H6 10 MIP/40 512 32 32 32 Полная Bx10 9 б 2 1 1 1 Есть 3,0-3,б Есть -40 ~ B5 "C TQFP100 4 кв. 03

• Перепрограммирование в условиях эксплуатации (IAP) с использованием практически любого канала связи.

• Встроенная программируемая логика с макроячейками входа и выхода, аналогичная стандартной архитектуре 22V10, исключает использование внешних приборов PAL, PLD и логики 74HC74xx и обеспечивает организацию непосредственно в микроконтроллере:

-необходимой «склеивающей» логики; -конечных автоматов, сдвиговых регистров, счетчиков, декодеров, мультиплексоров, делителей частоты, генераторов задержки и пр.

• Стековая технология.

Как правило, пользователя не интересует, что находится в маленьком корпусе с боль--------------------www.finestreet.ru-

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

С момента опубликования первой статьи цикла номенклатура микроконтроллеров увеличилась практически вдвое — кроме анонсированной на середину текущего года серии |jPSD Turbo (|jPSD33xx) на конец года анонсирован выпуск серии |jPSD Turbo-plus

(|дР8034хх). Отличительные особенности микроконтроллеров этих серий приведены в таблицах 1-3.

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

Компоненты и технологии, № 6'2003

микроконтроллеров семейства |jPSD3xxx не ограничивается, они могут быть использованы: •

-в периферии торговых терминалов: сканеры штриховых кодов, ридеры чеков и кредитных карт, термопринтеры, бан- • коматы, контроль подписей;

-в автоматах по продаже пищевых товаров и напитков, билетов, на автозаправ- • ках, в приемниках бумажных денег и монет;

-в средствах обеспечения безопасности • и защиты зданий: в средствах кондиционирования, управления доступом, управления освещением, в средствах чтения удостоверений (badge);

-в карманных средствах измерений: GPS, тестеры, сканеры инвентаризации;

- в средствах сбора данных: оборудование рабочих мест, медицина, бытовые счет- • чики расхода и потребления и др.

В качестве основы, при рассмотрении осо- • бенностей архитектуры микроконтроллеров семейства |iPSD3xxx, примем микроконтроллеры |jPSD325x, отличающиеся в основном • объемом основной Flash-памяти, наличием • интерфейса USB и корпусами. Основное внимание будет уделяться дополнительным • к архитектуре 8032 элементам, поскольку основные элементы, например, таймеры-счет- • чики совместимы с используемыми в архитектуре 8032. •

Отличительные особенности * микроконтроллеров ^PSD325x

• Два банка Flash-памяти, обеспечивающие чтение из одного банка памяти во время записи в другой и удаленное обновление программных средств — перепрограммирование в условиях эксплуатации (IAP): -основная Flash-память объемом 128 или

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

-вторичная Flash-память объемом 32 кбайт, разделенная на четыре сектора одинаковой емкости. Исключает необходимость использования внешней EEPROM.

• SRAM объемом 32 кбайт с возможностью батарейной поддержки.

• Программируемая PLD декодирования (DPLD) со встроенным регистром страниц, обеспечивающая гибкое распределение адресов всей памяти.

• Высокоскоростное тактирование стандартного ядра 8032 (12 тактов на машинный цикл):

-работа с тактовой частотой 40 МГц при напряжении питания 5 В и 24 МГц при напряжении питания 3,3 В.

• Два UART с взаимно независимыми бодо-выми скоростями, три таймера-счетчика и два внешних прерывания.

• Интерфейс USB (|jPSD3254A-40):

-поддержка низкоскоростного режима

USB 1.1 (1,5 Мбит/с);

- управление конечной точкой 0 и прерывания по конечным точкам 1 и 2.

Интерфейс I2C, обеспечивающий связь с периферией в режиме как ведущего, так и ведомого.

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

Автономный канал отображаемых данных (Display Data Channel — DDC): -используется с мониторами, проекторами и TV-применениями;

-совместим с VESA стандартами DDC1 и DDC2B;

- исключает потребность во внешней DDC PROM.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Шесть портов I/O, обеспечивающих до 50 выводов.

Программируемая вентильная матрица на 3000 вентилей с 16 макроячейками выхода и 24 макроячейками входа. Супервизорные функции. Внутрисистемное программирование (ISP) через JTAG-интерфейс.

Защита программных средств пользователя.

Технология «нулевого» потребления (Zero-Power).

Напряжение питания от 4,5 до 5,5 В или от 3,0 до 3,6 В.

Корпус: 52-выводной TQFP или 80-вывод-ной TQFP, обеспечивающий организацию внешней шины.

На блок-схеме микроконтроллера |jPSD325x (рис. 2) видна стековая структура микроконтроллера:

-кристалл модуля MCU с ядром 8032 (с соответствующей архитектуре 8032 встроенной периферией и портами);

- дополнительная периферия, расширяющая возможности микроконтроллера и обеспечивающая поддержку системы;

- кристалл модуля PSD, в основном идентичного прибору, описанному в предшествовавшей статье.

В модуле PSD расположена конфигурируемая память программ и данных для ядра 8032 и, кроме того, программируемая логика распределения памяти, программируемая логика общего назначения и программируемые порты A, B, C и D с архитектурой, отличной от архитектуры портов 0-4 модуля MCU.

Поскольку в основе модуля MCU лежит ядро 8032, то в набор регистров специальных функций входят все SFR-регистры архитектуры 8032 (A, B, SP, PC, PSW, DPTR и регистры встроенной в 8032 периферии) и к ним добавлены регистры организации работы новой встроенной в модуль MCU периферии (каналы PWM, ADC, DDC, интерфейсы I2C и USB и другая встроенная периферия). Напомним, как отмечалось в предшествовавшей статье, что регистры управления конфигурацией PLD (распределения памяти, конфигурирования портов и пр.) находятся в пространстве CSIOP — отдельном блоке энергонезависимой памяти объемом 256 байт, размещаемом в пространстве адресов микроконтроллера и обеспечивающем, следовательно, адресацию микроконтроллером всех находящихся

Порт 3, UART, прерыв., _ Порт 1, таймеры Порт 4, _ Выводы

Таймеры и 12С и UART2, ADC PWM и DDC USB

Порт 3 | Порт 1 |

Ядро 8032 1 1 ГС 1

| 2UART | 3 таймера/ «епика 1

| Прерывание! |_ 256 Байт SRAM 1

Модуль MCU

4

канальный

ADC

LP^i

8032 Internal Bus

5 DDC с 256 USB и Логика

каналов Байтами приемо- сброса,

PWM 5R AM передатчик LVD WDT

Модуль PSD

А0-А15 RD, PSEN WR, ALE

PLD

декодирования, регистр страниц

1 или 2 МБайта основной Flash

256 кБайт вторичной Flash

256 кБайт SRAM

Внутренняя шино PSD

D0-D7

Интерфейс

шины

Сброс

Порты 0 и 2. Внешняя шина

Блок JTAG ISP

CPLD -16 макроячеек

Порт С, JTAG, I/O PLD и GPIO

Порт А и В, I/O PLD и GPIO

VC„GND,

XTAL

Порт D, GPIO

Специальные

выводы

Рис. 2. Блок-схема микроконтроллера ^PSD325x

Компоненты и технологии, № 6'2003 Компоненты

Основная

Flash-помять

Вторичная

Flash-помять

32

кБайта

L

128 или 256 кБайт

J

Внешняя

RAM

Встроенная

RAM

SFR

Внешняя

RAMJDDC)

FF Косвенная адресация Прямая адресация FFFF 256

7F 0 Косвенная адресация или прямая адресация FF00 Байт

32

кБайта

L

Пространство Flash-памяти

Рис. З. Карта памяти и пространство адресов

Пространство встроенной RAM (256 Байт)

Пространство внешней RAM (MOVX)

в этом пространстве регистров. Первичное конфигурирование этих регистров выполняется средствами проектирования PSDsoft.

Стандартное ядро архитектуры 8032, используемое в приборах |jPSD325X, работает с раздельными пространствами адресов памяти программ и данных объемом по 64 кбайт. Расположенная в модуле PSD Flash-память, которая может быть отображена как в пространстве программ, так и в пространстве данных, состоит из двух блоков: основной (1 или 2 Мбит) и вторичной (256 кбит) Flash-памяти. Преодоление ограничения архитектуры 8032 пространством адресов в 64 кбайт организуется 8-разрядным регистром страниц, позволяющим в 256 раз расширить адресуемое пространство. За исключением времени выполнения процедур программирования или модификации, Flash-память обеспечивает только чтение, но не запись.

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

В объем внутренней SRAM, составляющей 256 байт, входит область стека.

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

Прибор |jPSD325X располагает еще двумя блоками внешней относительно ядра 8032 SRAM: один блок емкостью 256 байт предназначен для хранения данных DDC. Другой блок SRAM емкостью 32 кбайт, находящийся в модуле PSD, может быть отображен в любом задаваемом пользователем пространстве адресов.

Дополнительными к архитектуре 8032 функциями модуля MCU являются:

• второй UART;

• 4-канальный 8-разрядный аналого-цифровой преобразователь (ADC);

• 5 каналов широтно-импульсного модулятора (PWM);

• блок супервизорных функций (детектор снижения напряжения питания — LVD и сторожевой таймер — WDT);

• два канала шины I2C (один канал совместно со специальным блоком SRAM емкостью 256 байт используется для организации канала отображаемых данных — Display Data Channel, DDC). Представление о средствах управления

встроенной периферией модуля MCU дает

--------------------www.finestreet.ru

карта регистров специальных функций (таблица 4).

Наличие дополнительных функций привело к тому, что в модуле МОИ был организован пятый порт 1/0 — порт 4, выполняющий функции как 1/0 PWM и БОС, так и 1/0 общего назначения. Архитектура и основные функции портов с 0 по 3 аналогичны архитектуре и функциям портов стандартных ми-

кроконтроллеров 8032 (порт 2 имеет только 4 вывода — с 0 по 3), однако, в связи с добавлением новых периферийных функций, альтернативные функции выводов портов изменились (рис. 2). Управление альтернативными функциями порта 1 организуются регистром P1SFS, за исключением таймера 2 и UART2, разрешение которых организуется их собственными регистрами конфигурации, управление альтернативными функциями порта 3 и порта 4 организуется с использованием регистров выбора специальных функций P3SFS и P4SFS. При сбросе выводы I/O по умолчанию устанавливаются в режим I/O общего назначения. Альтернативная функция разрешается, если соответствующий бит в регистре PxSFS установлен в состояние 1.

Отметим, что у приборов в 52-выводных корпусах порты 0 и 2 модуля MCU отсутствуют, отсутствует и порт A модуля PSD.

В приборах |jPSD325X к стандартному для архитектуры 8032 полнодуплексному приемопередатчику (UART) добавлен еще один (UART2) — полностью аналогичный первому. Первый порт соединен с выходами P3.0 (RX) и P3.1 (TX). Второй порт подсоединен

Таблица 4. Карта распределения памяти регистров специальных функций (БР1?) модуля МСУ

P8 PP

F0 b1 Регистр B FZ

EB UISTA1 Состояние прерыв. USB и!ЕЫ Разреш. прерыв. иБВ UCON0 Управл. Хтії иБВ ЕпсІрЮ иСОЖ Управл. ХтіІ иБВ ЕпСрИ иСО№ Управление иБВ USTA Состояние USB Endpt0 UADR Регистр адреса USB UDR0 Прием данных USB Endpt0 EF

E0 ACC1 Аккумулятор ІЖІ. Предделит. для логики иБВ UDTl Xmit данных USB Endptl UDT0 Xmit данных USB Endpt0 EZ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

DB SlCON1 управление DDC I2C Б1БТД Состояние РРС !2С БШДТ Сохранение данных ООС !2С Б1Д0Р Адрес ООС !2С S2CON Управл. шиной !2С S2STA Состояние шины I2C S2DAT Сохранение данных шины I2C S2ADR Адрес шины I2C DF

D0 PSW1 Слово состояния БІБЕТиР Установка ООС !2С (Б1) Б2БЕТиР Установка !2С (Б2) і^вир Буфер RДM ООС DDCDAT xmit данные DDC DDCADR Указатель адреса DDC DDCC0N Регистр управления DDC DZ

CB T2C0N' Управление таймером 2 Т2МОР Режим таймера 2 ЮДР2. Перезагр. таймера 2 младш. ЮДР2Н Перезагр. таймера 2 старш. ТІ2 Младш.байт таймера 2 TH2 Старш. байт таймера 2 CF

C0 P4' Порт 4 CZ

BB ip1 Приоритет прерыв. BF

B0 РЗ1 Порт З РБСШІ. Предделит0 младший РБСЮИ ПредделитО старший PSO.1L Предделиті младший РБШН Предделит1 старший IPA Приоритет прерыв. 2 BZ

AB ie1 Разреш. прерыв PWM4P Период PWM4 PWM4W Ширина импульса PWM4 WDKEY Ключ WDT AF

A0 Р2! Порт 2 PWMCON Полярность PWM PWM0 Скважн. PWM0 PWM1 Скважн. PWM1 PWM2 Скважн. PWM2 PWM3 Скважн. PWM3 WDRST Сброс WDT IEA Разреш. прерыв. 2 AZ

9B SCON Управл. UART БВир Буфер идет SCON2 Управл. иДРТ2 БВир2 Буфер иДРТ2 9F

90 pi1 Порт l Р1БРБ Выбор порта 1 Р3БРБ Выбора порта 3 Р4БРБ Выбора порта 4 ASCL Предделит. такт. ADC ADAT Регистр данных ADC AC0N Управление ADC 9Z

BB TCON1 Управл. тайм./сч. ТМОО Управл. режимом тайм./сч. ТЮ Таймер 0 младш. байт ТИ Таймер 1 младш. байт ТН0 Таймер 0 старш. байт THl Таймер l старш. байт BF

B0 P0' Порт 0 БР Указатель стека РРЬ Указатель данных старший ОРИ Указатель данных младший PC0N Управление потребл. BZ

113

Компоненты и технологии, № 6'2003

к выводам P1.2 (RX) и P1.3 (TX). Работа этих двух последовательных приемопередатчиков и средства управления обычными четырьмя режимами одинакова и управляется, соответственно, регистрами SCON и SCON2.

Модуль MCU приборов |jPSD325X оснащен 4-канальным 8-разрядным аналого-цифровым преобразователем (ADC) последовательного приближения. Аналоговое опорное напряжение подается на вывод AVREF. Каналы подключаются к схеме выборки-хранения мультиплексором, управляемым битами ADS0 и ADS1 регистра управления ACON. Результат преобразования сохраняется в регистре ADAT. Частота тактирования логики ADC должна быть порядка 6 МГц и настройка частоты тактирования организуется 8-разрядным предварительным делителем системного тактового сигнала ASCL. По завершении преобразования, отмечаемому установкой бита ADSF регистра ACON, может быть сформирован запрос прерывания INT1.

Отличительными особенностями блока PWM, которым оснащен модуль MCU, являются:

• четырехканальный 8-разрядный PWM-модуль (PWM 0-3) с предварительным 16-разрядным делителем;

• одноканальный 8-разрядный модуль PWM (PWM 4) с предварительным 16-разрядным делителем и с программируемыми частотой и шириной импульса;

• программируемая полярность PWM-выходов.

В четырехканальном модуле PWM 8-разрядный счетчик PWM считает по модулю 256, то есть от 0 до 255 включительно. Значение, сохраняемое в 8-разрядном счетчике, сравнивается с содержимым регистра специальных функций (PWM 0-3) соответствующего канала PWM. Полярность выходов PWM программируется и задается битом PWML регистра PWMCON. Если содержимое регистра PWM 0-3 больше значения счетчика, то соответствующий выход PWM устанавливается на высокий уровень (при PWML = 0). Если содержимое этого регистра меньше или равно значению счетчика, то соответствующий выход PWM устанавливается на низкий уровень (при PWML = 0). Следовательно, соотношение ширины импульса и длительности периода определяется содержимым соответствующего регистра специ-

альных функций PWM (PWM 0-3). Загружая соответствующий регистр специальных функций (PWM 0-3) состоянием 00Ь или ББИ, выход PWM можно постоянно удерживать, соответственно, на высоком или низком уровне (при PWML = 0). Выходной сигнал выводится через выводы 3, 4, 5 и 6 порта 4.

Четырехканальный PWM модуль оснащен 16-разрядным предварительным делителем 0, делящим частоту основного входного тактового сигнала до частоты сигнала PWM-модуля и обеспечивающим получение необходимой частоты повторения сигнала четырехканального PWM-модуля. Для хранения 16-разрядного значения деления используются регистры PSCL0L и PSCL0H (адреса Б1Ь и Б2Ь).

Частота повторения выхода PWM-модуля вычисляется по выражению:

fPWM8 = (^С/предделитель0) / (2 256)

и входная частота тактирования счетчика PWM = ^С/2 / (значение данных преддели-теля 0 + 1).

Программируемый канал PWM 4 позволяет сформировать на выходе PWM 4 (вывод 7 порта 4) сигнал с переменными шириной импульса и периодом. PWM 4 оснащен 16-разрядным предварительным делителем, 8-разрядным счетчиком, регистрами ширины (PWM4W) импульса и периода (PWM4P).

16-разрядный предварительный делитель 1 делит входной тактовый сигнал (^С/2) до желаемой частоты, поступающей на 8-разрядный счетчик канала PWM 4.

Входная частота тактирования счетчика PWM 4:

fPWM4 = (^с/2)/ (значение данных предделителя1 + 1)

При установке в регистре предварительного делителя 1 и PSCL1H (адреса Б4Ь

и Б3Ь)) значений 0, максимальная входная частота счетчика PWM4 равна ^С/2 и может достигать частоты 20 МГц.

Выход 8-разрядного счетчика свободного счета PWM 4 сравнивается с содержимым регистров сравнения, загружаемыми данными регистров ширины импульса (PWM4W, ЛБЬ) и периода (PWM4P, ЛЛЬ), задающими, соответственно, длительность импульса и период PWM. Если канал PWM 4 разрешен, значения

регистров загружаются в регистры компаратора и сравниваются с выходом счетчика. Если содержимое счетчика равно или больше значения регистра ширины импульса, то выход PWM 4 устанавливается на низкий уровень (при PWMP = 0). Если содержимое регистра периода равно счетчику PWM4, то счетчик очищается, и выход канала PWM 4 устанавливается в высокое логическое состояние (начало следующего импульса PWM).

Регистр периода не может иметь значение «00», и его содержимое всегда должно быть больше значения регистра ширины импульса.

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

Регистр PWMCON (биты 5 и 6) управляет разрешением/запретом и полярностью канала PWM 4.

Приборы |jPSD325X располагают двумя последовательными каналами I2C, каждый из которых поддерживает двухпроводную шину I2C, состоящую из линии данных (SDAx) и линии сигнала тактирования (SCLx), и предназначенные для организации:

• последовательного канала DDC-протокола — линии SDA1 и SCL1;

• последовательного канала обычного интерфейса I2C — линии SDA2 и SCL2.

Оба канала могут работать на выход по портам (порт 4 выводы 0 и 1 — линии SDA1 и SCL1, порт 3 выводы 6 и 7 — линии SDA2 и SCL2).

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

Последовательный I/O I2C выполняет полностью автономную обработку байтов и работает в четырех режимах:

• ведущего передатчика и ведущего приемника;

• ведомого передатчика и ведомого приемника.

Работа в этих четырех режимах организуется следующими регистрами специальных функций (SFR):

• SxCON — управляет обработкой байтов, работой в указанных четырех режимах, в режиме ведущего задает битами CR0~CR2 частоту тактирования;

• SxSTA — значения флагов данного регистра состояния могут быть использованы для запуска различных подпрограмм обслуживания, чем сокращается время ответа программного обеспечения и, следовательно, самой шины I2C;

• SxDAT — регистр сдвига данных как передаваемых, так и принимаемых. Первым принимается или передается MSB.

• SxADR — регистр адреса ведомого. Распознавание адреса ведомого выполняется встроенными аппаратными средствами. Кроме того, модуль I2C оснащен регистрами детектирования времени удержания

Компоненты и технологии, № 6'2003

SDA1

•«-

SCL1

DDC2B/DDC2AB

DDC2B+lnterface

Адрес монитора

S1ADR0

Адрес монитора

S1ADR1

I

Сдвиговый регистр

Логика арбитража

I

S1DAT

Генератор сигнала тактирования шины

SICON

Детектирование режима DDC1 / DDC2

X са Буфер RAM

Регистр хранения DDC1 *— о

DDCDAT 1

VSYNCes,

Передатчик DDC1

Инициирование синхронизации

ЕХ SW DDC1 DDC1 SWH MO

DAT ENB INT EN INT

INTR (от SISTA)

DDCCON

Ь-

RAMBUF

Указатель адреса

DDCADR

-►iNT

Рис. S. Блок-схема DDC-интерфейса

старта/останова и тактирования системы (S1SETUP и S2SETUP), обеспечивающими обнаружения момента старта/останова и возможность работы в широком диапазоне частот тактирования MCU.

Рекомендации для последовательных интерфейсов I2C I/O и I2C DDC приведены в DataSheet на приборы |jPSD325X, которые можно скачать с сайтов фирмы

STMicroelectronics (www.st.com/psd) или компании КТЦ-МК (www.cec-mc.ru).

Уже сейчас в офисе КТЦ-МК имеются переведенные на русский язык описания PSD-приборов, в том числе и микроконтроллеров серии |jPSD325X.

Канал отображаемых данных (Display Data Channel — DDC) предназначен для пересылки данных, отображаемых на мониторах, проекторах и в TV-применениях. Особенностями канала являются:

• совместимость с VESA стандартами DDC1 и DDC2B;

• встроенная SRAM данных DDC объемом 256 байт. За загрузку данных DDC в SRAM отвечает ядро 8032;

• полностью автоматическая работа в режимах DDC1 и DDC2B;

• работа канала DDC только в режиме ведомого;

• возможность программного прерывания;

• детектирование типа головной системы. Процедура детектирования соответствует спецификации канала данных отображения мониторов VESA (VESA Monitor Display Data Channel — DDC).

Основой модуля DDC являются интерфейс I2C и SRAM хранения данных DDC, что исключает потребность во внешней DDC PROM. Стандартные DDC-сигналы интерфейса могут быть направлены к вы-

водам порта 4^ет^ ^4.2), SDA ^4.0) и8^ (Г4.1)).

DDC-интерфейс обслуживается восемью регистрами специальных функций (SFR):

• RAMBUF, DDCCON, DDCADR, DDCDAT — регистры собственно DDC.

• S1CON, S1STA, S1DAT, S1ADR — регистры интерфейса I2C те же самые, что используются в шине РС

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Регистр DDCDAT — 8-разрядный регистр передаваемых в DDd-протоколе данных, поступающих из буфера RAMBUF. Регистр DDCADR — 8-разрядный регистр указатель адреса с возможностью пост-инкремента. После каждого обращения к регистру RAM-BUF (как программными средствами, так и аппаратными средствами DDC1-интерфейса) содержимое этого регистра увеличивается на единицу. Это происходит при работе в обоих протоколах: как в DDC1, так и в DDC2 (DDC2B, DDC2B + и DDC2AB). В регистре управления DDCCON битом Mode задается режим работы (DDC1 или DDC2B); бит SWENB в зависимости от установленного режима разрешает прерывание MCU для загрузки следующего байта передаваемых данных; бит DDC_AX определяет адресацию в режиме DDC2B; биты DDC1_Int и DDC1EN определяют работу прерываний в режиме DDC1; бит SWHINT устанавливается аппаратно при переключении DDC из режима DDC1 в режим DDC2b, разрешая прием ожидаемого прерывания; битом EX_DAT определяется используемый в SRAM объем (128 или 256 байт).

Протокол DDC1 является интерфейсом точка-точка, и при работе в этом протоколе монитор всегда находится в режиме «только передача». Протокол DDC2B разработан на основе интерфейса I2C фирмы Philips. Тем не менее, на уровне DDC2B головной PC зафиксирован как ведущий, а к монитору всегда обращаются как к ведомому. И ведущий, и ведомый могут работать как передатчик или приемник, но задание режима определяет ведущее устройство. В этом протоколе используется указатель адреса.

Структура интерфейса DDC показана на рис. 6.

Рис. б. Структура интерфейса DDC

е

Компоненты и технологии, № 6'2003

Аппаратные средства USB обеспечивают следующие характеристики:

• соответствуют спецификации USB Rev. 1.1;

• располагают встроенным SIE (механизм последовательного интерфейса), памятью FIFO и приемопередатчиком;

• работают на малой скорости (1,5 Мбит/с);

• поддерживают управление конечной точкой 0 и прерываниями конечных точек 1 и 2;

• частота тактирования USB должна быть 6 МГц (необходимо, чтобы частота тактирования MCU была 12, 24 или 36 МГц). Внешний аналоговый интерфейс — обычный встроенный приемопередатчик USB. Это сделано с тем, чтобы для интерфейса с физическим уровнем USB можно было использовать уровни напряжения, равные VDD стандартной логики.

Блок SIE — цифровой интерфейс (digital-front-end) модуля USB. Этот блок восстанавливает сигнал тактирования 1,5 МГц, распознает слово синхронизации USB, обрабатывает все USB-протоколы низкого уровня и выполняет контроль над ошибками. Схема восстановления тактирования битов восстанавливает тактовый сигнал из входящего потока данных USB и способна отслеживать джиттер и уход частоты согласно USB-спецификациям. Кроме того, SIE преобразует электрические сигналы USB в данные или сигналы, в зависимости от адреса устройства USB и оконечной точки USB. В соответствии с адресом данные USB направляются к адресованной оконечной точке интерфейса SIE. Передаваемые данные от этих аппаратных средств должны быть управляющего типа или прерыванием.

Адрес USB-устройства и разрешение оконечных точек программируются в заголовке конфигурации SIE.

Блок USB управляется посредством семи регистров, расположенных в области SFR:

• UADR — регистр адреса USB. Разрешает работу USB и задает адрес USB-устройства.

• UCON0 и UCON1 — регистры управления оконечными точками USB. Битами регистров разрешаются прием и передача, определяется количество передаваемых данных и пр.

• UCON2 — регистр управления USB. Разрешает и управляет принудительной остановкой оконечных точек 1 и 2.

• UIEN и UISTA — регистры разрешения прерывания и состояния прерывания соответственно;

• USTA — регистр состояния оконечной точки 0.

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

- передачи данных USB конечной точки 0 (UDT0);

- приема данных USB конечной точки 0 (UDR0);

- передачи данных USB конечной точки 1(UDT1).

По адресу E1h расположен 8-разрядный регистр предварительного делителя для USB (USCL). USCL должен быть загружен значением, обеспечивающим частоту тактирова-

ния USB в 6 МГц, рассчитываемую по выражению:

Входная частота тактирования USB =

(Fosc/2)/

(значение регистра предварительного делителя + 1),

где FOSC — входная частота тактирования MCU.

Примечание: USB работает с частотами тактирования MCU только 12, 24 или 36 МГц. Значения предварительного делителя для этих частот — 0, 1, и 2.

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

• внешнее прерывание INT0;

• прерывание по USART 2;

• прерывание по таймеру 0;

• прерывание по I2C;

• внешнее прерывание INT1 (или прерывание по ADC);

• прерывание по DDC;

• прерывание по таймеру 1;

• прерывание по USB;

• прерывание по USART;

• прерывание по таймеру 2.

Общая организация и выполнение прерываний аналогичны прерываниям 8032, в том числе и последовательность опроса при приеме прерываний с одинаковыми уровнями приоритета. Распределение уровней приоритета по периферийным функциям приведено в таблице 5.

Таблица 5. Уровни приоритета

Источник Уровни приоритета

Внешнее прерывание Int0 0 (самый высокий)

Второй USART 1

Таймер 0 2

Интерфейс I2C 3

Внешнее прерывание Int1 (прерывание по ADC) 4

DDC 5

Таймер 1 6

USB 7

Первый USART 8

Таймер 2+EXF2 9 (самый низкий)

Итак, мы вкратце рассмотрели «крупные» блоки модуля МОТ. Однако кроме этих блоков в модуле организована и такая «мелочь», как супервизорные функции, отсутствующие в традиционной архитектуре 8032, но без которых не обходится ни один современный микроконтроллер.

В приборах серии цPSD325X реализованы четыре способа организации сброса и инициирования прибора:

• через вывод входа внешнего сброса;

• встроенным блоком LVR;

• сигналингом сброса на ШВ-шине;

• посредством сторожевого таймера. Каждый источник сброса приводит к формированию активного сигнала внутреннего сброса микроконтроллерной системы в начальное состояние. CPU отвечает на этот сигнал выполнением процедуры внутреннего сброса и устанавливает внутренние регистры

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

Схема LVR формирует сигнал внутреннего сброса при снижении напряжения питания VDD ниже порога сброса (4±0,25 В — при напряжении питания 5 В и 2,5±0,2 В — при напряжении питания 3,3 В). Схема LVR обеспечивает гистерезис порядка 0,1 В и задержку подавления шума в 1 мс. После восстановления напряжения VDD до уровня выше порога сброса сигнал RESET останется действительным в течение 10 мс, прежде чем будет снят. При начальной подаче питания схема LVR разрешена (по умолчанию), но впоследствии может быть запрещена битом LVREN регистра PCON. Схема LVR продолжает работать и в режиме Idle и в режиме Powerdown.

Сторожевой таймер (WDT) состоит из 22-разрядного счетчика, бита сброса по сторожевому таймеру (WDRST) регистра SFR и регистра ключа сторожевого таймера (WDKEY).

Переполнение 22-разрядного счетчика происходит при достижении значения 4194304 (3FFFFFh). Приращение сторожевого таймера происходит с каждым машинным циклом. Таким образом, пользователь должен сбрасывать сторожевой таймер по крайней мере каждые 4194304 машинных цикла (1,258 секунды при 40 МГц). Для сброса сторожевого таймера пользователь должен записать в регистр WDRST значение, находящееся между 00h и 7Eh. Значение, записываемое в WDRST, загружается в 7 старших разрядов 22-разрядного счетчика. Этим пользователю предоставляется возможность достаточно гибко управлять установкой начального значения счетчика, задавая длительность периода срабатывания сторожевого таймера.

Запись в WDRST состояния 00h очищает счетчик. Сторожевой таймер управляется регистром ключа сторожевого таймера WDKEY. Сторожевой таймер блокирует только значение 01010101 (55h). Остальные сочетания битов оставляют сторожевой таймер разрешенным.

В режиме Idle сторожевой таймер и схема формирования сигнала сброса остаются активными.

Модуль PSD приборов серии |jPSD325X содержит необходимую для работы ядра 8032 конфигурируемую память программ и данных. Кроме того, модуль PSD располагает собственным набором портов I/O и PLD с набором макроячеек, обеспечивающих реализацию логики общего назначения.

Архитектура портов A, B, C, и D — программируемых портов I/O общего назначения, отличается от архитектуры портов I/O модуля MCU.

Модуль PSD связывается с модулем MCU посредством внутренней шины адреса и данных (AO-A15, DO-D7) и сигналов управления (RD, WR, PSEN, ALE, RESET). Пользователь задает конфигурацию PLD декодирования в пакете разработки PSDsoft и может отображать ресурсы в модуля PSD в любом пространстве адресов программ или данных.

Компоненты и технологии, № 6'2003

Функциональные возможности модуля PSD

• Flash-память емкостью 1 или 2 Мбит. Это ос- • новная Flash-память, разделенная на 8 блоков одинакового объема, к которым можно обращаться по задаваемым пользователем адресам.

• Вторичная (загрузочная) Flash-память емкостью 256 кбит. Вторичная память разделена на 4 блока равного объема, к которым • можно обращаться по задаваемым пользователем адресам. Вторичная память обеспечивает возможность одновременного • выполнения кода и модифицирования основной Flash-памяти.

• SRAM емкостью 256 кбит. Содержимое SRAM может быть защищено от потери питания подключением внешней батареи поддержки.

• Комплексная PLD (CPLD) с 16 макроячей- • ками выхода (OMC) и 24 макроячейками входа (IMC). CPLD может использоваться для эффективной реализации различных логических функций внутреннего и внешнего управления. Примерами такой логики могут быть конечные автоматы, загружаемые регистры сдвига, загружаемые счетчики, «склеивающая» логика и пр.

• PLD декодирования (DPLD), декодирующая адрес для выбора блоков памяти в модуле PSD.

• Конфигурируемые порты I/O (порты A, B,

C и D), которые могут быть использованы для выполнения следующих функций:

- входы-выходы MCU;

- входы-выходы PLD;

- выходы зафиксированных адресов MCU;

-I/O специальных функций;

-порты I/O могут быть конфигурированы как выходы с открытым стоком.

• Встроенный последовательный порт JTAG обеспечивает полное внутрисистемное программирование всего прибора (ISP). Посредством этого порта можно запрограммировать полностью пустой прибор как в условиях производства, так и в условиях эксплуатации.

• Внутренний регистр страниц, позволяющий расширить адресное пространство модуля MCU 8032 в 256 раз.

• Встроенный программируемый модуль управления питанием (PMU), поддерживающий режим энергосбережения Power-down. PMU может обнаружить отсутствие активных действий ядра 8032 и автоматически перевести модуль PSD в режим Power-down.

• Циклы стирания-записи:

- Flash-память — минимум 100000 циклов;

- PLD — минимум 1000 циклов; -Сохранность данных: минимум 15 лет

(для основной и вторичной Flash-памяти, PLD и битов конфигурации). Сигналами JTAG на порте C весь модуль PSD может быть запрограммирован или очищен без задействования MCU. Такая

возможность очень удобна на этапе разработки и, кроме того, позволяет программировать законченное устройство (систему) на последнем этапе производства, что исключает воздействие температуры пайки на записанные в память данные. Кроме того, основная Flash-память может быть внут-рисистемно запрограммирована и путем выполнения микроконтроллером алгоритма программирования, записанного во вторичную Flash-память или SRAM, что позволяет модифицировать код программы в условиях эксплуатации, используя любой из возможных каналов связи.

Вторичная память может быть запрограммирована тем же самым способом с выполнением алгоритма программирования из основной Flash-памяти. PLD или другие конфигурируемые блоки модуля PSD могут быть запрограммированы через ДАО-порт или программатором.

Отметим, что модуль PSD-приборов серии цPSD325X практически аналогичен прибору PSD серии цPSD813F2, описанному во второй части статьи, опубликованной в журнале «Компоненты и технологии» № 4'2003, поэтому отсылаю читателей к упомянутой части статьи.

е

i Надоели баннеры? Вы всегда можете отключить рекламу.