32-разрядные микроконтроллеры ATMEL
на базе ядра ARM7
Николай КОРОЛЕВ
Корпорация АТМЕЬ предлагает чрезвычайно широкий спектр микроконтроллеров, начиная от 4-разрядных семейства МАРК4, применяемых в простейших приложениях, и заканчивая 32-разрядными устройствами на базе ядер АРМ9 и AVR32, как правило, требующих для полноценного использования применение той или иной операционной системы. Микроконтроллеры на базе ядра ARM7 занимают среднее положение и заполняют нишу 16/32-разрядных контроллеров с производительностью 30—60 МІРБ.
Введение
Разработчиком микроконтроллерного ядра ARM является английская фирма Advanced Rise Machines. Одна из разработок этой фирмы, ARM7 (точнее, ARM7TDMI) получила наибольшую популярность, и лицензию на это ядро приобрели все основные мировые производители микроконтроллеров. Среди интересных особенностей ядра ARM7TDMI — возможность функционирования в двух режимах, 32-разрядном и 16-разрядном (THUMB), причем переход из одного режима в другой осуществляется программно, «на лету». Таким образом, можно говорить, что микросхемы ARM7TDMI покрывают как 32-, так и 16-разрядный сегменты рынка.
Микросхемы на базе ядра ARM7, выпускаемые различными производителями, имеют одинаковое ядро и примерно равные объемы встроенных ПЗУ и ОЗУ. Основные их отличия заключаются в скорости работы и наборе периферийных модулей.
Первые микроконтроллеры на ядре ARM7 корпорация ATMEL выпускала по технологическим нормам 0,25 мкм, и их тактовая частота составляла 33 МГц. Родоначальник семейства — микросхема AT91R40400 — не имела ПЗУ на кристалле, а размер ОЗУ составлял всего 4 кбайта, что и определило короткий срок жизни этой микросхемы. Вскоре она была заменена на AT91R40800 с объемом ОЗУ 8 кбайт. Естественно, эти микросхемы имели внешнюю шину адреса и данных, однако ширина шины данных составляла 16 бит, что вдвое увеличивало время доступа к данным. Эта проблема была решена в микросхеме AT91R40008, где объем ОЗУ на кристалле увеличен до 256 кбайт. Следующим шагом на пути увеличения интеграции был выпуск микросхем со встроенным ПЗУ. Микросхема AT91FR40162S имела Flash-ПЗУ объемом
2 Мбайт. Однако это было компромиссное решение, так как фактически микросхема состояла из двух кристаллов, то есть Flash-ПЗУ представляло собой отдельный кристалл памяти серии AT49LV, подключенный к внешней 16-битной шине. Этим, в частности, объясняется тот факт, что микросхема AT91FR40162S не имела возможности защиты содержимого ПЗУ от несанкционированного копирования.
Кардинальные изменения произошли с выходом микросхем семейства SAM7 (Smart ATM7) в 2005 году. Эти микросхемы изготавливаются по технологическим нормам 0,18 мкм, что позволило увеличить тактовую частоту до 55-60 МГц и разместить на кристалле помимо ПЗУ и ОЗУ еще и большое количество периферийных модулей.
Следует понимать, что общая производительность контроллера зависит не только от собственно тактовой частоты, но и, в большой степени, от организации потоков данных в кристалле. Очевидное преимущество микросхем семейства SAM7 заключается в применении контроллеров прямого доступа к памяти (DMA-контроллер), причем для каждого периферийного модуля, как правило, есть выделенный двухканальный DMA-контроллер.
В настоящее время имеется три серии SAM7: AT91SAM7S, AT91SAM7A и AT91SAM7X. Отличие серий заключается в наборе периферийных модулей. Базовая серия, SAM7S, содержит интерфейсы UART, USART, SPI, I2C, SSC и USB. Серия SAM7A дополнительно оснащена двухканальным CAN-контроллером, а серия SAM7X — одноканальным CAN-контроллером и модулем Ethernet MAC 10/100. К концу 2006 года выйдет четвертая серия микросхем — AT91SAM7SE. Особенностью этой серии будет внешняя шина адреса/данных, к которой могут быть подключены различные типы памяти: SRAM, SDRAM, Parallel
Flash, NAND-Flash. Микросхемы SAM7SE будут выпускаться в 128-выводном корпусе.
Все микросхемы имеют раздельное питание ядра и периферийных модулей — 1,8 и 3,3 В соответственно. Встроенный преобразователь питания ядра снимает необходимость применения внешней микросхемы стабилизатора напряжения. Такое сочетание параметров позволяет применять микроконтроллеры SAM7 в самых различных приложениях, в том числе для построения систем с низким энергопотреблением, работающих в реальном времени.
Основные характеристики микроконтроллеров AT91SAM7:
• наилучшее соотношение производительности и потребляемой мощности;
• производительность 30-60 MIPS;
• 32/16-битная шина команд (ARM/THUMB);
• 32-битная внутренняя шина данных;
• программируемая 8/16/32-битная внешняя шина данных;
• многоканальный контроллер прямого доступа к памяти (PDC);
• последовательный интерфейс SPI (режим Master/Slave), четыре выхода Chip Select;
• двухпроводный интерфейс TWI, (совместимый с I2C), поддержка режима Master Mode;
• встроенный микромощный RC-генератор и модуль ФАПЧ;
• расширенный тактовый генератор и контроллер управления энергопотреблением;
• четыре программируемых внешних источника тактирования;
• контроллер прерываний с расширенными функциями;
• внутрисхемный эмулятор с коммуникационным отладочным каналом;
• встроенный модуль отладки (через UART);
• таймер реального времени (Real-time Timer) с отдельным прерыванием;
Таблица 1. Параметры микроконтроллеров семейства SAM7
Макс. частота, МГц ОЗУ, кбайт Flash-ПЗУ, кбайт Debug UART USART Интерфейс SPI Интерфейс TWI Интерфейс SSC DMA-каналы Интерфейс MMC/SD р е л л о р X о -к Z A C USB Device (12 Мбит/с) 16-разрядный таймер (каналы) р е л л о р X о -к М- И 3 Интервальный таймер Сторожевой таймер П A ы н « я р аз -р ® Сброс по питанию Детектор уровня напряжения р то ат р ф X ф ó R Выводы с током 16 мА Число входов-выходов Корпус
SAM7S32 55 8K 32K - - - + + + + + 4 32 QFP48
SAM7S321* 55 8K 32K 11 - - + + + + + 4 32 QFP64
SAM7S64 55 16K 64K 11 - - + + + + + 4 32 QFP64
SAM7S128 55 32K 128K 11 - - + + + + + 4 32 QFP64
SAM7S256 55 64K 256K 11 - - + + + + + 4 32 QFP64
SAM7S512* 55 64K 512K 11 - - + + + + + 4 32 QFP64
SAM7A1 40 4K - - - - 11 - - - + - - - - 49 QFP144
SAM7A2 30 16K - - - - 10 - - 13 - + 16 - - - - 57 QFP176
SAM7A3 60 32K 256K 19 + + + 16 + + + 4 62 QFP100
SAM7X128 55 32K 128K 13 - + + + + + 4 60 QFP100
SAM7X256 55 64K 256K 13 - + + + + + 4 60 QFP100
SAM7X512* 55 128K 256K 13 - + + + + + 4 60 QFP100
SAM7SE32* 48 8K 32K 11 - - + + + + + 4 32 QFP128
SAM7SE256* 48 32K 256K 11 - - + + + + + 4 60 QFP128
SAM7SE512* 48 32K 512K 11 - - + + + + + 4 60 QFP128
Примечания: микросхема БАМ7Х имеют на кристалле модуль ЕіИегпеІ МАС 10/100. Микросхемы, отмеченные знаком *, планируются к выпуску на конец 2006 года.
• 2 или 3 трехканальных 16-битных таймера-счетчика;
• сторожевой таймер;
• напряжение питания 3,0—3,6 В;
• входы-выходы 5 В;
• режимы снижения энергопотребления;
• встроенная схема Power-On Reset;
• встроенная программа-автозагрузчик для загрузки Flash-памяти через UART или USB-порт;
• защита памяти программ от несанкционированного чтения.
Пожалуй, наиболее интересным представителем семейства SAM7 является микроконтроллер AT91SAM7X (рис. 1). Эта микросхема, несмотря на малогабаритный 100-вывод-ной корпус, имеет чрезвычайно богатый набор периферии:
• 2 порта SPI, поддержка режима Master/Slave, 8- и 16-битный обмен;
• порт TWI, полный аналог порта I2C;
• порт USB, режим USB 2,0 Full Speed,
12 Мбит/с;
• порт SSC, поддержка режима I2S;
• порт CAN, поддержка режима 2,0 А и 2,0 В;
• 1 отладочный порт UART;
• 2 порта USART, аппаратная поддержка протоколов RS-485 и ISO7816 T0/T1 Smart Card;
• JTAG-порт;
• 10-разрядный 8-канальный АЦП с временем преобразования 2 мкс;
• Ethernet MAC 10/100.
Таким образом, пользователь получает систему на кристалле, позволяющую строить высокоинтегрированные малогабаритные одноплатные контроллеры, которые могут общаться с внешним миром по интерфейсам 7 различных типов. И это по цене менее 300 рублей в розницу!
Несколько слов следует сказать еще об одном семействе микроконтроллеров SAM7 — микросхемах AT91SAM7XC. Очевидно, что встроенный модуль Ethernet MAC будет ис-
пользоваться для передачи информации по локальным и глобальным сетям. Естественно, часть этой информации является конфиденциальной, и ее следует передавать в закодированном виде. Именно для этого микросхемы AT91SAM7XC содержат на кристалле аппаратный модуль кодирования, поддерживающий алгоритмы DES, Triple DES и AES со скоростью кодирования 11,2, 12,8 и 20 Мбит/с соответственно. Кодирование занимает не более 1% ресурсов процессора. Неприятность состоит в том, что эти микросхемы могут экспортироваться только в страны, подписавшие соглашение об экспортном регулировании. К сожалению, Россия не входит в список стран, подписавших это соглашение, поэтому поставки мик-
росхем семейства AT91SAM7XC в нашу страну запрещены.
Источником тактирования контроллера может быть встроенный RC-генератор с частотой 22-42 кГц (SLCK), основной генератор с частотой от 3 до 20 МГц (MAINCK), либо модуль ФАПЧ (PLLCK). Модуль ФАПЧ формирует частоту, используя дробный коэффициент умножения.
В микросхеме используются раздельные цепи для тактирования ядра процессора и периферийных модулей. Важную роль выполняет цепь MCK (Master clock) (рис. 2), которая тактирует, в частности, модули USART и SPI. Частота MCK настраивается программно в диапазоне от сотен герц до максимальной частоты кристалла.
□
Main ose 1 PLL 1
PMC 1 WDT 1
АІС 1 pit 1
АРВ
I JTAG I
ICE
ARM7TDMI
SRAM
32К-64КВ
Flash 128К-512КВ
ROM
12KB
FFPI
SAM-BA
AM BA Bridge
10/100
EMAC
1.8V I BOD I
LDO I POR I Memory Controller
Peripheral DMA Controller
S
AES CAN ADCx8 PWM x4 PIO Timer x3 USART Debuq SPI TWI USB SSC
TDES x62 USART UART SPI Device
L—□—□—□—□—□—□—□—□—□—□—□—in—1
Рис. 1. Структурная схема AT91SAM7X
Master Clock Controller
SLC- Prescaler
MAINCK— *■ /1./2./W64
PLLCK—
Clock
Controller
Idle Mode
Peripherals Clock Controller
ON/OFF
PCK
int
MCK
Periph_clk [2.. 18]
Рис. 2. Схема тактирования процессора и периферии
3,3 В VDDIO
SAM 7
VDDPLL
Модуль PLL
* XTAL OSC
Ядро и логика
Рис. 3. Встроенный преобразователь напряжения
Flash-память программ имеет ширину шины данных 32 бита и время доступа 25 нс, таким образом, при тактовой частоте до 30 МГц выборка команды происходит без задержки. Если частота ядра находится в диапазоне 30-60 МГц, для выборки команды вводится такт задержки. При использовании контроллера в режиме THUMB (ширина команды 16 бит) за одно обращение к Flash-памяти происходит выборка двух команд, которые затем выполняются последовательно.
Типовое напряжение питания микроконтроллеров SAM7 составляет 3,3 В. Для сниже-
ния потребляемой мощности ядро микросхемы питается напряжением 1,8 В, причем преобразователь напряжения встроен в кристалл. Тем не менее, допускается подача напряжения питания на ядро от внешнего источника питания. При этом внутренний преобразователь напряжения (рис. 3) может быть выключен.
Микросхемы имеют очень гибкую конфигурацию портов ввода-вывода (PIO Parallel Input/Output Controller) (рис. 4). Каждая линия порта может быть входом, входом с подтягивающим резистором, входом с аппарат-
ной фильтрацией ложных узких импульсов («иголок»), обычным выходом, выходом с тристабильным состоянием, выходом с открытым стоком. Кроме этого, каждая линия портов ввода-вывода может являться входом прерывания.
Периферийный DMA-контроллер
Встроенные MCU-приложения, подключенные к сети, должны иметь возможность взаимодействия как с внешними устройствами, так и с ядрами управления, и предоставлять программисту максимальные возможности управления процессом выполнения этих операций. Они также должны обеспечивать бесшовную и непрерывную передачу данных между памятью и периферийными устройствами без остановок на переинициа-лизацию счетчика транзакций. Это становится особенно актуальным, если необходимо производить передачу потоков данных одновременно по нескольким каналам. Таким образом, в ряде задач на первое место выходит подсистема обслуживания обмена данными между внешними устройствами и внутренней памятью контроллера, то есть модуль прямого доступа к памяти (рис. 5).
Каналы прямого доступа к памяти не являются неотъемлемой частью процессора ARM7TDMI. Центральный процессор может сам пересылать данные побайтно. Это просто, пока количество передаваемых данных односительно невелико. Однако когда скорость передачи данных превысит 1 Мбит/с, даже у быстрых процессоров может не хватать ресурсов. Например, на частоте 50 МГц передача со скоростью 1 Мбит/с занимает 28% ресурса процессора ARM7TDMI. Передача со скоростью 2 Мбит/с занимает более половины ресурсов процессора, а на скорости 4 Мбит/с процессор уже не способен выполнять параллельно другие операции.
Если предположить, что максимальная скорость передачи по интерфейсу USB 2.0 равна 12 Мбит/с, скорость CAN будет равна 1 Мбит/с, Ethernet будет работать на 100 Мбит/с, а SAM
SPI и периферийные USART на 25 Мбит/с, становится понятно, что процессы пересылки данных должны обслуживаться выделенной системой. Компания ATMEL добавила в архитектуру процессоров семейства ARM7 многоканальный контроллер периферийных каналов прямого доступа к памяти (PDC), напрямую осуществляющий обмен данными между периферийными устройствами, внутренними регистрами и внешней памятью. Основная часть периферийных модулей AT91SAM7 имеет два выделенных канала PDC — один для приема, другой для передачи данных. Пользовательский интерфейс канала периферийного контроллера PDC встроен в память каждого периферийного модуля и содержит 32-битный регистр-указатель адреса, 16-битный регистр-счетчик пересылок, 32-битный регистр для указателя следующего адреса памяти и 16-битный регистр-счетчик для следующих пересылок. Периферийные модули переключают потоки данных PDC, используя сигналы приема-передачи. По окончании пересылки первого программного блока данных соответствующий периферийный модуль генерирует прерывание окончания пересылки. Автоматически начинается пересылка второго блока данных, а обработка данных первого блока может выполняться параллельно процессором ARM. Этим исключаются медленные прерывания в режиме реального времени, замедляющие обновление регистров-указателей в процессоре, и поддерживается высокоскоростная пересылка данных в периферийный модуль. PDC имеет выделенные регистры состояния, указывающие для каждого канала возможность или невозможность пересылки. В любой момент времени можно считать из памяти адрес размещения очередной пересылки и количество оставшихся пересылок.
Когда периферийный модуль принимает внешний символ, он посылает сигнал готовности приема на PDC, который, в свою очередь, запрашивает доступ к системной шине. По получению доступа PDC начинает считывание регистра удержания приема (Receive Holding Register— RHR) периферийного модуля и затем инициирует запись в память. После каждой пересылки счетчик-указатель памяти PDC инкрементируется, а количество оставшихся пересылок декрементируется. Когда достигается величина блока памяти, автоматически начинается пересылка следующего блока, или на периферийный модуль посылается сигнал, и пересылка останавливается. Аналогичная процедура (в обратном порядке) повторяется в случае выдачи блока данных из памяти во внешнее устройство.
Если на идентичные периферийные модули приходят одновременно запросы одного типа (приема или передачи), приоритет определяется по порядковому номеру периферийного модуля. Если запросы на пересылку не одновременны, они обрабатываются в порядке поступления. Запросы от принимаю-
щих модулей обрабатываются первыми, затем обрабатываются запросы от передающих модулей.
Модуль PDC содержит два набора регистров-счетчиков для обеспечения непрерывности передачи блоков данных большого объема. При переполнении одного счетчика PDC загружает значение следующего счетчика в сдвиговый регистр, генерирует прерывание и обновляет следующий счетчик. Один набор счетчиков-регистров используется для первоначальной пересылки, а другой — для следующей, позволяя программисту поочередно переключать DMA-каналы для обеспечения непрерывности процесса пересылки данных между DMA и периферийными модулями.
В отличие от традиционных структур прямого доступа к памяти, пересылки PDC не выражаются в количестве 8, 16, 32 бита или байта, слова или полуслова. Счетчик пересылок управляет циклами передачи по 32-битной шине, и при этом периферийный модуль определяет, какая именно будет пересылка (в объеме байта, слова или полуслова). Если периферийный модуль запрограммирован на пересылку восьмибитных данных, контроллер PDC может пересылать 64 килобайта данных методом пересылки блоков. Если запрограммированы 16-битные пересылки, он перемещает 128 килобайт данных, и, соответственно, если пересылаются 32-разрядные данные, максимальный объем операции составляет 256 кбайт.
Для упрощения программирования программные регистры PDC встроены в каждый периферийный модуль. Регистр и счетчик размещены в адресном пространстве устройств ввода/вывода, поэтому программист видит перечень регистров и указателей: адреса и объемы для текущего и следующего счетчиков и регистр контроллера разрешения/запрещения пересылки. Модуль PDC работает по прерываниям, не нарушая работу процессора, существенно уменьшая таким образом количество циклов процедуры синхронизации, требуемых для пересылки данных, и освобождая MCU от дополнительной работы по управлению. Схемы DMA в архитектуре SAM7X позволяют ему одновременно выполнять функции коммуникационного контроллера и универсального процессора даже при высоких скоростях пересылки данных. Например, процессор AT91SAM7X использует только 2% своей вычислительной мощности для пересылок данных на скорости 4 Мбит/с. Он поддерживает пересылки на частоте 25 МГц по интерфейсам SPI или TWI и при этом имеет 96% доступных ресурсов для выполнения основной программы. Если при передаче данных используется кодирование, контроллер PDC также позволяет ускорить процесс обмена данными в несколько раз, например AT91SAM7XC может передавать поток данных, закодированных по алгоритму AES, со скоростью 80 Мбит/с.
Поддержка приложений, работающих в режиме реального времени
Несмотря на наличие интерфейсов 10/100 Ethernet, CAN и USB и аппаратное кодирование данных, все же еще очень легко упустить из виду тот факт, что встроенные системы остаются системами реального времени. Обработка должна быть непрерывной, команды и данные должны поступать в нужное место строго в соответствии с синхроимпульсами. К сожалению, подавляющее большинство 32-битных контроллеров, обладающих огромной мощностью для выполнения сетевых операций, слабо приспособлены для работы в режиме реального времени.
Высокоскоростная 25-наносекундная флэш-память на микроконтроллерах SAM7X позволяет за один цикл получить команду из памяти, исключая необходимость кэширования кода и гарантируя непрерывную обработку. Структура без использования конвейера для хранения команд имеет очень малое время реакции на выполнение команд переходов и вызовов процедур, потому что при этом не нужно тратить дополнительное время на заполнение конвейера. SAM7 может обеспечить производительность 38 MIPS, не используя кэширование флэш-памяти, и 50 MIPS при выполнении программы из SRAM.
Системы реального времени, как правило, работают по прерываниям. SAM7 имеет набор индивидуально маскируемых векторов источников прерываний и контроллер прерываний с 8 уровнями приоритетов, постоянно хранящимися в SRAM, что позволяет оперативно управлять приоритетом прерываний. Процедуры Чтение/Изменение/Запись (Read/Modify/Write), которые индивидуально устанавливают или сбрасывают бит в пространстве ввода-вывода, достаточно стандартные в системах режима реального времени, но не слишком хорошо поддерживаются 32-битными MCU, обычно требующими до 15 команд для выполнения. В SAM7 каждый периферийный модуль имеет свои выделенные регистры «установки» (set) и «сброса» (clear). Это позволяет обойтись 6-цикловой последовательностью загрузки, перемещения и хранения (load/move/store), для управления всеми маскированиями прерываний, процедурами установки и сброса битов. В итоге, время на обработку и кодирование уменьшается на 60%.
Другое «узкое» место 32-битных процессоров — отсутствие «супервизорских» функций для предупреждения неожиданного сброса системы вследствие проблем с питанием. SAM7 содержит на кристалле полный набор модулей для слежения за питанием: схему задержки запуска при подаче питания, схему слежения за уровнем напряжения питания, встроенный RC-генератор и, естественно, сторожевой таймер.
Последовательные порты микроконтроллера AT91SAM7
Микросхемы SAM7 имеют на кристалле три типа портов UART/USART (рис. 6). Порт Debug UART используется для отладки программы, однако он может быть использован и как обычный последовательный порт, если для обмена достаточно сигналов TXD и RXD. Максимальная скорость обмена составляет MCK/16. Порт имеет полный набор сигналов квитирования для подключения модема.
Порт USART, в дополнение к асинхронному, имеет также синхронный режим работы с использованием внешних тактирующих импульсов. Максимальная частота работы равна частоте MCK, для тактирования также может быть использована внешняя частота. Среди дополнительных возможностей USART следует отметить аппаратное формирование сигнала направления передачи для управления драйвером шины RS-485, поддержка протокола ISO7816, T0 или T1 для работы со смарт-картами, а также встроенный модулятор-демодулятор для организации обмена по инфракрасному каналу (IrDA).
Интерфейс SPI поддерживает работу в режимах Master Multi-Master и Slave, позволяет передавать данные пакетами 8 или 16 бит на частотах от MCK/2 до MCK/8192. Каждый SPI-порт (рис. 7) имеет до четырех отдельных сигналов Chip Select, что позволяет работать с четырьмя внешними устройствами без применения внешней декодирующей логики. Очень удобно реализована процедура инициализации обмена. К каждому выводу Chip Select «привязан» набор параметров — скорость обмена, режим SPI, длина слова, начальная задержка при старте обмена. Таким образом, к одному порту можно подключить несколько периферийных устройств с различными характеристиками, и при начале работе с каждым из них инициализация порта происходит автоматически.
Peripheral DMA Controller
Channel
AIC
USART
Interrupt
PMC
T
MCK
^iTfCK/DIV
SCLK
USART
Channel
Receiver
Transmitter
Modem
Signals
Control
Baud Rate Generator
User Interface
PIO
Controller
«□ RXD
«□ RTS
«□ TXD
«□ CTS
«□ DTR
«□ DSR
«□ DCD
«□ RI
«□ SCK
Рис. 6. Структура порта USART
Интерфейс TWI (Two Wire Interface) — это стандартный двухпроводный интерфейс, полностью совместимый с I2C, частота обмена — до 400 кГц. Для работы необходимо подключить два внешних резистора.
Контроллер SSC (Synchronous Serial Controller) содержит независимые приемник и передатчик с общей цепью тактирования. Для приема и передачи используются по три линии: данные (TD/RD), тактовые импульсы (TF/RF) и импульсы синхронизации пакетов (Frame Sync). Этот интерфейс широко применяется в телекоммуникационных приложениях. В аудиоприложениях можно использовать этот интерфейс в режиме I2S.
CAN-контроллер работает на скорости до 1 Мбит/с и обеспечивает поддержку всех спецификаций протокола CAN, определенных стандартом ISO/11898A (2.0 Part A и 2.0 Part B) для высоких скоростей обмена и ISO/11519-2 для низких скоростей обмена. Доступ к контроллеру осуществляется через конфигурационные регистры. Контроллер имеет 8 независимых «почтовых ящиков» (message objects), каждый из которых может быть запрограммирован на прием или на передачу. Уровень приоритета для каждого почтового ящика может быть запрограммирован независимо. CAN-контроллер оптимизирован для работы по протоколу TCC (Time Triggered Comunication).
Порт USB (рис. 8) совместим со стандартом USB V2.0 Full Speed (скорость обмена 12 Мбит/с).
Порт содержит 6 «конечных точек» (Endpoint), каждая из которых может быть сконфигурирована под свой тип передачи и привязана к одному или двум банкам двухпортовой памяти (Dual-Port RAM, DPR). Если используется два банка, один DPR-банк считывается или записывается процессором, а второй — периферийным устройством. При этом обеспечивается реальная скорость передачи
1 Мбайт/с.
Модуль EMAC содержит 10/100 Ethernet MAC, совместимый со стандартом IEEE 802.3. Поддерживается как дуплексный, так и полудуплексный режим работы. Приемные буферы имеют фиксированную длину 128 байт, а размер передающих буферов может иметь размер от 0 до 2048 байт. Модуль EMAC работает как с интерфейсом MII (Media Independent Interface), так и с усеченным интерфейсом RMII (Reduced Media Independent Interface). Интерфейс RMiI требует меньшее число линий обмена, так как данные
передаются и принимаются по двум линиям (вместо 4 линий для MII), а также не обрабатываются сигналы Transmit error bit (ETXER) и collision detect (ECOL). Выбор типа интерфейса производится программно.
В дополнение к вышеописанным интерфейсам контроллеры SAM7 имеют 8- или 16-канальный АЦП последовательного приближения (рис. 9). АЦП может работать и как 10-разрядный, и как 8-разрядный. В первом случае время преобразования составляет
2 мкс, во втором — 1,25 мкс. Диапазон измеряемых напряжений — от 0 В до уровня опорного напряжения, который должен быть в диапазоне от 2,6 до 3,3 В.
Микросхема SAM7 имеет встроенный загрузчик памяти программ, причем загрузка может производиться либо по порту UART (ЭБОи), либо по порту ШБ. Таким образом, можно программировать микросхемы непосредственно в системе, используя стандартный кабель. При этом программа-загрузчик копируется в ОЗУ, а весь объем 1^Ь-памяти может быть занят пользовательской программой. Для программирования используется бесплатная утилита SAM-BA (рис. 10).
Содержимое памяти программ микроконтроллера защищается от несанкционированного копирования.
Рис. 10. Рабочее окно программы SAM-BA
Таблица 2. Параметры USB Endpoints для микроконтроллеров серии SAM7
Номер Обозна- чение Dual- Bank Максимальный размер Тип конечной точки
0 EP0 нет 8 Control/Bulk/Interrupt
1 EP1 да 64 Bulk/Iso/Interrupt
2 EP2 да 64 Bulk/Iso/Interrupt
3 EP3 нет 64 Control/Bulk/Interrupt
4 EP4 да 256 Bulk/Iso/Interrupt
5 EP5 да 256 Bulk/Iso/Interrupt
I I
Рис. 11. Внутрисхемный эмулятор AT91SAM-ICE
Для отладки программ рекомендуется использовать внутрисхемный эмулятор AT91SAM-ICE (рис. 11), который подключается к порту USB компьютера.
В качестве программной среды удобно использовать пакет IAR KickStart компании IAR. Это полнофункциональная бесплатная версия пакета IAR Embedded Workbench с ограничением максимального размера кода 32 кбайт.
Рис. 12. Плата AT91SAM7S-EK
Для микросхем 8АМ7 компания АТМЕЬ предлагает стартовые наборы: АТ918АМ78-ЕК (рис. 12), АТ918АМ7А-ЕК и АТ918АМ7Х-ЕК.
Отладочная плата AS-sam7S64
На базе набора АТ918АМ78-ЕК специалистами «АРГУССОФТ Компани» разработана плата А8-8ат7864, которая программно совместима с фирменным комплектом, однако имеет ряд аппаратных расширений.
Плата А8-8ат7864 (рис. 13) является одноплатным контроллером, построенным на базе микросхемы АТ918АМ7864. Плата может использоваться либо как учебная, для ознакомления с работой микроконтроллеров с ядром ARM7 корпорации АТМЕЬ, либо в качестве основной платы пользовательского изделия.
Рис. 13. Плата AS-sam7S64
Состав платы AS-sam7S64:
• микроконтроллер AT91SAM7S64;
• разъем питания (2,1 мм);
• стабилизатор питания LM1117;
• 4 пользовательские кнопки;
• кнопка сброса процессора;
• 4 пользовательских светодиода;
• разъем JTAG (подключение эмулятора);
• разъем интерфейса USB (Full Speed);
• разъем DBGU (DBGU-RS-232);
• разъем RS-232;
• разъем RS-485 (тип RJ-11);
• разъем EXT1 (SSC,TWI);
• разъем EXT2 (встроенный АЦП);
• разъем EXT3 (цифровые входы/выходы);
• разъем RELAYS (опторазвязка);
• разъем DAC (внешний ЦАП 12 бит);
• разъем ADC (внешний АЦП);
• джамперы режимов контроллера.
На плате предусмотрено место для распайки следующих дополнительных компонентов:
• микросхема ПЗУ серии DataFlash — AT45DB161B/AT45DB321C/45DB642D в корпусе TSOP28;
• 12-разрядный (200 квыб./с) АЦП AD7923 (4 канала) / AD7927 (8 каналов);
• двухканальный 8/10/12-разрядный ЦАП AD5302/12/22;
• источник опорного напряжения ADR391;
• температурный датчик AD7415. Характеристики платы:
• питание от источника +5__+ 12 В (гнездо
со штырем 2,1 мм под стандартный сетевой адаптер, центральный контакт — положительный полюс) или от порта USB;
• напряжение питания микросхем +3,3 В;
• потребляемый ток — не более 100 мА;
• габаритные размеры— 103x75 мм;
• расположение крепежных отверстий — 91x54 мм.
Программирование платы производится при помощи бесплатного программного обеспечения SAM-BA (поставляется на прилагаемом CD-ROM) через интерфейс DBGU (RS-232, 115200-8N1, необходимо внешнее питание платы), либо через USB.
Комплект поставки:
• плата AS-sam7S64 с установленными компонентами;
Плата AS-sam7X (рис. 14) имеет следующие аппаратные ресурсы:
• микроконтроллер AT91SAMX128;
• температурный датчик AD7415;
• стабилизатор напряжения питания (3,3 В);
• штыревые разъемы для подключения внешних аналоговых сигналов (до 8);
• разъем PLS5 для вывода аналоговых сигналов с внешнего ЦАП;
• разъем BH20 для подключения JTAG-эмулятора (AT91SAM-ICE);
• разъем для интерфейса Ethernet 10/100 Мбит/с;
• разъем USB (B), интерфейс USB;
• разъем RJ45, интерфейс RS-485;
• разъем DRB-9, интерфейс DBGU-RS-232;
• разъем PLS5, дополнительный интерфейс RS-232;
• разъемы BH10 и BH40 для подключения внешних сигналов к портам контроллера;
• разъем BH28 для подключения модуля радиоинтерфейса;
• разъем PLS5, два оптоизолированных ключа с «сухими» контактами;
• 5 пользовательских кнопок и кнопка Reset;
• 4 пользовательских светодиода.
На плате предусмотрено место для распайки следующих дополнительных компонентов:
• микросхема ПЗУ серии DataFlash (AT45) в корпусе TSOP28;
• микросхема ПЗУ серии DataFlash (AT45) в корпусе SOIC8;
• двухканальный 8/10/12-разрядный ЦАП AD5302/12/22;
• кабель USB (А-В);
• кабель RS-232;
• ответная часть разъема питания;
• компакт-диск.
Содержимое компакт-диска:
• техническое описание платы;
• принципиальная схема платы в формате pdf;
• технические описания микросхем, входящих в состав платы;
• пакет программ (IAR Kickstart);
• программа для загрузки Flash-ПЗУ (SAM-BA).
Летом 2006 года начат выпуск платы на базе контроллера AT91SAM7X128.
Рис. 14. Плата AS-sam7X
• трехосевой интегральный датчик ускорений ADXL330;
• часы реального времени DS1307 с возможностью подключения батареи питания;
• разъем для MMC-карт;
• разъемы для установки навесных плат;
• генератор тактового сигнала для модуля радиоинтерфейса;
• разъем PLS-6 для 4 аналоговых входов с питанием;
• разъем для подключения графического ЖК-индикатора 84x48 точек.
Для микросхем SAM7 доступны примеры следующих программ:
• BasicADC-IAR4_30A-1_2 Пример работы с АЦП.
• BasicFlash-IAR4_30A-1_2 Пример работы с Flash-памятью.
• BasicMouseUSB-IAR4_30A-1_2
Пример программы виртуальной компьютерной мыши.
• BasicPDC-IAR4_30A-1_2
Пример работы с DMA-контроллером.
• BasicTools-IAR4_30A-1_2
Пример работы с клавиатурой и светодиодами.
• BasicTWI-IAR4_30A-1_2
Пример работы с интерфейсом TWI.
• BasicUSART_USB-IAR4_30A-1_2 Пример преобразователя интерфейса UART-USB.
• BasicUSB-IAR4_30A-1_2
Пример устройства USB (Full Speed).
• FastForcingInterrupt-IAR4_30A-1_2 Пример работы с FIQ прерыванием.
• Interrupt-IAR4_30A-1_2
Пример работы с IRQ прерыванием.
• MIPS-IAR4_30A-1_2
Пример измерения скорости вычислений.
• PeriodicIntervalTimer-IAR4_30A-1_2 Пример работы с интервальным таймером.
• PWMAudio-IAR4_30A-1_2
Пример работы с ШИМ-контроллером.
Эти и другие примеры программ можно найти на специализированном сайте корпорации ATMEL — w ww.at91.c om. Там же размещена документация и работает форум разработчиков.
Дополнительную информацию можно найти на сайте разработчика Си-компилятора — компании IAR Systems (w ww.iar.c om).
Программное обеспечение для загрузки памяти программ микроконтроллеров семейства SAM7 называется SAM-BA (SAM Boot Assistant) и может быть загружено с сайтов w ww .atmel.co m и w ww .argussoft.r u/atmel.
Заключение
Современные встроенные системы управления быстро перерождаются во встроенные сети, часто объединяющиеся друг с другом через Интернет. Эта тенденция изменяет критерии выбора микроконтроллеров для многих встроенных приложений. Микроконтроллеры должны предлагать широкие ком-
муникационные возможности, основанные на промышленных стандартах, таких как USB, CAN и Ethernet. Архитектура MCU должна позволять передавать большие объемы данных без ущерба для производительности процессора. Использование таких систем в сетях общего пользования требует применения кодирования данных и надежного хранения кодов доступа. Тем не менее, нет необходимости применять системы чрезмерно высокой производительности исходя только из того факта, что встроенные системы являются системами реального времени, независимо от того, подключены они к сети или нет. Однако, при выборе типа микроконтроллера разработчикам следует учитывать уровень аппаратных возможностей для поддержки приложений режима реального времени. Как минимум, микроконтроллер должен обеспечивать детерминистичную обработку и иметь встроенные средства слежения за качеством питания. ■
Литература
1. Технические описания микросхем AR91SAM7 ww w .atmel.c om/products/AT91/
2. Материалы дистрибьюторских семинаров ATMEL ht tp:/ /atmel.argussoft.r u/articles.h tm
3. Статья Networked Networks and Embedded Microcontroller Architectures, ATMEL Application Journal, Number 6, Winter 2006, авторы Jako Wilbrink, Dany Nativel, Tim Martin.