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. „ încorporat ” sau „ încorporat ”, în italiană : sistem integrat ) în tehnologia informației și electronică digitală , identifică generic toate acele sisteme electronice de procesare cu microprocesoare concepute special pentru o utilizare specifică ( scop special ), adică nu este reprogramabil de către utilizator în alte scopuri, adesea cu o platformă hardware ad hoc , integrată în sistemul pe care îl controlează și capabil să gestioneze toate sau o parte din funcțiile necesare.

Istorie

Unul dintre primele sisteme încorporate a fost calculatorul Apollo Guidance , dezvoltat de Charles Stark Draper la Laboratorul de Instrumentare MIT . Pentru fiecare zbor lunar, unul a fost utilizat în orbiterul 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 acestora a crescut considerabil riscul.

Primul sistem încorporat produs în serie a fost computerul care conducea racheta 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 cunoscut 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 exactă în toată această perioadă. Primul microprocesor proiectat pentru a fi lansat 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. La sfârșitul anilor 1970 , microprocesoarele pe 8 biți erau norma, dar aveau întotdeauna nevoie de memorie externă, logică de decodare și o 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 1980 , un grad mai mare de integrare a permis montarea altor componente, conectate anterior extern, pe același cip procesor. Aceste sisteme integrate au fost numite mai degrabă microcontrolere decât microprocesoare și utilizarea lor în masă a fost posibilă. 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 diverș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 1980, sistemele încorporate erau mai degrabă regula decât excepția pentru aproape toate dispozitivele electronice, o tendință care continuă astăzi.

Descriere

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

În această zonă există sisteme de diferite tipuri și dimensiuni, în raport: cu tipul de microprocesor, cu sistemul de operare și cu complexitatea software - ului, care poate varia de la câteva sute de octeți la câțiva megabyți de cod. Microcontrolerele aparțin acestei categorii de sisteme de procesare microelectronică.

Spre deosebire de calculatoarele generice reprogramabile ( scop general ), un sistem încorporat are unele sarcini deja cunoscute în timpul dezvoltării, pe care, prin urmare, le va îndeplini datorită unei combinații hardware / software special concepute 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. Mai mult, execuția software-ului este adesea în timp real pentru a permite controlul determinist al timpilor de execuție.

Un exemplu tipic și răspândit de sistem încorporat sunt unitățile electronice de control instalate la bordul autovehiculelor pentru controlul motorului și al ABS-ului .

Caracteristici

Sistemele încorporate sunt sisteme de calcul , în sensul cel mai general al termenului. Această definiție include, de fapt, toate computerele din lume, cu excepția celor concepute pentru a avea un scop general . Exemple de sisteme încorporate variază de la playere de muzică portabile la controale în timp real ale sistemelor fizice, cum ar fi Space Shuttle .

Majoritatea sistemelor încorporate sunt concepute pentru a efectua în mod repetat o acțiune 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 costurile unui sistem încorporat generic, chiar dacă, mai ales pentru sistemele care trebuie să proceseze o cantitate mare de date, proiectul în sine absoarbe majoritatea costurilor. Pentru majoritatea sistemelor încorporate, performanța necesară poate fi îndeplinită printr-o combinație de hardware dedicat și o cantitate limitată de software optimizat. De exemplu, gândiți-vă la un decodor pentru un televizor 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. CPU încorporat este responsabil pentru determinarea căilor de date din sistem sau pentru gestionarea întreruperilor , generarea și desenarea graficelor etc. Prin urmare, adesea, o mare parte din hardware-ul unui sistem încorporat trebuie să se supună unor cerințe de performanță mult mai puțin stricte decât cele care, în schimb, trebuie să respecte hardware-ul primar al sistemului în sine. 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, folosind de exemplu un procesor mai ieftin, care, în general, se comportă destul de bine chiar și pentru aceste funcții secundare.

Pentru sistemele încorporate care nu trebuie să gestioneze o cantitate mare de date, pot fi utilizate și 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 în continuare procesoare puternice, hardware dedicat și o cantitate mare de memorie pentru a efectua o anumită sarcină.

Î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 câteva cipuri , 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 , este uneori numit firmware . Firmware-ul este un tip de software care, de exemplu, poate fi găsit în cipurile de memorie ROM sau Flash .

Sistemele încorporate necesită adesea să ruleze continuu ani de zile fără erori, astfel încât software-ul și firmware-ul sunt proiectate și testate mult mai atent decât software-ul computerului personal . Multe sisteme încorporate , de fapt, evită să încorporeze componente cu piese mecanice în mișcare (cum ar fi hard disk-urile ), deoarece acestea 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ă funcționalitate este foarte des obținută prin inserarea unei componente electronice numite watchdog care resetează procesorul dacă programul prezent pe acesta nu resetează temporizatorul intern al componentei cu o anumită frecvență.

Exemple de sisteme încorporate

Compartimentul avionic al unui Cessna 501
Unități electronice de comandă pentru autovehicule
  • Instrumente de măsurare , cum ar fi osciloscoape digitale, analizor logic și analizor de spectru . Dar, de asemenea, un banal cântar electronic de casă, precum și termometrul digital comun.
  • PLC-uri ( Controlere logice programabile ) utilizate pentru automatizarea industrială.
  • Console de jocuri video staționare și portabile.
  • Unități de control încorporate în vehicule pentru gestionarea electronică a diferitelor sisteme și servicii.
  • Instrumente muzicale digitale, cum ar fi tastaturi pentru stații de lucru, mixere digitale sau procesoare audio.
  • Digital TV decodor .
  • Sisteme de automatizare a casei.
  • Unelte și ustensile (atât de uz casnic, cât și profesionist): de la burghiul electric la o friteuză, de la mașina de spălat la un nivel multifuncțional cu laser, dar lista ar fi foarte lungă.

În practică, difuzarea acestor sisteme este larg răspândită în societate și toate dispozitivele electronice cu scop general sau computerele reprogramabile propriu-zise pot fi definite ca sisteme încorporate , evidențiind astfel importanța lor considerabilă. Faptul că sistemul încorporat este încorporat și, prin urmare, nu este vizibil pentru ochii utilizatorului, conduce la bun simț să ne gândim la o prevalență a computerelor de uz 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 (electric), costul și domeniul de utilizare. Trecem de la PLC-uri și microcontrolere mai simple la arhitecturi mai complexe bazate pe circuite integrate sofisticate ( System-on-a-chip - vezi mai jos.)

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

Alte arhitecturi mai simplificate se bazează pe microcontrolere PICmicro , Intel 8051 , Atmel AVR etc.

Evoluția, care duce la o inginerie mai mare a componentelor, se îndreaptă, în special pentru sistemele încorporate cu 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 asistența și integrarea între software-ul dezvoltat personalizat, mediul de operare subiacent și hardware.

O altă metodă comună de proiectare implică utilizarea Field-Programmable Gate Array ( FPGA ), 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 este în contrast cu cea a pieței computerelor desktop , care constă în prezent doar din câteva arhitecturi concurente, în principal Intel / AMD x86 și Apple / Motorola / IBM PowerPC , acestea din urmă utilizate î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, aceștia folosesc și 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.

Designerii de interfețe precum PARC , Apple , Boeing și HP tind să minimizeze 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 la marginile ecranului pot fi de asemenea utilizate pentru a minimiza interacțiunile utilizatorilor.

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 fiecare situație de eroare. O altă variantă ieftină este de a crea două rânduri de becuri, împreună cu o matrice de erori care pot apărea (utilizatorul poate apoi lipi etichete care să explice eroarea în limba pe care o preferă).

De exemplu, standardul Boeing pentru o interfață de testare constă dintr-un buton și câteva becuri. Când butonul este apăsat, 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 mulți oameni 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 de întârziere a proiectării (concepție, aprobare, traducere etc.) și necesită unul sau doi programatori suplimentari, fără a adăuga conținut real sistemului. . În plus, o interfață prea aglomerată tinde de fapt să deruteze utilizatorii, deoarece poate folosi simboluri cu aspect necunoscut.

Dacă într-un proiect este necesar să se facă referire la unele părți ale structurii (cum ar fi într-o fotocopiator ), acestea sunt adesea etichetate cu numere clar vizibile pe structură.

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. Este utilizat de exemplu în pagere , în imprimantele de nivel mediu , în comutatoare de rețea și, în general, în toate situațiile care necesită un nivel ridicat de interacțiune 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 tradus în mod normal de către personal specializat, chiar dacă personalul proiectului are vorbitori nativi.

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 , asamblări și depanatoare pentru a dezvolta software-uri legate de sistem. Cu toate acestea, pot folosi și câteva programe mai specifice:

  • Un emulator în circuit (ICE) este un dispozitiv hardware care înlocuiește sau interfață cu microprocesorul și oferă funcționalitate pentru a încărca și depana rapid codul 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 sumă de control sau o verificare a redundanței ciclice (CRC) la program, astfel încât sistemul încorporat să poată verifica validitatea programului.
  • Pentru sistemele care utilizează Digital Signal Processor (DSP), proiectanții pot utiliza un instrument algebric precum MathCad sau Mathematica .
  • Compilatoare și linkere specifice pot fi utilizate pentru a îmbunătăți optimizarea anumitor hardware.
  • 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 între software-ul dezvoltat ad-hoc, mediul de operare subiacent și hardware.

Programele de generare de software pot avea origini diferite:

  • Companii producătoare de software specializate pe piața sistemelor încorporate
  • Ele pot fi instrumente din proiectul GNU (vezi și compilatorul încrucișat )
  • Uneori, instrumentele de dezvoltare a computerului personal pot fi utilizate dacă procesorul încorporat este foarte asemănător cu un procesor PC obișnuit

Sistem de operare

Un telefon cu plată pe Internet 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 și domeniului său de utilizare. În cele mai simple cazuri, este posibil ca dispozitivele încorporate să nu aibă 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.) ); aceleași sisteme de operare utilizate în mod obișnuit în scopuri generale ( Linux , Windows CE etc.) pot fi aplicate în medii complexe, eventual personalizate (pentru a opera într-un mediu cu resurse minime, în jargon cu o amprentă redusă ), sau mai specializate pentru a gestiona evenimente în sistem de operare în timp real (cum ar fi Vxworks sau QNX ) sau extrem de specializate și nedisponibile pe piață (cum ar fi sistemele de operare ale telefoanelor mobile GSM de primă 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 unor proceduri în buclă sau care preiau situații de blocaj , intervin 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). Furajele 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. De exemplu, Internetul 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țiile de actualizare software (firmware, sistem de operare sau driver în funcție de) ale sistemelor încorporate , 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 care poate fi actualizat 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 la fel ca un PC normal. Exemple clasice: telefonul mobil (prin cablu, prin Bluetooth sau prin OTA ), firmware-ul televizorului (prin cheie USB , introdus în portul corespunzător al dispozitivului, care conține actualizarea descărcată de pe site-ul producătorului) și alte situații similare.

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

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