Sistem incorporat

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Microcontroler pentru sisteme încorporate fără plastic protector ( Intel 8742)

Un sistem încorporat (lit. „Încasat” sau „încorporat” în italiană : sistem integrat) în electronica digitalăComputer și nell”, identifică generic toate acele sisteme de procesare electronică la microprocesor concepute special pentru un anumit scop ( scop special ), adică nu reprogramabil de către utilizator în alte scopuri, adesea cu o platformă hardware ad hoc, integrată în sistem care controlează și este capabilă să gestioneze toate sau o parte din funcționalitatea necesară.

Istorie

Unul dintre primele sisteme încorporate a fost „ Apollo Guidance Computer” , dezvoltat de Charles Stark Draper la Laboratorul de Instrumentare MIT . Pentru fiecare zbor lunar a fost folosit într-un orbiter CSM (modul de comandă și serviciu) și altul identic în LEM , ambele însărcinate cu sistemul de ghidare inerțială .

La momentul concepției, calculatorul Apollo Guidance era considerat unul dintre cele mai riscante obiecte din cadrul proiectului Apollo. Utilizarea noilor circuite integrate monolitice pentru a reduce dimensiunea și greutatea acestuia, a crescut considerabil riscul.

Primul sistem încorporat produs în serie a fost computerul care a fost implicat în conducerea rachetei Minuteman în 1961 . A fost sistemul de ghidare computerizat Autonetics D-17, care a folosit circuite logice realizate cu tranzistoare și un hard disk ca memorie principală. Când Minuteman II a fost produs în 1966 , D-17 a fost înlocuit cu un computer nou bazat pe circuite integrate și care a fost primul caz de utilizare a acestor componente în volume mari, contribuind la scăderea prețurilor și, prin urmare, la răspândirea „utilizării”.

Principala caracteristică a acestui sistem a fost capacitatea de a modifica ulterior algoritmul de ghidare pentru a face racheta mai precisă. De asemenea, computerul a efectuat diagnosticare antirachetă, economisind greutatea cablurilor și a conectorilor.

Ulterior, sistemele încorporate au suferit o reducere a costurilor, precum și o creștere imensă a capacității de calcul și a funcționalității acestora. Așa-numita lege a lui Moore s-a dovedit a fi corectă în toată această perioadă. Primul microprocesor proiectat pentru a fi introdus pe piață a fost Intel 4004 , care a fost montat pe calculatoare și alte sisteme mici. Cu toate acestea, a necesitat cipuri de memorie externe și alte logici de suport extern. Spre sfârșitul celor șaptezeci de ani , microprocesoarele pe 8 biți erau norma, dar întotdeauna aveau nevoie de memorie externă, decodificare logică și interfață cu lumea exterioară. În orice caz, prețurile erau în cădere liberă și din ce în ce mai multe aplicații au început să adopte această abordare, mai degrabă decât metodologiile de proiectare a circuitelor logice personalizate.

La mijlocul anilor optzeci , un grad mai mare de integrare a permis asamblarea altor componente, conectate anterior extern, pe același cip al procesorului. Aceste sisteme integrate au fost numite mai degrabă microcontrolere decât microprocesoare și a fost posibilă utilizarea lor în masă. Cu un cost pe componentă atât de scăzut, această alternativă a devenit mult mai atractivă decât construirea în totalitate a circuitelor logice dedicate. A existat o explozie a numărului de sisteme încorporate distribuite pe piață, precum și a componentelor furnizate de diferiți producători pentru a facilita proiectarea unor astfel de sisteme. De exemplu, multe circuite integrate au fost produse cu o interfață serială (mai degrabă decât paralelă , mai tradițională) care ar putea fi interconectată cu microcontrolere cu mai puțini conectori. În acest context a apărut autobuzul I²C . La sfârșitul anilor optzeci, sistemele încorporate erau mai degrabă regula decât excepția pentru aproape toate dispozitivele electronice, o tendință care continuă și astăzi.

Descriere

Microcontroler PIC 18F8720 în pachet TQFP cu 80 de pini.

În această zonă suntem plasați în diferite tipuri și dimensiuni sisteme, în raport cu: tipul de microprocesor, sistemul de operare și complexitatea software - ului, care poate varia de la câteva sute de octeți la câțiva megabyți de cod. Această categorie de sisteme microelectronice pentru procesarea microcontrolerelor .

Spre deosebire de computerul reprogramabil generic ( scop general ), un sistem încorporat are sarcinile cunoscute deja în timpul dezvoltării, care se vor executa, prin urmare, datorită unei combinații hardware / software concepute special pentru această aplicație. Datorită acestui fapt, hardware-ul poate fi redus la minimum pentru a conține spațiul ocupat, limitând astfel consumul, timpii de procesare (eficiență mai mare) și costurile de fabricație. De asemenea, execuția software-ului este adesea în timp real pentru a permite un control determinist al timpilor de execuție.

Un exemplu tipic de sistem încorporat și răspândit sunt electronicele de control instalate în autovehicule pentru controlul motorului și dell ' ABS .

Caracteristici

Sistemele încorporate sunt sisteme informatice, în sensul cel mai larg al termenului. De fapt, această definiție include toate computerele din lume, cu excepția celor concepute pentru a fi utilitare generică (scop general). Exemple de sisteme încorporate variază de la playere de muzică portabile la controlul în timp real a sistemelor fizice, cum ar fi Space Shuttle .

Majoritatea sistemelor încorporate sunt concepute pentru a executa în mod repetat acțiuni la un cost redus. Majoritatea, dar nu toate, dintre aceste sisteme trebuie să îndeplinească și constrângeri minime de performanță, cum ar fi necesitatea de a opera în timp real. De asemenea, se poate întâmpla ca un sistem să poată îndeplini unele funcții foarte repede, dar poate tolera viteze mai mici pentru alte sarcini. Aceste sisteme îndeplinesc constrângerile de performanță cu o combinație de hardware și software special concepute.

Este dificil să se caracterizeze viteza sau costul unui sistem generic încorporat , deși, în special pentru sistemele care necesită prelucrarea unei cantități mari de date, proiectul în sine absoarbe majoritatea costurilor. Pentru majoritatea performanțelor necesare, sistemele integrate pot fi întâmpinate cu o combinație de hardware dedicat și o cantitate limitată de software optimizat. De exemplu, gândiți-vă la un decodor pentru televiziunea prin satelit . Deși un sistem ca acesta trebuie să proceseze zeci de mega-biți de date pe secundă, cea mai mare parte a muncii este realizată de hardware dedicat care separă, reglează și decodează fluxul digital multicanal într-o ieșire video. La CPU încorporat , pentru a determina căile de date din sistem sau pentru a gestiona întreruperile, a crea și a proiecta grafica etc. Prin urmare, de multe ori, o mare parte a hardware-ului unui sistem încorporat trebuie să fie supusă unor cerințe stricte de performanță mult mai mici decât acestea, totuși, trebuie să respecte sistemul primar al aceluiași hardware. Acest lucru permite simplificarea arhitecturii unui sistem încorporat în comparație cu cea a unui computer generic care trebuie să efectueze aceleași operații, de exemplu prin utilizarea unui procesor mai ieftin care, la urma urmei, implică discret și pentru aceste funcții secundare.

Pentru sistemele încorporate care nu trebuie să gestioneze o cantitate imensă de date, acestea pot fi utilizate și pentru calculatoare personale , reducând numărul de programe instalate sau utilizând un sistem de operare în timp real . În acest caz, hardware-ul dedicat poate fi înlocuit cu unul sau mai multe procesoare de înaltă performanță. Cu toate acestea, unele sisteme încorporate pot necesita procesor puternic, hardware dedicat și o cantitate mare de memorie pentru a efectua o anumită activitate.

În cazul sistemelor care trebuie comercializate în masă, cum ar fi un player de muzică portabil, reducerea costurilor devine o prioritate. De fapt, sistemele de acest gen sunt adesea echipate cu un cip , un procesor extrem de integrat, un cip dedicat tuturor celorlalte funcții și un singur banc de memorie. În acest caz, fiecare componentă este selectată și proiectată pentru a reduce costurile cât mai mult posibil.

Software-ul scris pentru multe sisteme încorporate , în special cele fără hard disk, se numește uneori firmware . Firmware-ul este un tip de software pe care, de exemplu, îl puteți găsi în cipurile memoriilor ROM sau Flash .

Sistemele încorporate necesită adesea să fie active continuu ani de zile fără erori, astfel încât software-ul și firmware-ul sunt proiectate și evaluate mult mai atent decât în software-ul pentru computerele personale . Multe sisteme încorporate , de fapt, evită să încorporeze componente cu piese mecanice în mișcare (cum ar fi hard diskul ), deoarece sunt mai puțin fiabile decât componentele în stare solidă, cum ar fi memoriile Flash .

În plus, sistemele încorporate pot fi inaccesibile din punct de vedere fizic (cum ar fi bateriile de forare a puțurilor de petrol sau componentele aruncate în spațiu ), astfel încât sistemele care le conțin trebuie să fie capabile de auto-resetare în caz de pierdere de date sau corupție. Această caracteristică este foarte adesea obținută prin inserarea unei componente electronice numite watchdog care restabilește procesorul dacă programul actual nu resetează pe același cu o anumită frecvență temporizatorul intern al componentei.

Exemple de sisteme încorporate

Compartimentul avionic al unui Cessna 501
Unități electronice de comandă pentru autovehicule
  • Instrumente de măsurare ca osciloscoape digitale, analizor logic și analizor de spectru . Dar chiar și o electronică la scară banală de acasă, precum și termometrul comun digital.
  • PLC (Programmable Logic Controller) utilizat pentru automatizarea industrială.
  • Consolă pentru jocuri video fixe și portabile.
  • Unitățile de control sunt încorporate în vehicule pentru gestionarea electronică a diferitelor facilități și servicii.
  • Instrumente muzicale digitale, cum ar fi tastaturi pentru stații de lucru, mixere digitale sau procesoare audio.
  • Decodor pentru TV digital .
  • Sisteme pentru automatizarea casei .
  • Echipamente și unelte (atât de uz casnic, cât și profesionale): burghiul electric la o friteuză, de la mașina de spălat la un nivel laser multifuncțional, dar lista ar fi foarte lungă.

În practică, difuzarea acestor sisteme este larg răspândită în societate și toate dispozitivele non-electronice de uz general , sau computerul în mod corespunzător a spus că sistemele integrate reprogramabile pot fi definite, evidențiind astfel importanța lor semnificativă. Faptul că sistemul încorporat este încorporat și, prin urmare, nu este vizibil pentru ochii utilizatorului, face ca bunul simț să se gândească la o prevalență a computerului cu scop general atunci când în realitate situația este diametral opusă. De asemenea, pentru că pentru marea majoritate a oamenilor este greu de crezut că aceste produse / sisteme conțin „computere” depline.

Proiecta

Platformă

Platforma pe care poate fi dezvoltat un sistem încorporat variază drastic în funcție de complexitatea sa, consumul de energie (electric), costul și domeniul de utilizare. Trece de la PLC și microcontrolere mai simple la arhitecturi mai complexe bazate pe circuite integrate sofisticate ( System-on-a-chip - vezi mai jos.)

Unele platforme de dezvoltare (placă de referință și design de referință) utilizate pe scară largă se bazează pe arhitecturi ARM , MIPS , Coldfire / 68k , H8, SH , V850 , FR-V , M32R și așa mai departe. Uneori sunt utilizate cele mai comune arhitecturi compatibile IBM , eventual adaptate, cu CPU X86 sau PowerPC .

Alte arhitecturi mai simplificate se bazează pe microcontrolere PICmicro , Intel 8051 , Atmel AVR și așa mai departe.

Evoluția, care duce la o mai mare inginerie a componentelor, se schimbă, în special pentru sistemele încorporate către producția de volum mare, către „ System-on-a-chip ” (sau SoC). SoC-urile includ, într-un singur circuit integrat de tip ASIC , microcontrolerul / CPU și / sau DSP, memorie, oscilatoare și ceas, regulator de tensiune, orice interfețe AD / DA și către exterior ( USB , Ethernet etc.) ).

Având în vedere complexitatea crescândă, nu este neobișnuit ca producătorul hardware să furnizeze un BSP (sau pachetul de asistență pentru placă) pentru a simplifica suportul și integrarea software-ului dezvoltat ad hoc, mediul de operare și hardware-ul de bază.

O altă metodă comună de proiectare implică utilizarea FPGA (Field-Programmable Gate Array), cu programarea tuturor logicii interne, inclusiv a procesorului. Majoritatea FPGA-urilor sunt concepute doar în acest scop. De obicei, FPGA sunt utilizate alături de alte circuite integrate pentru interfață.

Această situație contrastează cu cea a pieței computerelor desktop , care constă în prezent doar din câteva arhitecturi concurente, în principal „ Intel / AMD x86 și PowerPC pentru Apple / Motorola / IBM , acesta din urmă fiind utilizat în computerele Apple Macintosh până în 2005 .

De asemenea, este util să menționăm standardul PC / 104 , în ceea ce privește doar factorul de formă (dimensiunea plăcii de bază și altele asemenea) și magistrala de comunicații, acesta este prezent în domeniul industrial și folosește de obicei electronica obișnuită în sistemele desktop (CPU X86 ) cu adaptări pentru aceste utilizări specifice. De obicei, de aceea, utilizează aceleași sisteme de operare (în principal DOS , Linux sau un sistem de operare în timp real, cum ar fi QNX sau Inferno ).

Interfețe utilizator

Interfețele de utilizator pentru sistemele încorporate variază, de asemenea, mult între sistem și sistem și, prin urmare, merită câteva comentarii suplimentare.

Proiectanții de interfețe precum PARC , Apple , Boeing și HP tind să reducă la minimum numărul de interacțiuni diferite ale utilizatorilor. De exemplu, sistemele lor folosesc doar două butoane (minimul absolut) pentru a controla un meniu de sistem (un buton ar fi folosit pentru a selecta următorul element de meniu, celălalt pentru a activa cel selectat).

Un ecran tactil sau butoane pe marginile ecranului pot fi, de asemenea, utilizate pentru a minimiza interacțiunile cu utilizatorul.

O altă practică obișnuită este de a minimiza și simplifica tipul de ieșire. Uneori este folosit și pentru a asocia un bec la starea fiecărei interfețe sau la orice situație de eroare. O altă variantă economică este crearea a două fișiere becuri, cuplate la o matrice de erori care pot apărea (utilizatorul poate apoi lipi etichetele care explică eroarea în limba pe care o preferă).

De exemplu, Boeing-ul standard pentru o interfață de testare constă dintr-un buton și câteva becuri. Când apăsați butonul, toate luminile se aprind. Când butonul este eliberat, lămpile asociate cu erorile care au apărut rămân aprinse. Etichetele sunt în limba engleză simplificată .

Designerii folosesc mult culorile și senzațiile asociate acestora. Roșul indică faptul că utilizatorul se poate răni (gândiți-vă la sânge ). Galbenul indică faptul că ceva poate merge prost. Verde indică faptul că starea este pozitivă. Această combinație seamănă foarte mult cu cea a unui semafor , deoarece majoritatea oamenilor sunt capabili să o înțeleagă, chiar și instinctiv.

Mulți designeri fac schimbarea imaginii afișate imediat după interacțiunea cu utilizatorul. Dacă aparatul este pe cale să facă ceva, de obicei pornește în 7 secunde sau oferă un raport de progres.

Dacă este nevoie de un ecran, mulți designeri folosesc text simplu, în principal pentru că utilizatorii sunt obișnuiți să citească. O interfață grafică este plăcută ochiului și vă permite să faceți orice, dar de obicei adaugă aproximativ un an întârziere pentru proiectare (proiectare, aprobare, traducere etc.) și are nevoie de unul sau doi programatori suplimentari, fără a adăuga conținut real la sistem . În plus, o interfață prea aglomerată tinde de fapt să deruteze utilizatorii, deoarece poate folosi simboluri cu aspect necunoscut.

Dacă un proiect este necesar să se refere la anumite părți ale structurii (cum ar fi o copiator ), acestea sunt adesea etichetate cu numere pe structura vizibilă.

O interfață de rețea este pur și simplu un ecran la distanță și se comportă aproximativ ca orice altă interfață de utilizator.

Una dintre cele mai populare interfețe generice bazate pe ecran este cea care constă din două butoane și o linie de text în limba maternă a utilizatorului. Se folosește de exemplu în pager , în imprimante midrange, în switch-uri de rețea și, în general, în toate situațiile care necesită o interacțiune ridicată cu utilizatorul.

Când există text, designerul alege una sau mai multe limbi: limba implicită este de obicei una dintre cele mai cunoscute de grupul de utilizatori pentru care este destinat produsul.

Majoritatea designerilor tind să folosească setul de caractere native al limbii, deși acest lucru se poate dovedi provocator. Oamenii care folosesc anumite seturi de caractere preferă, de fapt, să citească textele scrise în acest fel.

Textul este de obicei tradus de personal specializat, chiar dacă există vorbitori nativi în personalul proiectului.

Organizațiile străine tind să ofere adesea unui distribuitor mare sarcina de a actualiza și corecta traducerile în limba lor. Acest lucru împiedică adesea criticile altor vorbitori nativi, care tind să creadă că nicio organizație străină nu își poate cunoaște limba la fel de bine ca ei.

Ori de câte ori este posibil, avem tendința de a clarifica cât mai clar metodele de funcționare ale utilajului pe afișaj.

În organizațiile mai bine gestionate, o persoană aprobă interfața cu utilizatorul. Adesea acesta este un client, un distribuitor sau o persoană direct responsabilă de vânzarea sistemului. De fapt, clienții tind să ia decizii foarte repede sau să nu le ia deloc. Acest lucru determină întârzieri costisitoare care ar putea fi evitate așa cum s-a menționat mai sus.

Instrumente de dezvoltare

Ca și în cazul altor software-uri, proiectanții de sisteme încorporate folosesc compilatoare , asamblare și depanare pentru dezvoltarea de software-uri legate de sistem. Cu toate acestea, pot utiliza și câteva programe mai specifice:

  • Un emulator în circuit (ICE) este un dispozitiv hardware care înlocuiește sau este interfațat cu microprocesorul și oferă funcționalitate pentru a se încărca rapid și a efectua depanarea codului de test în sistem.
  • Pentru a accelera diagnosticarea și depanarea, în special pe sistemele pe scară largă, interfața JTAG (alias IEEE 1149.1) este integrată la nivel SoC, microcontroler sau CPU, un standard de interfață simplu și economic conceput pentru a suspenda funcționarea normală a procesului și a interoga fazele sale prin conectarea la un computer personal.
  • Unele programe adaugă o verificare de redundanță (checksum) sau o verificare de redundanță ciclică (CRC) la program, astfel încât să permită sistemului încorporat să verifice validitatea programului.
  • Pentru sistemele care utilizează Digital Signal Processor (DSP), proiectanții pot utiliza un instrument algebric precum MathCad sau Mathematica .
  • Compilatoarele și linkerul specific pot fi utilizate pentru a îmbunătăți optimizarea hardware-ului special.
  • Un sistem încorporat poate avea propriul limbaj specific sau program de dezvoltare sau poate oferi îmbunătățiri unei limbi existente.
  • Având în vedere complexitatea crescândă, nu este neobișnuit ca producătorul hardware să furnizeze un BSP (sau pachetul de asistență pentru placă) pentru a simplifica suportul și integrarea software-ului dezvoltat ad-hoc, mediul de operare și hardware-ul de bază.

Programele de generare de software pot avea origini diferite:

  • Companii producătoare de software specializat pe piața sistemelor încorporate
  • Acestea pot fi instrumente din proiectul GNU (vezi și compilatorul încrucișat )
  • Uneori pot fi folosite pentru instrumente de dezvoltare a computerelor personale dacă procesorul încorporat este foarte asemănător cu un procesor PC obișnuit

Sistem de operare

Un Internet telefonic public care utilizează Windows XP .

Prezența sau absența unui sistem de operare complet pe un sistem încorporat variază drastic în funcție de complexitatea arhitecturii sale și de domeniul de utilizare. În cele mai simple cazuri, dispozitivul încorporat poate fi lipsit de un sistem de operare real.

Pe microcontrolerele simple, de obicei un singur program de câțiva octeți va funcționa ciclic, uneori denumit program de „monitorizare”, deoarece este dedicat în principal monitorizării stării porturilor I / O, fără nicio suprastructură (gestionarea proceselor etc.) ); din medii complexe se pot aplica aceleași sisteme de operare utilizate în mod obișnuit în scopuri generale ( Linux , Windows CE , etc.) care pot fi personalizate (pentru a funcționa într - un mediu cu resurse minime, amprenta jargonul scăzut), sau mai specializate pentru evenimente mâner real- sistem de operare temporar (cum ar fi VxWorks sau QNX ) sau extrem de specializat și nedisponibil pe piață (cum ar fi sistemele de operare GSM mobile de prima generație, de exemplu, dezvoltate de obicei de către producătorul dispozitivelor).

Auto-verificare internă

Majoritatea sistemelor încorporate au capacități de auto-verificare native. De obicei, în cazul procedurilor în buclă sau care reușesc în situații de blocaj , intervine „mecanisme de protecție” numite câine de pază . Există mai multe tipuri principale de verificări, împărțite în funcție de funcția sau componenta controlată:

  1. Verificați Calculator: CPU, RAM și memorie programabilă. Se face adesea o dată la pornire. În sistemele critice se face și periodic sau continuu.
  2. Verificare periferică: Simulează intrările și măsoară ieșirile. Un număr surprinzător de sisteme de comunicații, analogice sau de control pot face aceste verificări, adesea la un cost foarte mic.
  3. Verificarea sursei de alimentare: de obicei măsoară fiecare linie de alimentare și poate verifica, de asemenea, care este intrarea (baterii sau rețea). Sursele de alimentare sunt deseori exploatate la maxim, cu o marjă mică pentru deșeuri.
  4. Verificați comunicarea: verifică recepția mesajelor simple de la celelalte unități conectate. Internetul, de exemplu, utilizează mesajulICMP „ping”.
  5. Conexiuni de verificare: De obicei utilizează un cablu dispus într-o serpentină între punctele reprezentative ale cablurilor care urmează să fie conectate. Sistemele de comunicații sincrone, cum ar fi telefonia, folosesc adesea „teste de sincronizare” în acest scop. Verificările cablurilor sunt ieftine și extrem de utile atunci când unitatea are conectori.
  6. Instrumente de verificare: Adesea, un sistem trebuie ajustat atunci când este instalat. Această verificare oferă îndrumări persoanei care instalează sistemul.
  7. Verificare consum: măsoară resursele pe care le folosește sistemul și vă avertizează când cantitățile sunt mici. Cel mai frecvent exemplu este acul pe benzină al unei mașini. Exemple mai complexe pot fi sistemele automate de analiză medicală care gestionează inventarele de reactivi chimici.
  8. Verificare operațională: măsoară diverse lucruri care îi interesează pe utilizator în timp ce lucrează la sistem. Rețineți că acest lucru se face în timp ce sistemul rulează. Exemple sunt instrumentele de navigație aeronautică, kilometrajul unei mașini, luminile unui disc.
  9. Verificare de securitate: efectuată periodic conform unui interval de securitate, asigură faptul că sistemul este încă fiabil. Lungimea intervalului este de obicei puțin sub timpul minim în care o defecțiune poate provoca daune.

Actualizări

În ceea ce privește funcția de actualizare software (firmware, sistem de operare sau în funcție de driver) încorporată a sistemelor, există în prezent trei scenarii posibile:

  • 1) microcontrolerul este complet „închis”: software-ul se naște și moare odată cu dispozitivul și, prin urmare, nu poate fi actualizat;
  • 2) microcontrolerul actualizabil, dar numai prin intervenție la rețeaua „ OEM sau la un CAT ; în aceste cazuri, trebuie folosit un instrument specific de programare și diagnostic;
  • 3) microcontrolerul poate fi actualizat de utilizator exact ca un PC normal. Exemple clasice: telefon mobil (prin cablu, bluetooth sau prin OTA ), firmware-ul televizorului (prin dongle USB , introdus în portul dispozitivului care conține actualizarea descărcată de pe site-ul producătorului) și alte situații similare.

Este destul de ușor să se prevadă că în timp cea mai frecventă situație va fi a treia, cu excepția cazurilor în care sistemul încorporat sovraintenda cerințele de siguranță.

Elemente conexe

Alte proiecte

linkuri externe

Controllo di autorità Thesaurus BNCF 65010 · LCCN ( EN ) sh87006632 · GND ( DE ) 4396978-1 · BNF ( FR ) cb12410613b (data) · NDL ( EN , JA ) 01064710
Informatica Portale Informatica : accedi alle voci di Wikipedia che trattano di informatica