MSP430F21x1 Обзор архитектуры
1 Введение
Семейство микроконтроллеров (МК) MSP430 сочетает в себе низкое энергопотребление и весьма гибкую архитектуру, что делает его незаменимым для широкого круга применений, где требуется особо низкий потребляемый ток. Такими применениями являются счётчики электроэнергии, переносные измерительные устройства и бытовые приборы, другие устройства, работающие длительное время без смены батарей. Главные преимущества семейства MSP430:
- Особо низкое энергопотребление
- Комплексная система обработки смешанных сигналов (SoC) на одном кристалле
- Использование современных технологий программирования
Со времени появления первых устройств серии MSP430, более 30,000 разработчиков по всему миру выбрали данную архитектуру, создав за это время огромное количество разнообразных устройств, от простых, таких, как термостаты и счётчики электроэнергии, до изменивших жизнь миллионов диабетиков во всём мире переносных измерителей уровня глюкозы в крови. Высокая популярность семейства обусловила необходимость дальнейшего развития серии. Требования к разработкам постоянно растут и зачастую являются противоречивыми, например повышение производительности сочётается с понижением энергопотребления, снижением цены и работой в жёстких климатических условиях.
Для обеспечения таких требований к разработкам была разработана новая серия MSP430F2xx, в которой были учтены требования снижения цены и повышения производительности для работы как в устройствах с пониженным потреблением, так и в приборах общего применения. Потребляя менее 1 микроампера в дежурном режиме и обладая при этом способностью переключиться в режим синхронной работы со скоростью 16 миллионов инструкций в секунду (MIPS) за время менее одной микросекунды, новое семейство MSP430F2xx обеспечивает удвоенную производительность при половинном энергопотреблении по сравнению с более ранней серией MSP430F1хх.
2 Обновления
2.1 Микропотребляющий модуль сброса Brownout Reset
Все устройства серии MSP430F2xx содержат микропотребляющий модуль сброса по понижению питания (BOR). Модуль BOR определяет понижение питающего напряжения ниже уровня, безопасного для выполнения программы и переключает при этом условии микроконтроллер в состояние сброса (reset). Эта функция предотвращает непредсказуемое поведение устройства. Кратковременное понижение питающего напряжения – весьма сложно диагностируемая проблема. Например, она может возникать при простой операции замены батарей. При этом могут появляться случайные кратковременные броски питающего напряжения. Микропотребляющий модуль сброса по понижению питания BOR, присутствующий в серии MSP430F2xx, впервые появился в семействе MSP430F4xx и также присутствует в новых устройствах серии MSP430F1xx.
- Наличие модуля BOR повышает устойчивость работы устройства в тяжёлых эксплуатационных условиях, где может присутствовать нестабильность питающего напряжения.
- Функция BOR в MSP430 постоянно включена. Аналогичные решения других фирм потребляют ток величиной более 10 мкA, что ограничивает их применение в микропотребляющих устройствах.
2.2 Повышение тактовой частоты
Для обеспечения требований повышенной производительности наряду с низким энергопотреблением, новая улучшенная система тактирования (BCS+) семейства MSP430F2xx (так же, как и в других устройствах серии MSP430), как правило, использует два тактовых сигнала. Низкочастотный вспомогательный источник тактирования (ACLK) работает непосредственно от обычного часового кварца частотой 32768 Гц без дополнительных внешних элементов и используется для постоянно включенных низкопотребляющих периферийных модулей. Высокочастотный сигнал тактирования генерируется непосредственно внутри МК, включен постоянно и имеет цифровой контроль (DCO). Генератор DCO используется процессором (CPU) и остальными периферийными модулями только по необходимости. Для обеспечения низкого энергопотребления управление генератором DCO может осуществляться пользователем по прерываниям, основное же время прибор может проводить в режиме standby, переключаясь в режим максимальной производительности на требуемое время лишь по необходимости. Система тактирования BCS+ совместима с более ранними системами тактирования семейства MSP430F1xx, но при этом включает в себя новые функции, позволяющие ещё более понизить потребление энергии, повысить помехоустойчивость и снизить стоимость прибора.
- Пониженное потребление в режиме standby – в этом режиме (также называемом real-time clock mode) энергопотребление снижено до <1 микроампера при напряжении питания 3В, по сравнению с 1.6 микроамперами в семействе MSP430F1xx. Этот режим имеет название «режим пониженного энергопотребления 3» (LPM3), активными при этом являются низкочастотный генератор ACLK, таймер, ОЗУ и прерывания. Пониженный потребляемый ток в режиме LPM3 является большим преимуществом в измерительных, промышленных и медицинских приборах, в которых основное время приходится на дежурный режим standby в ожидании использования. Например, в некоторых термостатах или распределителях достаточно измерять температуру с частотой не выше одного раза в несколько секунд. Таким образом, прибор находится в режиме LPM3 на протяжении более 99% рабочего времени. Уменьшение тока потребления в режиме LPM3 имеет в этом случае определяющее влияние на суммарный ток потребления и время работы от комплекта батарей.
- Встроенные конденсаторы с программируемой ёмкостью – добавление этой функции позволяет использовать более широкий диапазон кварцевых резонаторов без необходимости применения внешних компонентов, стабилизирующих генерацию. В семействе MSP430F1xx возможно только использование встроенных конденсаторов ёмкостью 12пФ.
- Устойчивый к сбоям кварцевый генератор – сбой в генерации вызывает немаскируемое прерывание и запускает встроенный генератор для бесперебойной работы. Эта функция доступна без дополнительного энергопотребления, как в режиме высокочастотного генератора, так и в низкочастотном режиме. Устойчивый к сбоям кварцевый генератор обеспечивает более надёжное функционирование прибора в тяжёлых условиях эксплуатации. Ранее, в семействе MSP430F1xx эта функция была доступна только в высокочастотном режиме.
- Встроенный фильтр (de-glitch) на входе генератора – эта функция снижает уровень высокочастотных помех, наводимых на вход генератора, повышая устойчивость системы.
- Выбор диапазона кварцевого резонатора в высокочастотном режиме – эта функция обеспечивает повышенную стабильность и позволяет использовать более дешёвые резонаторы с высоким эквивалентным сопротивлением (ESR).
- Улучшенный встроенный генератор с цифровым управлением (DCO) – обновлённый модуль DCO, входящий в состав BCS+ с гарантированным временем запуска менее 1 микросекунды, погрешностью не более ?2.5% и рабочей частотой до 16МГц во всём диапазоне рабочих температур и напряжений. Повышенная точность генератора DCO позволяет во многих случаях избавиться от внешнего кварцевого резонатора и снизить, таким образом, стоимость системы. Следует отметить, что генератор DCO запускается непосредственно на запрограммированной частоте, не требуя дополнительного времени для стабилизации. Это важно в задачах, где требуется моментальный доступ к генератору с известной и стабильной частотой, таких, как обмен данными по УАПП (UART). Без обеспечения стабильности, быстрый запуск тактового генератора в таких задачах не имеет смысла.
2.3 Улучшенная встроенная Flash-память
Ввиду того, что стоимость Flash-памяти в последнее время вплотную приблизилось к стоимости однократной ПЗУ (ROM) а также благодаря высокой гибкости, присущей системам с внутрисхемным программированием (ISP), Flash-память де-факто стала стандартом в наиболее современных МК. В большинстве устройств, основанных на микроконтроллерах серии MSP430, в настоящее время чипы с flash-памятью используется как для прототипов, так и для массовой продукции.
Изменения в программу прибора могут вноситься и проверяться от дня начала разработки вплоть до дня его непосредственного выпуска. Также имеется возможность для обновления прошивок непосредственно на месте эксплуатации и самим заказчиком. Использование внутрисхемного программирования Flash-памяти наряду со встроенным эмулятором позволяет отлаживать систему на конкретном чипе, запаянном в конкретное устройство, работающее при определённых эксплуатационных условиях.
Вся Flash-память микроконтроллеров MSP430 работает во всём диапазоне рабочих частот, питающих напряжений и токов потребления, присущих данным устройствам. В семействе MSP430F2xx применена улучшенная Flash-технология со следующими новыми особенностями:
- Минимальное напряжение программирования/стирания понижено с 2.7В до 2.2В – это изменение на 0.5В имеет важное значение в тех случаях, когда прибор питается от двух алкалиновых (alkaline) батарей. Питающее напряжение в этом случае имеет диапазон от 3.3В до 1.8В. С учётом того, что кривая разряда таких батарей имеет характер, близкий к линейному, понижение напряжения программирования с 2.7В до 2.2В увеличивает почти на 50% время, в течение которого можно использовать ISP.
- Время программирования снижено до 17 мкс на байт, время полного стирания – до 20 мс. Ускоренный процесс записи/стирания вкупе с уменьшенным до 64 байт размером сектора и прерываемым алгоритмом ISP позволяют в большинстве случаев отказаться от использования внешней EEPROM. При этом снижается цена устройства и его размер.
2.4 Улучшенная защита программной памяти
Программатор на основе загрузочного сектора (BSL) даёт возможность доступа к ресурсам MSP430 с использованием стандартного протокола УАПП (UART). В основном он используется для программирования Flash-памяти. Доступ через BSL защищён с помощью 256-битного пароля, значением которого является содержимое шестнадцати 16-битных векторов прерываний. В незапрограммированном чипе это значение известно и равно 0xFFFF, но в этом случае устройство не содержит никакой полезной информации. После программирования кристалла, только программист знает содержание векторов прерываний, а, следовательно, и сам 256-битный пароль к загрузчику BSL. В серии MSP430F2xx защита программной памяти улучшена благодаря повышению противовзломности алгоритма BSL, обладающего следующими новыми особенностями:
- Для уменьшения вероятности взлома, загрузчик BSL в серии MSP430F2xx производит полное стирание чипа после однократного приёма неверного 256-битного пароля. В более ранних версиях BSL в данном случае просто запрещался доступ.
- Для снижения вероятности случайного вызова программатора BSL из-за ошибки в программе, стирание и программирование средствами BSL возможно только при подаче корректной стартовой последовательности, после которой будет обнулён бит LOCK в контрольном регистре. Это делает случайное стирание программы посредством вызова программатора BSL практически невозможным, т.к. flash-память может быть стёрта или запрограммирована только в том случае, когда BSL был запущен в результате подачи корректной последовательности, и после этого была подана правильная команда.
2.5 Улучшения, касающиеся сторожевого (Watchdog) таймера
Основной функцией существующего в предыдущих сериях семейства MSP430 сторожевого таймера (watchdog) является генерация системного сброса в случае превышения определённого временного интервала, в течение которого отсутствует требуемая программная обработка. Улучшенный сторожевой таймер (WDT+) в серии MSP430F2xx был впервые представлен в микросхеме электросчётчика MSP430FE42x. Он позволяет обработать большее количество программных проблем. Ниже приведен список улучшений, добавленных в модуль WDT+ для повышения надёжности системы:
- Добавлена функция устойчивого к сбоям тактирования, которая запрещает остановку источника тактирования модуля WDT+ в режиме сторожевого таймера. Например, если в качестве источника тактирования модуля WDT+ выбран неисправный кварцевый генератор, то функция устойчивого к сбоям тактирования автоматически переключит источник тактирования модуля WDT+ на встроенный генератор, обеспечивая устойчивое к сбоям функционирование системы.
- Невозможно программно отключить активный источник тактирования модуля WDT+. Преимущество такого решения видно на примере обработчика прерываний (ISR), в котором в стек сохраняется содержимое статусного регистра (SR). В том случае, если программа случайно нарушит содержимое сохранённого в стеке SR таким образом, что все источники тактирования будут запрещены, по возврату из прерывания сторожевой таймер будет навсегда остановлен. Модуль WDT+ исключает подобные ситуации.
- Запрещено выполнение программы с адреса периферийного модуля. Являясь представителем Фон-Неймановской архитектуры, MSP430 имеет общее адресное пространство для программной памяти и периферийных модулей. Несмотря на это, переход программы по адресам, зарезервированным за периферийными модулями (от 0x0000 до 0x01FF) не имеет никакого смысла. В случае случайного возникновения такой ситуации, сторожевой таймер WDT+ осуществит программный сброс.
2.6 Дополнительные возможности
Семейство MSP430F2xx также обладает рядом дополнительных возможностей. Выводы портов 1 и 2 теперь имеют возможность включения встроенных подтягивающих резисторов (pull up/down). Использование таких резисторов позволяет обойтись без дополнительных внешних элементов, уменьшая цену и размер прибора, что особенно важно для портативных устройств. Микроконтроллер MSP430F21x1 в 24-выводном корпусе QFN занимает на плате площадь 4x4 мм, т.е. примерно столько же, сколько всего 2 резистора типономинала 1206. Таким образом, во многих случаях площадь, занимаемая внешними компонентами, значительно превышает площадь, занимаемую самим МК.
В 20/28-выводных устройствах серии MSP430F2xx выводы кварцевого генератора XIN/XOUT теперь совмещены с выводами порта P2.6 и P2.7, которые прежде были недоступны. Следовательно, в устройствах, не требующих внешнего кварцевого резонатора, становятся доступными два дополнительных вывода.
Модуль компаратора в семействе MSP430F2xx теперь снабжён входным мультиплексором, позволяющим расширить число измеряемых аналоговых сигналов.
3 Архитектура ядра MSP430
Обладая рядом новых дополнительных возможностей, семейство MSP430F2xx сохраняет совместимость с предыдущими устройствами серии MSP430 и использует такое же мощное 16-битное RISC-подобное ядро. Ядро MSP430 было спроектировано с учётом самых современных требований программирования. Разработчики стремились сделать его прозрачным – в том смысле, что даже максимально сложный код создаётся без значительных затрат времени на создание программных функций. Эффективность использования языка C на данный момент является ключевым требованием, т.к. всё большее количество разработчиков предпочитают использовать в работе только этот язык для обеспечения переносимости кода.
Почему такое внимание уделяется эффективности программы? Современное ядро, такое, как MSP430 является довольно компактным и занимает около 4 тысяч логических вентилей – это приблизительно эквивалентно 4-м килобайтам встроенной Flash-памяти. Таким образом, если встроенная память занимает 32КБ и выше, что диктуется требованиями обслуживания возросшей сложности программы, то размер кристалла и его цена будут в основной мере определяться именно памятью.
Учитывая это обстоятельство, архитектура, обеспечивающая максимальную плотность кода (т.е. использующая минимальный объём программной памяти для конкретной функции) даёт в результате максимальное снижение стоимости чипа.
Так как семейство MSP430 в основном предназначено для низкопотребляющих устройств, архитектура, обеспечивающая эффективность программы также позволяет дополнительно снизить потребление энергии благодаря уменьшению числа тактов, затрачиваемых на определённую функцию. Семейство MSP430 обеспечивает наивысшую плотность кода благодаря двустороннему подходу – интеллектуальным периферийным модулям и современному RISC-подобному ядру.
- Интеллектуальные периферийные модули – все модули, входящие в состав MSP430 разработаны с учётом минимального программного обслуживания. Например, АЦП имеют автоматическое сканирование входов, аппаратный запуск преобразования и, зачастую, механизмы прямого доступа к памяти DMA. Такой набор аппаратных возможностей предоставляет ЦПУ возможность перенаправить ресурсы на специфические задачи, не отвлекаясь на перемещение данных. Это даёт возможность разработки более дешёвых систем, требующих меньших программных ресурсов и потребляющих меньше энергии.
- Современное RISC-подобное ядро, обладающее максимальной плотностью кода благодаря своим особенностям (которые будут рассмотрены ниже)
Для рассмотрения задачи получения максимальной эффективности кода на языке C, попробуем взглянуть на проблему со стороны компилятора. Итак, что же «любит» компилятор? Очевидно, это ортогональность команд и большое количество идентичных регистров, не имеющих ограничений на хранимые ресурсы. Также ему требуется стек для передачи параметров и хранения временных переменных. Архитектура MSP430 была разработана с учётом этих пожеланий и выглядит следующим образом:
- Полностью ортогональный набор команд – несмотря на то, что архитектура MSP430 содержит всего 27 инструкций, каждая из них может быть использована с любым типом адресации в пределах всего адресного пространства. Эта особенность позволяет получить широкий набор функций при малом наборе команд, упростить и удешевить ЦПУ.
- Большое число регистров – кроме программного счётчика и указателя стека ядру доступны 12 идентичных 16-битных регистров общего назначения. Любой регистр может быть использован для хранения, как данных, так и указателя. При этом операции «регистр - регистр» выполняются за один такт. В этом принципиальное отличие семейства MSP430, от многих других МК, использующих единственный регистр или «аккумулятор».
- Отсутствие разбиения на страницы - 16-битная архитектура семейства MSP430 допускает непосредственную адресацию любой ячейки всего 64-килобайтного адресного пространства. В том числе, это касается доступа к встроенным периферийным модулям, таким, например, как 16-битные преобразователи данных. Эта особенность упрощает разработку программного обеспечения.
- Использование стека – указатель стека обладает теми же возможностями адресации, что и регистры общего назначения. При этом нет необходимости перемещения данных в базирующемся в ОЗУ стеке. Компилятор имеет возможность помещать параметры в стек и манипулировать ими в целях расширения возможностей ОЗУ.
- Использование переходов – анализ среднестатистической программы показывает, что около 10% кода составляют условные переходы. Для облегчения их реализации ядро поддерживает восемь однословных условных переходов с максимальной «дальностью» ?512.
- Примерно 20% среднестатистической программы обычно составляет простая операция чтение – модернизация - последующая запись операнда. В классической RISC-архитектуре это приводит к низкой плотности кода, т.к. операнд в этом случае обязательно проходит через регистр ЦПУ, используемый же регистр требуется сохранять и восстанавливать. Таким образом, использование трёх способов адресации (непосредственная, относительная и косвенная) обеспечивает минимизацию затрат на операции типа «память <> память» при сохранении полного набора инструкций. Наличие таких методов адресации позволяет существенно сократить размер кода и повысить производительность.
- Работа с байтами и словами – любая инструкция может использовать как 16-битные, так и 8-битные данные. Это особенно удобно для обработки таблиц, т.к. позволяет использовать наиболее удобный в каждом конкретном случае формат данных.
- Генератор констант – одним из факторов, влияющих на высокую эффективность программ для MSP430, является генератор констант, который аппаратно генерирует 6 наиболее часто используемых констант. Для этой цели автоматически используется один из регистров ЦПУ. Благодаря тому, что константы генерируются непосредственно в ядре, при этом не требуется чтение операнда из памяти, что экономит программную память и повышает скорость выполнения программы. Функция генератора констант является полностью автоматической и «прозрачной» для пользователя.
4 Ресурсы для отладки
Процесс разработки с использованием устройств семейства MSP430F2xx полностью совместим с ныне существующим семейством MSP430F1xx. Отладчик аппаратно включен в устройства, доступ к нему осуществляется при помощи стандартного интерфейса IEEE 1149 JTAG. Возможности встроенного отладчика MSP430 включают в себя полноскоростной и пошаговый режимы, аппаратные точки останова и контроль системы тактирования. При этом все эти функции осуществляет встроенная аппаратная логика, никаких дополнительных ресурсов не требуется. Тот факт, что отладка ведётся непосредственно на самом устройстве, встроенном в реальную систему исключает развитие событий по нежелательному сценарию «чёрт, но ведь оно же всё работало в эмуляторе!» ?
Встроенный эмулятор является особенно важным в малогабаритных и «аналогово-насыщенных» приборах, где использование внешнего эмулятора, подключенного длинными кабелями, способно полностью исказить картину. Программирование по интерфейсу JTAG используется не только в процессе разработки, но и при программировании в процессе производства, а также может быть использовано для последующих программных апгрейдов.
5 Заключение
Семейство MSP430F2xx обеспечивает удвоенную производительность при половинном потреблении в режиме stand-by по сравнению с более ранними устройствами семейства MSP430F1. Кроме того, серия MSP430F2xx обладает значительными улучшениями, позволяющими снизить общую стоимость прибора и повысить его функциональность, что делает микроконтроллеры данного семейства идеальным выбором как для уже существующих низкопотребляющих приборов на базе MSP430, так и в качестве отправной точки для множества новых разработок.
Пример программы:
|
|
119Kb slaa217.pdf Исходный фаил |
В продаже пылесосы и чайники vitek.
|