Proiectarea Optimă a Sistemelor Embedded: o abordare inteligentă

by donpedro

Alegerea unui controler pentru aplicaţii embedded necesită
luarea în considerare a unor factori esenţiali în performanţele
dorite.
Cele mai importante, la nivel hardware, sunt:
numărul de I/O;
periferice necesare (ex. I2C, USART, CCP etc.);
dimensiunea memoriei (memoria program, RAM, EEPROM);
convertor ADC sau comparator;
viteza controlerului;
consum redus de energie;
dimensiunea capsulei.
O importanţă foarte mare în proiectare se atribuie unui echilibru între cost şi performanţe.
Spre exemplu se doreşte proiectarea unui cântar electronic care să îngobeze următoarele componente:
un LCD de 3 digiţi (21 segmente) pentru afişare informaţie;
un traductor pentru măsură (ex. un potenţiometru care transpune mişcarea mecanică a platanului într-o tensiune);
memorie EEPROM pentru memorarea indicaţiilor;
sistemul să funcţioneze cu baterii pentru un consum redus de energie.
Microchip oferă pe website suport în identificarea controlerului
pentru astfel de aplicaţii prin articolele şi specificaţiile tehnice catalogate pe domenii de aplicabilitate. În grupa “PICmicro® Microcontrollers”, subgrupa “Special Features”, “LCD” găsim câteva controlere, dintre care vom alege la o primă analiză PIC16F913. Acesta conţine memorie flash reprogramabilă, eeprom intern, oscilator RC intern, 5 canale ADC, tehnologie nanoWatt pentru aplicaţii alimentate de la baterii, şi cel mai important are posibilitatea de a comanda 64 segmente (16 seg x 4 com). PIC16F913 are cel mai mic număr de pini/capsulă (chiar mai mult decât suficient pentru aplicaţia exemplu), conţine un driver dedicat pentru control LCD şi conţine memorie suficientă pentru aplicaţie.
În ce priveşte alegerea perifericelor necesare aplicaţiei, în funcţie de necesităţi, se pot identifica pe website la Microchip, folosind motorul de căutare, câteva aplicaţii pentru implementarea şi programarea diferitelor tipuri de interfeţe.
Astfel PIC16F913 pare să fie cea mai bună alegere în contextul specificaţiilor şi constrângerilor de consum cerute.
Există însă câteva moduri inteligente de a urca şi mai mult ştacheta în ce priveşte alegerea celui mai optim controler. Utilizând o abordare inteligentă atât în proiectarea hardware cât şi în modul de structurare al modulelor software putem impune constrângeri mai mari în ce priveşte costurile aplicaţiei finale. Începând cu acest număr al revistei vom prezenta pe scurt, câteva metode de optimizare foarte utile în proiectarea hardware şi software cu controlere Microchip. Obiectivul optimizărilor se vrea a fi un câştig în favoarea unui cost de proiect cât mai mic. Dacă din punct de vedere hardware optimizarea şi micşorarea numărului de componente externe folosite, este vizibilă şi la îndemână, un rol foarte important îl are şi partea software. Mai jos sunt evidenţiate, doar câteva dintre avantajele obţinute printr-o abordare inteligentă în proiectare:

Avantaje prin optimizare Hardware
reducerea numărului de pini I/O;
reducerea consumului aplicaţiei;
reducerea numărului de componente externe.

Avantaje prin optimizare Software
reducerea necesarului de memorie;
creşterea vitezei de procesare;
creşterea fiabilităţii;
modularizarea codului.

Reducerea numărului de pini I/O prin multiplexare
Se pot controla mai multe LED-uri. În funcţie de numărul de I/O (GP) disponibile, putem comanda D = GP x (GP-1), diode.

Citirea mai multor taste cu o singură intrare
Timpul necesar pentru încărcarea unui condensator depinde de rezistenţa prin care este alimentat la VDD. Un timer este folosit împreună cu un comparator pentru măsurarea timpului de încărcare al condensatorului şi astfel se poate determina care buton este apăsat.
Secvenţa software necesară este:
1. GP2 ieşire Low (pentru descărcare condensator)
2. GP2 şi CVref intern setate ca intrări în comparator
3. măsurarea timpului necesar încărcării condensatorului.
Dacă timpul obţinut este mai mare decât un maxim admis, procesul se reia, în caz contrar se poate identifica butonul apăsat.

O altă modalitate este folosirea convertorului A/D încorporat.
Însă în acest caz o mare atenţie trebuie acordată valorilor rezistenţelor deoarece fiecare buton generează o tensiune unică la GP0. Convertorul A/D citeşte o valoare aproape de 0 când nu este apăsat nici un buton.

Alimentare şi comunicare date pe acelaşi pin
Un singur pin poate fi folosit atât pentru alimentare cât şi ca linie de comunicaţie unidirecţională. Linia I/O este menţinută în stare “High” datorită rezistenţei de pull-up conectată la VDD.

Senderul foloseşte un tranzistor pentru a comuta între stările “Low” şi “High” (0 sau 1) pe linia de date, respectiv prin activarea sau dezactivarea tranzistorului. Tensiunea de alimentare este asigurată pentru sender prin linia de date. Acest rol este asigurat de condensator şi diodă, însă tensiunea obţinută la sender este VDD-0.7V datorită căderii de tensiune pe diodă.

Auto starter
Prin apăsarea butonului, Vbat şi VDD sunt aduse la acelaşi potenţial, controlerul primeşte tensiune şi astfel pinul CLKOUT oscilează (MCU setat pentru oscilator RC extern şi ieşire CLKOUT). Tranzistorul FET se deschide şi astfel VDD şi Vbat rămân la acelaşi potenţial şi după eliberarea butonului.

Pentru oprirea alimentării se execută intern o instrucţiune SLEEP, astfel se realizează deconectarea alimentării prin software.

Oprirea circuitelor externe

În stadiul de proiectare a părţilor hardware, se pot identifica modulele fizice şi stările asociate acestora în funcţionare, pentru a grupa acele module care pot fi decuplate/oprite. Spre exemplu în cazul unui data logger de temperatură avem un senzor,
un EEPROM extern, o baterie şi un controler. Vrem ca la interval de 2 sec. să fie măsurată temperatura, salvată valoarea în memorie şi apoi sistemul să intre în stare de stand-by până la următoarea citire. Pentru a obţine un consum minim în funcţionare, este necesar să decuplăm de la alimentare memoria şi senzorul în stările de stand-by. Pentru aceasta vom folosi pinii I/O pentru alimentarea acestor circuite. Un pin I/O poate
genera 20mA, suficient pentru alimentarea memorie EEPROM externe şi a senzorului de temperatură.
Calculul consumului este foarte important, pentru identificarea consumului total şi pentru determinarea duratei de viaţă a bateriei.

Putem afla durata de viaţă a aplicaţiei în cazul a 3 tipuri de baterii CR 3,3V.

După un astfel de calcul este foarte uşoară identificarea modulelor consumatoare de energie, şi în acest caz se pot face modificări în faza de proiectare la nivel hardware şi/sau software. În numărul viitor vom discuta câteva modalităţi şi tehnici de abordare a modulelor software.

Str. Bună Ziua FN, 400495 Cluj-Napoca
Tel: 0264-503540, 0264-503541, 0264-503542, 0264-503543, 0264-503544 Fax: 0264596862; 0264438403
microchip@vitacom.ro;
industrie@vitacom.ro
www.vitacom.ro

S-ar putea să vă placă și