Внутрисистемное программирование
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2022 г. ) |
Внутрисистемное программирование (ISP), или также называемое внутрисхемным последовательным программированием (ICSP), — это способность некоторых программируемых логических устройств , микроконтроллеров , наборов микросхем и других встроенных устройств программироваться при их установке в целостную систему, вместо того, чтобы требовать чип, который необходимо запрограммировать перед установкой его в систему. Это также позволяет доставлять обновления встроенного ПО во встроенную память микроконтроллеров и связанных с ними процессоров без необходимости использования специальных схем программирования на печатной плате и упрощает работу по проектированию. [1]
Обзор
[ редактировать ]Не существует стандарта протоколов внутрисистемного программирования для программирования микроконтроллерных устройств. Эту возможность поддерживают почти все производители микроконтроллеров, но все реализовали свои протоколы, которые зачастую различаются даже для разных устройств одного производителя. В целом, современные протоколы стараются минимизировать количество используемых контактов, обычно до двух. Некоторым интерфейсам ISP удается добиться того же с помощью всего одного контакта, другие используют до 4 для реализации интерфейса JTAG .
Основное преимущество внутрисистемного программирования заключается в том, что оно позволяет производителям электронных устройств интегрировать программирование и тестирование в один производственный этап и экономить деньги, вместо того, чтобы требовать отдельного этапа программирования перед сборкой системы. Это может позволить производителям программировать чипы на производственной линии своей собственной системы вместо того, чтобы покупать предварительно запрограммированные чипы у производителя или дистрибьютора, что делает возможным внесение изменений в код или дизайн в середине производственного цикла. Другое преимущество заключается в том, что в производстве всегда можно использовать новейшую прошивку, а новые функции, а также исправления ошибок могут быть реализованы и запущены в производство без задержек, возникающих при использовании предварительно запрограммированных микроконтроллеров.
Микроконтроллеры обычно припаиваются непосредственно к печатной плате и обычно не имеют схемы или места для большого внешнего кабеля программирования к другому компьютеру.
Обычно чипы, поддерживающие ISP, имеют внутреннюю схему для генерации любого необходимого напряжения программирования из нормального напряжения питания системы и связываются с программатором через последовательный протокол. Большинство программируемых логических устройств используют вариант протокола JTAG для ISP, чтобы облегчить интеграцию с процедурами автоматического тестирования. Другие устройства обычно используют собственные протоколы или протоколы, определенные более старыми стандартами. В системах, достаточно сложных, чтобы требовать умеренно большой связующей логики , разработчики могут реализовать подсистему программирования, управляемую JTAG, для устройств, отличных от JTAG, таких как флэш-память и микроконтроллеры, что позволяет выполнять всю процедуру программирования и тестирования под контролем одного протокола.
История
[ редактировать ]С начала 1990-х годов произошла важная технологическая эволюция в архитектуре микроконтроллеров. Сначала они были реализованы в двух возможных решениях: с OTP (одноразово программируемым) или со EPROM-памятью . В этих технологиях процесс стирания памяти требует воздействия на чип ультрафиолетового света через специальное окно над корпусом. В 1993 году компания Microchip Technology представила первый микроконтроллер с памятью EEPROM : PIC16C84. Память EEPROM можно стереть электрически. Эта функция позволила снизить затраты на реализацию за счет удаления окна стирания над пакетом и внедрения технологии внутрисистемного программирования. С помощью ISP процесс прошивки можно выполнить непосредственно на плате в конце производственного процесса. Эта эволюция дала возможность унифицировать этапы программирования и функционального тестирования в производственных средах и начать предварительное производство плат, даже если разработка прошивки еще не завершена. Таким образом можно было исправить ошибки или внести изменения позднее. В том же году, Компания Atmel разработала первый микроконтроллер с флэш-памятью, который легче и быстрее программировать и имеет гораздо более длительный жизненный цикл по сравнению с памятью EEPROM.
Микроконтроллеры, поддерживающие ISP, обычно снабжены контактами, используемыми периферийными устройствами последовательной связи для взаимодействия с программатором, флэш-памятью/EEPROM и схемой, используемой для подачи напряжения, необходимого для программирования микроконтроллера. Периферийное устройство связи, в свою очередь, подключено к периферийному устройству программирования, которое предоставляет команды для работы с флэш-памятью или памятью EEPROM.
При разработке электронных плат для программирования ISP необходимо учитывать некоторые рекомендации, чтобы этап программирования был максимально надежным. Некоторые микроконтроллеры с небольшим количеством контактов используют общие линии программирования с линиями ввода-вывода. Это может стать проблемой, если при проектировании платы не будут учтены необходимые меры предосторожности; устройство может получить повреждение компонентов ввода-вывода во время программирования. Более того, важно подключать линии ISP к схеме с высоким импедансом как во избежание повреждения компонентов программистом, так и потому, что микроконтроллер часто не может подавать достаточный ток для управления линией. Многим микроконтроллерам необходима выделенная линия RESET для входа в режим программирования. Необходимо обратить внимание на ток, подаваемый на управление линией, и проверить наличие сторожевых таймеров, подключенных к линии RESET, которые могут сгенерировать нежелательный сброс и, следовательно, привести к сбою программирования. Более того, некоторым микроконтроллерам для входа в режим программирования требуется более высокое напряжение и, следовательно, необходимо проверить, что это значение не затухает и что это напряжение не передается на другие компоненты на плате.
Промышленное применение
[ редактировать ]Процесс внутрисистемного программирования происходит на заключительном этапе производства продукта и может выполняться двумя различными способами в зависимости от объемов производства.
В первом способе разъем к программатору подключается вручную. Это решение предполагает участие человека в процессе программирования, который должен подключить программатор к электронной плате с помощью кабеля. Следовательно, это решение предназначено для небольших объемов производства.
Второй метод использует тестовые точки на доске. Это определенные области, расположенные на печатной плате или печатной плате , которые электрически соединены с некоторыми электронными компонентами на плате. Тестовые точки используются для выполнения функциональных тестов компонентов, установленных на плате, и, поскольку они подключаются напрямую к некоторым выводам микроконтроллера, они очень эффективны для интернет-провайдера. Для средних и больших объемов производства использование контрольных точек является лучшим решением, поскольку позволяет интегрировать этап программирования в сборочную линию.
На производственных линиях доски укладываются на гвозди, называемые приспособлениями . Последние в зависимости от объемов производства интегрируются в полуавтоматические или автоматические испытательные системы, называемые АТЕ (автоматическое испытательное оборудование) . Крепления специально разработаны для каждой платы или, самое большее, для нескольких моделей, похожих на ту плату, для которой они были разработаны, поэтому они взаимозаменяемы в системной среде, в которую они интегрированы. Тестовая система, когда доска и приспособление установлены на место, имеет механизм, обеспечивающий контакт игл приспособления с контрольными точками на доске для тестирования. Система, к которой он подключен или непосредственно интегрирован в программатор ISP. Для этого необходимо запрограммировать устройство или устройства, установленные на плате: например, микроконтроллер и/или последовательную память.
Микрочип ICSP
[ редактировать ]Для большинства микроконтроллеров Microchip программирование ICSP выполняется с использованием двух выводов: тактового сигнала (PGC) и данных (PGD), при этом на выводе Vpp/MCLR присутствует высокое напряжение (12 В). Программирование низкого напряжения (5 В или 3,3 В) обходится без высокого напряжения, но оставляет за собой исключительное использование контакта ввода-вывода. Однако для более новых микроконтроллеров, в частности семейств микроконтроллеров PIC18F6XJXX/8XJXX от Microchip Technology , вход в режимы ICSP немного отличается. [2] Для входа в режим программирования/проверки ICSP необходимо выполнить следующие три шага:
- На контакт MCLR (основной сброс) кратковременно подается напряжение.
- 32-битная ключевая последовательность представлена в PGD.
- Напряжение повторно подается на MCLR.
Для подключения к порту ввода-вывода ПК с одной стороны и к PIC с другой стороны требуется отдельное аппаратное обеспечение, называемое программатором. Список функций для каждого основного типа программирования:
- Параллельный порт — большой громоздкий кабель, большинство компьютеров имеют только один порт и может быть неудобно менять кабель программирования с подключенным принтером. Большинство ноутбуков старше 2010 года выпуска не поддерживают этот порт. Программирование параллельного порта происходит очень быстро.
- Последовательный порт (COM-порт) — в свое время самый популярный метод. Последовательным портам обычно не хватает достаточного напряжения питания для программирования цепей. Большинство компьютеров и ноутбуков старше 2010 года выпуска не поддерживают этот порт.
- Разъем (в схеме или вне ее) — ЦП необходимо либо снять с печатной платы, либо прикрепить зажим к микросхеме, что затрудняет доступ к ней.
- USB-кабель — небольшой и легкий, поддерживает источник напряжения; большинство компьютеров имеют дополнительные порты. Расстояние между программируемой схемой и компьютером ограничено длиной USB-кабеля — обычно оно должно быть менее 180 см. Это может создать проблемы с устройствами программирования, расположенными глубоко в машинах или шкафах.
Программисты ICSP имеют много преимуществ, среди которых размер, наличие компьютерного порта и источник питания являются основными характеристиками. Из-за различий в схеме межсоединений и целевой цепи, окружающей микроконтроллер, не существует программатора, который работал бы со всеми возможными целевыми цепями или межсоединениями. Microchip Technology предоставляет подробное руководство по программированию ICSP. [3] На многих сайтах представлены примеры программ и схем.
PIC программируются с использованием пяти сигналов (шестой контакт «aux» имеется, но не используется). Передача данных осуществляется по двухпроводной синхронно последовательной схеме, еще три провода обеспечивают программирование и питание чипа. Тактовый сигнал всегда контролируется программатором.
Сигналы и распиновка
[ редактировать ]- В pp – напряжение режима программирования. Его необходимо подключить к выводу MCLR или выводу V pp дополнительного порта ICSP, доступного на некоторых PIC с большим количеством контактов. Чтобы перевести PIC в режим программирования, эта строка должна находиться в определенном диапазоне, который варьируется от PIC к PIC. Для PIC с напряжением 5 В это значение всегда несколько превышает V dd и может достигать 13,5 В. PIC с напряжением только 3,3 В, такие как серии 18FJ, 24H и 33F, используют специальную сигнатуру для входа в режим программирования, а V pp — это цифровой сигнал, который находится либо на земле, либо на Vdd. Не существует ни одного напряжения Vpp , которое бы находилось в допустимом диапазоне Vpp для всех PIC. Фактически, минимально необходимый уровень V pp для некоторых PIC может повредить другие PIC.
- V dd – это положительная входная мощность PIC. Некоторые программисты требуют, чтобы это обеспечивалось схемой (схема должна быть хотя бы частично включена), некоторые программисты рассчитывают сами управлять этой линией и требуют, чтобы схема была выключена, в то время как другие могут быть настроены любым способом (например, Microchip ICD2). . Программисты Embed Inc рассчитывают сами управлять линией V dd и требуют, чтобы целевая цепь была отключена во время программирования.
- V ss — отрицательный входной сигнал на PIC и опорное напряжение 0 В для остальных сигналов. Напряжения других сигналов неявно относятся к V ss .
- ICSPCLK — линия синхронизации последовательного интерфейса данных. Эта линия колеблется от GND до V dd и всегда управляется программатором. Данные передаются по заднему фронту.
- ICSPDAT — последовательная линия передачи данных. Последовательный интерфейс является двунаправленным, поэтому эта линия может управляться либо программистом, либо PIC, в зависимости от текущей операции. В любом случае эта линия меняется от GND до Vdd. Бит передается по заднему фронту PGC.
- AUX/PGM — новые контроллеры PIC используют этот контакт для включения программирования низкого напряжения (LVP). Удерживая PGM на высоком уровне, микроконтроллер перейдет в режим LVP. Микроконтроллеры PIC поставляются с включенным LVP, поэтому, если вы используете новый чип, вы можете использовать его в режиме LVP. Единственный способ изменить режим – использовать программатор высокого напряжения. Если вы запрограммируете микроконтроллер без подключения к этому выводу, режим останется неизменным.
Распиновка RJ11
[ редактировать ]Промышленный стандарт использования разъемов RJ11 с программатором ICSP поддерживается компанией Microchip. На иллюстрации представлена информация, представленная в их технических характеристиках. Однако здесь есть место путанице. В таблицах данных PIC показано перевернутое гнездо и не представлены графические изображения выводов, поэтому неясно, на какой стороне гнезда расположен контакт 1. Представленная здесь иллюстрация не проверена , но использует стандартную распиновку телефонной отрасли (вилка/розетка RJ11 изначально была разработана для проводных настольных телефонов).