Sisteme cu microprocesoare – scurta prezentare

Sistemele embedded, numite in literatura de specialitate si sisteme dedicate sau inglobate, sunt sisteme de calcul ce efectueaza o sarcina specificva sau indeplinesc o anumita functie si nu pot fi accesate usor sau programate de utilizatorul final al sistemului din care fac parter.

Suportul de curs trateaza sistemele embedded, relevand distinctii intre cateva subcategorii in functie de tipul unitatii centrale de calcul incluse in sistem (microprocesor, microcontroller, FPGA/CPLD).

 

Sistemele cu microprocesor sunt utilizate pentru aplicatii de performanta ridicata, consuma mai mult, si ca atare au tipic un cost mai mare. Sistemele cu microcontroller au performante mai reduse si tipic sunt utilizate in aplicatii de performanta mai scazuta si necesar de consum energetic redus. Sistemele cu FPGA ofera reprogramabilitate la nivel hardware, si sunt utilizate tipic in aplicatii low-volume high-performance, prototipuri, sau ca acceleratoare programabile.

 

Suportul de curs de pe acest site este destinat studentilor de la Facultatea de Facultatea de Antreprenoriat (FAIMA), Ingineria si Managementul Afacerilor, departamentul Antreprenoriat si Management, specializarea Specializarea : Inginerie Economica in Domeniul Electric, Energetic si Electronic (IEDEEE)

 

Materia de sisteme cu microprocesoare continua trunchiul de materii de programare studiat anterior (Programarea Calculatoarelor I – PCI, Programarea calculatoarelor II -PCII, Baze de date – BD).

 

Se recapituleaza notiuni de interactionare cu sistemele de calcul (prin console sau interfete grafice tip GUI). Se studiaza aspecte tehnice privite dintr-o perspectiva economica referitoare la

  • tipurile de piete comerciale pe care sunt folosite sistemele de calcul cu procesor,
  • tipurile de procesoare folosite in sistemele de calcul (microprocesoare, microcontrollere, dispozitive FPGA/CPLD), cu particularitatile fiecarei categorii care o fac eficienta economic pentru un anumit tip de piata comerciala
  • componentele sistemelor de calcul (unitatea centrala de calcul,  memoria sistemului, periferice de intrare/iesire)
  • componentele unitatii de calcul, arhitecturi de procesoare intens utilizate comercial
  • tipuri de memorie folosite in sistemele cu procesoare moderne
  • structura unor periferice tipice in sistemele cu procesor
  • notiuni de eficienta energetica, gestiune a performantelor si a consumului in sisteme cu procesoare

 

 

Informatii

Pentru anul IV, facultatea FAIMA, specializarea IEDEEE, materia este prevazuta cu examen/verificare pe parcurs.

 

Curs

 

 

Curs 1 – Introductiv.

Curs 2 – Sisteme cu procesor – imagine de ansamblu – hardware (piete, arhitecturi, clasificari)

Curs 3 – Sisteme cu procesor – imagine de ansamblu – software (piete, open/proprietary, source control, licentiere); etapele dezvoltarii unui produs; kituri de dezvoltare; trenduri; oportunitati de angajare

Curs 4 – Stagii initializare intr-un sistem cu procesor. Studiu de caz pe diferite arhitecturi populare.

Curs 4 – Unitatea centrala de prelucrare. Termeni specifici.

Curs 5 – Unitatea centrala de prelucrare. Termeni specifici. Memoria cache. Paralelism. Superscalar. CISC, RISC, VLIW.

Curs 6 – Unitatea centrala de prelucrare. Arhitecturi reprezentative pentru microprocesoare (MPU), sau microcontrollere (MCU). Managementul puterii. Criterii pentru alegerea unei solutii pentru o aplicatie. Particularitati cu impact economic.

Curs 7 – Cum se fabrica integratele.

Curs 7 – Scurt istoric al placilor Small Board Computing (SBC). Discutie tema de casa.

Curs 8 – Memoria unui sistem cu procesor. Tipuri de memorie.

Curs 9 – Perifericele tipice ale unui sistem cu procesor. Tipuri larg raspandite de interfatare periferic <–> sistem.

Curs 10 – Sisteme de operare – Termeni specifici. Tipuri de resurse gestionate de un sistem de operare, cu studiu de caz pe cateva sisteme de operare raspandite sau in trend. Nucleul sistemului de operare (engl. kernel). Infrastructura (engl. middleware). Managementul aplicatiilor.

Curs 11 – Recapitulare

Tema de casa

Tema de casa este individuala.

Tema consta in a evalua un produs de tip placa de dezvoltare tip Small Board Computing  existent pe piata , din punctul de vedere:

  • hardware (ce facilitati hardware prezinta, ce costuri totale presupune utilizarea acestei placi – incluzand costuri de achizitie pentru accesoriile si sistemul de alimentare obligatorii pentru aplicatia tinta) – riscul este de a nu achizitiona tot setul de accesorii si de a avea un sistem de functionare nefunctional, sau defect (daca nu se alege corect sursa de alimentare)
  • software (ce facilitati software prezinta placa, ce fel de suport software este compatibil cu placa – medii de dezvoltare, imagini demo, sisteme de operare,  ce surse de cod exista – pentru cazul in care trebuie particularizat ceva; precum si costurile de achizitie, mentenanta si gestiune a suitei software aferenta)
  • al documentatiei (ce tipuri de documentatie exista, daca placa prezinta facilitati tip open software sau/si  open hardware)

Laborator

Laboratorul se tine cu intreaga grupa, in fiecare saptamana, in sala B304A Leu, pentru studentii de an IV, FAIMA, specializarea IEDEEE.

 

Laborator 1 – lucrul pe consola

Se incepe cu o lucrare recapitulativa de lucru cu un PC, in medii tip File Explorer, si la nivel dce lucru in consola, atat pe Windows cat si pe Linux. Lucrarea are scopul de a refamiliariza studentii cu aceste concepte, care vor fi folosit pe parcurs la urmatoarele lucrari. Lucrare individuala.

 

Laborator 2 – componentele unui kit de dezvoltare

Se continua cu studiul componentelor necesare si suficiente care intra intr-un kit de dezvoltare comercial.

Se realizeaza  un studiu de caz pe placa de dezvoltare tip Beagleboard/Pandaboard (cu microprocesor single/dual core de la Texas Instruments), si se studiaza tipurile de componente ale kitului de dezvoltare care exista pentru aceasta:

  •  componente hardware (placa de dezvoltare, accesoriile de conectare pentru dezvoltare software si /sau utilizare comerciala)
  •  componente software (suportul software, imagini demo, sisteme de operare, aplicatii compatibile)
  •  componente de documentatie (atat de la producator – tip User Guide, Reference Manual, Technical Manual, etc cat si online tip wiki, forum, etc).

Se evalueaza fezabilitatea utilizarii unui astfel de sistem pentru aplicatii.

Lucru pe subgrupe.

 

Laborator 3 & 4 – initializarea unei placi de dezvoltare, lucrul cu adb sub android

Studentii invata metodele de programare a unui sistem cu microprocesor. Utilizand imagini demo stocate pe PC, se programeaza si ruleaza sisteme de operare relevante comercial (Android, Ubuntu) pe plaga de dezvoltare. Studentii urmaresc sa porneasca sistemuld e operare pana la interactiunea normala GUI, intre utilizator si sistem. In acest timp, studentii se familiarizeaza

  •  cu problemele de conectare a accesoriilor necesare utilizarii sistemului,
  •  cu etapele de initializare (bootare), a microprocesorului,
  •  cu interfata de comanda a unui astfel de stagiu de initializare a sistemului (uboot), pentru a continua secventa de bootare in caz de eroare
  •  cu utilizarea interfetelor seriale tip UART in monitorizarea procesului de initializare a sistemului
  •  cu interactiunea cu un astfel de sistemul dupa finalizarea bootarii (prin GUI sau console)

Lucru pe subgrupe.

 

Studentii pornesc Android pe placa de dezvoltare si interactioneaza cu principalele functionalitatii ale programului Android Debug Bridge (adb):

  •  verificare/modificare a conexiunii PC ←→  dispozitiv mobil
  •  instalare/dezinstalare aplicatii
  •  activarea/inhibarea programelor preinstalate
  •  consola accesibila pe dispozitiv (accesibila prin adb shell)

Lucru pe subgrupe.

 

Laborator 5 – Introducere in Arduino

Studentii recapituleaza interactiunea cu o placa de dezvoltare cu microcontroller (Arduino Uno). Se recapituleaza evaluarea din punct de vedere hardware, software, documentatie a unui kit de dezvoltare, printr-un studiu de caz pe platforma cu microcontroller Arduino Uno. Se lucreaza cu Android IDE, si se programeaza placa prin port UART cu mini programe demo.

Lucru pe subgrupe.

 

Laborator 6 – Sisteme de fisiere, sisteme virtuale de fisiere

Studientii sunt familiarizati cu controlul accesului la fisiere prin atributele POSIX (RWX la nivel de utilizator, grup, etc). Se exerseaza manipularea atributelor fisierelor sub Linux printr-o serie de exercitii simple cu chmod, chgrp.  Studentii studiaza sistemul virtual de fisiere expus de nucleul sistemului de operare Linux catre utilizatori, pentru doua dispozitive care ruleaza un sistem de operare tip Linux (PC – ruland Linux Mint/Ubuntu, si telefon mobil/placa de dezvoltare – ruland Android). Se studiaza entitati existente in /proc, /sys, debug si se noteaza particularitati si generalitati referitoare la cele doua platforme de studiu.

Lucru pe subgrupe.

 

Laborator 7 – Gestiunea frecventei, a tensiunii de alimentare si a starilor low power

Se studiaza aspecte legate de monitorizarea si gestiunea frecventei, a tensiunii de alimentare si a starilor low power pentru sisteme de calcul care ruleaza Linux (PC cu Linux Mint/Ubuntu, telefon cu Android). Se interactioneaza cu programele cpufreq si cpuidle prin sistemul virtual de fisiere al Linux.

Lucru pe subgrupe.

 

Laborator 8 – Lucru cu Arduino

Se ilustreaza interactiunea cu periferice simple folosind placi de dezvoltare cu microcontroller (tip Arduino Uno). Se studiaza comparativ interactiunea cu echipament real si cu simulatoare online (https://circuits.io/lab).

Se studiaza interactiunea cu un LED (comandat digital On/Off, comandat individual in grup, comandat ca intensitate luminoasa PWM)

Se ilustreaza interactiunea cu periferice digitale/analogice folosind placa de dezvoltare cu microcontroller (tip Arduino Uno), folosind ca exemplu un senzor de temperatura cu termistor.

Lucru pe subgrupe.

 

Laborator 9 – Lucru avansat cu Arduino

Se ilustreaza interactiunea cu periferice simple folosind placi de dezvoltare cu microcontroller (tip Arduino Uno). Se studiaza comparativ interactiunea cu echipament real si cu simulatoare online (https://circuits.io/lab).

Interactiunea cu periferice simple

Lucru pe subgrupe.

 

 

Bibliografie

[1] Andrei Drumea, “Construcţia şi tehnologia sistemelor embedded”, Ed. PIM, Iași, Romania, 2013.

[2] Andrei Drumea, Robert Dobre, „Programarea în limbajul C a sistemelor embedded cu microcontroler : îndrumar de laborator”, Ed. PIM, Iași, Romania, 2014.

[3] Paul Horowitz, Winfield Hill, “The art of electronics”, 2nd edition, Cambridge University Press, New York, USA, 1989.

[4] David Paterson, John Hennessy, “Computer organization and design. The hardware-software interface”, 4th edition,  Morgan Kaufmann, Waltham, USA, 2012.

[5] Andrew Tanenbaum, Todd Austin, “Structured Computer Organization”, 6th edition, Pearson Education, New Jersey, USA, 2013.

[6] John H. Davies, “MSP430 microcontroller basics”, Newnes, Burlington, USA, 2008.