फील्ड-प्रोग्रामेबिलिटी

एक इलेक्ट्रॉनिक उपकरण या अंतः स्थापित प्रणाली को फील्ड-प्रोग्रामेबल या इन-प्लेस प्रोग्रामेबल कहा जाता है यदि इसके फर्मवेयर (अनह्रासी मेमोरी में संग्रहीत, जैसे कि ROM ) को उपकरण से अलग किए बिना या इसके निर्माता को लौटाए बिना "फ़ील्ड में" संशोधन किया जा सकता है।

यह अक्सर एक अत्यंत अभीष्ट विशेषता है, क्योंकि यह कंप्यूटर बग या अप्रचलित फर्मवेयर (प्रक्रिया यंत्र सामग्री) के प्रतिस्थापन के लिए लागत और प्रतिवर्तन काल को कम कर सकता है। उदाहरण के लिए, एक डिजिटल कैमरा विक्रेता उपभोक्ताओं को USB केबल के माध्यम से कैमरे में एक नई फर्मवेयर छवि डाउनलोड करने का निर्देश देकर एक नए छवि फ़ाइल प्रारूप का समर्थन करने वाले फ़र्मवेयर वितरित कर सकता है।

इतिहास
जब उपकरण के फर्मवेयर को मास्क रोम या वन-टाइम प्रोग्रामेबल PROM में संचित किया जाता है, तो इस एकीकृत परिपथ को भौतिक रूप से प्रतिस्थापित किये बिना संशोधित नहीं किया जा सकता है, इसलिए इस तरह के उपकरण आधुनिक अर्थों में फील्ड-प्रोग्रामेबल नहीं हो सकते है। व्यामार्जनीय PROM-आधारित फर्मवेयर को मिटाया और रीप्रोग्राम किया जा सकता है, लेकिन उच्च तीव्रता वाले पराबैंगनी प्रकाश स्रोत के लंबे समय तक संपर्क के बाद भी रहते हैं।

इस प्रकार, 1980 के दशक में EEPROM और फ्लैश मेमोरी के आविष्कार तक फील्ड-प्रोग्रामेबल उपकरण उपयोगी नहीं थे। प्रारंभिक EEPROMs को केवल मूल्यवान, समर्पित प्रोग्रामर हार्डवेयर के साथ पुन: प्रोग्राम किया जा सकता था, क्योंकि उन्हें उच्च वोल्टेज (10-20 वोल्ट, विशिष्ट 3-5 वोल्ट तर्क स्तरों की तुलना में) की आवश्यकता होती थी और कोई मानक प्रोग्रामिंग संदेशाचार (प्रोटोकॉल) नहीं था; परिणामस्वरूप, फील्ड-प्रोग्रामिंग ज्यादातर व्यावसायिक तकनीशियनों और सेवा इंजीनियरों द्वारा की जाती थी। हालाँकि, 2000 के दशक की शुरुआत में, कई उपकरणों को सामान्य उपभोक्ताओं द्वारा क्षेत्र-प्रोगामिकृत किए जाने के लिए स्पष्ट रूप से रूपांकित किया गया था। कई विकासों ने इसे संभव बनाया है:
 * आधुनिक EEPROM और फ्लैश उपकरणों में आंतरिक आवेश पंपन होते हैं जो उच्च वोल्टेज की आवश्यकता को समाप्त करते हैं।
 * अधिकांश उपभोक्ताओं के पास व्यक्तिगत कंप्यूटरों तक पहुंच है, जो स्वेच्छित प्रोग्रामिंग प्रोटोकॉल कर सकते हैं।
 * सार्वत्रिक इंटरनेट अभिगम फर्मवेयर छवियों को तेजी से वितरित करने के लिए एक सुविधाजनक साधन प्रदान करता है।

अनह्रासी मैमोरी उपकरणों की प्रोग्रामिंग के लिए मानक प्रोटोकॉल सामने आए हैं। उदाहरण के लिए, JTAG का उपयोग कई उपभोक्ता इलेक्ट्रॉनिक्स उपकरणों में EEPROM और फ्लैश चिप्स को पढ़ने और प्रोग्राम करने के लिए किया जा सकता है। ऐसे कई उपकरणों में निर्माणी प्रोग्रामिंग और गुणवत्ता नियंत्रण के लिए आंतरिक रूप से JTAG हेडर सम्मिलित हैं, हालांकि तैयार उत्पाद में कोई बाहरी संबंधक नहीं दिखाया गया हो।

प्रोग्राम करने योग्य तर्क
1980 के दशक में प्रोग्राम करने योग्य सरणी तर्क, प्रोग्राम करने योग्य तर्क सरणी और जटिल प्रोग्रामेबल लॉजिक उपकरण जैसे प्रोग्रामेबल लॉजिक डिवाइसेस (PLDs) की शुरुआत हुई। ये एकीकृत सर्किट हैं जो गैर-वाष्पशील मेमोरी में संग्रहीत फ़र्मवेयर जैसी जानकारी के आधार पर लगभग मनमाना  डिजिटल तर्क  फ़ंक्शन लागू कर सकते हैं।

इस प्रकार, PLD वाले उपकरणों को फील्ड-प्रोग्रामेबल हार्डवेयर के रूप में माना जा सकता है, जबकि EEPROM और फ्लैश मेमोरी फील्ड-प्रोग्रामेबल सॉफ्टवेयर के लिए भंडारण के रूप में कार्य करते हैं।

क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला (FPGAs) का आविष्कार 1984 में किया गया था, और आज उपलब्ध सबसे उन्नत प्रकार के प्रोग्रामेबल लॉजिक हैं। ये उच्च क्षमता वाले उपकरण बेहद जटिल तर्क को लागू कर सकते हैं, जैसे कि माइक्रोप्रोसेसर या डिजिटल सिग्नल प्रोसेसर। आज, वे डिजिटल इलेक्ट्रॉनिक उपकरणों के विकास और तेजी से तैनाती में एक बड़ी सहायता हैं। FPGAs का उपयोग अक्सर FPGA प्रोटोटाइपिंग और हार्डवेयर त्वरण के लिए किया जाता है।

शौकीन अवसर
कई उपभोक्ता इलेक्ट्रॉनिक उपकरणों (एमपी 3 प्लेयर, ब्रॉडबैंड राउटर, सेलफोन  और डिजिटल कैमरों सहित) में सामान्य प्रयोजन के कंप्यूटर पर आधारित एम्बेडेड सिस्टम होते हैं। सामान्य प्रयोजन के माइक्रोप्रोसेसर और  microcontroller । इनमें से अधिकांश उपकरणों में फील्ड-प्रोग्रामेबल घटक होते हैं जिन्हें जानकार हार्डवेयर हैकर्स द्वारा खोजा और एक्सेस किया जा सकता है। फील्ड-प्रोग्रामिंग शौकीनों को उपकरणके फर्मवेयर को नए कोड से बदलने की अनुमति देता है जो इसकी क्षमताओं को संशोधित या बढ़ा सकता है।

इस तरह के संशोधन के लिए विशेष रूप से अनुकूल पाए जाने वाले उपकरणों के आसपास कई ऑनलाइन समुदाय उभरे हैं। उदाहरण के लिए, iPodLinux और OpenWrt परियोजनाओं ने उपयोगकर्ताओं को क्रमशः उनके MP3 प्लेयर और वायरलेस राउटर पर पूर्ण विशेषताओं वाला Linux वितरण चलाने में सक्षम बनाया है।

हालांकि हॉबीस्ट फील्ड-प्रोग्रामिंग व्यावहारिक रूप से आज किसी भी एम्बेडेड सिस्टम में सैद्धांतिक रूप से संभव है, व्यवहार में इलेक्ट्रॉनिक हार्डवेयर के लिए प्रलेखन की कमी के कारण उपभोक्ता उपकरणों को संशोधित करने के प्रयास अक्सर बाधित होते हैं।

यह भी देखें

 * फर्मवेयर
 * JTAG
 * फील्ड-प्रोग्रामेबल गेट ऐरे (FPGA)
 * फील्ड-प्रोग्रामेबल रेखीय व्यूह (FPAA) - FPGA की तरह लेकिन रेखीय संकेत के साथ
 * फील्ड-प्रोग्रामेबल रेडियो आवृत्ति उपकरण

बाहरी संबंध

 * UsbAudioHowTo: a guide to converting a wireless router into an Internet radio player, from the OpenWrt project