Научная статья на тему 'Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments'

Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments Текст научной статьи по специальности «Компьютерные и информационные науки»

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

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

Несмотря на значительно возросшую производительность микроконтроллеров, существует ряд задач, когда одно ядро не справляется с их решением. К таким задачам относится реализация сложных алгоритмов управления. При этом часто необходимо проводить одновременную обработку прерываний от модулей обмена данными, наблюдение за объектом управления и обсчет алгоритмов управления. При решении подобных задач приходится использовать два микроконтроллера: один для обмена данными (как правило, MCU общего назначения) и второй для решения задач управления (как правило, DSP). При таком подходе могут возникать серьезные проблемы с синхронизацией потоков данных между микроконтроллерами, вынуждающие использовать дорогостоящие мультипортовые ОЗУ для обмена данными и ПЛМ для квитирования. Микроконтроллеры F28M35x семейства Concerto корпорации Texas Instruments (TI) стали долгожданным решением для разработчиков, занимающихся проектированием систем интеллектуального управления.

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

Текст научной работы на тему «Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments»

Новые двухъядерные микроконтроллеры

для систем управления F28M35x семейства Concerto корпорации Texas Instruments

Андрей САМОДЕЛОВ

Andrew.Samodelov@mart.ru

Несмотря на значительно возросшую производительность микроконтроллеров, существует ряд задач, когда одно ядро не справляется с их решением. К таким задачам относится реализация сложных алгоритмов управления. При этом часто необходимо проводить одновременную обработку прерываний от модулей обмена данными, наблюдение за объектом управления и обсчет алгоритмов управления. При решении подобных задач приходится использовать два микроконтроллера: один для обмена данными (как правило, MCU общего назначения) и второй — для решения задач управления (как правило, DSP). При таком подходе могут возникать серьезные проблемы с синхронизацией потоков данных между микроконтроллерами, вынуждающие использовать дорогостоящие мультипортовые ОЗУ для обмена данными и ПЛМ — для квитирования. Микроконтроллеры F28M35x семейства Concerto корпорации Texas Instruments (TI) стали долгожданным решением для разработчиков, занимающихся проектированием систем интеллектуального управления.

Введение

При разработке микроконтроллеров семейства Concerto корпорация Texas Instruments пошла по пути объединения на одном кристалле подсистемы обмена данными (главной подсистемы), подсистемы управления и общей подсистемы. Общая подсистема состоит из блока разделяемых ресурсов для межпроцессорного обмена данными и многоканального блока обработки аналоговых сигналов для слежения за состоянием объекта управления.

В семейство Concerto входят многоядерные микроконтроллеры (MCU) типа система на кристалле (SoC) с независимыми подсистемами обмена данными и управления в реальном масштабе времени.

Семейство Concerto состоит из трех серий:

• серии F28M35Exxx микроконтроллеров начального уровня с тактовой частотой ядер C28x/CORTEX-M3 60/60 МГц;

• серии F28M35Mxxx микроконтроллеров среднего уровня с тактовой частотой ядер C28x/CORTEX-M3 75/75 МГц (базовое подсемейство);

• серии F28M35Hxxx высокопроизводительных микроконтроллеров с тактовой частотой ядер C28x/CORTEX-M3 150/75 или 100/100 МГц.

Разница между микроконтроллерами различных серий с одинаковой маркировкой состоит только в тактовой частоте. Все остальные функциональные возможности у них одинаковы. Внутри серий микроконтроллеры отличаются объемом Flash-памяти, ОЗУ и наличием или отсутствием некоторых коммуникационных модулей.

Описываемые в статье микроконтроллеры F28M35x имеют в своем составе 2 ядра: стандартный для промышленных приложений обмена данными процессор (CPU) ARM Cortex-M3 (далее по тексту Cortex-M3) и мощный процессор цифровой обработки сигналов (DSP) TMS320C28x (далее по тексту C28x).

На рис. 1 показана блок-схема микроконтроллеров семейства Concerto.

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

Главная подсистема основана на 32-разрядном ядре ARM Cortex-M3 (5) и обладает широким набором традиционных периферийных модулей для обмена данными, включая Ethernet 1588, USB OTG + PHY, CAN, UART, SSI, I2C и интерфейс внешней периферии.

Управляющая подсистема реального времени основана на запатентованном 32-раз-

рядном ядре C28x для операций с плавающей точкой от TI. В состав подсистемы входят прецизионные управляющие периферийные модули, включая ШИМ (ePWM) с защитой от сбоев, квадратурные энкодеры (eQEP) и блоки захвата (eCAP), функции которых хорошо известны по реализациям в семействах C2000 Piccolo (6) и C2000 Delfino (7) компании TI. Кроме того, микроконтроллер C28 расширен блоком, аппаратно реализующим вычисление функций Витерби, операции с комплексными числами и вычисление контрольных сумм (VCU), которые используют эффективные алгоритмы вычислений.

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

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

Л Л

1,8 В 1,2 В

VREG VREG

BOOT ROM

10 ADC inputs

TEMP SENS

ADC_1 MODULE

fi—N V-/

mdma

pDMABUS

BUS BRIDGE

О

COMP INPUTS

comp

inputs

Cortex-M3 CPU

SECURE FLASH

512KB (ECC)

REGS ONLY

l-CODE BUS D-CODE BUS

INTER-PROCESSOR COMMUNICATION

«

r/l—N "4—/

Cortex-M3 SYSTEM BUS

SECURE 01 RAM 8KB (ECC)

SECURE CO RAM 8KB (ECC)

RAM 8KB

(parity)

RAM 8KB

(parity)

А ЛЛ

iL

iL

so S1 S2 S3 S4 S5 S6 S7

8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB

MTOC MSG RAM (parity) 2KB

CTOM MSG RAM (parity) 2KB

INTER-PROCESSOR COMMUNICATION

S0-S7 SHARED RAM (parity)

C28x DMA BUS

т^А"

COMP INPUTS

10 ADC INPUTS

ADC_2 MODULE

A—К V-/

C28x DMA

ANALOG SUBSYSTEM

C28x MEMORY BUS

С28х

С28х CPU С28х

VCU I « I FPU

pf3

66 PINS (TOTAL)

BOOT ROM

SECURE FLASH

512KB (ECC)

SECURE L1 RAM 8KB (ECC)

SECURE L0 RAM 8KB (ECC)

RAM 8KB (parity)

RAM 8KB (parity)

RAM 2KB

(ecc)

RAM 2KB

(ECC)

Рис. 1. Блок-схема микроконтроллеров Concerto

Блок сброса отвечает на немаскируемое прерывание сброса от сторожевого таймера NMI WDT, внешний сброс и другие сигналы о критических состояниях и переводит процессорные подсистемы и остальные блоки микросхемы в известное начальное состояние. Для обеспечения безопасности хранения и передачи данных внутри микроконтроллера используются коды коррекции ошибок (ECC), контроль четности (Parity) и коды защиты памяти. Для защиты Flash-памяти микроконтроллера от несанкционированного доступа извне можно использовать 128-битный пароль.

Хотя главная и управляющая подсистемы имеют каждая свою локальную память и собственный набор периферийных модулей, они также могут совместно использовать данные и сигналы посредством блока межпроцессорной синхронизации и разделяемой памяти. Кроме того, обе подсистемы имеют совместный доступ к высокопроизводительной аналоговой подсистеме через общую шину аналогового интерфейса (Analog Common Interface Bus, ACIB).

Аналоговая подсистема состоит из двух 12-разрядных АЦП с 16 входными каналами и 6 аналоговых компараторов.

В таблице приведены особенности микроконтроллеров серии F28M35Exxx.

Перейдем к детальному рассмотрению основных функциональных блоков микроконтроллеров серии F28M35x семейства Concerto.

Главная подсистема

Главная подсистема состоит из ядра Cortex-M3, блока прямого доступа к памяти |iDMA, контроллера вложенных векторных прерываний NVIC, периферийных модулей Cortex-M3 и локальной памяти,

Таблица. Особенности микроконтроллеров F28M35Exxx

Характеристики M20B M20C M22B M22C M32B M32C M50B M50C M52B M52C

Процессор

Частота, МГц (C28x/CM3) 60/60

FPU + + + + + + + + + +

VCU + + + + + + + + + +

DMA + + + + + + + + + +

Память

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

Загрузочное ПЗУ, кбайт 64

ОЗУ, кбайт 72 72 136 136 136 136 72 72 136 136

Flash, кбайт 512 512 512 512 768 768 1024 1024 1024 1024

Интерфейсы управления

ШИМ, каналов 24

ШИМ высокого разрешения 16

Таймеры 25

Каналы захвата событий 6

0ЕР/0Е1 3

АЦП, разрешение 2x12 разрядов

АЦП, каналов 20

АЦП, производительность MSPS 5,8

Компараторы 6

Порты обмена данными

USB(OTG) - 1 - 1 - 1 - 1 - 1

ENET - + - + - + - + - +

SPI 5

SCI 6

CAN 2

I2C 3

McBSP 1

Прочее

Тактовые генераторы 2

Линии ввода/вывода 64

Напряжение питания линий ввода/вывода, В 3,3/3,3

Тип корпуса 144HTQFP

Температурный диапазон, °С -40... +125

Примечание. В первой строке таблицы даны только окончания наименований микроконтроллеров. Таким образом, окончание М32С будет соответствовать полному наименованию F28M35M32C.

содержащей до 64 кбайт загрузочного ПЗУ, до 512 кбайт Flash-памяти с ECC, до 32 кбайт ОЗУ с ECC-контролем четности и до 2 кбайт ОЗУ сообщений IPC. Ядро Cortex-M3 и блок |iDMA имеют доступ к управляющей подсистеме через разделяемые ресурсы (канал межпроцессорного обмена данными — IPC, ОЗУ сообщений, разделяемое ОЗУ) и обмениваются данными с периферийными модулями аналоговой подсистемы через шину ACIB. Кроме того, главная подсистема может принимать сигналы от блока NMI и посылать сигналы в блок сброса.

На рис. 2 показана структура главной подсистемы микроконтроллеров Concerto.

Блок микроконтроллера Cortex-M3

32-разрядный процессор Cortex-M3 имеет высокую производительность, быструю детерминированную реакцию на прерывания и доступ к различным периферийным модулям для обмена данными (включая Ethernet и USB). В состав ядра Cortex-M3 входит блок защиты памяти (MPU), который обеспечивает привилегированный режим работы для защищенных операционных систем. Прилегающий к MPU мост между шинами маршрутизирует программные инструкции и данные от шин I-CODE (выборка инструкций и векторов) и D-CODE (выборка данных

и доступ для отладки), которые подключены к загрузочному ПЗУ и к Flash-памяти соответственно. Другие данные обычно передаются через системную шину Cortex-M3, подключенную к локальному ОЗУ. Системная шина подключена также к блоку разделяемых ресурсов (который доступен и для управляющей подсистемы) и, через шину ACIB, к аналоговой подсистеме. Другой мост между шинами разрешает доступ к периферийным модулям главной подсистемы посредством шины APB или шины AHB, как со стороны системной шины CPU Cortex-M3, так и со стороны шины |iDMA.

Большинство прерываний к CPU Cortex-M3 поступает от блока NVIC, который управляет запросами от периферийных модулей и устанавливает приоритет обработки прерываний. Также имеются исключительные состояния (исключения), вырабатываемые самим CPU Cortex-M3, которые могут возвращаться в Cortex-M3 как прерывания, после размещения их, согласно приоритетам, между другими запросами внутри NVIC. В дополнение к программируемым уровням приоритетов прерываний имеются три типа прерываний с фиксированным уровнем приоритета. Наивысший уровень приоритета, -3, назначен для прерываний M3PORRST и M3SYSRST от блока сброса. Следующий наивысший уровень приоритета, -2, назна-

чен прерыванию M3NMIINT, которое поступает от блока NMI. Прерыванию M3HRDFLT (Hard Fault, аппаратный сбой) назначен уровень приоритета -1, и оно указывает на наличие аппаратных проблем, таких как пропадание тактового сигнала, в одном из периферийных модулей.

Процессор Cortex-M3 имеет два режима пониженного энергопотребления: режим сна (Sleep) и режим глубокого сна (Deep Sleep).

Модули DMA и NVIC Cortex-M3

Модуль |iDMA Cortex-M3 предназначен для передачи данных между периферийными модулями и/или памятью без участия со стороны CPU Cortex-M3.

Блок NVIC управляет назначением приоритетов и обработкой прерываний для CPU Cortex-M3.

Для координации запросов на обмен данными с помощью |iDMA периферийные модули Cortex-M3 используют сигналы REQ/DONE. Если канал DMA разрешен для использования этим периферийным модулем, то сигналы REQ/DONE, формируемые периферийным модулем, будут запускать обмен данными. После окончания обмена формируется запрос IRQ, который может быть передан от блока ^DMA к блоку NVIC, чтобы информировать CPU Cortex-M3 о завершении обмена данными. Если канал DMA не разрешен для этого периферийного модуля, то сигналы REQ/DONE будут непосредственно формировать запросы IRQ к блоку NVIC. В результате обмен данными будет осуществляться под управлением CPU Cortex-M3. Для периферийных модулей, которые не поддерживаются в блоке |iDMA, запросы IRQ передаются непосредственно в блок NVIC, минуя блок DMA. Это справедливо для обоих сторожевых таймеров (WDT0 и WDT1), сторожевого таймера NMI WDT, CAN-контроллера, модуля I2C и модулей АЦП, генерирующих прерывания ADCINT [8:1] от аналоговой подсистемы. Сторожевой таймер с немаскируемым прерыванием (NMI WDT) не посылает сигналов ни в блок |iDMA, ни в блок NVIC (только в блок сброса).

Локальные периферийные модули Cortex-M3

В состав локальных периферийных модулей Cortex-M3 входят 2 сторожевых таймера (WDT0 и WDT1), сторожевой таймер с немаскируемым прерыванием NMI WDT, 4 таймера общего назначения, 4 модуля SSI, 2 CAN-контроллера, 5 UART, 2 модуля I2C, модуль Ethernet, модуль USB + PHY, интерфейс внешней периферии (EPI) и блок вычисления контрольных сумм (|iCRC). Модули USB и EPI доступны через шину AHB. Остальные периферийные модули доступны через шину APB. Доступ к шинам APB и AHB осуществляется через системную шину CPU или шину |iDMA посредством моста.

FIXED

PRIORITY

INTERRUPTS

NVIC

(NESTED VECTORED INTERRUPT CONTROLLER)

CTOM IPC (4:1)

FLSINGER APB BUS (REG ACCESS ONLY) ■

IPC REGS

S0-S7 SHARED RAM (parity)

MTOC MSG RAM

(parity)

LOCAL MEMORY

CTOM MSG RAM (parity)

7V"

BOOT ROM

RAMSINGERR M3uDMABUS

M3 CPU

SYS TICK DBG MONITOR USAGE FAULT SVCALL PENDING SV

PROGRAMMABLE PRIORITY INTERRUPTS

MEM MNGMT

SECURE FLASH (ECC)

SECURE C0/C1 RAM (ECC)

M3 SYSTEM BUS

C2/C3 RAM (parity)

MPU/ BRIDGE

DATA

INSTRUCTION

SHARED RESOURCES

D-CODE BUS

__

C28SUBSYSTEM

RAMUNCERR CERR FLASHUNCERR

BUS CNTRL/FAULT LOGIC

RAMACCVIOL RAMUN

Рис. 2. Структура главной подсистемы F28M35x

Процессор Cortex-M3 имеет полный доступ ко всем периферийным модулям, в то время как блок |iDMA — к большинству из них, за исключением ^CRC, WDT0, WDT1, NMI WDT, CAN и I2C. Периферийные модули Cortex-M3 подключаются к выводам микросхемы Concerto через блок мультиплексора GPIO_MUX1. Большинство периферийных модулей может генерировать сигналы для блоков |iDMA и/или NVIC.

Блок WDT принимает сигнал M3SWRST от NVIC (запускается программно) и отправляет запросы на сброс M3WDRST [1:0] в блок сброса. Блок NMI WDT принимает сигнал M3NMI от блока NMI и посылает запрос на прерывание M3NMIRST в блок сброса.

Локальная память Cortex-M3

Локальная память включает в свой состав загрузочное ПЗУ (Boot ROM), защищенную Flash-память с коррекцией ошибок (ECC), защищенное ОЗУ C0/C1 (Secure C0/C1 RAM) с ECC и ОЗУ C2/C3 (C2/C3 RAM) с контролем четности. Загрузочное ПЗУ и Flash-память доступны через обе шины — I-CODE и D-CODE. К регистрам Flash-памяти может

иметь доступ также CPU Cortex-M3 через шину APB. Все области локальной памяти доступны для CPU Cortex-M3. ОЗУ C2/C3 RAM доступно также для блока |ЮМА.

При доступе к локальной памяти могут генерироваться два типа сигналов коррекции данных: неисправимая ошибка и одиночная ошибка. Сигналы о неисправимых ошибках (включая сигналы об ошибках в разделяемой памяти) создают исключения сбоя на шине (Bus Fault Exception), поступающие в CPU Cortex-M3. Сигналы о менее критичных одиночных ошибках поступают в блок NVIC, где они могут приводить к генерации маскируемых прерываний для CPU Cortex-M3.

Управляющая подсистема

Управляющая подсистема содержит блоки CPU/FPU/VCU C28x, блок PIE, блок DMA, периферийные модули C28x и локальную память, содержащую до 512 кбайт Flash-памяти с ECC, до 36 кбайт ОЗУ с ECC/контролем четности и до 2 кбайт ОЗУ сообщений IPC. Кроме того, CPU C28x и DMA имеют доступ к разделяемым ресурсам (IPC, ОЗУ сообщений, раз-

деляемое ОЗУ) и, через шину ACIB, к аналоговым периферийным модулям.

На рис. 3 показана структура управляющей подсистемы микроконтроллеров Concerto.

CPU/FPU/VCU C28x

Управляющая подсистема микроконтроллеров F28M35x семейства Concerto, построенная на основе DSP ядра C28x, принадлежит платформе TMS320C2000 (6) и состоит из трех блоков: центрального процессора (CPU), сопроцессора операций с плавающей точкой (FPU) и арифметического расширителя (VCU). Блок CPU C28x микроконтроллеров Concerto имеет 32-разрядную архитектуру, аналогичную архитектуре CPU семейства C2000 Piccolo (7). Блок FPU представляет собой 32-разрядный блок операций над числами с плавающей точкой одинарной точности (IEEE 754), аналогичный FPU микроконтроллеров семейства C2000 Delfino (8). В итоге получается очень эффективная система для выполнения кода, написанного на языке C/C++.

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

МЗ SUBSYSTEM

ANALOG SUBSYSTEM

SHARED RESOURCES

RAMUNCERF^ c28

S0-S7 MTOC CTOM

IPC SHARED MSG MSG

REGS RAM RAM RAM

(Parity) (Parity) (Parity)

RAMUNCERR

FLASHUNCERR

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

С 28 LOCAL MEMORY

BOOT ROM

SECURE FLASH (ECC)

MTOCIPC (4:1)

SECURE L0/L1 RAM

(ECC)

L2/L3 RAM (parity)

FLSINGER FLFSM RAMACCVIOL RAMSINGERR LVF LUF

M0/M1 RAM (ECC)

ADCINT (8:1)

PIE (PERIPHERAL INTERRUPT EXPANSION)

7V

PIEINTRS (12:1)

SOCA (9:1), SOCB (9:1)

C28 PERIPHERALS

PERIPHERAL INTERUPTS

PERIPHERAL INTERUPTS

A

C28 DMA BUS

C28 MEMORY BUS

DINTCH (6:1)

C28 FPU

ADCINT (4:1)

MXINTA. MRINTA

SOCA (9:1), SOCB (9:1^

C28 DMA

C28 CPU

C28 VCU

EQEP ERR

ECCDBLERR

GPTRIP

(12:1)

GPTRIP

(12:7)

GPTRIP (12:4)

M3 NMI C28 NMI

Рис. 3. Структура управляющей подсистемы F28M35x

горитмы, исключительно на языке высокого уровня. Микроконтроллер одинаково эффективен как в задачах математической обработки сигналов, так и в задачах управления системами. Блок аппаратного умножения 32x32 разряда с накоплением и 64-разрядным результатом позволяет микроконтроллеру эффективно решать задачи, в которых необходима высокая точность вычислений. За счет быстрой реакции на прерывания с автоматическим сохранением содержимого критических регистров микроконтроллер позволяет обслуживать многие асинхронные события с минимальным временем ожидания. Микросхема имеет 8-уровневый защищенный конвейер с конвейеризованной памятью. Это позволяет выполнять код с высокой скоростью без использования дорогой быстродействующей памяти. Специальный блок предсказания переходов/ветвлений минимизирует время ожидания и обеспечивает условную непрерывность выполнения кода. Особые операции условной записи позволяют значительно повысить производительность системы.

Блок VCU расширяет возможности CPU C28x+FPU, добавляя в систему команд расши-

ренные инструкции для выполнения преобразований Витерби, операций с комплексными числами, 16-разрядного БПФ и вычисления CRC. При этом основной набор инструкций, конвейеризация и архитектура шин памяти остаются неизменными. Поэтому программы, написанные для C28x, полностью совместимы со связкой C28x+VCU.

Блок FPU генерирует два сигнала, которые передаются в блок PIE процессора C28x: LVF и LUV. Внутри PIE эти и другие сигналы от периферийных модулей C28x и блоков памяти преобразуются в 12 прерываний PIE PIEINTS [12:1] для CPU C28x. Кроме того, CPU C28x непосредственно принимает 3 дополнительных прерывания (кроме прерываний от PIE): от таймера 1 (TINT1), таймера 2 (TINT2) и от блока NMI (C28uNMIINT).

C28x имеет два режима пониженного энергопотребления: режим простоя (Idle) и режим ожидания (Standby).

Блок распространения прерываний от периферийных модулей C28x

Блок распространения прерываний от периферийных модулей (PIE) мультиплекси-

рует большое количество источников прерываний в небольшой набор векторов прерываний. Блок PIE может поддерживать до 96 прерываний от периферийных модулей. Микроконтроллер F28M35x использует 70 из 96 возможных прерываний. Все 96 возможных прерываний группируются в блоки по 8 прерываний, а каждая группа воздействует на одну из 12 линий прерываний CPU (INT1-INT12). Каждая из 12 линий прерываний поддерживает до 8 независимых активных прерываний. Каждое из 96 прерываний имеет собственный вектор прерывания, хранящийся в выделенной области ОЗУ, которая может перезаписываться пользователем. Используя вектор прерывания, CPU автоматически переходит к выполнению процедуры обработки прерывания. Это занимает 8 циклов тактовой частоты, за которые выбирается вектор прерывания и сохраняются значения критических регистров. Поэтому CPU может быстро отвечать на прерывания.

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

<=í>

. COMPOUT(6:1)

1

СОМРА (3:1)

ADC1INA0 ADC1INA1 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7

ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7

ADC 1

TRIGS (8:1)

СОМРВ (3:1)

СОМРА (6:4)

ADC1INT (8:1)

TRIGS (8:2)

СОМРВ

(6:4)

ADC2INT (8:1)

ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7

ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7

I GPIO<^X MUX

4

J'

ANALOG COMMON INTERFACE BUS

ID-

EOC INTERRUPTS (8:1)

SOC TRIGGERS (8:1)

M3MDMABUS

M3 uDMA

M3 SYSTEM BUS

M3 CPU

ADCINT (8:1)

Л

С28 MEMORY BUS С28 PIE

CPU

C28 DMA BUS

C28 DMA

ADCINT (8:1)

ADCINT (8:1)

ADCINT (4:1)

TINT (2:0)

SOC (8:1) A

SOC (9:1) В

TIMER

(3)

EPWM (9)

Рис. 4. Структура аналоговой подсистемы F28M35x

Модуль прямого доступа к памяти C28x

Модуль прямого доступа к памяти (DMA) C28x осуществляет аппаратную передачу данных между периферийными модулями и/или памятью без вмешательства со стороны CPU, освобождая его для выполнения других системных функций. Кроме того, DMA имеет возможность ортогонально перестраивать данные во время их передачи, а также «перекидывать» данные между буферами. Эти функции модуля удобны для структурирования данных в блоки и их оптимальной обработки CPU. Источник генерации прерывания для каждого из шести каналов DMA можно конфигурировать независимо, и каждый канал может иметь собственное независимое прерывание в PIE, чтобы сообщать CPU о начале или завершении перемещения данных модулем DMA. Пять из шести каналов DMA абсолютно одинаковы, в то время как канал 1 имеет одну дополнительную функцию: его приоритет можно сконфигурировать выше, чем у остальных.

Локальные периферийные модули C28x

В состав периферийных модулей C28x входят: сторожевой таймер NMI WDT; 3 таймера

общего назначения; 4 типа периферийных модулей последовательных портов — SCI, SPI, McBSP, I2C; 3 типа периферийных модулей управления (9 модулей ePWM, 6 модулей eCAP и 3 модуля eQEP). Все периферийные модули доступны для CPU C28x через шину памяти C28x. Кроме того, модули McBSP и ePWM доступны через шину DMA C28x. Периферийные модули последовательных портов и периферийные модули управления подключены к выводам микроконтроллера Concerto через блок мультиплексора GPIO_ MUX1. Изнутри периферийные модули C28x генерируют сигналы для блока PIE, блока DMA C28x и аналоговой подсистемы.

Блок NMI WDT принимает сигнал C28NMI от блока NMI и отправляет его через задаваемый таймером промежуток времени в блок NMI Cortex-M3 и блок сброса, чтобы сообщить о потенциально критическом состоянии.

Все 9 модулей ePWM могут работать как в автономном режиме, так и в синхронном режиме с комплементарными выходами. Каждый периферийный модуль ePWM имеет входы сигналов отключения комплементарных выходов EPWMxA и EPWMxB. В ка-

честве таких сигналов можно использовать сигналы ECCDBLERR от локальной памяти C28x, сигналы PIENMIERR и EMUSTOP от CPU C28x и до 12 внешних сигналов от GPIO_MUX1.

Локальная память C28x

В состав локальной памяти C28x входят: загрузочное ПЗУ, защищенная Flash-память с ECC, защищенное ОЗУ L0/L1 (Secure L0/L1 RAM) с ECC, ОЗУ L2/L3 (L2/L3 RAM) с контролем четности и ОЗУ M0/M1 (M0/M1 RAM) с ECC. Все области локальной памяти доступны для CPU C28x; ОЗУ L2/L3 также доступно для блока DMA C28x.

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

При доступе к локальной памяти C28x могут вырабатываться два типа сигналов коррекции данных: неисправимая ошибка и одиночная ошибка. Сигналы о неисправимых ошибках попадают в блок NMI, где они становятся немаскируемыми прерываниями C28NMI для NMI WDT C28x и C28NMIINT для CPU C28x. Сигналы о менее критичных одиночных ошибках поступают в блок PIE, где они могут приводить к генерации маскируемых прерываний для CPU C28x.

Доступ к разделяемым ресурсам и аналоговой периферии из CPUCortex-M3 и CPUC28x

Микроконтроллер имеет несколько специальных областей памяти, общим объемом до 64 кбайт, и ряд цифровых и аналоговых периферийных модулей, которые доступны и для главной, и для управляющей подсистемы. Они сгруппированы в блок разделяемых ресурсов и аналоговую подсистему.

Блок разделяемых ресурсов состоит из регистров межпроцессорного обмена данными (IPC), ОЗУ сообщений MTOC Message RAM, ОЗУ сообщений CTOM Message RAM и 8 индивидуально конфигурируемых блоков разделяемого ОЗУ (Shared RAM). Области ОЗУ блока разделяемых ресурсов имеют схему контроля четности.

Доступ к ОЗУ сообщений и разделяемым ОЗУ может осуществляться как от CPU Cortex-M3/|DMA, так и от CPU C28x/DMA. ОЗУ сообщений MTOC Message RAM предназначено

для передачи данных от главной подсистемы к управляющей и имеет доступ на чтение/запись от Cortex-M3/|iDMA и только на чтение от C28x/DMA. ОЗУ сообщений CTOM Message RAM предназначено для передачи данных от управляющей к главной подсистеме и имеет доступ на чтение/запись от C28x/DMA и только на чтение от Cortex-M3/|iDMA.

Регистры IPC обеспечивают до 32 каналов с квитированием для координации обмена данными путем опроса областей ОЗУ сообщений. Четыре из этих каналов продублированы четырьмя прерываниями в блоке распространения прерываний от периферийных устройств (PIE) со стороны управляющей подсистемы и четырьмя прерываниями в NVIC со стороны главной подсистемы (для уменьшения задержек, связанных с опросом).

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

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

Доступ к аналоговым модулям возможен как со стороны CPU Cortex-M3/|DMA, так и со стороны CPU C28/DMA. Процессор Cortex-M3 имеет доступ к шине ACIB через системную шину, а блок |DMA Cortex-M3 — через шину |DMA Cortex-M3. Процессор C28x имеет доступ к шине ACIB через шину памяти C28x, а блок DMA C28x — через шину DMA C28x.

Аналоговая подсистема

Аналоговая подсистема содержит периферийные блоки АЦП ADC1 и ADC2 и шесть аналоговых компараторов, которые доступны для обеих подсистем — Cortex-M3 и C28x — через шину ACIB. Шина ACIB осуществляет арбитраж доступа к регистрам АЦП и аналогового компаратора между обращениями к шине со стороны CPU/|DMA

Основные обозначения и сокращения на рисунках

ACIB Analog Common Interface Bus Общая шина аналогового интерфейса

Analog Comparator Аналоговый компаратор

ADC Analog-to-Digital Converter Аналого-цифровой преобразователь (АЦП)

Analog Peripherals Аналоговые периферийные модули

Analog Subsystem Аналоговая подсистема

Boot ROM Загрузочное ПЗУ

Bus Fault Сбой на шине

Bus Fault Exception Исключение сбоя на шине

Clocking Block Блок тактирования

Code Secure Memory Код защиты памяти

Complex Math Операции с комплексными числами

Control Peripherals Периферийные модули управления

Control Subsystem Управляющая подсистема

CTOM Message RAM ОЗУ сообщений от управляющей подсистемы к главной подсистеме

Compare Сравнение

CRC Cyclic Redundancy Check Контрольная сумма

Clock Gating Выбор источника тактового сигнала

DAC Digital-to-Analog Converter Цифро-аналоговый преобразователь (ЦАП)

Deep Sleep Режим глубокого сна

DC Device Configuration (register) Регистр конфигурации устройства

Deep Sleep Mode Режим глубокого сна

DMA Direct Memory Access Прямой доступ к памяти (ПДП)

DMA Bus Шина ПДП

DSP Digital Signal Processing Цифровая обработка сигналов (ЦОС)

ECC Error Correction Code Коды коррекции ошибок

eCAP Enhanced Capture Расширенный блок захвата

ePWM Enhanced Pulse Width Modulator Расширенный широтно-импульсный модулятор

eQEP Enhanced Quadrature Encoder Расширенный квадратурный энкодер

EOC End-of-Conversion Конец преобразования

EPI External Peripheral Interface Интерфейс внешней периферии

External Reset Внешний сигнал сброса

Floating-Point Арифметика с плавающей точкой

GPIO General-Purpose Input/Output (Pins) Линии ввода/вывода общего назначения

General-Purpose Timer Таймер общего назначения

Hard Fault Аппаратный сбой

Idle Mode Режим простоя

I2C Inter-integrated Circuits Интерфейс 12С

IPC Interprocessor Communications Канал межпроцессорного обмена данными

Local Memory Локальная память

Master Subsystem Главная подсистема

Master Clocks Block Главный блок тактирования

Master Subsystem Clocking Главная подсистема тактирования

Missing Clock Circuit Схема обнаружения пропадания сигнала тактирования

McBSP Multi-Channel Buffered Serial Port Многоканальный буферизованный последовательный порт

Main Oscillator Главный тактовый генератор

Main PLL Главный генератор с ФАПЧ

Memory Bus Шина памяти

Message RAM ОЗУ сообщений

MPU Memory Protection Unit Блок защиты памяти

MSPS Mega Samples Per Second Миллион отсчетов в секунду

MTOC Message RAM ОЗУ сообщений от главной подсистемы к управляющей

NMI Non-maskable interrupt Немаскируемое прерывание

NMI WDT NMI Watchdog Сторожевой таймер с немаскируемым прерыванием

NVIC Nested Vectored Interrupt Controller Контроллер вложенных векторных прерываний

Parity Четность

Peripherals Периферийные модули

PHY Physical Физический

PIE Peripheral Interrupt Expansion Распространение прерываний от периферийных устройств

Peripheral software resets Программный сброс периферийных модулей

Global peripheral enables Включение глобальных периферийных модулей

Peripheral clock enables Включение тактирования периферийных устройств

PLL Фазовая автоподстройка частоты (ФАПЧ)

POR Power-On Reset Сброс при включении

Programmable priority interrupts Программируемые приоритеты прерываний

Fixed priority interrupts Фиксированные приоритеты прерываний

PWM Pulse Width Modulator Широтно-импульсный модулятор (ШИМ)

Qualification Block Блок квалификации

RAM Random Access Memory Оперативное запоминающее устройство (ОЗУ)

Reset Block Блок сброса

Reset input signal status Сброс состояния входного сигнала

Run Mode Рабочий режим

S/H Sample-and-Hold Circuit Устройство выборки-хранения (УВХ)

Secure Flash Защищенная Flash-память

Secure RAM Защищенное ОЗУ

Security Zone Зона защиты

Sleep Режим сна

SPI Serial Peripheral Interface Последовательный периферийный интерфейс (ППИ)

Shared RAM Разделяемое ОЗУ

Shared Resources Разделяемые ресурсы

Standby Mode Режим ожидания

Standby Mode Wakeup Выход из режима ожидания

SOC Start-of-Conversion Начало преобразования

Sets default values Установка значений по умолчанию

Software Программное обеспечение

SSI Synchronous Serial Interfaces Синхронный последовательный интерфейс

SoC System-on-Chip Система на кристалле (СнК)

System Bus Системная шина

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

UART Universal Asynchronous Receiver/Transmitters Универсальный асинхронный приемник/передатчик (УАПП)

USB Universal Serial Bus Универсальная последовательная шина

USBPLL Генератор для USB с ФАПЧ

WDT Watchdog Timer, Watchdog Сторожевой таймер

Parity Error Checking Схема контроля четности

Channel Канал

Data Данные

Instructions Инструкции

Execution of... instruction Выполнение инструкции.

Activates the. signal Активизация сигнала.

Request to wake from Indle mode Запрос вывода микроконтроллера из режима простоя

Request to wake from Standby mode Запрос вывода микроконтроллера из режима ожидания

Assert any interrupt to exit sleep or deep sleep Выбор любых прерываний для выхода из режима сна или глубокого сна

1

MUX

СОМРА (3:1)

ADC1INA0 ADC1INA1 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7

ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7

USB PLL

« с сл со

го о о о О го о i о п

Cfl 'н

S S

MIIRX3 MIIRX2 MIIRX1 MIIRX0 Mil RXER S s Mil RXCK S Ü n 7ч Mil CRS Mil COL и I < z Mil MDIO Mil TXER TJ i -< 1 Mil M DC MIITXEN MIITX3 MIITX2 Mil TX1

z

COMPB

(3:1)

мз

uDMA

«

COMPOUT (6:1)

UART

(5)

CAN

(2)

SSI (4)

[ü¡K=¡>C

СОМРА (6:4)

COMPB

(6:4)

EPWM (9)

XI NT

(3)

ECAP EQEP

(6) (3)

ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7

ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7

f

Рис. 5. Линии GPIO и другие выводы

главной подсистемы и обращениями со стороны CPU/DMA управляющей подсистемы. Для управления доступом шина ACIB передает сигналы запуска SOC (Start-of-Conversion, начало преобразования) к аналоговой подсистеме и возвращает прерывания EOC (End-of-Conversion, окончание преобразования) от АЦП как к главной, так и к управляющей подсистеме в зависимости от того, какая из подсистем запустила преобразование.

Имеется 31 возможный источник для сигналов SOC от подсистемы C28x, которые отображаются на 8 возможных сигналах SOC внутри аналоговой подсистемы (разделяемые между АЦП ADC1 и ADC2 и шестью аналоговыми компараторами).

Иными словами, 8 источников прерываний EOC от ADC1 и 8 источников прерываний EOC от ADC2 объединяются по схеме И посредством шины ACIB, создавая 8 прерываний, отправляемых в главную и управляющую подсистемы. Внутри подсистемы C28x все 8 прерываний EOC поступают в блок PIE, но только 4 из 8 поступают в блок DMA C28x.

На рис. 4 показана структура аналоговой подсистемы микроконтроллеров Concerto.

АЦП ADC1 и ADC2

Модули ADC1 и ADC2 представляют собой 12-разрядные АЦП с 16 входными аналоговыми каналами каждый, 10 из которых можно подключить к выводам микроконтроллера. Один из каналов ADC1, не подключаемый к выводам микроконтроллера, предназначен для обслуживания внутреннего датчика температуры. Входные аналоговые сигналы поступают на два УВХ (Sample-and-Hold, S/H, устройство выборки-хранения) — A и B. Выходные сигналы УВХ преобразуются с помощью двух 12-разрядных АЦП в цифровые значения, которые запоминаются в регистрах результата АЦП ADC1 и ADC2.

Два УВХ позволяют одновременно оцифровывать 2 аналоговых сигнала. Последовательность преобразования сигналов с одиночных каналов или пар каналов задается с помощью специальных цепочек (очередей). Аналого-цифровое преобразование запускается сигналом SOC от главной или управляющей подсистемы. Прерывания EOC от АЦП сообщают главной и управляющей подсистемам, что результат преобра-

зования готов и может быть считан из регистров результатов АЦП ADC1 и ADC2.

Аналоговый компаратор + ЦАП

Шесть блоков аналоговых компараторов позволяют независимо сравнивать уровни сигналов на шести парах аналоговых входов. Результаты сравнения доступны на шести цифровых выходах. Выбор внешних аналоговых входов, уровни напряжения на которых будут сравниваться компараторами, осуществляется мультиплексорами AЮ_MUX1 и AЮ_MUX2. Шесть цифровых сигналов с выходов компараторов поступают в блок GPЮ_MUX2, где они могут быть перенаправлены на любые шесть из восьми возможных выводов микроконтроллера.

Выходы компараторов можно использовать для блокировки выходов ePWMA/B C28x. Для этого необходимо соединить между собой внешними печатными проводниками соответствующие выводы блока GPЮ_MUX2 с выводами блока GPЮ_ MUX1 и сконфигурировать выбранные выводы блока GPЮ_MUX1 как входы блокировки ePWM.

Общая шина аналогового интерфейса

Общая шина аналогового интерфейса (ACIB) соединяет главную и управляющую подсистемы с аналоговой подсистемой. Она позволяет блокам CPU Cortex-M3/|iDMA и CPU C28x/DMA получать доступ к регистрам аналоговой подсистемы для отправки в аналоговую подсистему запускающих сигналов SOC и получения прерываний конца преобразования EOC. Для чтения/записи регистров аналоговой подсистемы ядро Cortex-M3 использует свою системную шину и шину |iDMA. Ядро C28x для чтения/записи тех же регистров аналоговой подсистемы использует шину памяти и шину DMA. Шина ACIB осуществляет арбитраж между возможными одновременными обращениями со стороны главной/управляющей подсистемы к ACIB для доступа к регистрам АЦП и аналоговых компараторов аналоговой подсистемы.

Дополнительно ACIB преобразует 31 запускающий сигнал SOC от управляющей подсистемы для 8 получателей сигналов запуска SOC внутри аналоговой подсистемы (разделенных между АЦП ADC1, ADC2 и аналоговыми компараторами) и до 16 источников прерываний EOC от АЦП из аналоговой подсистемы для 8 получателей внутри главной и управляющей подсистем. Восемь прерываний АЦП образуются путем объединения по И 8 сигналов EOC ADC1 и 8 сигналов EOC ADC2.

Линии ввода/вывода общего назначения (GPIO)

Большинство линий ввода/вывода MCU Concerto можно сконфигурировать как программируемые линии GPIO. Исключение составляют выводы X1 и X2 кварцевого ге-

нератора, выводы цифрового (XRS) и аналогового (ARS) сброса, выводы управления внутренним стабилизатором напряжения VREG12EN и RREG18EN и 5 выводов интерфейса JTAG. Оставшиеся 74 линии GPIO сгруппированы в два программируемых блока: блок GPIO_MUX1 (66 выводов) и блок GPIO_MUX2 (8 выводов). Дополнительно доступны 8 вторичных линий GPIO: 4 линии через блок AIO_MUX1 и 4 линии через блок AIO_MUX2.

На рис. 5 показаны линии GPIO и другие выводы.

Блок мультиплексора цифровых выводов GPIO_MUX1

Для каждой из 66 линий блока GPIO_MUX1 можно назначить выполняемые функции: линии периферийного устройства Cortex-M3/C2x; одного из 12 входов блокировки ePWM; одного из 6 входов eCAP; одного из 3 входов внешних прерываний для PIE C28x; сигнала выхода из режима ожидания (LMPWAKE); одного из 64 входов/выходов общего назначения или комбинации всего вышеперечисленного. К каждой линии GPIO_MUX1 можно подключить подтягивающий резистор. По умолчанию после сброса все подтягивающие резисторы отключены, и все выводы блока GPIO_MUX1 настроены на работу с периферийными устройствами Cortex-M3 (но не с периферийными устройствами C28x).

Блок мультиплексора цифровых выводов GPIO_MUX2

Для каждой из 8 линий блока GPIO_MUX2 можно назначить выполняемые функции: одного из 8 входов/выходов общего назначения или одного из 6 выходов COMPOUT

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

Блоки мультиплексора аналоговых выводов AЮ_MUX1 и AЮ_MUX2

Для 10 линий каждого из блоков АЮ_ МиХ1 и АЮ_МиХ2, посредством специальных регистров, можно назначить функции: 10 аналоговых входов модуля АЦП ADC1; 6 аналоговых входов аналоговых компараторов и 4 входов или 4 выходов общего назначения. Следует отметить, что хотя блоки АЮ_МиХ1 и АЮ_МиХ2 имеют такие названия из-за прохождения через них аналоговых сигналов, линии GPЮ все еще остаются цифровыми, хотя и с меньшим количеством функций, чем в блоках GPЮ_MUX1 и GPЮ_ МиХ2. Например, они не имеют подтягивающих резисторов. После сброса все линии блоков АЮ_МиХ1 и АЮ_МиХ2 сконфигурированы как аналоговые входы, и функции GPЮ отключены. Каждый из блоков АЮ_МиХ1 и АЮ_МиХ2 программируется с помощью собственного набора регистров, которые отличаются один от другого.

Заключение

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

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