Extras din introducere:
Se definesc cerințele și obiectivele proiectului. Această etapă este utilă nu numai proiectantului, dar și altor persoane care pot face observații și pot sugera îmbunătățiri.
Se trasează o diagramă bloc simplificată a structurii hardware, utilizând informațiile de la pasul 1. Se observă dacă sistemul de cerințe și obiective definit anterior este complet sau dacă trebuie modificat sau extins. Se poate face o primă apreciere asupra costului proiectului și se pot preciza primele componente necesare.
Se trasează o schemă logică simplificată care ilustrează relația dintre programul de supervizare (programul principal) și subrutinele mai importante. Se asignează subrutine specifice pentru controlul intrărilor și ieșirilor. Un minim pentru aceste funcții specifice de control trebuie fumizat de către programul de supervizare, care trebuie să servească doar ca o legătură între diferitele subrutine. Toată „munca" trebuie efectuată de către acestea.
Se efectuează calcule preliminare privind viteza de prelucrare. Utilizând diferitele limitări de I/E, cunoscute acum, se estimează o limită superioară a duratei fiecărei subrutine. Însumând, se obține o limită superioară aproximativă a duratei tuturor subrutinelor și a programului de supervizare. Dacă unele subrutine sunt apelate ca urmare a apariției unor cereri de întrerupere, se va estima timpul de execuție a lor, apreciind frecvența apariției acestor întreruperi. Dacă nu este important timpul de execuție al programelor, cea mai mare parte a operațiilor descrise la acest punct pot fi ignorate.
Se precizează dispozitivele de I/E și viteza lor de funcționare. Aceste informații sunt necesare pentru cele mai multe dintre etapele următoare. Se precizează dacă portul de I/E este paralel, serial, sincron, asincron, cu semnal de tact, cu captarea datelor etc.
Se alege dimensiunea cuvântului de date și de adresă. Microprocesorul poate fi de 1, 4, 8, 16 sau 32 de biți. Decizia este uneori impusă de dispozitivele de I/E utilizate, de precizia și viteza necesare pentru calcule, de tipurile de microprocesoare disponibile sau de existența unui sistem de dezvoltare pentru un anumit tip de microprocesor. Lungimea cuvântului de adresă depinde de dimensiunea memoriei necesare.
Se caută o variantă optimă din punct de vedere al costului, disponibilității, suportului software, vitezei, circuitelor suport, capacității de adresare, capacității RAM și ROM înglobate în microprocesor și al setului de instrucțiuni, dacă sunt accesibi1e mai multe tipuri de sisteme cu microprocesor. Dacă utilizatorul dispune de un sistem de dezvoltare cu microprocesor (MDS), aceasta poate fi un avantaj decisiv în alegerea acestui tip. În unele cazuri, un sistem de dezvoltare permite rularea unor programe și pentru alte microprocesoare (de exemplu, cu microprocesorul Z80 se pot rula programe scrise pentru 8080).
Se aleg circuitele suport integrate pe scară largă (LSI), convenabile pentru microprocesorul selectat. Trebuie asigurată o documentație amănunțită pentru aceste circuite. Se proiectează circuitul generator de tact, amplificatoarele de magistrală și circuitele principale pentru decodificarea adreselor. Acestea formează „inima" sistemului și trebuie să aibă capacitatea de a controla întregul sistem, cu rezerver pentru eventuale dezvoltări ulterioare.
Se proiectează memoria sistemului, utilizând circuite RAM, ROM, PROM, EPROM, EAROM etc. Dacă este posibil, se alege un microprocesor cu cât mai multă memorie înglobată. Dacă se prevede o producție în serie pentru dispozitivul proiectat, se aleg și memorii PROM pentru dezvoltare și memorii ROM, programabile prin mască, pentru producția industrială.
Se proiectează circuitele de I/E, utilizând circuite LSI pentru care se dispune de documentație adecvată. Se mențin magistralele principale de date și de adrese ale microprocesorului la o distanță de maximum câțiva centimetri de microprocesor, pentru a evita apariția perturbațiilor datorate paraziților. Pentru interfațarea cu alte plăci sau dispozitive de I/E, se utilizează magistrale de date secundare și linii de adresă decodificate. Se evită multe probleme de dezvoltare menținând magistralele primare, având în general un nivel redus de putere, pe o singură placă și într-o zonă strict controlată.
Se proiectează panoul de control și alte interfețe pentru utilizatorul uman. Se prevăd cât mai multe posibilități de depanare, în limitele admise de costul proiectului. Realizând panoul de control astfel încât să funcționeze sub supravegherea programului (atât intrările cât și mărimile vizualizate), se pot încorpora în partea de hardware și software instrumente utile care pot economisi sute de ore de depanare a programelor noi. Aceste instrumente pot fi extrem de utile și în timpul dezvoltării sistemului sau pentru identificarea unor erori.
Se proiectează sistemul de alimentare. Sursele de alimentare se pot proiecta sau achiziționa. Trebuie avută în vedere o rezervă de putere pentru fiecare tensiune de alimentare, pentru eventualitatea dezvoltării sistemului. Se proiectează circuitele imprimate, cablajul și conectorii sistemului. Se prevăd capacități de deparazitare în număr suficient pe fiecare placă pentru a menține oscilațiile tensiunilor de alimentare în domeniul milivolților.
Fiind cunoscute mai multe elemente despre sistem, se trasează o schemă logică detaliată a programului de supervizare. Se stabilește localizarea, mărimea, tipul și informațiile de intrare/ieșire pentru diferitele subrutine. Se recomandă utilizarea programării modulare și se mențin, în limita posibilităților, rutinele independente unele în raport cu altele. Subrutinele considerate optime au între 20 și 50 de instrucțiuni, ceea ce duce la simplificarea depanării sau corectării lor, atât pentru cel care le scrie cât și pentru alți utilizatori care doresc să intervină în program.
Se formează o hartă a memoriei, cu toate informațiile necesare. Este util să se plaseze aceste informații înaintea listării programului, creând posibilitatea de a fi reactualizate împreună cu programul.
Se scrie programul de supervizare și toate subrutinele. Se asamblează, se depanează, se reasamblează și se pregătește programul pentru testare. Dacă este posibil, se simulează partea hardware cu ajutorul sistemului de dezvoltare cu microprocesor (MDS) și se încearcă rularea programului.
Se încarcă programul asamblat în RAM, PROM sau într-un simulator de ROM și se testează pe sistemul proiectat. Se depanează, se reproiectează și se rescrie programul dacă este cazul, pentru a aduce sistemul în stare de funcționare. Această etapă necesită cel mai lung interval de timp și este cea în care proiectele supraviețuiesc sau trebuie să se renunțe la ele.
Înaintea listării programului, se listează toți parametrii de proiectare, registrele temporare, registrele de lucru din memorie (scratch-pad memory), porturile de I/E etc, descriind fiecare element în întregime.
Existența unor sisteme cu microprocesor Z80 produse industrial și adecvate multor aplicații simplifică această activitate. Totuși, și în continuare o serie de proiecte vor necesita sisteme cu microprocesor dedicate unor aplicații particulare și care vor trebui realizate într-un mod asemănător celui prezentat.
Capitolele următoare ale prezentului volum descriu, pe rând, componentele familiei Z80, realizarea și câteva aplicații ale unui sistem Z80, ca și un sistem de operare și un interpretor Basic, destinate sistemului descris.
Mulțumiri: Dănuț Vornicu
Imagini:
Fișiere diverse: