sistema de mesura mitjançant un multímetre i...
TRANSCRIPT
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre de 2010
Índex
Pàgina 2 de 111
ÍNDEX
1. Memoria descriptiva……………………………………………………………………… 6
1.1. Objectiu .......................................................................................................................... 7
1.2. Antecedents .................................................................................................................... 7
1.3. Titular del projecte ......................................................................................................... 7
1.4. Principi de funcionament ............................................................................................... 7
1.4.1. El microcontrolador ................................................................................................ 8
1.4.2. MAX 232................................................................................................................ 9
1.4.3. Descodificador ....................................................................................................... 9
1.4.4. Connectors de 20 pins .......................................................................................... 10
1.4.5. Relé ...................................................................................................................... 10
1.4.6. Connector DB9 ..................................................................................................... 11
1.4.7. Connector RJ-45 ................................................................................................... 11
1.4.8. Inversor CD4049UB ............................................................................................ 12
1.5. Possibles Solucions i Solució Adoptada ...................................................................... 12
1.5.1. Entorn de treball ................................................................................................... 12
1.5.1.1. Possibles Solucions .......................................................................................... 12
1.5.1.2. Solució Adoptada ............................................................................................. 13
1.5.2. Entorn de simulació .............................................................................................. 13
1.5.2.1. Possibles Solucions .......................................................................................... 13
1.5.2.2. Solució Adoptada ............................................................................................. 13
1.5.3. Tipus de comunicació ........................................................................................... 14
1.5.3.1. Possibles solucions ........................................................................................... 14
1.5.3.2. Solució Adoptada ............................................................................................. 14
1.5.4. Elecció del microcontrolador ............................................................................... 14
1.5.4.1. Possibles solucions ........................................................................................... 14
1.5.4.2. Solució adoptada .............................................................................................. 15
1.5.5. Font d‟alimentació ................................................................................................ 16
1.5.5.1. Possibles solucions ........................................................................................... 16
1.5.5.2. Solució adoptada .............................................................................................. 16
1.6. Bus de comunicació RS-232 ........................................................................................ 16
1.6.1. Protocol RS-232 del port sèrie ............................................................................. 16
1.6.3. Comunicació Sèrie RS-232 Microcontrolador–Multímetre i Microcontrolador–PC
.............................................................................................................................. 18
1.6.4. Comunicació Sèrie RS-232 Multímetre – Microcontrolador ............................... 20
2. Memoria de càlcul…………………………………………………………………….… 22
2.1. El microcontrolador 18F25J11 ..................................................................................... 23
2.1.1. El Nucli ................................................................................................................ 23
2.1.1.1. Característiques principals ............................................................................... 23
2.1.1.2. Característiques de l‟estructura de l‟oscil·lador ............................................... 23
2.1.1.3. Tecnologia nanoWatt ....................................................................................... 23
2.1.1.4. Altres característiques especials ....................................................................... 23
2.1.2. La CPU ................................................................................................................. 24
2.1.3. Estructura de la memòria ...................................................................................... 25
2.1.3.1. Memòria de programa ...................................................................................... 25
Índex
Pàgina 3 de 111
2.1.3.2. Memòria de dades ............................................................................................ 27
2.1.4. Ports d‟entrada/sortida .......................................................................................... 28
2.1.5. Mòdul USART ..................................................................................................... 30
2.1.5.1. Registres usats i associats al mòdul USART ................................................... 30
2.1.5.2. Generació de la velocitat de comunicació per al mode asíncron ..................... 33
2.1.5.3. Càlcul del BaudRate ......................................................................................... 34
2.1.5.4. Recepció en el mode asíncron de la USART ................................................... 34
2.1.5.5. Transmissió en el mode asíncron de la USART .............................................. 35
2.1.6. El controlador d‟interrupcions.............................................................................. 36
2.1.6.1. Introducció al sistema d‟interrupcions ............................................................. 36
2.1.6.2. Registres usats i associats a les interrupcions .................................................. 37
2.1.6.3. Prioritats del sistema d‟interrupcions ............................................................... 41
2.1.6.4. Fases d‟una interrupció .................................................................................... 41
2.1.6.5. Passos a seguir per treballar amb interrupcions ............................................... 42
2.1.6.6. Diagrama del sistema d‟interrupcions .............................................................. 42
2.1.7. Selecció de pins de perifèrics/Peripherial Pin Selectable (PPS ............................ 43
2.1.7.1. Introducció als PPS .......................................................................................... 43
2.1.7.2. Control de la selecció de pins ........................................................................... 44
2.1.7.3. Mapa d‟entrada................................................................................................. 44
2.1.7.4. Mapa de sortida ................................................................................................ 45
2.1.7.5. Beneficis del Peripherial Pin Select (PPS) ....................................................... 46
2.1.7.6. Registres associats i usats al Peripherial Pin Select (PPS) ............................... 46
2.2. El multímetre Agilent 344001A ................................................................................... 48
2.2.1. Objectiu del multímetre ........................................................................................ 48
2.2.2. Introducció física del Agilent 344001A ............................................................... 48
2.2.2.1. Panel Frontal .................................................................................................... 48
2.2.2.2. Indicadors de pantalla ...................................................................................... 49
2.2.2.3. Formats de pantalla del panel frontal ............................................................... 50
2.2.3. Programació del multímetre ................................................................................. 50
2.2.3.1. Mode d‟enllaç del hardware (RS-232) ............................................................. 50
2.2.3.2. El multímetre i el controlador de bus ............................................................... 51
2.2.3.3. Senyals a tenir en compte del connector RS-232 ............................................. 52
2.2.3.4. Seqüència de programació de la interfase remota ............................................ 53
2.2.4. Introducció al llenguatge SCPI............................................................................. 54
2.2.4.1. Historia del llenguatge SCPI ............................................................................ 54
2.2.4.2. Model del instrument programable .................................................................. 55
2.2.4.3. Sintaxis del llenguatge SCPI ............................................................................ 55
2.2.4.3.1. Tipus de dades SCPI ..................................................................................... 56
2.2.5. Selecció dels paràmetres ...................................................................................... 57
2.2.5.1. Selecció de l‟ interfase remota ......................................................................... 57
2.2.5.2. Selecció de la velocitat en bauds ...................................................................... 57
2.2.5.3. Selecció de paritat ............................................................................................ 57
2.2.5.4. Selecció del llenguatge de programació ........................................................... 58
2.2.6. Comandaments i paràmetres usats ....................................................................... 58
2.2.6.1. Comandament MEASure? ............................................................................... 59
2.2.6.2. Comandament CONFigure ............................................................................... 59
2.2.6.3. Comandament READ? ..................................................................................... 62
2.2.6.4. Comandaments INITiate i FETCh?.................................................................. 62
Índex
Pàgina 4 de 111
2.2.6.5. Comandaments de l‟ interfase RS-232 ............................................................. 62
2.2.6.6. Acabaments dels missatges d‟entrada .............................................................. 63
2.2.6.7. Formats dels missatges de sortida .................................................................... 63
2.2.6.8. Indicador error .................................................................................................. 63
2.3. Hyperterminal............................................................................................................... 65
3. Plànols…………………………………………………………………………..….……. 67
3.1. Placa de comunicacions ............................................................................................... 68
3.1.1. Circuit elèctric ...................................................................................................... 68
3.1.2. Circuit layout ........................................................................................................ 69
3.1.3. Fotogràfia ............................................................................................................. 69
3.2. Placa de potència .......................................................................................................... 70
3.2.1. Circuit elèctric ...................................................................................................... 70
3.2.2. Circuit layout ........................................................................................................ 70
3.2.3. Fotografia ............................................................................................................. 71
4. Pressupost……………………………………………………………………………….. 72
4.1. Introducció ................................................................................................................... 73
4.2. Llista de preus unitaris ................................................................................................. 73
4.2.1. Capítol 1: Software ............................................................................................... 73
4.2.2. Capítol 2: Components ......................................................................................... 73
4.2.3. Capítol 3: Mà d‟obra ............................................................................................ 74
4.3. Quadre de descompostos .............................................................................................. 75
4.3.1. Capítol 1: Software ...............................................................................................75
4.3.2. Capítol 2: Components ..........................................................................................75
4.3.3. Capítol 3: Mà d‟obra .............................................................................................77
4.4. Resum del Pressupost ....................................................................................................78
5. Plec de condicions……………………………………………………………………….. 79
5.1. Reunits ..........................................................................................................................80
5.2. Exposen .........................................................................................................................80
5.2.1. Primer ....................................................................................................................80
5.2.2. Segon .....................................................................................................................80
5.3. Clàusules .......................................................................................................................80
5.3.1. Primera.- Objectius ...............................................................................................80
5.3.2. Segona.- Objecte de l‟acord ..................................................................................80
5.3.3. Tercera.- Condicions d‟acceptació del treball .......................................................80
5.3.4. Quarta.- Extensió de la col·laboració ....................................................................80
5.3.5. Cinquena.- Contingut dels programes específics ..................................................81
5.3.6. Sisena.- Coordinadors / Responsables ..................................................................81
5.3.7. Setena.- Emissió d‟informes .................................................................................81
5.3.8. Vuitena.- Durada ...................................................................................................81
5.3.9. Novena.- Principis d‟actuació ...............................................................................81
5.3.10. Desena.- Resolució de conflictes ..........................................................................81
6. Conclusions………………...……………………………………………………………. 83
7. Bibliografía………………………………………………………………………………. 85
8. Annexes………………………………………………………………………………..…. 87
8.1. Programació amb MPLAB IDE v8.4 ............................................................................85
8.1.1. Creació d‟un projecte ............................................................................................85
8.2. Entorn de simulació.......................................................................................................89
8.2.1. MPLAB SIM .........................................................................................................89
8.3. Proteus 7 ........................................................................................................................91
Índex
Pàgina 5 de 111
8.3.1. Creació de l‟esquema del circuit ...........................................................................91
8.3.2. Depuració i simulació del circuit ..........................................................................93
8.4. Imatges del programa Agilent IO Libraries Suite 15.3 .................................................98
8.5. Característiques principals del port E/S ......................................................................101
8.6. Codi font .....................................................................................................................104
8.7. Diagrames de flux .......................................................................................................107
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
MEMORIA DESSCRIPTIVA
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre de 2010
Memòria descriptiva
Pàgina 7 de 111
1.1. Objectiu
L‟objectiu d‟aquest projecte és dissenyar i realitzar un circuit que sigui capaç d‟establir i
controlar les comunicacions entre el multímetre Agilent 34401A i un PC via RS232. Això
permetrà automatitzar el procés de mesura tot just esmentat.
En primer lloc és important aconseguir que el microcontrolador envií les senyals amb la
tensió adequada per a que el multímetre les rebi correctament. A continuació, mirar en
quins formats aquest multímetre accepta les dades (comandaments) del microcontrolador.
En segon lloc, el multímetre ha ser capaç d‟enviar els resultats al microcontrolador tenint
en compte les tensions de les senyals i les senyals del bus de comunicacions.
En tercer lloc, una vegada el microcontrolador té guardat els resultats a la seva memòria,
s‟ha de procedir a enviar aquests a un ordenador, on prèviament serà configurat
adequadament per rebre els resultats.
Finalment s‟ha de dissenyar un circuit on es multiplexi els canals del multímetre i tots
aquest sigui controlat pel programa gravat al microcontrolador.
1.2. Antecedents
Els multímetres digitals multicanals generalment tenen un sistema de lectura i un sistema
de relés que multiplexen el canal que s‟està llegint. No tots són així ja que això fa que el
temps de lectura sigui gran perquè s‟ha de commutar i esperar a que s‟estabilitzi el relé i el
sensor que s‟està llegint.
Es va decidir fer d‟aquesta manera el projecte perquè un sistema amb múltiples sistemes de
lectura incrementen enormement el preu.
1.3. Titular del projecte
El titular del present projecte és:
- Nom: Escola Tècnica Superior d‟Enginyeria URV
- CIF: 47827623-C
- Adreça: Av. Països Catalans S/N, Tarragona
- Representant: Marc Lluch Porres
- Telèfon: +34977443005
1.4. Principi de funcionament
Al diagrama de blocs que a continuació es mostra a la Figura 1-1, es pretén donar una idea
del funcionament del circuit i s‟explicarà el funcionament breument.
Memòria descriptiva
Pàgina 8 de 111
Figura 1-1. Diagrama de blocs del circuit
El microcontrolador com a element més important, ha de començar a enviar les ordres al
multímetre. Per arribar-hi han de passar per un inversor, anomenat Inversor Tx, aquest com
ja es comentarà més endavant, amplificarà la tensió de la senyal del microcontrolador. Una
vegada la senyal s‟hagi amplificat, passarà pel MAX232, que convertirà la senyal del
microcontrolador amb una senyal adequada per al connector DB9 i finalment arribar al
multímetre. El mateix procediment s‟usarà per enviar dades al PC. I es seguirà un camí
contrari per rebre dades del multímetre al microcontrolador.
El microcontrolador també donarà ordre de descodificació per així activar el relé adequat
en el moment adequat, i aquest relé es connectarà amb el sensor a mesurar.
A continuació es descriuran els components més importants del circuit.
1.4.1. El microcontrolador
El microcontrolador és un chip molt potent que s‟utilitza en qualsevol circuit que tingui la
necessitat de controlar i activar senyals, necessitat d‟utilitzar i controlar ports, de fer ús
d‟interrupcions, entre d‟altres. No s‟entrarà en detall ja que més endavant s‟explicarà més
específicament.
En aquest projecte s‟utilitza el microcontrolador 18F25J11 (tal i com es mostra en la
Figura 1-2) per poder enviar ordres de mesura al multímetre, activar els relés necessaris en
el moment necessari o rebre els resultats del multímetre. També és útil per poder establir la
comunicació i mantenir tot el procés lligat amb el temps.
Memòria descriptiva
Pàgina 9 de 111
Figura 1-2. El microcontrolador
1.4.2. MAX 232
Aquest dispositiu serà l‟encarregat de convertir els nivells de les línies del port sèrie RS-
232 a nivells TTL i a l‟inrevés. És important destacar que només necessita una alimentació
de 5 V, ja que internament genera algunes tensions que són necessàries per al estàndard
RS-232. Altres integrats que utilitzen les línees RS-232 requereixen dos voltatges, +12 V i
-12 V, comentats amb més detall a l‟apartat 1.6.
Aquest circuit integrat conté dos convertidors de nivell TTL a RS232 i dos altres que,
converteixen de RS-232 a TTL.tal i com es mostra en la Figura 1-3.
Aquests convertidors són suficients per utilitzar les quatre senyals més utilitzades del port
sèrie del PC, la senyal TX, RX, RTS i CTS.
Figura 1-3. MAX 232
1.4.3. Descodificador
Un descodificador és un circuit combinacional que converteix un codi binari d‟entrada, de
N bits d‟entrada i M bits de sortida, tals que cada línea de sortida serà activada per una sola
de les combinacions possibles d‟entrada. Un descodificador de N entrades pot adreçar 2N
sortides.
Memòria descriptiva
Pàgina 10 de 111
El descodificador CD4514BC (Figura 1-4) té 4 entrades, aleshores pot adreçar fins a 16
sortides. En aquest projecte només s‟utilitzaran 4 sortides ja que són suficients.
La funció que realitza aquest descodificador és adreçar les línies RB0, RB1, RB2 i RB3 del
microcontrolador i les sortides d‟aquest descodificador activaran els relés adequats.
Gràcies a aquest descodificador s‟estalvien pins del microcontrolador.
Figura 1-4. Descodificador CD4514BC
1.4.4. Connectors de 20 pins
Aquest connector (Figura 1-5) s‟utilitza per connectar mitjançant un bus, un altre circuit.
És necessari per posar-hi el bus de dades que comunicarà la senyal del descodificador amb
la senyal que li ha d‟arribar al relé pertinent.
Figura 1-5. Connector de 20 pins
1.4.5. Relé
És un dispositiu electromecànic, que funciona com un interruptor controlat per un circuit
electrònic al que, per a través d‟una bobina i un electroimant, s‟acciona un joc d‟un o varis
contactes que permeten obrir o tancar altres circuits elèctrics independents.
Aquests relés seran els encarregats de seleccionar el sensor pel qual s‟ha de fer la mesura.
Es pot veure a la Figura 1-6.
Figura 1-6. Relé PCB
Memòria descriptiva
Pàgina 11 de 111
1.4.6. Connector DB9
El connector DB9 (originalment DE-9) és un connector analògic de 9 pins.
El connector DB9 s‟utilitza per connexions en sèrie, ja que permet una transmissió
asíncrona de dades segons l‟establer a la norma RS-232.
S‟utilitzarà un connector per la transmissió i recepció de dades entre el multímetre i el
microcontrolador i un altre connector per la transmissió de dades entre el microcontrolador
i un ordenador.
A la Figura 1-7 es pot veure un connector DB9 i la funció dels seus pins.
Figura 1-7. Connector DB9
1.4.7. Connector RJ-45
Aquest és l‟element on es connectarà el depurador de programa ICD2 de Microchip, i així
poder gravar el programa amb C al microcontrolador.
A la Figura 1-8 mostro aquest connector i una taula amb les funcions dels respectius pins.
Figura 1-8. Connector RJ-45
Memòria descriptiva
Pàgina 12 de 111
1.4.8. Inversor CD4049UB
Aquest component l‟usarem per poder amplificar la senyal que envia el multímetre. A la
Figura 1-9 es pot veure el pinout d‟aquest.
Figura 1-9.Inversor CD4049UB
1.5. Possibles Solucions i Solució Adoptada
1.5.1. Entorn de treball
1.5.1.1. Possibles Solucions
Una vegada el circuit està creat, és important conèixer quin depurador/compilador emprar;
s‟utilitzarà aquest per veure el funcionament pas a pas del programa directament treballant
sobre el PIC.
Es podia escollir entre dos alternatives: el depurador ICD-U40 amb el compilador CCS tal
com es veu a la Figura 1-10 o el MPLAB ICD2 amb el compilador C18 com es mostra
Figura 1-11.
Figura 1-10. Depurador ICD-U40 Figura 1-11. Depurador MPLAB ICD2
Pel que fa a les diferències entre el depurador ICD-U40 i el depurador MPLAB ICD2 a
gran escala no són significatives.
En aquests depuradors ja no és necessari treure el PIC de la placa i posar-lo al
programador, es descarrega i depura el PIC sense necessitat de treure‟l de la placa. No cal
que tinguin font externa per poder funcionar, ja que aquests dos s‟alimenten del port USB.
Permeten depurar codis tant en llenguatge C com en ensamblador, fer execucions pas a pas
o aturar el programa quan desitgem mitjançant breakpoints.
Memòria descriptiva
Pàgina 13 de 111
Aquests depuradors es poden programar utilitzant el compilador C de CCS o el C18, que
permeten desenvolupar programes en C enfocats al PIC.
Pel que fa als compiladors si que existeixen diferències entre ells. El compilador C de CCS
és més simple d‟usar i molt més intuïtiu que el C18. Una de les aventages principals del
CCS és que conté funcions ja implementades per programar els timers, les interrupcions,
els convertidors, etc. En canvi, en el C18 no hi ha tantes funcions i per programar certs
ports s‟ha de modificar directament els registres involucrats,per tant es pot programar més
lliurement.
En definitiva, es pot definir el CCS com a compilador de fàcil ús ja que no cal conèixer
molt bé el llenguatge en C. El C18 es pot caracteritzar en la potència i l‟optimització.
1.5.1.2. Solució Adoptada
Per l‟exposa‟t anteriorment, tot i que el CCS guanya a primera vista en facilitat de
programació, es va decidir usar el compilador C18 i el depurador MPLAB IDE ja que el
C18 és el compilador que Microchip fabrica pels seus propis microcontroladors. Microchip
conté una versió MPLAB per estudiants i compleix les necessitats per realitzar el projecte i
a través de la xarxa es pot aconseguir molts codis i manuals d‟ajuda.
1.5.2. Entorn de simulació
1.5.2.1. Possibles Solucions
Tenint en compte que una part important del projecte es centra en la programació del PIC,
és aconsellable comprovar abans que el programa que s‟emmagatzemarà al PIC sigui
l‟adequat per fer funcionar aquest com es desitja. Es farà simulant el circuit via software.
Es podria elegir entre dos alternatives: el simulador MPLAB SIM o el simulador Proteus
v7.4. La gran diferència entre aquests dos és la potència de simulació.
El MPLAB SIM és una eina de simulació molt senzilla que ens facilita el mateix MPLAP
IDE v8.40 (programa que inclou aquest simulador). És aconsellable utilitzar-la si es té com
a objectiu simular el circuit pas a pas i analitzar les variables a mesura que va avançant el
programa.
El Proteus v7.4 és l‟eina per excel·lència a l‟hora de simular un circuit en un PIC. S‟ha de
descarregar a través de la xarxa, directament de la casa Labcenter. Ofereix la possibilitat de
simular un codi microcontrolador de baix i alt nivell i simultàniament en simulació en
mode mix de SPICE. Això permet el disseny tant a nivell hardware com software i realitzar
la simulació en un únic entorn. Per això, hi ha tres potents subentorns com són: el ISIS per
al disseny gràfic, VSM (Virtual System Modelling) per la simulació i el ARES per al
disseny de plaques.
1.5.2.2. Solució Adoptada
Finalment es va considerar convenient una utilització conjunta. El simulador MPLAB SIM
va ser de gran utilitat per poder observar el canvi de les variables; per altre banda, el
simulador Proteus es va utilitzar per veure l‟efecte del microcontrolador connectat a un
circuit amb altres components i d‟aquesta manera analitzar-lo amb instruments de mesura
virtuals.
Memòria descriptiva
Pàgina 14 de 111
1.5.3. Tipus de comunicació
1.5.3.1. Possibles solucions
El circuit creat pel projecte necessita comunicar-se amb el multímetre i amb el PC per
rebre i enviar les mesures dels sensors. Per això és necessari un bus per comunicar el
circuit amb el multímetre i amb el PC.
Es podia elegir entre dos alternatives: el bus GPIB com es veu a la Figura 1-12 o el RS-
232 com es mostra en la Figura 1-13.
Figura 1-12. Bus GPIB Figura 1-13. Bus RS-232
El bus GPIB o IEEE-488 permet que es connectin fins a 15 dispositius. La longitud
màxima del cable és de 20 metres amb un màxim de 4 metres entre dos equips. El bus és
síncron i paral·lel de 8 bits. La velocitat l‟imposa l‟equip més lent dels connectats al bus, ja
que tots els dispositius poden rebre a la vegada. La màxima velocitat de transmissió
d‟1Mbaud. Les 16 línees que componen el bus estan agrupades en tres grups d‟acord en les
seves funcions: 8 de bus de dades , 3 de bus de control de transferència de dades i 5 de bus
general.
En canvi el bus RS-232 està dissenyada per a distàncies curtes, de fins 15 metres segons la
norma, i per velocitats de comunicació baixes, de no més de 20 kbits/segon. L‟
interfície pot treballar en comunicació asíncrona o síncrona, i el canal pot ser de tipus
simplex, half duplex o full duplex.
1.5.3.2. Solució Adoptada
Per la familiarització d‟aquests anys d‟estudi i tenint coneixement del protocol es va optar
per l‟ús del bus RS-232. Tot i això,també cal remarcar que la comunicació asíncrona és
més simple i fàcil que la comunicació síncrona que és la que utilitza el bus GPIB.
1.5.4. Elecció del microcontrolador
1.5.4.1. Possibles solucions
L‟elecció del microcontrolador comporta l‟elecció més important ja que durant tot el
projecte es treballa sobre aquest (els seus registres, memòria, pins...).
Memòria descriptiva
Pàgina 15 de 111
En aquest cas, l‟elecció estava centrada entre dos microcontroladors: el PIC 18F4520
(Figura 1-14) o el PIC 18F45J11 (Figura 1-15).
El PIC 18F4520 té una memòria de programa de 32 kB, la velocitat de la CPU és de 10
MIPS, una memòria RAM de 1.536 bytes, una memòria EEPROM de 256 bytes, conté un
port USART, 4 timers, 13 convertidors A/D, 2 comparadors i un total de 40 pins amb
encapsulat PDIP. El seu preu és de 3,25€.
Figura 1-14. Esquema dels pins del PIC18F4520
El PIC 18F25J11 té una memòria de programa de 32 kB, la velocitat de la CPU és de 12
MIPS, una memòria RAM de 3.800 bytes, no té memòria EEPROM, conté 2 ports
USART, 5 timers, 13 convertidors A/D, 2 comparadors i un total de 28 pins amb
encapsulat SPDIP. El seu preu és de 2,55€.
Figura 1-15. Esquema dels pins del PIC18F25J11
1.5.4.2. Solució adoptada
Inicialment, es va crear una placa de prova que tenia la funció de comunicar-se únicament
amb el multímetre i es va utilitzar el PIC 18F4520.
Després va haver la necessitat d‟enviar els resultats de les mesures al PC. Aleshores com
aquest microcontrolador no tenia dos ports USART, ja no es podia continuar usant.
Es va buscar un altre microcontrolador de la mateixa família 18F, i es van trobar alguns
que tenien dos ports USART. Un dels problemes que va sorgir va ser que la majoria tenien
uns encapsulats difícils de soldar (QFN).
Memòria descriptiva
Pàgina 16 de 111
Finalment es trobar un amb encapsulat PDIP de la família 18FxxJxx (PIC18F45J11).
Aquest microcontrolador respecte al PIC 18F4520 presenta més memòria, 2 ports USART,
més velocitat de la CPU, consumeix molts menys (ja que conté la tecnologia nanoWatt) i
conté menys pins.(el preu del microcontrolador es redueix ja que hi ha menys silici).
Després d‟aquest raonament es va elegir el PIC 18F45J11.
1.5.5. Font d’alimentació
1.5.5.1. Possibles solucions
Una vegada triat el microcontrolador PIC 18F45J11,es va procedir a la seva alimentació.
Mirant el seu datasheet es troba que és necessari alimentar per separat el que seria el nucli
del microcontrolador i els pins I/O. El mateix datasheet ens proporciona un esquema on es
pot veure la correcta connexió, tal i com es pot veure en la Figura 1-16.
Figura 1-16. Esquema d‟alimentació del PIC18F25J11
Aquesta topologia de doble font permet al microcontrolador funcionar a 3,3 V amb els
dispositius lògics,mentre al nucli li arriba una tensió nominal inferior a 2,5V.
Tot i això, cal conèixer la millor manera d‟alimentar aquest microcontrolador. Dues de les
alternatives més adeqüades són les descrites a continuació:
- Alimentar el circuit amb dos fonts externes diferents per separat, és a dir, una font
que alimenti al microcontrolador amb 3,3 V i una altra a tots els altres components
del circuit amb 5 V.
- Alimentar el circuit amb una font externa amb 5 V per poder alimentar a tots els
dispositius de la placa i a l‟entrada de l‟alimentació del microcontrolador posar un
regulador de tensió de 5 V a 3,3 V i alimentar dins del rang al microcontrolador.
1.5.5.2. Solució adoptada
La solució adoptada es va basar en posar un regulador de tensió de 5 V a 3,3 V. Aquesta
solució guanya en comoditat ja que només utilitza una font d‟alimentació i a la vegada fa
que el circuit sigui més compacte.
1.6. Bus de comunicació RS-232
1.6.1. Protocol RS-232 del port sèrie
El port sèrie va ser la primera interfase que va permetre que els equips intercanviessin
informació amb el “món exterior”.
Memòria descriptiva
Pàgina 17 de 111
Actualment aquesta interfase que durant anys ha estat dominadora alhora de comunicar-
s‟hi entre equips, s‟ha vist superada per noves interfases, com la interfase USB o Firewire.
Aquestes modernes interfases proporcionen major velocitat de comunicació i menor
cablejat.
La comunicació RS-232 s‟estableix entre un DTE (Equip Terminal de Dades), com pot ser
el PC o el multímetre, i un DCE (Equip de Comunicació de Dades), com pot ser el
microcontrolador.
S‟estableix que la longitud màxima entre el DTE i el DCE no ha de superar els 15 m i la
velocitat màxima de transmissió es de 20000 bps.
Per mitjà del protocol RS-232 s‟estandarditzen les velocitats de transferència de dades, la
forma de control que utilitza aquesta transferència, els nivells de voltatges utilitzats, el
tipus de cable permès, les distancies entre equips i els connectors.
A nivell de software, la configuració principal que s‟ha de donar a una connexió RS-232 és
la selecció de la velocitat en bauds (1200, 2400, 4800, 9600...), la verificació de dades
(paritat par, impar o sense paritat), els bits de parada després de cada dada enviada (un o
dos), i la quantitat de bits per dada (7 o 8). Aquestes configuracions es poden veure
gràficament a la Figura 1-17.
Figura 1-17. Trama d‟enviament RS232
1.6.2. Adaptació de les tensions
El circuit basat amb un microcontrolador s‟ha de comunicar amb un PC i amb un
multímetre. Aquesta comunicació pot realitzar-se utilitzant els ports de l‟ordenador, ja
sigui el port paral·lel o el port sèrie; en el cas del port sèrie té l‟inconvenient que un
microcontrolador treballa amb nivell TTL i el port sèrie de l‟ordenador treballa amb nivells
de voltatges d‟acord amb la norma RS-232.
Per poder establir aquesta comunicació és necessari obtenir un mòdul adaptador de RS-232
a TTL, aquest mòdul ha se ser capaç de convertir els nivells de voltatge RS-232 a TTL per
realitzar uns transmissió de dades (des de l‟ordenador) i de TTL a RS-232 per realitzar una
recepció de dades (des del microcontrolador), aquest mòdul adaptador és l‟anomenat
MAX232, tal i com es mostra en la Figura 1-18.
Memòria descriptiva
Pàgina 18 de 111
Figura 1-18. Diagrama MAX232
En la Figura 1-18 es poden observar dos terminals per connectar senyals amb nivells
de voltatges TTL (que seran adaptades en senyals amb nivell de voltatge RS232) i dos
terminals per connectar senyals amb nivells de voltatge RS232 (que seran adaptades a
senyals amb nivells lògics TTL).
1.6.3. Comunicació Sèrie RS-232 Microcontrolador–Multímetre i
Microcontrolador–PC
Un dels aspectes més importants a tenir en compte en la comunicació del
Microcontrolador–Multímetre i en la comunicació Microcontrolador–PC és l‟adaptació de
la tensió del microcontrolador de 3,3 V amb la del MAX232 que utilitza nivells TTL (0 V
o 5 V).
A causa de que aquest microcontrolador sigui un “Low Power”, és a dir, que utilitzi una
tensió de 3,3 V, i no de 5 V com els microcontroladors més normals, fa que es tingui que
utilitzar un circuit adaptador.
Aquest fet es va poder observar després d‟algunes proves d‟enviament de caràcters. A la
sortida del PIC es mostrava una trama amb tensió de 0 V-3,3 V, tal com queda reflexat a la
Figura 1-19. Però a la sortida del MAX232 no s‟observava aquesta trama. Es va deduir
que aquesta tensió de 3,3 V no era suficient per fer funcionar el MAX232, ja que aquest
funciona amb nivell TTL.
Memòria descriptiva
Pàgina 19 de 111
Figura 1-19. Trama d‟enviament sense amplificar la senyal
Un cop analitzat aquest error es van afegir els inversors CMOS (enlloc dels transistors
bipolars de la família 74xx) ja que aquests no funcionaven perquè el pic no tenia suficient
potència. Aquests CMOS tenien la funció d‟amplificar la senyal de 3,3 V a 5 V. Cada
inversor interiorment conté un circuit com el de la Figura 1-20.
Figura 1-20. Transistor CMOS
Aquest inversor consta d‟un transistor PMOS i un transistor NMOS connectats en sèrie. El
senyal d‟entrada s‟aplica simultàniament a les portes dels dos transistors. Els seus
drenadors estan connectats entre ells, i en aquest node es pren el senyal de sortida.
Resumin el seu funcionament, es pot confirmar que quan la senyal d‟entrada Vi = 3,3 V, el
PMOS està en tall i el NMOS està en zona òhmica. Com estan en sèrie el corrent a través
del NMOS ha de ser igual al corrent a través del PMOS, que és 0 (ja que està en tall). Això
només és possible si la tensió Vds del NMOS es 0, la qual cosa implica que la tensió de
sortida V0 = 0.
En canvi, quan la tensió d‟entrada Vi = 0, NMOS està en tall i el PMOS està en zona
òhmica. Com estan en sèrie el corrent a través del PMOS ha de ser igual al corrent a través
del NMOS, que és 0 (ja que està en tall). Això només es possible si la tensió Vds del PMOS
es 0, la qual cosa implica que la tensió de sortida V0 = Vdd.
Memòria descriptiva
Pàgina 20 de 111
Una vegada es que va veure que el MAX232 rebia els 5 V del PIC, es va observar que
aquest tenia una component capacitativa molt gran i no permetia anar de 5 V a 0 V en el
temps necessari per tenir una bona comunicació. Per això es va deduir que el driver de
sortida del PIC no podia absorbir la tensió emmagatzemada en el condensador del gate del
primer inversor, així que se li va connectar una resistència Pull-down per tal d‟absorbir
aquesta tensió.
Finalment, es va aconseguir que la senyal li arribes correctament al MAX232 i retornés la
senyal amb nivells de voltatge RS232, tal com s‟observa a la Figura 1-21.
Figura 1-21. Senyal de sortida del MAX232
Tot el circuit electrònic descrit anteriorment es pot observar a la Figura 1-22.
Figura 1-21. Esquema elèctric d‟enviament de dades
1.6.4. Comunicació Sèrie RS-232 Multímetre – Microcontrolador
Pel que fa a la comunicació Multímetre –Microcontrolador, també s‟ha d‟adaptar la tensió
del MAX 232 amb nivells TTL als 3,3 V del microcontrolador.
Es va observar que el pic no rebia els senyals TTL correctament i és per això que es van
inserir els inversors. I com el MAX232 no té problemes per absorbir la tensió
emmagatzemada al gate del inversor no van ser necessàries les resistències Pull-Down.
Memòria descriptiva
Pàgina 21 de 111
A la Figura 1-22 es pot veure el circuit descrit anteriorment.
Figura 1-22. Esquema elèctric de recepció de dades
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
MEMORIA DE CÀLCUL
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre de 2010
Memòria de càlcul
Pàgina 23 de 111
2.1. El microcontrolador 18F25J11
2.1.1. El Nucli
2.1.1.1. Característiques principals
El nucli de la CPU del microcontrolador 18F25J11 presenta les següents característiques:
- Bus de dades de 8 bits i bus d‟adreces de 12 bits
- Funcionament operacional fins a 12 MIPS
- Adreçament lineal de fins a 32 kBytes de memòria de programa i 3.800 Bytes de
memòria RAM
- 16 bancs de registres de treball
- ALU de 8 bits
2.1.1.2. Característiques de l’estructura de l’oscil·lador
- Oscil·lador intern d‟alta precisió amb derives inferiors de l‟1% dins del rang de
temperatures de funcionament.
- Dos modes del rellotge extern, fins a 48 MHz (12 MIPS)
- Oscil·lador intern de 31 kHz, oscil·lador intern ajustable de 31kHz i 8MHz o
48MHz en PLL
- Monitor de rellotge a prova d‟errors (permet el apagat segur si un rellotge es para)
2.1.1.3. Tecnologia nanoWatt
El microcontrolador 18F45J11 incorpora una sèrie de característiques que poden reduir
significativament el consum de potència durant l‟operació. Les característiques
fonamentals són:
- Modes d‟execució alternatius: el rellotge pot ser canviat via software mitjançant la
font de rellotge del Timer 1 o l‟oscil·lador intern RC durant l‟execució. El consum
de potència durant l‟execució pot ser reduït fins un 90%
- Múltiples maneres de repòs: el controlador també es pot executar amb el nucli de la
CPU inhabilitat però els perifèrics encara actius. En aquests estats el consum
d‟energia pot ser reduït encara més, a només 4% dels requeriments normals
d‟operació.
2.1.1.4. Altres característiques especials
- Comunicacions: la família PIC 18F45J11 incorpora una gamma de perifèrics de
comunicació en sèrie i en paral·lel. Aquest dispositiu inclou també dos mòduls
USART i dos Ports Mestres Sèries Síncrons (MSSP), capaços d‟operar en modes
SPI i en I2C (mestre o esclau). Aquest dispositiu també té un port mestre i pot ser
configurat ja sigui com a Port Mestre Paral·lel (PMP) o Port Esclau Paral·lel (PSP).
- Mòduls ECCP: aquest dispositiu incorpora millora de tres mòduls com
Captura/Comparació/PWM (ECCP) per maximitzar la flexibilitat en operacions de
Memòria de càlcul
Pàgina 24 de 111
control. Fins quatre bases diferents de temps es pot usar per dur a terme diverses
operacions a la vegada. Cada uns dels ECCPs ofereix fins a quatre sortides PWM
- Conversor A/D de 10 bits: aquest mòdul incorpora temps d‟adquisició programable,
permetent la selecció de canal i l‟ inici de conversió sense esperar el període de
mostreig
- Temporitzador Watchdog (WDT) millorat: aquesta versió millorada incorpora un
prescaler de 16 bits, permetent un ample rang de temps d‟espera que sigui estable
en temps d‟operació i temperatura
2.1.2. La CPU
Es podria caracteritzar la CPU en funció de tres característiques bàsiques:
- En funció de la mida de les dades, que es pot dividir en:
4 bits: aplicacions simples i baix cost
8 bits: aplicacions simples/mitjanes i baix cost. Aquest és el cas del PIC18F25J11
16 bits: aplicacions mitjanes i cost normal
32 bits: aplicacions complexes i cost elevat
- En funció del conjunt de instruccions, que es pot dividir en:
RISC( Reduced Instruction Set Computer), les instruccions són de mida fixa i
presentades en un reduït nombre de formats, són ràpides d‟execució
CISC (Complex Instruction Set Computer), conjunt de instruccions que es
caracteritza per ser molt gran i permetre operacions complexes, necessiten més
temps d‟execució
- En funció de l‟arquitectura dels busos, es pot dividir en:
Von Newman: els busos de dades i de direccions són compartits per la memòria
de programa i de dades. Simplifica el disseny i el cost.
Harvard: disposa de busos diferents per accedir a la memòria de dades i a la
memòria de programa, tal com mostra la Figura 2-1. Això permet accedir
simultàniament a la memòria de dades i a la memòria de programa. Es pot executar
una instrucció (accés a memòria de dades) mentre es llegeix de la memòria de
programa la següent instrucció:
MEMORIA DE
DATOSCPU
MEMORIA DE
INSTRUCCIONES
8 12
Bus de datos Bus de Instrucciones
Figura 2-1. Esquema d‟arquitectura Harvard
Memòria de càlcul
Pàgina 25 de 111
A la Figura 2-2 es pot veure el diagrama de blocs del dispositiu.
Figura 2-2. Diagrama de blocs del PIC 18F25J11
2.1.3. Estructura de la memòria
2.1.3.1. Memòria de programa
Aquesta es pot considerar com la memòria d‟ instruccions, on es guarda el programa que el
microcontrolador ha d‟executar.
Memòria de càlcul
Pàgina 26 de 111
El PIC 18F25J11 disposa d‟ una memòria de programa de 32 Kbytes, va des de la posició
0000H fins la FFFFH. Les instruccions ocupen 2 bytes (excepte CALL, MOVFF, GOTO i
LSFR que ocupen 4 bytes), per tant, la memòria de programa pot emmagatzemar fins a
16.384 instruccions.
El comptador de programa és de 21 bits, és a dir, pot direccionar fins a 2Mbytes en l‟espai
de memòria de programa.
Quan realitzem l‟operació de lectura per damunt de la posició FFFFH el resultat es „0‟
(equivalent a l‟ instrucció NOP).
A la Figura 2-3 es pot veure el mapa de la memòria de programa.
Figura 2-3. Mapa de la memòria de programa
La memòria de programa es divideix en dos parts:
- La memòria d‟usuari: que conté el vector del Reset que és la 0000H, la taula dels vectors
d‟ interrupcions d‟alta prioritat que és la 0008H i la de baixa prioritat que és la 0018H i la
pròpia memòria de programa de tipus FLASH
- La memòria de configuració: és el bloc de memòria que va des la posició 7FF8h fins
7FFFh de memòria de programa. En aquesta memòria s‟inclouen els bits de configuració
(opcions de oscil·lador, Watch-Dog ...) i els registre d‟identificació que contenen
informació del model del dispositiu
Aquesta dos memòries es poden apreciar a la Figura 2-4.
Memòria de càlcul
Pàgina 27 de 111
Figura 2-4. Memòria d‟usuari i memòria de configuració
2.1.3.2. Memòria de dades
El PIC18F45J11 disposa d‟una memòria RAM de dades de 3,8 Kbytes (15 bancs de 256
bytes).
Disposa de registres de propòsit general (GPR) i de registres de funcions especials (SFR)
que són los que poden controlar el funcionament de la CPU, interrupcions i Reset, i també
pel que fa les unitats funcionals del microcontrolador com els timers, els convertidors...
El mapa de memòria de dades es pot veure a la Figura 2-5.
Memòria de càlcul
Pàgina 28 de 111
Figura 2-5. Mapa de la memòria de dades
2.1.4. Ports d’entrada/sortida
Els ports d‟entrada/sortida són el conjunt de patilles que serveixen per l‟entrada i sortida de
dades del PIC. Totes les patilles, excepte VSS, VDD, MCLR i OSC1/CLK1 es reparteixen
entre les senyals que requereixen els perifèrics i les línees E/S de propòsit general. Totes
les línees digitals E/S disposen d‟una funció alternativa associada a alguna part específica
del chip. A la Figura 2-6 podem veure l‟estructura interna d‟una línea d‟entrada/sortida.
Memòria de càlcul
Pàgina 29 de 111
Figura 2-6. Estructura interna d‟una línea I/O
El PIC 18F25J11 disposa de 3 ports d‟entrada/sortida un total de 20 línees digitals
d‟entrada/sortida, tal com mostra la Taula 2-1.
Port Línees d’entrada / sortida
PORT A 6 línees d‟entrada /sortida
PORT B 7 línees d‟entrada /sortida
PORT C 7 línees d‟entrada /sortida
Taula 2-1. Les línees dels ports d‟entrada/sortida
Cada port E/S té associat 3 registres:
- Registre TRIS: registre de la direcció de les dades que determina si les línees són
d‟entrada o de sortida.
- Registre PORT: registre de la porta E/S que conté el valor de les línees d‟entrada.
- Regitre LAT: registre latch d‟E/S que emmagatzema el valor que treuen les línees
E/S.
Els registres TRIS
Com ja s‟ha comentat anteriorment, aquest registre indica quina patilla associada de la
línea E/S està configurada com a entrada i quina com a sortida. Si el bit TRIS de la patilla
és „1‟ aleshores la patilla està configurada com a entrada. En cas contrari, si val „0‟, la
patilla estarà configurada com a sortida.
Totes les patilles de les portes estan configurades per defecte com a entrades, que és el que
passa després d‟un Reset.
Els registres PORT
A través del registre PORT s‟accedeix a les dades existents a les patilles d‟E/S. Es pot
llegir o escriure en aquest registre. Quan llegim, es llegeix el valor que reben o tenen les
Memòria de càlcul
Pàgina 30 de 111
patilles E/S, mentre que quan escrivim en aquest registre, escrivim el valor al registre latch
corresponent.
Escriure en un port implica tres coses: que les patilles són llegides, es modifica el valor i
després s‟escriu al latch de dades.
Quan s‟utilitzen instruccions de lectura i escriptura als registres PORT, s‟ha de tenir
especial precaució quan les patilles E/S es configuren com a entrada. Si una patilla E/S
configurada com a entrada i després d‟un temps es canvia a sortida, pot produir un valor de
sortida inesperat. Això passa perquè una instrucció de lectura i escriptura llegeix el valor
instantani de la patilla d‟entrada i el carga al latch de dades.
Els registres LAT
El registre LAT associat a una patilla d‟E/S elimina els problemes que poden passar en les
instruccions de lectura, modificació i escriptura.
Una lectura del registre LAT retorna els valors guardats als registre latch de sortida del
port, en lloc dels valors de les patilles E/S. L‟operació de lectura-modificació-escriptura al
registre LAT associat a un port d‟E/S, evita la possibilitat d‟escriure els valors de la patilla
d‟entrada als latch del port. Una escriptura al registre LAT té el mateix efecte que escriure
al registre PORT.
A continuació s‟enumeren una sèrie de diferències entre el registre PORT i el LAT:
- Una escriptura al registre PORT escriu el valor de les dades al registre latch del
port.
- Una escriptura al registre LAT escriu el valor de les dades al registre latch del port.
- Una lectura del registre PORT llegeix el valor de les dades dels ports E/S.
- Una lectura del registre LAT llegeix el valor de les dades guardades al registre latch
del port.
2.1.5. Mòdul USART
El mòdul del PIC que implementa el port E/S sèrie síncron i asíncron és l‟anomena‟t
USART (Universal Synchronous Asynchronous Receiver Transmitter), es pot veure un
diagrama de bloc a la Figura 2-7. En aquest projecte s‟usarà en mode asíncron.
Figura 2-7. Bloc del mòdul USART
2.1.5.1. Registres usats i associats al mòdul USART
El mòdul USART disposa d‟una sèrie de registres, que seguidament seran explicats.
Registre RCREG: registre que emmagatzema el caràcter rebut.
Memòria de càlcul
Pàgina 31 de 111
Registre TXREG: registre on s‟escriu el caràcter que es vol enviar.
Registre RCSTA: registre d‟estat i control de la recepció de dades. A la Figura 2-8 es pot
veure el registre RCSTA i a la Taula 2-3 l‟explicació dels bits RCSTA
importants.
Figura 2-8. Registre RCSTA
bit 7 SPEN: Bit d‟activació del port sèrie
0 = Port sèrie desactivat
1 = Port sèrie activat (Se configura les línees RC6/TX/CK i RC7/RX/DT com a línees del
port sèrie)
bit 6 RX9: Bit d‟habilitació del mode de 8 o 9 bits en recepció
0 = S‟habilita el mode de 8 bits en recepció
1 = S‟habilita el mode de 9 bits en recepció
bit 4 CREN: Bit d‟habilitació de recepció continua
0 = Recepció inhabilitada
1 = Recepció habilitada
bit 3 ADDEN: Bit d‟habilitació de la detecció de direcció en el mode asíncron de 9 bits
0 = Detecció de direcció deshabilitada (tots els bytes rebuts en el registre de desplaçament
de recepció són processats independentment del valor del 9º bit rebut)
1 = Detecció de direcció habilitada (només es processa un byte rebut en el registre de
desplaçament de recepció si el 9º bit està a „1‟)
bit 2 FERR: Bit d‟error de format (només lectura)
0 = No s‟ha produït error de format
1 = S‟ha produït error de format
bit 1 OERR: Bit d‟error de sobreescriptura (només lectura)
0 = No s‟ha produït error de sobreescriptura
1 = S‟ha produït error de sobreescriptura
bit 0 RX9D: Valor del 9º bit rebut
Taula 2-3. Bits del registre RCSTA
Registre TXSTA: registre que controla la velocitat de transmissió. A la Figura 2-9 es pot
veure el registre TXSTA i a la Taula 2-4 els bits importants del registre
TXSTA .
Memòria de càlcul
Pàgina 32 de 111
Figura 2-9. Registre TXSTA
bit 6 TX9: Bit d‟habilitació del mode de 9 bits en transmissió
0 = S‟habilita el mode de 8 bits en transmissió
1 = S‟habilita el mode de 9 bits en transmissió
bit 5 TXEN: Bit d‟habilitació de la transmissió
0 = Transmissió inhabilitada
1 = Transmissió habilitada
bit 4 SYNC: Bit de selecció del mode de treball del EUSART
0 = Selecció del mode asíncron
1= Selecció del mode síncron
bit 2 BRGH: Bits de selecció del mode d‟alta velocitat de comunicació (Baudrate) en
mode asíncron.
0 = Selecció de baixa velocitat de comunicació
1 = Selecció d‟alta velocitat de comunicació
bit 1 TRMT: Bit d‟estat del registre de desplaçament de transmissió
0 = Registre de desplaçament de transmissió ocupada
1 = Registre de desplaçament de transmissió buida
bit 0 TX9D: Valor del 9º bit de transmissió (pot utilitzar -se com bit de paritat o per
distingir entre direcció o dato als busos mestre -esclau)
Taula 2-4. Bits del registre TXSTA
Registre BAUDCON: És el registre que controla la velocitat de comunicació. A la Figura
2-10 es pot veure el registre BAUDCON i a la Taula 2-5 els bits
importants del registre BAUDCON.
Figura 2-10. Registre BAUDCON
Memòria de càlcul
Pàgina 33 de 111
bit 7 ABDOVF: Bit de desbordament d‟ autodetecció de la velocitat de comunicació
0 = No s‟ha produït desbordament durant l‟autodetecció
1 = S‟ha produït desbordament durant l‟ auto- detecció (s‟ha de posar a „0‟ per software)
bit 6 RCIDL: Bit d‟Status de l‟operació en marxa
0 = Hi ha operació de recepció en marxa
1 = No hi ha operació de recepció en marxa
bit 4 SCKP: Bit de selecció de polaritat de la senyal de rellotge en mode asíncron
0 = La dada està disponible al nivell baix de la senyal de rellotge (després del flanc de
baixada)
1 = La dada està disponible al nivell alt de la senyal de rellotge (després del flanc de
pujada)
bit 3 BRG16: Bit d‟ habilitació del generador de velocitat de comunicació de 16 bits
0 = Generador de velocitat de comunicació de 8 bits (sol SPBRG)
1 = Generador de velocitat de comunicació de 16 bits (SPBRG i SPBRGH)
bit 1 WUE: Bit d‟habilitació del mode d‟autoactivació en mode asíncron
0 = Mode d‟autoactivació inhabilitat
1 = Mode d‟autoactivació habilitat (quan es detecta un flanc de baixada en la línea RX es
posa a „1‟ el flag RCIF)
bit 0 ABDEN: Bit d‟habilitació del mode d‟autodetecció de la velocitat de comunicació
0 = Mode d‟autoactivació inhabilitat
1 = Mode d‟autoactivació habilitat en la següent recepció
Taula 2-5. Bits del registre BAUDCON
2.1.5.2. Generació de la velocitat de comunicació per al mode asíncron
El microcontrolador 18F25J11 disposa d‟un generador de velocitat de comunicació. Es
tracta d‟un temporitzador on la seva freqüència es controla per un registre. El registre pot
ser de 8 bits (SPBRG) o de 16 bits ([SPBRGH;SPBRG]). El generador de velocitat de
comunicació té dos velocitats de funcionament que es poden seleccionar per mitjà del bit
BGRH (TXSTA).
A la Taula 2-11 s‟estableix com calcular la velocitat de comunicació per al mode asíncron
en funció dels valors dels bits BRGH i BRG16 i dels registres SPBRGH i SPBRG:
Memòria de càlcul
Pàgina 34 de 111
Bits de configuració Mode BRG/EUSART Fórmula Baud
Rate
SYNC BRG16 BRGH
0 0 0 8-bit/Asíncron Fosc/[64(n+1)]
0 0 1 8-bit/Asíncron Fosc/[16(n+1)]
0 1 0 16-bit/Asíncron
0 1 1 16-bit/Asíncron
1 0 x 8-bit/Síncron Fosc/[4(n+1)]
1 1 x 16-bit/Síncron
Taula 2-11. Fórmules de càlcul del BaudRate
2.1.5.3. Càlcul del BaudRate
Per calcular el valor del BaudRate només s‟ha d‟aplicar les següents formules:
1:64__
SPBRGxSPBRGHx
FdesitjatRateBaud OSC
116/__/ desitjatRateBaudFX OSC
116/9600/20000000X
1291130X
9615112916/20000000__ calculatRateBaud
desitjatRateBauddesitjatRateBaudcalculatRateBaudError __/____
16.09600/96009615Error
La Taula 2-12 mostra el valor del registre SPBRG, sabent els valors Fosc, BRGH, BRG16
i BAUDRATE.
Taula 2-12. Valor del registre SPBRG
2.1.5.4. Recepció en el mode asíncron de la USART
El bloc de recepció de la USART incorpora un registre de desplaçament sèrie (RSR). Les
dades entren en sèrie pel pin RC7/RX i són mostrejades pel bloc de lectura de bits
(treballa a una freqüència 16 vegades el BaudRate). Si el bit d‟habilitació de recepció del
Memòria de càlcul
Pàgina 35 de 111
CREN està a „1‟, el bloc de lectura de bits identifica els bits rebuts (bit Start, bits de dades,
9º bit i bit Stop) i els va passant en sèrie al RSR. Una vegada s‟han rebut tots els bits
corresponents a un byte el valor rebut es passa en paral·lel de RSR al registre RCREG.
D‟aquesta manera el registre RSR queda preparat per rebre una nova dada.
A la Figura 2-11, es mostra un diagrama de blocs que explica aquestes accions.
Figura 2-11. Diagrama de blocs de la recepció en mode asíncron de la USART
Si durant la recepció es produeix algun error de format (valor del bit Stop „0‟ al lloc de „1‟)
o de sobreescriptura (es rep un nou byte abans que el registre RSR s‟hagi posat al RCREG)
es posarà a „1‟ el bit corresponent (FERR/OERR).
Cada vegada que es rep una dada el flag RCIF es posa a „1‟. Si el bit d‟habilitació de
la interrupció de recepció del USART està a „1‟ es generarà una interrupció. El bit RCIF és
només de lectura, se posa a „1‟ quan arriba una nova dada a RCREG i es posa a „0‟
automàticament quan es llegeix aquest registre.
Si el mode de 9 bits s‟ha activat (bit RX9 a „1‟) el valor del 9º bit rebut quedarà
emmagatzemat en el bit RX9D.
2.1.5.5. Transmissió en el mode asíncron de la USART
El bloc de transmissió de la USART incorpora un registre de desplaçament sèrie (TSR) que
s‟encarrega d‟enviar en sèrie pel pin RC6/TX els bits de dades a transmetre. El registre
TSR s‟encarrega d‟enviar a més dels 8 bits de dades, el bit de Start i el bit de Stop. Si el bit
TX9 està a „1‟ també s‟enviarà com el 9º bit el valor que contingui el TX9D. La cadència
d‟aquesta transmissió ve determinada per la senyal de rellotge produïda pel generador de
velocitat de comunicació per tal que aquesta senyal de rellotge arribi a TSR el bit TXEN ha
d‟estar a „1‟ (habilitació de la transmissió).
A la Figura 2-12 es veu un diagrama de blocs on s‟explica aquestes accions.
Memòria de càlcul
Pàgina 36 de 111
Figura 2-12. Diagrama de blocs de la transmissió en mode asíncron de la USART
El bit TRMT es posa a „1‟ quan el registre TRMT està buit (aquest bit és només de
lectura). El bit TRMT no està associat a cap mecanisme d‟interrupció, serveix únicament
per saber quan una dada ha estat completament transmesa.
El flag TXIF es posa a „1‟ quan el registre TXREG està buit. El bit TXIF es només de
lectura, es posa automàticament a „0‟ quan es torna a escriure un valor en TXREG i es
manté a „0‟ fins que aquest valor passi de TXREG a TSR. Si el bit TXIF està a „1‟ i el bit
d‟habilitació de la interrupció de transmissió del USART està a „1‟ es generarà una
interrupció. Per tant, únicament s‟ha d‟habilitar l‟ interrupció de transmissió del EUSART
després d‟escriure en TXREG la primera dada que volem transmetre i hem de inhabilitar-la
quan s‟hagi enviat l´ última dada. Per contra, s‟estaria generant contínuament interrupcions
de transmissió del USART.
2.1.6. El controlador d’interrupcions
2.1.6.1. Introducció al sistema d’interrupcions
Com ja es coneix, les interrupcions eviten que la CPU explori contínuament el valor d‟un
registre, alliberant així feines no necessàries.
Hi ha dos tipus d‟interrupcions possibles: una mitjançant una acció interna que podria ser
quan es produeix un desbordament d‟algun registre, i l‟altra per una acció externa que
podria ser l‟activació d‟algun pin.
El PIC18F25J11 té moltes fonts d‟interrupció i una funció de prioritat d‟interrupció que
permet més fonts d‟interrupció assignades a un nivell d‟alta o baixa prioritat.
El vector d‟interrupció d‟alta prioritat està en la 0008h i el vector d‟interrupció de baixa
prioritat està en la 0018h.
Hi ha 13 registres que s‟utilitzen per controlar l‟operació de la interrupció. Aquests
registres són els següents:
• RCON
• INTCON
• INTCON2
• INTCON3
• PIR1, PIR2, PIR3
Memòria de càlcul
Pàgina 37 de 111
• PIE1, PIE2, PIE3
• IPR1, IPR2, IPR3
2.1.6.2. Registres usats i associats a les interrupcions
Registre RCON: És el registre que conté els bits usats per determinar la causa de l‟últim
Reset o el despertador del mode Idle o Sleep. El registre RCON també
conté el bit que permet les prioritats en les interrupcions. A la Figura
2-13 es veu el registre RCON i a la Taula 2-13 es mostra els bits
importants del registre RCON.
Figura 2-13. Registre RCON
bit 7 IPEN: Bit d‟habilitació de prioritats en les interrupcions
0 = Sistema de prioritat en les interrupcions inhabilitat
1 = Sistema de prioritat en les interrupcions habilitat
bit 5 !CM: Bit d‟indicació de coincidència de bandera
0 = Si hi ha hagut falta de coincidència del Reset
1 = No hi ha hagut una falta de coincidència del Reset
bit 4 !RI: Bit d‟indicació d‟instrucció Reset
0 = La instrucció Reset no s‟ha executat
1 = La instrucció Reset s‟ha executat causant un reinici del dispositiu
bit 3 !TO: Bit d‟indicació del temps d‟espera del Watch Dog(WD)”
0 = El temps d‟espera del WD ha passat
1 = Després de l‟engegada (power-up) o d‟una instrucció CLRWDT o SLEEP
bit 2 !PD: Bit d‟indicació de detecció del “Power-Down”
0 = Per executar una instrucció SLEEP
1 = Després de Power-Up o una instrucció CLRWDT
bit 1 !POR: Bit d‟indicació de Reset per engegada
0 = Hi ha hagut un Reset per engegada
1 = No hi hagut un Reset per engegada
bit 0 !BOR: Bit d‟indicació de Reset per fallo d‟alimentació
0 = Hi ha hagut un Reset per fallo d‟alimentació
1 = No hi ha hagut un Reset per fallo d‟alimentació
Memòria de càlcul
Pàgina 38 de 111
Taula 2-13. Bits del registre RCON
Registre INTCON: És el registre que conté les habilitacions, prioritats i bits de bandera de
les interrupcions. A la Figura 2-14 es mostra el registre INTCON i a la
Taula 2-14 els bits importants del registre INTCON.
Figura 2-14. Registre INTCON
bit 7 GIE/GIEH: Bit d‟habilitació global de les interrupcions. La seva funció depèn del
valor de IPEN.
IPEN = „0‟
GIE = „0‟ Interrupcions inhabilitades a nivell global
GIE = „1‟ Interrupcions habilitades a nivell global
IPEN = „1‟
GIEH = „0‟ Interrupcions d‟alta prioritat inhabilitades a nivell global
GIEH = „1‟ Interrupcions d‟alta prioritat habilitades a nivell global
bit 6 PEIE/GIEL: Bit d‟habilitació global de les interrupcions de perifèrics. La seva
funció depèn del valor de IPEN.
IPEN = „0‟
PEIE = „0‟ Interrupcions de perifèrics inhabilitades a nivell global
PEIE = „1‟ Interrupcions de perifèrics habilitades a nivell global
IPEN = „1‟
GIEL = „0‟ Interrupcions de baixa prioritat inhabilitades a nivell global
GIEL = „1‟ Interrupcions de baixa prioritat habilitades a nivell global
bit 4 INT0IE: Bit d‟habilitació de la interrupció externa 0
0 = Interrupció externa 0 inhabilitada
1 = Interrupció externa 0 habilitada
bit 1 INT0IF: Bit d‟indicació de la interrupció externa 0
0 = No s‟ha produït un flanc en la línea RB0/INT0
1 = S‟ha produït un flanc en la línea RB0/INT0
Taula 2-14. Bits del registre INTCON
Registres PIR: Són registres que contenen els bits de bandera individuals per a les
interrupcions de perifèrics. Degut al gran nombre de fonts de interrupció de
perifèrics, hi ha tres registres de sol·licitud de interrupció de perifèrics
(PIR1, PIR2 i PIR3). Al programa només s‟ utilitzarà el registre PIR1.
Memòria de càlcul
Pàgina 39 de 111
Registre PIR1: A la Figura 2-15 es mostra el registre PIR1 i a la Taula 2-15 es mostra els
bits importants del registre PIR1.
Figura 2-15. Registre PIR1
bit 5 RCIF: Indicació de la interrupció de recepció del EUSART
0 = El buffer de recepció del EUSART (RCREG) està buit
1 = El buffer de recepció del EUSART (RCREG) està ple
bit 4 TXIF: Indicació de la interrupció de transmissió del EUSART
0 = El buffer de recepció del EUSART (TXREG) està ple
1 = El buffer de recepció del EUSART (TXREG) està buit
Taula 2-15. Bits del registre PIR1
Registres PIE: Són registres que conten els bits individuals d‟habilitació per a les
interrupcions de perifèrics. Degut a les diverses fonts d‟interrupció de
perifèrics, hi ha tres registres (PIE1, PIE2 i PIE3). Només s‟utilitzarà el
registre PIE1 i el registre PIE3.
Registre PIE1: A la Figura 2-16 es mostra el registre PIE1 i a la Taula 2-16 es mostra els
bits importants del registre PIE1.
Figura 2-16. Registre PIE1
bit 5 RC1IE: Bit d‟habilitació de la interrupció de recepció del EUSART
0 = Interrupció de recepció del EUSART inhabilitada
1 = Interrupció de recepció del EUSART habilitada
bit 4 TX1IE: Bit d‟habilitació de la interrupció de transmissió del EUSART
0 = Interrupció de transmissió del EUSART inhabilitada
1 = Interrupció de transmissió del EUSART habilitada
Taula 2-16. Bits del registre PIE1
Registre PIE3: A la Figura 2-17 es mostra el registre PIE3 i a la Taula 2-17 els bits
importants del registre PIE3.
Memòria de càlcul
Pàgina 40 de 111
Figura 2-17. Registre PIE3
bit 5 RC2IE: Bit d‟habilitació d‟interrupció de recepció del EUSART 2.
0 = Recepció inhabilitada
1 = Recepció habilitada
bit 4 TX2IE: Bit d‟habilitació d‟interrupció de transmissió del EUSART 2.
0 = Transmissió inhabilitada
1 = Transmissió habilitada
Taula 2-17. Bits del registre PIE3
Registres IPR: Són registres que contenen els bits de prioritats individuals de les
interrupcions de perifèrics. A causa del nombre de fonts d‟interrupcions de
perifèrics, hi ha tres registres d‟interrupcions de prioritats de perifèrics
(IPR1, IPR2 i IPR3), però només s‟utilitzarà el registre IPR1 i el registre
IPR3.
Registre IPR1: A la Figura 2-18 es mostra el registre IPR1 i a la Taula 2-18 es mostra els
bits importants del registre IPR1.
Figura 2-18. Registre IPR1
bit 5 RC1IP: Bit de prioritat d‟interrupció de recepció del EUSART 1.
0 = Baixa prioritat.
1 = Alta prioritat.
bit 4 TX1IP: Bit de prioritat d‟interrupció de transmissió del EUSART 1.
0 = Baixa prioritat.
1 = Alta prioritat.
Taula 2-18. Bits del registre IPR1
Registre IPR3: A la Figura 2-19 es mostra el registre IPR3 i a la Taula 2-19 es mostra els
bits importants del registre IPR3.
Figura 2-19. Registre IPR3
Memòria de càlcul
Pàgina 41 de 111
bit 5 RC2IP: Bit de prioritat d‟interrupció de recepció del EUSART 2.
0 = Baixa prioritat.
1 = Alta prioritat.
bit 4 TX1IP: Bit de prioritat d‟interrupció de transmissió del EUSART 2.
0 = Baixa prioritat.
1 = Alta prioritat.
Taula 2-19. Bits del registre IPR3
2.1.6.3. Prioritats del sistema d’interrupcions
El bit IPEN del registre RCON permet activar el sistema de prioritats:
- IPEN a „0‟: totes les interrupcions tenen la mateixa prioritat i es vectoritzen a la
direcció 0008H. Per habilitar globalment les interrupcions del grup general
d‟interrupcions s‟ha de posar a „1‟ el bit GIE del registre INTCON. Per habilitar
globalment les interrupcions del bloc d‟interrupcions de perifèrics s‟han de
posar a „1‟ els bits GIE i PEIE del registre INTCON. En aquest cas, ninguna
interrupció pot interrompre el tractament d‟una altra interrupció.
- IPEN a „1‟: les interrupcions es poden configurar en dos nivells de prioritat en
funció del bit de prioritat d‟interrupció (excepte l‟ interrupció externa 0 que sempre
tindrà nivell de prioritat alta):
Bit de prioritat d‟interrupció a „0‟: Prioritat baixa. Les interrupcions de
prioritat baixa es vectoritzen a la direcció 0018H. Per habilitar globalment
les interrupcions de prioritat baixa s‟ha de posar a „1‟ el bit GIEL del
registre INTCON
Bit de prioritat d‟interrupció a „1‟: Prioritat alta. Les interrupcions de
prioritat alta es vectoritzen a la direcció 0008H. Per habilitar globalment les
interrupcions a les interrupcions de prioritat alta s‟ha de posar a „1‟ el bit
GIEH del registre INTCON
Una interrupció d‟alta prioritat pot interrompre el tractament d‟una interrupció de baixa
prioritat però a l‟inversa no és possible. Per altra part ni les interrupcions de alta prioritat ni
de baixa prioritat no poden interrompre‟s entre elles.
A més de ser habilitades globalment, les interrupcions han de ser habilitades a nivell
particular mitjançant el seu bit d‟habilitació d‟interrupció.
2.1.6.4. Fases d’una interrupció
A continuació s‟exposen les accions que es porten a terme quan s‟atén una interrupció:
1ª.- S‟activa una possible causa d‟interrupció. La senyalització d‟aquesta causa, el bit de
permís corresponent i el global per a totes les interrupcions (GIE) estan a nivell alt.
2ª.- Per evitar que es produeixi una altra interrupció mentre dura el tractament de la que
s‟ha acceptat, el bit GIE es posa a 0.
Memòria de càlcul
Pàgina 42 de 111
3ª.- El valor actual del PC es guarda a la pila.
4ª.- El PC es carga amb el valor 0004h, que es el vector d‟interrupció.
5ª.- La rutina d‟interrupció comença explorant el valor dels senyalitzadors, per determinat
la causa que l‟ha provocat.
6ª.- Segons la causa d‟interrupció, la rutina es bifurca a la subrutina corresponent.
7ª.- S‟esborren les senyalitzacions per software, abans de realitza el retorn.
8.- Quan s‟arriba a l‟última instrucció de la rutina d‟interrupció, es carga al PC el valor que
inicialment es va guardar a la pila i es posa el bit GIE a 1.
2.1.6.5. Passos a seguir per treballar amb interrupcions
A continuació s‟exposen els passos a seguir per treballar amb interrupcions:
1er.- Configurar el dispositiu associat a la interrupció (temporitzadors, EUSART,
convertidor A/D, etc.).
2on.- Habilitar a nivell global les interrupcions del grup corresponent mitjançant els bits
GIE/GIEH i PEIE/GIEL del registre INTCON.
3er.- Habilitar a nivell individual la interrupció mitjançant el bit d‟habilitació.
4rt.- Establir la prioritat de la interrupció mitjançant el bit de prioritat (sol si prèviament
s‟ha activat el sistema de prioritat d‟ interrupció, IPEN=‟1‟).
5è.- A la direcció de vectorització corresponent (0008H o 0018H, segons el cas) afegir el
codi de tractament de l‟ interrupció ha d‟incloure:
Identificació de la interrupció: ja que varies interrupcions poden vectoritzar-se a
la mateixa direcció, s‟han de comprovar els flags de les interrupcions per saber
quina d‟elles ha provocat el salt a la direcció de vectorització.
Esborrar el flag d‟ interrupció: el flag d‟ interrupció s‟ha d‟esborrar per software
una vegada la interrupció ha estat identificada. D‟aquesta manera s‟evita que quan
finalitza la rutina de tractament d‟interrupció es torna a processar la mateixa
interrupció.
Codi de processat de la interrupció: per últim s‟ha d‟escriure el codi de tractament
a la interrupció que dependrà de cada aplicació.
2.1.6.6. Diagrama del sistema d’interrupcions
Cada causa d‟interrupció està controlada mitjançant tres línees o senyals. Una d‟elles té la
funció de senyalitzar si s‟ha produït o no una acció, una altra dona permís o prohibició a la
interrupció en sí i l‟altra controla si és una interrupció d‟alta prioritat o de baixa prioritat.
Com es mostra en la Figura 2-20, si per exemple, es rep una interrupció de recepció d‟un
caràcter del canal EUSART, els bits corresponents dels registres PIR1 (indicació
d‟interrupció), PIE1 (bit d‟habilitació de recepció) i IPR1 (bit de prioritat alta /baixa del
Memòria de càlcul
Pàgina 43 de 111
canal EUSART) hauran d‟estar a nivell alt, a continuació els bits d‟habilitacions a nivells
globals PEIE/GIEL i bit d‟activació del sistema de prioritats IPEN hauran d‟estar a nivell
alt.
Figura 2-20. Sistema d‟interrupcions
2.1.7. Selecció de pins de perifèrics/Peripherial Pin Selectable (PPS
2.1.7.1. Introducció als PPS
Aquesta característica que implementa alguns microcontroladors com aquest està enfocat a
fer més flexible la utilització d‟ells, més encara als microcontroladors de pocs pins.
La selecció dels pins dels perifèrics permet als usuaris determinar quins pins usar en una
amplia gama de pins I/O. A l‟augmentar les opcions de patilles disponibles en un dispositiu
en particular, podem adoptar millor el microcontrolador a l‟aplicació, en lloc d‟adequar
l‟aplicació al dispositiu.
És a dir, és un multiplexor que permet a l‟usuari seleccionar el pinout de certes funcions de
perifèrics digitals.
Els pins disponibles per la selecció depenen del microcontrolador en particular, en el cas
del PIC 18F25J11 en són 22 pins PPS. Aquests pins inclouen la designació RPn
(Remappable Peripherial,on n indica el nombre).
Els perifèrics que poden utilitzar la selecció de pins són únicament digitals, aquests
inclouen les comunicacions sèries (UART i SPI), entrada a clock extern de timers, pin per
captura o comparació i pins d‟interrupció externa.
Hi ha perifèrics digitals que no poden utilitzar la multiplexació dels pins per necessitar un
hardware especial, com és el cas de la comunicació I2C.
Memòria de càlcul
Pàgina 44 de 111
2.1.7.2. Control de la selecció de pins
La selecció de pins es divideix en pins que tenen la funció d‟entrada i pins de funció de
sortida.
2.1.7.3. Mapa d’entrada
Les entrades de les opcions de PPS s‟assignen sobre la base del perifèric, és a dir, un
registre de control associat al que el perifèric dicta el pin que serà assignat.
A la Taula 2-20 es pot veure el mapa d‟entrada del PIC 18F25J11.
Taula 2-20. Mapa d‟entrada
Per al mapeig de pins en la funció d‟entrada s‟utilitza el registre RPINRx, que conté un
camp de 5 bits per seleccionar el pin RPx associat al perifèric. A la Figura 2-21 es pot
veure l‟assignació de pins en funció d‟entrada.
Figura 2-21. Funció d‟entrada
Memòria de càlcul
Pàgina 45 de 111
2.1.7.4. Mapa de sortida
En contrast en les entrades, les sortides de les opcions PPS s‟assignen a la base del pin. El
valor del bit correspon a un dels perifèrics i la sortida dels perifèrics s‟assigna al pin.
A la Taula 2-21 es mostra el mapa de sortida dels pins PPS del PIC 18F25J11.
Taula 2-21. Mapa de sortida
En canvi, la selecció de pins en la funció de sortida és inversa en la utilització del registre
RPORx ja que s‟assigna un perifèric a un pin determinat. A més inclou l‟opció NULL
(00000) que permet deixar desconnectat el pin. A la Figura 2-22 es pot veure l‟assignació
de pins en la funció de sortida.
Figura 2-22. Funció de sortida
Memòria de càlcul
Pàgina 46 de 111
2.1.7.5. Beneficis del Peripherial Pin Select (PPS)
Els beneficil del PPS són els descrits a continuació:
Minimitza la mida del encapsulat i el cost de la MCU
Redueix la complexitat del software a través del increment de la funcionalitat del
hardware
Optimitza els pins del layout per reduir el temps de disseny, la complexitat del
PCB i les interferències electromagnètiques
Proveeix dissenys amb el set exacte de perifèrics que necessitem
2.1.7.6. Registres associats i usats al Peripherial Pin Select (PPS)
El PIC 18F25J11 amb els seus 28 pins conté 31 registres de configuració de perifèrics
reassignables.
Registre PPSCON: Registre 0 de PPS d‟entrada, situat al banc EFFh. Els valors d‟entrada i
sortida del registre només poden ser canviats si PPS <IOLOCK>=0. A
la Figura 2-23 es pot veure el registre PPSCON i a la Taula 2-22 els
bits del registre PPSCON.
Figura 2-23. Registre PPSCON
bit 0 IOLOCK: Bit d‟habilitació de bloqueig I/O
0 = Bloqueig I/O no activat, la configuració de pins es pot canviar
1 = Bloqueig I/O activat, els registres RPORx i RPINRx són protegits contra escriptura
Taula 2-22. Bit del registre PPSCON
Registre RPINR16: Registre 16 de PPS d‟entrada, situat al banc EF6h. A la Figura 2-24 es
mostra el registre RPINR16 i a la Taula 2-23 els bits del registre
RPINR16.
Figura 2-24. Registre RPINR16
bit 4-0 RX2DT2R<4:0>: Bits del EUSART 2 (RX2/DT2) que corresponen als pins
RPn.
Taula 2-23. Bits del registre RPINR16
Memòria de càlcul
Pàgina 47 de 111
Registre RPOR1: Registre 1 de PPS de sortida, situat al banc EC7h. A la Figura 2-25 es
mostra el registre RPOR1 i a la Taula 2-24 els bits del registre RPOR1.
Figura 2-25. Registre RPOR1
bit 4-0 RP1Rx <4:0>: Bits de funcions de perifèrics de sortida s‟assignen al pin de
sortida RP1.
Taula 2-24. Bis del registre RPOR1
Memòria de càlcul
Pàgina 48 de 111
2.2. El multímetre Agilent 344001A
2.2.1. Objectiu del multímetre
El multímetre Agilent 344001A serà l‟encarregat de realitzar certes mesures de tensió o
corrent a sensors que varien la seva resistència elèctrica dels gasos presents en l‟ambient
on es troben aquests dispositius.
Aquest multímetre serà programat de manera que pugui acceptar ordres de configuració i
de mesura des de la interfase remota (del microcontrolador).
2.2.2. Introducció física del Agilent 344001A
En aquest apartat es pretén familiaritzar al lector sobre les tecles del panel frontal, el
significat dels indicadors i formats de pantalla.
2.2.2.1. Panel Frontal
A la Figura 2-26 es pot observar les tecles del panel frontal del multímetre i a la Figura 2-
27 la seva llegenda.
Figura 2-26. Panel frontal del multímetre
Memòria de càlcul
Pàgina 49 de 111
1. Tecles de funció de mesura
2. Tecles d‟operacions matemàtiques
3. Disparo simple / autodisparo / tecla de retenció de lectura
4. Shift / tecla local
5. Commutador del terminal d‟entrada frontal / posterior
6. Interval / nombre de dígits de tecles visualitzades
7. Tecles de funcionament de menús
Figura 2-27. Llegenda de les tecles del panel frontal
2.2.2.2. Indicadors de pantalla
En aquest apartat es mostren els indicadors de pantalla del multímetre, es poden veure a la
Figura 2-28 i la llegenda a la Figura 2-29.
Figura 2-28. Indicadors de pantalla
* Se connecta durant una mesura
Adsr Dirigeix al multímetre per escoltar o parlar sobre una interfase remota
Rmt El multímetre està en el mode remot (interfase remota)
Man El multímetre està utilitzant arrancada manual (l‟autoarranc està inutilitzat)
Trig El multímetre està esperant un disparo simple o extern
Hold La retenció de lectura està habilitada
Mem Es connecta quan la memòria de lectura està habilitada
Ratio El multímetre està en funció d‟interval dcv:dcv
Math Hi ha una operació matemàtica habilitada
ERROR Se detecten errors de comandament de la interfase remota o hardware
Rear Es seleccionen terminals d‟entrada posterior
Memòria de càlcul
Pàgina 50 de 111
Shift La tecla Shift ha estat pulsada
4W El multímetre està en la funció de 4-wire ohms
El multímetre està en la funció de prova de continuïtat
El multímetre està en funció de prova de diode
Figura 2-29. Llegenda dels indicadors de pantalla
2.2.2.3. Formats de pantalla del panel frontal
Format de pantalla: - H . DDD , DDD EFFF
Exemple:
2
1 de dígit
Aquest es el rang de 10 Vdc, es visualitzen 5 2
1 de dígits
2.2.3. Programació del multímetre
Per a que el multímetre pugui rebre ordres del microcontrolador i pugui enviar els resultats
obtinguts de les mesures dels sensors, és necessari habilitar-lo de tal forma que la
comunicació sigui l‟adequada.
2.2.3.1. Mode d’enllaç del hardware (RS-232)
El connector RS-232 del panel posterior del multímetre és un connector de 9 clavilles
(connector DB9, mascle). Aquest connector estarà connectat amb el PIC. El connector es
pot veure a la Figura 2-30.
- Signe negatiu o blanc (positiu)
H Dígit “2
1 ” (0 o 1)
D Dígits numèrics
E Exponent (m, k, M)
F Unitats de mesura (VDC, OHM, HZ,dB)
10.216,5 VDC
5 dígits
Memòria de càlcul
Pàgina 51 de 111
Figura 2-30. Connector per connectar Multímetre amb PIC
2.2.3.2. El multímetre i el controlador de bus
El model d‟intercanvi d‟un equip com el multímetre, inclou els següents components, a la
Figura 2-31 es pot veure un esquema il·lustratiu d‟aquests.
Figura 2-31. Model d‟intercanvi del multímetre
Buffer d‟entrada: es l‟àrea de memòria on les ordres i requeriments d‟entrada són
emmagatzemats, abans de ser interpretats i executats pel Parser. El buffer d‟entrada,
permet que l‟equip controlador del instrument, emmagatzemi al buffer un string contenen
varies ordres, mentre això passa es pot realitzar altres operacions amb altres equips.
Buffer de sortida: és l‟àrea de memòria on les dades de sortida (missatges de sortida) són
emmagatzemades a l‟espera que el controlador vulgui llegir-les.
Parser: és el controlador intern del equip que interpreta els missatges complets
emmagatzemats al buffer d‟entrada, els executa, i en cas que siguin de requeriment,
diposita a la cola de sortida les dades resultants.
Per entendre la relació entre el controlador de bus i el multímetre seguidament es mostra
un petit protocol:
- L‟equip i el controlador es comuniquen intercanviant missatges d‟ordres i missatges
de resposta
- Els missatges d‟ordres són enviats pel controlador, i poden ser de dos tipus: Ordres
de control: requereixen un canvi d‟estat de l‟equip, però no requereixen cap
resposta. Ordres de requeriment: sol·liciten informació sobre l‟estat de l‟equip o
sobre informació que posseeix
Memòria de càlcul
Pàgina 52 de 111
- L‟equip només parla (envia un missatge de sortida) com a resposta d‟una ordre de
requeriment
- El controlador només admet un missatge de sortida, i ho requereix abans d‟enviar
un nou missatge d‟ordres. En cas de no ser així es genera una situació de bloqueig
La regla bàsica del protocol és la següent:
- “L‟equip només parla quan està disposat a això, en aquest cas, ha de parlar abans de
que se li ordeni una nova cosa”
- L‟equip i el controlador es comuniquen intercanviant missatges d‟ordres i de
respostes completes. Això significa que el controlador sempre ha d‟acabar un
missatge d‟ordres, abans d‟intentar llegir una resposta
- Si l‟equip envia un missatge de resposta, el controlador ha de llegir sempre de
forma completa el missatge, abans d‟enviar un nou missatge d‟ordres a l‟equip
- El controlador pot enviar un missatge contenint múltiples ordres de requeriments.
Això se li denomina un “requeriment compost”. Els diferents requeriments dins del
missatge han d‟estar separats per el delimitador “;”. Els missatges de resposta són
encolats a la cola de sortida, separats entre sí també, per el delimitador “
- Els comandaments són executats en l‟ordre en que han estat rebuts
2.2.3.3. Senyals a tenir en compte del connector RS-232
A la Taula 2-25 es mostren les diferents senyals del connector RS-232.
Nombre del pin I/O Descripció
1 Sortida *Comprovació de límits apta
2 Entrada Recepció de dades (RxD)
3 Sortida Transmissió de dades (TxD)
4 Sortida Terminal de dades preparat (DTR)
5 - Senyal de terra (SG)
6 Entrada Conf. de dades preparat (DSR)
9 Sortida *Comprovació de límits no apta
Taula 2-25. Senyals del connector RS-232
Durant aquest projecte s‟han utilitzat especialment 5 d‟aquestes senyals: la RxD, TxD,
DTR, DSR i SG.
-La senyal SG és la senyal de terra.
-La senyal RxD és la senyal de recepció. Són les dades que es reben (entrada).
Memòria de càlcul
Pàgina 53 de 111
-La senyal TxD és la senyal de transmissió. Per aquí surten les dades (sortida).
-La senyal DTR s‟utilitza com una senyal que retindrà les dades del controlador de bus.
Una vegada que DTR és verdader, el controlador de bus pot enviar dades al multímetre.
Quan DTR es fals, el controlador de bus ha de deixar d‟enviar dades en 10 caràcters, i no
ha d‟enviar ninguna dada més, fins que DTR sigui verdader de nou.
El multímetre configura la senyal DTR a fals davant de dos condicions:
1. Quan el búffer d‟entrada del multímetre està ple (s‟han rebut 100 caràcters
aproximadament), configurarà el DTR com a fals. Quan s‟hagin eliminat els
suficients caràcters per fer espai al buffer, el multímetre configurarà el DTR com a
verdader, a no ser que la segona condició no ho accepti.
2. Quan el multímetre vol parlar, que significa que s‟ha produït una consulta, i ha vist
un final de missatge <newline> configurarà el DTR com a fals. Això implica que
una vegada s‟ha enviat una consulta al multímetre, el controlador de bus haurà de
llegir la resposta abans d‟intentar enviar més dades. També significa que una
<newline> ha d‟acabar la cadena de comandament. Després que hagi sortit la
resposta, el multímetre configurarà el DTR com a verdader de nou, a no ser que la
primera condició no ho accepti.
-La senyal DSR la controla el multímetre per determinar quan el controlador de bus està
preparat per acceptar dades. El multímetre consulta aquesta línea abans d‟enviar cada
caràcter, la sortida es suspesa si DSR es falsa. El multímetre mantindrà DTR falsa mentre
la sortida estigui suspesa. Existeix un bloqueig que fins que el controlador de bus asseguri
que el DSR es verdader per permetre que el multímetre completi la transmissió.
Es pot trencar el bloqueig enviant el caràcter Control-C, que suprimeix l‟operació en curs i
elimina la sortida pendent. Per a que el caràcter Control-C sigui reconegut com a fiable per
al multímetre mentre manté el DTR com a fals, el controlador de bus ha de configurar el
DSR com a fals.
A la Figura 2-32 es mostra el connexionat d‟aquests 5 senyals entre el controlador de bus i
el multímetre.
Figura 2-32. Connexionat controlador de bus amb multímetre
2.2.3.4. Seqüència de programació de la interfase remota
És pot programar el multímetre per a que realitze mesures des de la interfase remota,
seguint els següents passos.
1. Posar el multímetre en un lloc conegut.
2. Canviar les configuracions del multímetre per aconseguir la configuració desitjada.
Memòria de càlcul
Pàgina 54 de 111
3. Configurar les condicions de disparo.
4. Inicia o armar el multímetre per una mesura.
5. Disparar el multímetre per realitzar una mesura.
6. Eliminar les lectures del buffer de sortida o de la memòria interna.
7. Llegir les dades mesurades al controlador de bus.
2.2.4. Introducció al llenguatge SCPI
2.2.4.1. Historia del llenguatge SCPI
Durant els primers dies de la comercialització‟ d‟instruments programables, cada fabricant
va crear el seu propi llenguatge per al control dels seus equips. Pocs fabricants compartien
el mateix idioma o sintaxis. Inclús els equips fets pel mateix fabricant utilitzaven a vegades
llenguatges completament diferents dels seus altres equips. Els instruments programables
es van anant fent més poderosos, i a la vegada el llenguatge de control tenia que ser més
complex. La sobrecàrrega d‟aprendre a controlar cada peça dels equips s‟havia convertit en
un problema molt important.
La programació d‟instruments electrònics va començar en la definició del estàndard IEEE-
488 sobre l‟any 1960 quan Hewlett Packard va desenvolupar el bus HP-IB.
Al 1975, per evitar la dispersió de característiques, els principals fabricants van acordar
l‟estandardització del GPIB (IEE 488.1), es van centrar en les característiques elèctriques i
mecàniques del bus. Dotze anys més tard, va tenir una segona estandardització (IEE 488.2)
que va delimitar de forma més concreta la programació del GPIB, definint comandes
d‟aparells, format de missatges i estat dels instruments (es pretenia augmentar la
compatibilitat entre sistemes).
Uns anys després, al 1990, un grup d‟empreses van acordar crear un conjunt d‟ordres en
una sintaxis comuna, la SCPI (Comandaments Estàndard per Instruments Programables),
amb una compatibilitat més extensa. El llenguatge SCPI neix davant la necessitat d‟
estandarditzar la comunicació amb els dispositius de manera que instruments en
funcionalitats similars responguin en els mateixos mandats independentment de la seva
tipologia i fabricant. SCPI especifica la sintaxis que s‟ha d‟utilitzar per al control
d‟instruments programables a través d‟un enllaç de comunicacions, com GPIB, RS-232,
USB...
Com a conseqüència de tot aquest desenvolupament històric, a l‟actualitat s‟ha aconseguit
disposar de major potencia en el desenvolupament d‟aplicacions en instruments
programables i simplificar el procés de programació.
Aquesta evolució de la norma es pot observar a la Figura 2-33.
Memòria de càlcul
Pàgina 55 de 111
Figura 2-33. Evolució de la norma
2.2.4.2. Model del instrument programable
Per aconseguir la compatibilitat en la programació d‟instruments SCPI es va definir un
model d‟instrument. Existeixen tres tipus de compatibilitat en SCPI:
- Compatibilitat vertical: dos instruments del mateix tipus tenen els mateixos
controls. Per exemple: dos oscil·loscopis tenen els mateixos controls per a les seves
bases de temps i per als dispars.
- Compatibilitat horitzontal: dos instruments poden fer la mateixa mesura sense
importar la tècnica de mesura utilitzada. Per exemple, un oscil·loscopi i un
comptador poden mesurar el temps de pujada d‟un pols. Els dos instruments són
compatibles si usen el mateix comandament en els dos instruments.
- Compatibilitat funcional: dos instruments que realitzen la mateixa funció, utilitzant
els mateixos comandos. Per exemple: un analitzador d‟espectres i un generador RF
poden fer mesures de freqüència.
2.2.4.3. Sintaxis del llenguatge SCPI
Els comandaments SCPI utilitzen una estructura d‟arbre. L‟estructura arbre està
organitzada en comandaments a nivell d‟arrel (també anomenats “subsistemes”). A la
Figura 2-34 es pot veure una estructura d‟arbre com a mode representatiu.
Figura 2-34. Estructura d‟arbre
Memòria de càlcul
Pàgina 56 de 111
Utilització dels dos punts (:)
Si es posen just abans del primer caràcter d‟una paraula clau d‟un comandament, indiquen
que la següent mnemotècnica del comandament es un comandament de nivell d‟arrel.
Quan s‟encerten dos punts entre dos mnemotècniques de comandament, els dos punts
baixen la ruta un nivell de la ruta present (per al comandament de nivell d‟arrel especificat)
de l‟arbre de comandament.
S‟ha de separar les mnemotècniques del comandament de les altres utilitzant dos punts. Es
poden ometre els dos punts principals si és el primer d‟una nova línea de programa.
Utilització del punt i coma (;)
Quan es vol separar dos comandaments que es troben en la mateixa cadena de
comandament. El punt i coma no canvia la ruta actual especificada. Per exemple, les dos
instruccions següents són equivalents.
:TRIG:DELAY 1; : TRIG:COUNT 10
:TRIG:DELAY 1; COUNT 10
Utilització de la coma(,)
Serveix per quan un comando necessita més d‟un paràmetre, aleshores es separa amb un
coma.
Utilització del comando “?”
El controlador de bus pot enviar comandaments en qualsevol moment, però un aparell
SCPI pot enviar respostes només quan se li han ordenat específicament fer-ho. Només els
comandaments de consulta (comandos que acaben en un “?” ordenaran a l‟aparell que
envií un missatge de resposta. Les consultes poden enviar o els valors mesurats o les
configuracions internes de l‟aparell.
Cal tenir precaució quan s‟envien dos comandaments de consulta sense llegir la resposta
del primer i a continuació s‟intenta llegir la segona resposta, ja que podem rebre algunes
dades de la primera resposta seguides de la segona resposta completa. Es pot evitar no
enviant un comando de consulta sense llegir la resposta; si no podem evitar aquesta
situació, enviem un comandament “eliminar dispositiu“ abans d‟enviar el següent
comandament de consulta.
No s‟hauria d‟enviar comandaments i consultes en la mateixa línea de programa. Això pot
fer que el buffer de dades de sortida sobrepassi si se generen massa dades.
2.2.4.3.1. Tipus de dades SCPI
El llenguatge SCPI defineix formats de dades per la utilització en els missatges de
programa i en els missatges de resposta. Els aparells són oients flexibles i poden acceptar
comandaments i paràmetres en diferents formats. En canvi, els aparells SCPI són parladors
concrets. Resumint, els aparells SCPI sempre respondran a una consulta en particular en un
format rígid predefinit. Existeixen quatre paràmetres que seguidament s‟explicaran:
Memòria de càlcul
Pàgina 57 de 111
Paràmetres Numèrics: els comandaments que necessiten paràmetres numèrics acceptaran
totes les representacions decimals utilitzades normalment dels números incloent punts
decimals i anotacions científiques. També es pot enviar sufixes numèrics com (M, k, m o
u) amb paràmetres numèrics. Si només accepten els valors numèrics, el multímetre
automàticament arrodonirà els paràmetres numèrics d‟entrada.
Paràmetres Discrets: els paràmetres discrets s‟utilitzen per programar les configuracions
que tenen un número limitat de valors (com BUS, IMMediate, EXTernal). Aquests tenen
una forma llarga i curta al igual que les paraules claus de comandament. Se poden mesclar
lletres majúscules i minúscules. Les respostes de consulta sempre retornaran la forma curta
en lletres majúscules.
Paràmetres Booleans: els paràmetres booleans representen una condició simple binaria
que és falsa o verdadera. Per una condició falsa el multímetre entendrà “OFF” o “0”. Per
una condició verdadera, el multímetre acceptarà “ON” o “1”. Quan consultem una
configuració booleana, l‟aparell sempre retornarà “0” o “1”.
Paràmetres de Cadena: els paràmetres de cadena poden contenir virtualment qualsevol
classe de caràcters ASCII. Una cadena ha de començar i acabar en cometes d‟unió; o bé
una cometa amb una cometa simple o amb cometa doble. Es pot incloure el delimitador de
cometes com la part de la cadena escrivint-la dos vegades sense ningun caràcter entre
mesures.
2.2.5. Selecció dels paràmetres
2.2.5.1. Selecció de l’ interfase remota
El multímetre pot tenir dos interfases: interfase GPIB (IEEE-488) i interfase RS-232. Sol
pot tenir habilitada una interfase a la vegada. La interfase GPIB és la que ve habilitada
quan el multímetre surt de fàbrica.
En aquest projecte s‟utilitzarà la interfase RS-232, aleshores s‟haurà de configurar la
velocitat en bauds i la paritat del multímetre.
La interfase remota només es pot configurar des del panel frontal, de la manera següent:
2: INTERFACE (I/O MENU)
2.2.5.2. Selecció de la velocitat en bauds
Es pot seleccionar una de les sis velocitats en bauds següents: 300, 600, 1200, 2400, 4800
o 9600 (ve configurada de fàbrica).
La selecció de la velocitat en bauds es guarda en la memòria permanent, i no canvia quan
es desconnecta de la corrent o després de una reinicialització de l‟ interfase remota.
La velocitat en bauds només es pot configurar des del panel frontal, de la manera següent:
3: BAUD RATE (I/O MENU)
2.2.5.3. Selecció de paritat
El multímetre està configurat per a paritat par en 7 bits de dades.
Memòria de càlcul
Pàgina 58 de 111
Es pot seleccionar un dels següents: None (8 bits de dades), Even (7 bits de dades) o Odd
(7 bits de dades). Quan es configura la paritat, se configura indirectament el nombre de bits
de dades.
La selecció de paritat es guarda en la memòria permanent, i no canvia quan es desconnecta
de la corrent o després de una reinicialització de la interfase remota.
La paritat només es pot configurar des del panel frontal, de la manera següent:
4: PARITY (I/O MENU)
2.2.5.4. Selecció del llenguatge de programació
Es pot seleccionar un dels tres llenguatges per programar des de l‟ interfase remota
seleccionada. El llenguatge de fàbrica és el SCPI.
Es pot selecciona un d‟aquests: SCPI, Agilent 3478A o Fluke 8840A.
Els llenguatges Agilent 3478A i Fluke 8840A no són possibles en la interfase RS-232.
La selecció del llenguatge es guarda en la memòria permanent, i no canvia quan es
desconnecta de la corrent o després de una reinicialització de l‟ interfase remota. El
llenguatge només es pot configurar des del panel frontal, de la manera següent:
5: LANGUAGE (I/O MENU)
A la Taula 2-27 es mostra en quins llenguatges es pot programar el multímetre segons el
protocol establert.
GPIB/488 RS-232
Llenguatge SCPI X X
Llenguatge Agilent
3478A
X No permès
Llenguatge Fluke 8840A X No permès
Taula 2-27. Tipus de llenguatges segons el protocol usat
2.2.6. Comandaments i paràmetres usats
Els comandaments MEASure? i CONFigure proporcionen el mètode més directe per la
programació de mesures del multímetre. Es pot seleccionar la funció, el rang i la resolució
mesurada en un mateix comandament. El multímetre automàticament reajusta altres
paràmetres de mesura (filtre de ca, zero automàtic, comptador de disparo, etc.) en valors
per defecte com es mostra a la Taula 2-28.
Filtro CA (DET:BAND) 20 Hz (filtro mitjà)
Zero Automàtic (ZERO:AUTO) ON si la config. de res. es NPLC≥1
OFF si la config. de res. es NPLC<1
Resistència d‟entrada
(INP:IMP:AUTO)
OFF (fixe en 10 MΩ per tots els rangs
de voltatge de cc)
Memòria de càlcul
Pàgina 59 de 111
Mostres per dispar (SAMP:COUN) 1 mostra
Contador de Dispar (TRIG:COUN) 1 disparo
Retard de Dispar (TRIG:DEL) Retard automàtic
Font de Dispar (TRIG:SOUR) Immediata
Funció Matemàtica (CALCULate) OFF
Taula 2-28. Paràmetres que reajusta el multímetre al usar el comandament MEASURE? i
CONFigure
2.2.6.1. Comandament MEASure?
L‟ utilització del comandament MEASURE ? és la forma més fàcil de programar el
multímetre per a que realitzi mesures. No obstant, aquest comandament no ofereix molta
flexibilitat. Una vegada s‟executa el comandament, el multímetre reajusta les millors
configuracions per la configuració sol·licitada i immediatament executa la mesura. No es
pot canviar cap configuració (que no sigui la funció, el rang i la resolució) abans de que es
realitzi la mesura. Els resultats s‟envien al buffer de sortida.
Enviar el comandament MEASure? és el mateix que enviar un comandament CONFigure
seguit immediatament per un comandament READ?.
A la Taula 2-29 es pot veure les diferents funcions en els diferents rangs i resolucions
possibles del comandament MEASure.
Taula 2-29. Opcions del comando MEASure
2.2.6.2. Comandament CONFigure
Utilitzant el comandament CONFigure es té un grau d‟augment de flexibilitat de
programació. Una vegada s‟executa el comandament, el multímetre preconfigura les
millors configuracions per la configuració sol·licitada (igual que el comandament
MEASure?). No obstant, la mesura no comença automàticament i es possible canviar els
paràmetres de mesura abans de realitzar la mesura. Això permet canviar molt més la
configuració del multímetre des de les condicions de reajustament. El multímetre ofereix
una varietat de comandaments de baix nivell als subsistemes INPut, SENse, CALCUulate i
TRIGger. (Es pot utilitzar el comandaments SENSe: FUNCtion per canviar la funció de
mesura sense utilitzar MEASure? o CONFigure.).
Utilitzarem el comandament INITiate o READ? per començar la mesura.
Memòria de càlcul
Pàgina 60 de 111
Memòria de càlcul
Pàgina 61 de 111
Memòria de càlcul
Pàgina 62 de 111
2.2.6.3. Comandament READ?
El comandament READ? canvia l‟estat del sistema de dispar des del estat “passiu” al estat
“en espera de dispar”. Les mesures comencen quan es compleixen les condicions de dispar
especificades seguint el que diu el comandament READ?. Les lectures s‟envien
immediatament al buffer de sortida. S‟ha d‟introduir les dades de lectura al controlador de
bus o el multímetre deixarà de fer mesures quan s‟ompli el buffer de sortida. Les lectures
no s‟emmagatzemen a la memòria interna del multímetre quan s‟utilitza el comandament
READ?.
L‟enviament del comandament READ? és el mateix que l‟enviament del comandament
INITiate seguit immediatament pel comandament FETCh?, excepte que les lectures no
s‟emmagatzemen internament.
Precaució: Si s‟envien dos comandaments de consulta sense llegir la resposta del primer, i
a continuació s‟intenta llegir la segona resposta, es possible que rebi alguns dades de al
primera resposta seguits per la segona resposta completa. Per evitar això, no enviarem un
comandament de consulta sense llegir la resposta. Quan no es pot evitar aquesta situació,
enviarem uns supressió de dispositiu abans d‟enviar el segon comandament de consulta.
2.2.6.4. Comandaments INITiate i FETCh?
Els comandaments INIiate i FETCh? proporcionen el nivell de control més baix (en la
major felixiblitat) de mesura de retirada de disparo i lectura. Utilitzem el comandament
INITiate després d‟haver configurat el multímetre per la mesura. Això canvia l‟estat del
sistema de dispar “passiu” a l‟estat “en espera de dispar”. Les mesures començaran quan es
cobreixen les condicions de dispar especificades després de rebre el comandament
INITiate. Les lectures es situen a la memòria interna del multímetre (poden
emmagatzemar-ne fins 512 lectures). Les lectures s‟emmagatzemen en memòria fins que
l‟usuari pugui retirar-les.
Utilitzem el comandament FETCh? per transferir les lectures des de la memòria interna del
multímetre al buffer de sortida del multímetre on es poden llegir al controlador de bus.
2.2.6.5. Comandaments de l’ interfase RS-232
L‟enviament o recepció de dades en l‟ interfase del RS-232 quan no està configurat per al
funcionament remot pot causar resultats imprescindibles.
SYSTem: LOCal
Totes les tecles del panel frontal són completament funcionals
SYSTem: REMote
Totes les tecles del panel frontal excepte la tecla LOCAL s‟inhabiliten.
SYSTem: RWLock
Totes les tecles del panel frontal s‟inhabiliten, incloent la tecla LOCAL.
Memòria de càlcul
Pàgina 63 de 111
2.2.6.6. Acabaments dels missatges d’entrada
Els missatges de programa que s‟envien al multímetre s‟han d‟acabar amb un caràcter
“newline”. També un caràcter “retorno de carro” seguit per un caràcter “newline” és
acceptat.
2.2.6.7. Formats dels missatges de sortida
Els missatges de sortida que sortiran del multímetre estaran en un dels formats que mostra
la Taula 2-26.
Taula 2-26. Formats dels missatges de sortida
2.2.6.8. Indicador error
Quan es detecta un o més errors de sintaxis de comandament o de hardware, es connecta
l‟indicador ERROR del panel frontal. El multímetre té una cua d‟error on s‟emmagatzema
un registre que conté com a màxim 20 errors.
Els errors s‟extrauen per ordre FIFO (el primer que entra, serà el primer que sortirà). Una
vegada s‟han llegit tots els errors de la cua, l‟indicador ERROR s‟apaga. El multímetre
emet un soroll cada vegada que s‟ha generat un error.
Si es produeix més de 20 errors, l‟últim error emmagatzemat a la cua (el més recent) és
substituït pel format d‟error -350 “Massa errors”. Fins que no s‟eliminen els errors de la
cua no podrem emmagatzemar nous errors.
Si no s‟ha produït errors i llegim la cua d‟error, el multímetre ens contestarà amb el codi
+0 “Sense errors”.
La cua d‟error s‟elimina quan desconnectem la corrent o després d‟executar un
comandament *CLS.
- Llegir la cola des del panel frontal: 3: ERROR (SYS MENU)
Veurem com l‟indicador ERROR està encès, aleshores polsem (cridem al
menú) i així llegim els errors emmagatzemats a la cua.
ERR 1: -141
- Llegir la cola des de la interfase remota: SYSTem: ERRor?
-
Memòria de càlcul
Pàgina 64 de 111
Els errors tenen el següent format (la cadena d‟error pot contenir fins a 80 caràcters):
-141, Invalid character data
Ara s‟enumeren els errors més comuns que han sorgit durant el projecte:
-101 Invalid Character
A la cadena de comandament s‟ha trobat un caràcter incorrecte. Pot ser que l‟usuari
hagi posat un caràcter com #, $, o % al començament del comandament o en un
paràmetre. Exemple: CONF: VOLT#DC
-102 Syntax Error
A la cadena de comandament s‟ha trobat sintaxis incorrecta. Pot ser que l‟usuari
hagi posat un espai en blanc abans o després de dos punts al començament del
comandament, o abans d‟una coma. Exemple: SAMP:COUN,1
-410 Query Interrupted
S‟ha rebut un comandament que envia dades al buffer de sortida, però aquest
contenia dades d‟un comandament previ (les dades prèvies no es sobreescriuen). El
buffer de sortida s‟elimina quan es desconnecta de la corrent o després d‟executar
un comandament *RST (reinicialitzar)
-511 RS-232 Framing Error
Memòria de càlcul
Pàgina 65 de 111
2.3. Hyperterminal
És un programa que permet connectar amb altres equips, llocs Telnet, etc.. mitjançant un
mòdem, un cable de mòdem nul o Ethernet.
Aquest útil programa s‟utilitzarà per guardar els resultats enviats pel microcontrolador.
El primer que s‟ha de fer és establir una connexió, per això es posa un nom i una icona, tal
com es mostra a la Figura 2-35.
Figura 2-35. Entrada del Hyperterminal
Seguidament ens apareixerà una finestra com la de la Figura 2-36, aquí configurarem el
port on estarà connectat el nostre connector RS-232. És important completar els paràmetres
d‟aquesta finestra amb els paràmetres que haurem programat al pic, si no fos així la
comunicació no serà perfecta i hi poden haver resultats imprevisibles.
Figura 2-36. Elecció de propietats
Memòria de càlcul
Pàgina 66 de 111
Tots els paràmetres que es veuen a la Figura 2-36 són coneguts a excepció del control de
flux:
El control de flux és un mecanisme pel qual el “mòdem”, el microcontrolador i el
ordenador gestionen els intercanvis d‟informació. Aquests mecanismes permeten parar el
flux quan un dels elements no pot processar més informació i reprendre el procés quan
torna a estar disponible. Els mètodes més comuns de control de flux són:
Control de flux hardware: les senyals RTS i CTS permeten al PC i al
microcontrolador parar el flux de dades de forma temporal. Aquest sistema
és el més segur y el que suporta una operació adequada a altes velocitats.
Control de flux software: XON/XOFF: per al control de flux software
s‟utilitzen dos caràcters especials XON i XOFF, en comptes de les línees
hardware RTS i CTS. Quan el PC vol que el microcontrolador pare
d‟enviar dades, envia XOFF. Quan el PC vol que el microcontrolador enviï
més dades, envia XON. Aquests sistema no és adequat per a altes
velocitats.
Per fer la comunicació entre el multímetre – PC no hi haurà cap tipus de control de flux.
Per guardar els resultats que arriben del multímetre al hyperterminal a una plantilla Excel,
el que s‟ha de fer és crear un arxiu .csv (Figura 2-37), abans de començar la transmissió
anirem a l‟opció Transferir del hyperterminal i seleccionarem la finestra Capturar texto,
allí crearem l‟arxiu .csv i donarem al botó Iniciar.
Una vegada s‟hagi acabat el procés de recepció dels resultats tancarem el hyperterminal
(important tancar-lo sino a la plantilla excel no s‟hauran copiat els resultats) i es podran
veure els resultats a la plantilla excel.
Figura 2-37. Afegir a l‟arxiu excel
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
PLÀNOLS
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 <RevCode>
Circuit Comunicació
A
1 1Tuesday, August 24, 2010
Title
Size Document Number Rev
Date: Sheet of
VCC(5V)
VCC(2,5V)
VCC(5V)
VCC(5V)
VCC(5V)
VCC(5V)
VCC(5V)
VCC(2,5V)
tantalum2
10u
R210k
Inversor TX
CON16C
12345678
16151413121110
9
C41u
U2LM109/TO3
1 2
3
IN OUT
GN
D
J5
CON6
123456
CEFC10u
C21u
R5
10k
osc1
15p
R7
470
MAX232'
CON16C
12345678
16151413121110
9
tantalum1
10u
R6470
C11u
C121u
R9
R
J12
CON1
1
C3 1uosc2
15p
J14
CON3
123
R310k
J11
CON1
1
OSCILADOR
J2
connector 20 pins
135791113151719
2468
101214161820
C101u
C51u
DB9'
CON9
123456789
J13
CON1
1
J10
CON1
1
C8 1u
Inversor RX
CON16C
12345678
16151413121110
9
C71u
DB9
CON9
123456789
C111u
C13 1u
MAX232''
CON16C
12345678
16151413121110
9
R410k
J3
PIC18F45J11
1234567891011121314
2827262524232221201918171615
MAX232
CON16C
12345678
16151413121110
9
J8
CON24C
123456789
101112
242322212019181716151413
C61u
C141u
C91u
C151u
PGCPGDMCLR
PGDPGC
MCLR
Plànols
Pàgina 69 de 111
3.1.2. Circuit layout
3.1.3. Fotogràfia
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
<Doc> <RevCode>
<Title>
A
1 1Thursday, July 29, 2010
Title
Size Document Number Rev
Date: Sheet of
VCC
VCC
VCC
VCC
VCC
J1
Entrada
135791113151719
2468
101214161820
J4
CON1
1
J5
CON2
1
J7
CON4
1
J6
CON3
1
D3
1 2
J22
rele2
12345
J11
Salida
135791113151719
2468
101214161820
Q22N4341
2
3
1
J24
rele4
12345
D1
1 2
D2
1 2
Q42N4341
2
3
1
D4
1 2
Q12N4341
2
3
1
J23
rele3
12345
J3
REGLETA
12
J21
rele1
12345
Q32N4341
2
3
1
Plànols
Pàgina 71 de 111
3.2.3. Fotografia
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
PRESSUPOST
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
Pressupost
Pàgina 73 de 111
4.1. Introducció
En aquest apartat es pretén determinar el cost total requerit per a implementar la placa del
circuit.
S‟ha dividit el cost en diferents capítols per poder veure el cost d‟una manera més clara i
ordenada. Els diferents capítols són:
- Capítol 1: Software. Programes utilitzats durant la creació i desenvolupament del
circuit
- Capítol 2: Components. Preus dels components que formen part del circuit
- Capítol 3. Mà d‟obra. Quantitat de temps dedicat a fer el projecte
4.2. Llista de preus unitaris
4.2.1. Capítol 1: Software
CODI U DESCRIPCIÓ PREU
C01_01 u MPLAB ICD2 CENT- SETZE EUROS amb
SETANTA-VUIT CÈTIMS
C01_02 u MPLAB IDE v8.4 ZERO EUROS
C01_03 u MPLAB C18 C Compiler
v3.34 ZERO EUROS
C01_04 u OrCAD Release 9.1 ZERO EUROS
C01_05 u Proteus 7 Professional ZERO EUROS
C01_06 u Agilent IO Libraries Suite 15.3 ZERO EUROS
4.2.2. Capítol 2: Components
CODI U DESCRIPCIÓ PREU
C02_01 u Resistència de 10 kΩ VINT CÈNTIMS
C02_02 u Resistència de 1 kΩ VINT CÈNTIMS
C02_03 u Resistència de 470Ω VINT CÈNTIMS
C02_04 u Condensador de 1 uF TRENTA-CINC CÈNTIMS
C02_05 u Condensador de 15 pF ceràmic ONCE CÈNTIMS
C02_06 u Condensador de 10 uF normal SETANTA-NOU CÈNTIMS
C02_07 u Condensador de 10 uF
tantalum NORANTA CÈNTIMS
Pressupost
Pàgina 74 de 111
C02_08 u Díode 1N4001 QUARANTA-VUIT CÈNTIMS
C02_09 u Transistor NMOS TRENTA-CINC CÈNTIMS
C02_10 u Regulador LM1086 UN EURO amb TRES CÈNTIMS
C02_11 u Oscil·lador de 20 MHz DOS EUROS amb QUARANTA-
NOU CÈNTIMS
C02_12 u Relé electromecànic UN EURO amb SEIXANTA
CÈNTIMS
C02_13 u Microcontrolador PIC
18F25J11
DOS EUROS amb
CINQUANTA-CINC CÈNTIMS
C02_14 u MAX 232 DOS EUROS amb TRENTA-SIS
CÈNTIMS
C02_15 u Inversor 4049 CINQUANTA-CINC CÈNTIMS
C02_16 u Connector DB9 mascle QUARANTA-TRES CÈNTIMS
C02_17 u Connector RJ-11 SETANTA CÈNTIMS
C02_18 u Descodificador CD4514BC VUITANTA-NOU CÈNTIMS
C02_19 u Connector 20 pins TRENTA-CINC CÈNTIMS
C02_20 u Connector 20 pins recolzat QUARANTA-SIS CÈNTIMS
C02_21 u Sòcol tornejat 16 pins DOTZE CÈNTIMS
C02_22 u Sòcol tornejat 28 pins estret SETZE CÈNTIMS
C02_23 u Sòcol tornejat 28 pins ample DIVUIT CÈNTIMS
C02_24 u Regleta TRENTA- I- UN CÈNTIMS
C02_25 u Placa PCB SIS EUROS
4.2.3. Capítol 3: Mà d’obra
CODI U DESCRIPCIÓ PREU
C03_01 h Enginyer programador DIVUIT EUROS
C03_02 h Tècnic de muntatge NOU EUROS
Pressupost
Pàgina 75 de 111
4.3. Quadre de descompostos
4.3.1. Capítol 1: Software
CODI DESCRIPCIÓ Uts. PREU IMPORT
C01_01 MPLAB ICD2
In circuit debugger. 1 116,78 116,78
C01_02 MPLAB IDE v8.4
Entorn de programació per a dispositius PIC 1 0 0
C01_03 MPLAB C18 C Compiler v3.34
Compilador de C18 1 0 0
C01_04 OrCAD Release 9.1
Disseny de layouts per a PCBs 1 0 0
C01_05 Proteus 7 Professional
Simulador de circuits electrònics 1 0 0
C01_06
Agilent IO Libraries Suite 15.3
Analitzador del port sèrie i connexions amb el
multímetre
1 0 0
TOTAL: 116,78
Puja un total de CENT- SETZE EUROS amb SETANTA-VUIT CÈNTIMS
4.3.2. Capítol 2: Components
CODI DESCRIPCIÓ Uts. PREU IMPORT
C02_01 Resistència de 10 kΩ
Tolerància +/- 20%. 0,5 W 1 0,20 0,20
C02_02 Resistència de 1 kΩ
Tolerància +/- 20%. 0,5 W 4 0,20 0,80
C02_03 Resistència de 470 Ω
Tolerància +/- 20%. 0,5 W 2 0,20 0,40
C02_04 Condensador de 1 uF para PCB
Tolerància +/- 10%. 100 V 15 0,35 5,25
C02_05 Condensador de 15 pF ceràmic 2 0,11 0,22
Pressupost
Pàgina 76 de 111
Tolerància +/- 5%. 50 V
C02_06 Condensador de 10 uF normal
Tolerància +/-20%. 50 V 1 0,79 0,79
C02_07 Condensador de 10 uF de tantali
Tolerància +/-10%. 50 V 2 0,90 1,80
C02_08 Díode 1N4001
Rectificador de silici de 1 A. 50 V 4 0,48 1,92
C02_09
Transistor NMOS 2N3819
Corrent màx de 320 mA. Resistència de 4 Ω.
Màx. Potència de 0,7 W
4 0,35 1,40
C02_10
Regulador LM1086
Regulador lineal de tensió. Iout màx de 1,5 A
Regulació de línea de 0,015%
1 1,03 1,03
C02_11
Oscil·lador de 20 MHz
Capacitat de carga de 30 pF. Estabilitat de
freqüència de 50 ppm
1 1,60 1,60
C02_12
Relé electromecànic para PCB
Tensió bobina de 5V. Resistència bobina 112 Ω
4 1,60 6,40
C02_13
Microcontrolador PIC 18F25J11
Microcontrolador amb arquitectura Harvard de
8 bits, 28 pins, 32 kBytes de memòria de
programa, 1-UART amb PPS 2 UART.
1 2,55 2,55
C02_14 Tranceiver MAX 232
Driver de línea RS232. 2-T/2-R 3 2,36 7,08
C02_15
Inversor CD4049UBE
Rang de subministrament de tensió de 3 V a 18
V. Família lògica IC de 4000 CMOS.
2 0,55 1,10
C02_16
Connector DB9 mascle
Connector DB9 mascle para PCB 2 2,36 4,72
C02_17 Connector RJ-11
Connector RJ para placa PCB 1 0,95 0,95
Pressupost
Pàgina 77 de 111
C02_18
Descodificador CD4514BC
Tensió d‟alimentació de funcionament de 3,3V.
Elements d‟entrada 4 i elements de sortida 16
1 0,89 0,89
C02_19
Connector de 20 pins normal
Connector mascle para cable pla 20 pins 1 0,35 0,35
C02_20
Connector de 20 pins recolzat
Connector mascle recolzat para cable pla 20
pins
2 0,46 0,92
C02_21
Sòcol tornejat 16 pins
Sòcol DIP16 vies de forat passant. Espaiat 2,54
mm. 2 files. Espai entre files 7,62 mm
5 0,12 0,60
C02_22
Sòcol tornejat 28 pins estret
Sòcol DIP28 vies de forat passant. Espaiat 2,54
mm. 2 files. Espai entre files 7,62 mm
1 0,16 0,16
C02_23
Sòcol tornejat 28 pins ample
Sòcol DIP28 vies de forat passant. Espaiat 2,54
mm. 2 files. Espai entre files 15,24 mm
1 0,18 0,18
C02_24 Regleta
Regleta de connexió 2 pin PCB 2 0,31 0,62
C02_25 Placa PCB
2 6,00 12,00
TOTAL: 53,93
Puja a CINQUANTA-TRES EUROS amb NORANTA-TRES CÈNTIMS
4.3.3. Capítol 3: Mà d’obra
CODI DESCRIPCIÓ Uts. PREU IMPORT
C03_01 Enginyer programador 330 18,00 5940
C03_02 Tècnic de muntatge 25 9,00 225
TOTAL: 5745
Puja a CINC MIL SET-CENTS QUARANTA-CINC EUROS
Pressupost
Pàgina 78 de 111
4.4. Resum del Pressupost
CAPÍTOL C01: SOFTWARE 116,78
CAPÍTOL C02: COMPONENTS 53,93
CAPÍTOL C03: MÀ D‟OBRA 5745
PRESSUPOST D’EXECUCIÓ MATERIAL 5915,71
Despeses generals 10% 591,57
PRESSUPOST D’EXECUCIÓ PER CONTRACTE 6507,28
IVA 18% 1171,31
PRESSUPOST DE LICITACIÓ 7678,59
TOTAL PRESSUPOST GENERAL 7678,59
El pressupost total puja a una quantitat de SET MIL SIS CENTS SETANTA-VUIT
EUROS amb CINQUANTA-NOU CÈNTIMS.
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
PLEC DE CONDICIONS
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
Plec de condicions
Pàgina 80 de 111
5.1. Reunits
El Dr. EDUARD LLOBET VALERO, professor titulat universitari, del Departament
d‟Enginyeria Electrònica , Elèctrica i Automàtica (DEEEA) de la Universitat Rovira i
Virgili (URV), amb domicili fiscal situat a l‟Avinguda dels Països Catalans, 26, de 43007
Tarragona.
i
El Sr. MARC LLUCH PORRES, enginyer tècnic industrial, amb domicili fiscal situat al
Carrer Berenguer IV, 22, de 43500 Tortosa.
5.2. Exposen
5.2.1. Primer
Que l‟enginyer tècnic industrial Marc Lluch Porres té experiència demostrada en l‟àrea
d‟electrònica digital i analògica, Disseny de Sistemes basats amb microcontroladors i en
informàtica industrial. Per aquesta motiu el DEEEA està interessat a contractar els seus
serveis.
5.2.2. Segon
Que la URV com a institució sense ànim de lucre, i que té com a finalitats principals, entre
d‟altres, les de formació i docència, les d‟investigació i recerca i, a la vegada, les d‟afavorir
i recolzar els convenis de col·laboració amb Marc Lluch Porres en les tasques de recerca i
suport a la docència.
5.3. Clàusules
5.3.1. Primera.- Objectius
El DEEA i Marc Lluch Porres col·laboren en activitats científiques d‟investigació i
desenvolupament tecnològic desenvolupades per aquest departament o amb d‟altres unitats
de recerca amb la condició de tercers en relació al present acord.
5.3.2. Segona.- Objecte de l’acord
L‟objecte d‟aquest contracte és que el Sr Marc Lluch Porres realitzi el projecte titulat
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació
RS232. per al Departament d‟Enginyeria Electrònica, Elèctrica i Automàtica de la
Universitat Rovira i Virgili i a sol·licitud seva.
5.3.3. Tercera.- Condicions d’acceptació del treball
El Sr. Marc Lluch Porres accepta realitzar el treball sol·licitat, d‟acord amb el programa de
treball establert en aquest projecte.
5.3.4. Quarta.- Extensió de la col·laboració
La col·laboració s‟entén en el sentit més ampli, tanmateix es veuen com a programes que
necessàriament s‟hauran de desenvolupar, els següents:
Execució de programes de recerca i desenvolupament.
Plec de condicions
Pàgina 81 de 111
Conveni per la utilització d‟equipament i de suport en la realització i certificació
d‟assajos.
Per cada programa dels esmentats es definiran les línees mestres a seguir pel que fa a
descripció detallada dels tipus d‟accions, sistemàtica a seguir, impresos a complimentar,
especialitats tècniques disponibles o qualsevol altre tipus d‟informació de caire general i de
procediment que faciliti la formalització dels futurs acords específics de col·laboració.
5.3.5. Cinquena.- Contingut dels programes específics
Cada projecte realitzat a l‟empara d‟aquest acord serà objecte d‟un contracte específic, el
qual haurà d‟incloure, entre d‟altres, els següents aspectes:
- Definició d‟objectius específics.
- Descripció del projecte i les diferents tasques a realitzar.
- Planificació de mitjans materials i humans necessaris, i cronograma corresponent.
- Pressupost i el seu pla de finançament
- Determinació de l‟aplicabilitat directa del present acord en tot el que estigui
determinat de forma específica al contracte del projecte.
- Designació de responsables directes del projecte per ambdues parts.
5.3.6. Sisena.- Coordinadors / Responsables
El DEEEA designa el Dr. Eduard Llobet Valero com a coordinador de l‟acord signat amb
Marc Lluch Porres.
Per l‟altra part, el coordinador que figurarà és Marc Lluch Porres. Aquest es podrà
actualitzar durant la vigència de l‟acord segons convingui, comunicant-ho per escrit a
l‟altra part. La persona designada serà l‟interlocutor i coordinador del programa de
col·laboració e la persona a la que serà adreçada tota consulta, correspondència o
comunicació general.
5.3.7. Setena.- Emissió d’informes
El responsable del projecte informarà regularment al DEEEA sobre la marxa dels treballs
que segons la memòria li correspongui desenvolupar. Aquestes persones seran
responsables de regir i impulsar les diferents tasques assignades a cada part. A la vegada
seran les responsables d‟emetre l‟informe final de tancament del projecte amb les
conclusions a que ha conduit el treball.
5.3.8. Vuitena.- Durada
La durada del present acord és de 31 setmanes, comptades a partir de la data de signatura
d‟aquest acord. En qualsevol cas, ambdues parts contemplen la possibilitat de fer unes
sessions de seguiment per tal de revisar els resultats de les diverses activitats de
col·laboració, proposar-ne de noves, i definir possibles accions de millora.
5.3.9. Novena.- Principis d’actuació
El DEEEA i el Sr. Marc Lluch Porres col·laboraran en tot moment sota els principis de
bona fe i eficàcia per assolir amb el millor èxit els projectes que es subscriguin.
5.3.10. Desena.- Resolució de conflictes
Després d‟esgotar la via de l‟acord privat i donada la impossibilitat manifesta d‟arribar a
un pacte acceptable per les parts davant d‟un hipotètic conflicte, ambdues parts acorden
Plec de condicions
Pàgina 82 de 111
que per a la resolució de qualsevol qüestió litigiosa que es plantegi a l‟empara del present
acord o dels contractes específics que se subscriguin en el futur, les parts se sotmetran a
l‟arbitratge institucional del Tribunal Arbitral de Barcelona de l‟Associació Catalana per a
l‟Arbitratge, encarregant-li designació d‟àrbitres i administració de l‟arbitratge d‟acord
amb el seu reglament, i sent d‟obligat compliment la seva decisió arbitral. S‟exceptuen
d‟aquesta submissió aquelles qüestions que no siguin de lliure disposició.
Abans d‟emprendre cap acció contra el DEEEA i/o la URV s‟haurà d0haver formulat la
reclamació administrativa prèvia tal com ho estableixen els articles 120 i següents de la
Llei de Procediment Administratiu.
I en prova de conformitat, ambdues parts signen el present pacte, a la ciutat i en la data
esmentada.
Pel DEPARTAMENT d‟ENGINYERIA L‟ENGINYER TÈCNIC INDUSTRIAL
ELECTRÒNICA, ELECTRICA I
AUTOMÀTICA
Dr. Eduard Llobet Valero Sr. Marc Lluch Porres
Tarragona, 9 de setembre del 2010
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
CONCLUSIONS
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
Tots els objectius preestablerts a l’inici del projecte s’han realitzat correctament.
S’ha aconseguit que el microcontrolador PIC 18F45J11 pugui comunicar-se via RS232 amb el multímetre Agilent 34401-A d’una manera eficaç.
S’ha realitzat correctament la comunicació del microntrolador amb un ordenador.
També s’ha aconseguit una multiplexació dels canals del multímetre amb la següent mesura dels sensors correctament. Com si es tractés d’un multímetre multicanal però amb baix cost.
A nivell d’aprenentatge s’ha millorat molt l’ús de programes com el Orcad, s’ha introduït eficientment a programes que mai s’havien utilitzat com són: el MPLAB IDE v8.40, simulador Proteus v7 i IO Libraries d’Agilent.
A nivell acàdemic s’ha millorat la programació amb c.
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
BIBLIOGRAFIA
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
S’han consultat els següents llibres:
GARCIA, E. Compilador C CCS y simulador Proteus para microcontroladores PIC.
Barcelona.2000. ISBN 9788426714954
ANGULO, J.Mª [et al]. Microcontroladores avanzados dsPIC: Controladores de Señales, Arquitectura, programación y aplicaciones.2006. Madrid: Thomson. ISBN 84-9732-385-8.
GIRONA, J. Instrumentación virtual: adquisición, procesado y análisi de señales.2001. Ediciones UPC. ISBN 84-6301-473-4
S’han consultat les següents pàgines web:
Microchip Tecnology Inc (2008). Microchip Tecnology Inc Is a Leading Provider of Microcontroller and Analog Semiconductors [en línea][consultat: 4 de juny del 2010]. Disponible a: http://www.microchip.comhttp://www.microchip.com
Premier Farnell plc. (2008) Farnell [en linea][consultat: 28 d’agost del 2010]. Disponible a: http://es.farnell.comhttp://es.farnell.com
Premier Farnell plc. (2008) Farnell [en linea][consultat: 28 d’agost del 2010]. Disponible a: http://es.farnell.comhttp://es.farnell.com
Amidata S.A. (2008) RS online [en linea][consultat: 28 d’agost del 2010]. Disponible a: http://rs-online.comhttp://rs-online.com
Agilent Technoligies (2008) Agilent Technologies [en linea][consultat: 25 d’abril del 2010]. Disponible a: http://home.agilent.comhttp://home.agilent.com
Ayscom [en linea][consultat:15 de maig del 2010]. Disponble a: http://www.ayscom.com
Sistema de mesura mitjançant un multímetre i multiplexació de canals amb comunicació RS232
ANNEXES
TITULACIÓ: Enginyeria Tècnica Electrònica en Electrònica Industrial
AUTORS:Marc Lluch Porres.
DIRECTORS:Raul Calavia Boldu Eduard Llobet Valero.
DATA: Setembre del 2010
Annexes
Pàgina 85 de 111
8.1. Programació amb MPLAB IDE v8.4
8.1.1. Creació d’un projecte
Des del MPLAB IDE v8.4 és possible obrir un fitxer font (*asm) on s‟escriu el programa
en codi ensamblador o en c i després ensamblar-lo per obtenir el codi executable o binari
(*hex). També és possible l‟ús de projectes que utilitzen varis fitxers fonts, permetin així
reutilitzar el codi en més facilitat, al ser més modular.
Una vegada s‟obri el MPLAB IDE per crear un projecte hem de dirgir-nos al menú Project
i seleccionar l‟opció New. Apareix la finestra que mostra la Figura 8-1.
Figura 8-1. Il·lustració de la finestra New Project
Al camp Project Name s‟escriu el nom del projecte, i seguidament al camp Project
Directory s‟assigna la carpeta on es guardarà aquest.
Una de les primeres feines que s‟ha de realitzar és seleccionar el model del PIC en el que
es treballarà (en aquest cas serà el PIC18F45J11). Al menú principal es selecciona
Configure i després Select Device. Apareixerà una finestra com la de la Figura 8-2.
Figura 8-2. Il·lustració de la finestra de selecció del dispositiu
Annexes
Pàgina 86 de 111
Es pot veure un conjunt d‟eines tant hardware com software que el MPLAB és capaç de
soportar amb el model de PIC seleccionat. Les senyals verdes indiquen que l‟eina està
disponible, les vermelles que no són disponibles en el MPLAB per al dispositiu
seleccionat.
A continuació es selecciona el compilador que s‟usarà, en el cas d‟aquest projecte
correspon al compilador MPLAB C18. Aquesta selecció es realitza al menú Project i a
l‟opció Select Language Toolsuite, tal i com s‟indica a la Figura 8-3.
A continuació és configura els subdirectoris de treball,en el menú Project, seleccionant
l‟opció Build options i l‟opció Project. Es selecciona la ubicació de fitxers de declaracions
(Figura 8-4), de biblioteques (Figura 8-5) i de script d‟enllaç (Figura 8-6).
Figura 8-4. Il·lustració de la finestra de declaracions de fitxers
Figura 8-3. Il·lustració de la finestra de selecció del llenguatge de
programació
Annexes
Pàgina 87 de 111
Seguidament es crea l‟arxiu de text on s‟escriurà el programa que s‟haurà d‟executar, dins
de l‟opció File es selecciona New. Apareixerà una finestra tal com mostra la Figura 8-7
amb la paraula Untitled (indicant que no té nom).
Figura 8-5. Il·lustració de la finestra
d‟Script d‟enllaç
Figura 8-6. Il·lustració de la finestra
d‟ubicació de la biblioteca
Annexes
Pàgina 88 de 111
Figura 8-7. Il·lustració de la finestra Untitled
És recomanable guardar l‟arxiu del codi al projecte abans d‟escriure cap instrucció: dins
del menú File es selecciona l‟opció Save As, apareixerà una finestra com la de la Figura 8-
8. Es guardarà l‟arxiu en * .c i s‟afegirà al projecte creat anteriorment.
Figura 8-8. Il·lustració de la finestra on es guarda el projecte
Finalment ens dirigim al menú View i s‟activa l‟opció Project, aleshores apareixerà una
finestra com la de la Figura 8-9. Ara s‟ha de clicar al damunt de Source Files amb el botó
dret i afegir l‟arxiu en c.
En la versió v8.4 és necessari també agregar al projecte l‟arxiu (PIC18F utilitzat).lkr ( per
evitar un error de compilació).
Annexes
Pàgina 89 de 111
Figura 8-9. Il·lustració de la finestra PIC.mcw
8.2. Entorn de simulació
8.2.1. MPLAB SIM
Com ja s‟ha comentat anteriorment aquest simulador és simple, fàcil d‟usar i és simula al
mateix MPLAB IDE v8.40.
Per començar a simular hem de tenir el codi compilat i sense errors.
Una vegada compilat, dins de l‟apartat menú Debugger a l‟opció Select Tool i seleccionar
MPLAB SIM; seguidament apareixerà una pestanya com la de la Figura 8-10.
Figura 8-10. Barra de simulació del MPLAB SIM
A continuació explicaré els elements de la barra de simulació:
Run (F9): quan s‟activa aquesta opció el programa s‟executa a gran velocitat en “mode
temps real”. L‟execució comença en la direcció actual del comptador de programa (PC),
que es mostra en la barra d‟estat i en la finestra Program Memory. Mentre el programa està
en execució, Step i Run estan inhabilitats, i es paren si s‟activa Halt o si troba un
Breakpoint.
Animate: aquesta opció és semblant a l‟anterior, però en aquest cas el programa s‟executa
de manera automàtica des de la direcció que indiqui el PC en l‟instant en que s‟activi.
Equival a polsar contínuament Step into. S‟atura amb el Halt.
Halt (F5): Para l‟execució del programa, el comptador de programa es para i s‟actualitza la
informació.
Run
Animate
Halt Step Into
Step Out
Step Over
Reset
Halt
Annexes
Pàgina 90 de 111
Step Into (F7): aquesta acció executa la instrucció on la seva direcció de memòria
coincideix amb el valor que apunta el PC abans d‟activar-la. Si algun registre es modifica
es ressalta en color vermell. Amb aquesta acció, es pot comprovar pas a pas com s‟executa
el programa(comprovar si hi han errors) i veure on està l‟error per depurar-lo. També és
especialment interessant quan es comença a estudiar l‟ensamblador i es vol comprovar el
repertori d‟instruccions del mateix. En definitiva, executa la instrucció actual i s‟atura
actualitzant la informació.
Step Over (F8): executa l‟ instrucció actual i es para, actualitzant la informació.
Aparentment funciona com el Step Into però si la instrucció a executar es CALL, executa la
subrutina cridada i es para a l‟ instrucció següent a la cridada.
Step Out: si el lloc actual està dins d‟una subrutina, l‟acaba i retorna al programa
principal.
Reset: inicialitza el sistema. El comptador de programa (PC) es posa a 0.
Es pot seleccionar l‟opció Program Memory (es pot veure les posicions de memòria de
cada una de les instruccions), el codi d‟operació de cada instrucció i la posició de memòria
que se li ha donat a cada etiqueta. Es pot utilitzar per seguir pas a pas l‟execució del
programa. A la Figura 8-11 es mostra la finestra del Programa Memory.
Figura 8-11. Finestra de la Memòria de Programa
Si es selecciona en cadascuna de les tres opcions de la part inferior d‟aquesta finestra
(Figura 8-11)es podrà seleccionar tres formes de veure la memòria de programa:
- Opcode Hex: representa la memòria de programa amb les dades en hexadecimal.
Aquesta opció és útil al usar el programador del dispositiu i comprovar si s‟han
gravat bé les dades.
- Machine: aquesta opció representa el codi màquina ensamblat en la informació de
les etiquetes i direccions de memòria que té assignades.
- Symbolic: desplega el codi hexadecimal desensamblat amb els símbols (etiquetes)
utilitzades al programa.
També existeix l‟opció Watch que permet supervisar els continguts dels registres. Per
agregar els registres a visualitzar, es pot fer directament escrivint mitjançant els botons Add
SFR o Add symbol i les finestres desplegables corresponents. A la Figura 8-12 es mostra
com s‟ha introduït el valor del registre TRISB per supervisar-lo, després d‟emular el
programa apareix el valor 0x01.
Annexes
Pàgina 91 de 111
Figura 8-12. Opció Watch
8.3. Proteus 7
8.3.1. Creació de l’esquema del circuit
ISIS de Proteus és un potent programa de disseny electrònic que permet realitzar esquemes
que poden ser simulats en l‟entorn VSM o passat en un circuit imprès en l‟entorn ARES.
Conté una gran col·lecció de llibreries de models tant per dibuixar com per simular. Permet
la creació de nous components, inclús, la possibilitat de sol·licitar al fabricant (Labcenter
Electronics) que creí un nou model.
No s‟entrarà profundament a explicar com funciona aquest programa, però s‟explicarà les
bases per dibuixar qualsevol circuit electrònic. A la Figura 8-13 es mostra l‟àrea de treball.
Figura 8-13. Àrea de treball del ISIS
A la columna de l‟esquerra si es polsa sobre el botó P ens situa a la finestra dels
components. Apareixerà una finestra com la de la Figura 8-14, es mostren tres columnes
en diferents possibilitats.
Annexes
Pàgina 92 de 111
Figura 8-14. Selecció del components
A la columna de l‟esquerra hi ha un apartat on es pot introduir el codi del dispositiu
desitjat. Baix d‟aquest, es troba una àrea anomenada Category on s‟observen els noms de
les categories dels dispositius. Baix d‟aquest, es troben les Sub-category en més definició
per categories i més a baix es mostren els diferents fabricants.
A la columna central es mostra una llista d‟elements i la seva descripció, al seleccionar el
que es necessita es mostrarà la seva representació esquemàtica a la columna de la dreta.
Un cop ja s‟ha definit com agafar els components, ja es pot realitzar qualsevol circuit
electrònic. No s‟entrarà en detall en funcions com les d‟unió de punts entre els
components, com s‟esborren i es copien els components. Ja que són opcions molt intuïtives
i es pretén fer una breu explicació d‟aquest apartat.
Ara es parlarà com activar el microcontrolador per obtenir una bona simulació. Per
realitzar-ho correctament s‟ha de modificar les seves característiques. Es fa “clicant” amb
el botó dret del ratolí fins a l‟opció Edit Properties. Apareixerà una finestra com la de la
Figura 8-15.
Annexes
Pàgina 93 de 111
Figura 8-15. Opció d‟editar el PIC
El més important és que permet carregar al microcontrolador l‟arxiu de programa (*.HEX
o *.COF) generat en la compilació; també es pot modificar la freqüència del rellotge,
canviar la paraula de configuració i altres opcions avançades.
8.3.2. Depuració i simulació del circuit
La característica més important del PROTEUS VSM és la capacitat de depurar programes
fonts en diferents llenguatges de programació. A més d‟acceptar l‟arxiu de programació
Intel Hex(HEX), també admet fitxers com el Byte-Craft COD (COD), el Microchip
Compatible (COF), etc. A l‟utilitzar aquests arxius es pot obrir una finestra de codi font
anomenada SOURCE CODE mitjançant pel qual es pot seguir el programa font línea a
línea de codi. A més permet visualitzar elements interns del PIC com són la memòria de
programa, la memòria RAM o la EEPROM, els registres especials (FSR) i la pila.
En el cas del compilador C18, després de compilar se generen arxius *.HEX i *.COF, dels
quals es poden utilitzar en l‟entorn PROTEUS VSM. Per executar el programa des de ISIS
s‟ha d‟entrar a l‟opció Edit Properties del microcontrolador (tal com mostra la Figura 6-
15) i en l‟opció PROGRAM FILE s‟indica el fitxer del codi font utilitzat.
A més, es pot indicar la freqüència de treball en l‟opció PROCESSOR CLOCK
FREQUENCY i en l‟opció ADVANCED PROPERTIES es pot configurar elements com el
watchdog o accessos no correctes a memòria entre d‟altres.
Una vegada s‟ha carregat el codi font al microcontrolador es pot començar amb la
simulació usant la barra de la Figura 8-16.
Annexes
Pàgina 94 de 111
Figura 8-16. Barra de simulació del PROTEUS VSM
Aquesta barra se composa per l‟opció MARXA, PAS a PAS, PAUSA i PARADA
La simulació no és en temps real i dependrà de la carga de treball del PC. A la barra d‟estat
s‟indica la carga de la CPU (en més carga menys real serà la simulació) i el temps
d‟execució. Això implica, per exemple, que un temps de 1 s al circuit pot significar varis
minuts de simulació. Es pot veure a la Figura 8-17.
Figura 8-17. Barra d‟estat
A continuació s‟explicaran els elements de la barra de simulació:
L‟opció PARADA para totalment la simulació mentre que PAUSE la para de forma
momentània permetent usar les eines de depuració.
L‟opció PAS a PAS permet treballar en trams de temps predefinits, i a més permet utilitzar
les eines de depuració. Aquesta opció està lligada a la configuració de l‟animació tal com
es mostra a la Figura 8-18. Es va al menú SYSTEM i a l‟opció SET ANIMATION
OPTIONS.
Figura 8-18. Configuració de l‟animació
Dins d‟aquesta opció es pot canviar els següents paràmetres:
Frames per Second: nombre de vegades que la pantalla ISIS es refresca en un segon (per
defecte 20).
Timestep per Frame: indica el temps de simulació per cada un dels frames; l‟ideal es que
sigui el valor invers del escollit en l‟opció Frames per Second.
MARXA
PAS a PAS
PAUSA
PARADA
Annexes
Pàgina 95 de 111
Single StepTime: es defineix el increment de temps que es desitja que passi cada vegada
que és polsa aquesta tecla.
Animation Options: permet habilitar la visualització de les sondes de tensió i corrent,
mostrar els nivells lògics als pins, mostrar el nivell de tensió als cables mitjançant colors o
mostrar la direcció de les corrents als cables.
Voltage/Current Ranges: permet determinar la tensió llindar i corrent per utilitzar en la
visualització de les corresponents Animation Options.
Al circuit que es mostra en la Figura 8-19 podem veure l‟activació d‟algunes d‟aquestes
opcions.
Figura 8-19. Circuit exemple
També des del menú DEBUG es pot iniciar la simulació. En l‟opció Start/Restart
Debugging es pot iniciar la simulació però fent una pausa per veure les diferents finestres
de depuració. També es pot executar el programa directament en l‟opció Execute, executar
el programa sense punts de ruptura en l‟opció Execute Without Breakpoints o executar-lo
en un temps concret en l‟opció Execute for Specefied Time. Aquestes opcions es poden
veure a la Figura 8-20.
Annexes
Pàgina 96 de 111
Figura 8-20. Menú Debug
Des d‟aquesta mateixa finestra (Figura 8-20) també es pot veure la memòria Eeprom del
microcontrolador mitjançant l‟opció Reset Persistent Model Data. Aleshores ens apareix
les diferents eines de depuració com podem veure a la Figura 8-21.
Figura 8-21. Il·lustració de les eines de depuració
A continuació s‟expliquen breument algunes opcions vistes a la Figura 8-21.
Simulation Log: missatges resultants de la simulació.
Watch Window: finestra de visualització de posicions de memòria. Permet afegir el que el
usuari vol veure.
Annexes
Pàgina 97 de 111
Virtual Terminal: finestra de visualització del contingut del Virtual Terminal.
PIC18 CPU: es pot visualitzar els registres, la memòria de dades, la memòria de
programa, la memòria EEPROM...
Tal com indica la Figura 8-22. , hi ha una finestra de diagnòstic que facilita la depuració,
emmagatzemant els errors, missatges de diagnòstics i avisos produïts durant el procés de
simulació. En la barra d‟estat (zona inferior del àrea de treball) es mostra un avís tal com es
veu a la Figura 8-23; polsant sobre l‟avís apareix la finestra de diagnòstic.
Figura 8-22. Finestra de diagnòstic
Figura 8-23. Finestra d‟avís
Es pot configurar les opcions d‟aquesta eina des de l‟opció del menú DEBUG anant a
l‟opció Configure Diagnostics i apareixerà una finestra tal com mostra la Figura 8-24.
Figura 8-24. Opció de configuració de diagnòstics
Annexes
Pàgina 98 de 111
A la finestra (Figura 8-24) es mostren els components de l‟esquema d‟un diagnòstic en la
simulació, les diferents possibilitats de diagnòstic i el temps de diagnòstic .
El llistat de nodes i patilles es pot trobar en l‟ajuda de l‟opció Design Explorer. A la seva
finestra es mostren tots els nodes i patilles que formen el circuit. Es pot veure a la Figura
8-25.
Figura 8-25. Vista dels nodes i patilles del circuit
8.4. Imatges del programa Agilent IO Libraries Suite 15.3
Seguidament es mostren certes imatges que il·lustren com funciona aquest programa tan
interessant d‟Agilent.
Principalment serveix per verificar la correcta connexió del multímetre amb el PC. Com es
pot veure a la Figura 8-26 tenim una correcta connexió del COM 2 del PC amb el
multímetre.
Annexes
Pàgina 99 de 111
Figura 8-26. Verificació connexió Multímetre-PC
Una vegada estan connectats correctament poden intercanviar informació.
En l‟opció Interactive IO (Figura 8-26) es pot enviar ordres al multímetre. Aquesta opció
principalment serveix per conèixer en quins formats el multímetre accepta ordres i poder
així fer proves amb ell. La Figura 8-27 mostra com s‟envia el comandament “SYST:REM”
que posa el multímetre en mode remot.
Figura 8-27. Enviament d‟un comandament
Annexes
Pàgina 100 de 111
Seguidament a la Figura 8-28 veurem que també es possible enviar un comandament de
pregunta i que el mateix multímetre ens respongui. Es realitza enviant el comandament
“*IDN?” (identificació) i ens respon el seu model.
Figura 8-28. Enviament i recepció d‟un comandament
També existeix un programa molt interessant anomenat IO Monitor, aquest s‟anomena
col·loquialment un “sniffer del port sèrie”. S‟encarrega d‟observar el port sèrie bit per bit.
És molt útil perquè es pot veure exactament quins caràcters s‟envien i es reben a l‟hora
d‟enviar o rebre un comandament.
Tal i com es mostra en la Figura 8-29, una vegada enviat el comandament “*IDN?” a
l‟entrada han entrat exactament els caràcters que es veuen encerclats.
Figura 8-29. Observació de l‟entrada dels caràcters del comandament
Annexes
Pàgina 101 de 111
A la Figura 8-29 es pot veure pràcticament el mateix que a la Figura 8-28 però en aquest
cas s‟observa la sortida dels caràcters, és a dir, el que respon el multímetre.
També en aquestes Figures 8-28 i 8-29 es pot veure un error d‟incorrecte enviament de
format enviant “IDN?“ en canvi d‟enviar “*IDN?”, en això es vol mostrar la potent i útil
eina que s‟ha treballat.
Figura 8-29. Observació de la sortida dels caràcters del comandament
8.5. Característiques principals del port E/S
Un port de E/S paral·lel utilitza una sèrie de línies per on es transmeten les dades i una
senyal de rellotge per poder controlar la transferència. A la Figura 8-30 es mostra una
transmissió paral·lela de bn bits.
Figura 8-30. Transmissió paral·lela
L‟ample de banda del canal de comunicacions s‟expressa amb el nombre de bytes
transferits per segon (B/s) o amb el nombre de bits transferits per segon (b/s).
Parlem de comunicació sèrie quan per cada temps de bit enviem un bit. La Figura 8-31
mostra aquesta comunicació i veiem com només es té una línia per enviar un sol bit.
Annexes
Pàgina 102 de 111
Figura 8-31. Transmissió sèrie
Un altra característica dels ports E/S és establir en quin sentit pot anar la o les
comunicacions. Aleshores podem definir que el port pot ser simplex, half-duplex o full
duplex:
-Un canal simplex, permet la transferència de dades en una sola direcció. Un gran
desavantatge és que el receptor no té ninguna forma d‟avisar al transmissor sobre el seu
estat i sobre la qualitat d‟informació que es rep. Aquest canal es pot veure a la Figura 8-32.
Figura 8-32. Canal de comunicació simplex
-Un canal half-duplex, permet la transferència de dades en tots dos sentits però en
comunicacions diferents, és a dir, no es pot transferir informació en ambos sentits de
manera simultània. Aquest canal es mostra en la Figura 8-33.
Figura 8-33. Canal de comunicació half-duplex
-Un canal full duplex, suporta transferències en ambos sentits simultàniament. Aquest
canal s‟observa en la Figura 8-34.
Figura 8-34. Canal de comunicació full-duplex
Per a que dos dispositius es puguin comunicar (sigui un microcontrolador o un ordenador)
han de posar-se d‟acord amb el sistema de comunicació que utilitzaran.
Annexes
Pàgina 103 de 111
La comunicació sèrie es pot dividir en dos categories: comunicació asíncrona i
comunicació síncrona: en la transmissió asíncrona els dispositius es posen d‟acord en la
velocitat de comunicació, un transmet i l‟altre rep, o a l‟inrevés.
El caràcter que es vol transmetre té un indicador d‟inici i un de fi de caràcter. La forma
estàndard d‟enquadrar un caràcter és a través d‟un bit d‟inici i un bit de parada. Tal i com
es pot veure a la Figura 8-35.
Figura 8-35. Comunicació sèrie asíncrona
En les transmissions síncrones els caràcters es transmeten consecutivament, i sense existir
el bit d‟inici ni el de parada entre els caràcters.
El primer que s‟envia es un octet de sincronisme (“sync”) tal es pot veure a la Figura 8-36.
Aquest octet realitza la mateixa funció que el bit d‟inici en la transmissió asíncrona,
indicant al receptor que s‟anirà a enviar un missatge. A més, utilitza la senyal del rellotge
per determinar quan i en quina freqüència serà mostrejada la senyal, és a dir, permet
sincronitzar els rellotges dels dispositius transmissor i receptor.
Les dades es van transmeten un a un amb cada pols del rellotge.
Figura 8-36. Comunicació sèrie síncrona
Annexes
Pàgina 104 de 111
8.6. Codi font
#include <p18f25j11.h>
#include <usart.h>
#include <delays.h>
//Definicions de constants
#define rele1 1
#define rele2 1
#define rele3 1
#define rele4 1
//Declaració de variables
unsigned char Buffer_remot1[15]=0x53,0x59,0x53,0x54,0x65,0x6D,0x3A,
0x52,0x45,0x4D,0x6F,0x74,0x65,0x0D,0x0A;
unsigned char Buffer_mesura2[14]=0x4D,0x45,0x41,0x53,0x3A,0x56,0x4F,
0x4C,0x54,0x3A,0x44,0x43,0x3F,0x0A;
unsigned char Buffer_resistencia[10]=0x4D,0x45,0x41,0x53,0x3A,0x52,0x45,
0x53,0x3F,0x0A;
char rx_data = 0;
unsigned char p=0,a=0,k=0,x=0,z=0;
unsigned char acum[100];
//Declaració de funcions
void rx_handler (void);
void funcio_remot_mesura (void);
//Rutina de servei a la interrupció
#pragma code high_vector = 0x8
void high_interrupt (void)
_asm GOTO rx_handler _endasm
#pragma code
#pragma interrupt rx_handler
void rx_handler (void)
if(PIR1bits.RCIF==1) //Si hi ha hagut interrupció per recepció
PIR1bits.RCIF = 0; //Baixem el flag de recepció
acum[p]=Read1USART(); //Llegim la dada rebuda i la guardem
p++;
if(p==100)
p=0;
a=0;
Write2USART(acum[a]); //Enviem la dada d‟abans rebuda
a++;
Annexes
Pàgina 105 de 111
PIE3bits.TX2IE=1; //Habilitem la interrupció de transmissió
if(PIR3bits.TX2IF==1) //Si hi ha hagut interrupció de transmissió
if(a==100)
PIR3bits.TX2IF=0;//Baixem el flag de transmissió
a=0;
p=0;
else
Write2USART(acum[a]); //Continuem enviant les dades fins que arribi a 100
a++;
//------------------------------------------------------------------------------------------------------
//Programa principal
void main (void)
PORTB = 0x00; //Habilitem els ports com a sortides
TRISB = 0x00;
//Configurem el port USART1
baud1USART (BAUD_IDLE_CLK_LOW &
BAUD_8_BIT_RATE &
BAUD_WAKEUP_OFF &
BAUD_AUTO_OFF );
Open1USART( USART_TX_INT_OFF &
USART_RX_INT_ON &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_SINGLE_RX &
USART_BRGH_HIGH ,
25);
TRISCbits.TRISC6 = 1;
TRISCbits.TRISC7 = 1;
EECON2=0x55; //Configurem els pins 2 i 3 com a PPS del USART2
EECON2=0xAA;
PPSCON=0x00;
RPOR1=0x05;
PPSCON=0x01;
//Configurem el port USART2
Annexes
Pàgina 106 de 111
baud2USART (BAUD_IDLE_CLK_LOW &
BAUD_8_BIT_RATE &
BAUD_WAKEUP_OFF &
BAUD_AUTO_OFF );
Open2USART(USART_TX_INT_OFF &
USART_RX_INT_ON &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_SINGLE_RX &
USART_BRGH_HIGH,
25);
//Habilitem interrupcions
INTCONbits.GIEH = 1;
INTCONbits.PEIE = 1;
while(1)
if(rele1==1)
PORTB=0x01; //Activem relé 1
while (k<15) //Envio->SYSTem:REMote
while(Busy1USART())
Write1USART(Buffer_remot1[k++]);
Delay10KTCYx(10000000000000); //Retard
while(x<14) //Envio-->MEAS:VOLT:DC ?
while(Busy1USART())
Write1USART(Buffer_mesura2[x++]);
Delay10KTCYx(10000000000000);
PORTB=0x00; //Desactivem relé 1
Delay10KTCYx(100000);
if(rele2==1)
PORTB=0x02; //Activem relé 2
while (k<15) //Envio->SYSTem:REMote
while(Busy1USART())
Write1USART(Buffer_remot1[k++]);
Delay10KTCYx(10000000000000);
while(z<14) //Envio-->MEAS:VOLT:DC ?
while(Busy1USART())
Write1USART(Buffer_mesura2[z++]);
Annexes
Pàgina 107 de 111
Delay10KTCYx(10000000000000);
8.7. Diagrames de flux
Es mostraran un digrama de blocs de la interrupció i un del programa principal.
INICI
Flag
rx==1
Lectura dada
p++
p==num
p=0
Envio dada
a++
Habilitació tx
Flag
tx==1
a==num
Inhabilitar tx i rx
Envio dada
a++
FI
interrupció
tx
FI
interrupció
rx
SI
SI
NO
O
NO
O
Annexes
Pàgina 108 de 111
Habilitació
d’interrupcions
Mentre
sempre
Relé 1==1
Activació
del relé 1
Mentre
K<15
Comprovació
PORT USART
Envio carácter del
comando remot
K++
Retard
Comprovació
PORT USART
Envio carácter del
comando mesura
x ++
Mentre
K<15
Comprovació
PORT USART
Envio carácter del
comando remot
K++
Retard
Comprovació
PORT USART
Envio carácter del
comando mesura
x ++
Mentre
K<15
Comprovació
PORT USART
Envio carácter del
comando remot
K++
Retard
Comprovació
PORT USART
Envio carácter del
comando mesura
x ++
Mentre
K<15
Comprovació
PORT USART
Envio carácter del
comando remot
K++
Retard
Comprovació
PORT USART
Envio carácter del
comando mesura
x ++
Relé 2==1 Relé 3==1 Relé 4==1
Activació
del relé 1
Activació
del relé 1
Activació
del relé 1
INICI
INICIALITZACIONS: Ports E/S
Interrupcions Externes USART
PPS