Внутрисистемное программирование - In-system programming

6- и 10-контактные разъемы AVR ISP

Внутрисистемное программирование (ISP), также называемый внутрисхемное последовательное программирование (ICSP), это способность некоторых программируемые логические устройства, микроконтроллеры, и другие встроенные устройства быть запрограммированным при установке в полную систему, вместо того, чтобы требовать программирования чипа перед его установкой в ​​систему. Это позволяет доставлять обновления прошивки во встроенную память микроконтроллеров и связанных процессоров, не требуя специальной схемы программирования на печатной плате, и упрощает работу по проектированию.[1]

Существует несколько взаимно несовместимых протоколов внутрисистемного программирования для программирования. микроконтроллер устройства, в том числе Микроконтроллеры PIC, AVR, а Параллакс пропеллер. ICSP в основном реализован Технология микрочипов для программирования устройств PIC и dsPIC.

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

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

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

История

Начиная с начала 90-х годов мы стали свидетелями важной технологической эволюции в архитектуре микроконтроллеров. Сначала они были реализованы в двух возможных решениях: OTP (одноразовый программируемый) или с Память EPROM. В этих технологиях процесс стирания памяти требует, чтобы микросхема подвергалась воздействию ультрафиолетового света через специальное окно над корпусом. В 1993 г. Технология микрочипов представил первый микроконтроллер с EEPROM память: PIC16C84. Память EEPROM можно стереть электрически. Эта функция позволила снизить затраты на реализацию за счет удаления окна стирания над пакетом и запуска технологии внутрисистемного программирования. С помощью ISP процесс перепрошивки может быть выполнен прямо на плате в конце производственного процесса. Эта эволюция дала возможность объединить этапы программирования и функционального тестирования и в производственных средах, а также начать предварительное производство плат, даже если разработка прошивки еще не завершена. Таким образом, можно было исправить ошибки или внести изменения позже. В том же году, Атмель разработала первый микроконтроллер с флэш-памятью, который проще и быстрее программировать и с гораздо более длительным жизненным циклом по сравнению с памятью EEPROM.

Микроконтроллеры, поддерживающие ISP, обычно снабжены выводами, используемыми периферийным устройством последовательной связи для взаимодействия с программатором, памятью Flash / EEPROM и схемой, используемой для подачи напряжения, необходимого для программирования микроконтроллера. Периферийное устройство связи, в свою очередь, подключается к периферийному устройству программирования, которое обеспечивает команды для работы с памятью Flash или EEPROM.

При разработке электронных плат для программирования ISP необходимо принять во внимание некоторые рекомендации, чтобы этап программирования был как можно более надежным. Некоторые микроконтроллеры с небольшим количеством контактов разделяют линии программирования с линиями ввода-вывода. Это может стать проблемой, если необходимые меры предосторожности не будут учтены при проектировании платы; во время программирования устройство может повредить компоненты ввода / вывода. Кроме того, важно подключить линии Интернет-провайдера к высокий импеданс схемы, чтобы избежать повреждения компонентов программистом и потому, что микроконтроллер часто не может обеспечить достаточный ток для управления линией. Многим микроконтроллерам требуется выделенная линия RESET для входа в режим программирования. Необходимо обращать внимание на ток, подаваемый на линейный проезд, и проверять наличие сторожевые собаки подключен к линии RESET, которая может вызвать нежелательный сброс и, следовательно, привести к ошибке программирования. Более того, некоторым микроконтроллерам требуется более высокое напряжение для входа в режим программирования, и, следовательно, необходимо убедиться, что это значение не ослаблено и что это напряжение не передается на другие компоненты на плате.

Промышленное применение

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

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

Второй метод использует контрольные точки на борту. Это определенные области, размещенные на печатной плате, или Печатная плата, которые электрически связаны с некоторыми электронными компонентами на плате. Контрольные точки используются для выполнения функциональных тестов компонентов, установленных на плате, и, поскольку они подключены непосредственно к некоторым контактам микроконтроллера, они очень эффективны для ISP. Для средних и больших объемов производства использование контрольных точек является лучшим решением, поскольку позволяет интегрировать этап программирования в сборочную линию.

В производственных линиях доски размещаются на гвоздях, называемых приспособление. Последние интегрируются в зависимости от объемов производства в полуавтоматические или автоматические испытательные системы, называемые ATE - Автоматическое испытательное оборудование. Крепления специально разработаны для каждой платы - или, самое большее, для нескольких моделей, похожих на плату, для которой они были разработаны - поэтому они взаимозаменяемы в системной среде, в которую они интегрированы. После того, как плата и приспособление размещены в нужном положении, в тестовой системе есть механизм, позволяющий контактировать иглы приспособления с контрольными точками на плате для тестирования. Система, к которой он подключен или напрямую интегрирован внутри, программистом интернет-провайдера. Он должен программировать устройство или устройства, установленные на плате: например, микроконтроллер и / или последовательную память.

Микрочип ICSP

Для большинства микроконтроллеров Microchip программирование ICSP выполняется с использованием двух выводов, часов (PGC) и данных (PGD), в то время как высокое напряжение (12 В) присутствует на выводе Vpp / MCLR. Программирование низкого напряжения (5 В или 3,3 В) обходится без высокого напряжения, но оставляет за собой исключительное использование вывода ввода / вывода. Однако для более новых микроконтроллеров, в частности семейств микроконтроллеров PIC18F6XJXX / 8XJXX, переход в режимы ICSP немного отличается.[2] Для входа в режим ICSP Program / Verify необходимо выполнить следующие три шага:

  1. Напряжение на короткое время подается на вывод MCLR (master clear).
  2. 32-битная последовательность ключей представлена ​​на PGD.
  3. Напряжение повторно подается на MCLR.
Микрочип Возьми Программист ICSP

Отдельное оборудование, называемое программатором, требуется для подключения к порту ввода-вывода ПК с одной стороны и к PIC с другой стороны. Список функций для каждого основного типа программирования:

  1. Параллельный порт - большой и громоздкий кабель, большинство компьютеров имеют только один порт, и замена кабеля программирования на подключенный принтер может быть неудобной. Большинство ноутбуков новее 2010 года не поддерживают этот порт. Программирование параллельного порта выполняется очень быстро.
  2. Серийный порт (COM-порт) - В свое время самый популярный метод. Последовательным портам обычно не хватает напряжения питания для программирования цепей. Большинство компьютеров и ноутбуков новее 2010 года не поддерживают этот порт.
  3. Разъем (в цепи или вне цепи) - ЦП необходимо либо снять с печатной платы, либо к месту изготовления микросхемы необходимо прикрепить зажим.
  4. USB-кабель - Маленький и легкий, имеет поддержку источника напряжения, и у большинства компьютеров есть дополнительные порты. Расстояние между программируемой схемой и компьютером ограничено длиной USB-кабеля - обычно она не должна превышать 180 см. Это может создать проблемы для программирования устройств глубоко в машинах или шкафах.

Программисты ICSP имеют много преимуществ, среди которых основными особенностями являются размер, доступность компьютерного порта и источник питания. Из-за различий в схеме соединения и целевой цепи, окружающей микроконтроллер, нет программатора, который бы работал с все возможные целевые цепи или межсоединения. Микрочип предоставляет подробное руководство по программированию ICSP[3] Многие сайты предоставляют примеры программирования и схем.

PIC программируются с использованием пяти сигналов (шестой контакт «aux» предусмотрен, но не используется). Данные передаются по двухпроводной синхронной последовательной схеме, еще три провода обеспечивают программирование и питание микросхемы. Тактовый сигнал всегда контролируется программистом.

Типичное программирование коммуникации

Сигналы и распиновка

Pic icsp.jpg
Типовые соединения микросхемы
  • Vpp - Режим программирования напряжения. Он должен быть подключен к выводу MCLR или Vpp вывод дополнительного порта ICSP, доступного на некоторых PIC с большим количеством выводов. Чтобы перевести PIC в режим программирования, эта строка должна находиться в заданном диапазоне, который варьируется от PIC до PIC. Для 5 V PIC, это всегда некоторая сумма выше Vдд, и может достигать 13,5 В. Микросхемы PIC с напряжением только 3,3 В, такие как серии 18FJ, 24H и 33F, используют специальную подпись для входа в режим программирования и Vpp это цифровой сигнал, который находится либо на земле, либо на Vdd. Нет никого Vpp напряжение, которое находится в пределах допустимого Vpp ассортимент всех PIC. Фактически, минимально необходимый Vpp уровень для некоторых PIC может повредить другие PIC.
  • Vдд - Это положительный вход питания PIC. Некоторые программисты требуют, чтобы это обеспечивалось схемой (схема должна быть хотя бы частично включена), некоторые программисты рассчитывают управлять этой линией самостоятельно и требуют, чтобы схема была отключена, в то время как другие могут быть настроены в любом случае (например, Microchip ICD2) . Программисты Embed Inc рассчитывают запустить Vдд линии и требуют, чтобы целевая цепь была отключена во время программирования.
  • Vсс - Отрицательная подача питания на PIC и опорный сигнал нулевого напряжения для остальных сигналов. Напряжения остальных сигналов неявно относятся к Vсс.
  • ICSPCLK - Линия часов последовательного интерфейса данных. Эта линия переходит от GND к Vдд и всегда им движет программист. Данные передаются на заднем фронте.
  • ICSPDAT - Последовательная линия передачи данных. Последовательный интерфейс является двунаправленным, поэтому этой линией может управлять программист или PIC, в зависимости от текущей операции. В любом случае эта линия переключается с GND на Vdd. Бит передается на заднем фронте PGC.
  • AUX / PGM - В новых контроллерах PIC этот вывод используется для включения программирования низкого напряжения (LVP). Удерживая PGM на высоком уровне, микроконтроллер перейдет в режим LVP. Микроконтроллеры PIC поставляются с включенным LVP, поэтому, если вы используете новый чип, вы можете использовать его в режиме LVP. Единственный способ изменить режим - использовать программатор высокого напряжения. Если вы запрограммируете микроконтроллер без подключения к этому выводу, режим не изменится.

Распиновка RJ11

Промышленный стандарт использования Розетки RJ11 с программатором ICSP поддерживается Microchip. На иллюстрации представлена ​​информация, представленная в их технических паспортах. Однако здесь есть место для путаницы. Таблицы данных PIC показывают перевернутую розетку и не дают наглядного изображения распиновки, поэтому неясно, на какой стороне разъема находится контакт 1. Представленная здесь иллюстрация непроверенный но использует стандартную для телефонной отрасли распиновку (вилка / розетка RJ11 была первоначально разработана для проводных настольных телефонов).

RJ11 для программатора ICSP PIC

использованная литература

Смотрите также