Главная
Новости
Строительство
Ремонт
Каркасный дом
Несущие конструкции
Металлические конструкции
Прочность дорог
Дорожные материалы
Стальные конструкции
Грунтовые основания
Опорные сооружения




30.09.2022


30.09.2022


30.09.2022


29.09.2022


29.09.2022


29.09.2022


29.09.2022





Яндекс.Метрика

Внутрисхемное программирование

23.09.2022

Внутрисхемное программирование (англ. in-system programming, сокр. ISP, также in-circuit serial programming, ICSP) — технология программирования электронных компонентов (ПЛИС, микроконтроллеры и т. п.), позволяющая программировать компонент, уже установленный в устройство. До появления этой технологии компоненты программировались перед установкой в устройство, для их перепрограммирования требовалось их извлечение из устройства.

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

Микросхемы, имеющие возможность внутрисхемного программирования, обычно имеют специальную схему, генерирующую напряжения, необходимые для программирования, из обычного напряжения питания, а также схему для коммуникации с программатором посредством последовательного интерфейса (большинство микросхем использует вариации протокола JTAG). Программирование через интерфейс ISP происходит по пяти линиям связи: MOSI, MISO, SCK, RESET и GND.

Существуют два основных способа ISP:

  • программатор работает с ПЗУ и EEPROM микроконтроллера (МК) как с внешней памятью, самостоятельно размещая байты прошивки по нужным адресам. Ядро МК при этом не задействовано, а выводы переведены в высокоимпедансное состояние;
  • используется загрузчик (bootloader) — небольшая программа, записанная обычно в конце ПЗУ МК. При этом сектор ПЗУ, отведённый под загрузчик, должен быть отмечен тем или иным способом (обычно установкой конфигурационного бита в состояние, указывающее на наличие загрузчика и объём ПЗУ (с конца) под него отведённый). В этом случае при старте МК управление передаётся сначала загрузчику (вектор старта переносится с нулевого адреса ПЗУ на первый байт сектора загрузчика). Загрузчик проверяет наличие заранее определённых условий (комбинации сигналов на выводах МК, состояние переменной в EEPROM и т. п.) и, если условия не совпадают, передаёт управление основной программе. Если же условия совпадают, загрузчик переходит в режим программирования, готовый принимать данные через любой, заранее определённый программистом, интерфейс и размещать их в ПЗУ. При этом МК программирует «сам себя».

Преимущество загрузчика заключается в том, что возможно программирование МК через любой имеющийся у него интерфейс любым удобным протоколом (даже зашифрованным, если загрузчик возьмёт на себя и расшифровку). Загрузчик также удобен при удалённом обновлении прошивки МК. Недостаток — часть ПЗУ недоступна для размещения основной программы.

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

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


Имя:*
E-Mail:
Комментарий: