miercuri, 30 iulie 2014

Scoala de vara Lectia 4 - Arhitectura microcontrollerului, intreruperi.

Cand ne gandim la arhitectura microcontroller-ului ne referim la structura ei pe module si cum interactioneaza pentru realizarea executiei instructiunilor. ca componente ale arhitecturii unui microcontroller vom evidentia: memoria de programe, contorul de program, decodificatorul de comenzi, unitatea aritmetico logica, registrul de stare, bus de date, memoria RAM, Memoria EEPROM,, registri de uz general, registri periferici i module periferice.
Pe scurt, executia unei instructiuni in cadrul arhitecturiise realizeaza in felul urmator:
Instructiunea este selectata de catre Program counter, din memoria de programe si transmisa catre decodificatorul de comenzi, pentru a fi interpretata, Decodificatorul de comenzi descifreaza comanda si configureaza sistemul pentru realizarea instructiunii in dependeta de valoarea bitilor din registrul de stare al operatiilor. insa fiecare instructiune se executa in modul sau, in dependenta de grupul din care face parte.

Scoala de vara Lectia 3 - Logica binara. Masca, Testare si setare biti individuali.

    Aplicatiile dezvoltate pentru microcontrollere se deosebesc de aplicatiile de nivel inalt prin faptul ca aici se lucreaza cu periferiile la nivel jos, adica este necesar de cele mai dese ori de accesat un registru la nivel de bit sa la nivel de bit sau cativa biti consecutivi din acelasi registru periferic. Limbajul C nu ofera un mecanism direct pentru asemenea acces, accesul minimal fiind la nivel de byte, data de tip char.
   Pemtru a accesa pentru modificare sau verificare a unui singur bit dintr-un byte, cea mai eleganta metoda este prin aplicarea unei masti.
    Vom numi masca o constanta in care bitii de interes sunt unitati, iar bitii ignorati zerouri. spre exemplu o masca unde bitul de interes este butul 4 va arata in felul urmator:
    #define MASK 0b00010000
iar o masca cu bitii de interes 2 si 5 va arata dupa cum urmeaza:
    #define MASK 0b00100100
    In programare, mai ales la cea de nivel jos si in special pentru lucrul la nivel de biti cu masca pe larg se utilizeaza reprezentarea in cod hexazecimal. mai mult, reprezentarea in HEX, am putea-o numi o reprezentare compresata a numerelor binare, un digit al careia reprezinta strict un quartet de biti, indiferent pe ce pozitie in numar se afla. in asa mod sirurile lungi de numere binare se put reduce de 4 ori. Practicand des lucrul cu constantele in HEX, programatorii practic o inteleg ca un nativ de nivel jos in programarea pentru microcontrollere.

marți, 29 iulie 2014

Scoala de vara Lectia 2 - Programare MCU in limbajul C, Modulul periferic GPIO.

Particularitati programare MCU in C.

 
    Un microcontroller, dupa cum am mai mentionat, este un microcalculator comportamentul caruia este definit de programul e care il ruleaza. Scrierea de programe presupune utilizarea unui limbaj specific pe care il poate interpreta aceasta structura inteligenta. Limbajul nativ al microcontrollerului, cel mai apropiat de codul binar care in realitate este inscris in memoria de programe al acestuia este limbajul assembler. O comanda assembler reprezentand o actiune pe care o poate realiza procesorul, prcatic limbajul asembler presupune ca programele reprezinta o secventa de actiuni la nivel cod masina pentru realiza o problema anumita. Neajunsul dezvoltarii aplicatiilor in limbajul ASM este ca fiecare arhitectura de procesor isi are setul sau de instructiuni, respectiv un program care ese scris pentru o arhitectura este putin probabil ca va rula si pe alta arhitectura daca aceasta nu este compatibila cu setul de instructiuni dat.
    Pentru a da o universalitate programelor elaborate se recomanda utilizarea unui limbaj de nivel mai inalt decat ASM, asa cum este de exemplu limbajul C. In acest limbaj se pot dezvolta aplicatii practic pentru orice arhitectura existent la momentul actual. Sintaxa acestui limbaj este standartizata si nu este dependenta de o anumita arhitectura. La moment existu foarte multe referinte pentru studiul limbajului propriu zis, respectiv acest subiect este in afara scopurilor acestui curs.
    Ceia ce intra in obiectivele acestui curs este utilizarea Limbajului C in dezvoltarea aplicatiilor pentru microcontroller.
    Specificlul programelor pentru microcontrollere este ca programul rulat nu trebuie sa se finalizeze niciodata, aceasta fiind una din proprietatile de baza pentru aplicatiile pentru MCU.

miercuri, 2 iulie 2014

Scoala de Vara 2014: Lectia 1- Introducere in curs

Bun venit la cursul Scolii de vara - Dezvoltarea Sistemelor Embedded

Dupa cum a fost relatat la prima italnire a cursului la acest curs vom invata sa proiectam systeme Embedded.
Ce este un Sistem Embeded?
Dupa cum spune dictionarul Wikipedia,
Termenul „sistem înglobat” provine de la expresia engleză embedded system și semnifică un mic calculator bazat pe un microprocesor și specializat (dedicat) la îndeplinirea unei sarcini anume, sau a câtorva sarcini, de obicei în „timp real” (aproape instantaneu).[1][2]
la general general este un sistem electronic cu parte de sensoristica si actionare specifica asupra mediului, in centrul caruia se afla un microcontroller. in calitate de exemple de siteme Embedded pot fi incepand de la telefoanele moile contemporane, calculatorul de bord, masini de spalat, roboti industriali pana la jucariile electronice pentr copii.
Microcontrollerul din cadrul sistemului este acea parte a acestuia care reprezinta inteligenta sistemului.

Ce este un Microcontroller?
Este un microcalculator realizat intrun singur cip.