Каталог статей

Главная » Все схемы » Теория » Изучаем микроконтроллеры

Выбранная схема!!!


2415
Эквивалентные схемы узлов и блоков МК . Подсистема программирования.

МК отличается от обычной микросхемы тем, что в него после покупки надо предварительно «прошить», т.е. записать, программу. Незапрограммированный МК в изделии бесполезен. Он будет исправно потреблять ток, но программно зациклится в «беге на месте», не производя никакой осмысленной работы.

Для программирования нужен программатор. Здесь первым делом надо договориться о терминологии [2-1]. При массовом производстве обычно используют промышленные программаторы (Рис. 2.3), имеющие самостоятельные органы управления, контроля, индикации.

Для мелкосерийного и единичного производства (читай «домашних условий») рациональнее использовать компьютерные программаторы. В их основе лежит простая формула: «Программатор = <Электрический адаптер> + <Компьютер> + <Программа>». Адаптер легко изготовить самостоятельно. Компьютер является частью рабочего места радиолюбителя, а управляющая программа доступна в Интернете и, как правило, бесплатна.

Различают автономные (Рис. 2.4) и внутрисхемные (Рис. 2.5) компьютерные программаторы. Первые из них работают в независимом режиме. Микросхема МК вручную устанавливается в панельку, программируется, затем извлекается из панельки и переносится в готовое изделие. Вторые из них используют специальный технологический разъём, расположенный на плате изделия. Через него, не выпаивая МК, можно в любой момент «перепрошить» флэш-ПЗУ.

Очень часто в Интернете (да и в технической литературе) «программатором» почему-то называют именно электрический адаптер, хотя это и не совсем верно.

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


способности МК, для предварительного ввода в него программы-загрузчика, для смены режимов работы через конфигурационные биты.


Новые термины «программа-загрузчик» и «конфигурационные биты» будут рассматриваться дальше, но для начала надо чётко представлять их физическое местоположение в памяти. Судя по стрелкам, изображенным на Рис. 2.6, три области памяти из четырёх доступны для внешнего программирования. Информация в них сохраняется при выключении источника питания.

Четвёртая область, ОЗУ или, по-английски, RAM, служит для временного хранения данных. В ОЗУ находятся регистры специальных функций SFR (Special Function Register), отвечающие за текущий режим работы МК. Их подробное описание приводится в даташитах, причём единого стандарта не существует (а жаль!). Каждый регистр из области SFR имеет своё уникальное имя, например, MCUCR, RAMPZ и т.д.

Для изменения состояния регистра достаточно записать в него


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

Таблица 2.1. Разновидности типов памяти у разных МК

Тип памяти МК

Расшифровка

Выполняемые функции

Mask ROM

Masked Read Only Memory

Масочное ПЗУ, программируемое при изготовлении кристалла микросхемы

OTPROM

One-Time Programmable ROM

ПЗУ, однократно программируемое пользователем (самостоятельно)

QTPROM

Quick-Turn Programmable ROM

ПЗУ, однократно программируемое на заводе-изготовителе по кодам пользователя

SQTPROM

Serialized QTPROM

То же, что QTPROM, но каждому МК присваивается уникальный серийный номер

UV EPROM

Ultra Violet Erasable Programmable ROM

ПЗУ, стираемое ультрафиолетовым облучением кристалла через прозрачное окно в корпусе

EEPROM

Electrical EPROM

Электрически стираемое ПЗУ с произвольным доступом к ячейкам (ЭСПЗУ)

Flash

Флэш-ПЗУ (в переводе с англ. «вспышка»)

Электрически стираемое ПЗУ с блочным доступом к ячейкам

RAM

Random Access Memory

Статическое ОЗУ (реже динамическое ОЗУ) с произвольным доступом к ячейкам

SFR

Special Function Register

Отдельная область ОЗУ, где хранятся настройки текущего режима работы МК

ROM-less

«Без ПЗУ»

ПЗУ в МК отсутствует, управляющая программа вводится с внешнего носителя

Fuse, Option Bits, Configuration Bits

Конфигурационные биты

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

BootLoader

Программа-загрузчик (Bootstrap Loader)

Записанная в флэш-ПЗУ небольшая программа, через которую многократно переписывается основная программа МК

Разновидности технологий программирования

В разных микроконтроллерных платформах при программировании применяются свои фирменные средства, технологии и даже названия, а именно:

• ISP (In-System Programming), ICSP (In-Circuit Serial Programming), ISSP (In-System Serial Programming) — низковольтное последовательное программирование (Рис. 2.7, а);

^ JTAG (Joint Test Action Group) — низковольтное шлейфное программирование по стандарту IEEE Std 1149.1 с возможностью отладки (Рис. 2.7, б);

^ debugWire — низковольтное однопроводное программирование с возможностью отладки (Рис. 2.7, в);

^ BootLoader — низковольтное программирование, при котором в ПЗУ МК сначала заносятся коды загрузчика на другом программаторе (Рис. 2.7, г, д);

^ HVSP (High Voltage Serial Programming) — высоковольтное последовательное программирование (Рис. 2.7, е);

• HVPP (High Voltage Parallel Programming) — высоковольтное параллельное программирование (Рис. 2.7, ж).


Разделение на низкие и высокие «вольты» произошло исторически. Первые МК программировались повышенным напряжением +8...14/+24...27 В и требовали извлечения микросхемы из панельки на плате устройства. По мере совершенствования технологии инженеры-конструкторы научились встраивать повышающие DC/DC-преобразователи напряжения прямо на подложку кристалла микросхемы. Программирование стало низковольтным от +5 В и внутрисхемным, поскольку теперь не требовалось извлекать МК из панельки.

Разделение на «параллельное» и «последовательное» программирование тоже имеет исторические корни. На заре микроконтроллерной эры потребители старались удешевить производство, заказывая на заводе-изготовителе крупные партии МК с определённой версией программы. Промышленное тиражирова-

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

С широким внедрением низковольтных адаптеров оказалось, что выгоднее производить программирование небольших партий МК у себя на фирме. Несколько лишних секунд задержки «погоды не делают», зато экономия и удобство налицо. Однако прощаться с параллельным режимом ещё рано, т.к. через него в некоторых МК, например, Atmel ATmega, «прошиваются» важные конфигурационные биты. Говорят, для совместимости поколений «снизу-вверх».

Следующей заметной вехой стало объединение процесса программирования с отладкой программы. Технологии JTAG, debugWire дают программисту полный контроль над аппаратной начинкой МК, позволяют останавливать работу программы в нужных точках, проверять состояние портов и регистров в режиме реального времени. Это инструмент для профессионалов. Как правило, такие отладчики имеют вид заводских фирменных модулей со своим программным обеспечением. Любительские разработки тоже существуют, но они требуют высокой квалификации исполнителя.

Ещё одно интересное направление — это удалённое программирование через программу-загрузчик (BootLoader). Предварительно в МК «прошивается» короткая загрузочная программа, которая при определённых условиях может перепрограммировать своё собственное флэш-ПЗУ и ячейки EEPROM. Похоже на простейшую интеллектуальную систему с элементами самообучения. Такой себе «внутримикросхемный робот». Коды новой прошивки передаются в МК из компьютера по одному из доступных каналов связи: USB, COM, I2C, IrDA и т.д. Если компьютер программатора будет подключён к Интернету, то сменить прошивку можно с другого удалённого компьютера, находясь в любой точке Земного шара.

Самые дальновидные программисты вводят в загрузчик криптозащиту, чтобы байты, передаваемые по свободному каналу связи, не могли быть расшифрованы посторонним человеком. В некоторых МК программа-загрузчик является изначально встроенной в память. Её коды технологически вводятся в матрицу прямо на заводе-изготовителе. Примеры — Philips LPC2104 («On-Chip BootLoader Software») и Texas Instruments MSP430F (начальный аппаратный загрузчик BSL).

Область памяти загрузчика защищается от просмотра и изменения специальными конфигурационными битами. Для первого знакомства достаточно знать, что конфигурационные биты (они же «fuse», «Fuse Bits», «Fuses», «Option Bits», «фьюзы») — это некоторые ячейки памяти МК, которые можно многократно прошивать в «1» или «0» с помощью программатора.

Название «fuse» ввела в оборот фирма Atmel, чьи МК очень популярны. Однако этот термин несколько двусмысленен, т.к. обычно он обозначает пережигаемую перемычку, используемую в однократно программируемых ПЗУ. Такую перемычку восстановить невозможно — в отличие от содержимого конфигурационных битов, которое может быть обнулено в процессе полного стирания памяти МК. Однако из основной программы этого сделать нельзя, что, по-видимому, и привело к выбору терминологии. Стоит отметить, что в русскоязычном Интернете часто используют транскрипцию английского термина — «фьюз».

Расшифровка назначений конфигурационных битов приводится в даташи-тах. Конфигурационными битами можно также считать и биты защиты LockBits.

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

Микросхем, которые поддерживают все известные способы «последовательно-параллельного» программирования, не существует. Обычно доступны один, два или три разных способа. Самое важное, что все современные МК могут программироваться внутрисхемно. Это позволяет использовать простые и надёжные программаторы, работающие в протоколе SPI (Serial Programming Interface). В нём за-действуются линии портов с запоминающимися названиями MISO, MOSI, SCK.

С электрической точки зрения выводы, участвующие в программировании, являются обычными входами/выходами КМОП-элементов. Придумывать самому схемы адаптеров программаторов не надо, их легче найти в Интернете.

Реальные схемы компьютерных программаторов

Первое практическое задание, которое должен выполнить любой человек, желающий освоить МК, заключается в изготовлении (приобретении) программатора. Ориентироваться надо на низковольтные варианты с последовательным интерфейсом связи. В Табл. 2.2 приведены адреса сайтов, содержащих схемные решения для 8-битных AVR- и PIC-контроллеров [2-2].

Таблица 2.2. Перечень сайтов, посвящённых программаторам для AVR- и PIC-контроллеров


Среди программаторов выделяются следующие группы:

• USB — самые быстрые и перспективные, но относительно сложные;

• LPT — самые простые в изготовлении, но не всегда стабильно работающие;

• COM — самые массовые в любительской среде (на сегодняшний день), но с низкой скоростью программирования.

В Табл. 2.3 даны ссылки на бесплатные универсальные оболочки, используемые в программаторах с интерфейсами USB, LPT, COM. Без них «железная» часть устройства функционировать не будет. Кроме универсальных, существуют и узкоспециализированные оболочки, рассчитанные только на одну платформу МК, например, «AVRDUDE» (Atmel AVR), «PICkit-2» (Microchip PIC) и т.д.

Таблица 2.3. Перечень универсальных оболочек для программирования


Категория: Изучаем микроконтроллеры | Добавил: Администратор (31.10.2011)
Просмотров: 6270 | Теги: блоков, Эквивалентные, МК, программирования., Подсистема, схемы, узлов | Рейтинг: 1.0/1


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024