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

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

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

Стандартных протоколов внутрисистемного программирования для программирования микроконтроллерных устройств не существует. Практически все производители микроконтроллеров поддерживают эту функцию, но все они реализовали свои собственные протоколы, которые часто отличаются даже для разных устройств от одного производителя. Как правило, современные протоколы стараются поддерживать низкое количество используемых контактов, обычно до 2 контактов. Некоторым интерфейсам ISP удается достичь того же с помощью всего одного контакта, другие используют до четырех для реализации интерфейса JTAG .

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

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

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

История

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

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

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

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

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

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

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

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

Микрочип ICSP

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

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

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

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

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

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

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

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

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

Распиновка RJ11

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

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

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

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