Компоненты и технологии, № 6'2003
Периферийные модули
контроллеров цифровой обработки сигналов dsPlC30F
Компания Microchip начинает выпуск нового семейства 16-разрядных Flash-микроконтроллеров с поддержкой команд цифровой обработки сигналов dsPIC30F. Высокое быстродействие в 30 MIPS (миллионов операций в секунду) и эффективная система команд позволяет использовать контроллеры в сложных системах реального времени. Ядро dsPIC30F построено по 16-разрядной модифицированной гарвардской архитектуре с расширенной системой команд, включающей команды поддержки цифровой обработки сигналов (DSP). Процессорное ядро имеет 24-разрядные команды, которые выполняются за один машинный цикл (4 периода тактовой частоты), за исключением команд деления, переходов, команд пересылки данных из регистра в регистр и табличных команд. Программный счетчик позволяет адресовать до 4 Мбайт программной памяти (4 Мх24 бит).
Илья Афанасьев
microchip@gamma.spb.ru
истема команд ядра dsPIC30F имеет два класса команд: микроконтроллерные инструкции и команды цифровой обработки сигналов. Оба этих класса равноправно интегрированы в архитектуру контроллера и обрабатываются одним ядром.
В контроллерах dsPIC поддерживаются различные типы адресации, а система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня С.
Память данных контроллеров dsPIC может адресоваться как 32 кслов (64 кбайт) и разбита на два
блока, обозначаемых как X и Y память данных. Каждый блок памяти данных имеет свой собственный независимый модуль генерации адресов (Address Generation Unit — AGU). Х-AGU поддерживает бит-реверсивную адресацию для упрощения ввода или переупорядочения выходных данных для построения алгоритмов быстрого преобразования Фурье (FFT).
Ядро DSP контроллера имеет 40-разрядное АЛУ и поддерживает команды умножения 17x17 за один цикл, имеет два 40-разрядных аккумулятора и 40-битный сдвиговый регистр (позволяет сдвигать данные до 15 бит вправо и до 16 бит влево за один цикл).
Таблица 1. Микроконтроллеры dsPIC30F общего применения
Контроллер Число выводов Память программ байт инструкций ОЗУ байт ЕЕПРОМ байт Таймер 16 бит CCP/PWM Интерфейс кодека АЦП 12 бит Другая периферия
dsPIC30F3014 40/44 24 K 8 K 2048 1024 3 2 - 13 2 UART, SPI, I2C
dsPIC30F4013 40/44 48 K 16 K 2048 1024 5 4 AC'97, I2S 13 2 UART, SPI, I2C, CAN
dsPIC30F5011 64 66 K 22 K 4096 1024 5 8 AC'97, I2S 16 2 UART, 2 SPI, I2C, 2 CAN
dsPIC30F6011 64 132 K 44 K 6144 2048 5 8 - 16 2 UART, 2 SPI, I2C, 2 CAN
dsPIC30F6012 64 144 K 48 K 8192 4096 5 8 AC'97, I2S 16 2 UART, 2 SPI, I2C, 2 CAN
dsPIC30F5013 80 66 K 22 K 4096 1024 5 8 AC'97, I2S 16 2 UART, 2 SPI, I2C, 2 CAN
dsPIC30F6013 80 132 K 44 K 6144 2048 5 8 - 16 2 UART, 2 SPI, I2C, 2 CAN
dsPIC30F6014 80 144 K 48 K 8192 4096 5 8 AC'97, I2S 16 2 UART, 2 SPI, I2C, 2 CAN
Таблица 2. Микроконтроллеры dsPIC30F для систем измерения
Контроллер Число выводов Память программ байт инструкций ОЗУ байт ЕЕПРОМ байт Таймер 16 бит CCP/PWM АЦП 12 бит Другая периферия
dsPIC30F2011 18 12 K 4 K 1024 0 3 2 8 UART, SPI, I2C
dsPIC30F3012 18 24 K 8 K 2048 1024 3 2 8 UART, SPI, I2C
dsPIC30F2012 28 12 K 4 K 1024 0 3 2 10 UART, SPI, I2C
dsPIC30F3013 28 24 K 8 K 2048 1024 3 2 10 2 UART, SPI, I2C
106
- www.finestreet.ru -
Компоненты и технологии, № 6'2003
Таблица 3. Микроконтроллеры dsPIC30F для систем управления приводом
Контроллер Число выводов Память программ байт инстр. ОЗУ байт ЕЕПРОМ байт Таймер CCP/ 16 бит PWM Motor control PWM АЦП 10 бит Квадр. энкодер Другая периферия
dsPIC30F2010 28 12 K 4 K 512 1024 3 4/2 6 6 да UART, SPI, I2C
dsPIC30F3010 28 24 K 8 K 1024 1024 5 4/2 6 6 да UART, SPI, I2C
dsPIC30F4012 28 48 K 16 K 2048 1024 5 4/2 6 6 да UART, SPI, I2C, CAN
dsPIC30F3011 40/44 24 K 8 K 1024 1024 5 4/4 6 9 да 2 UART, SPI, I2C
dsPIC30F4011 40/44 48 K 16 K 2048 1024 5 4/4 6 9 да 2 UART, SPI, I2C, CAN
dsPIC30F5015 64 66 K 22 K 2048 1024 5 4/4 8 16 да UART, 2 SPI, I2C, CAN
dsPIC30F6010 80 144 K 48 K 8192 4096 5 8/8 8 16 да 2 UART, 2 SPI, I2C, 2 CAN
Микроконтроллеры dsPIC30F делятся на три семейства: контроллеры общего назначения, контроллеры для систем управления приводом и контроллеры для обработки сигналов датчиков. Основные параметры контроллеров этих трех семейств приведены в таблицах 1, 2 и 3.
Широкая гамма периферийных модулей позволяет получать информацию и управлять внешними устройствами. В зависимости от семейства контроллеры имеют такие модули, как таймеры, модули захвата/срав-нения/ШИМ, специализированные модули ШИМ для управления электроприводом, интерфейс квадратурного энкодера, 10- и 12разрядный АЦП, интерфейсы USART, SPI, I2C, DCI, CAN.
Многие модули или их отдельные функции впервые представлены в контроллерах компании Microchip. Рассмотрим более подробно назначение и особенности функционирования отдельных периферийных устройств.
Все микроконтроллеры dsPIC30F имеют несколько 16-разрядных таймеров, число которых может быть разным в зависимости от типа контроллера. Эти таймеры имеют обозначения Timerl, Timer2, Timer3 и т. д. Некоторые из таймеров могут работать совместно как 32-разрядные таймеры. Все 16-разрядные таймеры, присутствующие в dsPIC30F, функционально идентичны. Все они делятся на три функциональные группы: А, В и С.
Таймер типа А (обычно это Timer1) присутствует в большинстве контроллеров dsPIC30F. Таймер типа А может работать с внешним кварцем 32 кГц или в асинхронном режиме с внешним источником тактовых импульсов. Свойства таймера типа А дают возможность «пробуждать» контроллер из режима SLEEP (так как таймер может работать от внешнего асинхронного источника), а оптимизация тока потребления для работы с внешним кварцем на 32768 Гц позволяет организовывать на его основе микропотребляющие часы реального времени (RTC).
Таймер типа B (обычно это Timer2 и Timer4) присутствует в большинстве контроллеров dsPIC30F. Таймер типа В может каскадироваться с таймером типа С для создания 32-разрядного таймера. Синхронизация тактов для таймера В осуществляется после логики предделителя.
Таймер типа С (обычно это Timer3 и Timer5) может каскадироваться с тайме--------------------www.finestreet.ru-
ром типа В для создания 32-разрядного таймера. В режиме сравнения такой таймер может являться инициатором автоматического запуска аналого-цифрового преобразователя (АЦП).
Таймеры в контроллерах dsPIC могут быть сконфигурированы для работы с внешним входом разрешения счета. В этом случае счет таймера начинается одновременно с установлением высокого уровня на внешнем входе и продолжается до изменения состояния входа или совпадения значения таймера с регистром периода.
Помимо обычных модулей широтно-импульсной модуляции (ШИМ) в контроллерах dsPIC существуют специализированные модули, которые призваны облегчить формирование многоканальных синхронизированных импульсов ШИМ для систем управления электроприводом и преобразователей мощности. С помощью специализированного модуля MCPWM (MCPWM — ШИМ для управления приводом) можно управлять следующими устройствами:
• 3-фазными индукционными двигателями переменного тока (ACIM);
• 3-фазными шаговыми двигателями с реактивным ротором, вентильными реактивными электродвигателями (Switched Reluctance Motor);
• бесколлекторными двигателями постоянного тока (BLDC);
• бесперебойными источниками питания (UPS).
Модули MCPWM имеют следующие особенности:
• Два вывода на каждый MCPWM-генератор.
• Комплементарное или независимое управление для каждой пары выходов.
• Аппаратная реализация «мертвого времени» для комплементарного режима.
• Программируемая полярность выходных импульсов.
• Множество режимов формирования выходных импульсов:
а) ШИМ с выравниванием по фронту;
б)центрированная ШИМ;
в) центрированная ШИМ с двойным обновлением;
г) режим одиночного импульса.
• Аппаратный вход аварийной ошибки драйвера (FAULT) с программируемой функцией.
• Возможность синхронизации измерений АЦП с формируемой ШИМ.
• Возможность индивидуального разрешения каждого выхода ШИМ.
В dsPIC30F может быть два варианта MCPWM-модуля в зависимости от типа контроллера. Модуль с 8-канальной ШИМ обычно присутствует в контроллерах с 64 или более выводами. Модуль MCPWM с 6 каналами реализован в устройствах с меньшим числом выводов.
MCPWM-модуль с 6 выводами используется в одно- и трехфазных приложениях управления мощностью, в то время как модуль с 8-канальным ШИМ может управлять четырехфазными двигателями. Модуль 8-канального ШИМ обеспечивает большую функциональность, так как поддерживает два входа FAULT и два программируемых значения «мертвого времени».
Еще один модуль, служащий для облегчения задач управления электроприводом, — это квадратурный энкодер, который используется как аппаратный детектор положения и направления вращения электропривода. Квадратурные энкодеры позволяют построить замкнутую систему управления во многих задачах в системах управления двигателем.
Forward Travel
,1 Cycle,
"u_m
►INDX
01!00 ! 10 ! 11
Reverse Travel
QEA______Г
’ QEB
1______Г
“►INDX
11 ! 10! 00! 01
Рис. 1. Схема работы энкодера
Є
Компоненты и технологии, № 6'2003
Типичный энкодер представляет собой колесо, размещенное на валу двигателя и модуль детектора, определяющий положение колеса. Как правило, энкодер имеет три вывода: фаза A, фаза B и индексный выход, информация с которых может быть декодирована для получения информации о вращении вала двигателя, включая скорость и направление вращения.
В контроллерах dsPIC30F реализован интерфейс связи с квадратурным энкодером, который содержит логику декодирования и интерпретации сигналов энкодера и 16-битный реверсивный счетчик для подсчета числа импульсов. Счетчик энкодера при необходимости может быть использован как таймер или счетчик общего назначения. Модуль интерфейса квадратурного энкодера содержит программируемый аппаратный цифровой фильтр для подавления дребезга входных сигналов, что обеспечивает высокую точность определения параметров движения вала двигателя.
Во всех контроллерах dsPIC30F существует модуль аналого-цифрового преобразователя (АЦП). В зависимости от типа устройств и назначения dsPIC30F имеют 10- или 12-разрядный АЦП.
АЦП последовательного приближения с разрядностью 10 бит имеет следующие особенности:
• Скорость преобразования до 500 тыс. преобразований в секунду.
• До 16 аналоговых входов.
• Возможность подключения внешнего опорного напряжения.
• Четыре дифференциальных устройства выборки-хранения (УВХ).
• Возможность одновременного (до 4 каналов) или последовательного измерения.
• Режим автоматического сканирования каналов.
• Выбираемый источник запуска старта преобразований.
• Буфер результатов измерений на 16 значений.
• Возможность работы в режиме SLEEP и IDLE.
Структурная схема 10-разрядного АЦП показана на рис. 2. Аналоговые входы контроллера через мультиплексор подключаются к 4 устройствам выборки-хранения (УВХ). АЦП может быть сконфигурировано для ра-
боты с одним, двумя или четырьмя УВХ. Мультиплексор позволяет подключать к УВХ до двух входных сигналов, тем самым предоставляется возможность производить измерения дифференциальных или униполярных сигналов.
АЦП подключен к буферу результатов, который представляет собой двухпортовое ОЗУ на 16 значений. Результат 10-разрядного преобразования при считывании из буфера может быть преобразован в четыре различных формата представления данных. Буфер АЦП позволяет накапливать результаты измерений для последующей обработки программой пользователя. Для удобства буфер может быть сконфигурирован как один буфер на 16 значений или как два буфера по 8.
Прерывание от АЦП может устанавливаться после каждого измерения или после каждого 2-го, 3-го, ... , 16-го преобразования, что позволяет считывать результаты из буфера по мере его заполнения.
В контроллерах dsPIC реализовано несколько вариантов последовательности выборка-преобразование. Возможен вариант с одновременным захватом УВХ до 4 входных аналоговых сигналов с последующим последовательным преобразованием их в цифровой код или автоматическое преобразование последовательно нескольких каналов. Во втором случае после выборки и преобразования 1-го канала запускается выборка и преобразование 2-го канала и т. д.
Запуск преобразований АЦП может инициироваться программно, изменением состояния внешнего вывода контроллера, при совпадении значения Таймера 3 (режим сравнения) или завершением интервала ШИМ в модуле MCPWM.
Отличие 12-разрядного АЦП заключается в наличии только одного УВХ и уменьшении скорости преобразования до 100 тыс. преобразований в секунду (рис. 3).
АЦП в контроллерах семейства dsPIC предоставляют широкие возможности для осуществления измерений в сложных системах управления, измерений и обработки сигналов.
Последовательный интерфейс I2C предназначен для связи с различными устройствами (EEPROM-памятью, часами реального времени, драйверами LCD-дисплеев и т. п.) или другими контроллерами.
108
Модуль I2C в dsPIC поддерживает режим ведомого (SLAVE), ведущего (MASTER) а также режим с несколькими ведущими устройствами (MULTI-MASTER). Реализована поддержка 7- и 10-битной адресации устройств, а также поддержка скоростей шины 100 и 400 кГц.
В контроллерах содержатся независимые блоки поддержки ведомого и ведущего. Когда активна логика MASTER-блока, SLAVE-блок остается активным для определения состояния шины и приема своих сообщений в режиме одного ведущего или сообщений другого ведущего в режиме MULTI-MASTER. Модуль I2C в режиме с несколькими ведущими обеспечивает арбитраж и определение конфликтных ситуаций, что исключает потерю сообщений. Собственный генератор скорости передачи данных не требует для своей работы дополнительных ресурсов контроллера.
В dsPIC-контроллерах общего назначения интегрирована поддержка интерфейсов связи DCI (Data Converter Interface). Данный интерфейс реализован во многих звуковых кодерах-декодерах (кодеках), АЦП и ЦАП. DCI поддерживает интерфейсы: I2S, AC-link (AC-'97) и последовательную синхронную передачу фреймов (Framed Synchronous Serial Transfer).
Многие кодеки, которые используются в аудиоприложениях, поддерживают скорость выборок от 8 до 48 кГц. Модуль DCI автоматически определяет временные параметры интерфейса кодека.
Длина слова в DCI может быть запрограммирована до 16 бит. Однако часть кодеков имеет длину слова более 16 бит. Поддержка длинных слов в dsPIC реализуется из нескольких 16-битных слотов. Эта операция прозрачна для пользователя и данные располагаются последовательно в регистрах контроллера. Модуль DCI поддерживает до 16 временных слотов в фрейме данных, максимальная длина фрейма 256 бит.
Благодаря высокому быстродействию (тактовая частота до 120 МГц), мощной системе команд и наличию большого числа разнообразных периферийных устройств, 16-разрядные контроллеры Microchip семейства dsPIC30F найдут широкое применение в системах контроля, управления и обработки звука. Подробная документация на контроллеры dsPIC30F доступна на сайте Microchip www.microchip.com.
- www.finestreet.ru----------------