Instrumentació i Bioenginyeria Dossier Final del Bloc...

49
Dossier Final – Bea Navarro Sansano 1 Instrumentació i Bioenginyeria Dossier Final del Bloc Digital GRUP: 7 DATA:25/06/2007 Descripció breu de les aportacions realitzades: Aquest dossier es una mostra del meu treball durant l’assignatura de IB. He inclòs els exercicis i mínims més importants del quadrimestre, els que he dedicat més temps i he après més amb ells. Es un recull de la meva feina, que ha sigut costosa i constant. TEMPS D’ESTUDI I DE PREPARACIÓ DE LA CARPETA: Sessions TGA a l’aula: 0 h Sessions TGB al laboratori 0 h Sessions TGC fora de l’horari 4 h Treball individual Estudiant 1: Bea Navarro Sansano 4 h Temps total de mitjana (per estudiant) 4 h

Transcript of Instrumentació i Bioenginyeria Dossier Final del Bloc...

Dossier Final – Bea Navarro Sansano

1

Instrumentació i Bioenginyeria

Dossier Final del Bloc Digital

GRUP: 7 DATA:25/06/2007 Descripció breu de les aportacions realitzades: Aquest dossier es una mostra del meu treball durant l’assignatura de IB. He inclòs els exercicis i mínims més importants del quadrimestre, els que he dedicat més temps i he après més amb ells. Es un recull de la meva feina, que ha sigut costosa i constant. TEMPS D’ESTUDI I DE PREPARACIÓ DE LA CARPETA:

Sessions TGA a l’aula: 0 h Sessions TGB al laboratori 0 h Sessions TGC fora de l’horari 4 h Treball individual Estudiant 1: Bea Navarro Sansano

4 h

Temps total de mitjana (per estudiant) 4 h

Dossier Final – Bea Navarro Sansano

2

CONTINGUT DE LA CARPETA

EX4 ..............................................................................................................................................................3

1. Recerca i anàlisi d’informació sobre microprocessadors i microcontroladors .................................4

1.1 Desenvolupament de la pràctica/problema: ........................................................................................4 1.1.1 La visita de les webs dels fabricants de sistemes microprocessadors i microcontroladors ........4 1.1.2 La visita dels portals generals d’informació ...............................................................................5 1.1.3 L’organització i anàlisi de la informació ....................................................................................6 1.1.4 Les eines de programació per a microcontroladors..................................................................17 MPLAB ...............................................................................................................................................17

1.2 Bibliografia i referències consultades...............................................................................................19

EX5 ............................................................................................................................................................20

1. Tutorial de MPLAB i llenguatge assemblador...................................................................................21

Descripció de la pràctica: .......................................................................................................................21

Conceptes relacionats amb aquesta pràctica/problema:..........................................................................21 1.1 El projecte a dissenyar .................................................................................................................21 1.2 La instal·lació de l’entorn de desenvolupament integrat de Microchip MPLAB IDE.................22 1.3 L’anàlisi del primer programa en assemblador ...........................................................................23 1.4 La compilació del projecte ...........................................................................................................25 1.5 La simulació a través del laboratori virtual Proteus-VSM ..........................................................28 1.6 El procés de “debugging” a través de l’execució pas a pas .......................................................31 1.7 Una ampliació del projecte ..........................................................................................................34

2.Conclusions:............................................................................................................................................37 3. Bibliografia i referències consultades:...................................................................................................38

Mínim 2 .....................................................................................................................................................39

1 . Part A ) Analyzing a VHDL code.....................................................................................................39

2. Part B) Quartus /ispLevel ...................................................................................................................40

3. Part C) Laboratory work with the UP2 educational board (take it as an extra training for EX3).Producing single files VHDL Quartus-II projects.........................................................................43

4. Bibliografia i referències consultades.................................................................................................43

Mínim 4: Idees bàsiques sobre microprocessadors i microcontrolador .............................................44

AVALUACIÓ DE LA CARPETA DE IB...............................................................................................48

Conclusions sobre la carpeta i l’aprenentatge en grup .................................................................49

Dossier Final – Bea Navarro Sansano

3

EX4 Recerca i anàlisi d’informació sobre microprocessadors i

microcontroladors

GRUP: 7 DATA:11/05/2007 El primer que hem fet ha sigut explicar quin són els conceptes clau d’aquest tema. Desprès hem anat mirant per les webs dels fabricants dels microprocessadors cercant informació sobre xips microprocessadors / microcontroladors comercials. Finalment hem fet un diagrama per tal d’explicar quin és el procés que s’ha de seguir per realitzar aplicacions amb microprocessadors, des de la concepció fins a la gravació del programa en el xip. TEMPS D’ESTUDI I DE PREPARACIÓ DE L’EXERCICI:

Sessions TGA a l’aula: 2h Sessions TGB al laboratori 2h Sessions TGC fora de l’horari 5h Treball individual Estudiant 1: Bea Navarro Sansano

6h

Temps total (per estudiant) 6h

Dossier Final – Bea Navarro Sansano

4

1. Recerca i anàlisi d’informació sobre microprocessadors i microcontroladors

1.1 Desenvolupament de la pràctica/problema:

1.1.1 La visita de les webs dels fabricants de sistemes microprocessadors i microcontroladors

A) Observarem que en la major part de les pàgines a les que hem entrat trobem productes ben semblants. Cada fabricant ens explica les idees bàsiques dels seus productes per tal de que ens fem una idea del que venen i de si ens interessa o no.

Atmel: És una corporació líder en disseny i producció d’avançats semiconductors, enfocats en microcontroladors, memòria no volàtil, lògica, sensors i components de radiofreqüència. Aquestes funcions es posen com a productes per aplicacions específiques (ASSP) i per clients específics (ASIC). Tot això per proporcionar una resposta ràpida a les necessitats dels clients .

Microchip: Si entrem aquesta pàgina trobem links per obtenir informació de productes També podem obtenir datasheets i suport tècnic. I finalment podem comprar els productes que ens interessin i les aplicacions que ens facin falta. També trobem novetats sobre alguns productes de l’empresa que es volen donar a conèixer.

Analog Devices : Dins d’aquesta web trobem gran quantitat d’informació tècnica, notes d’aplicacions, etc., majoritàriament dedicada als amplificadors operacionals, convertidors A/D I D/A, interfases,etc.

Dallas Semiconductor- Maxim: Portal d’Internet on l’empresa de microprocessadors Dallas ens mostra gran quantitat d’informació tècnica, notes d’aplicació, etc, sobre aquests microprocessadors. Des de la pàgina també podem arribar a comprar el que necessitem.

Texas Instruments: Es fabricant de semiconductors, líder en disseny, producció de tecnologies de processament digital de senyals i solucions analògiques, que generen l’avanç de la digitalització de l’electrònica. Es dediquen a multitud de dispositius aplicats a tants àmbits com el militar, industrial, mèdic, seguretat, àudio, inalàmbrics, ample de banda, etc. A la seva pàgina podem trobar datasheets i amplia informació dels seus productes i activitats.

Dossier Final – Bea Navarro Sansano

5

National Semiconductors: A la seva pàgina es pot trobar documentació referent a amplificadors, conversió de dades, sensors, àudio i molts links sobre altres productes, components semiconductors, software de distribució, etc. 1.1.2 La visita dels portals generals d’informació

B)

All.datasheet:: Quan entres aquesta pàgina el que et sorprèn més es que està tot en la mateixa pagina , es a dir, qualsevol datasheet que tu busquis el trobaràs en ella mateixa no et caldrà entrar a cap enllaç o subcarpeta.

Global spect: Portal en el qual trobem moltíssima informació ben organitzada sobre els productes que ells produeixen o sobre les eines que fan servir (Condicionament de senyals i l’adquisició de dades, sensors, traductors...). La pàgina web es adequada tant per a un estudiant com per a un empresari.

Microcontroller: Observem que es una pàgina massa carregada d’informació. L’apartat de noticies sobre productes m’ha cridat molt l’atenció perquè posen exemples clars del que s’està fent. Amb els usos exactes de cada producte, un esquema clar i una taula dels productes mes similars. A més a més de totes les característiques més importants de cadascú.

Programers: Pàgina on només hi ha informació sobre el món de la programació: llenguatges, aplicacions, plataformes,etc. La pàgina esta mal dissenyada i no es veu clarament tota l’ informació que podem trobar.

Todopic: Pagina ideal per a estudiants. Me va agradar molt la part de apunts ja que ens donen tant tutorials sobre un dels programes basics, com tutorials de com fer circuits impresos. I tot amb la màxima claredat. També hi ha diversos exemples sobre programes en assemblador, que estan molt ben explicats. A més a més hi ha una sèrie de links que fan comprendre molt be l’assignatura.

Dossier Final – Bea Navarro Sansano

6

1.1.3 L’organització i anàlisi de la informació

C) El nostre grup ens ha tocat el microchip de Texas Instruments. Hem el·legit el microcontrolador de 8 bits el TMS370 [5]. A continuació mostrem els diagrames dels microcontroladors que representen la seva arquitectura típica. 1. Microcontrolador PIC 16F84

Fig. 1 Arquitectura interna del microcontrolador PIC 16F84

Observem en l’arquitectura que com a elements destacats tenim a dalt de tot les memòries ( ROM / EEPROM ) , per mig tenim el TMR0 i per baix tenim ALU, Wreg i els ports.

Característiques :::

• De la CPU RISC:

• Only 35 single word instructions to learn • All instructions single-cycle except for program branches which are two-cycle • Operating speed: DC - 20 MHz clock input DC - 200 ns instruction cycle • 1024 words of program memory • 68 bytes of Data RAM • 64 bytes of Data EEPROM • 14-bit wide instruction words • 8-bit wide data bytes • 15 Special Function Hardware registers • Eight-level deep hardware stack

Dossier Final – Bea Navarro Sansano

7

• Direct, indirect and relative addressing modes • Four interrupt sources: - External RB0/INT pin - TMR0 timer overflow - PORTB<7:4> interrupt-on-change - Data EEPROM write complete

• Com a microcontrolador:

• 10,000 erase/write cycles Enhanced FLASH Program memory typical • 10,000,000 typical erase/write cycles EEPROM Data memory typical • EEPROM Data Retention > 40 years • In-Circuit Serial Programming™ (ICSP™) – via two pins • Power-on Reset (POR), Power-up Timer (PWRT), Oscillator Start-up Timer (OST) • Watchdog Timer (WDT) with its own On-Chip RC Oscillator for reliable operation • Code protection • Power saving SLEEP mode • Selectable oscillator options

• Tecnologia de memòria EEPROM/FLASH millorada: • Low power, high speed technology • Fully static design • Wide operating voltage range:

- Commercial: 2.0V to 5.5V - Industrial: 2.0V to 5.5V

• Low power consumption: - < 2 mA typical @ 5V, 4 MHz - 15 mA typical @ 2V, 32 kHz - < 0.5 mA typical standby current @ 2V

Dossier Final – Bea Navarro Sansano

8

2.Microcontrolador TMS370

Fig. 2 Arquitectura interna del microcontrolador TMS370

En aquest microcontrolador tenim en el mig del esquema la CPU, la memòria RAM, la memòria EEPROM. Sota tenim els ports i a la part de la dreta tenim els A/D , els Timers i els serials. Dalt de tot tenim altre opcions com són els interruptors, el sistema de control o les opcions del Clock.

• Tecnologies de CMOS/EEPROM/EPROM en un sol dispositiu: – Mask-ROM Devices for High-Volume Production – One-Time-Programmable (OTP) EPROM Devices for Low-Volume Production – Reprogrammable EPROM Devices for Prototyping Purposes

• Configuració dels sistema de memòria intern: – On-Chip Program Memory Versions – ROM: 24K, 32K, or 48K Bytes – EPROM: 32K or 48K Bytes – Data EEPROM: 256 Bytes – Static RAM: 1K or 3.5K Bytes – External Memory/Peripheral Wait States – Precoded External Chip-Select Outputs in Microcomputer Mode

Dossier Final – Bea Navarro Sansano

9

• Característiques del funcionament:

– Low-Power Modes: STANDBY and HALT – Commercial, Industrial, and Automotive Temperature Ranges – Clock Options – Divide-by-4 (0.5 MHz – 5 MHz SYSCLK) – Divide-by-1 (2 MHz – 5 MHz SYSCLK) PLL – Supply Voltage (VCC): 5 V ± 10%

• Convertidor analògic/digital de 8-Bits ( ADC1) • Tres comptadors de temps generals de 16-bits

– Software Configurable as Three 16-Bit Event Counters, or Three 16-Bit Pulse Accumulators, or Five 16-Bit Input Capture Functions, or Six Compare Registers, or Three Self-Contained PWM Functions – One Timer Has an 8-Bit Prescaler, Providing a 24-Bit Real-Time Timer

• Comptador de temps Watchdog de 24 Bits

– EPROM/OTP: Standard Watchdog – Mask-ROM Devices: Hard Watchdog, Simple Counter, or Standard Watchdog

• Interfase de comunicacions en sèrie (SCI1) – Asynchronous and Isosynchronous† Modes – Full Duplex, Double-Buffered RX and TX – Two Multiprocessor Communication Formats Serial Peripheral Interface (SPI) – Variable-Length High-Speed Shift Register – Synchronous Master/Slave Operation

• Flexible Interrupt Handling (Direcció flexible dels interruptors) – Two S/W Programmable Interrupt Levels – Global- and Individual-Interrupt Masking – Programmable Rising- or Falling-Edge Detect

• TMS370 Compatibilitat en sèrie. – Register-to-Register Architecture – 256 General-Purpose Registers – 14 Powerful Addressing Modes – Instructions Upwardly Compatible With All TMS370 Devices

• CMOS/Package /TTL-Compatible I/O Pins – 46 Bidirectional Pins, 9 Input Pins – 68-Pin Plastic and Ceramic Leaded Chip Carrier Packages – All Peripheral Function Pins Are Software Configurable for Digital I/O

• Sistema de desenvolupament basat en : Workstation/PC – C Compiler and C Source Debugger – Real-Time In-Circuit Emulation – Extensive Breakpoint/Trace Capability – Software Performance Analysis – Multi-Window User Interface

– Microcontroller Programmer

Dossier Final – Bea Navarro Sansano

10

D) Genereu una taula que llisti les característiques (features) principals del component :

1. Què és el llenguatge màquina ? Llenguatge màquina és el sistema de codis directament interpretable per un circuit microprogramable, com el microprocessador d' un ordinador o el microcontrolador d' un autòmat (un PIC). Aquest llenguatge està compost per un conjunt d' instruccions que determinen accions a ser preses per la màquina. El llenguatge de màquina és específic de cada màquina o arquitectura de la màquina, encara que el conjunt d' instruccions disponibles pugui ser similar entre elles.

2. Quina diferència hi ha entre una màquina que es programa amb un llenguatge CISC o RISC ?

La diferencia entre una màquina que es programa en CISC o en RISC esta en el codi màquina utilitzat , en el preu, en la complexitat. Els CISC tenen un codi màquina que es caracteritza per ser molt ampli i permetre operacions complexes entre operadors situats a la memòria o en els registres interns, en contraposició a l' arquitectura RISC que es més simple. L’ arquitectura CISC dificulta el paral·lelisme entre instruccions, pel que, en l' actualitat, la majoria dels sistemes CISC d' alt rendiment implementen un sistema que converteix aquestes instruccions complexes en vàries instruccions simples de tipus RISC, anomenades habitualment microinstruccions. Una altra diferencia entre una màquina altra es que les RISC estan formats per un nombre molt més petit de transistors, i això els fa més barats, més ràpids i més eficients pel que fa a la dissipació d' escalfor (Efecte Joule) i de retruc, permet estalviar costos en refrigeració.

3. Què és el temps mínim d’execució d’una instrucció màquina ? És el temps que triga en executar - se un cicle d’instrucció, que depèn del període del clock. 4. Quina és l’arquitectura típica d’un microprocessador ?

El microprocessador principalment està compost per: els registres, la Unitat de control, la Unitat aritmètica - lògica, i depenent del processador, una unitat amb coma flotant.

Fig. 3 Arquitectura típica d’un microprocessador

L’ unitat de control llegeix i executa les instruccions: 1) Llegeix de la memòria principal l ’instrucció apuntada pel CP. 2) Incrementa el CP. 3) Descodifica l’ instrucció. 4) Fa que s’ executi l’ instrucció. A més a més :–Resol situacions anòmales o de conflicte. – Controla la comunicació amb els perifèrics.

Els registres funcionen com un nivell de memòria per damunt de la memòria principal i de la cache. Unitat Aritmètica Lògica (UAL) es un circuit combinacional que realitza operacions aritmètiques y lògiques bàsiques en un computador:

Dossier Final – Bea Navarro Sansano

11

5. Què és una arquitectura Harvard i una Von Neumann ?

Una arquitectura Harvard es aquella en la qual hi tenim dos memòries diferenciades; una per a les dades i l’altra per a les instruccions del programa en si. A més a més cadascuna de les memòries disposa del seu respectiu bus , el que permet , que la CPU pugui accedir de forma independent i simultània a la memòria de les dades i a la de les instruccions. Com els busos son independents aquets poden tenir diferents continguts en la mateixa direcció.

Fig. 4 Esquema de l’ arquitectura Harvard

La arquitectura von Neumann es la que els ordinadors estan utilitzant el mateix dispositiu d’ emmagatzematge tant per a les instruccions com per a les dades. Els ordenadors amb arquitectura von Neumann estan formats per cinc parts: La ALU, la unitat de control, la memòria, un dispositiu de entrada/sortida i el bus de dades que proporciona un mitjà de transport de les dades entre cadascuna de les partes.

Fig. 5 Esquema de l’arquitectura de Von Neumann

6. Què són els busos interns de dades, adreces i control ? Un bus es un conjunt de conductors elèctrics en forma de pistes metàl·liques impreses sobre la targeta mestra del computador, per on circulen les senyals que corresponen a les dades binaries del llenguatge màquina amb el qual opera el Microprocessador. Hi han tres classes de busos: bus de dades, bus de direccions i bus de control. El primer transporta dades, sense fer diferencies entre dades e instruccions. L’amplada del bus es clau per determinar el rendiment ( 8,16,32,64 bits ). El segon identifica la font o destí de les dades ( p.ex. CPU llegeix una instrucció d’una posició concreta de la memòria). L’amplada d’aquest bus determina la capacitat màxima de la memòria (p.ex. 8251 te 16 bits d' adreça donant un espai de memòria de 64Kb). L’últim bus que es el de control dona informació de control i temporització de: les senyal de lectura/ escriptura, de les peticions d’interrupció i de les senyals de rellotge.

Dossier Final – Bea Navarro Sansano

12

7. Què és una arquitectura de 8 / 16 /32 bits ? Per què adopten aquesta nomenclatura ?

És el tamany de les paraules amb les que la CPU treballa. És la capacitat de la memòria del microprocessador.

8. Què és l’oscil·lador generador de rellotge (clock) ? Quantes possibilitats hi ha de fer el

clock ? Un oscil·lador generador de rellotge , tal com diu el seu nom, es un circuit oscil·lador que genera una ona quadrada d’alta freqüència, que configura els impulsos del rellotge utilitzat en totes les operacions del sistema. Generalment, el circuit de rellotge està incorporat en el microcontrolador i nomes es necessiten uns quants components exteriors per seleccionar i estabilitzar la freqüència de treball. Aquests circuits solen consistir en un cristall de quars junt a elements passius o be un ressonador ceràmic o una xarxa R-C. Augmentar la freqüència de rellotge suposa disminuir el temps en que s’executen les instruccions però comporta un increment del consum d’energia.

9. Quina és la tensió d’alimentació del xip ? Per què el xip consumeix més potència quan

treballa a més freqüència de clock ? La tensió d’alimentació del xip esta entre 3 i 5,5 V. Un xip consumeix més potència quan treballa a més freqüència de clock degut al increment dels seus canvis d’estats. Això, ve indicar per:

FVCConsum ××=2

On C es la capacitat dinàmica, V es el voltatge i F es la freqüència de treball del xip. 10. Per a què s’usa la memòria ROM / FLASH ? Per a què s’usa la memòria RAM ?

La memòria Rom/Flash ( Read-Only Memory ) és una memòria en la qual no es pot escriure, i que conserva intacta la informació acumulada, inclús en el cas d ‘un tall de corrent ( memòria no volàtil ). La Rom normalment guarda la configuració del sistema o el programa d’inici de la computadora. (Memoria només de lectura ) . Degut a que no es pot escriure fàcilment, el seu ús principal resideix en la distribució de programes que estiguin estretament lligats al suport físic de la computadora, i que segurament no necessitin actualitzacions. La memòria Ram (Random Access Memory) es tracta d’una memòria de semiconductor en la que tan es pot llegir com escriure informació. Es una memòria volàtil, es a dir, perd el seu contingut al desconnectar l’energia elèctrica. S’utilitza normalment com a memòria temporal per contenir resultats intermedis i dades similars no permanents. La memòria RAM normalment es mes ràpida per la lectura que la major part de les memòries ROM, per aquest motiu el contingut ROM es trasllada a la memòria RAM quan s’ utilitza.

11. Expliqueu què és l’amplada de la memòria de programa i dades, què és la capacitat d’adreçament de la memòria de programa? El mateix per la memòria de dades, si hi ha diferències.

La memòria de programa és on el microcontrolador emmagatzema totes les instruccions del programa de control. Com aquest programa de control sempre és el mateix, ha d’ estar gravat de forma permanent. La memòria de dades és la que el microcontrolador emmagatzema les variables que varien contínuament. Això exigeix que la memòria que conté aquestes dades sigui de lectura i escriptura. Raó per la qual la memòria RAM estàtica (SRAM) , és la més adequada.

12. Què és el registre program counter ? quina és la seva funció ?

El registre program counter és un comptador de programa que conté la direcció de memòria de la pròxima instrucció a executar per l’ordinador , i es va incrementant a cada nova instrucció.

Dossier Final – Bea Navarro Sansano

13

13. Quina és l’arquitectura típica d’una CPU ?, i quins són els registres principals de la CPU ? Què és l’ALU i el registre acumulador (A) o working register (W) ?

Fig. 6 Arquitectura típica d’una CPU

Alu: Es un circuit digital que calcula operacions aritmètiques (com addició, subtracció, etc.) i operacions lògiques (com OR, NOT, XOR, etc.), entre dos nombres. Molts tipus de circuits electrònics necessiten realitzar algun tipus d' operació aritmètica, així que fins i tot el circuit dintre d' un rellotge digital tindrà una ALU minúscula que es manté sumant 1 al temps actual, i es manté comprovant si ha d' activar la xiuletada del temporitzador, etc... Segons la complexitat del microprocessador els ALU’s corresponents seran més complexos i poderosos o a l’inrevés.

Fig. 7 Símbol típic esquemàtic per una ALU: Esquema A y B son operants; R es la sortida; F es la entrada de dades de l’unitat de control (bus control) i D es un registre d’estat.

Registre Acumulador:

Aquest emmagatzema els resultats de les operacions executades pel circuit Operacional, també es troba connectat amb els Registres d' Entrades com una realimentació per a realitzar les operacions encadenades, per descomptat que es troba connectat amb el bus de dades del sistema amb el propòsit d' enviar els resultats a la Memòria principal o (RAM) o a algun perifèric.

14. Què són els ports d’entrada i sortida digitals ?Què vol dir que són programables bit a bit ?

Els ports d’entrada i sortida digitals són aquells ports que s’encarreguen d’enviar els bits amb la CPU. Tenen associat un registre de memòria, que es pot trobar en un banc de memòria aïllat dels registres de propòsit general, registres específics per funcions de programa, etc. Són programables bit a bit ja que cada port de dades es correspon amb un bit

Dossier Final – Bea Navarro Sansano

14

15. Què vol dir que alguns ports tenen “build-in pull-up resistors”? Una resistència Pull-up és una resistència elèctrica que es connecta entre el pin d’entrada de les senyals binàries d’algun dispositiu electrònic, i el pol oposat al pol de la senyal que s’està enviant al dispositiu. Amb aquesta posició de la resistència podem obtenir senyals clarament polaritzades a l’entrada d’un circuit.

16. Què són les interrupcions ? Quantes fonts d’interrupcions hi ha ?

Les interrupcions són el mecanisme per la connexió del microcontrolador amb el món exterior, el que fa és sincronitzar la execució d’un programa amb els esdeveniments externs.

Hi han 4 fonts d’interrupció: 1. Interrupció externa INT. Es molt important per atendre esdeveniments externs en temps real. 2. Interrupció per desbordament del TMR0. 3. Interrupció per canvi d’estat dels pins RB7,RB4 4. Interrupció per finalització d’escriptura en la EEPRON de dades. 17. Pel que fa als perifèrics més usuals,

a. Què és el timer /counter ? quina és la seva capacitat de comptatge (mòdul) ?

Els temporitzadors (timer) són perifèrics que proporcionen una base de temps al nostre programa. El seu funcionament consisteix en un registre que s' incrementa periòdicament. Quan aquest registre es desborda molts microprocessadors poden llançar una interrupció. El període del temporitzador ve definit per un múltiple de la freqüència de rellotge. El prescaler és el valor pel qual es divideix la freqüència de rellotge per a obtenir la freqüència del temporitzador. Els temporitzadors donen suport a altres perifèrics com el PWM o el CCP, de tal manera que la configuració del primer influeix en el segon.

Fig. 8 Esquemàtic del TMR0.

b. Què és el watchdog timer ? El match dog ( gos guardià ) és un element que reinicia el micro en cas de quedar-se penjat. És un compte enrere que cal ressetejar en el nostre programa periòdicament. Si aquest senyal no és resseteja abans que es desbordi, el micro es reinicia. Cal anar amb compte amb desactivar-lo si no l' anem a utilitzar. Si la usem ens hem de recordar de resetejar el comptador freqüentment. Els microprocessadors que ho inclouen solen tenir instruccions específiques que ressetejen el comptador.

Dossier Final – Bea Navarro Sansano

15

c. Què és el pre-scaler del comptador ? És un component del timer amb el qual podem seleccionar que el temps es vagi incrementant a la mateixa velocitat que les instruccions ( si te valor 1) o si volem configurar-lo al nostre gust ( si te valor 0). Es sol configurar normalment amb el registre OPTION_REG.

d. Què és el PWM ? Quines aplicacions té ?

És el modulador de amplada de polsos. Les sortides de PWM (puls with modulation) s'utilitzen com una forma de transmetre un valor analògic amb un port digital. Aquesta sortida consisteix en un tren de polsos que es repeteix amb un període determinat. En aquesta sortida podem determinar tant el període com el cicle de treball(“duty cycle”), que és la relació entre la durada de l’ estat del pols a nivell alt i el període. Les sortides PWM s' usen molt freqüentment per a controlar motors. Si alimentem un motor amb una tensió modulada d' aquesta manera podrem regular la velocitat que serà proporcional al “duty cycle”.

Fig. 9 Esquema PWM

e. Què són els convertidors A/D i el D/A ? Quina és la resolució d’un A/D de 8 bits (i de 10 bits) per una tensió de fons d’escala de 5V ( i una de 10 V) ?

Els convertidors A/D I D/A són els dispositius que s’encarreguen de convertir senyals analògiques a digitals i a l’inrevés.

Resolució:

Convertidor 8 bits �

mVVVDD

R

mVVVDD

R

n

n

06.392

10

2

53'192

5

2

8

8

===

===

Convertidor 10 bits �

mVVVDD

R

mVVVDD

R

n

n

76,92

10

2

88,42

5

2

10

10

===

===

Dossier Final – Bea Navarro Sansano

16

f. Com és l’arquitectura d’un A/D amb la tècnica d’aproximacions successives ? Quants cicles de rellotge necessita per realitzar una conversió?

El conversor consta d’una lògica de control que modifica els bits fins obtenir en valor digital la magnitud analògica. Es requereix un cicle de rellotge per cada bit, l’avantatge d’aquests dispositius és que el temps de conversió és molt petit, essent molt bo per senyals que varien ràpidament.

Fig. 10 Esquema d’un A/D amb la tècnica d’aproximacions successives.

18. Quin són els encapsulats més usuals ? Un encapsulat es defineix com la forma en què s’empaqueta l’oblea de silici en si mateixa. Serveix per donar consistència, impedir el seu deteriorament i permetre l’enllaç amb els connectors externs que l’uniran a la placa base. Els més usuals son: • DIP (Dual in-line package): És una forma de encapsulat comú en la construcció de circuits

integrats. • PGA (Pin grid array). Es un tipus d’empaquetat utilitzat per als circuits integrats, particularment

microprocessadors.

Fig. 11 pin grid array del Motorola XC68020.

Els xips més nous com ara les RDRAM fan servir CSP (Chip Scale Package), aquests no tenen potes si no connexions elèctriques amb la placa.

19. Quines són les aplicacions més usuals a les que el fabricant destina el xip ?

Principalment el fabricant destina el xip per a plaques de prototips i projectes. Alguns exemples de les aplicacions del xip serien: control d´ accessos (portes), controls de presencia, control de temps, sistemes de identificació, alarmes, etc…

Dossier Final – Bea Navarro Sansano

17

1.1.4 Les eines de programació per a microcontroladors

E) Trobeu per a Microchip i per al fabricant de la que us ha tocat, el programari bàsic a través del qual es poden començar a realitzar aplicacions, normalment en assemblador. Trobeu també, fabricants de programari (Compiler & Assemblers Tool Vendors o third party tools) que permetin realitzar programes en llenguatge C.

Marca i software

base

Third party tools Descripció Pàgina web

HI-TECH C

Aquest software, especialitzat en la

compilació de codi, ha desenvolupat la tecnologia necessària per a optimitzar el

procés: permet produir el codi conservant els avantatges d’un llenguatge de programació estándar d’alt nivell

http://www.htsoft.com

CCS C Compiler

CCS ofereix els compiladors C optimitzats de PICmicro® del microchip per Windows

i Linux. També inclou altres eines de desenvolupament i suporta PIC12, PIC14,

PIC16 y PIC18 MCUs.

http://www.ccsinfo.com

IAR Systems

IAR Systems, fundada al 1983, és el líder

mundial. IAR Embedded Workbench amb

compiladors C/C++ i debugadors C-SPY suporta més de 30 arquitectures diferents.

(8-, 16-, i 32-bit).

http://www.iar.com

Byte Craft Limited

El sistema de desenvolupament del codi

MPC per la familia del PICmicro 12/14/16/17 produce el estàndar .COD, que

debuga un arxiu, suporta interrupcions (guardant) i anomena espais de memòria.

http://www.bytecraft.com/mpccaps.html

B. Knudsen

El CC5X/CC8 va ser dissenyat per a

permetre la programació fàcil i eficient dels dispositius de PICmicro. Els compiladors ofereixen un codi compacte, un llenguatge

de baix nivell i el càlcul utilitzant 8, 16, 24 i

32 variables de bit.

http://www.bknd.com

MicroEngineering

Labs

Ofereix eines de desenvolupament per

PICmicro MCUs. Compiladors del BASIC, programador ÉPICO del dispositiu i

accessoris.

http://www.melabs.com

Microchip MPLAB1

Micrium

Micrium proporciona els components de software d’alta qualitat, com el sistema

operatiu en temps real de la compañia, el Micrium uC/OS-II.

http://micrium.com/microchip/

Taula 1 .L’entorn integrat de programari de desenvolupament (IDE) d’aplicacions al voltant de cada microcontrolador

1 MPLAB és l’entorn integrat de desenvolupament, que juntament amb el HI-TECH C Lite Compiler haureu d’instal·lar-vos per poder realitzar projectes amb PIC16F84 i PIC16F87X. Els projectes se simularan en Proteus-VSM i es realitzarà el prototip en les targetes d’entrenament

Dossier Final – Bea Navarro Sansano

18

F) Dibuixeu el diagrama de flux per a poder dissenyar aplicacions amb microprocessadors.

Fig. 12 Exemple d’un diagrama de flux de disseny d’un sistema microcontrolador.

Observem com el primer que hem de tenir clar son les especificacions que volem tenir en la nostra aplicació. A continuació farem un primer disseny en el Proteus. Tot seguit, amb el MPLAB farem el codi en assemblador, que seguidament simularem tant en el propi MPLAB com en el Proteus. Finalment provarem el seu funcionament , si hi hagués algun error hauríem de tornar a modificar el codi o el disseny.

Dossier Final – Bea Navarro Sansano

19

1.2 Bibliografia i referències consultades

[1] Pàgina web amb informació de com preparar els exercicis http://epsc.upc.edu/projectes/sed/projectes_aplicacio/Projectes_Aplic.htm

[2] “Microcontroladores PIC16F84. Desarrollo de proyectos”, Palacios, E. Remiro, F. , López, L. J.

Editorial RA-MA, 2004. Un llibre on trobareu molts programes en assemblador per aquest PIC, un dels més senzills. A l’enllaç de llibres de la web de SED (http://epsc.upc.edu/projectes/sed/llibres/Llibres.htm) està referenciat juntament amb els enllaços que subministren tots els dissenys proposats al llibre en Proteus-VSM

[3] Pàgina web de Microchip: http://www.microchip.com on s’ha localitzat el datasheet del xip

PIC16F84, el primer microcontrolador que programarem en assemblador mitjançant el programari MPLAB de lliure distribució també a través d’aquesta web

[4] “Microprocessors, from Assembly language to C Using the PIC18Fxx2”, Reese, R. B., Da Vinci

Engineering Press, 2005

[5] http://www.datasheetcatalog.net/es/datasheets_pdf/T/M/S/3/TMS370.shtml Pàgina on trobem els datasheets corresponents al nostre microcontrolador TMS370 del fabricant Texas Instruments.

[6] www.wikipedia.org Pàgina amb informació general

[7] http://www.monografias.com/trabajos15/termometro-digital/Image3667.gif Pàgina d’exemple d’un

microcontrolador

Dossier Final – Bea Navarro Sansano

20

EX5 Tutorial de MPLAB i programació en llenguatge assemblador

GRUP:7 DATA: 24/05/07 TEMPS D’ESTUDI I DE PREPARACIÓ DE L’EXERCICI:

Sessions TGA a l’aula: 2h Sessions TGB al laboratori 6h Sessions TGC fora de l’horari Treball individual Estudiant 1:Bea Navarro Sansano

10h

Temps total (per estudiant) 18h

Dossier Final – Bea Navarro Sansano

21

1. Tutorial de MPLAB i llenguatge assemblador

Descripció de la pràctica:

Es tracta de realitzar l’edició, compilació, simulació i gravació d’un programa senzill tutorial en llenguatge assemblador sobre un PIC16F84A. Tot seguit, plantejareu i realitzareu un disseny que serà una ampliació dels conceptes del tutorial. S’usarà l’entorn de desenvolupament integrat MPLAB i també el laboratori virtual Proteus-VSM per verificar el funcionament final del disseny abans de la gravació del microcontrolador. El muntatge es farà al laboratori sobre la placa PIC Millennium Board de BlueBird Electronics, la PICDEM2 de Microchip, o bé directament sobre una targeta de circuit imprès universal (aquestes que estan ja foradades i solament cal fer les soldadures).

Conceptes relacionats amb aquesta pràctica/problema:

L’arquitectura interna del sistema microcontrolador PIC16F84A; el repertori d’instruccions en assemblador; les parts bàsiques d’un programa en assemblador; les eines CAD de disseny de sistemes digitals basats en microprocessadors; l’execució pas a pas i l’etapa de detecció d’errors de programació (debugging); la simulació en laboratori virtual i a través d’una targeta d’entrenament o demostració; la gravació del microcontrolador a través d’un programador; l’atenció als ports d’E/S per enquesta (polling); la programació estructurada en subrutines. 1.1 El projecte a dissenyar

A) Volem dissenyar un sistema microprocessador d’un comptador de polsos de 8 bits que representarà el compte acumulat a través d’un conjunt de 8 LED tal com mostra la Fig. 13.

Fig. 13 Projecte a dissenyar a través d’un microcontrolador PIC

Dossier Final – Bea Navarro Sansano

22

1.2 La instal·lació de l’entorn de desenvolupament integrat de Microchip MPLAB IDE

B) El primer que hem fet es instal·lar-me al ordinador el Programa MPLAB IDE V 7.00.

Fig. 14 Icona del programa Mplab

Fig. 15 Pantalla que ens mostra d’instal·lació del programa.

Desprès hem carregat el projecte “Practica_1.mcp” (SED_EX5_prj.zip) que mostra la figura 4, que tenim a la pàgina web de l’assignatura[8]. Hem obert el fitxer prog_1.asm, que com podem observar ens mostra el codi en assemblador del projecte,

Fig. 16 Aspecte que té la finestra principal una vegada carregat el projecte i obert el fitxer assemblador

Dossier Final – Bea Navarro Sansano

23

1.3 L’anàlisi del primer programa en assemblador

C) El primer que fem desprès de haver - nos llegit i examinat detingudament el fitxer prog _1.asm és representar el diagrama de flux.

Fig. 17 Diagrama de flux del programa

A continuació hem determinat aquests punts dins del programa:

- Directives d’assemblador - Origen del programa - Instruccions en assemblador - Registres on hi ha les dades i els ports d’entrada i sortida

; **************************************************************************************

; TÍTOL I DESCRIPCIÓ

; *****************************

TITLE "Comptador de polsos"

; Aquest programa està preparat per a la targeta PIC_MILLENIUM de demostració.

; El Port B està connectat a la barra de 8 LED.

; La línia RA4 està connectada al polsador S2

; Cada vegada que es prem el polsador S2, s’incrementa en una unitat el compte

; de polsos que s’emmagatzema a la variable COUNT i es visualitza el seu valor

; en binari en els LED connectats al PORTB del PIC

; **************************************************************************************

; SELECCIÓ DEL PIC

; ****************************

LIST p=16F84A ; Aquesta directiva de l’assemblador amb l’opció p

; selecciona el PIC

Dossier Final – Bea Navarro Sansano

24

; **************************************************************************************

; DEFINICIONS PRÒPIES DEL PIC

; ****************************

#INCLUDE <P16F84A.INC> ;Directiva que permet afegir fitxers amb definicions o subrutines,

Inclou les definicions del PIC seleccionat

; L'ús de noms en lloc de xifres facilita

molt la

; comprensió dels programes. En aquesta

aplicació

; solament usem les definicions següents:

; W EQU H'0000' ;

Realitza la igualtat entre una ;constant i un valor numèric o entre una constant i una posició de

memòria.

; F EQU H'0001'

;----- Register Files -----------

; STATUS EQU H'0003'

; PORTA EQU H'0005'

; PORTB EQU H'0006'

; TRISB EQU H'0086'

;----- STATUS Bits --------------

; RP0 EQU H'0005'

; **************************************************************************************

; DEFINICIONS

; ****************************

COUNT EQU 0x0C ; A la posició 0Ch comencen els registres de

; propòsit general dins de la

memòria SRAM

; Per tant, s’usa la primera

posició per guardar

; el comptatge de polsos.

; **************************************************************************************

; PROGRAMA

; ****************************

ORG 005h ; La directiva 'org' indica on ha de

començar el

; programa. La memòria FLASH de

programa per aquest

; micro és de 1024 posicions de

14 bits cadascuna).

; La posició 000h és el

començament, però hi ha el

; vector de reset, així que la

posició 005h és la

; primera lliure desprès del

vector d’interrupció

; Normalment començarem els

programes en aquesta

; posició

; ----- Configurar el port B com

a sortida

Start ; Etiqueta que indica la primera posició

del programa(INICI)

clrf PORTB ; Posa a 0 el registre PORTB on hi han els LED

; El registre TRISB està al bank

1 de la memòria RAM (0086h)

bsf STATUS,RP0 ; Per tal d'adreçar-lo directament, cal

configurar el bit 5

; del registre d'estat STATUS.

movlw 00h

movwf TRISB ; Configura el PORT_B com a sortida

bcf STATUS,RP0 ; Torna a l'adreçament del bank 0

clrf COUNT ; ----- Inicialitza el comptador

Loop btfss PORTA,4 ; ----- Si hi ha S2 polsat saltem a incrementar el COUNT

; Al bit 4 del PORTA (RA4) hi ha

connectat S2.

goto Incrementa ; Quan hi ha tecla polsada, RA4 = 0. S'executa la

propera

; instrucció que es d'incrementar

el compte

goto Loop ; Mentre no s'hagi premut S2, RA4 = 1el programa

es queda

; en aquest llaç

Dossier Final – Bea Navarro Sansano

25

; ----- Incrementa i visualitza

el contingut de COUNT

Incrementa

Incf COUNT,F ; Incrementa i es guarda el valor en el propi

registre (F=1)

movf COUNT,W ; Porta el contingut de COUNT a l’acumulador

movwf PORTB ; Porta W al port b per tal d’il·luminar els LED

Debounce

btfss PORTA,4 ; Comprova si s'ha deixat de prémer la tecla S2

goto Debounce ; Si encara RA4 = 0, espera es queda en el llaç

goto Loop ; Ja s'ha deixat anar la tecla (RA4 = 1) i torna

cap al llaç

; principal

; **************************************************************************************

; VECTOR DE RESET

; ****************************

ORG 000h ; Quan es prem el MCLR_L, el programa va

; a l'adreça 000h per tal

d'executar la seqüència

; d'inicialització. En aquest

cas, simplement un salt a

; l'origen del programa

goto Start

; **************************************************************************************

; BITS DE CONFIGURACIÓ GENERAL PER AL PROGRAMADOR

; ****************************

__CONFIG _RC_OSC & _PWRTE_ON & _CP_OFF & _WDT_OFF

; Rellotge exterior RC (_RC_OSC)

; Usarem el temporitzador d'arrencada Power-Up

Timer(_WRTE_ON)

; No usarem el Watch-Dog Timer (_WDT_OFF)

; No protegirem el codi (_CP_OFF)

END ; Directiva que marca el fi del programa font

; **************************************************************************************

Fig. 18 El primer programa en assemblador

1.4 La compilació del projecte

D) Compilem el projecte amb l’opció “Project” → “Build All” i comprovarem com tot el programa MPLAB està ben instal·lat. Es recomana penjar el directori del projecte prop del directori arrel del disc dur, per

exemple: C:\SED_PRACT/PIC\ASM_Practica_1. Fem córrer la simulació del programa dins de l’entorn MPLAB (debugger --> run/animate) i observem la dificultat d’entrar estímuls com ara un interruptor. Per això usarem millor el Proteus-VSM.

Fig. 19 Finestra del programa mentre s’està compilant. El 4% es el percentatge del programa que s’ha compilat fins aquell moment.

Dossier Final – Bea Navarro Sansano

26

Fig. 20 Finestra amb la compilació completa del primer projecte.

Fig. 21 Finestra del codi assemblador amb la simulació en funcionament

Dossier Final – Bea Navarro Sansano

27

Com tot ha funcionat correctament, MPLAB generarà, entre d’altres, dos fitxers de sortida:

• Fig. 23. És el fitxer que s’ha de gravar amb el programador adequat dins del PIC16F84A. • El fitxer “Practica_1.COF” que també se simula i porta, a més, informació simbòlica per facilitar la

detecció i correcció d’errors de programació (debugging) i serveix per realitzar l’execució pas a pas.

Fig. 22 Finestra que ens mostra on estan els fitxers que acaba de generar el programa.

Fig. 23 El contingut del fitxer Prog_1.HEX

El contingut que observem a la Fig. 23 és una successió de números en hexadecimal que representa el codi que tenim en assemblador en llenguatge màquina.

Fitxers COFF, i HEX generats desprès de la compilació.

Dossier Final – Bea Navarro Sansano

28

1.5 La simulació a través del laboratori virtual Proteus-VSM

Obriu el Proteus-VSM i carregueu el projecte “PIC_MILENNIUM_BOARD_PIC16F84A.DSN” i observeu el esquema que mostrem a la

E) Fig. 24.

Fig. 24 Projecte PIC_MILENNIUM_BOARD_PIC16F84A.DSN oberts amb Proteus.

En primer lloc ens fixarem en el requadre vermell de la figura de sota que és el disseny de la font regulada de 5 V Aquesta s’obté de una bateria de 9V no regulada. Això ens podria produir un senyal amb rissats de tensió. Aquesta font de 5V servirà per alimentar el mòdul comptador. A continuació hem entrat dins del mòdul 8-BIT COUNTER i hem comprovat que hi ha el circuit amb PIC representat a la Fig. 25.

Fig. 25 Circuit intern del mòdul COMPTADOR 8 BITS: el primer circuir amb microcontrolador

Dossier Final – Bea Navarro Sansano

29

Desprès hem verificat editant el microcontrolador PIC16F84A que té assignat el programa Prog_1.COF (en altres casos també pot estar assignat el Prog_1.HEX) que acabem de compilar (vegeu la Fig. 26).

Fig. 26 Observeu com el PIC té assignat el fitxer amb el programa que ha d’executar.

Si anem a Program File i clickem a la carpeta ens apareixerà la finestra que mostrem a la

Fig. 27 on podem decidir si posem el COFF o el HEX.

Fig. 27 Finestra per seleccionar el fitxer que volem posar dins del PIC.

Quan ja hem fet tots els passos previs hem fet córrer la simulació.

Dossier Final – Bea Navarro Sansano

30

En les imatges següents observem que succeeix quan premem els polsadors. Comprovem que la simulació compta en binari i representa el valor actual del compte en els LED.

Fig. 28. Imatge que ens mostra la primera vegada que prenem S1.

Fig. 29 Imatge quan ja hem près per quart cop el S1.

Podem observar com el la Fig. 28 està il·luminat el Led de baix de tot que representa el nombre 1 en binari. La imatge ens ensenya just l’instant desprès d’haver pres el botó S1. En la finestreta de la dreta Watch Window ens dona els valors que tenim en el PORTB ( tal com hem dit en l’apartat 1.3 , es un registre de sortida que ens mostra el resultat en els LED’s) i en el Count ( que és el comptador que va sumant 1 cada vegada que premem S1 tal com es veu a la Fig 6). En els casos que hem escollit veiem com l’ adreça es la mateixa tant si hem pres per primera vegada com per quarta vegada, i el valor es diferent segons el moment. Primer tenim un 1 i desprès un 4. Comprovem fins al final que el comptador funciona correctament.

Dossier Final – Bea Navarro Sansano

31

1.6 El procés de “debugging” a través de l’execució pas a pas

F) Proveu a través del Proteus-VSM el funcionament pas a pas del programa i la col·locació de “breakpoints” per aturar el programa a l’adreça desitjada. Vegeu també la finestra que mostra el contingut de tots els registres importants del microcontrolador. Expliqueu les diferències entre els fitxers de sortida HEX i COF (cerqueu informació en els manuals i Internet)

Fig. 30 La finestra del codi font que s’està executant pas a pas amb la introducció de breakpoints

Comprovem com al col·locar breakpoint en el programa, el sistema va llegint fins aquest símbol i aquí es para i espera q li donem una instrucció perquè ha de continuar pas per pas.

Fig. 31 Finestra amb les dades del Registre del Pic.

En la finestra que mostrem en la figura anterior tenim el valor dels registres i dels ports del nostre microprocesador. INSTR: Ens mostra que farà el programa en el següent pas. Es a dir, quina instrucció farà a continuació. W/STATUS/PORTA/PORTB/TRISA/TRISB� Ens mostren la informació que hi ha en dits registres. Les diferencies bàsiques entre el fitxer HEX i el COFF, es que el fitxer HEX no es podrà executar pas per pas , en canvi el COFF si, ja que es un executable en canvi el HEX es només un fitxer que el programador d’EPROM pot reconèixer i carregar directament. Diríem que és millor el COFF perquè podrem comprovar si hi ha algun error on està localitzat.

Dossier Final – Bea Navarro Sansano

32

G) Volem ampliar el programa i el circuit per tal d’afegir una línia TC16 que s’activi cada vegada que es comptin 16 estats. Quan TC16 estigui activada s’il·luminarà un LED que connectareu a la línia RA3.

El primer que haurem de fer es un Diagrama de Flux on mostrem que haurà de fer el nostre codi:

Fig. 32 Diagrama de flux

Observem com és el pràcticament igual al que tenim en la Fig.17, però afegint el que ara ens interessa que és que el COUNT comprovi si hem arribat a 16 (binari) i si és així que un LED (TC16 en el codi) s’encén. En el codi que tenim en assemblador l’únic que haurem de fer és col·locar un nou bloc que compari el que tenim en el que volem. Aquest bloc Compara el que farà serà primer aplicar una màscara en el valor que tenim al COUNT per tal de guardar els 4 bits de menor per. Desprès restarem 16 al valor obtingut i si el resultat fos igual a 0 encenem el LED TC16, sinó doncs continuaríem el programa. 1.

Dossier Final – Bea Navarro Sansano

33

Codi en assemblador del bloc Compara: bcf PORTA,3 ; Posa a zero el RA3 andwf MASCARA,0 ; Fa un AND entre W i MASCARA. El resultat el guarda a W subwf MULTI,0 ; Resta MULTI - W. El resultat el guarda a W btfsc STATUS,2 ; Si el bit 2 del registre STATUS es 0, salta la línia bsf PORTA,3 ; Posa el RA3 a 1. Led TC15 goto Debounce

Fig. 33 Imatge del Comptador de 8 bits desprès de modificar-lo amb un nou LED.

Desprès de modificar el codi el que fem és comprovar que funciona amb el MPLAB i tot seguit ho provem amb el Proteus. Carregarem el nou fitxer HEX al PIC16F84A, i procedirem a la simulació per verificar el funcionament del nostre disseny. Observem que quan li hem donat al S1 durant 16 cops el Led D11 s’encén (Fig. 1334).El programa funciona correctament.

Fig. 34 Imatge del Comptador de 8 bits quan el COUNT =16.

Dossier Final – Bea Navarro Sansano

34

1.7 Una ampliació del projecte

H) Modifiqueu el disseny per tal que compti en BCD cada vegada que premem el polsador. Feu que el dígit de les desenes sigui PB[7..4] i el dígit de les unitats sigui PB[3..0]. En el simulador Proteus-VSM acobleu un parell de descodificadors BCD-7SEGMENTS i un parell de visualitzadors per mostrar la xifra decimal del comptador.

Comencem dissenyant l’esquema electrònic que proposo i ho dibuixo en Proteus-VSM.

Fig. 35 Esquema bàsic del projecte en Proteus

En el cas d’ara ho hem dissenyat amb dos descodificadors BCD-7SEGMENTS que el que fan es , tal com diu el seu nom, descodificar els dígits que li venen del Pic ,que estan en BCD, a 7 senyals que seran el que farà que els segments del Display s’il·luminin. Cadascun dels Displays codificarà del 0-9, el primer representarà les desenes i el segon les unitats.

Fig. 36 Esquema en Proteus dins del Pic

Dossier Final – Bea Navarro Sansano

35

A continuació hem fet els següents diagrames de flux per tal d’explicar en parts el que fa el programa. Es a dir farem un anàlisi inicial del programa basat en les seves interrupcions. Primer veurem el que fa la subrutina MOSTRA del programa. El codi es el següent: Mostra goto BIN_BCD ;Anem a la subrutina BIN_BCD

movf Unitats,W ;Porta el valor que tenim a Unitats a W goto BCD_7SEG movwf PORTB ;Porta W al port b per tal l'il•luminar els LED

crf PORTA movf Desenes ,W ;Porta el valor que tenim a Desenes a W

movwf PORTB movf COUNT,W ; Porta el contingut de COUNT a l'acumulador

return

Fig. 37 Diagrama de flux Subrutina Mostra

Dossier Final – Bea Navarro Sansano

36

El que veurem ara serà el de la subrutina BIN_BCD, on tranformem el número en binari a BCD, al mateix temps que nem contant quantes unitats i decenes tenim , per desprès visualitzar-ho al 7 segments: incf UNITATS ; UNITATS = COUNT movlw 0x0A ; guardem 10 a W subwf UNITATS,0 ; resta UNITATS - 10 y lo guarda en W btfss STATUS,0 ; comprovem el bit de Carry (C) goto final ; entra si Carry = 1 goto decenes ; entra su Carry = 0 decenes clrf UNITATS incf DECENES,1 bsf PORTA,3 goto final final movf UNITATS,0 movwf PORTB ; Porta W al port b per tal l'il•luminar els LED goto Debounce

Fig. 38 Diagrama de flux de la subrutina BIN_BCD

Dossier Final – Bea Navarro Sansano

37

Finalment tenim la subrutina INCREMENTA, el que fa es augmentar el valor del count0 quan li diem.: Incrementa Incf COUNT,F ; Incrementa i es guarda el valor en el propi registre (F=1) movf COUNT,W ; Porta el contingut de COUNT a l'acumulador movwf PORTB ; Porta W al port b per tal l'il•luminar els LED goto BCD

Inici de la subrutina INCREMENTA

COUNT0 =>COUNT0+1

RETURN(Continuació del programa)

Fig. 39 Diagrama de flux de la subrutina Incrementa

2.Conclusions:

Desprès d ’haver realitzat aquest exercici he après a utilitzar un nou software. Ens hem introduït en el mon de la programació en assemblador. Estàvem acostumats a programació d’alt nivell, molt més simple i no tan estricta a l’hora de realitzar operacions bàsiques. Hem emprat el nou llenguatge per poder programar el microcontrolador PIC16F84; estudiant a mesura que el programaven com funcionaven tant els registres com les instruccions. Per finalitzar hem utilitzat el debuger del Proteus que ens ha ajudat a comprendre millor que feia el programa exactament, ja que executava el programa pas per pas, i podíem observar els resultats automàticament i també els canvis en els registres i les variables.

Dossier Final – Bea Navarro Sansano

38

3. Bibliografia i referències consultades:

[8] Pàgina web amb informació de com preparar els exercicis

http://epsc.upc.edu/projectes/sed/projectes_aplicacio/Projectes_Aplic.htm

[9] “Microcontroladores PIC16F84. Desarrollo de proyectos”, Palacios, E. Remiro, F. , López, L. J. Editorial RA-MA, 2004

[10] Pàgina web de Microchip: http://www.microchip.com

[11] “Microprocessors, from Assembly language to C Using the PIC18Fxx2”, Reese, R. B., Da Vinci Engineering

Press, 2005

[12] Pàgina d’internet on es pot veure com amb un programa diferenciem el fitxer HEX i el COFF: http://eia.udg.es/~llmagi/boot_tms320c5x.pdf

Dossier Final – Bea Navarro Sansano

39

MÍNIMS

Mínim 2

1 . Part A ) Analyzing a VHDL code

Aquesta part es el que et vam entregar el mateix dia que vas fer l’examen.

Fig. 40 Exemple de diagrama on representem el codi VHDL.

Dossier Final – Bea Navarro Sansano

40

2. Part B) Quartus /ispLevel

2.1 Open the Quartus-II project and run the functional and timing simulation for the block. Printsome screens of your simulations.

Fig 41.Primera Imatge del Quartu

Fig 42. Segona Imatge del Quartus

Fig 43. Tercera Imatge del Quartus

Dossier Final – Bea Navarro Sansano

41

Fig 44. Quarta Imatge del Quartus

Podem observar en la Fig 41 com al inici totes les entrades i sortides estan a 0. I com CD canvia a 1 als 25ns, es a dir, es fa inicialment un reset de la situació per si de cas havia algun element a 1. En la Fig 43 veiem com el clock es posa a 1 a 500ns, es a dir el rellotge fa el seu franc de pujada i aquí es quan comencen a modificar-se els estats. A la Fig 44 observem com un element del vector I, es a dir de l’entrada del CS1 (OBSERVEU Fig. 41)canvia a pasar 1. Si mirem la última figura 44 veurem com al 8,79us les quatre entrades valdran 1 es a dir haurem arribat al màxim del contador.

Fig 45. Zoom

En resum mirem la Fig 45 podrem observar com el nostre codi de VHDL es compleix segons el esperat.

2.2 Switch to the ispLEVER environment and open a new project, check if the design fits in a GAL22V10 of 24 pins and verify it in Proteus-VSM.

He agafat el VHDL de la web i l’ he afegit dins d’un nou projecte del ispLever. Desprès de compilar-lo I veure que no ens dona cap error he observat la seva disposició de pins I a traves d’ells I del Proteus he verificat el nostre disseny.

Dossier Final – Bea Navarro Sansano

42

Fig46. Programa rpt, col·locació dels pins

En la imatge Fig. 48 tenim a 1 el CE i totes les altres entrades a 0 això ens indica que entrem dins del if del nostre codi (FIG 8). Es a dir, ens fixarem amb el UD_L i segons el seu valor i el del Reset decidirem que serà el future_state. En el nostre cas es un restador d’estats: el estat futur serà el anterior no el posterior. També podem observar la sortida Q = “1110”

Fig47. Part del nostre codi en VHDL.

Fig.48 Esquema en Proteus

Dossier Final – Bea Navarro Sansano

43

3. Part C) Laboratory work with the UP2 educational board (take it as an extra training for EX3).Producing single files VHDL Quartus-II projects

Una vegada hem implementat el projecte en el UP2 observem com si canviàvem els switch de posició veiem com els LED’s canviaven de posició. Podíem veure com també si modificàvem a Assignements Editor els pins podíem canviar el switch segons el indicat en el manual de la placa.

4. Bibliografia i referències consultades

[13] http://epsc.upc.edu/projectes/sed/. Pàgina web de SED on trobareu materials i treballs de cursos

anteriors. Vegeu la secció unitats didàctiques i grups de classe

[14] http://epsc.upc.edu/projectes/ed/problemes/problemes_PA/Problemes_PA.htm. Pàgina web d’ED on hi ha el problema que descriu el funcionament i el disseny del descodificador HEX-7SEG.

[15] http://epsc.upc.edu/projectes/sed/projectes_aplicacio/Projectes_Aplic.htm. Lloc on hi trobareu el full

de plantilla per a distribuir tasques entre els membres del grup cooperatiu

[16] http://www.die.upm.es/cursos/CEDG_2005-2006_TEMA7.pdf Pàgina web d’ED on hi ha el problema que descriu el funcionament i el disseny del descodificador HEX-7SEG.

[17] http://www.teleco.upct.es/Docencia/Asignaturas/Teleco/Cuarto/Arquitectura%20de%20Computador

es/practicas/traspa_VHDL.pdf

Dossier Final – Bea Navarro Sansano

44

Mínim 4: Idees bàsiques sobre microprocessadors i microcontrolador En l’actualitat , els EMBEDDED SYSTEM ( Sistemes embeguts, encastat o incrustats ) els podem trobar localitzats a molts llocs ( la llar, cotxes, fàbriques, hospitals, electrònica…) Un sistema integrat és un sistema informàtic d’ús específic construït dins d’un dispositiu més gran. Generalment els components d’aquests sistemes es troben inclosos en la placa base. Buscant per Internet he trobat uns documents que parlen sobre la transmissió de les dades d’una estació solar remota cap a un servidor. El que es vol aconseguir amb el sistema es que puguem rebre les dades obtingudes per diversos sensors de l’ estació solar des de qualsevol punt del planeta on tinguem accés a Internet. Al mateix temps es vol que les dades puguin ser vistes gràficament perquè qualsevol persona pugui veure-les en temps real. En la Fig. 40 observem un esquema on tenim plasmat que es vol fer; Amb un sensor obtenir les dades necessàries de l’estació meteorològica, amb un sistema embegut es captarà a temps real les dades que li dona el sensor, les digitalitzarà i les transmetrà al mòdem que es qui les enviarà al GPRS i des d’ allí a la WAN. Des d’aquí a un servidor (que gracies a ell qualsevol persona podrà accedir a l’ informació.)

Fig. 40 Esquema del que es vol aconseguir.

El sistema embegut del projecte, que està dins de la plataforma de comunicació, és qui s’encarrega configurar la interfície de comunicació i enregistrar les dades que es reben de l’estació cada minut. També ha de transmetre tant una sèrie d’alarmes per poder monitoritzar la estació com les dades en si. Addicionalment haurà de rebre consultes del servidor si s’ha produït algun error a la xarxa.

Dossier Final – Bea Navarro Sansano

45

Fig. 41 Diagrama de flux del Pic

Podem veure a la Fig.2 que fa el PIC. Com ja hem dit anteriorment ell va reben dates i les va digitalitzant , desprès les envia i espera rebre una confirmació. Si hi ha algun error en el temps de mesura doncs envia un missatge per notificar-lo i dona les ordres adients per solucionar el problema. Sabem que per seleccionar un microcontrolador s’han de tenir en compte moltes coses. Principalment ens hem de fixar en: el processament de les dades (pot esser necessari que el microcontrolador realitzi càlculs crítics en un temps límit. Ens hem d’assegurar de que el dispositiu sigui lo suficientment ràpid per fer-ho), les entrades/sortides (es important saber quin diagrama de blocs tenir per així poder determinar el nombre d’entrades/sortides del nostre PIC), el consum (necessitem saber si el nostre microcontrolador està alimentat amb bateries o que sigui de baix consum i que es desperti per l’activació d’una senyal i executi el programa adequat), la memòria (necessitem saber la quantitat de memòria volàtil i no volàtil necessària ) i finalment el disseny de la placa ( segons el microcontrolador q escollim condicionarem el disseny de la placa)

Un PIC que podríem utilitzar per al sistema seria el PIC 16F877A ja que disposa d’un port sèrie que pot funcionar tant a baixa velocitat com a alta (baixa = 1,5Mbps / alta = 12Mbps). També suporta transferències de control, interrupcions massives e asincrones. A més a més, té mòduls A/D ( Conversor Analògic Digital) amb 10 canals de entrada i una memòria de dades EEPROM (Electrical Erasable Programmable Read Only Memory) de 256 bytes.

Dossier Final – Bea Navarro Sansano

46

El més important del projecte és el mòdul de comunicació perquè es el mitjà per on el sistema es comunica amb interfície de comunicació. S’utilitza un mòdul de comunicació serial SCI, que permet una comunicació serial asíncrona amb perifèrics i d’altres CPU’s.

Fig. 42 Diagrama de blocs del sistema

Observem a la figura anterior, que la configuració del sistema té els components típics de qualsevol sistema de les seves característiques. Tenim memòria Flash/ EEPROM , memòria RAM, CPU, ports d’entrada / sortida.... Es a dir, té tot els que es necessita per la seva finalitat d’emmagatzemar dades , processar-les i desprès enviar-les. Tant el PIC, com les posteriors aplicacions estan programats en JAVA, ja que la informació que hem d’enviar s’ha de transmetre a través d’uns ports i aquests han de ser configurats en un servidor perquè tot funcioni correctament. El llenguatge més adequat per a la creació d’ un socket2 en el servidor és el llenguatge JAVA.

2 Socket: Ens referim a un concepte abstracte amb el qual dos programes (normalment situats en computadores diferents) poden intercanviar - se qualsevol flux de dades, generalment de manera fiable i ordenada.

Dossier Final – Bea Navarro Sansano

47

En resum, des de qualsevol punt del planeta amb accés a Internet nosaltres podrem obtenir les dades en temps real que el nostre sistema encastat està obtenint dels sensors , digitalitzant les dades i enviant-les per port sèrie al mòdem. I a partir d’aquí ell les enviar al GPRS fins que arriba la comunicació al servidor. Aquesta aplicació crec que seria interessant proposar-la per a un projecte final de carrera, ja que té una gran quantitat de càrrega: s’ha de pensar que es vols captar amb els sensors, procedir a dissenyar-los , idear el sistema de processament de dades , de digitalització i de transmissió. Desprès la transmissió de les dades per la WAN fins el servidor, que el les rebi i que a continuació des de qualsevol lloc amb accés a Internet poguéssim accedir a través d’un software adequat. Penso que a partir del sistema encastat el que és proposa en aquest projecte es molt semblant al projecte que començarem a fer la setmana que bé a IB ( l’electrocardiògraf), ja que els processos de captar les dades, processar-les i enviar-les a traves d’un port són les mateixes. Per acabar d’abordar el projecte s’hauria d’ incloure al temari unes nocions de Java, que es podrien donar en d’altres assignatures. L’aplicació als ordinadors es pot fer amb LabView igual que el nostre projecte. REFERÈNCIES: [1] Informació de estacions meteorològiques automàtiques .

http://www.seac.es/Hardware/equipos/105.asp

[2] Word on es parla sobre el projecte de un estació remota i un usuari d’Internet: http://electronica.udea.edu.co/academicos/proyectos/control/Bravo_Pablo/paper_comunicacion_estacion_usuario_internet.doc

[3] Manual 16F877A:http://www.microchip.com [4] Sistemas embebidos y su implantación sobre la arquitectura pic16XXXX de Microchip :

http://elserver.forknetar.org/harpo/uch/seminario/escrito//archivos//seminario-uch.pdf

Dossier Final – Bea Navarro Sansano

48

AVALUACIÓ DE LA CARPETA DE IB Data: 25/6/06

Grup de classe: OP/B

Grup de treball al que pertany la carpeta avaluada: 7

GRUP AVALUADOR: Bea Navarro Sansano

P = puntuació (0-10); W = pes de l’apartat; T = qualificació = P × W

P W T

8 0.30 2,4

Organització, ordre i facilitat de lectura. Assigneu la màxima puntuació si:

- El material de la carpeta és fàcilment llegible (20%) - Té un índex d’activitats i exercicis proposats (20%) - Es pot trobat ràpidament qualsevol element concret, o saber si hi

manca (20%) - Té el full de reflexió amb opinions sobre l’aprenentatge del curs (20%) - Totes les fulles segueixen la plantilla (10%). Hi ha els 3 estils per

identificar els títols, els peu de figura, les referències creuades a les figures i a la bibliografia

- Les fulles tenen marges adequats i informació significativa als encapçalaments i peus de pàgina (10%)

0 0.30 0

Els registres de les sessions de treball TGC. Assigneu màxima puntuació

si:

- Com només he treballat jo sola hem planificaba el temps a la meva

manera , sempre intentant fer-ho tot.

9 0.20 1,8

Exercicis i controls. Assigneu la puntuació màxima si:

- Si estan tots ordenats i classificats correctament (20%) - Si un dels exercicis és en 2a versió millorat amb la correcció (20%) - S’han realitzat seguint els criteris: plantejament, mètode,

desenvolupament, solució i verificació (30%) - S’ha inclòs el full de reflexió sobre l’elecció del material per al dossier - S’inclou com un altre dels exercicis, el projecte d’aplicació també redactat

convenientment amb les indicacions de la plantilla (30%)

6

0.20 1,2

Notes de classe i cerca de material d’estudi i bibliografia. Assigneu la

puntuació màxima si:

Material d’estudi: (50%)

- Està ben classificat - Hi ha la referència de la font i els autors del material. - Hi ha algunes pàgines de datasheets de fabricants - Hi ha ampliacions, resums, experiments, informació addicional, etc.

que s’hagi desenvolupat per cada tema Bibliografia i referències web: (50%)

- Està ben referenciada: Autors, títol, editorial, any - S’indica amb un breu comentari què exactament s’ha visitat del llibre o

de la web

Qualificació global (suma de la columna) 5,4

Dossier Final – Bea Navarro Sansano

49

Conclusions sobre la carpeta i l’aprenentatge en grup Per finalitzar la carpeta puc dir que ha sigut un quadrimestre intens. La meva carpeta no ha sigut molt amplia perquè el treball en el meu grup va funcionar malament. Per una sèrie de motius el grup es va diluir i vaig acabar sent la única component. Durant tota l’assignatura he intentat arribar fins al màxim que he pogut. Penso que he arribat bastant lluny ja que jo sola he pogut assimilar, redactar i exposar tot el que hi ha en aquesta carpeta. Veient la carpeta que he realitzat puc afirmar que he arribat jo sola fins al final amb una bona organització del treball i una dedicació intensa a l’assignatura. Al llarg de l’assignatura he après a utilitzar una gran quantitat de programes que espero utilitzar en un futur ben pròxim. Els exercicis realitzats sé que es podríem haver fet eterns ja que per qualsevol aplicació de les que hem fet podria haver-la ampliat. Això es degut a que en el món de l’electrònica digital com en la vida , tot es pot millorar i ampliar. Finalment he de agrair l’ajut dels meus companys de classe. Gracies a ells en molts moments no he llançat la tovallola i he seguit sola endavant. M’han ajuda’t a comprendre el material del curs quan tenia dubtes i han tingut paciència en tot moment. Sé que la meva carpeta no serà ni de les millors de la classe, però sé que l’he fet amb tota la dedicació que he pogut. I que el resultat ha sigut, per al meu parer, el millor que podia aconseguir, o en tot cas, el millor que he pogut fer amb el temps que he tingut.