Программируемость на месте
Электронное , устройство или встроенная система считается программируемым на месте или программируемым на месте если его прошивка (хранящаяся в энергонезависимой памяти , такой как ПЗУ ) может быть изменена «в полевых условиях», без разборки устройства или возврата его в его производитель.
Часто это чрезвычайно желательная функция, поскольку она может снизить стоимость и время замены ошибочной или устаревшей прошивки. Например, поставщик цифровых камер может распространять прошивку, поддерживающую новый формат файлов изображений , инструктируя потребителей загружать новый образ прошивки в камеру через USB- кабель.
История
[ редактировать ]Когда прошивка устройства хранится в ПЗУ маски или одноразово программируемом ПЗУ, ее нельзя изменить без физической замены интегральной схемы , поэтому такое устройство не может быть программируемым в условиях эксплуатации в современном смысле. Стираемую прошивку на основе PROM можно стереть и перепрограммировать, но только после длительного воздействия источника ультрафиолетового света высокой интенсивности.
Таким образом, программируемые пользователем устройства были непрактичны до изобретения EEPROM и флэш-памяти в 1980-х годах. Ранние EEPROM можно было перепрограммировать только с помощью дорогостоящего специального программатора , поскольку для них требовалось высокое напряжение (10–20 В по сравнению с типичными логическими уровнями программирования не существовало 3–5 В), а стандартного протокола ; в результате полевое программирование в основном выполнялось профессиональными техническими специалистами и инженерами по обслуживанию. Однако по состоянию на начало 2000-х годов многие устройства были специально разработаны для программирования обычными потребителями. Это стало возможным благодаря нескольким событиям:
- Современные EEPROM и флэш- устройства содержат внутренние зарядовые насосы , которые устраняют необходимость в высоком напряжении.
- Большинство потребителей имеют доступ к персональным компьютерам , которые могут выполнять произвольные протоколы программирования.
- Повсеместный в Интернет доступ предоставляет удобные средства для быстрого распространения образов встроенного ПО.
Появились стандартные протоколы программирования устройств энергонезависимой памяти. Например, JTAG можно использовать для чтения и программирования микросхем EEPROM и Flash во многих устройствах бытовой электроники . Многие такие устройства имеют внутренние разъемы JTAG для заводского программирования и контроля качества , хотя внешний разъем в готовом изделии не используется.
Программируемая логика
[ редактировать ]В 1980-е годы появились программируемые логические устройства (PLD), такие как PAL , PLA и CPLD . Это интегральные схемы , которые могут реализовывать почти произвольные цифровые логические функции на основе информации, подобной встроенному программному обеспечению, хранящейся в энергонезависимой памяти.
Таким образом, устройства, содержащие PLD, можно рассматривать как программируемое аппаратное обеспечение , а EEPROM и флэш-память действуют как хранилище для программируемого программного обеспечения .
Программируемые пользователем вентильные матрицы (FPGA) были изобретены в 1984 году и представляют собой наиболее совершенный вид программируемой логики, доступный сегодня. Эти устройства высокой производительности могут реализовывать чрезвычайно сложную логику, такую как микропроцессоры или процессоры цифровых сигналов . Сегодня они являются большим подспорьем в разработке и быстром внедрении цифровых электронных устройств. FPGA часто используются для прототипирования аппаратных средств и аппаратного ускорения .
Возможности для любителей
[ редактировать ]Многие бытовые электронные устройства (включая MP3-плееры , широкополосные маршрутизаторы , сотовые телефоны и цифровые камеры) содержат встроенные системы на основе общего назначения микропроцессоров и микроконтроллеров . Большинство этих устройств содержат программируемые пользователем компоненты, которые могут быть обнаружены и доступны знающим аппаратным хакерам . Программирование на местах позволяет любителям заменять прошивку устройства новым кодом, который может изменить или расширить его возможности.
Вокруг устройств, которые оказались особенно благоприятными для такой модификации, возникли многочисленные онлайн-сообщества. Например, проекты iPodLinux и OpenWrt позволили пользователям запускать полнофункциональные дистрибутивы Linux на своих MP3-плеерах и беспроводных маршрутизаторах соответственно.
Хотя сегодня любительское программирование теоретически возможно практически в любой встроенной системе, на практике усилия по модификации потребительских устройств часто сдерживаются отсутствием документации на аппаратное обеспечение .
См. также
[ редактировать ]- Прошивка
- JTAG
- Программируемая пользователем вентильная матрица (FPGA)
- Программируемая пользователем аналоговая матрица (FPAA) — как FPGA, но с аналоговыми сигналами.
- Программируемые радиочастотные устройства
Внешние ссылки
[ редактировать ]- UsbAudioHowTo : руководство по преобразованию беспроводного маршрутизатора в проигрыватель интернет-радио из OpenWrt . проекта