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

March 6, 2011 by admin Комментировать »

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

•     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, FC, 1гОАит.д, Если компьютер программатора будет подключён к Интернету, то сменить прошивку можно с другого удалённого компьютера, находясь в любой точке Земного шара.

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

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

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

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

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

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

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

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

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