Programabilitate în câmp - Field-programmability
Se spune că un dispozitiv electronic sau un sistem încorporat este programabil pe teren sau programabil în loc dacă firmware - ul său (stocat în memoria nevolatilă , cum ar fi ROM ) poate fi modificat „în câmp”, fără a demonta dispozitivul sau a-l returna la producătorul său.
Aceasta este adesea o caracteristică extrem de dorită, deoarece poate reduce costul și timpul de schimbare pentru înlocuirea buggy- ului sau a firmware-ului învechit. De exemplu, un furnizor de camere digitale ar putea distribui firmware-ul care acceptă un nou format de fișier imagine , îndrumând consumatorilor să descarce o nouă imagine de firmware pe cameră prin intermediul unui cablu USB .
Istorie
Atunci când firmware-ul unui dispozitiv este stocat în ROM-ul de mască sau PROM programabil o singură dată , acesta nu poate fi modificat fără a înlocui fizic circuitul integrat , astfel încât un astfel de dispozitiv nu poate fi programat pe teren în sensul modern. Firmware-ul bazat pe PROM poate fi șters și reprogramat, dar numai după expunerea îndelungată la o sursă de lumină ultravioletă de intensitate ridicată.
Astfel, dispozitivele programabile pe teren nu au fost practice până la inventarea EEPROM și a memoriei flash din anii '80. EEPROM-urile timpurii nu puteau fi reprogramate decât cu un program de programare scump, dedicat , deoarece necesitau tensiuni mari (10-20 V , comparativ cu nivelurile logice tipice de 3-5 V ) și nu exista un protocol standard de programare ; ca urmare, programarea pe teren a fost realizată în cea mai mare parte de tehnicieni profesioniști și ingineri de servicii. Cu toate acestea, de la începutul anilor 2000, multe dispozitive au fost proiectate în mod expres pentru a fi programate în câmp de consumatorii obișnuiți. Mai multe evoluții au făcut posibil acest lucru:
- Dispozitivele moderne EEPROM și flash conțin pompe de încărcare interne care elimină nevoia de tensiuni mari.
- Majoritatea consumatorilor au acces la computere personale , care pot efectua protocoale de programare arbitrare.
- Accesul la Internet omniprezent oferă un mijloc convenabil de a distribui rapid imagini de firmware.
Au apărut protocoale standard pentru programarea dispozitivelor de memorie non-volatile. De exemplu, JTAG poate fi folosit pentru a citi și programa cipurile EEPROM și Flash în multe dispozitive electronice de consum . Multe astfel de dispozitive includ antetele JTAG intern pentru programarea și controlul calității din fabrică , chiar dacă niciun conector extern nu este expus în produsul finit.
Logica programabilă
Anii ’80 au cunoscut introducerea dispozitivelor logice programabile (PLD), cum ar fi PAL , PLAs și CPLD . Acestea sunt circuite integrate care pot implementa funcții logice digitale aproape arbitrare bazate pe informații asemănătoare firmware-ului stocate în memoria non-volatile.
Astfel, dispozitivele care conțin PLD pot fi considerate hardware hardware programabil , în timp ce EEPROM și memoria flash acționează ca stocare pentru software - ul programabil pe câmp .
Matricele de poartă programabile pe câmp (FPGA) au fost inventate în 1984 și sunt cel mai avansat tip de logică programabilă disponibilă astăzi. Aceste dispozitive de mare capacitate pot implementa o logică extrem de complexă, cum ar fi microprocesoare sau procesoare digitale de semnal . Astăzi, acestea sunt un mare ajutor în dezvoltarea și desfășurarea rapidă a dispozitivelor electronice digitale. FPGA sunt adesea utilizate pentru prototiparea proiectărilor hardware și accelerarea hardware-ului .
Oportunități hobbyiste
Multe dispozitive electronice de larg consum (inclusiv playere MP3 , routere în bandă largă , telefoane mobile și camere digitale) conțin sisteme încorporate bazate pe microprocesoare și microcontrolere de uz general . Majoritatea acestor dispozitive conțin componente programabile pe câmp, care pot fi localizate și accesate de hackeri hardware cunoscuți . Programarea în câmp le permite pasionaților să înlocuiască firmware-ul unui dispozitiv cu un cod nou care poate modifica sau extinde capabilitățile acestuia.
Numeroase comunități online au apărut în jurul dispozitivelor care s-au dovedit a fi deosebit de favorabile unei astfel de modificări. De exemplu, proiectele iPodLinux și OpenWrt au permis utilizatorilor să ruleze distribuții Linux cu caracteristici complete pe playerele lor MP3 și, respectiv, routerele wireless.
Deși programarea hobbyist de câmp este teoretic posibilă în practic orice sistem încorporat astăzi, în practica eforturile de modificare a dispozitivelor de consum sunt adesea împiedicate de lipsa documentației pentru hardware .
Vezi si
- Firmware
- JTAG
- Matricea de porți programabilă pe câmp (FPGA)
- Arma analogică programabilă pe câmp (FPAA) - ca FPGA, dar cu semnale analogice frecvență radio programabile în câmp
linkuri externe
- UsbAudioHowTo : un ghid pentru conversia unui router wireless într-un player radio Internet , din proiectul OpenWrt