Field-programmability
Encyclopedia
An electronic
Electronics
Electronics is the branch of science, engineering and technology that deals with electrical circuits involving active electrical components such as vacuum tubes, transistors, diodes and integrated circuits, and associated passive interconnection technologies...

 device or embedded system
Embedded system
An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...

 is said to be field-programmable or in-place programmable if its firmware
Firmware
In electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices...

 (stored in non-volatile memory
Non-volatile memory
Non-volatile memory, nonvolatile memory, NVM or non-volatile storage, in the most basic sense, is computer memory that can retain the stored information even when not powered. Examples of non-volatile memory include read-only memory, flash memory, ferroelectric RAM, most types of magnetic computer...

, such as ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

) 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
Digital camera
A digital camera is a camera that takes video or still photographs, or both, digitally by recording images via an electronic image sensor. It is the main device used in the field of digital photography...

 vendor could distribute firmware supporting a new image file format
File format
A file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...

 by instructing consumers to download a new firmware image
ROM image
A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, a computer's firmware, or from an arcade game's main board...

 to the camera via a USB cable.

History

When a device's firmware is stored in mask ROM
Mask ROM
Mask ROM is a type of read-only memory whose contents are programmed by the integrated circuit manufacturer...

 or one-time programmable PROM, it cannot be modified without physically replacing the integrated circuit
Integrated circuit
An integrated circuit or monolithic integrated circuit is an electronic circuit manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material...

, so such a device cannot be field-programmable in the modern sense. EPROM
EPROM
An EPROM , or erasable programmable read only memory, is a type of memory chip that retains its data when its power supply is switched off. In other words, it is non-volatile. It is an array of floating-gate transistors individually programmed by an electronic device that supplies higher voltages...

-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
EEPROM
EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...

 and flash memory
Flash memory
Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...

 in the 1980s. Early EEPROMs could only be reprogrammed with expensive, dedicated programmer hardware
Programmer (hardware)
In field of computer hardware, the term programmer, chip programmer or device programmer refers to a hardware device that configures programmable non-volatile circuits such as EPROMs, EEPROMs, Flashs, PALs, FPGAs or programmable logic circuits....

, since they required high voltages (10-20 V
Volt
The volt is the SI derived unit for electric potential, electric potential difference, and electromotive force. The volt is named in honor of the Italian physicist Alessandro Volta , who invented the voltaic pile, possibly the first chemical battery.- Definition :A single volt is defined as the...

, compared to typical 3-5 V logic level
Logic level
In digital circuits, a logic level is one of a finite number of states that a signal can have. Logic levels are usually represented by the voltage difference between the signal and ground , although other standards exist...

s) 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 devices contain internal charge pump
    Charge pump
    A charge pump is a kind of DC to DC converter that uses capacitors as energy storage elements to create either a higher or lower voltage power source. Charge pump circuits are capable of high efficiencies, sometimes as high as 90–95% while being electrically simple circuits.Charge pumps use some...

    s which eliminate the need for high voltages.
  • Most consumers have access to personal computer
    Personal computer
    A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

    s, which can perform arbitrary programming protocols.
  • Ubiquitous Internet
    Internet
    The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

     access
    Internet access
    Many technologies and service plans for Internet access allow customers to connect to the Internet.Consumer use first became popular through dial-up connections in the 20th century....

     provides a convenient means to rapidly distribute firmware images.


Standard protocols for programming non-volatile memory devices have emerged. For example, JTAG
JTAG
Joint Test Action Group is the common name for what was later standardized as the IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture. It was initially devised for testing printed circuit boards using boundary scan and is still widely used for this application.Today JTAG is also...

 may be used to read and program the EEPROM and Flash chips in many consumer electronics devices. Many such devices include JTAG headers internally for factory programming and quality control
Quality control
Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...

, even though no external connector
Electrical connector
An electrical connector is an electro-mechanical device for joining electrical circuits as an interface using a mechanical assembly. The connection may be temporary, as for portable equipment, require a tool for assembly and removal, or serve as a permanent electrical joint between two wires or...

 is exposed in the finished product.

Programmable logic

The 1980s saw the introduction of programmable logic devices (PLDs) such as PAL
Programmable Array Logic
The term Programmable Array Logic is used to describe a family of programmable logic device semiconductors used to implement logic functions in digital circuits introduced by Monolithic Memories, Inc. in March 1978. MMI obtained a registered trademark on the term PAL for use in "Programmable...

s, PLA
Programmable logic array
A programmable logic array is a kind of programmable logic device used to implement combinational logic circuits. The PLA has a set of programmable AND gate planes, which link to a set of programmable OR gate planes, which can then be conditionally complemented to produce an output...

s, and CPLD
CPLD
A complex programmable logic device is a programmable logic device with complexity between that of PALs and FPGAs, and architectural features of both. The building block of a CPLD is the macrocell, which contains logic implementing disjunctive normal form expressions and more specialized logic...

s. These are integrated circuit
Integrated circuit
An integrated circuit or monolithic integrated circuit is an electronic circuit manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material...

s which can implement nearly arbitrary digital logic 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 array
Field-programmable gate array
A field-programmable gate array is an integrated circuit designed to be configured by the customer or designer after manufacturing—hence "field-programmable"...

s (FPGAs) were invented in 1984, and are the most advanced kind of programmable logic available . These high-capacity devices may implement extremely complex logic, such as microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

s or digital signal processor
Digital signal processor
A digital signal processor is a specialized microprocessor with an architecture optimized for the fast operational needs of digital signal processing.-Typical characteristics:...

s. Today, they are a great aid in the development and rapid deployment of digital electronic devices.

Hobbyist opportunities

, many consumer electronic devices (including MP3 players, broadband routers, cell phones, and digital cameras) contain embedded systems based on general-purpose microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

s and microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...

s. Most of these devices contain field-programmable components which can be located and accessed by knowledgeable hardware hacker
Hardware hacker
In home computing, a hacker is a person who heavily modifies the software or hardware of their own computer system. It includes building, rebuilding, modifying, and creating software or electronic hardware , either to make it better, faster, to give it added features or to make it do something it...

s. 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
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 launcher for a number of additional included programs...

 and OpenWrt
OpenWrt
OpenWrt is a Linux distribution primarily targeted at routing on embedded devices. It comprises a set of about 2000 software packages, installed and uninstalled via the opkg package management system. OpenWrt can be configured using the command-line interface of BusyBox ash, or the web interface...

 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
Documentation
Documentation is a term used in several different ways. Generally, documentation refers to the process of providing evidence.Modules of Documentation are Helpful...

 for the hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

.

External links

  • UsbAudioHowTo: a guide to converting a wireless router
    Wireless router
    A Wireless router is a device that performs the functions of a router but also includes the functions of a wireless access point and a network switch. They are commonly used to allow access to the Internet or a computer network without the need for a cabled connection. It can function in a wired...

     into an Internet radio
    Internet radio
    Internet radio is an audio service transmitted via the Internet...

    player, from the OpenWrt project
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK