Field-programmability
   HOME

TheInfoList



OR:

{{References, date=September 2022 An
electronic Electronic may refer to: *Electronics, the science of how to control electric energy in semiconductor * ''Electronics'' (magazine), a defunct American trade journal *Electronic storage, the storage of data using an electronic device *Electronic co ...
device or
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
is said to be field-programmable or in-place programmable if its firmware (stored in
non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typi ...
, such as ROM) can be modified "in the field," without disassembling the device or returning it to its manufacturer. This is often an extremely desirable feature, as it can reduce the cost and turnaround time for replacement of buggy or obsolete firmware. For example, a
digital camera A digital camera is a camera that captures photographs in digital memory. Most cameras produced today are digital, largely replacing those that capture images on photographic film. Digital cameras are now widely incorporated into mobile devices ...
vendor could distribute firmware supporting a new image file format by instructing consumers to
download In computer networks, download means to ''receive'' data from a remote system, typically a server such as a web server, an FTP server, an email server, or other similar system. This contrasts with uploading, where data is ''sent to'' a remote ...
a new firmware image to the camera via a USB cable.


History

When a device's firmware is stored in
mask ROM Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing so ...
or one-time programmable PROM, it cannot be modified without physically replacing the integrated circuit, so such a device cannot be field-programmable in the modern sense. Erasable PROM-based firmware can be erased and reprogrammed, but only after lengthy exposure to a high-intensity ultraviolet light source. Thus, field-programmable devices were not practical until the invention of EEPROM and flash memory in the 1980s. Early EEPROMs could only be reprogrammed with expensive, dedicated programmer hardware, since they required high voltages (10-20  V, compared to typical 3-5 V logic levels) and there was no standard programming protocol; as a result, field-programming was mostly performed by professional technicians and service engineers. However, as of the early 2000s, many devices were expressly designed to be field-programmed by ordinary consumers. Several developments have made this possible: * Modern EEPROM and
flash Flash, flashes, or FLASH may refer to: Arts, entertainment, and media Fictional aliases * Flash (DC Comics character), several DC Comics superheroes with super speed: ** Flash (Barry Allen) ** Flash (Jay Garrick) ** Wally West, the first Kid F ...
devices contain internal
charge pump A charge pump is a kind of DC-to-DC converter that uses capacitors for energetic charge storage to raise or lower voltage. Charge-pump circuits are capable of high efficiencies, sometimes as high as 90–95%, while being electrically simple c ...
s which eliminate the need for high voltages. * Most consumers have access to
personal computer A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or tec ...
s, which can perform arbitrary programming protocols. * Ubiquitous
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
access Access may refer to: Companies and organizations * ACCESS (Australia), an Australian youth network * Access (credit card), a former credit card in the United Kingdom * Access Co., a Japanese software company * Access Healthcare, an Indian BPO se ...
provides a convenient means to rapidly distribute firmware images. Standard protocols for programming non-volatile memory devices have emerged. For example, JTAG may be used to read and program the EEPROM and Flash chips in many
consumer electronics Consumer electronics or home electronics are electronic ( analog or digital) equipment intended for everyday use, typically in private homes. Consumer electronics include devices used for entertainment, communications and recreation. Usuall ...
devices. Many such devices include
JTAG header JTAG (named after the Joint Test Action Group which codified it) is an industry standard for verifying designs and testing printed circuit boards after manufacture. JTAG implements standards for on-chip instrumentation in electronic design auto ...
s internally for factory programming and quality control, even though no external connector is exposed in the finished product.


Programmable logic

The 1980s saw the introduction of programmable logic devices (PLDs) such as
PALs PALS may refer to: * Patient Advice and Liaison Service * Pediatric Advanced Life Support * Periarteriolar lymphoid sheaths * Portraits of American Life Study * Positron Annihilation Lifetime Spectroscopy * Pouch Attachment Ladder System * Prag ...
, PLAs, and CPLDs. These are integrated circuits which can implement nearly arbitrary
digital logic A logic gate is an idealized or physical device implementing a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic gate ...
functions based on firmware-like information stored in non-volatile memory. Thus, devices containing PLDs may be considered as field-programmable ''hardware'', while EEPROM and flash memory act as storage for field-programmable ''software''. Field-programmable gate arrays (FPGAs) were invented in 1984, and are the most advanced kind of programmable logic available today. These high-capacity devices may implement extremely complex logic, such as
microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circ ...
s or digital signal processors. Today, they are a great aid in the development and rapid deployment of digital electronic devices. FPGAs are often used for prototyping hardware designs and hardware acceleration.


Hobbyist opportunities

Many consumer electronic devices (including MP3 players, broadband routers, cell phones, and digital cameras) contain embedded systems based on general-purpose
microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circ ...
s and microcontrollers. Most of these devices contain field-programmable components which can be located and accessed by knowledgeable hardware hackers. Field-programming allows hobbyists to replace a device's firmware with new code that can modify or extend its capabilities. Numerous online communities have sprung up around devices found to be particularly conducive to such modification. For example, the
iPodLinux iPodLinux is a µClinux-based Linux distribution designed specifically to run on Apple Inc.'s iPod. When the iPodLinux kernel is booted it takes the place of Apple's iPod operating system and automatically loads Podzilla, an alternative GUI ...
and
OpenWrt OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All ...
projects have enabled users to run full-featured Linux distributions on their MP3 players and wireless routers, respectively. While hobbyist field-programming is theoretically possible in practically any embedded system today, in practice efforts to modify consumer devices are often hampered by lack of documentation for the hardware.


See also

* Firmware * JTAG * Field-programmable gate array (FPGA) * Field-programmable analog array (FPAA) - like FPGA but with
analog signals An analog signal or analogue signal (see spelling differences) is any continuous signal representing some other quantity, i.e., ''analogous'' to another quantity. For example, in an analog audio signal, the instantaneous signal voltage varies ...
** Field-programmable radio frequency devices


External links


UsbAudioHowTo
a guide to converting a
wireless router A wireless router is a device that performs the functions of a router and also includes the functions of a wireless access point. It is used to provide access to the Internet or a private computer network. Depending on the manufacturer and mode ...
into an
Internet radio Online radio (also web radio, net radio, streaming radio, e-radio, IP radio, Internet radio) is a digital audio service transmitted via the Internet. Broadcasting on the Internet is usually referred to as webcasting since it is not transmitted ...
player, from th
OpenWrt
project Digital electronics