disseny i implementació d’un nas electrònic...
TRANSCRIPT
Disseny i Implementació d’un Nas Electrònic Autònom
AUTORS: Jesús Ferrando Herranz, Julian Del Hallazgo Arasa . DIRECTORS: Jesús Brezmes Llecha, Xavier Vilanova Salas .
DATA: Juny / 2001.
Índex
i
Índex
Índex
ii
Índex 1 Memòria Descriptiva ....................................................................................................... 1
1.1 Introducció .......................................................................................................... 2
1.1.1 Antecedents .......................................................................................... 2 1.1.2 Objectius .............................................................................................. 2
1.2 Descripció funcional ........................................................................................... 3 1.2.1 Visió general ........................................................................................ 3 1.2.2 Placa CPU ........................................................................................... 4 1.2.3 Placa del teclat hexadecimal i el display LCD .................................... 7 1.2.4 Placa de conversió de digital a analògic ............................................ 8 1.2.5 Placa de conversió d’analògic a digital .............................................. 9 1.2.6 Placa de distribució de senyals ......................................................... 10 1.2.7 Placa dels sensors ............................................................................. 11 1.2.8 Font d’alimentació ............................................................................. 12 1.3 Descripció circuital ........................................................................................... 13 1.3.1 Placa CPU ......................................................................................... 13 1.3.1.1 El microprocessador ........................................................... 13 1.3.1.2 Ports paral· lels .................................................................... 30 1.3.1.3 Port sèrie ............................................................................. 32 1.3.1.4 Lògica ................................................................................. 38 1.3.1.5 Buffer ................................................................................... 40 1.3.1.6 Latch d’adreces ................................................................... 41 1.3.1.7 Connector placa D_A ......................................................... 41 1.3.1.8 Connector placa A_D ......................................................... 42 1.3.2 Placa teclat hexadecimal i display LCD ........................................... 43 1.3.3 Placa de conversió de digital a analògic .......................................... 45 1.3.3.1 Conversió i multiplexació de les dades ............................... 46 1.3.3.2 Control d’escriptura ........................................................... 49 1.3.3.3 Emmagatzematge de dades analògiques ............................ 52 1.3.3.4 Cronogrames ...................................................................... 54 1.3.4 Placa de conversió d’analògic a digital ............................................ 56 1.3.4.1 Multiplexor analògic ........................................................... 56 1.3.4.2 Amplificador d’instrumentació ........................................... 57 1.3.4.3 Conversor d’analògic a digital ........................................... 58 1.3.4.4 Flip-flop .............................................................................. 60 1.3.4.5 Multivibrador monoastable ................................................ 60 1.3.4.6 Buffers ................................................................................. 61 1.3.5 Placa de distribució dels senyals dels sensors .................................. 63 1.3.6 Placa dels sensors .............................................................................. 64 1.3.6.1 Fonts de corrent .................................................................. 64 1.3.6.2 Etapa de potència pels heaters ........................................... 65 1.3.7 Font d’alimentació ............................................................................. 66 1.3.7.1 Font d’alimantació de +5 volts ........................................... 66 1.3.7.2 Font de tensió simètrica de ±15 volts ................................. 67
Índex
iii
1.4 Incidències i resolució de problemes ................................................................ 68 1.4.1 Placa CPU ......................................................................................... 68 1.4.2 Placa da conversió de digital a analògic .......................................... 72 1.4.3 Placa de conversió d’analògic a digital ............................................ 73 1.5 Conclusions ...................................................................................................... 76 2 Memòria de càlcul ......................................................................................................... 77 2.1 Placa CPU ......................................................................................................... 78 2.1.1 Circuit del reset del microprocessador ............................................. 78 2.1.2 Connector display i teclat .................................................................. 78 2.1.3 MAX232 ............................................................................................. 79 2.1.4 Oscil· lador de la UART ..................................................................... 80 2.1.5 Oscil· lador del microprocessador ..................................................... 80 2.2 Placa de conversió de digital a analògic ........................................................... 81 2.2.1 Reset del biestable ............................................................................. 81 2.2.2 Temporitzador NE555 ....................................................................... 81 2.2.3 Divisor de tensió en l’amplificador operacional ............................... 82 2.2.4 Configuració del conversor AD669 ................................................... 83 2.2.5 Condensador del Sample and Hold ................................................... 83 2.3 Placa de conversió d’analògic a digital ............................................................ 84 2.3.1 Amplificador d’instrumentació .......................................................... 84 2.3.2 Multivibrador monoastable ............................................................... 85 2.4 Placa de sensors ................................................................................................ 86 2.4.1 Fonts de corrent ................................................................................. 86 2.4.2 Etapa de potència d’excitació dels heaters ....................................... 88 2.5 Placa font d’alimentació ................................................................................... 91 2.6 Programació ...................................................................................................... 92 2.6.1 Temporitzador .................................................................................... 92 2.6.2 Placa A/D ........................................................................................... 94 2.6.3 PIES ................................................................................................... 95 2.6.4 Comunicació sèrie ............................................................................. 96 3 Plànols ............................................................................................................................. 98 3.1 Esquemes .......................................................................................................... 99 3.1.1 Placa CPU ....................................................................................... 100 3.1.2 Placa D_A ........................................................................................ 101 3.1.3 Placa A_D ........................................................................................ 102 3.1.4 Placa distribució .............................................................................. 103 3.1.5 Placa sensors ................................................................................... 104 3.1.6 Placa font d’alimentació .................................................................. 105
Índex
iv
3.2 Fotolits ............................................................................................................ 106 3.2.1 Placa CPU.Components. ................................................................. 107 3.2.2 Placa CPU. Soldadures. .................................................................. 108 3.2.3 Placa D_A.Components. .................................................................. 109 3.2.4 Placa D_A.Soldadures. .................................................................... 110 3.2.5 Placa A_D.Components. .................................................................. 111 3.2.6 Placa A_D.Soldadures. .................................................................... 112 3.2.7 Placa sensors.Components. ............................................................. 113 3.2.8 Placa sensors. Soldadures. .............................................................. 114 3.3 Serigrafia components .................................................................................... 115 3.3.1 Placa CPU ....................................................................................... 116 3.3.2 Placa D_A ........................................................................................ 117 3.3.3 Placa A_D ........................................................................................ 118 3.3.4 Placa sensors ................................................................................... 119 4 Pressupost ..................................................................................................................... 120 4.1 Quadre de preus .............................................................................................. 121 4.2 Amidaments .................................................................................................... 125 4.3 Aplicació de preus .......................................................................................... 133 4.4 Pressupost ....................................................................................................... 141 5 Plec de Condicions ....................................................................................................... 144 5.1 Condicions generals ........................................................................................ 145 5.1.1 Introducció ....................................................................................... 145 5.1.2 Reglaments i normes ........................................................................ 145 5.1.3 Materials .......................................................................................... 145 5.1.4 Execució del projecte ....................................................................... 145 5.1.5 Interpretació i desenvolupament ..................................................... 146 5.1.6 Treballs complementaris ................................................................. 146 5.1.7 Modificacions .................................................................................. 146 5.1.8 Realització defectuosa ..................................................................... 147 5.1.9 Mitjans auxiliars .............................................................................. 147 5.1.10 Recepció del projecte ..................................................................... 147 5.1.11 Responsabilitats ............................................................................. 147 5.1.12 Fiança ............................................................................................ 148 5.2 Condicions tècniques ...................................................................................... 148 5.2.1 Condicions de les plaques de C.I. .................................................... 148 5.2.2 Condicions dels components electrònics ......................................... 148 5.2.3 Condicions del muntatge de plaques ............................................... 149 5.3 Condicions facultatives .................................................................................. 149 5.3.1 Normes a seguir ............................................................................... 149 5.3.2 Personal ........................................................................................... 149
Índex
v
5.3.3 Reconeixements i assajos previs ...................................................... 150 5.3.4 Assajos ............................................................................................. 150 5.3.5 Assajos d’aparellatge ...................................................................... 150 5.4 Condicions econòmiques ................................................................................ 151 5.4.1 Preus ................................................................................................ 151 5.4.2 Abonament del projecte ................................................................... 151 5.4.3 Revisió de preus ............................................................................... 151 5.4.4 Penalitzacions .................................................................................. 151 5.4.5 Contracte ......................................................................................... 151 5.4.6 Rescissió del contracte .................................................................... 152 5.6.7 Liquidació en cas de rescissió del contracte ................................... 153 6 Annexes ......................................................................................................................... 154 6.1 Llistats dels programes ................................................................................... 155 6.1.1 ProgramaTemporitzador ................................................................. 155 6.1.2 Programa Placa A/D ....................................................................... 158 6.1.3 Programa PIES ................................................................................ 160 6.1.4 Programa comunicació sèrie ........................................................... 163 6.1.4.1 Programa de recepció ....................................................... 163 6.1.4.2 Programa de transmissió .................................................. 165 6.1.4.3 Programa comunicació PC ............................................... 167 6.2 Informació tècnica dels components .............................................................. 168 Microprocessador 80C188XL UART TL16C450F PIA 82C55A Transceiver MAX232 EPROM 27C256 SRAM KM684000A Conversor D/A AD669 Multiplexor analògic HEF4067B LF398 Conversor A/D LTC1605 Multivibrador monoastable 74HC221
Memòria descriptiva
1
1 Memòria Descriptiva
Memòria descriptiva
2
Memòria descriptiva. 1.1 Introducció 1.1.1 Antecedents Els estudis sobre el nas electrònic fa anys que es realitzen en aquesta facultat. Els camps d’aplicació que té un projecte d’aquestes característiques són tant diversos com: el control de maduració de la fruita dolça, el torrat de fruits secs, el control de qualitat dels olis, formatges, perfums, etc. S’han anat fent diversos projectes encaminats a estudiar les diferents possibilitats de realització, a estudiar els tipus de sensors que s’han d’utilitzar, la seva resposta, la seva caracterització, etc., altres a estudiar el tema d’adquisició de les dades, altres al seu tractament mitjançant xarxes neuronals, etc. Fins ara el denominador comú que tenien els projectes anteriors, era que l’anàlisi de les dades adquirides pels sensors, mitjançant aquestes xarxes neuronals, es feia a través d’un ordinador PC. Si es vol comercialitzar un nas electrònic autònom per la fruita perquè es pugui fer ús comercialment, s’ha de fer autònom, és a dir, que no hagi de dependre d’aquest PC. A més, així no només es reduiria el seu pes i, per tant, fora més manejable, també es reduiria el seu cost econòmic d’adquisició. 1.1.2 Objectius L’objectiu principal del present projecte és desenvolupar el hardware i el software necessaris per la realització d’un equip d’adquisició i tractament de dades d’un nas electrònic autònom. Haurà de disposar d’una interfície per tal que l’usuari pugui visualitzar l’estat de la màquina i introduir-li les dades necessàries; a més, haurà de disposar d’una comunicació amb un PC, per tal de poder-lo programar i poder extreure’n les dades que hagi adquirit i tractat.
Memòria descriptiva
3
1.2 Descripció funcional 1.2.1 Visió general. El nas electrònic disposarà d’un total de 10 plaques electròniques i d’una cambra de concentració dels gasos, on hi hauran un total de 16 sensors (14 de gasos més un de temperatura i un d’humitat). Aquestes plaques són: · Una placa per la CPU. · Una placa pel teclat hexadecimal i el display LCD. · Una placa de conversió de digital a analògic. · Una placa de conversió d’analògic a digital. · Una placa de distribució dels senyals per a les diferents plaques de sensors. · Quatre plaques de sensors. · La font d’alimentació de tot l’equip. Degut a certs factors que s’exposaran més endavant, només s’han implementat 4 d’aquestes 10 plaques :placa CPU, placa D/A, placa A/D i una de les 4 plaques de sensors. L’esquema general del nas és el que es mostra a la següent figura:
Figura 1 Tant a la placa del teclat i display com a les plaques dels sensors, l’alimentació els arriba a través del connector respectiu.
PLACACPU
PLACA D/A
PLACA A/D
DISPLAY TECLAT
PLACADISTRIBUCIO
SENSORS
PLACA 1SENSORS
PLACA 2SENSORS
PLACA 3SENSORS
PLACA 4SENSORS
FONTALIMENTACIO
PC
CAMBRA
GASOS
Memòria descriptiva
4
1.2.2 Placa CPU És la placa on s’executarà el programa que controlarà la resta de plaques. Des d’aquí es controlen el teclat, el display, les plaques A/D i D/A, la comunicació amb el PC, i una sèrie d’entrades i sortides digitals implementades per controlar variables binàries (estat de vàlvules de gas tipus tot o res, o per obrir-les o tancar-les). Les característiques principals d’aquesta placa són: · Microprocessador de 16 bit 80C188XL. (de la família 8086). · Dues memòries RAM de 512Kx8 cada una (un total de 1MB). · Memòria EPROM de 32KB. · Comunicació sèrie via RS-232. · Entrades i sortides digitals configurables (24 línies). · Connector per teclat hexadecimal. · Connector per Display LCD. · Connector per la placa de conversió digital-analògic. · Connector per la placa de conversió analògic-digital. L’esquema general de la placa és el següent:
Figura 2
PLACA D/A
PLACA A/D
E/S DIGITAL
TECLAT/DISPLAI
RS-232 (PC)UART
PIA 1
PIA 1
BUFFER
LATCH AD.
RAM
EPROM
LOGICA
80C188XL
DATA, LOW AD.
HIGH AD.
DATA
BUS
DATA
BUS
ADRESS
BUS
Memòria descriptiva
5
Aquest bloc rep les dades dels sensors a través de la placa conversora d’analògic a digital, i el control del punt de treball dels Heaters es fa a través de la placa de conversió de digital a analògic. Les dades que arriben al micro s’emmagatzemen a la memòria RAM i posteriorment són processades per una xarxa neuronal implementada a la EPROM. Els pesos d’aquesta xarxa neuronal es calculen durant la fase d’aprenentatge, en un PC. Per a que l’ordinador pugui ensinistrar la xarxa, el micro realitza una sèrie de mesures que envia al PC a través de la comunicació sèrie. Un cop calculats aquests pesos s’envien a la placa del micro i s’emmagatzemen a la RAM de la placa, destinada a aquesta tasca. La placa està pensada per a poder connectar-hi un Display i un teclat hexadecimal. La funció d’aquests és la de permetre a l’usuari accedir a les diferents funcions del nas electrònic: · Transmetre dades via sèrie. · Rebre dades via sèrie. · Adquirir, processar i controlar les dades dels sensors. S’ha incorporat a la placa dos connectors de 12 E/S digital cada un. Cada connector es pot programar com a entrada o bé com a sortida. Aquests senyals donen la possibilitat de controlar vàlvules, relés o altres dispositius necessaris per al bon funcionament del nas electrònic. · Mapa de memòria En la figura següent podem observar com estan repartits els diferents dispositius dintre del mapa de memòria. En el diagrama de l’esquerra es pot apreciar el mapa de memòria de la zona d’entrada i sortida. En aquesta zona s’accedeix quan s’executa alguna instrucció d’input o output. L’ubicació dels diferents dispositius pot ser programat per l’usuari. En el nostre cas els dispositius comencen en la posició 80H ja que l’emulador emprat utilitza posicions inferiors de memòria E/S. En el diagrama central està representat l’espai de memòria RAM. Es disposa de 1MB de memòria per poder emmagatzemar els pesos de la xarxa neuronal, les mesures preses dels sensors, la pila del programa, variables del programa i altres dades que el programador necessiti pels seus algoritmes. A la dreta apareix el mapa de memòria de la EPROM. De tot l’espai disponible, la EPROM sols ocupa els últims 32KB. Això s’ha implementat així ja que quan el sistema s’inicialitza, el punter de programa es situa a l’adreça FFFF0H i ha de trobar codi de programa en aquella adreça. La primera instrucció que es trobarà serà un salt a l’inici de la EPROM (F8000H).
Memòria descriptiva
6
Figura 3
En la placa D/A l’adreça base es troba en la posició 80H, que correspon al primer dels Heaters. El següent Heater estarà a l’adreça 81H i així consecutivament fins el Heater 14. En la placa A/D l’adreça base es troba en la posició 100H. Per accedir als diferents sensors s’escriu primer en aquesta adreça una dada que indiqui el número de sensor al qual es vol accedir (1:14), i després es llegeix el resultat en la mateixa adreça. S’ha de tenir en compte que hi haurà un sensor d’humitat i un de temperatura, que correspondran als sensors 15 i 16. La PIA 1 té l’adreça base a la posició 180H, i la PIA 2 a l’adreça 200H. La UART té l’adreça base a la posició 280H.
64KB E/S1MB de Memòria
de Dades1MB Memòria de
Programa
F8000H
32KB EPROM
80H
100H
180H
200H
280H
Placa D/APCS1
Placa A/DPCS2
PIA 1PCS3
PIA 2PCS4
UARTPCS5
FF00H
FFFFH
PCB
Memòria descriptiva
7
1.2.3 Placa del teclat hexadecimal i el display LCD El microprocessador mostra a través del display LCD un seguit de menús pels que l’usuari pot navegar i li demanarà una sèrie de paràmetres a introduir a través del teclat hexadecimal. Degut a certs factors, aquesta placa no s’ha arribat a implementar així com tampoc s’ha escrit la part de codi que la governa. Simplement s’ha fet un estudi a nivell teòric. Per tant els menús a què s’ha fet referència s’hauran de realitzar quan tot el hardware estigui implementat i es passi a la part de programació. Aquesta placa va connectada a la placa del microprocessador. Aquest envia les línies de control i de dades al display, així com rep el codi resultant d’haver premut algun dels polsadors del teclat. L’esquema de connexió d’aquesta placa és el següent:
Figura 4
PLACAMICRO
DISPLAY LCDDADES
C O N T R O L
DADES TECLAT
Memòria descriptiva
8
1.2.4 Placa de conversió de digital a analògic Aquesta placa ens servirà per a poder controlar el punt de treball dels heaters dels sensors utilitzats. Les característiques principals de la placa són: · Resolució de conversió de 16 bits. · Rang de tensions de sortida de 0 a 10 volts. · Emmagatzemament de fins a 14 tensions analògiques independents. · Alimentació de +5, +15 i –15 volts. Està connectada a la placa del microprocessador i a la placa de distribució de senyals dels sensors. El microprocessador envia a aquesta placa el valor digital que haurà de convertir a analògic, i l’adreça del sensor al que volem controlar el seu punt de treball. Aquesta tensió de sortida serà d’un valor d’entre 0 i 10 volts. A la sortida del conversor es realitza una multiplexació d’aquesta tensió i després s’emmagatzema el valor. Hi haurà un total de 14 valors emmagatzemats. Aquestes tensions es distribuiran a cada un dels sensors per a determinar el seu punt de treball. A continuació es mostra un esquema d’aquesta placa:
Figura 5
PLACAMICRO
CONVERSORD/A
MUX
TENSIO 1
TENSIO 2
TENSIO 14
DADES
ADRECES
CONVERSIO MULTIPLEXACIO EMMAGATZEMAMENT
PLACA DE DISTRIBUCIODE SENYALS
ALS SENSORS
Memòria descriptiva
9
1.2.5 Placa de conversió d’analògic a digital Aquesta placa és l’encarregada de mostrejar tots i cada un dels sensors que formen el nas electrònic. Les prestacions de la placa són: · 16 entrades analògiques diferencials de valor comprès entre 0 i 3 volts. · Conversor d’analògic a digital de 16 bits, amb una freqüència de mostreig màxima de 100KHz. · Connexió amb una placa microprocessadora amb un bus de dades de 8 ó 16 bits. Això s’aconsegueix modificant un únic Jumper. · Alimentació amb +5, +15 i –15 volts. Aquesta placa va connectada a la placa del microprocessador i a la placa de distribució dels senyals dels sensors, que és d’on li arribaran les tensions analògiques a mostrejar. Primerament la placa microprocessadora indica de quin sensor ha de prendre mostra. Un cop s’ha seleccionat el canal, es realitza la conversió i després, la mateixa placa del microprocessador anirà a llegir la dada convertida. L’esquema general de la placa és el següent:
Figura 6
PLACAMICRO
CONVERSORA/D
MUX
DADES
ADRECES
CONVERSIO MULTIPLEXACIO
PLACA DE DISTRIBUCIODE SENYALS
ALS SENSORS
Memòria descriptiva
10
1.2.6 Placa de distribució de senyals Aquesta placa està connectada amb les plaques de conversió d’analògic a digital i de digital a analògic, i amb les diferents plaques dels sensors. La seva missió és, per una banda fer arribar les tensions que arriben de la placa de conversió D/A, a la placa on hi ha el seu heater associat, per altra banda, arreplega totes les tensions que arriben dels diferents sensors i les condueix cap a la placa de conversió A/D. Per altra banda, com que a cada placa de sensors només hi arriba un connector, la placa de distribució també haurà de distribuir les alimentacions a les plaques dels sensors, a través d’aquests connectors. L’esquema general de la placa és el següent:
Figura 7
PLACA D/A
PLACA A/D
FONTALIMENTACIO
PLACA SENSORS 4
PLACA SENSORS 3
PLACA SENSORS 2
PLACA SENSORS 1
Memòria descriptiva
11
1.2.7 Placa dels sensors Hi ha d’haver quatre plaques de sensors. A cada placa hi ha d’haver un total de 4 sensors, amb la seva electrònica de control corresponent. Aquestes plaques van connectades a la placa de distribució, de manera que en reben les tensions de la placa de conversió de D/A, per controlar el punt de treball dels heaters, i hi porten les tensions dels sensors que hauran d’anar a la placa de conversió A/D. Les alimentacions d’aquesta placa, no venen d’una regleta, sinó que venen del mateix connector de la placa de distribució. Això s’ha implementat així per facilitar la maniobra de connexió i desconnexió d’aquestes plaques. L’electrònica de control dels sensors, consta d’una font de corrent, de valor fix, la qual s’injecta a la resistència sensora de cada sensor. També disposa d’una etapa de potència, que rep la tensió de referència que controla el punt de treball dels heaters dels sensors i els entrega la potència corresponent.
Figura 8
HEATER
RESISTENCIASENSORA
ETAPA DE POTENCIA
SENSOR 1 A 4
FONT DE CORRENT
PLACA DE DISTRIBUCIO
(D/A)
(A/D)
ALIMENTACIO
Memòria descriptiva
12
1.2.8 Font d’alimentació Aquesta placa és la que proporciona totes les tensions necessàries per al funcionament de totes les plaques de què es compon el nas electrònic. Les tensions que ha de donar aquesta placa són: · 5 V (màx. 1.5A) pels circuits digitals i els conversors A/D i D/A. · +15 V ( màx. 3A) per a les fonts de corrent, pels circuits de potència dels heaters, per la placa D/A i per la placa A/D. · -15 V (màx. 1.5A) per a la placa D/A i A/D i per les plaques dels sensors. L’alimentació de +15 V, ha de donar més corrent, perquè és la que ha de subministrar la potència necessària per excitar els heaters.
Memòria descriptiva
13
1.3 Descripció circuital 1.3.1 Placa CPU 1.3.1.1 El microprocessador El microprocessador escollit per realitzar el projecte és el 80C188XL de la família del 8086. S’ha escollit aquest model perquè era l’únic del qual es disposava d’un emulador per tal de poder depurar tant hardware com software. Es tracta d’un microprocessador de 16 bits d’arquitectura interna, però que sols disposa d’un bus de dades extern de 8 bits. Pel que fa a tota la resta és igual al 80C186XL. Podem destacar entre les seves característiques les següents: · Registres interns de 16 Bits. · Bloc de control de Perifèrics. · Unitat de control de Chip Select tant de memòria com d’entrada i sortida. · Un controlador d’interrupcions programable. · Tres timers de 16 bits programables. · Una unitat de control DMA amb dos canals de DMA independents. · Una unitat de refresc de memòria RAM dinàmica. A continuació es mostra un esquema on es poden veure els perifèrics interns del micro que s’han utilitzat en el projecte:
Figura 9
TEMPORITZADORS I COMPTADORS
UNITAT DE CONTROL
D'INTERRUPCIO
UNITAT DE CONTROL DE CHIP SELECT
ALUBLOC DE
CONTROL DE PERIFERICS
REGISTRES INTERNS DE
16 BITS
UNITAT D'INTERFICIE
DE BUS
TMR OUT1
TMR IN1
TMR IN2
TMR OUT2
INT3 INT2 INT1 INT0 PCS6:0 LCS UCS MCS 3:0
AD8:0 A9:19
Memòria descriptiva
14
· Registres interns de 16 bits Registres de dades. Aquests registres serveixen per emmagatzemar tant operands com resultats. Poder accedir a cada un d’ells com a un registre de 16 bits, o com a dos registres de 8bits.
AX AH AL BX BH BL CX CH CL DX DH DL
Taula 1
Si volem accedir per exemple al registre A en mode 16 bits, ens referirem a ell com a AX, si volem accedir a la part alta (8 bits) ens referirem com a AH, i si volem accedir a la part baixa (8 Bits) ens referirem com AL. La resta de registres funciona de la mateixa manera. Alguns d’aquests registres tenen altres funcions específiques: BX à Registre Base per a càlcul d’adreces. CX à Comptador implícit en algunes instruccions.
DX à Emmagatzema adreces d’entrada i sortida durant algunes operacions d’E/S. Punters i índexs.
SP BP SI DI IP
Taula 2
IP à Comptador de programa. SP à Punter de la pila BP à Registre base per accedir a la pila. SI, DI à Són índexs. Poden ser utilitzats per sí sols, o utilitzar-se juntament amb els registres BX o BP i/o un desplaçament. L’adreça complerta de les instruccions es forma sumant el contingut de IP + CS (desplaçat cap a l’esquerra 4 bits).
Figura 10
1 6 b i t s
1 6 b i t s
2 0 b i t s
+4 b i t s = 0
A d r e ç a E f e c t i v a ,IP
A d r e ç a d e l s e g m e n t , C S
A d r e ç a F í s i c a
Memòria descriptiva
15
El tipus de memòria que direcciona aquest microprocessador és segmentada. Amb el registre CS indiquem la base del segment de codi on estem, mentre que amb el registre IP ens movem dintre d’un determinat segment. Així doncs, un segment tindrà com a molt 216 = 64KB (que són els 16 bits del IP). Com que a l’hora de calcular l’adreça física desplacem el registre de segment 4 bits a l’esquerra, això implica que cada cop que augmentem aquest registre en una unitat, estem desplaçant el segment 16 Bytes. La base de segment de codi pot situar-se entre la posició 00000H i FFFF0H de la memòria física. La figura 11 mostra de forma gràfica com es forma una adreça física.
Figura 11 L’adreça de la pila es forma sumant el contingut de SP + SS (desplaçat d’igual forma). De la mateixa forma que en el cas anterior, el SS indica la base del segment on està la pila, i el SP el desplaçament necessari per accedir al Top de la pila. En els adreçaments amb base i les indexacions, l’adreça d’una dada es pot formar com la suma de BX (o BP), els continguts de SI (o DI) i un desplaçament. El grup de segments.
CS
SS
DS
ES
Taula 3
CS à Segment de Codi SS à Segment de Pila DS àSegment de Dades ES à Segment extra
0 0 0 0 0 H
B a s e s e g m e n t ( C S )
R e g i s t r e d e s p l a ç a m e n t ( I P )
A d r e ç a F í s i c a
Memòria descriptiva
16
PSW és la paraula d’estat del 80C188, i conté indicadors de condicions i indicadors de control. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF
OF à Desbordament = 1 No Desbordament = 0 DF à Indicador de direcció, per instruccions que maneguen cadenes. 0 = La cadena es processa des del seu començament. 1 = La cadena es processa des de les adreces altes cap a les baixes. IF à Indicador d’interrupció. 1 = Les interrupcions emmascarables són reconegudes. 0 = Les interrupcions emmascarables no són reconegudes. TF à Indicador de Trap. 1 = S’executa un trap després de cada instrucció. SF à Signe de l’operació. 1 = Negatiu. 0 = Positiu. ZF à Indicador de zero 1 = Resultat de l’operació és zero. 0 = Resultat de l’operació diferent de zero. AF à Indicador de Carry Auxiliar. Sols per aritmètica BCD 1 = Carry en el bit 3er en les operacions de suma o resta. 0 = No Carry. PF à Indicador de paritat. 1 = Si els 8 bits de menys pes d’un resultat contenen un nombre parell d’uns. 0 = Si el nombre és imparell. CF à Indicador de Carry 1 = Si hi ha Carry en la suma o la resta. 0 = Si no hi ha Carry. · Bloc de control de perifèrics Tots els perifèrics integrats (Timer, DMA, Unitat de control de Chip Select..) estan controlats per un seguit de registres ubicats al Bloc de Control de Perifèrics (PCB). Aquest registres físicament, estan situats en els propis perifèrics que controlen, però són adreçats com a un únic bloc de registres. Aquest bloc i els seus registres, poden estar ubicats tant a memòria, com a l’espai d’entrada i sortida. Per defecte, aquest bloc té com a base l’adreça FF00H en l’espai d’entrada i sortida, però el podem reubicar accedint al registre de reubicació que es troba en el propi PCB. En el nostre cas no el reubiquem ja que en aquesta
Memòria descriptiva
17
posició no ens molesta. Cada un dels registres de control i estat dels perifèrics integrats al micro, estan situats en un offset fix a partir de l’adreça base del PCB (veure taula 5).
PCB offset
Funció PCB offset
Funció PCB offset
Funció PCB offse
t Funció
00H Reservat 40H Reservat 80H Reservat C0H D0SRCL 02H Reservat 42H Reservat 82H Reservat C2H D0SRCH 04H Reservat 44H Reservat 84H Reservat C4H D0DSTL 06H Reservat 46H Reservat 86H Reservat C6H D0DSTH 08H Reservat 48H Reservat 88H Reservat C8H D0TC 0AH Reservat 4AH Reservat 8AH Reservat CAH D0CON 0CH Reservat 4CH Reservat 8CH Reservat CCH Reservat 0EH Reservat 4EH Reservat 8EH Reservat CEH Reservat 10H Reservat 50H T0CNT 90H Reservat D0H D1SRCL 12H Reservat 52H T0CMPA 92H Reservat D2H D1SRCH 14H Reservat 54H T0CMPB 94H Reservat D4H D1DSTL 16H Reservat 56H T0CON 96H Reservat D6H D1DSTH 18H Reservat 58H T1CNT 98H Reservat D8H D1TC 1AH Reservat 5AH T1CMPA 9AH Reservat DAH D1CON 1CH Reservat 5CH T1CMPB 9CH Reservat DCH Reservat 1EH Reservat 5EH T1CON 9EH Reservat DEH Reservat 20H Reservat 60H T2CNT A0H UMCS E0H RFBASE 22H EOI 62H T2CMPA A2H LMCS E2H RFTIME 24H POLL 64H Reservat A4H PACS E4H RFCON 26H POLLSTS 66H T2CON A6H MMCS E6H Reservat 28H IMASK 68H Reservat A8H MPCS E8H Reservat 2AH PRIMSK 6AH Reservat AAH Reservat EAH Reservat 2CH INSERV 6CH Reservat ACH Reservat ECH Reservat 2EH REQST 6EH Reservat AEH Reservat EEH Reservat 30H INSTS 70H Reservat B0H Reservat F0H PWRSAV 32H TCUCON 72H Reservat B2H Reservat F2H PWRCON 34H DMA0CON 74H Reservat B4H Reservat F4H Reservat 36H DMA1CON 76H Reservat B6H Reservat F6H STEPID 38H I0CON 78H Reservat B8H Reservat F8H Reservat 3AH I1CON 7AH Reservat BAH Reservat FAH Reservat 3CH I2CON 7CH Reservat BCH Reservat FCH Reservat 3EH I3CON 7EH Reservat BEH Reservat FEH RELREG
Taula 4 · Unitat de control de Chip Select Aquesta unitat permet utilitzar les línies de selecció de chips que incorpora el mateix microprocessador. D’aquesta forma no cal fer una decodificació dels diferents chips a partir de les línies d’adreces. Aquest mòdul es controla mitjançant els registres UMCS,
Memòria descriptiva
18
LMCS, PACS, MMCS i MPCS (veure la seva adreça en la taula 5) situats al PCB. El diagrama de blocs de la unitat de control del Chip select amb les línies que controlen, és el que es mostra a continuació:
Figura 12
UCS à És un senyal que sols s’activa quan accedim a un espai de memòria situat a la part superior. En el registre on programem aquest senyal és UMCS. En aquest registre indiquem a partir de quina adreça volem que s’activi el senyal. A partir d’aquí, cada cop que accedim a una adreça compresa entre aquest valor programat i el final de la memòria, s’activarà el senyal. En el nostre cas programem el registre per a que s’activi el senyal a partir de l’adreça F8000H. Utilitzem aquest senyal com a chip select de la EPROM. Si ens fixem, entre F8000H i FFFFFH hi ha els 32kB de memòria EPROM que té la placa. També
= Amplada Bloc
= Amplada Bloc
= Amplada Bloc/4= Amplada Bloc/4= Amplada Bloc/4= Amplada Bloc/4
= Base
Base + 0
Base + 128
Base + 256
Base + 384
Base + 512
Base + 640
Base + 768
A
B
MUXA/B
= Base
Selector de memòria o
d'entrada/sortida
A1
A2Bits d'adreces interns
Bus d'adreces intern
UCS
LCS
MCS3MCS2MCS1
MCS0
PCS0
PCS1
PCS2
PCS3
PCS4
PCS5
PCS6
Memòria descriptiva
19
deixem tres estats d’espera en cada cicle per donar temps a realitzar correctament la lectura. REGISTRE UMCS 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
U17
U16
U15
U14
U13
U12
U11
U10
R2
R1
R0
Bit Mnemònic
Bit Nom Estat Inicial
Funció
U17:10 Adreça d’inici 0FFH Defineix l’adreça d’inici pel chip Select UCS
R2 Bus Ready inhabilitat 0H
A nivell baix espera un senyal de Ready per completar el cicle de bus, mentes que a nivell alt R1:0 controla el nombre d’estats d’espera i el bus Ready és ignorat.
R1:0 Nombre d’estats d’espera 3H Defineix el mínim nombre d’estats d’espera insertats en un cicle de bus.
LCS à Aquest Chip Select sols s’activa al accedir a la part baixa de la memòria. Es programa mitjançant el registre del PCB anomenat LMCS. Aquest senyal s’activa sempre i quan accedim a una posició de memòria compresa entre l’adreça 0H fins la programada en el registre. En la nostra placa no fem ús d’aquest senyal. El registre LMCS és el següent: REGISTRE LMCS 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
U17
U16
U15
U14
U13
U12
U11
U10
R2
R1
R0
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
U17:10 Adreça final 00H Defineix l’adreça final pel chip Select LCS
Memòria descriptiva
20
R2 Bus Ready inhabilitat X
A nivell baix espera un senyal de Ready per completar el cicle de bus, mentes que a nivell alt R1:0 controla el nombre d’estats d’espera i el bus Ready és ignorat.
R1:0 Nombre d’estats d’espera 3H Defineix el mínim nombre d’estats d’espera insertats en un cicle de bus.
MCS3:0 à Cada un d’aquests senyals s’activa quan accedim a blocs contigus de memòria. L’amplada de tot el bloc pot anar des de 8KB fins a 512KB i va definida al registre MPCS. L’adreça d’inici d’aquest bloc ve determinada al registre MMCS i ha de ser múltiple de l’amplada de tot el bloc, ja que aquests senyals no poden cobrir tot l’espai de memòria que hi ha entre LCS i UCS Chip Selects. A la figura 12 podem apreciar aquests senyals. El total del bloc es divideix en quatre parts iguals i cada senyal s’activa quan s’accedeix a la seva part. El registre MMCS és el que es mostra a continuació: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
U19
U18
U17
U16
U15
U14
U13
R2
R1
R0
Bit Mnemònic
Bit Nom Estat Inicial
Funció
U19:113 Adreça d’inici XXH Defineix l’adreça d’inici del bloc de chip Select MCS
R2 Bus Ready inhabilitat X
A nivell baix espera un senyal de Ready per completar el cicle de bus, mentes que a nivell alt R1:0 controla el nombre d’estats d’espera i el bus Ready és ignorat.
R1:0 Nombre d’estats d’espera 3H Defineix el mínim nombre d’estats d’espera insertats en un cicle de bus.
Memòria descriptiva
21
REGISTRE MPCS
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
M6
M5
M4
M3
M2
M1
M0
EX
MS
R2
R1
R0
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
M6:0 Tamany del Bloc XXH Defineix el tamany del bloc total per als Chip Selects dels senyals MCS
EX Piu Selector X
Posant a “1” aquest senyal, es configuren els senyals PCS6:5 com a senyals de Chip Selects, mentre que si està a “0” aquests senyals actuen com els bits d’adreces A2:A1 Laxats
MS Selector de cicle de bus XH
Si es troba a “0” activa PCS6:0 per a cicles de bus d’entrada i sortida. Si està a “1” els activa per a cicles de bus en memòria.
R2
Bus Ready inhabilitat per als senyals PCS6:4 X
Aplicat sols per als senyals PCS6:4. A nivell baix espera un senyal de Ready per completar el cicle de bus, mentes que a nivell alt R1:0 controla el nombre d’estats d’espera i el bus Ready és ignorat.
R1:0
Nombre d’estats d’espera que donem als senyals PCS6:4 3H
Aplicat sols per als senyals PCS6:4. Defineix el mínim nombre d’estats d’espera insertats en un cicle de bus.
PCS6:0à Els senyals de Chip Selects PCS6:0 accedeixen a un bloc de memòria o d’espai d’adreces d’entrada i sortida de 896-bytes contigus. Cada senyal de Chip Select s’activa per una setena part d’aquest bloc (128 bytes). L’adreça d’inici del bloc es programa al registre PACS.; aquesta adreça ha de ser múltiple d’1Kbyte. En la figura 3 podem apreciar el mapa d’entrada i sortida amb aquests senyals. L’adreça base en el nostre cas és la posició 0000H. Es pot apreciar que no s’utilitza PCS0, ja que l’emulador emprat en la depuració, fa servir les primeres quatre posicions de memòria per a ús propi. El registre de configuració d’aquests senyals es mostra a continuació:
Memòria descriptiva
22
REGISTRE PACS 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
U19
U18
U17
U16
U15
U14
U13
R2
R1
R0
Bit Mnemònic
Bit Nom Estat Inicial
Funció
U19:113 Adreça d’inici XXH Defineix l’adreça d’inici del bloc de chip Select PCS
R2 Bus Ready inhabilitat X
A nivell baix espera un senyal de Ready per completar el cicle de bus, mentes que a nivell alt R1:0 controla el nombre d’estats d’espera i el bus Ready és ignorat.
R1:0 Nombre d’estats d’espera 3H Defineix el mínim nombre d’estats d’espera insertats en un cicle de bus.
· Unitat de control d’interrupció L’arquitectura interna del 80C186 (família del microprocessador emprat) disposa d’una simple entrada d’interrupció emmascarable. La unitat de control d’interrupció (ICU) amplia les capacitats d’interrupció més enllà d’una simple entrada. Per portar a terme aquesta funció, la unitat de control d’interrupció opera en qualsevol dels dos modes de funcionament: Master o Slave. En mode Master el ICU controla les interrupcions emmascarables que van cap a la CPU. Les interrupcions poden ser originades des dels perifèrics integrats (DMA, TIMER) i des de quatre pius d’entrada d’interrupció (INT3:0). El ICU sincronitza i prioritza totes les fonts d’interrupció i presenta a la CPU el vector d’interrupció. En mode Slave, un mòdul extern 8259A controla les entrades d’interrupció emmascarables cap a la CPU i actua com a un controlador d’interrupcions Master. El ICU sols processa les interrupcions provinents dels perifèrics integrats (TIMER i DMA), i actua com a una entrada d’interrupció del 8259A. En la següent figura es mostra la unitat de control d’interrupció funcionant en mode Master (que és el mode emprat en el disseny).
Memòria descriptiva
23
Figura 13 El programador pot deshabilitar aquestes interrupcions de forma global o de manera individual. En la paraula d’estat (PSW) es poden habilitar o deshabilitar de forma global les peticions d’interrupció mitjançant el bit IF (Interrupt Enable Flag). El programador controla aquest bit mitjançant les instruccions STI (Set interrupt) i CLI(Clear Interrupt). Per a un major control en els programes, aquestes interrupcions es poden deshabilitar cada una d’elles per separat, mitjançant el registre Interrupt Mask Register (IMASK) situat al PCB. Aquest registre té un bit associat a cada font d’interrupció, de manera que es permet la interrupció escrivint-hi un “0”. En cas de múltiples peticions d’interrupció, la unitat de control determina quina es més prioritària i quina és la menys. Per defecte, i després de cada reset, la prioritat queda determinada de la següent manera:
Nom Interrupció
Prioritat
Timer 0 0 (a) Timer 1 0 (b) Timer 2 0 (c) DMA0 1 DMA1 2 INT0 3 INT1 4 INT2 5 INT3 6
Taula 5
Quan una interrupció s’accepta el microprocessador executa una seqüència de passos comú a totes les interrupcions: · El processador salva l’estat de la màquina posant el registre PSW a la pila. · Es netegen els bits Trap Flag (TF) i Interrupt Enable (IF) del registre PSW.
Timer0 Timer1 Timer2 0 1 INT0 INT1 INT2 INT3
Determinant de la prioritat d'interrupció
DMA DMA
Cap a la línia de petició d'interrupció de la CPU Lògica de generació de
vector dínterrupció
F - Bus
Memòria descriptiva
24
· Es guarden els registres de l’adreça actual (CS i IP) a la pila. · La CPU realitza el fetch del nou CS i IP pel vector de rutina d’interrupció de la taula de vectors d’interrupció, i comença a executar a partir d’aquest punt. Per a què s’executi la nostra rutina de servei a la interrupció, prèviament hem d’haver posat l’adreça d’inici de la nostra rutina (CS i IP) a la taula de vectors. Aquesta taula es mostra a continuació: Adreça Taula Tipus-Vector Adreça Taula Tipus - Vector 3FE CS 2E CS 3FC IP
255 2C IP
11 – DMA1
2A CS
28 IP
10 – DMA0
82 CS 26 CS 80 IP
32 U
SUA
RI
24 IP 9 – Reservat
7E CS 22 CS 7C IP
31 20 IP
8 – Timer 0
1E CS
1C IP
7- ESC
52 CS 1A CS 50 IP
20 RES
ERV
AT
18 IP 6 – No usat
4E CS 16 CS 4C IP
19 -Timer 2 14 IP
5 – Array
4A CS 12 CS 48 IP
18 - Timer 1 10 IP
4 – Overflow
46 CS 0E CS 44 IP
17 – Reservat 0C IP
3 – Punt de ruptura
42 CS 0A CS 40 IP
16 – Numèrics 08 IP
2 – NMI
3E CS 06 CS 3C IP
15 – INT3 04 IP
1 – Salt simple
3A CS 02 CS 38 IP
14 – INT2 00 IP
0 – Error en divisió
36 CS 34 IP
13 – INT1
32 CS 30 IP
12 – INT0
Taula 6
Els registres que formen la unitat de control d’interrupcions són els següents: TCUCON, DMA0CON, DMA1CON, I0CON, I1CON, I2CON, I3CON com a registres de control per a cada tipus d’interrupció (Timer, DMA0:1, INT0:3). El registre REQST ens mostra les interrupcions pendents. El registre IMASK permet deshabilitar les interrupcions. El registre PRIMSK permet emmascarar les interrupcions a partir d’una certa prioritat. El registre INSERV indica quina interrupció està essent servida. POLL i POLLSTS són registres emprats quan es realitza enquesta, i indiquen les interrupcions pendents. El registre EOI serveix per provocar la fi de la interrupció. El registre INTSTS ens mostra l’estat de les interrupcions. A continuació es mostra els registres utilitzats en els programes de prova per a la placa del microprocessador:
Memòria descriptiva
25
TCUCON s’utilitza per habilitar la interrupció del Timer. Inicialitzem el registre amb el valor de 00H REGISTRE TCUCON
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSK
PM2
PM1
PM0
Bit
Mnemònic Bit Nom Estat Inicial Funció
MSK Màscara d'interrupció 1 A nivell baix habilita la interrupció del Timer.
PM2:0 Nivell de prioritat 111 Defineix el nivell de prioritat del Timer.
EOI s’utilitza per indicar al controlador d’interrupcions que la rutina de servei s’ha acabat d’executar. En ell indiquem quin tipus d’interrupció s’ha servit. També podem realitzar un EOI no específic (que es el que utilitzem). REGISTRE EOI 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NSP
V
T4
VT3
VT2
VT1
VT0
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
NSP EOI no específica 0 A nivell alt provoca un EOI no específic
VT4:0 Tipus d’interrupció 0 0000 Tipus d’interrupció que es vol finalitzar.
· Temporitzadors i comptadors La unitat de temporització i comptatge pot ser utilitzada un moltes aplicacions. Algunes d’aquestes aplicacions incloeixen un rellotge de temps real, un generador d’ona quadrada i senyal digital que fa la funció de tret. Aquesta unitat està composta per tres temporitzadors independents de 16 bits cadascun. El seu funcionament és independent de la CPU. Aquesta unitat pot ser modelada com a un simple comptador multiplexat en el temps cap a tres bancs de registres. Cada temporitzador guarda el seu propi comptatge i té un màxim valor de comptatge definible per l’usuari. Els temporitzadors 0 i 1 tenen 2 registres de final de comptatge cadascun d’ells (CMPA i CMPB). Bàsicament hi ha dos modes de funcionament quant al final de comptatge: que es faci servir només un dels registres o que es facin servir els dos de forma alternativa. Tant el temporitzador 0 com l’1 funcionen de forma idèntica. En canvi el Timer 2 només té un registre de final de comptatge. Quan els temporitzadors arriben al final del seu comptatge hi ha dues possibilitats: que aquest s’aturi fins que se li torni a donar l’ordre de tornar a comptar o que automàticament
Memòria descriptiva
26
es reanudi aquest comptatge. El clock intern del comptador té un període quatre vegades més gran que el de la base de temps del microprocessador. La freqüència dels temporitzadors 0 i 1 pot ser preescalada a través del temporitzador 2. Això vol dir que el temporitzador 2 supera el seu valor màxim, s’incrementa en una unitat un dels altres dos temporitzadors. El diagrama de blocs de la unitat de temporització i comptatge és el següent:
Figura 14 Aquesta unitat té 2 tipus de registres diferents: els de control i els que emmagatzemen el màxim valor de comptatge. Els registres de control del Timer 0 i del Timer 1 funcionen exactament igual. Els bits de què estan formats es mostren a continuació: REGISTRES TC0CON, i T1CON
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EN
INH
INT
RIU
MC
RTG
P
EXT
ALT
CO
NT
T0 In T1 In
Latx de transició/
sincronitzador
Latx de transició/
sincronitzador
Element Comptador
Registres del Timer 0
Registres del Timer 1
Registres del Timer 2
CPU
Latx de sortida
Latx de sortida
T0 Out
T1 Out
Latx d'interrupció
CPU Clock
Memòria descriptiva
27
Bit Mnemònic
Bit Nom Estat Inicial
Funció
EN Habilitar 0
Ficar a “1” per activar el temporitzador. Aquest bit només es pot modificar quan el senyal INH és a nivell alt.
INH Inhibició X
Ficant-lo a “1” es pot modificar el bit EN. A nivell baix ignora l’escriptura d’EN. Aquest bit no es guarda; sempre que es llegeix llegim el valor “0”.
INT Interrupció X
A nivell alt genera una petició d’interrupció quan el comptador arriba al seu valor màxim.
RIU Registre de comparació en ús (A ó B)
X
Indica quin registre de comparació s’usa. Quan està a “1” utilitza com a registre de comparació el CMPB. Quan està a “0” fa servir el CMPA
MC Màxim comptatge X
Aquest bit s’activa quan el comptador supera el màxim valor de comptatge. Quan està a “0” vol dir que encara no ha arribat.
RTG Reinici automàtic de comptatge X
Aquest bit especifica l’acció causada pel flanc ascendent de l’entrada TMR Inx. Quan està a “1”, reseteja el comptador; a “0” habilita el comptatge. Aquest bit s’ignora quan el bit EXT està a “1”.
Memòria descriptiva
28
Bit Mnemònic
Bit Nom Estat Inicial
Funció
P Preescala X
Si està a “1” incrementa el temporitzador quan el Timer 2 supera el seu màxim comptatge. Si està a “0” el temporitzador funciona amb el clock intern d’una freqüència igual a ¼ de CLKOUT. Aquest bit és ignorat quan el bit EXT és a “1”.
EXT Rellotge extern X Si està a “1” s’utilitza un clock extern, sinó s’utilitza un d’intern.
ALT Registre de comparació alternatiu X
Aquest bit controla si el timer funciona en mode únic o en mode dual. Si està a “1” el mode de funcionament és el dual. A “0”, en mode simple.
CONT Mode continu de comptatge X Si està a “1”, e temporitzador funciona en mode continu.
El registre de control del Timer 2 es mostra a continuació: REGISTRE TC2CON
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EN
INH
INT
MC
CO
NT
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
EN Habilitar 0
Ficar a “1” per activar el temporitzador. Aquest bit només es pot modificar quan el senyal INH és a nivell alt.
INH Inhibició X
Ficant-lo a “1” es pot modificar el bit EN. A nivell baix ignora l’escriptura d’EN. Aquest bit no es guarda; sempre que es llegeix llegim el valor “0”.
INT Interrupció X
A nivell alt genera una petició d’interrupció quan el comptador arriba al seu valor màxim.
Memòria descriptiva
29
Bit Mnemònic
Bit Nom Estat Inicial
Funció
MC Màxim comptatge X
Aquest bit s’activa quan el comptador supera el màxim valor de comptatge. Quan està a “0” vol dir que encara no ha arribat.
CONT Mode continu de comptatge X Si està a “1”, e temporitzador funciona en mode continu.
Cada un dels temporitzador disposa d’un registre on emmagatzemen el valor actual del comptador. Els tres registres són idèntics quant a la disposició dels seus bits, però físicament són independents. L’adreça dels registres la podem trobar a la taula 5. El seu nom és T0CNT, T1CNT i T2CNT. REGISTRES T0CNT, T1CNT I T2CNT
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TC
15
TC
14
TC
13
TC
12
TC
11
TC
10
TC
9
TC
8
TC
7
TC
6
TC
5
TC
4
TC
3
TC
2
TC
1
TC
0
Bit
Mnemònic Bit Nom Estat Inicial Funció
TC15:0 Valor actual del temporitzador/comptador XXXXH
Conté el valor actual del timer associat.
Els registres T0CMPA, T0CMPB, T1CMPA, T1CMPB i T2CMPA són aquells en els què l’usuari defineix el valor màxim de comptatge de Timer associat. REGISTRES T0CMPA, T0CMPB, T1CMPA, T1CMPB I T2CMPA
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TC
15
TC
14
TC
13
TC
12
TC
11
TC
10
TC
9
TC
8
TC
7
TC
6
TC
5
TC
4
TC
3
TC
2
TC
1
TC
0
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
TC15:0 Valor de comparació del temporitzador/comptador XXXXH
Conté el màxim valor que un temporitzador comptarà abans de resetejar el seu registre de comptatge a “0”.
Pel que es refereix a la unitat de control DMA i la unitat de refresc de la memòria RAM dinàmica, no es comentaran en aquest projecte ja que no s’han fet servir.
Memòria descriptiva
30
1.3.1.2 Ports paral· lels Aquests ports s’han inclòs per a poder disposar d’un determinat nombre d’entrades i sortides digitals i per poder incloure el control d’un teclat hexadecimal i un Display LCD. Aquests ports s’han implementat mitjançant dos integrats del tipus 82C55A (PIA). Aquests dispositius disposen cada un d’ells, de tres ports (A, B i C), de 8 bits cada un, configurables tant d’entrada com de sortida. Els ports A i B quan es configuren, tots els seus bits tenen el mateix sentit d’entrada o de sortida, mentre que el port C la part baixa i la part alta es poden configurar independentment (Entrada-Entrada, Entrada-Sortida, Sortida-Entrada o Sortida-Sortida).
Figura 15
A la figura anterior el dispositiu U10 correspon a la PIA 1, mentre que el dispositiu U11 és la PIA 2. · PIA 1 La PIA 1 està connectada a dos connectors de 14 pius. El primer connector (J4) està connectat al port A i a la part alta del port C. L’altre connector està unit al port B i a la part baixa del port C. Amb aquests dos connectors tenim un total de 24 entrades i sortides digitals per poder controlar vàlvules, interruptors i altres dispositius controlats amb senyals de tot o res. Els senyals que controlen aquesta PIA són: · RE à Senyal de lectura provinent del micro. · WE à Senyal d’escriptura del micro. · A0:1 à Els dos bits de menys pes del bus d’adreces. · RES à Senyal de RESET provinent del micro. · PIA 1 à Correspon al senyal PCS3 provinent del micro.
Vcc Vcc
Vcc
Vcc
PA1PA3PA5PA7PB1
PA4PA6
PB2
PB1PB2
PA0PA1PA2PA3PA4PA5PA6PA7
PA0PA2
PB0
PB0
DO0DO1DO2DO3DO4DO5DO6DO7
DO0DO2DO4DO6DO8DO10
DO1DO3DO5DO7DO9DO11
DI0DI1DI2DI3DI4DI5DI6DI7
DI8DI9DI10DI11DO8DO9DO10DO11
DI0DI2DI4DI6DI8DI10
DI1DI3DI5DI7DI9DI11
D6
D0
D7
D4
D7D6D5
D3D2
D1D1D0
D2D3D4D5
U10
82C5
5
D034
D133
D232
D331
D430
D529
D628
D727
RD5
WR36
A09
A18
RESET35
CS6
PA0 4
PA13
PA22
PA3 1
PA4 40
PA5 39
PA6 38
PA7 37
PB018
PB1 19
PB2 20
PB3 21
PB4 22
PB523
PB624
PB7 25
PC0 14
PC1 15
PC216
PC317
PC4 13
PC5 12
PC6 11
PC7 10
VCC26
GND7
J4
CON14A
135791113
2468
101214
J7
CON14A
135791113
2468
101214
J5
CON14A
135791113
2468
101214
R4R
J6
CON8
12345678
R7R
R5R
R6R
C18
100nF
C19
100nF
U11
82C5
5
D034
D133
D232
D331
D430
D529
D628
D727
RD5
WR36
A09
A18
RESET35
CS6
PA0 4
PA13
PA22
PA3 1
PA4 40
PA5 39
PA6 38
PA7 37
PB018
PB1 19
PB2 20
PB3 21
PB4 22
PB523
PB624
PB7 25
PC0 14
PC1 15
PC216
PC317
PC4 13
PC5 12
PC6 11
PC7 10
VCC26
GND7
REWE
REWE
RESPIA1 PIA2
RESA1A0
A1A0
D0-D7
Memòria descriptiva
31
L’adreça base de la PIA 1 és 180H de l’espai d’entrada i sortida; adreça que està dintre dels marges en què s’activa el senyal PCS3. · PIA 2 La PIA 2 està connectada a dos connectors. El primer connector és de 14 pius i les línies connectades a ell són les del port A i els tres bits més baixos del port B. La funció d’aquest connector és la de controlar el Display LCD. El segon connector és de 8 pius, i està connectat al port C. Aquest servirà per controlar el teclat hexadecimal. S’ha escollit aquest port ja que permet llegir i escriure en la part alta i la baixa de forma independent · Registres de la PIA Les PIES disposen de quatre registres accessibles tant de lectura com d’escriptura. Cada un d’ells es troba en una adreça consecutiva a partir de l’adreça base. A la següent taula es mostren els registres amb els Offsets on estan ubicats:
Base + Offset Registre
@Base + 0 Port A @Base + 1 Port B @Base + 2 Port C @Base + 3 Registre de Control
Taula 7
Tant el port A, B i C són registres per escriure o llegir les dades, segons la seva configuració. En ells escrivim la dada que volem treure pel port, o obtenim la dada que llegim pel port.
7 6 5 4 3 2 1 0
P7
P6
P5
P4
P3
P2
P1
P0
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
P7:0 Valor del bit del Registre del port XH
Conté el valor llegit o escrit del bit del port.
Memòria descriptiva
32
Per a configurar els registres anteriors com a entrada o sortida s’utilitza el registre de control. Aquest i la seva funció apareixen descrits en les taules següents:
7 6 5 4 3 2 1 0
1 0 0 PA
PCH
0 PB
PCL
Bit
Mnemònic Bit Nom
Estat Inicial
Funció
PA Control port A XH Si val “1” el port A és d’entrada. Si val “0” serà de sortida.
PCH Control port C part alta XH Si val “1” el port C (part alta) és d’entrada. Si val “0” serà de sortida.
PB Control port B XH Si val “1” el port B és d’entrada. Si val “0” serà de sortida.
PCL Control port C part baixa XH Si val “1” el port C (part baixa) és d’entrada. Si val “0” serà de sortida.
1.3.1.3 Port Sèrie Aquest port s’ha inclòs per a poder disposar d’una línia de comunicació amb un ordinador. El microprocessador s’ha de comunicar amb el PC per passar-li les mostres recollides pels sensors i poder així entrenar la xarxa neuronal. Un cop entrenada, els pesos calculats pel PC per a cada neurona de la xarxa, es passen a la placa del microprocessador a través d’aquest port. Com que el microprocessador emprat no disposa de cap unitat de comunicació sèrie integrada, s’ha hagut d’implementar mitjançant una UART externa. La UART escollida ha estat la TL16C450. Les característiques principals d’aquest dispositiu són: · Disposa d’un canal de comunicació sèrie. · BAUD generador programable (fins a 256Kbits/s). · Bits de comunicació asíncrona, estàndard (inici, parada i paritat) afegits cap o eliminats de la trama de dades sèrie. · Entrada de Clock independent. · Gestió independent de la transmissió, la recepció, l’estat de la línia i les possibles interrupcions generades. · Caràcter programables entre 5,6,7 ó 8 bits. · Generador i detector de paritat parella, imparella o no paritat.
Memòria descriptiva
33
· Generació de 1, 1 1/2 ó 2 bits de parada. · Detecció de fals bit d’inici. · Funcions de control de mòdem (CTS, RTS, DSR, DTR, RI i DCD). · Fàcil connexió amb els microprocessadors. Per programar la UART s’ha de fer a través dels seus registres interns. A continuació es mostra una taula on apareixen aquests registres, amb les seves adreces i el significat dels seus bits:
Adreça dels registres 0
(DLAB=0) 0
(DLAB=0) 1
(DLAB=0) 2 3 4 5 6 7
0 (DLAB=1)
1 (DLAB=1)
Bit Nº
Receiver Buffer
Register (Read Only)
Transmitter Holding Register (Write Only)
Interrupt Enable
Register IER
Interrupt Ident.
Register IER
Line Control Register
LCR
Modem Control Register
Line Status Register
Modem Status Register
Scratch Register
Divisor Latch (LSB)
Latch (MSB)
RBR THR IER IIR LCR MCR LSR MSR SCR DLL DLM
0 Data Bit 0 Data Bit 0 ERBF “0” Si hi ha interrupció
pendent WLS0 DTR DR DCTS Bit 0 Bit 0 Bit 8
1 Data Bit 1 Data Bit 1 ETBE Identificador d’interrupció
Bit 0 WLS1 RTS OE DDSR Bit 1 Bit 1 Bit 9
2 Data Bit 2 Data Bit 2 ELSI Identificador d’interrupció
Bit 1 STB Out 1 PE TERI Bit 2 Bit 2 Bit 10
3 Data Bit 3 Data Bit 3 EDSS 0 PEN Out 2 FE DDCD Bit 3 Bit 3 Bit 11 4 Data Bit 4 Data Bit 4 0 0 EPS Loop BI CTS Bit 4 Bit 4 Bit 12
5 Data Bit 5 Data Bit 5 0 0 Stick parity 0 THRE DSR Bit 5 Bit 5 Bit 13
6 Data Bit 6 Data Bit 6 0 0 Set Break 0 TEMT RI Bit 6 Bit 6 Bit 14
7 Data Bit 7 Data Bit 7 0 0 DLAB 0 0 DCD Bit 7 Bit 7 Bit 15
Taula 8
Aquests registres es troben en adreces consecutives a partir de l’adreça d’entrada i sortida 280H, que és l’adreça base de la UART. Passem a donar una breu explicació dels registres de la Taula 10: · RBR (Buffer del registre de recepció): Aquest registre és accessible només en cicles de lectura i és on s’ha d’accedir per anar a buscar la dada rebuda. Per poder accedir a aquest registre, el bit DLAB del registre LCR ha d’estar a “0”. · THR (Buffer del registre de transmissió): En aquest registre s’hi posa la dada que es vol enviar via sèrie. Només és accessible en cicles d’escriptura i quan el bit DLAB del registre LCR està a “0”. · IER (Registre d’habilitació d’interrupcions): Aquest registre habilita cadascun dels quatre tipus d’interrupcions i el senyal de sortida INTRPT en resposta a aquesta interrupció. Ficant a “0” cada un dels bits 0:3 es deshabilita la seva interrupció associada: · Bit 0: Quan aquest bit es posa a “1” s’habilita la interrupció de dada rebuda disponible.
Memòria descriptiva
34
· Bit 1: Quan aquest bit es posa a “1” s’habilita la interrupció THRE (Registre de transmissió THR, buit). · Bit 2: Quan aquest bit es posa a “1” s’habilita la interrupció de línia d’estat (per si hi ha hagut error de paritat, overrun, framing o break). · Bit 3: Quan aquest bit es posa a “1” s’habilita la interrupció de les línies d’estat del mòdem. · Bits 4 –7 : Aquests bits no s’usen i estan sempre a “0”. · IIR(Registre d’identificació d’interrupció): Aquesta UART pot prioritzar les interrupcions anteriorment esmentades. Els nivells de prioritat són els següents: · Prioritat 1 – Interrupció de línia d’estat (màxima prioritat). · Prioritat 2 – Dada rebuda disponible o temps exhaurit de recepció de caràcter. · Prioritat 3 – Registre de transmissió (THR) buit. · Prioritat 4 – Estat del mòdem (prioritat més baixa). Quan es produeix una interrupció aquest registre indica que hi ha una interrupció pendent i el seu tipus: · Bit 0: Quan val “0” indica que hi ha una interrupció pendent. Quan està a “1” no hi han interrupcions pendents. · Bit 1 i 2: Aquests bits indiquen la interrupció pendent de més prioritat (Taula 11). · Bit 3 –7 Aquest bits no s’usen i estan sempre a “0”.
BIT 2 BIT 1 Tipus interrupció 0 0 Estat del mòdem. 0 1 Registre de transmissió buit. 1 0 Dada rebuda disponible. 1 1 Estat de la línia.
Taula 9
· LCR (Registre del control de línia): El programador decideix el format de la trama que s’envia i es rep a través del port mitjançant aquest registre. Això consisteix en controlar el nombre de bits de dades, el nombre de bits de parada, el tipus de paritat emprada i altres aspectes de la comunicació. · Bit 0:1: Amb aquests bits s’especifica el nombre de bits enviats o rebuts per cada caràcter.
Memòria descriptiva
35
Aquests bits es codifiquen tal i com es mostra a la següent taula:
BIT 1 BIT 0 Longitud de la paraula 0 0 5 Bits 0 1 6 Bits 1 0 7 Bits 1 1 8 Bits
Taula 10
· Bit 2: Aquest bit indica el nombre de bits de parada a cada caràcter transmès. Si esta a “0” es genera un bit de parada. Si està a “1” el nombre dels bits de parada depèn del nombre de bits del caràcter. Aquests bits es mostren a la Taula 13:
BIT 2 Longitud de la
paraula Nombre de bits de parada
generats 0 Qualsevol longitud 1 1 5 Bits 1 ½ 1 6 Bits 2 1 7 Bits 2 1 8 Bits 2
Taula 11
· Bit 3: Aquest bit habilita el bit de paritat. Si està a “1” es genera el bit de paritat en la transmissió, i es comprova el bit de paritat en la recepció. · Bit 4: Aquest bit és el selector de paritat parella. Si està a “1” la paritat és parella, si el bit 3 està actiu. Si està a “0” la paritat és imparella. · Bit 5: Stick Parity bit. Quan els bits 3,4 i 5 estan a “1” el bit de paritat es transmet i es comprova com a “0”. Si els bits 3 i 5 estan a “1” i el bit 4 està a “0” el bit de paritat es transmet i comprova com a “1”. · Bit 6: És el bit de control de Break. Si està a “1” força una condició de ruptura (Break). Si està a”0” aquesta condició es deshabilita. · Bit 7: Aquest bit és el DLAB. Serveix per accedir al registre de selecció de Baud Generator. Si està a “0” s’accedeix als registres de transmissió i recepció de dades. · LSR ( Registre d’estat de la línia): Proporciona informació a la CPU sobre l’estat de les dades transferides a través de la línia. El significat d’aquests bits es mostren a continuació: · Bit 0: Aquest bit es posa a “1” quan el registre RBR ha rebut una dada. · Bit 1: Indica que ha hagut un error de Overrun. Quan està a “1” vol dir que abans d’haver llegit la dada del registre RBR s’ha rebut una altra dada que ha esborrat l’anterior. · Bit 2: És l’indicador d’error de paritat. Quan es fica a “1”, indica que la paritat del caràcter rebut, no compleix amb la paritat seleccionada al registre LCR (bit 4). El bit PE es fica a “0” cada cop que es llegeix el contingut del registre LSR.
Memòria descriptiva
36
· Bit 3: Correspon a l’indicador d’error de trama (FE). Quan està a “1” indica que el caràcter rebut no té un bit de parada vàlid. El bit FE es fica a “0” cada cop que es llegeix el registre LSR. · Bit 4: És el bit indicador de break (BI). Quan es fica a “1” indica que la dada rebuda d’entrada ha estat a “0” més temps que el temps total de transmissió d’una dada (començament, dada, paritat i bits de parada). · Bit 5: Aquest bit és l’indicador de THRE. Si està a “1” indica que el registre de recepció està buit i preparat per acceptar un nou caràcter. Si la interrupció associada a aquest event està activada quan aquest bit es fica a “1” es genera una interrupció. Aquest bit es fica a “1” quan el contingut del registre THR és transferit al registre de desplaçament de sortida. · Bit 6: És l’indicador de transmissor (TEMT) buit. Es fica a “1” quan el registre de transmissió i el de desplaçament de sortida estan ambdós buits. Quan un dels dos té una dada, aquest bit es fica a “0”. · Bit 7: Aquest bit està sempre a “0”. · MCR (Registre de control de mòdem): Controla la interfície amb un mòdem o un altre perifèric que l’emuli. No s’explicarà el significat dels bits perquè en aquest projecte no s’ha emprat cap mòdem i si es vol saber més respecte a ell es pot consultar la documentació que s’ha adjuntat a l’annexe, referent a aquest integrat. · MSR (Registre d’estat de mòdem): és el registre que proporciona informació sobre l’estat actual de les línies de control provinents del mòdem. Igual que el registre anterior, no ens estendrem més en la seva explicació. · SCR (Bloc de notes): Aquest registre de 8 bits serveix per mantenir una dada que no afecti el funcionament del chip. Actua com un bloc d’apunts d’1 Byte. · DLL i DLM (Registre de divisió de clock): Aquests dos registres formen un sol registre de 16 bits que servirà per determinar la velocitat del baud rate. Per accedir a aquests registres, el bit DLAB del registre LCR ha d’estar a “1”. Seguidament es mostra una taula on es relaciona el valor emmagatzemat en aquest registre i el baud rate generat (en funció del cristall d’1,432 MHz emprat):
Memòria descriptiva
37
Baud rate desitjat Registre DLH i DLL Error percentual de diferència
entre el desitjat i l’obtingut 50 2304 75 1536 110 1047 0.026
134.5 857 0.058 150 768 300 384 600 192 1200 96 1800 64 2000 58 0.69 2400 48 3600 32 4800 24 7200 16 9600 12 19200 6 38400 3 56000 2 2.86
Taula 12
A continuació es mostra l’esquema elèctric de connexió de la UART amb el transceiver (MAX232) i amb el connector sèrie DB9.
Figura 16
D6D7
D0D1
D5
A1A0
A2 D2D3D4
C1 1uF
+
U12
TL16
C450
A031
A130
A229
CS014
CS115
CS216
MR39
DISTR25
DISTR!24
DOSTR21
DOSTR!20
ADS28
XTAL118
XTAL219
D02
D1 3
D2 4
D3 5
D46
D5 7
D6 8
D7 9
SIN 11
SOUT 13
BADOUT 17
RCLK 10
RTS36
CTS 40
D T R 37
DSR41
DCD 42
RI 43
OUT138
OUT2 35
Vcc
44Vs
s22
INTRP33 DDIS26 CSOUT27
NC11
NC212
NC323
NC432
NC034
C2 1uF
+
1.8432MHz
13
24
JP2
C_U17100 nF
C_U12
100nF
C41uF+
U13
MAX2
32
T1 IN11 T1 OUT 14
R1 IN13 R1 OUT 12
C1+1
C1-3
T2 IN10 T2 OUT 7
R2 IN8 R2 OUT 9
C2+4
C2-5
V+ 2
V- 6
GND
15VC
C16
P1
CONNECTOR SERIE
594837261
C31uF
+
C_U13 10uF
+
UART
RD
INTR
WE
RES
BUS ADRECES
BUS DADES
Memòria descriptiva
38
Els senyals que controlen la UART són: · El senyal anomenat UART, que prové del senyal PCS5 del microprocessador que és el senyal de la decodificació d’adreces. · El senyal RES, és el senyal de reset provinent del microprocessador. · RE és el senyal que indica un cicle de lectura. · WE indica un cicle d’escriptura. · INTR és un senyal que surt de la UART i que va cap a la línia d’entrada d’interrupció INT0 del micro. S’ha inclòs aquesta línia per si es volen aprofitar les interrupcions de la UART per realitzar la comunicació. La funció del jumper és tenir aquesta interrupció desconnectada quan no es desitja que es produeixi, evitant algun fallo de programació que l’activés. · A2:0 són els bits baixos del bus d’adreces que indicaran a quin dels registres interns de la UART s’accedeix. · D7:0 és el bus de dades. Finalment, dir que el MAX232 és el transceiver que adapta els nivells de tensió que van de la UART a la línia RS-232 i viceversa. 1.3.1.4 Lògica A la placa del micro es pot apreciar una lògica que serveix per fer part de la decodificació dels perifèrics i del mapa de memòria. El que s’ha descodificat és el següent: · Buffer del bus de dades (74HC245). Aquest buffer només s’activa quan es realitza un cicle de lectura o d’escriptura a un dels perifèrcis d’entrada i sortida del nostre projecte (placa DA, placa AD, PIA 1 i 2, i UART). Si s’accedís a alguna adreça diferent d’entrada i sortida, aquest buffer no s’activaria. Això s’ha fet així per evitar problemes en la comunicació amb l’emulador emprat durant la fase de depuració. L’esquema d’aquesta decodificació és el següent:
Figura 17
PCS1PCS2PCS3
PCS4PCS5
DEN
CSBUF
U14A
74LS11
12
1312
U14B
74LS11
345
6
U14C
74LS11
91011
8U3D
74LS32
12
1311
Memòria descriptiva
39
El senyal DEN és el Data Enable que prové del microprocessador i el senyal CSBUF és el senyal que va al CS del buffer. · Placa AD. Aquesta lògica genera dos senyals que són ADRE i ADWE que són els senyals d’habilitació de la placa A/D per lectura i per escriptura respectivament. Aquests senyals van fins els pius 18 i 17 del connector J3 que va cap a aquesta placa. L’esquema de la decodificació és el següent:
Figura 18
· Memòria EPROM i RAM. Per fer aquesta decodificació s’han emprat els senyals S2:0 que mostren l’estat del cicle de bus del microprocessador (veure Taula 15), UCS i la línia d’adreça A19. Els chips de la RAM es decodifiquen de la següent manera: El senyal d’habilitació de la RAM1 s’activa quan es realitza un cicle de lectura o d’escriptura a l’espai de memòria comprès entre l’adreça 00000H i 7FFFFH. El senyal de la RAM 2 s’activa en un cicle de lectura o d’escriptura a memòria, entre les adreces 80000H i FFFFFH. El senyal de CS de la EPROM s’activa quan s’està realitzant el fetch d’una instrucció que es troba entre l’adreça F8000H i FFFFFH (programat amb el bit UCS). A la següent figura es pot veure l’esquema de la decodificació:
Figura 19
WE
RE
DEN
PCS2
ADWE
ADRE
U2B
74LS27
345
6
U2A
74LS27
12
1312
A19
S2
S0
S1
UCS
CER1
CER2
CEE
U1C
74LS10
91011
8
U4A74LS04
12
U1A
74LS10
12
1312
U3A
74LS32
1
23
U2C
74LS27
91011
8
U1B
74LS10
345
6
U3C
74LS32
9
108
U3B
74LS32
4
56
Memòria descriptiva
40
El CER1 és el Chip-select del chip de la RAM dels primers 512 KB; el CER2 és el de la RAM dels següents 512KB. Finalment, el senyal CEE és el Chip-select de la EPROM. La combinació dels senyals S2:0 i la seva relació amb l’estat del bus, es pot veure a la següent taula:
Informació de l’estat del cicle de bus S2 S1 S0 Cicle de bus iniciat 0 0 0 Reconeixement d’interrupció 0 0 1 Lectura a l’espai d’entrada i sortida 0 1 0 Escriptura a l’espai d’entrada i sortida 0 1 1 Halt 1 0 0 Fetch de la instrucció 1 0 1 Lectura de dades de memòria 1 1 0 Escriptura de dades a memòria 1 1 1 Passiu (no cicle de bus)
Taula 13
Aquests senyals són activats per nivell baix i, com es pot veure a la taula, el senyal S2 pot ser utilitzat com indicador d’accés a memòria (“1”) o entrada i sortida (“0”). El senyal S1 funciona com un indicador del sentit de les dades en el bus de dades (DT/R). 1.3.1.5 Buffer S’ha incorporat un buffer a la placa per tal donar més força als senyals del bus de dades que es dirigeixen als perifèrics d’entrada i sortida. El chip utilitzat és el 74HC245, que és un buffer bidireccional, ja que les dades circulen en ambdós sentits. El sentit de les dades es determina mitjançant un piu ( nº 1) d’entrada del chip, al qual es connecta al piu DT/R del micro. Quan aquest bit val “0”, vol dir que les dades entren al micro. Per tant, el bus de la part del micro va a les entrades A del buffer, ja que quan aquest bit té aquest valor, les dades circulen en sentit de B a A. L’esquema de connexió del buffer és el que es mostra a continuació:
Figura 20
U15
74HC245
A12
A23
A34
A45
A56
A67
A78
A89
G19
DIR1
B1 18
B2 17
B3 16
B4 15
B5 14
B613
B7 12
B8 11
Q0:7 D0:7
CSBUFDTR
Memòria descriptiva
41
1.3.1.6 Latch d’adreces En aquest microprocessador, el bus de dades i la part baixa del bus d’adreces comparteixen les mateixes línies. Per tant és necessari separar-los. Per aquesta finalitat es disposa un Latch que capturi les adreces i deixi les línies disponibles per a les dades. En qualsevol cicle de lectura o escriptura apareixen en primer lloc les adreces i després les dades. Quan apareixen les adreces, el microprocessador asserta el senyal ALE (Adress latch enable); aquest senyal s’utilitza per a realitzar el CLK del Latch i capturar així les adreces. A la figura següent es mostra la connexió d’aquest Latch.
Figura 21
1.3.1.7 Connector placa D_A Es tracta del connector J2 i disposa de 26 pius. Aquest s’uneix al connector (del mateix tamany) de la placa conversora de digital a analògic a través d’un cable de cinta pla. El connector porta els senyals del bus de dades (D7:0), S2, PCS1, WE i les línies d’adreces A3:0. La distribució d’aquests senyal en el connector és la següent:
Figura 22
D6 D7
A1
D3
A0
D5D4
D0
A3A2
D1D2
DAS2WR
Bus de dades
Bus Adreces
J2
CON26A
135791113151719212325
2468
101214161820222426
U6
74HC374
D03
D14
D27
D38
D413
D514
D617
D718
OC1
CLK11
Q02
Q15
Q26
Q39
Q412
Q515
Q616
Q719
ALE
Q7:0 A7:0
Memòria descriptiva
42
A l’hora de muntar el cable de cinta pla als connectors femella s’ha de tenir en compte el següent esquema:
Figura 23
1.3.1.8 Connector placa A_D Aquest connector porta el bus de dades i els senyals de ADRE i ADWE cap a la placa de conversió d’analògic a digital. La distribució dels senyals al connector és la següent:
Figura 24
En el cable de cinta pla que uneix la placa A/D amb la del microprocessador, els connectors femella s’han d’unir al cable amb el mateix sentit i la mateixa orientació, l’un que l’altre (a diferència del cable de la placa D/A).
C a b l e d e c inta p la
Connec to r 1(p laca D /A)
Connec to r 2(p l aca m ic ro )
D5D7
D1D0D2 D3D4D6
ADWE
ADRE
Bus dadesJ3
CON20A
135791113151719
2468
101214161820
Memòria descriptiva
43
1.3.2 Placa teclat hexadecimal i display LCD Els senyals estàndard que conformen el Display són les que es mostres a continuació:
Piu Símbol Piu Símbol 1 Vss 8 DB1 2 Vcc 9 DB2 3 Vee 10 DB3 4 RS 11 DB4 5 R/W 12 DB5 6 E 13 DB6 7 DB0 14 DB7
Taula 14
Els pius DB0:7 han d’anar connectats al port A de la PIA 2 (connector J5 placa CPU). Els tres senyals de control RS, R/W i E han d’anar connectats als senyals del port B de la mateixa PIA, que es mostren a la figura 25. Els senyals d’alimentació (Vcc, Vss) també arriben a través del connector (pius 13, 14). El senyal Vee controla la lluminositat del LCD. L’esquema de connexió és el següent:
Figura 25
Les línies de PC0 a PC3 controlen les files del teclat, mentre que les línies del port C de PC4 a PC7 controlen les columnes. Les resistències situades a la part baixa del port C són de Pull Up. L’esquema elèctric serà:
Figura 26
4x16LCD Display
DB7:0
Vee
Vcc
Vss
Ajust delluminositatP1E
R/WRS
Port APB0PB1PB2
GNDVcc
PC0PC1PC2PC3
PC4PC5PC6PC7
Vdd
= polsador
pull-up
Memòria descriptiva
44
Per llegir quina tecla s’ha polsat s’ha de realitzar el següent procediment: · S’ha de definir la part baixa del port C com a entrada i la part alta com a sortida. · S’han d’escriure a la part alta tots els bits a “0”. · Es llegeix la part baixa. El bit que estigui a “0” indicarà la fila on hi haurà una tecla polsada. La resta de bits estaran a “1” degut a la tensió que hi arriba a través de les resistències de Pull Up. · Es defineix la part alta del port C com a entrada. · Es llegeix la part alta del port C. El bit que estigui a “1” indicarà la columna on s’ha polsat el polsador. · Un cop es coneixen la fila i la columna, ja es pot saber la tecla polsada. Un problema d’aquest muntatge, és la possibilitat que es produeixin rebots a l’hora de polsar una tecla. Això es pot solucionar mitjançant Software; es poden realitzar diverses lectures consecutives i comprovar que s’ha llegit el mateix valor. L’adreça base de la PIA 2 és 200H de l’espai d’entrada i sortida. Els dos muntatges anteriors no s’han pogut realitzar per falta de temps. Per tant sols s’ha realitzat l’estudi a nivell teòric.
Memòria descriptiva
45
1.3.3 Placa de conversió de digital a analògic Aquesta placa està preparada per a funcionar amb un microprocessador de 8 o 16 bits de bus extern de dades. En el nostre cas treballem amb el microprocessador 80C188XL on el bus de dades extern és de 8 bits. Per a canviar d’una configuració a una altra es fa mitjançant els jumpers pertinents de la mateixa placa (JP3, JP5, JP8, JP9 i JP10 per 16 bits i JP4, JP6, JP7, JP9 i JP10 per 8 bits). El conversor utilitzat té una resolució de 16 bits (AD669). Per utilitzar aquest conversor amb el microprocessador esmentat, s’hauran de fer dues escriptures per realitzar la conversió - mentre que per un microprocessador amb bus extern de dades de 16 bits sols necessitarem una escriptura per fer la conversió - . En la primera escriptura es guarda la part alta de la dada a convertir en un latch (74F273) per a després ser llegida pel conversor. En la segona escriptura es posa al bus de dades la part baixa de la dada i es realitza la conversió – a la part alta del conversor es llegeix del latch, i la part baixa del conversor es llegeix del bus - . La sortida del conversor es dirigeix a l’entrada d’un multiplexor analògic (HEF4067B) que dirigirà, per alguna de les sever sortides, el valor de l’entrada a un dels 14 heaters . El fet d’utilitzar un sol conversor per controlar 14 sensors provoca la necessitat d’utilitzar un sistema per mantenir el valor de referència a cada sensor mentre es realitza la conversió dels altres tretze sensors. Per a realitzar aquesta tasca s’utilitza un Sample and Hold (LF398) per a cada sensor. Aquest circuit manté la tensió de referència fins a una nova actualització. Podem dividir, doncs, aquesta placa en tres parts funcionals diferents: - Conversió i multiplexació de les dades: Es la part on es reben les dades digitals del microprocessador, es converteixen i es multiplexen al sensor escollit. - Control d’escriptura: Aquesta part és formada per portes lògiques (NAND, NOR, FLIP-FLOP, ... ) i és on es controla el senyal de conversió depenent del bus extern de dades del micro. Si és de 8 bits: Per fer la conversió necessitem dues escriptures. En la primera escriptura s’emmagatzemen les dades en un latch (que correspon a la part alta de la dada a convertir); mentre que en la segona escriptura es realitza la conversió utilitzant com a dada el bus de dades (part baixa) i el latch (part alta). També aprofita per guardar els 4 bits d’adreces de menys pes, per utilitzar-los com indicador de a quin sensor volem accedir. Si és de 16 bits: En aquest cas sols és necessària una escriptura on es fa la conversió dels 16 bits del bus de dades i es capturen els 4 bits de menys pes del bus d’adreces. - Retenció del resultat de la conversió: Cada sensor ha de tenir un circuit que guardi el valor de referència. Aquest muntatge es realitza utilitzant el circuit LF398 que mantindrà el valor analògic desitjat fins que el vulguem canviar. També hi ha un temporitzador (NE555) la funció del qual és la d’assegurar que el Sample and Hold tingui temps de carregar el valor que ha de mantenir.
Memòria descriptiva
46
1.3.3.1 Conversió i multiplexació de les dades. Aquesta part està formada per un connector de 26 pius, per dos Latch (74HC273, 74HC173), dos Buffers (74HC244), el conversor de digital a analògic (AD669), un multiplexor analògic (HEF4067B) i els quatre amplificadors operacionals (LM324). En la figura següent es pot apreciar l’esquema d’aquest muntatge:
Figura 27 · Si el bus de dades és de 8 bits el Buffer 2 (U9) està desactivat, i el Buffer 1 (U6) funciona. La part alta del bus de dades extern (D8-D15) també està inactiu. En una primera escriptura les dades arriben per la part baixa del bus de dades (D0-D7) i queden emmagatzemades en el Latch (U5) i passen pel Buffer 1 fins la part alta del conversor. A la segona escriptura les dades arriben també per la part baixa del bus de dades (D0-D7) i passen directament a la part baixa del conversor. També arriben els senyals de control del conversor que fan que aquest comenci la conversió. La sortida del conversor es dirigeix al multiplexor analògic (U12), on també arriben les línies d’adreces (AD0-AD3) emmagatzemades en el Latch @ (U8) i que indiquen quina sortida del multiplexor està activa. Cada sortida del multiplexor va a un Heater diferent. Amb el jumper JP9 es controla quin Buffer ha de permetre el pas de dades, posant les seves entrades d’habilitació a “0”. Amb el jumper JP10 s’indica quin ha d’estar inactiu. Quan un dels Buffers està actiu, l’altre ha d’estar inactiu. Els jumpers JP3 a JP6 s’han de configurar depenent de si el bus és de 8 o 16 bits. Si connectem el jumper JP1 el conversor utilitzarà com a tensió de referència, la tensió que li arribi a través d’un dels connectors de la regleta d’alimentació (REG1). Si en lloc d’aquest, es connecta JP2, la referència utilitzada serà la pròpia del conversor, que és de 10 volts.
Ref IN
Digitat GND
Ref OUT
D3
DA
D11
DB12
A3
D2
D10D6
DB13
A2
D4D7
D3
A2
D4
D14
D1
A1
WR
D0
A0
A1
DB9
D9
D15D12
D2
D7
DB14
D0
A0
DB10
DB8
DB15
A3
D1
S2DB11
D13
D8D5
D5D6
D0
D1
D2
D3
D4
D5
D6D7
D8
D9
D10
D11
D12
D13
D14D15
DB8
DB9
DB10
DB11
DB12
DB13
DB14DB15
DB8
DB9
DB10
DB11
DB12
DB13
DB14DB15
U8
74H
C17
3
D114
D213
D312
D411
CLK7
M1
N2
G19
G210
CLR15
Q13
Q24
Q35
Q46
R3
R1
U4A
LM324
+
-
3
21
411
U7
Vll
3
DGND4
AGND24
L1!5 CS!6
LDAC23
DB022
DB121
DB220
DB319
DB418
DB517
DB616
DB715
DB814
DB913
DB1012
DB1111
DB1210
DB139
DB148
DB157
SPAN26
Vout25
Ref In27
Ref Out 28
U5
74H
C27
3
D13
D24
D37
D48
D513
D614
D717
D818
CLK11
CLR1
Q12
Q2 5
Q36
Q49
Q512
Q6 15
Q716
Q819
J1
CON26A
13579
1113151719212325
2468101214161820222426
R2
U4B
LM324
+
-
5
67
411
JP3
JP5
U12
HEF
4067
Z1
Y72Y63Y54Y45Y36Y27Y1 8Y09
A010
A111
A313
A214
E!
15
Y1516Y14 17Y1318Y1219Y1120Y10 21Y922Y823
JP1
JP6
C8100nFJP4
JP2
U4C
LM324
+
-
10
98
411
R4
U4D
LM324
+
-
12
1314
411
U6
74HC244
1A12
1A24
1A36
1A48
2A111
2A213
2A315
2A417
1G1
2G19
1Y118
1Y2 16
1Y314
1Y412
2Y19
2Y2 7
2Y35
2Y43
U9
74HC244
1A12
1A24
1A36
1A48
2A111
2A213
2A315
2A417
1G1
2G19
1Y1 18
1Y216
1Y314
1Y412
2Y19
2Y27
2Y35
2Y43
JP9
22
11
33
JP10
22
11
33
SH5
SH15
SH11SH12
SH8
AD2
AD0
SH9
SH2
AD2
SH3
Ref OUT
AD3
AD1
AD1
AD0SH4
SH7SH6
SH10
AD3
SH13
SH1SH0
SH14
CONTROL ESCRIPTURA
Memòria descriptiva
47
Per veure en quina posició han d’estar els jumpers segons la configuració desitjada, s’ha de consultar la serigrafia dels components, ubicada al capítol dels plànols. TAULA D’ADRECES DELS SENSORS
S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Taula 15
Essent Si el sensor al que es vol dirigir, i Ai els bits que formen l’adreça on és el sensor. Les adreces de la taula anterior mostren l’offset de cada sensor, respecte l’adreça base de la placa. Els senyals que donen l’ordre de conversió, i l’ordre d’emmagatzemament de les adreces i dades en els seus respectius Latch provenen d’un altre bloc situat a la mateixa placa, el qual s’explicarà al punt següent. El multiplexor analògic (U12) està alimentat entre 0 i 15 Volts (0 – Vcc), per això s’han d’adaptar els nivells de tensió de les línies d’adreces que hi arriben, ja que van de 0 a 5 Volts (0 – Vdd). Aquest canvi l’aconseguim mitjançant quatre amplificadors operacionals (U4). Aquests A.O actuen com a comparadors, de manera que per a valors de tensió dels senyals d’adreça entre 0 i 2.5 Volts, la sortida val 0 Volts; i per a valors entre 2.5 i 5 Volts, la sortida val 15 Volts. · Si el bus de dades extern del micro és de 16 bits el Buffer 1 no funciona, mentre que el Buffer 2 sí. En aquest cas sols es necessària una escriptura per aconseguir la conversió. Les línies D0 – D7 entren directament a la part baixa del conversor, mentre que les línies D8 – D15 van a parar a la part alta del conversor a través del Buffer 2. Tota la resta funciona com en el cas anterior. La figura següent ens mostra la configuració del conversor. Es tracta d’una configuració unipolar amb valors de tensió de sortida entre 0 i 10 Volts. Com el conversor és de 16 bits, la seva resolució serà de 152.59ìV. Per aconseguir aquesta configuració es posen dues resistències; una entre Span/Bipolar Offset (Piu 26) i VOUT (Piu 25), i l’altra entre RefOut (Piu 28) i refien (Piu 27). És possible utilitzar el conversor sense cap d’aquestes resistències, unint directament els respectius pius, però això incrementa el guany d’error en un 0.25%.
Memòria descriptiva
48
Figura 28
· Les línies de control del conversor són les corresponents als pius 5, 6 i 23. En l’esquema de la figura anterior l’interface lògic del AD669 consisteix en dos Latch de 16 bits. En el primer registre de 16 bits les dades provenen directament del bus de dades. Quan ja s’ha carregat el primer registre, cal carregar el següent per a que el DAC converteixi la dada. El Primer registre està controlat pels senyal CS i L1. Cada un d’aquests senyals s’activa per nivell baix; això vol dir que quan el dos senyals estan a nivell baix la dada entra al Latch, i quan un d’ells està a nivell alt la dada queda fixada al Latch. El segon registre es controlat pel senyal LDAC. Aquest s’activa per nivell alt. Les dades presents al Latch quan el senyal és a nivell alt entraran en el registre LDAC, d’aquí que el conversor canvia d’estat a mesura que varia la dada. Quan LDAC es desactiva ( 0 Volts) la dada queda fixada a l’entrada del DAC. Aquestes 3 línies de control estaran unides entre si, de manera que quan la línia de control valgui “0” es carregarà el primer Latch, mentre el segon manté el valor anterior (El conversor encara converteix la dada anterior). Quan el senyal de control passa a valer “1”, el primer registre fixa la dada i el segon registre deixa passar la dada al DAC, el qual la converteix. La taula següent mostra el funcionament dels dos registres depenent dels seus senyals de control.
CS! L1! LDAC Operació
0 0 X Primer registre transparent X 1 X Primer registre fixat 1 X X Primer registre fixat
X X 1 Segon registre transparent
X X 0 Segon registre fixat
0 0 1 Tots el registres transparents
Taula 16
16 Bits Latch
16 Bits Latch
16 Bits DAC
6
5
23
27
28
1 2 3 4
24
25
26
7 2250 o
hm
50 o
hm
MSB LSB
Output
GND
VEE VCC VLL
LDAC
L1
C1
Memòria descriptiva
49
1.3.3.2 Control d’escriptura. Aquesta par és formada per tres portes NOR (74HC02), quatre portes NAND (74HC00) i un flip-flop tipus D (74HC74). Gestiona les línies de control del conversor, del Latch d’adreces(U8), del Latch de dades (U5) i del temporitzador NE555 (U11).. En la figura següent es mostra l’esquema circuital d’aquesta part.
Figura 29 Si el bus extern de dades de la placa CPU és de 8 bits, s’han de connectar els jumpers JP4, JP6 i JP7. L’esquema lògic resultant d’aquestes connexions queda reflexat a la següent figura:
Figura 30
D
Q
QSET
CLR
..
Latch @
Latch Dades
Línies Control
NE555PCS
S2
WR
3.3uF
33Kohm
Vdd = 5V
B
U1A
74HC02
2
31
U1B
74HC02
5
64
U2A
74HC00
1
23
U2B
74HC00
4
56
U2C
74HC00
9
108
U2D
74HC00
12
1311
14
7
JP8
JP7
R6
U10A
74HC74
D2
CLK3
Q5
Q 6
PR4
CL1
U1C
74HC02
8
910
JP5
JP6
JP4
JP3
C45+
CLK dades
CLK adrecesSenyals de control DAC
DA
S-2
WR
Temporitzador
Memòria descriptiva
50
Latch @ à És el senyal que provoca l’emmagatzemament de les línies d’adreces, en el Latch d’adreces (U8). S’activa a la segona escriptura. Latch Dades à És el senyal que provoca l’emmagatzemament del bus de dades en el Latch de dades (U5). Aquest senyal s’activa en la primera escriptura. Línies de control à Controlen el conversor (U7) i els seus registres interns correspon als senyals CS, L1 i LDAC. NE555 à És la línia que activa el temporitzador per a que el Sample and Hold tingui temps d’emmagatzemar el valor de tensió que li arriba del conversor D/A. El circuit del biestable està format per un circuit RC alimentat a 5 Volts. La funció d’aquesta xarxa és la d’assegurar que a l’engegar l’aparell el biestable es trobi en l’estat 0 (Q=0 i Q!=1). Al engegar, el condensador està descarregat per tant a l’entrada RESET del biestable hi ha un nivell baix, mentre que a l’entrada SET hi ha un nivell alt (Això provoca un reset de Q). A mesura que passa el temps el condensador es carrega fins a valer “1”. Es pot apreciar la presència de tres portes NAND en cascada. La funció d’aquestes és la de produir un petit retard per a que el senyal del biestable arribi abans a l’última porta NOR. Sense la presència d’aquest retard es corre el perill de produir-se el senyal LDAC en la primera escriptura i en la segona; quan sols s’ha de produir en la segona. En el cronograma següent es pot apreciar l’evolució dels senyals:
Figura 31
T1 à Correspon al temps de retard introduït per les portes NAND. En Aquest cas LDAC (Conversió) es dóna només a la segona escriptura. En cas de no posar retard (B*) es produeix un glitch al senyal LDAC en la primera escriptura, degut a que en un petit instant a la porta NOR arriben dos nivells baixos simultàniament (B* i Q).
PCS, S2, WR
Q
CLK
B
LDAC
B*
LDAC*
t1
Glitch
Primera Escriptura Segona Escriptura
Memòria descriptiva
51
En una primera escriptura els senyals de control provinents del micro (S2, WR i PCS) es posen a zero, amb la qual cosa el biestable canvia d’estat (Q = 0 à Q = 1). Això provoca que es Latxin les línies de dades que correspondran a la part alta de la dada a convertir (DB8-DB15), però no es dona el senyal LDAC. A la segona escriptura es tornen a activar les línies de control de micro. També es Latxen les línies d’adreces que indicaran a quin sensor va dirigida la dada. El biestable torna a canviar d’estat (Q = 1 à Q = 0) cosa que provoca el senyal LDAC que permet la conversió de la nova dada. S’activa el senyal Trigger que dispara el temporitzador NE555 el qual té la funció de donar temps al Sample and Hold a emmagatzemar la dada. Si la placa del micro que controla aquesta placa té un bus de dades extern de 16 bit, llavors s’han de connectar els jumpers JP3, JP5 i JP8. Un cop configurada, l’esquema funcional és el següent:
Figura 32 Tot el procés es realitza en un sola escriptura. Al escriure el valor a convertir es donen tots els senyals: es Latxen les línies d’adreces (Latch @), es donen els senyals de control del conversor (Línies de control) i s’activa el Trigger del temporitzador (NE555).
Latch @
Línies Control
NE555
PCS
S2
WR
Memòria descriptiva
52
1.3.3.3 Emmagatzematge de dades analògiques. Els components emprats en aquesta part son dues portes NAND (74HC00), un temporitzador (NE555), dos decodificadors 1 a 8 (74HC238) i 14 Samples and Hold (LF398). L’esquema circuital d’aquesta etapa és:
Figura 33
· Sample and Hold. Aquest dispositiu és l’encarregat de mantenir la tensió analògica que es desitja enviar al Heater corresponent durant el temps que es triga a enviar les diferents tensions a tots i cadascun dels Sample and Hold de la placa i torna a ser el torn del mateix.
Figura 34 Quan l’entrada TR, provinent dels multiplexors digitals (U27 o U28), es posa a “1” (5 V) llavors la tensió que es troba a l’entrada SH, provinent del multiplexor analògic (U12) es va carregant al condensador de càrrega (C). Depenent del valor d’aquest condensador, es carregarà més o menys ràpidament i, el temps de descàrrega, també en depèn. El temps de
VccVcc
Vee
TRS
SHLF398
+
-
3
85
1 24 6 7
C
Vdd
TR12
TR4
TR2
TR10
TR6AD1
TR15
AD3
TR14
TR1
TR13
TR3
TR9
TR11
TR5AD2
TR8
TR7
TR0
AD0
Senyal tret per 16 bits
Senyal tret per 8 bits
JP8 U27
74HC238
A1
B2
C3
G16
G2A4
G2B5
Y0 15
Y1 14
Y2 13
Y3 12
Y4 11
Y5 10
Y6 9
Y77
C47
U28
74HC238
A1
B2
C3
G16
G2A4
G2B5
Y015
Y114
Y213
Y312
Y411
Y510
Y69
Y77
U11
NE555
TR2
CV5
Q3
DIS7
THR 6R
4
VC
C8
GN
D1
JP7
C46
U3A
74HC00
1
23
U3B
74HC00
4
56
R5
Memòria descriptiva
53
càrrega pel condensador emprat, i per a una error d’un 1% és de 100µs. Quan l’entrada TR es fica a “0” el valor queda fixat a la sortida (S). El decrement de la tensió de sortida en funció del temps és de 0.01mV/s. · Decodificador de 1 a 8: S’han utilitzat dos decodificadors per a poder tenir les 14 línies de control necessàries per controlar els Sample and Hold. Quan al decodificador li arriba el senyal del NE555 al seu piu Chip Select corresponent, la sortida escollida per les adreces A0-A2, es fica a “1”, mentre que la resta es queden a “0”. Aquest senyal és el que donarà l’ordre d’emmagatzemar la tensió al Sample and Hold (entrada TR). La línia d’adreça A3 serveix per discriminar a quin dels dos decodificadors s’accedeix, ja que cadascun d’ells només controla 8 línies. Si A3 = 0, es controlen els 8 primers Sample and Hold (decodificador U28), i si val “1”, els 6 restants (decodificador U27). · Temporitzador NE555: La funció del temporitzador és la d’incrementar el temps en que es passa de fer Sample (mostreig) a fer Hold (retenció). Això és necessari ja que la tensió a guardar triga un cert temps a arribar a l’entrada del LF398 per les següents causes:
- Temps de conversió de digital a analògic (≈13µs). - Temps que triguen els A.O. a adaptar el senyal (≈ 30µs). - Temps que triga el condensador C del LF398 a carregar-se (≈100µs).
És per aquest motiu que s’ha decidit provocar un temps d’espera d’uns 200µs; per assegurar que la tensió que es retén és la correcta.
Figura 35 El Trigger s’activa a la segona escriptura en el cas de tenir un bus de 8 bits i, a la primera, en el cas d’un de 16. L’evolució temporal de la sortida del NE555 es pot apreciar a la part dreta de la Figura anterior. La durada del pols depèn del valor de R1 i C1, i en el nostre cas és de 200ìs
NE555Trigger
R1 = 3K9ohmsVdd= 5 V
Vout
2
5
1
6
7
3
84
C147nF
100nF
TR
CV THR
DIS
OUTR
GND
Vcc
NE555
Vout
t200us
Memòria descriptiva
54
Mentre aquest senyal està a “1”, els decodificadors estan en funcionament, donant al LF398 el senyal de Sample. Un cop el senyal cau a “0”, els decodificadors deixen de funcionar, entregant el senyal Hold al LF398. La durada del pols fa que el temps mínim entre una escriptura a un dels Heaters i una altra, sigui de 200µs. Com que el temps de cicle mínim serà d’uns 100ms aquesta limitació no representa cap inconvenient. 1.3.3.4 Cronogrames: Aquests cronogrames fan referència a un cicle complert d’escriptura a la placa. En aquest primer cronograma es pot apreciar l’evolució temporal dels senyals durant el primer i segon accés en cas d’un bus de 8 bits. Els senyals mostrats són els següents: · PCS, WR, S2. Quan aquests tres senyals es fiquen a zero en el mateix instant vol dir que s’està direccionant cap a aquesta placa i, a més, per escriptura (no s’hi accedeix en cap cas per lectura).
· Q. Representa la sortida del biestable. Indica en quin dels dos accessos ens trobem.
· Q0...Q7. Representen les sortides del Latch de dades, el qual emmagatzemarà la part alta de les dades en el primer accés per, al segon fer servir els mateixos 8 bits per donar la part baixa al conversor D/A.
· Trigger del Timer. Dóna el tret de sortida al temporitzador perquè aquest generi el pols requerit pels Sample and Hold.
· A0...A3. Són les sortides del Latch d’adreces. Aquestes adreces indiquen a quin sensor va dirigida la dada.
· LDAC. Quan es fica a “1”, deixa passar la nova dada a convertir. Al baixar a zero, aquesta queda fixada.
· Vout. Representa el valor analògic de sortida del conversor.
· LM324. Mostra el variació temporal dels senyals de selecció de canal del multiplexor analògic, des de que li arriben del Latch d’adreces.
· Timer. És representada la durada del pols de sortida del temporitzador, que anirà a l’entrada TR dels Sample and Hold.
Memòria descriptiva
55
Figura 36
En el segon cronograma es reflexen les variacions temporals dels senyals durant l’únic cicle d’escriptura que es realitza quan el bus de dades és de 16 bits. És bastant semblant a allò que es veu en el segon accés del cas anterior, però amb la salvedat de què el senyal LDAC canvia abans, degut a què aquest senyal recorre un camí diferent que en el cas anterior. El cronograma és el següent:
Figura 37
Primer accés Segon accés
Escriptura
Q
Q0...Q7
Trigger
A0...A3
LDAC
Vout
LM324
Timer
13us
30us
200us
8ns
10ns
8ns
5ns
25ns
20ns
10ns
E s r i p t u r a
L D A C
T r i g g e r
A 0 . . . A 3
V o u t
T i m e r
L M 3 2 4
1 5 n s
5 n s
1 3 u s
3 0 u s
1 0 n s
2 0 0 u s
Memòria descriptiva
56
1.3.4 Placa de conversió d’analògic a digital A aquesta placa li arriben les tensions provinents dels sensors. Aquestes tensions que arriben dels dos extrems de cada un dels sensors es fan passar a través de dos multiplexors analògics de 16 canals cada un d’ells (U1, U2). Aquests multiplexors seleccionen la tensió diferencial del sensor que es vol mostrejar, la qual es referència a massa i s’amplifica mitjançant un amplificador d’instrumentació (U3) per tal de poder ser convertida en una dada digital. Un cop la dada ha estat convertida ja esta llesta per ser llegida i emmagatzemada a la placa del microprocessador. El procediment per a convertir una dada és el següent: · Primerament es realitza un cicle d’escriptura a l’adreça 100H de l’espai d’entrada i sortida. La dada que s’escriu a aquesta adreça és el valor del canal que es vol seleccionar. Aquest cicle també serveix per donar al conversor l’ordre de conversió. · Si el microprocessador té un bus extern de 8 bits s’hauran de realitzar dues lectures consecutives a la mateixa adreça: a la primera llegirem la part baixa de la dada convertida i a la segona llegirem la part alta. Si el bus del micro és de 16 bits, només caldrà fer una lectura. · Suposant que es volen fer dues lectures consecutives del mateix sensor, prèviament s’ha d’haver realitzat un cicle d’escriptura dient de quin sensor volem llegir (encara que sigui el mateix). Això es fa perquè l’ordre de conversió es dóna fent aquest cicle d’escriptura. 1.3.4.1 Multiplexor analògic Els multiplexors analògics emprats són els HEF4067B. Aquest multiplexor és bidireccional; això vol dir que quan hi ha un canal seleccionat, l’informació pot circular tant en un sentit com en un altre. Aquest integrat està alimentat entre 0 i 5 volts; això implica que els valors de tensió que circularan a través d’ell han d’estar compresos entre aquests dos valors. És per aquests motiu que les tensions diferencials d’entrada estan restringides a 3 volts. Tot i que podrien circular 5 volts, es deixa un marge de seguretat de 2 volts per evitar les alinealitats que es podrien produir en tensions d’entrades molt properes a la de l’alimentació. Per seleccionar el canal desitjat es disposa de 4 entrades digitals. Els senyals que arriben a aquestes entrades provenen d’un Latch (U4) que, durant el cicle d’escriptura captura la dada que indica el canal que es vol seleccionar.
Memòria descriptiva
57
L’esquema de connexió dels multiplexors és el següent:
Figura 38
1.3.4.2 Amplificador d’instrumentació. Bàsicament compleix dues funcions: referir la tensió diferencial que hi ha entre les sortides dels multiplexors analògics a massa, i amplificar aquesta tensió per tal d’aprofitar al màxim possible el rang de tensions d’entrada del conversor analògic-digital (U5) i tenir així la màxima resolució possible. El guany d’aquesta etapa és de 3 V/V. La tensió diferencial màxima que hi haurà en els multiplexors serà de 3 volts, que amplificats pel guany de l’amplificador d’instrumentació, donarà una tensió màxima d’entrada al conversor de 9 Volts. Com ja es comentarà més endavant (consultar la secció del conversor analògic-digital), el rang de tensions d’entrada del conversor és de ±10 V. L’amplificador d’instrumentació està implementat mitjançant 3 amplificadors operacionals i 7 resistències. És el típic muntatge en què hi ha dues etapes, la primera de les quals (U3A i U3B) dóna una alta impedància d’entrada i és la que dóna el guany. La següent etapa és un amplificador diferencial de guany unitat, que referència la tensió de l’etapa anterior a massa i li dóna un gran factor de rebuig en mode comú (U3C).
ADWE
D3D2D1D0
S+14S+13
S+15
S+12S+11S+10S+9S+8S+7S+6S+5S+4S+3S+2S+1S+0
S-12S-13S-14
S-7
S-5S-6
S-0
S-9
S-2
S-10S-11
S-3
S-1
S-4
S-15
S-8
HEF4067U1
Z 1
Y72
Y63Y54
Y45
Y36Y27
Y18
Y09
A0 10A1 11A3
13A2 14
E!
15
Y1516Y1417
Y1318
Y1219Y1120
Y1021
Y922Y823
74HC374
U4
D0 3D1 4D27D3 8D4 13D514D6 17D7 18
OC 1CLK 11
Q02 Q15 Q26 Q39 Q412 Q5
15 Q616 Q719
HEF4067U2
Z 1
Y72
Y63Y54
Y45
Y36Y27
Y18
Y09
A0 10A1 11A3
13A2 14
E!
15
Y1516Y1417
Y1318
Y1219Y1120
Y1021
Y922Y823
conn. micro
V+ AMP. INSTRUMENTACIO
V- AMP. INSTRUMENTACIO
CONNECTOR SENSORS
Memòria descriptiva
58
L’esquema de l’amplificador és el següent:
Figura 39
1.3.4.3 Conversor d’analògic a digital. El conversor utilitzat és el LTC1605. Es tracta d’un conversor de 16 bits amb una freqüència de mostreig màxima de 100KHz. Aquest conversor porta integrat un Sample and Hold a la seva entrada, una referència interna de tensió de precisió, un conversor A/D d’aproximacions successives de capacitats commutades i un Clock intern sincronitzat. El rang de tensió d’entrada del LTC1605 es tracta d’un estàndard industrial de ±10 V. Per poder millorar la seva exactitud enfront la temperatura, es pot fer servir una referència de tensió externa, però en aquest muntatge no s’ha implementat aquesta entrada. La seva sortida és formada per un port paral· lel de 16 bits ó 2 bytes, compatible amb un microprocessador. També incorpora una entrada d’inici de conversió, un senyal de dada preparada per lectura (BUSY), facilitat de connexió a FIFO’s, DSP i microprocessadors. Per facilitar la interconnexió amb un microprocessador amb un bus de dades de 8 bits, aquest conversor disposa d’una entrada (BYTE) mitjançant la qual es poden intercanviar el byte alt i el byte baix de la seva sortida. Si aquesta entrada està a nivell baix, el byte baix surt pels pius del 15 a 22, i l’alt del 6 al 13. Si està a “1”, s’intercanvien. Per a poder realitzar la conversió es necessari que l’entrada Chip Select estigui a nivell baix i que per l’entrada Read Convert (R/C) li arribi un pols a nivell baix d’una durada mínima de 40ns.
Vcc
Vcc
Vcc
Vee
VeeVee
U3A
LM324
+
-
3
21
411
U3BLM324
+
-
5
67
411
U3CLM324
+
-
10
98
411
R1
R2
R3
R4
R5
R7
R6MUX_1
MUX_2
CONV A/D
Memòria descriptiva
59
El fabricant recomana afegir una xarxa de filtratge a l’entrada del conversor formada per dues resistències i un condensador. També recomana afegir uns condensadors als pius on hi han les tensions de referència. El muntatge de configuració d’aquest dispositiu ha estat el d’aplicació típica que es mostra a continuació:
Figura 40
El muntatge bipolar anterior codifica el resultat del senyal mostrejat de forma diferent per les tensions positives que per les negatives. Mentre que pels senyals positius el bit de més pes és “0” i la resta és el mòdul de la tensió, per les negatives el bit de més pes val “1” i la resta és el mòdul codificat en complement A1. Això vol dir que sense tenir en compte el signe els bits del mòdul s’han canviat els “0” per “1” i viceversa. En el cas del present projecte les tensions a llegir seran sempre positives. La taula següent mostra la codificació en funció de la tensió d’entrada:
Taula 16
011...111
011...110
000...001
000...000
111...111
111...110
100...001
100...000
0V-1 1-FS/2 FS/2-1LSB
LSB LSB
TENSIO D'ENTRADA (V)
CODI DE SORTIDA
FS = 20V1LSB = FS/65536
ZERO BIPOLAR
Vin+/-10 V
R8
R9C1
C4,C5
C2,C3
CAP
REF
BUSY
CS
R/C
BYTE
Senyals digitals de control
D15:0 16 bits o 2 bytes, bus paral·lel
LTC1605
Memòria descriptiva
60
1.3.4.4 Flip-flop El Flip-flop emprat és un 74HC74 (U8). La funció que desenvolupa és la d’intercanviar la part alta i la part baixa de la paraula de 16 bits que dóna el conversor en el cas que el bus extern de dades del microprocessador emprat sigui de 8 bits. Durant el cicle d’escriptura, al Flip-flop se li realitza un Set (posada a “1” del seu senyal de sortida). Aquesta inicialització es fa per tal que en el cicle de lectura partim sempre d’un mateix estat. En fer el primer cicle de lectura, als 8 bits del bus de dades hi haurà el Byte baix, i a la segona lectura, el Byte alt. Els senyals que arriben al Flip-Flop són ADRE i ADWE. El primer s’activa a cada cicle de lectura i fa canviar d’estat el biestable. El segon senyal li arriba durant el cicle d’escriptura i inicialitza el senyal de sortida del biestable a “1”. El senyal de sortida controla l’entrada BYTE del conversor, que determina com surten el Byte alt i el baix. L’esquema de connexió d’aquest biestable és el següent:
Figura 41
1.3.4.5 Multivibrador monoastable Aquest integrat és el 74HC221 (U10). La funció que desenvolupa és donar el pols de conversió al conversor A/D, amb l’amplada que recomana el fabricant. S’ha escollit aquest integrat, perquè és el mostrat en el muntatge d’aplicació dels fulls de característiques del conversor. Per programar l’amplada d’aquest pols, el chip disposa de dos pius on es connecten una resistència i un condensador. Depenent dels seus valors, aquest pols tindrà més amplada o menys. En el cas que ens ocupa, la durada del pols ha d’ésser de 40ns. El senyal que controla el tret del multivibrador és ADWE. Com ja s’ha esmentat anteriorment, això és així perquè és en el cicle d’escriptura que se li dóna l’ordre al conversor de convertir la tensió. El senyal de sortida del multivibrador controla l’entrada R/C del conversor.
Vdd
ADWE
ADRE
BYTE
U6B
74HC74
D12
CLK11
Q9
Q8
PR10
CL13
VCC14
GND7
U5A
74HC00
1
23
Memòria descriptiva
61
L’esquema de muntatge és el següent:
Figura 42
1.3.4.6 Buffers Els Buffers emprats són del tipus 74HC244 (U6 i U7). Són dos Buffers de 8 bits cada un, de tipus monodireccional, amb sortida tri-state. És necessari ficar-los per dues raons: · Donen la potència suficient als senyals perquè puguin arribar bé les dades, al microprocessador, a través del cable de cinta pla. · En cas de què no s’estigui accedint a aquesta placa, els Buffers tindran les seves sortides en estat d’alta impedància, la qual cosa fa que s’eviti ficar dades al bus que puguin interferir amb altres. El primer dels Buffers (U6) és el que està connectat als pius de15 a 22 del conversor A/D i és el que sempre funciona, tant si el microprocessador és de 8 bits de bus de dades extern, com de 16 bits. El senyal que controla aquest Buffer és ADRE, per tant ficarà dades al bus a cada cicle de lectura de la placa. El segon dels Buffers (U7) només funcionarà en cas de que aquesta placa estigui connectada a un microprocessador de 16 bits de bus de dades extern. Per fer això existeix un jumper a la placa que s’haurà de canviar de posició en funció d’un cas o l’altre. Si el bus és de 8 bits, el jumper estarà ficat de manera que a l’entrada 1G i 2G els arriba un “1” i, per tant, les sortides estaran en alta impedància. Si és de 16 bits, el jumper estarà connectat de manera que a aquestes entrades d’habilitació els arribarà el senyal ADWE, el qual farà que el Buffer s’activi només durant el cicle d’escriptura a la placa.
Vdd
U10A
74HC221
CEXT14
REXT/CEXT15
A1
B2
CLR3
Q13
Q 4
VCC16
GND8
R8
R/CADWE
Memòria descriptiva
62
L’esquema de connexió dels Buffers és el següent:
Figura 43
Vdd
U7
74HC244
1A12
1A24
1A36
1A48
2A111
2A213
2A315
2A417
1G1
2G19
1Y118
1Y216
1Y314
1Y412
2Y19
2Y27
2Y35
2Y43
U6
74HC244
1A12
1A24
1A36
1A48
2A111
2A213
2A315
2A417
1G1
2G19
1Y118
1Y216
1Y314
1Y412
2Y19
2Y27
2Y35
2Y43
JP1jumper3
22
11
33
U9C
74HC00
9
108ADRE
Q0:7
Q8:15
D0:7
D8:15
Memòria descriptiva
63
1.3.5 Placa de distribució dels senyals dels sensors Aquesta placa consta de 6 connectors i una regleta, per on arriba l’alimentació. El connector (J1) que ve de la placa D/A, porta les tensions analògiques que serviran de referència als circuits de control de potència dels heaters. N’arriben un total de 14, que es reparteixen entre els 4 connectors que van a la placa dels sensors de manera que a 3 d’aquestes plaques els arriben 4 tensions analògiques, mentre que a la quarta placa només n’arriben 2. Això és degut a què els sensors d’humitat i de temperatura de la quarta placa no tenen cap heater al qual se li hagi d’entregar potència i, per tant, no necessiten d’aquestes tensions de referència. El connector (J2) que va a la placa A/D, hi porta les tensions diferencials que li arriben dels 4 connectors de les plaques dels sensors. De cada una li arriben un total de 4 tensions fins i tot de la quarta, de la qual li arriben també les tensions dels sensors d’humitat i de temperatura. Als connectors de les plaques dels sensors, els arriba l’alimentació que donarà potència a aquestes plaques. Això elimina l’haver d’incloure algún altre tipus de connexió a les plaques dels sensors per tal de portar-los l’alimentació. L’esquema de connexió de la placa és el següent
Figura 44
Vcc=15V Vcc=15V
Vcc=15V Vcc=15VVee=-15V Vee=-15V
Vee=-15VVee=-15V
S1+ S1- S5+ S5-S2+ S2- S6+ S6-
VH1 VH2 S3+ S3- S7+ S7-VH3 VH4 S4+ S4- S8+ S8-VH5 VH6 VH1 VH2 VH5 VH6VH7 VH8 VH3 VH4 VH7 VH8VH9 VH10VH11 VH12VH13 VH14
S9+ S9- S13+ S13-S1+ S1- S10+ S10- S14+ S14-S2+ S2- S11+ S11- S15+ S15-S3+ S3- S12+ S12- S16+ S16-S4+ S4- VH9 VH10 VH13 VH14S5+ S5- VH11 VH12S6+ S6-S7+ S7-S8+ S8-S9+ S9-S10+ S10-S11+ S11-S12+ S12-S13+ S13-S14+ S14-S15+ S15-S16+ S16-
J1
CON16A
13579111315
2468
10121416
J2
CON34A
13579
111315171921232527293133
246810121416182022242628303234
J5
CON20A
13579
1113151719
2468101214161820
J3
CON20A
13579
1113151719
2468101214161820
J4
CON20A
13579
1113151719
2468101214161820
J6
CON20A
13579
1113151719
2468101214161820
Memòria descriptiva
64
1.3.6 Placa dels sensors Primerament s’ha de comentar que només s’explicarà la placa que s’ha realitzat, la qual està preparada per portar 4 sensors del tipus TAGUSHI, amb tota l’electrònica de control necessària. Per a cada sensor s’ha implementat una font de corrent de valor fix i una etapa de potència per excitar la resistència del heater. 1.3.6.1 Fonts de corrent Per realitzar la font de corrent. S’ha optat per utilitzar la tensió de referència que dóna l’integrat LM317, per tal de tenir una referència estable. El principi de funcionament d’aquesta font és el següent:
Figura 45
El corrent que circula per RI (IS) és proporcional a la tensió de referència VREF i depèn només d’aquesta tensió i d’aquesta resistència RI i és independent de RL. El corrent (IL) que circula per la càrrega RL és la suma de IS + IADJ. Aquest corrent IADJ és de valor reduït (uns centenars de µA), però es va pensar que seria bo intentar eliminar-lo o intentar reduir-lo el màxim possible. Per fer això, es va decidir aprofitar la propietat del curtcircuit virtual dels amplificadors operacionals i se’n va incorporar un al disseny:
Figura 46
LM317 RI
RL
IS
IL
IADJ
Vcc
VREF
LM317 R I
RL
IS
IL
Vcc
VREF
+
-
Memòria descriptiva
65
El curtcircuit virtual de l’amplificador operacional garanteix que entre els terminals de la resistència RI hi hagi la tensió VREF. El corrent IADJ és absorbit per l’amplificador operacional. Ara el corrent IL és pràcticament idèntic al corrent IS; la diferència que existeix entre aquests corrents és degut als corrents de polarització de l’amplificador operacional. S’ha escollit un TL082 perquè té uns corrents de polarització d’unes dècimes de µA. És important que sigui el més reduït possible, ja que la impedància de sortida de la font dependrà d’aquesta diferència entre IS i IL, i aquesta ha d’ésser el més elevada possible. 1.3.6.2 Etapa de potència pels heaters Seguint les especificacions dels sensors TAGUSHI, la tensió que ha d’alimentar els heaters dels sensors ha de ser de 5V com a màxim. També està indicat a les especificacions que la resistència que presenta aquest heater és de 38±3 Ω. Per tant, la potència màxima que s’ha d’entregar a cada un d’ells és d’uns 5/7 de W. Es fa necessària la incorporació d’un circuit que sigui capaç de donar aquesta potència màxima i que faci que la tensió que hi hagi al heater estigui en funció de la tensió de referència provinent de la placa de conversió D/A. El circuit dissenyat és el que es mostra a la figura següent:
Figura 47
El potenciòmetre P és per ajustar el guany de l’etapa a exactament ½ de la tensió d’entrada Vin. Això és així perquè el conversor D/A dóna una tensió màxima de 10V, i la tensió màxima que s’ha d’entregar a RH és de 5V. El transistor s’ha d’escollir perquè pugui dissipar la potència necessària per poder donar el corrent que el heater requereixi. A més, el guany del transistor ha d’ésser suficientment gran com perquè l’A.O. no se saturi en corrent.
R1
P
R2
+
-
A.O. Q
VinVcc
R3
RH
Memòria descriptiva
66
1.3.7 Font d’alimentació Aquesta placa és l’encarregada de donar l’alimentació a la resta de les plaques que conformen el projecte. D’aquesta placa sols s’ha realitzat l’estudi teòric. És formada per una font de +5 volts, per alimentar la circuiteria digital, i per un simetritzador de ±15 volts, per alimentar la circuiteria analògica.
Figura 48
1.3.7.1 Font d’alimentació de +5 volts Aquesta font esta formada per l’integrat LM7805 (U5), els condensadors C3, C6, C13, C14 i per els diodes D3 i D6. Aquest muntatge permet un senzill esquema de muntatge a costa d’un baix rendiment energètic, degut a que està constituït per un regulador de tensió lineal. El condensador C14 dóna estabilitat en la tensió de sortida enfront de càrregues capacitives, i el condensador C13 realitza la mateixa funció en cas de que el condensador de filtratge C3 estigui allunyat. S’ha implementat un rectificador d’ona complerta amb un pont de diodes (BR1). La tensió polsant que entrega aquest pont, es filtrada mitjançant el condensador C3. La tensió a l’entrada de l’integrat U5 és de 20 volts. Aquesta s’aconsegueix mitjançant l’ús d’un transformador de toma mitja i amb relació de transformació de 220 a 20,0,20. Tot i la reducció del nivell de tensió, es fa necessària la utilització d’un dissipador en el propi regulador de tensió amb una Rth 4K/W. La regleta de sortida J1 té un terminal (4) a la sortida d’aquest integrat. Mentre que la massa està connectada a la toma mitja del transformador i aquesta al terminal 2 de la mateixa regleta. D’aquesta manera aconseguim que les dues fonts d’alimentació estiguin en el mateix potencial de referència.
5V (màx 1.5A)
15V (màx 3A)
-15V (màx 1.5A)
GNDF1
6A
U1
ON/OFF
0 0
D1
D2D3
D4
D5
U2
LM78151
1
22
33
U3
LM781511
22
3 3
U4 LM7915
VI
GN
D VO
U5
LM78051
1
22
33
TR1
220Vac/20,0,20Vac
V1
220Vac, 50Hz
C3+
C13 C14
C6+
C1+
C2+ C5+
C4+
C12C11
C9 C10
C7 C8
BR1
B80 C 3200/2200
J1
CON4
1234
D6
Memòria descriptiva
67
1.3.7.2 Font de tensió simètrica de ±15 volts Aquesta font està formada pels integrats U2 (LM7815), U3 (LM7815) i U4 (LM7915), i pels components C1, C2, C4, C5, C7:12, D1, D2, D4 i D5. Els raonaments exposats en el punt anterior són aplicables d’igual forma en aquest apartat. Cal ressaltar l’ús de l’integrat LM7915 (U4) que és el complementari del LM7815. En aquest cas el condensador de filtratge d’entrada es format pels condensadors C1 i C2. La resta de condensadors realitzen la mateixa funció que en el punt anterior. La sortida de +15 volts està connectada al terminal 1 de la regleta de sortida. En el terminal 3 es troba la tensió negativa de –15 volts. La massa està connectada al terminal 2 i a la toma mitja del transformador. S’ha d’apreciar que en la tensió de +15 volts s’han unit, en paral· lel, dos integrats iguals (U2 i U3), d’aquesta forma s’aconsegueix el doble de corrent per a la seva sortida. Si un sol integrat pot proporcionar 1.5A, amb aquesta unió aconseguim 3A. La diferència de consum en aquesta línia, en respecte les altres, es deu a que alimenta la part de potència i fonts de corrent de les plaques dels sensors. En l’entrada dels integrats U2 i U3 hi ha una tensió de 20 volts, i en l’entrada de l’integrat U4 hi ha una tensió de –20 volts. Això s’aconsegueix amb el transformador de toma mitja explicat en el punt anterior. Per evitar escalfaments en els integrat es aconsellable d’introduir dissipadors de Rth 4K/W.
Memòria descriptiva
68
1.4 Incidències i resolució de problemes 1.4.1 Placa CPU Primer de tot hem de dir que aquesta placa s’ha muntat en dues ocasions. La diferència entre les dues és que en la segona es va incloure un Buffer al bus de dades que anava als dispositius d’entrada i sortida. Al primer disseny aquest dispositiu no es va implementar. El motiu d’aquest canvi s’entendrà un cop llegit aquest apartat. · Problema 1 Per tal de comprovar el correcte funcionament d’aquesta placa, es va fer ús de l’únic emulador del 80C188XL, que disposava a la facultat. Aquest emulador va ser dissenyat per uns alumnes de la facultat com a projecte final de carrera. Per familiaritzar-nos amb ell, es va voler muntar en un dels ordinadors de la facultat disponible per als projectants. L’emulador disposa d’una placa de comunicació que va connectada a un dels Slots ISA de què disposa un PC. Aquesta placa de comunicació es connecta a la placa de l’emulador, a través d’un cable de cinta pla, i aquesta placa es connecta a la placa on hauria d’anar el microprocessador, a través d’un cable de cinta pla a un adaptador per a un sòcol PLCC de 68 pius (sòcol del micro). Es va muntar la tarja de comunicacions al PC que se'ns va ser assignat, i aquesta a l’emulador. Es va instal· lar el software de control i es va executar el programa d’exemple de què disposa l’emulador. Al intentar executar el programa d’emulació, aquest donava un error en la comunicació. Es varen repassar les connexions i la configuració de les targes, tant a nivell de hardware com a nivell de software. Després de comprovar que no hi havia cap error, es va tornar a intentar executar el programa i aquest va donar el mateix error. Després de varis intents infructuosos, es va decidir canviar la placa de comunicacions de slot del PC. El resultat va ser negatiu en tots els intents. Es va demanar permís als responsables dels laboratoris per canviar la placa de comunicacions a un altre ordinador. Ens van concedir el permís i es va canviar de PC la targeta. Es va tornar a instal· lar el software i a configurar tot de nou. Es va executar el programa en diverses ocasions, donant un resultat negatiu en totes elles. A partir d’aquest moment es va pensar en la possibilitat de què el problema pogués ser o bé de la placa de comunicacions o de la pròpia tarja de l’emulador. Es va decidir de posar-se en contacte amb els alumnes que van realitzar el projecte de l’emulador i explicar-los els problemes. Ells van anar personalment al laboratori i ens van ajudar en tot el procés de muntatge, instal· lació de software, configuració i execució del programa emulador, però l’emulador continuava donant el mateix error de comunicació. El següent pas va ser comprovar si la targeta de comunicació funcionava o no. Vàrem rebre autorització per tal de canviar les PIES (80C255) de la placa de comunicació i de la placa emuladora per unes de noves, per si el problema venia d’aquests integrats, ja que els propis creadors de l’emulador van informar-nos de què van tenir problemes amb aquests integrats i el programa els donava el mateix error de comunicació. Però al efectuar aquest canvi, l’emulador continuava donant el mateix problema. El següent pas va ser escriure un petit programa en llenguatge ensamblador, utilitzant el programa DEBUGGER del sistema operatiu MS-DOS, el qual accedia directament a la PIA de la tarja de comunicacions i comprovava el seu funcionament. El resultat d’aquest experiment va ser satisfactori i, la conclusió que es va treure va ser que el problema no venia de la tarja de comunicacions. A partir d’aquí pensarem que el problema es podia centrar en la pròpia placa de l’emulador. Es va portar aquesta placa a casa dels seus projectants per provar-la ja que ells tenien instal· lada en el seu ordinador una tarja de comunicacions igual. Es va crear un petit programa per provar l’emulador i la tarja
Memòria descriptiva
69
emuladora va funcionar perfectament. Aquest mateix programa el vàrem portar al laboratori de la facultat i al intentar executar-lo en l’emulador aquest no va funcionar (continuava donant el mateix problema de comunicació). Es va plantejar el problema als responsables dels laboratoris i aquests es van oferir a ajudar-nos a tornar a reinstal· lar-ho tot un altre cop. Però la tarja continuava sense poder comunicar-se amb el PC. Això es va provar de fer en diversos PC’s del laboratori, i no vàrem ser capaços de fer-lo funcionar. · Solució Problema 1 El següent pas, ja que en la casa del projectants va funcionar l’emulador, va ser demanar permís per poder portar el material de l’emulador a la nostra pròpia casa. Vàrem muntar l’emulador al nostre PC i la tarja de comunicació i la placa de l’emulador varen funcionar perfectament. Llavors demanarem de poder tenir l’emulador a casa fins a finalitzar el projecte, i ens el van concedir. A partir d’aquí vàrem provar l’emulador, sense connectar-lo a la nostra placa del micro, per a familiaritzar-nos amb ell, i no va sorgir cap problema. · Problema 2 Un cop familiaritzats amb el funcionament de l’emulador i amb la programació del micro, es va passar a la fase de connectar-lo a la placa del micro. Es va realitzar un petit programa que accedia a les PIES de la nostra placa i escrivia diferents valors. Es varen repassar les connexions (alimentació, la connexió de l’emulador a la placa del micro i a la placa de comunicacions al PC) i un cop comprovat tot es va executar el programa emulador. Per depurar la nostra placa del micro es va executar el programa de prova pas a pas, per poder comprovar el valor dels registres interns del microprocessador. Vam comprovar que al accedir a les PIES per escriure uns valors determinats als seus ports, no es veien reflexats aquests valors. El següent pas va ser comprovar el programa per verificar que les adreces eren les correctes i que programàvem correctament la PIA. Però aquest no era el problema ja que tot el codi era correcte. Seguidament vàrem comprovar la continuïtat de les pistes, de les soldadures de la placa i dels senyals del micro provinents de l’emulador, però totes les pistes estaven correctes. Es va decidir de canviar els Chips de les PIES per si estaven malmeses, però seguien sense funcionar. El següent que vàrem sospitar fou que el senyal de Chip Select de la PIA no arribés correctament. Per a comprovar-ho es va realitzar un muntatge amb un Flip-flop (74HC74) que canviava d’estat cada cop que s’enviava un senyal de Chip Select a la PIA. L’esquema d’aquest muntatge és el que es mostra a continuació:
Figura 49
Q
D Q
C L KMicro
PIA
P C S 3 , 4 C S
D
R
Memòria descriptiva
70
Fent aquest muntatge vàrem comprovar que els senyal de Chip Select es realitzava correctament. Un cop arribat aquest moment vam realitzar un altre muntatge per a comprovar el bus de dades i adreces que arribaven a la PIA. En aquesta prova es va utilitzar el senyal de Chip Select per capturar el bus de dades i adreces que arribaven a la PIA, mitjançant un Latch (74HC374) i dos Flip-flops(74HC74). El Latch era per capturar el bus de dades, mentre que els biestables servien per capturar els dos bits d’adreces que arribaven a la PIA. Els leds que es poden veure a la figura 50 servien per facilitar-nos la lectura d’aquests senyals. Gràcies a aquest muntatge ens vàrem adonar que les dades circulaven bé, mentre que les adreces no eren les correctes. Després de repassar les connexions del Latch d’adreces i comprovar que eren correctes, es va decidir canviar aquest dispositiu. Es va tornar a executar el programa de prova de les PIES i el muntatge va mostrar-nos que aquest cop, tant dades com adreces eren correctes. Per a comprovar el bon funcionament dels ports, el programa de prova, escrivia un valor a cada port i després el llegia. Vam comprovar que el valor s’escrivia correctament, però que a l’hora de capturar-lo no el llegíem bé. Sabíem que els valors s’escrivien correctament ja que ho comprovàvem mirant bit a bit el valor dels ports mitjançant un multímetre (i el valor llegit de cada bit era l’esperat), i el valor de lectura era incorrecte ja que en el registre intern del micro destinat a realitzar la lectura, ens donava un valor que no era l’esperat. Aquesta prova es va realitzar als tres ports de cada una de les dues PIES, i escrivint diferents valors en cada un dels ports.
Figura 50
Q
D Q
CLK
MicroPIA
PCS3,4 CS
4k7
Q
D Q
CLK
4k7
LATCH
BUS MICRO
A0
A1
LATCHDADES
4k7
CLK
A1A0
Memòria descriptiva
71
Vàrem pensar en la possibilitat d’incloure un Buffer en el bus de dades de la nostra placa per si els senyals no tenien prou força com per ser correctament llegits per l’emulador. Va ser en aquest moment quan es va inspeccionar la placa de l’emulador per veure si hi havia implementat un Buffer en el bus de dades; per comprovar com s’havia realitzat el muntatge. Es va observar que, efectivament n’hi havia un. Mirant les seves connexions, vàrem veure que el seu Buffer s’activava a cada cicle de lectura o d’escriptura. L’esquema de la seva connexió és el següent:
Figura 51
Mirant la figura 51 es pot entendre la causa del problema de lectura. A l’hora de realitzar un cicle d’escriptura les dades circulen en el sentit del micro emulador cap a la resta de dispositius (dispositius de l’emulador i placa del micro), fins aquí no hi trobem cap problema. El problema es presenta a l’hora de realitzar un cicle de lectura ja que les dades que provenen de la placa del micro xoquen amb les dades que força el Buffer. Com que les dades del Buffer tenen més força i estan més a prop del micro que les que provenen dels nostres dispositius, aquestes se superposen a les nostres. · Solució Problema 2 Després d’observar l’emulador més atentament vàrem arribar a la conclusió de què el Buffer no era imprescindible pel seu correcte funcionament. Per solventar el problema es va extreure el Buffer i es van pontejar les seves entrades i sortides. Abans de continuar amb les proves de la placa del micro, es va comprovar que l’emulador continuava funcionant correctament després d’haver fet aquest canvi. Es va connectar l’emulador a la placa del micro i es va tornar a executar el programa de prova de les PIES. Continuava donant problemes a l’hora de llegir, però en aquest cas sempre es llegia el valor 00H. El següent canvi fou realitzar les modificacions necessàries sobre la placa del micro per incloure el Buffer al bus de dades (veure figura 2). Després d’aquest últim canvi la comunicació amb les PIES va funcionar en els dos sentits (lectura i escriptura). · Problema 3 El següent dispositiu a comprovar en la placa del micro va ser la UART (comunicació sèrie). Es va realitzar un programa en assembler per transmetre i per rebre caràcters a través de la UART. Per altra banda es va realitzar un altre programa en Visual Basic que realitzava les mateixes funcions i que s’executava sobre el COM2 del PC. Es varen
M I C R OE M U L A D O R
BUFFER
DISPOSITIUSPLACA
E M U L A D O R
P L A C A M I C R O
D E N
DT/R
Memòria descriptiva
72
transmetre alguns caràcters del PC cap a la placa del micro i del micro al PC. Com que els resultats varen ser bons, per a continuar amb les proves, es va repetir la placa amb els nous canvis ja que aquesta placa estava malmesa degut a totes les modificacions. En la nova placa vàrem comprovar el seu bon funcionament. 1.4.2 Placa de conversió de digital a analògic Aquesta placa es va muntar dos cops degut a un problema detectat en l’ensamblatge dels Sample and Hold en la primera. Un cop soldats els component de la placa es va passar a la fase de comprovació. Aquesta placa per al seu funcionament ha de ser controlada per la placa del microprocessador, però com que en aquell moment no es disposava d’aquesta placa es va optar per insertar manualment els senyals de control que hi havien d’arribar, la qual cosa es va realitzar amb un dels entrenadors lògics de què es disposa a la facultat. Aquestes proves van consistir en forçar a l’entrada del conversor una dada digital, convertir-la emprant els senyals de control i adreçar-la als diferents Sample and hold. Es van comprovar les tensions a les sortides del conversor i del multiplexor analògic. També es varen verificar els diferents senyals de control. El temporitzdor NE555 no es va poder comprovar a la mateixa placa ja que el senyal de TRIGGER (que dispara el pols de sortida) al haver de ser introduït manualment la seva durada era molt superior a la durada del pols que havia de generar el Timer, amb la qual cosa no es podia comprovar el seu correcte funcionament. Es va optar per realitzar el muntatge del temporitzador en placa protoboard i introduir un pols de Trigger de durada suficientment petita, mitjançant un generador de funcions. Es va visualitzar el seu pols de sortida mitjançant un oscil· loscopi i vàrem verificar que la seva durada era la desitjada ( 200µs). Com que els senyals de control es van introduir manualment (el temps de durada de cada senyal era relativament gran) era indiferent la presència o no del temporitzador, ja que la durada del seu pols de sortida era equiparable a la durada del temps dels senyals de control introduïts manualment. El temps de Sample, per tant, no era de 200µs, sinó que era molt superior (temps en què es mantenia manualment un senyal de control actiu). Això no implica cap inconvenient ja que com més temps se li doni al LF398 millor podrà capturar la tensió a retenir. · Problema A l’hora de comprovar les tensions en les sortides del Sample and Hold, la majoria d’ells no retenien el valor de la tensió. Durant uns dies es van realitzar proves per esbrinar el problema. Aquestes proves varen consistir en verificar el traçat del PCB al voltant de cada LF398 i comparant-lo amb el circuit típic d’aplicació d’aquest integrat. Es va comprovar que els circuits estaven ben dissenyats. La següent prova va consistir en treure els diferents integrats de la placa per veure si influenciaven en el LF398. No es va apreciar cap canvi, amb la qual cosa el problema no era degut a cap influència dels integrats. La següent fase va consistir en anar tallant les pistes que arribaven a l’integrat: · La primera en tallar va ser la pista del senyal analògic (que és per on entra el senyal a guardar), i introduirem el senyal directament al Sample and Hold emprant una font de tensió. No es va apreciar cap millora.
Memòria descriptiva
73
· La següent pista fou el senyal que mostreja o reté la tensió d’entrada. Introduíem aquest senyal de control directament des de l’entrenador lògic. Això no va donar cap resultat positiu. · Per últim vàrem tallar les alimentacions del LF398 i es va alimentar directament des de la font d’alimentació mitjançant dos cables. Tampoc es va resoldre el problema. El següent pas va consistir en canviar el condensador electrolític de 0.1µF per un altre de MKT de 100nF, ja que el condensador és més sensible a la temperatura i es temia que s’hagués corromput durant el procés de soldatge. Però el Sample and Hold seguia sense retenir la tensió d’entrada. Al veure que no hi havia cap altre error es va pensar que possiblement el problema venia del propi integrat. Es va treure del sòcol de la placa i es va fer el mateix muntatge sobre placa protoboard. Aquest muntatge va funcionar perfectament tant amb un condensador electrolític, com amb un MKT. Això ens va fer sospitar que el condensador es descarregava a causa d’uns corrents de fugues. Com que els bornes del condensador no anaven a cap altre lloc més que a dos pius del LF398, aquestes fugues havien de produir-se en aquestes connexions, ja que si s’haguessin produït a través de l’integrat, el muntatge sobre protoboard tampoc hagués funcionat. Un cop, tant el condensador com l’integrat LF398, es van desconnectar de la placa es va mesurar l’impedància que hi havia entre aquestes connexions mitjançant un multímetre, el qual va donar una lectura d’impedància al voltant de 1.3MΩ. Aquesta impedància paràsita paral· lela al condensador era la causa de què no es retingués la tensió a la sortida (el condensador es descarregava a través d’aquesta impedància). Un petit càlcul mostra que el temps de descàrrega era molt petit en comparació al que havia de ser: sFMCR 13.01.03.1 =∗Ω=∗= µτ (1) · Solució Problema Es va observar que la zona al voltant del LF398, del condensador i, en definitiva, en qualsevol punt on hagués una soldadura tenia un to brillant. Aquest era degut a la pasta de soldar emprada per muntar la placa, la qual entre pius consecutius s’unia i creava una impedància paràsita. Per assegurar que aquest era la font del problema, es va netejar la superfície de la placa i es va tornar a muntar l’integrat i el condensador. Aquest cop el Sample and Hold va retenir la tensió a la seva sortida. Com la placa no estava en condicions per realitzar més proves, es va repetir. Aquesta segona placa està muntada, però no s’ha realitzat cap prova sobre el seu funcionament. 1.4.3 Placa de conversió d’analògic a digital Igualment que la placa D/A, aquesta es va haver de provar introduint els senyals manualment, a través d’un entrenador lògic, degut a què la placa del microprocessador no estava implementada quan aquesta es va provar. Aquesta placa també s’ha hagut d’implementar dues vegades, per corregir certs errors comesos en el primer disseny.
Memòria descriptiva
74
Per provar la placa es van ficar una sèrie de tensions diferencials a les entrades dels multiplexors. Per simular les entrades ADRE i ADWE, es van utilitzar dos interruptors que donaven 5 i 0V, els quals eren activats manualment. En les primeres proves es varen observar diversos Problemes: · El conversor no convertia, encara que li donéssim l’ordre de convertir a través del senyal ADWE (recordem que aquest senyal era per determinar el canal a mostrejar i per donar l’ordre de conversió). Un repàs a la circuiteria de la placa ens va mostrar que era degut a una errada de disseny del PCB. · La solució a aquest problema va ser tallar la pista errònia i portar-la al lloc on havia d’haver anat. La circuiteria de selecció del canal va funcionar perfectament. · El valor digital que donava el conversor, no era l’esperat. Es va mesurar la tensió que hi havia a l’entrada del conversor i es va veure que no era el que s’esperava. Es va anar canviant de canal, però en cap cas, arribava la tensió que devia al conversor. S’ha de comentar que en el primer muntatge, l’amplificador d’instrumentació no es va realitzar a partir d’amplificadors operacionals, sinó que es va utilitzar un integrat específic per realitzar aquesta funció, que era el INA111AP. El que es va fer va ser extreure l’amplificador i aplicar una tensió directament a l’entrada del conversor. En aquest cas sí que la conversió es va realitzar correctament. Fins i tot es va simular la realització de dos cicles de lectura consecutius per llegir la part baixa i alta de la dada convertida i es va comprovar que s’intercanviaven de lloc entre una lectura i una altra. Es va provar l’amplificador d’instrumentació en una placa protoboard, per intentar determinar si el seu funcionament era correcte o no, i es va comprovar que aquest no era satisfactori (el guany que donava no era l’esperat en funció de la resistència RG i, a més, aquest guany depenia del valor de la tensió d’entrada). Es va provar de muntar sobre protoboard un amplificador d’instrumentació a partir d’amplificadors operacionals i resistències i el seu funcionament va ser perfecte. · La solució va ser repetir la placa, amb els canvis pertinents, fets. Un cop es va muntar la segona placa ja es va disposar de la placa del microprocessador. Les proves que es van realitzar d’aquesta placa es van fer a través de l’emulador i de la placa CPU. Igual que en el primer muntatge, per provar aquesta, es van aplicar una sèrie de tensions diferencials a les entrades dels multiplexors. · Problema 2 Les proves ens van mostrar el següent: · A través del programa que corria sota l’emulador érem capaços de seleccionar el canal correcte a mostrejar pel conversor. · A la sortida de l’amplificador d’instrumentació (i per tant, a l’entrada del conversor) el valor de tensió era l’esperat. · Si es realitzaven dues lectures consecutives, es llegien la part baixa i la part alta de la dada convertida.
Memòria descriptiva
75
· La dada convertida no era la correcta. Es varen fer algunes proves com repassar les pistes de la placa, repassar les connexions amb la placa CPU i muntar el conversor sobre placa perforada, portant els senyals de control des de la placa de conversió fins al conversor a través de cables. Aquest experiment va mostrar que el conversor funcionava, ja que al llegir els bits de sortida, un a un, amb un multímetre, donava el valor digital esperat en funció de la tensió d’entrada que hi aplicàvem; però quan el conversor el muntàvem a la seva placa, no convertia bé. Es van repassar totes i cada una de les seves connexions i no es va detectar cap anormalitat. Per falta de temps, no s’ha pogut investigar més a fons sobre quina pot ser la causa del problema en la conversió.
Memòria descriptiva
76
1.5 Conclusions En principi aquest projecte hauria d’haver arribat més lluny, però a causa de diferents problemes no s’ha pogut concloure. El principal problema ha estat la restricció a l’hora d’escollir el microprocessador. Degut a que la facultat sols disposava d’un emulador per a un micro 80C188 el disseny es va haver d’adaptar a aquest microprocessador, quan en el mercat existeixen una àmplia varietat de microprocessadors i microcontroladors amb característiques que els feien molt més adient per a utilitzar-los en aquest projecte. La tasca següent que s’haurà de dur a terme serà la de comprovar i modificar les plaques de conversió A_D i de conversió D_A fins que aquestes funcionin amb la placa de la CPU. S’ha de comprovar el funcionament de la placa dels sensors, la qual no ha pogut ser testada encara. S’hauran de dissenyar i muntar la placa de distribució dels sensors, la placa de la font d’alimentació i la placa del Display LCD i del teclat hexadecimal. També s’haurà de dissenyar i muntar la carcassa on aniran totes les plaques del projecte. S’haurà de fer la programació de la xarxa neuronal, del control del Display i del teclat, la comunicació sèrie, l’adquisició de les dades de la placa A_D, del control dels Heaters a través de la placa D_A, del menú que gestionarà el funcionament del nas i del programa del PC que entrenarà la xarxa neuronal. Els llistats dels programes que apareixen en aquest projecte, s’han realitzat per a comprovar el funcionament de les diferents plaques que formen el projecte. Aquests programes poden servir de guia per a la realització del software definitiu.
Tarragona a 14 de Juny de 2001
Jesús Ferrando Herranz Enginyer Tècnic Industrial
Julian Del Hallazgo Arasa Enginyer Tècnic Industrial
Memòria de Càlcul
77
2 Memòria de Càlcul
Memòria de Càlcul
78
Memòria de Càlcul. 2.1 Placa CPU 2.1.1 Circuit del reset del microprocessador Per a generar el circuit del reset, s’ha implementat la xarxa típica que es mostra a continuació:
Figura 52
El fabricant recomana uns valors de R1 i CS1 de 50KÙ i 1 ìF respectivament, que dóna una constant de temps de 50ms. S’ha optat per implementar un circuit amb una constant de temps del doble (100ms), per tal d’assegurar que el reset es realitza correctament. Per aconseguir aquesta constant de temps s’han escollit un valor de R1 de 33KÙ i s’ha calculat un valor de CS1 de:
FKms
RCSCSR µττ 3.3
33100
1111 ≈
Ω==→⋅=
2.1.2 Connector Display i teclat La màxima capacitat de corrent dels pius dels ports de les PIES és de 2.5mA. Per això en qualsevol disseny s’ha de delimitar aquest valor. En el procés de lectura del teclat, es fa necessari forçar unes entrades a “1”, per això estan connectades a Vdd (5Volts). Aquesta connexió no es pot realitzar directament ja que al polsar una tecla es curtcicuitaria Vdd amb uns pius on hi ha escrits “0”. Les resistències eviten el curtcircuit, limitant el corrent. Un valor de corrent acceptable seria de 1mA. Per tant les resistències de Pull-Up han de tenir un valor de:
Ω≈== 7415
KmAV
IV
R (2)
Vdd=5V
Pulsador del reset Reset al micro
R1
33Kohm
CS1
3.3uF
+
D11N4148
Memòria de Càlcul
79
La connexió de les resistències de Pull-Up es la mostrada en la figura següent:
Figura 53
2.1.3 Max232 Els condensadors emprats per a configurar aquest integrat (U13) han estat els recomanats pel propi fabricant i es mostren en la figura següent:
Figura 54
On C1, C2, C3 i C4 valem 1ìF i C_U13 val 10ìF.
Vdd=5V
PIA2
U11
82C
55
D034
D133
D232
D331
D430
D529
D628
D727
RD5
WR36
A09
A18
RESET35
CS6
PA0 4
PA1 3
PA2 2
PA3 1
PA4 40
PA5 39
PA6 38
PA7 37
PB0 18
PB1 19
PB2 20
PB3 21
PB4 22
PB5 23
PB6 24
PB7 25
PC0 14
PC1 15
PC2 16
PC3 17
PC4 13
PC5 12
PC6 11
PC7 10
VCC26
GND7
4K7
J6
CON8
12345678
Vcc = 5v
Sin
Sout
C_U13
10uF
+
P1
CONNECTOR SERIE
594837261
U13
MAX
232
T1 IN11
T1 OUT14
R1 IN13
R1 OUT12
C1+1
C1-3
T2 IN10
T2 OUT7
R2 IN8 R2 OUT 9
C2+4
C2-5
V+ 2
V-6
GN
D15
VCC
16
C41uF+
C11uF
+
C31uF
+
C2
1uF
+
Memòria de Càlcul
80
2.1.4 Oscil· lador de la UART Per al bon funcionament de la UART (U12) s’ha d’incloure un oscil· lador. L’oscil· lador emprat és el recomanat pel fabricant, i apareix als muntatges d’aplicacions de les fulles d’especificacions. El valor del cristall és de 1.8432MHz. L’esquema de connexió apareix en la figura següent i també és el que apareix en els muntatges d’aplicació:
Figura 55
2.1.5 Oscil· lador del microprocessador La seva connexió és la típica. En aquest cas la freqüència de l’oscil· lador del micro és de 20MHz ja que és el valor d’oscil· lació en el que el model del micro escollit funciona. La seva connexió al microprocessador és la mostrada en la figura següent:
Figura 56
Vcc = 5v
Piu 18 (U12)
U17
1.8432MHz
13
24
Vcc = 5v
Piu 59 (U5)
U16
20MHz
13
24
Memòria de Càlcul
81
2.2 Placa de conversió de digital a analògic 2.2.1 Reset del biestable Interessa conèixer l’estat inicial de la sortida del biestable per saber en quina escriptura estem (primera o bé segona). Per això s’ha implementat una xarxa RC en l’entrada CL (Clear) del biestable. D’aquesta manera al engegar la placa apareix un zero en aquesta entrada, i això causa un “0” en la sortida del biestable. Per implementar aquesta xarxa s’ha copiat el mateix model del circuit del reset del microprocessador. El valor de R6 és de 33KÙ i el valor de C45 és de 3.3ìF. La figura següent mostra aquests valors:
Figura 57
2.2.2 Temporitzador NE555 Aquest dispositiu serveix per provocar un retard de 200ìs. Aquest retard s’aconsegueix mitjançant una xarxa RC. En el nostre circuit aquesta xarxa es formada per R5 i C47. Seguint les especificacions del fabricant tenim que aquest retard depèn de la funció:
4751.1 CRT ⋅⋅= (3)
T = temps del retard, que és de 200ìs. Si agafem un valor de capacitat de 47nF i aïllem R5 de la formula (2) llavors queda el valor de R5:
Ω≈⋅
=⋅
= 93471.1
200471.1
5 KnFs
CT
Rµ
El valor de C46 està especificat pel fabricant i és de C46 = 10nF.
Vdd = 5v
R64K7ohm
U10A
74HC74
D2
CLK3
Q5
Q6
PR
4C
L1
C453.3u
+
Memòria de Càlcul
82
L’esquema que mostra les connexions i els valors anteriorment exposats és el següent:
Figura 58
2.2.3 Divisor de tensió en l’amplificador operacional L’amplificador operacional U4 serveix per adaptar les tensions de les adreces que van cap al multiplexor U12 de 5 volts a 15 volts. Se li ha d’introduir una tensió de referència de 2.5 volts a cada entrada V- de cada un dels 4 operacionals de que disposa aquest integrat. Per a valors superiors en l’entrada V+ de cada operacional, aquest traurà un valor de 15 volts, i per valors inferiors a 2.5 volts, traurà 0 volts. Per aconseguir aquests 2.5 volts s’ha emprat un divisor de tensió amb les resistències R3, R4 i la alimentació de 5 volts. La fórmula del divisor de tensió és:
544RR
RVVout +
⋅= (4)
essent Vout la tensió que volem (2.5 volts) i V la tensió d’alimentació. Si fixem un valor de R4 de 10KÙ i aïllem de la fórmula (3) el valor de R5, traurem que aquesta resistència ha de valer:
Ω=⋅Ω=−⋅Ω=−
⋅= KKKV
VVRR
out
out 105.25.2
105.2
5.251045
Vdd= 5V
C4747nF
U11
NE555
TR2
CV5
Q 3
DIS7
THR6
R4
VC
C8
GN
D1C4610nF
R53K9ohm
Memòria de Càlcul
83
2.2.4 Configuració del conversor AD669 Per a realitzar la configuració unipolar del conversor s’han emprat les resistències que recomanava el fabricant. Aquest muntatge es pot apreciar als circuits d’aplicació que apareixen en l’informació tècnica de l’integrat. Tant la resistència R1 com la resistència R2 tenen un valor de 50Ù. La figura següent mostra aquesta connexió:
Figura 59
2.2.5 Condensador del Sample and Hold El valor de la capacitat del càrrega dels Sample and Hold és de 0.1ìF. Aquest valor s’ha escollit observant les corbes dels temps de càrrega i descàrrega que apareixen descrits en els fulls d’especificacions que proporciona el propi fabricant. Amb aquest valor el temps de càrrega és de 100ìs i amb una precisió del 1% i es pot apreciar en la següent gràfica:
Figura 60
Ref OUT
Ref IN
R2
50ohm
U7
Vll
3
DGND4
AGND24
L1!5 CS!6
LDAC23
DB022
DB121
DB220
DB319
DB418
DB517
DB616
DB715
DB814
DB913
DB1012
DB1111
DB1210
DB139
DB148
DB157
SPAN 26
Vout 25
Ref In27
Ref Out28
R150ohm
0.10.010.0011000
100
10
1
Capacitat (uF)
Temps (us)
1%
0.1%
0.01%
Temps d'adquisició
Memòria de Càlcul
84
2.3 Placa de conversió d’analògic a digital 2.3.1 Amplificador d’instrumentació Aquest és un muntatge típic d’amplificador d’instrumentació a partir d’amplificadors operacionals. Aquest muntatge està compost per dues etapes: la primera és la que dóna el guany a l’amplificador i a més és la que li dóna la gran impedància d’entrada característica d’un bon amplificador d’instrumentació. El guany desitjat per aquest amplificador és de 3. Aquest guany està en funció de les resistències R1, R2 i R3.
Figura 61
El guany es calcula amb la següent fórmula extreta del llibre Funcions electròniques (Ed. U.P.C.):
327272
1122
1 =Ω
Ω⋅+=⋅+=KK
RR
G (5)
Aquesta fórmula és vàlida si R3=R2. La segona etapa és un amplificador diferencial, que refereix la tensió diferencial de l’etapa anterior a massa i dóna a l’amplificador un gran factor de rebuig en mode comú (CMRR). Un bon amplificador d’instrumentació ha de complir que el seu CMRR sigui el més elevat possible. Aquest factor depèn de la precisió de les resistències de l’etapa diferencial. Així per unes resistències de tolerància de l’1% (suposant que les 4 que formen aquesta etapa són iguals) l’amplificador d’instrumentació té un CMRR d’uns 34dB com a mínim.
Vcc
Vcc
Vcc
Vee
VeeVee
U3A
LM324
+
-
3
21
411
U3BLM324
+
-
5
67
411
U3CLM324
+
-
10
98
411
R127K
R2
27K
R3
27K
R4
10K
R5
10K
R7
10K
R6
10K
MUX_1
MUX_2
CONV A/D
Memòria de Càlcul
85
Per calcular aquest valor s’ha emprat la següent fórmula, treta del llibre Funcions Electròniques (Ed. U.P.C.):
( ) dBKK
RR
CMRRmín 3450log2001,04
1010
1log20
4
1log20 5
7
==
⋅
+=
⋅
+=
δ(6)
On ä és la tolerància de les resistències emprades.
2.3.2 Multivibrador monoestable És l’encarregat de donar el pols de durada necessària perquè el conversor A/D converteixi la dada correctament. Segons les especificacions del conversor, aquest pols ha de tenir una durada mínima de 40ns. Per determinar l’amplada d’aquest pols, aquest integrat té uns pius als quals es connecten una resistència i un condensador. El valor d’aquestos determinaran aquesta amplada. Per l’amplada desitjada, el fabricant recomana deixar a l’aire l’entrada del condensador i posar una resistència de 2KÙ a l’altra entrada. Els valors comercials més propers de resistència, a 2KÙ, s ón 1K8Ù i 2K2Ù. S’ha optat per utilitzar aquest últim valor, ja que amb l’altre, el pols tindria una durada menor.
Figura 62
Vdd
U10A
74HC221
CEXT14
REXT/CEXT15
A1
B2
CLR3
Q13
Q4
VCC16
GND8
R8
2.2K
R/CADWE
Memòria de Càlcul
86
2.4 Placa de sensors 2.4.1 Fonts de corrent La font de corrent ha estat implementada amb un regulador de tensió LM317 per tenir una referència de tensió estable. L’esquema és el següent:
Figura 63
EL corrent que dóna la font, depèn dels sensor al qual hagi d’alimentar. La resistència que presenten els sensors, està en funció de la concentració del gas al qual són sensibles i, aquesta resistència disminueix amb aquesta concentració. Per tant, a l’hora d’assignar un corrent a cada sensor, ens fixarem en la resistència que presenten en repòs (RS màxima). La següent taula mostra com s’assignen els corrents a cada sensor en funció de la seva RS:
RS IS Entre 250kΩ i 2.5MΩ 1.25µA Entre 25kΩ i 250kΩ 12.5µA Entre 2.5kΩ i 25kΩ 125µA Entre 250Ω i 2.5kΩ 1.25mA
Taula 17
S’han d’implementar aquestes diferents escales per tal de no perdre precisió a l’hora de convertir la tensió que es genera als seus terminals. Així, per exemple, si tenim un sensor que tingui una RS de 300kΩ en repòs i suposem que amb la concentració del gas, aquesta resistència baixa dues dècades (RS’=3kΩ). La tensió que es generarà serà de:
VS = 3kΩ*1.25µA = 3.75mV (7) El guany de l’amplificador d’instrumentació de la placa A/D és de 3, per tant la tensió que arribarà a l’entrada del conversor serà de:
VinA/D = 3*3.75mV = 11.25mV (8)
Vcc = 15V
Vee = -15V
U1ATL082
+
-
3
21
84
U2LM317
VIN3
AD
J1
VOUT 2
RL
120R
RI
RS
Memòria de Càlcul
87
La resolució del conversor A/D és de:
Res(V) = 20/(216-1) = 305.18µV (9) I tenint en compte que l’error del conversor A/D és de ±1LSB, l’error relatiu màxim que es cometria en aquest cas seria de:
εR(%)=100*(305.18µV/11.25mV) = 2.7% (10) És un error molt petit, tenint en compte que és un cas molt desfavorable. El valor màxim de RS s’ha determinat per a cada escala de manera que el valor de tensió que li arribi al conversor, estigui dins del seu rang:
VinA/Dmàx = 3*1.25µA*2.5MΩ = 9.375V < 10V (11) Un cop establertes les diferents escales pels corrents, cal determinar el valor de RI necessari, perquè el muntatge la generi. El valor de RI es calcularà amb la fórmula:
RI = 1.25V/IS (12) El valor de 1.25V, és el que dóna el regulador LM317 com a tensió de referència. La següent taula mostra aquests valors de RI:
IS RI 1.25µA 1MΩ 12.5µA 100kΩ 125µA 10kΩ 1.25mA 1kΩ
Taula 18
És aconsellable utilitzar resistències del 0.1% per tal d’obtenir la màxima precisió. Si s’observa la figura de la pàgina anterior, s’observa que hi ha una resistència entre els terminals de referència i de sortida del regulador, de 120Ω. El fabricant informa de què per tal que el regulador funcioni correctament, el corrent de sortida ha de ser, com a mínim de 10mA. Aquesta resistència garanteix aquest corrent i, a més, no afecta al corrent de sortida de la font. La potència d’aquesta resistència ha de ser:
P = V2/R = 1.252/120Ω = 13mW ⇒ 1/4W (13) Un aspecte molt important a tenir en compte a l’hora de dissenyar una font de corrent és el de la seva impedància de sortida. Aquesta ha d’ésser el més elevada possible, per evitar que el corrent que genera la font sigui consumit per aquesta impedància. Per calcular-la, primerament s’ha de comentar que els elements que la determinen són: l’amplificador operacional que forma part de la font, el multiplexor analògic de la placa de conversió A/D i els amplificadors operacionals que formen l’amplificador d’instrumentació també a la placa A/D. Els amplificador operacionals emprats són: TL082 per la font de corrent i el
Memòria de Càlcul
88
TL084 per l’amplificador d’instrumentació. Són del tipus TL081, el qual té una impedància d’entrada de 1012Ω. El multiplexor analògic té una impedància de canal màxima de 350Ω. La següent figura és un esquema que explica com s’ha procedit per calcular aquesta impedància:
Figura 64
A l’amplificador d’instrumentació, es despreciarà la influència de les resistències que determinen el guany, enfront de la impedància dels A.O. Així, una aproximació a la impedància de sortida de la font de corrent seria:
Zout = Zin // (2*RON+2*Zin) ≈ Zin // 2*Zin = (2/3)*Zin ≈ 670GΩ (14) 2.4.2 Etapa de potència d’excitació dels heaters Aquesta etapa divideix per dos la tensió de referència que li arriba del conversor D/A i l’aplica al heater, subministrant el corrent necessari per tal que aquesta tensió es mantingui. El fabricant diu que la tensió màxima que s’ha d’aplicar al heater ha de ser de 5V, i la que ve del conversor serà de 10V màx.; és per això que es divideix per dos. La resistència que presenta el heater és de 38±3Ω (segons el fabricant). Per dimensionar l’etapa, es prendrà el pitjor cas, que és RH = 35Ω.
El corrent màxim que aquesta resistència exigirà serà de:
IH = 5V/35Ω = 143mA (15)
Com que l’amplificador operacional que fa de separador no pot donar aquest corrent, s’ha optat per muntar una etapa amb un transistor tal i com mostra la figura:
Zin A.O. Zin
Zin
RON
(MUX)
RON
IS
(MUX)
RS
IS
Zout
Memòria de Càlcul
89
Figura 65
El valor de la resistència RL es calcularà perquè no consumeixi més d’1/4 W. Així doncs, el seu valor serà de:
RL ≤ P/I2 = 0.25/(0.143)2 = 12.22Ω (16)
S’ha escollit un valor de RL de 10Ω, 1/4W.
La potència màxima que haurà de dissipar el transistor serà de:
PQ = (Vcc – (10Ω+35Ω)*IH)*IH (17)
DPQ/dIH = 15V – 2*IH*45Ω = 0 ⇒ IH = 166.67mA (18)
Com que aquest valor de corrent és superior al màxim que circularà, la potència màxima que dissiparà el transistor es produirà per IH = 143mA i serà:
PQ = (15 – (45Ω*0.143)*0.143 = 1.22 W
Valor que cau dins dels 8 W que el fabricant diu que pot dissipar aquest transistor. Un altre aspecte que s’ha de tenir en compte és que aquest transistor tingui el guany suficient com perquè l’A.O. pugui injectar-li per la base el corrent necessari per polaritzar-lo. El fabricant diu que el guany mínim del transistor és de 25. Així doncs, el corrent màxim que exigirà a l’A.O. serà de:
IA.O. = 143mA/25 = 5.72mA (19)
Pel tipus d’A.O. emprat, el fabricant no especifica quin és el valor màxim de corrent que pot arribar a donar, però fent una ullada a altres que poden considerar-se de semblants (TL071, TL031, ...) es pot estimar que pot arribar a donar uns 40mA. El consum màxim de tots els sensors d’una placa serà de:
Imàx = 4*0.143 mA= 0.572 mA (20)
Vcc = 15V
Vee = -15V
Vheater U1B
TL082
+
-
5
67
84
Q1BD139
RL10R
RH38R
R210k
R1
10k
P11k
Memòria de Càlcul
90
Si totes les plaques utilitzessin sensors del tipus TAGUSHI, el consum total de totes elles (tenint en compte només el que consumeixen els sensors) seria:
Itot = 14*0.143 mA = 2.002 A ≈ 2A (21)
És per aquest motiu que la font d’alimentació de +15V s’ha dimensionat perquè pugui donar fins a 3 A.
Memòria de Càlcul
91
2.5 Placa font alimentació D’aquesta placa sols s’ha realitzat l’estudi teòric. El valor dels components que la formen no s’han calculat, sinó que simplement s’han emprat els que recomana el fabricant. El valor dels components apareixen en l’esquema següent:
Figura 66
5V (màx 1.5A)
15V (màx 3A)
-15V (màx 1.5A)
GNDF1
6A
U1
ON/OFF
0 0
D1
1N4007
D2
1N4007
D3
1N4007
D4
1N4007
D5
1N4007
U3
LM781511
22
3 3
U4 LM7915
VI
GN
D VO
TR1
220Vac/20,0,20Vac
V1
220Vac, 50Hz
C14
100nF, 50V
C610uF, 50V
+
C2680uF, 50V
+ C5680uF, 50V
+
C4
680uF, 50V+
C12
1uF, 50V
C11
2200nF, 50V
C9
330nF, 50V
C10
100nF, 50V
C7
330nF, 50V
C8
100nF, 50V
BR1
B80 C 3200/2200
J1
CON4
1234
D61N4007
C1680uF, 50V
+
C13
330nF,50V
U5
LM780511
22
3 3
C32500uF,50V
+
U2
LM781511
22
3 3
Memòria de Càlcul
92
2.6 Programació Els llistats dels programes que es comenten a continuació es trobaran als Annexes. Aquests programes en assembler s’han compilat amb el programa Turbo Assembler V. 4.0 Borland International. 2.6.1 Temporitzador Configura el TIMER 2 utilitzant la interrupció del mateix comptador. El programa incrementa en una unitat cada segon el valor que es visualitza al port dels leds de la placa emuladora. Aquest programa serveix com exemple per a programar un temporitzador en cas de necessitat. En aquest programa s’utilitzen dos variables. La variable MSEC s’incrementa cada cop que s’executa la subrutina de servei a la interrupció del Timer, i la variable COMPTADOR que conté el valor a treure pel port dels leds i s’incrementa cada segon. La interrupció es dóna cada cop que el timer arriba al seu valor màxim de comptatge. Aquest valor és de 50000 (C350H) i fa que el temps de temporització sigui de 10ms. La freqüència del Timer és una quarta part de la freqüència de l’oscil· lador del microprocessador:
MHzMHzCLK
FTimer 54
204
===
Per tant el seu període serà de :
nsMHzF
TTimer
Timer 2005
11 ===
Si volem que temporitzi 10ms, el valor a carregar al registre de comparació del Timer 2 serà de:
HCns
msCMPAT 35050000
20010
2 ===
Es programa el Timer 2 per a que compti de forma contínua (es reinicialitza cada cop que acaba de comptar amb el valor màxim de comptatge anterior), i generi una interrupció al finalitzar cada comptatge. Per això es programa el registre de control del comptador T2CON amb el valor E001H. Per habilitar la interrupció d’aquest comptador es programa el registre TCUCON amb el valor de 00H i s’habilita el flag d’interrupcions en el registre PSW mitjançant la instrucció STI.
Memòria de Càlcul
93
A continuació es mostra el diagrama de fluxe d’aquest algoritme:
Figura 67
TEMP
DEFINICIO ADRECES
REGISTRES
DEFINICIO VARIABLES
INICIALITZACIO VARIABLES
CALCUL ADREÇA RSI
TIMER 2
INCIALITZACIO COMPTADOR
TIMER 2
CONFIGURACIO TIMER 2
HABILITAR INTERRUPCIONS
ESPERAR
RSI TIMER 2
SALVAR REGISTRES
MSEC > 99?
TREURE VARIABLE
COMPTADOR PELS LEDS
COMPTADOR++
EOI
RESTAURAR VECTORS
SORTIR
MSEC = 0
SI
NOMSEC ++
Memòria de Càlcul
94
2.6.2 Placa A/D Amb aquest algoritme s’accedeix a la placa de conversió analògic a digital. Es programa el registre PACS per a que l’espai d’entrada i sortida comenci a l’adreça 00H Es realitza un conversió i una lectura de les dades per als sensors 0, 1, 2 i 3. El diagrama de fluxe d’aquest programa és el següent:
Figura 68
A D
D E F I N I C I O A D R E C E S
R E G I S T R E S
D E F I N I C I O A D R E C E S S E N S O R S
P R O G R A M E M R E G I S T R E
P A C S
S E L E C C I O C A N A L
A N A L O G I C 0 I M O S T R E I G
L E C T U R A D E D A D E S
S E L E C C I O C A N A L
A N A L O G I C 3 I M O S T R E I G
L E C T U R A D E D A D E S
S O R T I R
Memòria de Càlcul
95
2.6.3 PIES Aquesta rutina serveix per comprovar el funcionament dels ports de les pies de la placa de la CPU. Es programen tots els ports per a que siguin sortides, s’escriu un valor a cada un d’ells i després es llegeix per a comprovar que s’ha escrit correctament. El diagrama de fluxe del programa és el següent:
Figura 69
PIES
DEFINICIO ADRECES
REGISTRES
DEFINICIO ADRECES
DELS PORTS
PROGRAMEM REGISTRE
PACS
PROGRAMAR ELS PORTS DE SORTIDA
ESCRIURE DADA PORT A DE PIA 1
LECTURA PORT A DE
PIA 1
ESCRIURE DADA PORT C DE PIA 2
LECTURA PORT C DE
PIA 2
Memòria de Càlcul
96
2.6.4 Comunicació sèrie La velocitat de comunicació emprada per als programes, és de 4800 bps. La trama és de 8 bits de dades, sense paritat i amb un bit d’STOP. · Programa del microprocessador En el microprocessador hi ha dos programes per a provar el funcionament de la comunicació sèrie. El programa SERIE_R serveix per a rebre els caràcters que el PC enviï. L’altre programa és el SERIE_T i serveix per a transmetre dades al PC. · SERIE_Rà Aquest programa espera fins que rep una dada, i després treu aquesta pel port dels leds de la placa de l’emulador. · SERIE_Tà El programa envia els caràcters de la ‘a’ fins la ‘z’ al PC i quan acaba, torna a començar. Els fluxogrames dels dos algoritmes anteriors apareixen en la figura següent:
Figura 70
SERIE_R
DEFINICIO ADRECES
REGISTRES
DEFINICIO VARIABLES
CONFIGURACIÓ UART
LLEGIR DADA
TREURE DADA PEL PORT DELS
LEDS
SERIE_T
DEFINICIO ADRECES
REGISTRES
INICIALITZAR DADA A ENVIAR
ENVIAR DADA
CONFIGURACIO UART
DADA REBUDA?
SI
NO
DEFINICIO VARIABLES
ULTIMA DADA?
SI
DADA SEGÜENT
NO
Memòria de Càlcul
97
· Programa PC Aquest codi s’executa des del PC, i tant serveix per enviar, com per a rebre dades. S’ha emprat el Visual Basic 6.0 com a eina de programació, ja que és un llenguatge visual fàcil d’utilitzar. Aquesta comunicació es realitza pel Comm 2 del PC. Disposa de 3 finestres. La primera finestra és Estado, que indica a l’usuari l’estat de la comunicació: “Espera”, “Enviant Dada Pel Port Sèrie”, “S’ha enviat la dada” i “Dada Rebuda”. La següent finestra és Output, en ella posem la dada que es vol enviar a la placa CPU i llavors es pitja el botó Enviar (el missatge que apareix a la barra d’estat és Enviant Dada Pel Port Sèrie). Un cop enviada, per la finestra Input apareix la dada que s’ha enviat, i a la finestra d’estat apareix el missatge S’ha enviat la dada. Quan es rep una dada provinent de la placa CPU, aquesta dada apareix a la finestra Input, i a la finestra d’estat apareix el missatge Dada Rebuda. El botó Sortir serveix per a tancar l’aplicació. La següent figura mostra la pantalla que l’usuari pot veure al executar el programa:
Figura 71
Tarragona a 14 de Juny de 2001
Jesús Ferrando Herranz Enginyer Tècnic Industrial
Julian Del Hallazgo Arasa Enginyer Tècnic Industrial
Plànols
98
3 Plànols
Plànols
99
3.1 Esquemes
Plànols
106
3.2 Fotolits
Plànols
115
3.3 Serigrafies components
Pressupost
120
4 Pressupost.
Pressupost
121
4.1 Quadre de Preus.
Pressupost
125
4.2 Amidaments
Pressupost
133
4.3 Aplicació de Preus
Pressupost
141
4.4 Pressupost
Plec de Condicions
144
5 Plec de Condicions
Plec de Condicions
145
Plec de Condicions. 5.1 Condicions generals 5.1.1 Introducció El present projecte desenvolupa la gestió de recursos necessaris per a l’adquisició i tractament de dades d’un nas electrònic autònom. Donada la condició de “Final de carrera” del projecte, les consideracions de tipus contractual posseeixen un caràcter de suposició. El present plec de Condicions té per objecte definir al contractista l’abast del treball i de la seva execució qualitativa. L’abast del treball del Contractista inclou el disseny i preparació de tots els plànols, diagrames, llista de material i requisits per l’adquisició i instal· lació del treball. 5.1.2 Reglaments i normes Totes les unitats d’obra s’executaran complint les prescripcions indicades als Reglaments de Seguretat i Normes Tècniques d’obligat compliment per aquest tipus d’instal· lacions, tant d’àmbit nacional, autonòmic com municipal, així com totes les altres establertes al projecte. S’adaptaran a més, a les presents condicions particulars que complementaran les indicades pels Reglaments i Normes citades. 5.1.3 Materials Tots els materials emprats seran de primera qualitat, compliran les especificacions i tindran les característiques indicades al projecte i a les normes tècniques generals. Tota especificació o característica de materials que figurin en un sol dels documents del Projecte, tot i que no figuri als altres, és igualment obligatòria. En cas d’existir contradicció o omissió als documents del projecte, el contractista obtindrà l’obligació de posar-ho de manifest al Tècnic Director de l’obra, qui decidirà sobre el particular. En cap cas podrà suplir la falta directament, sense l’autorització expressa. No es podran emprar materials que no hagin estat acceptats pel director Tècnic. 5.1.4 Execució del projecte Començament. El contractista donarà començament al projecte en el plaç que hi figuri al contracte establert amb la Propietat o, en el seu defecte, als quinze dies de l’adjudicació definitiva de l’obra.
Plec de Condicions
146
El contractista està obligat a notificar per escrit al Tècnic director la data d’inici dels treballs. Plaç d’execució. L’obra s’executarà en el plaç que s’estipuli al contracte subscrit amb la Propietat o en el seu defecte en el que figuri a les condicions d’aquest plec. Quan el ritme de treball establert pel contractista, no sigui el normal, o bé a petició d’una de les parts, es podrà convenir una programació d’inspeccions obligatòries d’acord amb el pla d’obra. Llibre d’ordres. El contractista disposarà durant la realització del projecte d’un Llibre d’Ordres en què s’escriuran les que el Tècnic Director estimi donar-li a través de l’encarregat o persona responsable, sense perjudici de les que doni per ofici quan ho cregui necessari i que tindrà l’obligació de signar l’assabentat. 5.1.5 Interpretació i desenvolupament El Director Tècnic és la persona a qui li correspon interpretar els documents del projecte, a ell se li ha de sotmetre qualsevol dubte, aclaració o contradicció que sorgeixi durant l’execució de l’obra, sempre amb la suficient antelació en funció de la importància de l’assumpte. El contractista es fa responsable de qualsevol error de l’execució motivat per la no consulta i conseqüentment haurà de refer a costa seva els treballs que corresponguin a la correcta interpretació del Projecte. El contractista ha de fer tot el necessari per la bona execució de l’obra, encara que no s’hagi expressat al projecte. El contractista ha de notificar per escrit o personalment al director d’obra, les dates en què quedaran preparades per inspecció, cadascuna de les parts del projecte o per aquelles que, totalment o parcialment hagin, posteriorment, de quedar ocultes. 5.1.6 Treballs complementaris El contractista ha de realitzar tots els treballs complementaris necessaris per executar el projecte tal i com estava previst, encara que en ell no figurin explícitament aquests treballs complementaris. Tot això sense variació de l’import contractat. 5.1.7 Modificacions El contractista està obligat a realitzar les variacions (ampliacions, reduccions o modificacions) del projecte sempre que aquestes no suposin una variació sobre el global projectat superior al 25%. Si el contractista, desitja realitzar alguna modificació, ho haurà de notificar per escrit al Tècnic Director, si es considera raonable i s’accepta, serà confirmada per escrit, així com les noves condicions econòmiques que mútuament s’acordin. Si l’anterior no es dóna com s’especifica, no s’acceptarà modificació alguna.
Plec de Condicions
147
La valoració es farà d’acord amb els valors establerts al pressupost pel Contractista i que ha estat près com a base del contracte. 5.1.8 Realització defectuosa Quan el contractista trobi qualsevol unitat de treball que no s’ajusti a l’especificat al projecte o en aquest Plec de Condicions, el Tècnic Director podrà acceptar-la o refusar-la, en el primer cas, aquest fixarà el preu que cregui just per arreglar les diferències que hi haguessin, estant obligat el Contractista a acatar aquesta valoració, en l’altre cas, es reconstruirà a expenses del Contractista la part mal executada sense que sigui motiu de reclamació econòmica o d’ampliació del plaç d’execució. 5.1.9 Mitjans auxiliars Seran de compte del Contractista tots els mitjans i màquines auxiliars que siguin precises per l’execució del projecte. En el seu ús estarà obligat a fer complir tots els Reglaments de Seguretat en el treball vigents i a utilitzar els mitjans de protecció als seus operaris. 5.1.10 Recepció del projecte Recepció provisional. Un cop acabats els treballs, tindrà lloc la recepció provisional i per això es practicarà en ells un detingut reconeixement pel Tècnic Director i la Propietat en presència del Contractista, aixecant acta i començant a córrer des d’aquell dia el plaç de garantia si es troben en estat d’ésser admesos. De no ser admesos es farà constar a l’acta i es donaran instruccions al Contractista per subsanar els defectes observats, fixant-se per tal un plaç, expirat el qual es procedirà a un nou reconeixement a fi de procedir a la recepció provisional. Plaç de garantia. El plaç de garantia serà com a mínim d’un any, comptant des de la data de recepció provisional, o bé el que s’estableixi al contracte també comptant des de la mateixa data. Durant aquest període queda a càrrec del Contractista la conservació del sistema i reparació dels desperfectes causats per mala construcció. Recepció definitiva. Es realitzarà després d’haver transcorregut el plaç de garantia d’igual forma que la provisional. A partir d’aquesta data acabarà l’obligació del Contractista de conservar i reparar a càrrec seu els desperfectes, si bé subsistiran les responsabilitats que hi pugui tenir per defectes i deficiències de causa dubtosa. 5.1.11 Responsabilitats El contractista és responsable de l’execució dels treballs com fixa el projecte i haurà de reconstruir tota part que no s’ajusti al programa, sense servir d’excusa la raó de què el director d’obra hagi examinat i reconegut l’obra. El contractista és l’únic responsable de les possibles errades comeses per ell o el seu personal, així com dels accidents o perjudicis produïts a la propietat, veïns o tercers a causa de la inexperiència o mètodes inadequats.
Plec de Condicions
148
El contractista és l’únic responsable de l’incompliment de les disposicions vigents en matèria laboral respecte del seu personal i, per tant, els accidents que poguessin sobrevindre i dels drets que d’ells se’n poguessin derivar. 5.1.12 Fiança Al contracte s’establirà la fiança que el contractista haurà de depositar en garantia del seu compliment, o es convindrà una retenció sobre els pagaments realitzats a compte del treball executat. De no estipular-se la fiança al contracte s’entén que s’adopta com a garantia una retenció del 5% sobre els pagaments a compte citats. En el cas de que el Contractista es negués a fer pel seu compte els treballs per ultimar el projecte en les condicions contractades, o a atendre la garantia, la Propietat podrà ordenar executar-les a un tercer, abonant el seu import amb càrrec a la retenció o fiança, sense perjudici de les accions legals a què tingui dret la Propietat si amb l’import de la fiança no hi hagués prou. La fiança retinguda s’abonarà al Contractista en un plaç no superior a trenta dies un cop signada l’acta de recepció definitiva de l’obra. 5.2 Condicions tècniques 5.2.1 Condicions de les plaques de C.I. Les plaques de circuit imprès hauran d’ésser dissenyades pel fabricant sota les següents normes: - Amplada de les pistes de senyal: 0.5 mm. - Amplada de les pistes alimentació: 2mm. - Els condensadors de desacoblament hauran d’anar situats el més a prop possible del piu
d’alimentació. - Dimensions dels taladres:
· 0.85 mm pels circuits integrats i components discrets. · 1 mm pels connectors. · 1.25 mm per les regletes. · 3 mm pels taladres de subjecció de la placa.
Totes les plaques un cop sortides de producció hauran d’ésser testades, de tal forma que l’índex d’errades en pistes, sigui inferior a l’1%. 5.2.2 Condicions dels components electrònics La premissa bàsica a seguir en la compra dels components electrònics, és buscar components de marques de reconegut prestigi i que posseeixin un índex de rebuig en producció, inferior al 20%.
Plec de Condicions
149
Així, per exemple, es recomana la utilització de components de la casa MOTOROLA o qualsevol de les seves subsidiàries (RCA. AMD) que fins avui han demostrat un molt alt grau de fiabilitat dels components subministrats. No es recomana recórrer sot cap concepte a les plèiades de fabricants d’Orient que han sorgit a Corea, Singapur, Malàsia, etc., ja que en anteriors produccions han posat de manifest un baixíssim grau de fiabilitat, donant-se el cas de trobar partides senceres de components que als 6 mesos de funcionament han fallat íntegrament. 5.2.3 Condicions del muntatge de plaques El muntatge de plaques haurà d’ésser realitzat per inserció automatitzada, ja que l’índex d’errors és pràcticament nul, no així quan es recorre al muntatge manual de components. La soldadura de les plaques ha d’ésser realitzada per onada, amb estany de bona qualitat, i un cop finalitzat el procés, les plaques han d’estar perfectament netejades amb algun producte específic basat en fluor, dels molts que hi ha disponibles al mercat. De cada partida de plaques produïdes, al menys 10 d’elles hauran d’ésser verificades en un forn a 40 graus centígrads i en funcionament de tal forma que se’ls proporcioni l’equivalent a 6 mesos de funcionament ininterromput durant les proves, sigui superior al 20%, la partida sencera haurà d’ésser retirada i substituïda per una de nova.
5.3 Condicions facultatives
5.3.1 Normes a seguir El disseny de la instal· lació elèctrica estarà d’acord amb les exigències o recomanacions exposades a l’última edició dels següents codis: - Reglament Electrotècnic de Baixa Tensió i Instruccions complementàries. - Normativa UNE. - Normativa DIN. - Pla nacional i ordenança general de Seguretat i Higiene al treball. - Normes de la Companyia Subministradora. - Publicacions del Comitè Electrotècnic Internacional (CEI). - Allò indicat en aquest plec de condicions amb preferència a tots els codis i normes. 5.3.2 Personal El Contractista tindrà al capdavant de l’obra un encarregat amb autoritat sobre els altres operaris i coneixements acreditats i suficients per l’execució del projecte. L’encarregat rebrà, complirà i transmetrà les instruccions i ordres del Tècnic Director de l’obra. El contractista tindrà el nombre i classe d’operaris que facin falta pel volumen i naturalesa dels treballs que es realitzin, els quals seran de reconeguda aptitud i experimentats en l’ofici. El Contractista estarà obligat a separar de la realització del projecte, a aquell
Plec de Condicions
150
personal que, a judici del Tècnic Director, no compleixi amb les seves obligacions, realitzi el treball defectuosament, bé per falta de coneixements o per obrar de mala fe. 5.3.3 Reconeixements i assajos previs Quan així sigui estimat oportú pel Tècnic Director, aquest podrà encarregar i ordenar l’anàlisi, assaig o comprovació dels materials, elements o instal· lacions, bé sigui a la fàbrica d’origen, laboratoris oficials o a la mateixa obra, segons cregui més convenient, encara que aquests no estiguin indicats en aquest plec. En el cas de discrepància, els assajos o proves s’efectuaran al laboratori oficial que el Tècnic Director d’obra designi. Les despeses ocasionades per aquestes proves i comprovacions, aniran a compte del Contractista. 5.3.4 Assajos Abans de la posada en servei del sistema elèctric, el Contractista haurà de fer els assajos adequats per provar, per la sencera satisfacció del Tècnic Director del projecte, que tot l’equip, aparells i cablejat han estat instal· lats correctament d’acord amb les normes establertes i estan en condicions satisfactòries pel seu funcionament. Tots els assajos seran presenciats per l’Enginyer que representa el Tècnic Director d’obra. Els resultats dels assajos seran passats en certificats indicant data i nom de la persona a càrrec de l’assaig, així com categoria professional. Els cables, abans de posar-se en funcionament, es sotmetran a un assaig de resistència d’aïllament entre fase i terra. 5.3.5 Assajos d’aparellatge Abans de posar l’aparellatge sota tensió, es mesurarà la resistència d’aïllament de cada equip entre fase i terra. Les mesures han de repetir-se amb els interruptors en posició de funcionament. Tot relé de protecció que sigui ajustable serà calibrat i assajat, fent servir un comptador de cicles, caixa de càrrega, amperímetre i voltímetre, segons es necessiti. Es disposarà, en la mesura del possible, d’un sistema de protecció selectiva. D’acord amb això, els relés de protecció s’escolliran i coordinaran per aconseguir un sistema que permeti actuar primer el dispositiu d’interrupció més proper a la falta. Tots els interruptors automàtics es col· locaran en posició de prova i cada interruptor serà tancat i disparat des del seu interruptor de control. Els interruptors hauran d’ésser disparats per accionament manual i aplicant corrent als relés de protecció. Es comprovaran tots els enclavaments.
Plec de Condicions
151
5.4 Condicions econòmiques
5.4.1 Preus El contractista presentarà, al formalitzar-se el contracte, relació dels preus de les unitats de treball que integren el projecte, els quals d’ésser acceptats tindran valor contractual i s’aplicaran a les possibles variacions que hi puguin haver. Aquests preus unitaris, s’entén que comprenen l’execució total de la unitat del projecte, incloent tots els treballs fins i tot els complementaris i els materials així com la part proporcional d’imposició fiscal, les càrregues laborals i altres despeses repercutibles. En cas d’haver de realitzar-se unitats de treball no previstes al projecte, es fixarà el seu preu entre el Tècnic Director i el Contractista abans d’iniciar la obra i es presentarà a la propietat per la seva acceptació o no. 5.4.2 Abonament del projecte El contracte s’haurà de deixar detalladament la forma i plaços en què s’abonaran les parts del projecte. Les liquidacions parcials que puguin establir-se tindran caràcter de documents provisionals a bon compte, subjecte a les certificacions que resultin de la liquidació final. No suposant, aquestes liquidacions, aprovació ni recepció de les obres que comprenen. Acabades les obres es procedirà a la liquidació final que s’efectuarà d’acord amb els criteris establerts al contracte. 5.4.3 Revisió de preus Al contracte s’establirà si el contractista té dret a revisió de preus i la fórmula a aplicar per calcular-la. En defecte d’aquesta última, s’aplicarà a judici del Tècnic Director algun dels criteris oficials acceptats. 5.4.4 Penalitzacions Per retràs en els plaços d’entrega de les obres, es podran establir taules de penalització i les seves quanties i demores es fixaran al contracte. 5.4.5 Contracte El contracte es formalitzarà mitjançant un document privat, que podrà elevar-se a escriptura a petició de qualsevol de les parts. Comprendrà l’adquisició de tots els materials, transport, mà d’obra, mitjans auxiliars per l’execució de l’obra projectada en el plaç estipulat, així com la reconstrucció de les unitats defectuoses, la realització de les obres complementàries i les derivades de les modificacions que s’introdueixin durant l’execució, aquestes últimes en els termes previstos. La totalitat dels documents que composen el Projecte tècnic de l’obra seran incorporats al contracte i tant el contractista com la Propietat hauran de signar-los en testimoni de qui els coneixen i accepten.
Plec de Condicions
152
5.4.6 Rescissió del contracte Causa de rescissió: Es consideren causes suficients per la rescissió del contracte les següents: 1- Mort o incapacitació del Contractista. 2- El trenc del contractista. 3- Modificació del projecte quan es produeixi alteració en més o menys el 25% del valor
contractat. 4- Modificació de les unitats d’obra en nombre superior al 40% de l’original. 5- La no iniciació dels treballs en el plaç estipulat quan sigui per causes alienes a la
propietat. 6- La suspensió de les obres ja iniciades sempre que el plaç de suspensió sigui superior a
6 mesos. 7- Incompliment de les condicions del Contracte quan impliqui mala fe. 8- Acabament del plaç d’execució de ‘obra sense haver arribat a completar aquesta. 9- Actuació de mala fe en l’execució dels treballs. 10- Delegar o subcontractar la totalitat o part dels treballs a tercers sense l’autorització del
Tècnic Director i de la propietat.
Plec de Condicions
153
5.4.7 Liquidació en cas de rescissió del contracte Sempre que es rescindeixi el contracte per causes anteriors o bé per acord d’ambdues parts, s’abonarà al Contractista les unitats del projecte executat i els materials arreplegats que reuneixin les condicions i siguin necessaris pel mateix. Quan es rescindeixi el contracte portarà implícit la retenció de la fiança per obtenir les possibles despeses de conservació del període de garantia i els derivats del manteniment fins la data de nova adjudicació.
Tarragona a 14 de Juny de 2001
Jesús Ferrando Herranz Enginyer Tècnic Industrial
Julian Del Hallazgo Arasa Enginyer Tècnic Industrial
Annexes
154
6 Annexes
Annexes
155
Annexes 6.1 Llistats dels programes 6.1.1 Programa Temporitzador ;Programa font TEMP.ASM ;Configuracio del timer 2 utilitzant la interrupcio del mateix ;timer, per controlar els leds de la placa emuladora ;La base de temps del timer agafant el CLK del micro es de CLK/4 (200ns) ;FUNCIO: Aquesta funcio programa el timer i l'interrupcio que genera ; el propi Timer 2 per generar una interrupci¢ cada 10 milisegons ; per implementar un comptador de segons ; ;NOTA: La frequencia del micro es de 20 MHz ; ; La frequencia del Timer 2 = 20MHz/4 ; = 5MHz ; = 200 nanosegons ; ; El valor a carregar per comptar 10 ms = 10ms/200ns ; = 50000 =(0C350H) TITLE Temporitzacio .model small .code .186 ;********** Definicio de @ de registre ************ PCB EQU 0FF00H TCUCON EQU PCB + 32H T2CNT EQU PCB + 60H T2CMPA EQU PCB + 62H T2CON EQU PCB + 66H IMASK EQU PCB + 28H EOI EQU PCB + 22H END_INTERRUP EQU 8000H TEMPS EQU 0C350H ;Temps que temporitza el Timer 2 ;50000 = 10ms ;********** Definicio de variables *********** DATA SEGMENT 'DATA' MSEC DW 0 ;Comptador de 10ms COMPTADOR DB 0 ;Inicialitzem la variable comptador a 0 DATA ENDS ;********************************************************* ;******** Codi del programa *************** ;********************************************************* CODI SEGMENT 'CODE' ASSUME CS:CODI
Annexes
156
ASSUME DS:DATA ORG 0H INICI: MOV MSEC,0000H ;Inicialitzem les variables MOV COMPTADOR,00H PUSH DS ;Calculem la direccio de la RSI al Timer 2 XOR AX,AX MOV DS,AX MOV SI,4CH MOV WORD PTR DS:[SI],OFFSET TIMER_2_INTERRUPT_ROUTINE INC SI INC SI MOV DS:[SI],CS POP DS ;***** Programem el Timer 2 ***** MOV DX,T2CNT ;Inicialitzem el comptador del Timer 2... XOR AX,AX OUT DX,AL ;... a zero MOV DX,T2CMPA ;Carreguem el temps que volem que... MOV AX,TEMPS OUT DX,AL ;...temporitzi. MOV DX,T2CON ; Configurem el timer per a que compti utilitzant MOV AX,0E001H ;el registre A, de forma continua, i generant una OUT DX,AL ;interrupcio al finalitzar el comptatge. ;***** Programem el registre TCUCON (Reg. Cont. Interrupcio Timer 2) ****** MOV DX,TCUCON XOR AX,AX ;Habilitem interrupcio Timer 2 OUT DX,AL STI ;Habilitem el flag de les interrupcions BUCLE: JMP SHORT BUCLE ;Esperem ;****************************************************************** ;******* SUBRUTINA DE SERVEI A LA INTERRUPCIO DEL TIMER 2 ******* ;****************************************************************** TIMER_2_INTERRUPT_ROUTINE PROC FAR PUSH DX PUSH AX CMP MSEC,0063H ;si ha passat 1 segons JAE TREURE_LEDS INC MSEC JMP SHORT SORTIR_INTERRUP TREURE_LEDS: MOV MSEC,0H ;Inicialitzem comptador de 10ms MOV AL,COMPTADOR OUT 1H,AL ;Treiem pels leds del port b el comptador INC COMPTADOR ;Nou valor
Annexes
157
SORTIR_INTERRUP: MOV DX,EOI ;Provoquem el End_Of_Interrupt MOV AX,END_INTERRUP OUT DX,AX POP AX ;Desapilem els valors utilitzats POP DX IRET ;Retornem de la subrutina TIMER_2_INTERRUPT_ROUTINE ENDP CODI ENDS END INICI
Annexes
158
6.1.2 Programa placa A/D ;Programa font AD.ASM ;Configuracio de la placa A_D ;FUNCIO: Escriptura i lectura en la placa A_D per a realitzar ; el mostreig de 4 sensors ; ;NOTA: Primer realitzem una escriptura per indicar quin sensor ; es vol llegir, i despres es realitzen dues lectures per ; a capturar la dada convertida ; TITLE Conversió A_D .model small .code .186 ;********** Definicio de @ de registre ************ PCB EQU 0FF00H PACS EQU 0FFA4H AD EQU 00080H S0 EQU 0000H ;Dada a escriure per seleccionar sensor 0 S1 EQU 0001H ;Dada a escriure per seleccionar sensor 1 S2 EQU 0002H ;Dada a escriure per seleccionar sensor 2 S3 EQU 0003H ;Dada a escriure per seleccionar sensor 3 ;********************************************************* ;******** Codi del programa *************** ;********************************************************* CODI SEGMENT 'CODE' ASSUME CS:CODI ORG 0H INICI: MOV DX,PACS MOV AX,003BH OUT DX,AL MOV DX,AD ; Seleccionem canal 0 MOV AX,S0 OUT DX,AL IN AL,DX ;Llegim part baixa IN AL,DX ;Llegim part alta MOV DX,AD ; Seleccionem canal 1 MOV AX,S1 OUT DX,AL IN AL,DX ;Llegim part baixa IN AL,DX ;Llegim part alta MOV DX,AD ; Seleccionem canal 2
Annexes
159
MOV AX,S2 OUT DX,AL IN AL,DX ;Llegim part baixa IN AL,DX ;Llegim part alta MOV DX,AD ; Seleccionem canal 3 MOV AX,S3 OUT DX,AL IN AL,DX ;Llegim part baixa IN AL,DX ;Llegim part alta CODI ENDS END INICI
Annexes
160
6.1.3 Programa PIES ;Programa font PIEs.ASM ;Configuracio de les Pies de la placa del micro ;FUNCIO: Programar les pies (8255) per escriure valors als ports ; i provar el bon funcionament del projecte; ; ;NOTA: Els periferics els accedim mitjan‡ant les linies de ; decodificaci¢ d'adreces PGSi! ; - PGS1 --> D/A --> @080H ; - PGS2 --> A/D --> @100H ; - PGS3 --> PIA1 --> @180H ; - PGS4 --> PIA2 --> @200H ; - PGS5 --> PIA SERIE --> @280H ; Configuraci¢ PIA 82C55: ; - @Base --> Port A ; - @Base+1 --> Port B ; - @Base+2 --> Port C ; - @Base+3 --> Registre de Control ; Registre de Control: ; 1 0 0 X X 0 X X --> Port C (Part Baixa) ; | | | 1 --> Input ; | | | 0 --> Output ; | | | ; | | |-----> Port B ; | | 1 --> Input ; | | 0 --> Output ; | | ; | |---------> Port C (Part Alta) ; | 1 --> Input ; | 0 --> Output ; | ; |-----------> Port A ; 1 --> Input ; 0 --> Output TITLE PIES .model small .code .186 ;********** Definicio de @ de registre ************ PCB EQU 0FF00H PACS EQU 0FFA4H PIA1_A EQU 00180H PIA1_B EQU 00181H PIA1_C EQU 00182H PIA1_CR EQU 00183H PIA2_A EQU 00200H PIA2_B EQU 00201H PIA2_C EQU 00202H PIA2_CR EQU 00203H
Annexes
161
;********************************************************* ;******** Codi del programa *************** ;********************************************************* CODI SEGMENT 'CODE' ASSUME CS:CODI ORG 0H INICI: MOV DX,PACS MOV AX,003BH OUT DX,AL MOV DX,PIA1_CR ;Configurem la pia 1 per a que tots MOV AX,0080H ;els ports siguin sortida OUT DX,AX XOR AX,AX ;Llegir registre de control IN AL,DX MOV DX,PIA2_CR ;Configurem la pia 2 per a que tots MOV AX,0080H ;els ports siguin de sortida OUT DX,AL XOR AX,AX ;Llegim registre de control de la IN AL,DX ;PIA 2 INI: MOV DX,PIA1_A ;Escrivim un valor al port A MOV AX,00A2H ;de la PIA 1 OUT DX,AL XOR AX,AX IN AL,Dx ;i el llegim despres MOV DX,PIA1_B MOV AX,005DH OUT DX,AL XOR AX,AX IN AL,DX MOV DX,PIA1_C MOV AX,00F0H OUT DX,AL XOR AX,AX IN AL,DX MOV DX,PIA2_A MOV AX,003CH OUT DX,AL XOR AX,AX IN AL,DX MOV DX,PIA2_B MOV AX,0047H OUT DX,AL XOR AX,AX IN AL,DX MOV DX,PIA2_C MOV AX,00FFH
Annexes
162
OUT DX,AL XOR AX,AX IN AL,DX JMP INI CODI ENDS END INICI
Annexes
163
6.1.4 Programa comunicació sèrie 6.1.4.1 Programa recepció ;Programa font SERIE_R.ASM ;Configuracio de la pia serie (TL16C450) per a rebre i prova de recepcio ;de caràcters del PC pel port sèrie COMM2. La comunicació es realitza per ;enquesta. Un cop rebuda, aquesta dada serà enviada al port dels LEDs(PB) ;de l'emulador per verificiar la comunicació. TITLE Pia_Serie_r .model small .code .186 PIA_SERIE EQU 00280H RBR EQU PIA_SERIE + 0H ;de lectura (dlab=0) LCR EQU PIA_SERIE + 3H ;registre de control LSR EQU PIA_SERIE + 5H ;registre estat SCR EQU PIA_SERIE + 7H ;scratch registre DLL EQU PIA_SERIE + 0H ;byte baix de baud rate (dlab=1) DLM EQU PIA_SERIE + 1H ;byte alt de baud rate (dlab=1) PB EQU 01H ;adreça del port dels LEDS de l'emulador PCB EQU 0FF00H PACS EQU PCB + 000A4H DATA SEGMENT 'DATA' ESTATUS DB 0 ;Valor del registre de estat DADA DB 0 ;dada DATA ENDS ;********************************************************* ;******** Codi del programa *************** ;********************************************************* CODI SEGMENT 'CODE' ASSUME CS:CODI ASSUME DS:DATA ORG 0H INICI: MOV DX,PACS ;programem el registre PACS per a provocar MOV AX,003BH ;tres estats d'espera en cada acces als OUT DX,AL ;periferics MOV DX,LCR ;programem per no paritat, 8 bits de MOV AX,97H ;dades i DLAB=1 OUT DX,AL MOV DX,DLL ;modifiquem el baud generator per a una MOV AX,18H ;velocitat de transmissio de 4800 bps OUT DX,AL ;amb un cristall de 1.8432MHz = 24
Annexes
164
MOV DX,DLM XOR AX,AX ;1.8432M/(16x4800) = 24 OUT DX,AL MOV DX,LCR MOV AX,17H ;DLAB=0 OUT DX,AL LEC: MOV DX,LSR ;Llegim el registre de estat XOR AX,AX IN AL,DX MOV ESTATUS,AL ;..i el guardem TEST AL,01H ; Si no Caracter esperant salta i si no JZ LEC ;continua i... MOV DX,RBR ;Llegim la dada XOR AX,AX IN AL,DX MOV DADA,AL MOV DX,PB ;Treiem la dada pel PB del Leds MOV AL,DADA OUT DX,AL JMP LEC CODI ENDS END INICI
Annexes
165
6.1.4.2 Programa transmissió ;Programa font SERIE_T.ASM ;Configuracio de la pia serie (TL16C450)per a enviar una dada al PC ;pel port serie COMM2. TITLE Pia_Serie_t .model small .code .186 PIA_SERIE EQU 00280H THR EQU PIA_SERIE + 0H ;escriptura (dlab=0) LCR EQU PIA_SERIE + 3H ;registre de control LSR EQU PIA_SERIE + 5H ;registre estat DLL EQU PIA_SERIE + 0H ;byte baix de baud rate (dlab=1) DLM EQU PIA_SERIE + 1H ;byte alt de baud rate (dlab=1) PCB EQU 0FF00H PACS EQU PCB + 000A4H DATA SEGMENT 'DATA' DADA DB 0 ;dada DATA ENDS ;********************************************************* ;******** Codi del programa *************** ;********************************************************* CODI SEGMENT 'CODE' ASSUME CS:CODI ASSUME DS:DATA ORG 0H INICI: MOV DX,PACS ;programem el registre PACS per a provocar MOV AX,003BH ;tres estats d'espera en cada acces als OUT DX,AL ;periferics MOV DX,LCR ;programem per no paritat, 8 bits de MOV AX,97H ;dades i DLAB=1 OUT DX,AL MOV DX,DLL ;modifiquem el baut generator per a una MOV AX,18H ;velocitat de transmissio de 4800 bps OUT DX,AL ;amb un cristall de 1.8432MHz = 24 MOV DX,DLM XOR AX,AX ;1.8432M/(16x4800) = 24 OUT DX,AL MOV DX,LCR MOV AX,17H ;DLAB=0 OUT DX,AL MOV DX,THR INI: MOV DADA,61H ;Inicialitacio variable a caràcter 'a' TREURE: MOV AX,DADA ;Enviar dada al PC
Annexes
166
OUT DX,AL CMP DADA,7AH ;Si dada és caràcter 'z' JAE INI ;Tornar a començar, sinó INC DADA ;Incrementar dada JMP SHORT TREURE CODI ENDS END INICI
Annexes
167
6.1.4.3 Programa comunicació PC Option Explicit Dim cadena As String 'Caracter on posarem la dada a enviar 'o a rebre Dim Caracter As Byte ' Si es prem la tecla Sortir o Escape Private Sub CmbSortir_Click() Unload Me 'Acabar End Sub Private Sub Form_Load() 'Obrim El port de comunicacion Comunicacion.PortOpen = True TxtEstado = "Espera" End Sub Private Sub Form_Unload(Cancel As Integer) 'Tacar el port de comunicacions Comunicacion.PortOpen = False End Sub 'Si volem enviar una dada La Posem a Output Private Sub CmbEnviar_Click() TxtEstado = "Enviant Dada Pel Port Serie" 'Caracter = Asc(TxtOutput.Text) cadena = TxtOutput.Text Comunicacion.Output = Left(cadena, 1) End Sub 'Cada cop que rebem una dada del Client Private Sub Comunicacion_OnComm() 'Si S'ha rebut Un caracter al menys If Comunicacion.CommEvent = comEvReceive Then ' And Comunicacion.InBufferCount <> 0 Then TxtEstado = "Dada Rebuda" 'Timer1.Interval = 1000 'L'agafem cadena = Comunicacion.Input 'I el Treiem per pantalla TxtInput.Text = Left(cadena, 1) 'Si S'ha enviat un caracter ElseIf Comunicacion.CommEvent = comEvSend Then TxtEstado = "S'ha enviat la dada" TxtInput.Text = TxtOutput.Text 'Timer1.Interval = 1000 'si no ha passat res de lo anterior ElseIf Comunicacion.CommEvent <> comEvReceive _ And Comunicacion.CommEvent <> comEvSend Then 'Si no es que es un error MsgBox "Es Produeix un Error " & Comunicacion.CommEvent & _ " durant la comunicacio" End If End Sub
Annexes
168
6.2 Informació tècnica dels components · Microprocessador 80C188XL · UART TL16C450F · PIA 82C55A · Transceiver MAX232 · EPROM 27C256 · SRAM KM684000A · Conversor D/A AD669 · Multiplexor analògic HEF4067B · Sample and Hold LF398 · Conversor A/D LTC1605 · Multivibrador monoastable 74HC221