Внутрисистемное программирование (ISP), также называемое внутрисхемным последовательным программированием (ICSP), - это способность некоторых программируемых логических устройств, микроконтроллеров и других встроенные устройства должны программироваться при установке в полную систему, вместо того, чтобы требовать программирования микросхемы перед ее установкой в систему. Это позволяет доставлять обновления прошивки во встроенную память микроконтроллеров и связанных процессоров, не требуя специальной схемы программирования на печатной плате, и упрощает работу по проектированию.
Существует несколько взаимно несовместимых протоколов внутрисистемного программирования. для программирования устройств микроконтроллер, в том числе микроконтроллеры PIC, AVR и Parallax Propeller. ICSP был в основном реализован компанией Microchip Technology для программирования устройств PIC и dsPIC.
Основным преимуществом этой функции является то, что она позволяет производителям электронных устройств интегрировать программирование и тестирование в один этап производства и экономить деньги, вместо того, чтобы требовать отдельного этапа программирования перед сборкой системы. Это может позволить производителям программировать микросхемы на производственной линии своей собственной системы вместо того, чтобы покупать предварительно запрограммированные микросхемы у производителя или дистрибьютора, что позволяет вносить изменения кода или конструкции в середине производственного цикла.
Микроконтроллеры обычно припаиваются непосредственно к печатной плате и обычно не имеют схемы или места для подключения большого кабеля внешнего программирования к другому компьютеру.
Как правило, микросхемы, поддерживающие ISP, имеют внутреннюю схему для генерирования необходимого напряжения программирования из нормального напряжения питания системы и связи с программатором через последовательный протокол. Большинство программируемых логических устройств используют вариант протокола JTAG для интернет-провайдеров, чтобы облегчить интеграцию с процедурами автоматического тестирования. Другие устройства обычно используют проприетарные протоколы или протоколы, определенные старыми стандартами. В системах, достаточно сложных, чтобы требовать умеренно большой связующей логики, разработчики могут реализовать управляемую 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, которые могут вызвать нежелательный сброс и, таким образом, привести к ошибке программирования. Более того, некоторым микроконтроллерам требуется более высокое напряжение для входа в режим программирования, и, следовательно, необходимо проверить, что это значение не ослабляется и что это напряжение не передается на другие компоненты на плате.
Процесс внутрисистемного программирования происходит на заключительном этапе производства продукта и может выполняться двумя различными способами в зависимости от объемов производства.
В первом способе соединитель вручную подключается к программатору. Это решение предполагает участие человека в процессе программирования, который должен подключить программатор к электронной плате с помощью кабеля. Следовательно, это решение предназначено для небольших объемов производства.
Второй метод использует контрольных точек на плате. Это определенные области, размещенные на печатной плате или PCB, которые электрически связаны с некоторыми электронными компонентами на плате. Контрольные точки используются для выполнения функциональных тестов компонентов, установленных на плате, и, поскольку они подключены непосредственно к некоторым контактам микроконтроллера, они очень эффективны для ISP. Для средних и больших объемов производства использование контрольных точек является лучшим решением, поскольку позволяет интегрировать этап программирования в сборочную линию.
На производственных линиях доски размещаются на гвоздях, называемых крепежными элементами. Последние в зависимости от объемов производства интегрируются в полуавтоматические или автоматические испытательные системы, называемые ATE - Automatic Test Equipment. Крепления специально разработаны для каждой платы - или, самое большее, для нескольких моделей, подобных плате, для которой они были разработаны - поэтому они взаимозаменяемы в системной среде, в которую они интегрированы. После того, как плата и приспособление размещены в нужном положении, в тестовой системе есть механизм, позволяющий соприкасаться иглами приспособления с контрольными точками на плате для тестирования. Система, к которой он подключен или напрямую интегрирован внутри, программистом интернет-провайдера. Он должен программировать устройство или устройства, установленные на плате: например, микроконтроллер и / или последовательную память.
Для большинства микроконтроллеров Microchip программирование ICSP выполняется с использованием двух выводов, часов (PGC) и данных (PGD), в то время как высокое напряжение (12 В) присутствует на Vpp. / MCLR контакт. Программирование низкого напряжения (5 В или 3,3 В) обходится без высокого напряжения, но оставляет за собой исключительное использование вывода ввода / вывода. Однако для более новых микроконтроллеров, в частности семейств микроконтроллеров PIC18F6XJXX / 8XJXX, переход в режимы ICSP немного отличается. Для входа в режим ICSP Program / Verify необходимо выполнить следующие три шага:
Для подключения к порту ввода-вывода ПК с одной стороны и к нему требуется отдельное оборудование, называемое программатором. ПОС с другой стороны. Список функций для каждого основного типа программирования:
Программисты ICSP имеют много преимуществ, среди которых размер, доступность компьютерного порта и источник питания являются основными особенностями. Из-за различий в схеме межсоединений и целевой цепи, окружающей микроконтроллер, нет программатора, который работал бы со всеми возможными целевыми цепями или межсоединениями. Microchip предоставляет подробное руководство по программированию ICSP. Многие сайты предоставляют примеры программирования и схем.
PIC программируются с использованием пяти сигналов (шестой контакт «aux» предусмотрен, но не используется). Данные передаются по двухпроводной синхронной последовательной схеме, еще три провода обеспечивают программирование и питание микросхемы. Тактовый сигнал всегда контролируется программистом.
Типовая связь при программированииПромышленный стандарт для использования разъемов RJ11 с программатором ICSP поддерживается Микрочип. На иллюстрации представлена информация, представленная в их технических паспортах. Однако здесь есть место для путаницы. Таблицы данных PIC показывают перевернутый разъем и не дают графического изображения выводов, поэтому неясно, на какой стороне разъема находится контакт 1. На приведенной здесь иллюстрации не проверено, но используется стандартная распиновка для телефонной отрасли (вилка / розетка RJ11 была первоначально разработана для проводных настольных телефонов).
RJ11 для программатора ICSP PIC