Внутрисистемное программирование
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 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 изначально была разработана для проводных настольных телефонов).