• No se han encontrado resultados

º ÂÍ Æ Ä ÁÆÇ Å Æ È Ê ÓØÓÖ Ò ÁÒ ÓÖÑ Ø Ý ÔÖÓ ÓÖ Ð ÒØÖÓ ËÙÔ Ö ÓÖ ÁÒ ÓÖÑ Ø Ð ÍÒ Ú Ö Ä Ä ÙÒ º ÊÌÁ Á ÉÙ º Ú Ð ÒÓ À ÖÖ Ö ÅÓÖ Ð Ö Ð Þ Ó Ó Ñ Ö ÓÒ Ð ÔÖ ÒØ ÔÖÓÝ

N/A
N/A
Protected

Academic year: 2021

Share "º ÂÍ Æ Ä ÁÆÇ Å Æ È Ê ÓØÓÖ Ò ÁÒ ÓÖÑ Ø Ý ÔÖÓ ÓÖ Ð ÒØÖÓ ËÙÔ Ö ÓÖ ÁÒ ÓÖÑ Ø Ð ÍÒ Ú Ö Ä Ä ÙÒ º ÊÌÁ Á ÉÙ º Ú Ð ÒÓ À ÖÖ Ö ÅÓÖ Ð Ö Ð Þ Ó Ó Ñ Ö ÓÒ Ð ÔÖ ÒØ ÔÖÓÝ"

Copied!
129
0
0

Texto completo

(1)

Un sistema de desarrollo basado en el

miroontrolador 80592 on preproesador para

ontrol borroso

Autor: Avelino Herrera Morales

Tutor: Juan Albino Mendez Perez

24 de septiembre de 2002

Departamentode Fsia Fundamentaly Experimental,Eletroniay Sistemas

Centro Superior de Informatia

(2)

D. JUAN ALBINO MENDEZ PEREZ, Dotor en Informatia y profesor del Centro

Superior de Informatia de laUniversidad de La Laguna.

CERTIFICA:

Que D. Avelino Herrera Morales ha realizado bajo mi direion el presente proyeto,

on ttulo "Miroy: UN SISTEMA DE DESARROLLO BASADOEN EL

MICRO-CONTROLADOR 80592 CON PREPROCESADOR PARA CONTROL BORROSO".

Con esta feha, autorizola presentaion delmismo.

La Laguna, Septiembre de 2002.

(3)

A mispadres.

A minovia.

(4)

Indie General

1 Introduion 6

1.1 Objetivos . . . 6

1.1.1 Elsistema hardware en torno al80592 . . . 7

1.1.2 Elemulador ROM . . . 7 1.1.3 Elontrolador borroso . . . 7 1.2 Motivaiones . . . 8 2 El miroontrolador 9 2.1 El80592 . . . 9 2.2 Registros. . . 11 2.3 Organizaionde la memoria . . . 12 2.3.1 Memoriade programa . . . 13 2.3.2 Memoriade datos . . . 13 2.4 Puertosde entrada/salida . . . 16 2.5 Modos de direionamiento. . . 16 2.5.1 Direionamientoinmediato . . . 16 2.5.2 Direionamientodireto . . . 17

(5)

2.5.5 Direionamientoindireto indexadoporregistro . . . 18

2.5.6 Direionamientode bit . . . 18

2.6 Repertoriode instruiones. . . 18

2.6.1 Instruiones de transferenia . . . 19

2.6.2 Instruiones aritmetias . . . 20

2.6.3 Instruiones logias . . . 20

2.6.4 Instruiones booleanas. . . 20

2.6.5 Instruiones de ruptura de seuenia . . . 21

2.7 Lassalidas PWM . . . 21

2.8 ElADC . . . 23

2.9 Timers . . . 24

2.9.1 Lostimers 0 y 1. . . 24

2.9.2 Eltimer 2 . . . 26

2.9.3 Eltimer wath dog . . . 27

2.10 Interrupiones . . . 28

2.11 LaUART . . . 29

2.12 ElontroladorCAN inluido . . . 31

2.12.1 Elprotoolo CAN. . . 31

2.12.2 Conexionado del80592 on un bus CAN . . . 34

2.12.3 Programaiondelbus CAN en el80592 . . . 35

3 El sistema de desarrollo basio 39 3.1 Alimentaion . . . 39

(6)

3.3 Ciruitode reset . . . 41

3.4 LamemoriaFlash . . . 41

3.5 LaRAM . . . 42

3.6 Conexionadode lasmemoriasal 80592 . . . 43

3.7 Conexionde un onversor DA al prototipo . . . 44

3.8 Programaiondelprototipo . . . 46

3.8.1 Eltimer wath dog del80592 . . . 47

3.8.2 Puertos adiionales . . . 49

3.8.3 Vetores de interrupionadiionales . . . 49

3.9 Algunosodigos de ejemplo . . . 50

3.9.1 Conversion analogio digital . . . 50

3.9.2 Multipliaionde 16bits . . . 52

4 El emulador de FlashROM 56 4.1 Implementaiondel emuladorde FlashROM . . . 57

4.2 LaAPI del emulador . . . 60

4.3 Elsoftware para el emulador . . . 63

5 Miroy Fuzz : Apliaion de ontrol borroso 65 5.1 Elsoftware . . . 65

5.1.1 Lagramatiadel lenguaje fuzz . . . 68

5.2 Elejemplo de apliaion . . . 70

5.2.1 Conexionado de lagruaon elMiroy . . . 71

(7)

5.3 Utilizaionde fuzz en lazos de ontroltradiionales . . . 77

5.3.1 Lasoluion hardware . . . 79

5.3.2 Lasoluion software . . . 80

A El ompilador SDCC 82

B El software del emulador: ihxwrite e ihxtest 112

B.1 ihxwrite . . . 112

B.2 ihxtest . . . 115

(8)

Indie de Tablas

2.1 Organizaionde la memoriade datos del 80592 . . . 14

2.2 Funiones alternativaspara ada uno de lospuertosdel 80592 . . . 17

2.3 Instruiones de transferenia en la RAM interna . . . 19

2.4 Instruiones de transferenia en la RAM externa y auxiliar . . . 19

2.5 Instruiones aritmetias . . . 20

2.6 Instruiones logias . . . 21

2.7 Instruiones booleanas. . . 22

2.8 Instruiones de salto inondiional . . . 23

2.9 Instruiones de salto ondiional . . . 23

2.10 Instruiones quemodian losindiadores o banderas . . . 24

2.11 Elregistro de ontrolTMOD (0x89) . . . 25

2.12 ElSFR TM2CON (direion0xEA) . . . 26

2.13 ElSFR CTCON (0xEB) . . . 26

2.14 ElSFR TM2IR (0xC8) . . . 27

2.15 ElSFR STE (0xEE) . . . 27

2.16 ElSFR RTE (0xEF) . . . 28

2.17 Vetores de interrupiondel8051 y del80592 . . . 29

(9)

2.20 ElSFR IP0 (direion0xB8) . . . 30

2.21 ElSFR IP1 (direion0xF8) . . . 31

2.22 ElSFR SCON (0x98) . . . 31

3.1 Pines de alimentaiondelmiroontrolador . . . 40

4.1 Pines del puerto paralelo . . . 58

4.2 Datos(direionBASE). Letura/Esritura. . . 58

4.3 Estado(DireionBASE + 1).Sololetura. . . 58

(10)

Indie de Figuras

2.1 Pines del 80592 . . . 10

2.2 Enapsuladodel 80592 . . . 11

2.3 Mapa de memoriadel 8x592 . . . 12

2.4 Organizaionde la RAM prinipaldel80592 . . . 15

2.5 Modelo de transmisionsobre un bus basadoen una AND ableada . . . 32

2.6 Conexionadoentre el80592 y el transeptor CAN82250 . . . 35

2.7 Enapsuladodel transeptorCAN 82250 . . . 35

2.8 Detalledel80592 (izquierda)onetado al 82250(dereha) . . . 36

3.1 Ciruitode reset . . . 41

3.2 Enapsuladodel 29F010(FlashROM) . . . 42

3.3 Enapsuladodel 62256(RAM estatia) . . . 43

3.4 Demultiplexaionde los buses del80592 . . . 44

3.5 Enapsuladodel 74573(lathtriestado) . . . 45

3.6 Elsistema basio . . . 45

3.7 Esquemadel montaje delDACon elpuerto P4 . . . 46

3.8 Enapsuladodel 741 (ampliadoroperaional) . . . 46

3.9 Enapsuladodel DAC08 (DAC) . . . 47

(11)

4.2 EmuladorFlashROM . . . 57

4.3 Elemulador de FlashROM . . . 60

5.1 Ejemplode omo sedenen losonjuntos difusos . . . 66

5.2 Esquemade lagruaon laarga olgante . . . 71

5.3 Ciruitoparaaondiionar lase~nalprovenientedelsensor delangulode la arga . . . 73

5.4 Controlde posiiony anguloon desplazamiento. . . 76

5.5 Controlde posiiony anguloon osilaiones de laarga . . . 76

5.6 Osilaionlibre de laarga . . . 77

5.7 Controlde posiionon desplazamiento . . . 77

5.8 Fotografade todoel onjunto . . . 78

5.9 Lazo de ontrolutilizado . . . 78

5.10 Lazo de ontroltradiional . . . 79

5.11 Restadoranalogio en laentrada delmiroontrolador. . . 79

(12)

Introduion

Enelpresenteproyetosehaimplementadounsistemahardware ysoftwarede desarrollo

basado en el miroontrolador 80592. Los modulos basios del sistema desarrollado son

el miroontrolador,los modulos de memoriaRAM (32 Kbytes), el modulo de memoria

ROM (128 Kbytes) y un onversor DA para dotar al sistema de salidas analogias.Para

failitarel desarrollo y la depuraion de apliaiones sobre el miroontrolador tambien

seha implementadoun emuladorde FlashROM apartir de memoriasRAM.

Ademas de la implementaionhardware delprototipo,en este proyeto seha

desarro-lladouna apliaionpara implementarontroladores borrososen elsistemade desarrollo.

Para ellosereo un tradutor de lenguaje, para traduirodigo de altonivel (on elque

sedeneelontroladorborroso) alenguaje C. Comoapliaionseonsideroelontrolde

un prototipo aesala de un puente de grua.

1.1 Objetivos

A ontinuaionse enumeranlos objetivosplanteados en este proyeto:

1. Contruion de un sistema hardware basado en el proesador 80592 de la familia

MCS51.

2. Construion de un emulador ROM para agilizar el desarrollo de software para el

prototipo.

3. Implementaion de un ontroladorborroso en elprototipo.

(13)

Elprototipodesarrolladoesun sistemasenilloon unaonguraionbasiaformadapor

el proesador, una memoria FlashROM para odigo y una memoria RAM estatia para

datos. Las entradas y salidas de este sistema se orresponden on las entradas y salidas

propiasdel miroontrolador(entradas y salidas digitalesy varias entradasanalogias).

El miroontrolador 80592 esta basado en la familia de miroontroladores de 8 bits

MCS51 de Intel y se ompone de un nuleo basio de un 8051 al que se le han a~nadido

8entradas analogias,2 salidasPWM, un interfae de bus CAN2.0A, un timer adiional

de proposito general (T2) y un timer de wathdog (T3).

Este sistema hardware onstruido alrededor del 80592 posee 32 Kbytes de memoria

RAMdedatosy64KBytesdememoriaFlashdeprograma.Elprototiposehaompletado

on la inlusion de un onversor digital-analogio que permite disponer de una salida

analogia.

Esto resulta espeialmenteutil para la implementaionde lazos de ontrol.

1.1.2 El emulador ROM

Para failitareldesarrolloy ladepuraionde apliaionespara el80592,sehaa~nadidoun

emuladordeFlashROM.Dihodispositivoemulaelfunionamientodeuna memoriaash

29F010,tratandose,enrealidad,deunamemoriaRAMalimentadadeformaindependiente

y esribible desde un PC. El emulador permite emular una ROM de 32 Kbytes al estar

onstruido alrededor de una RAM estatia 62256.

Un emulador ROM permite aliviar la arga fsia de desarrollo al poder estar el

pro-totipo permanentemente en ontato on un PC desde el que se vuela el odigo para

ser ejeutado. De esta formaevitamos el uso de memoriasFlashROM para el proeso de

depuraion, utilizando pastillas de memoria no volatil solo para grabar programas para

suexplotaion.

1.1.3 El ontrolador borroso

Despues de la implementaion hardware de los dos puntos anteriores en el proyeto se

planteoeldesarrollodeuna soluionsoftware paraontrolborroso.Dihoontrolborroso

se aplio a un prototipo de grua (ontrol de posiion y ontrol de las osilaiones de la

arga olgante).

Elobjetivo de laimplementaioneselontrolde posiiondelprototipode grua

simul-taneado on un ontrolde lasosilaiones de la arga,prourando queesta semantenga

(14)

Existen multiplessistemasde desarrolloen elmerado basadosen miroontroladores de

lafamiliaMCS51.En este asose haoptadopor lafabriaiondesdeero, de un sistema

de desarrollo utilizandoplaas de prototipos.Al interespropio de desarrollar un sistema

deontrolborrososelea~nadeelhehode implementarloen unsistemapeque~node8bits,

(15)

El miroontrolador

Enesteaptulodesribiremoselfunionamientoylasaraterstiasdelmiroontrolador

80592:Repertoriodeinstruiones,organizaiondelamemoria,modosde

direionamien-toque soporta yotrasaraterstiasadiionalestalesomoelonversoranalogio-digital

queposee, lassalidas PWM,lostimers, lasfuentes de interrupiony elontroladorCAN

integradoen elhip, ompatibleon larevision2.0A delprotoolo.

2.1 El 80592

A prinipios de losa~nos 80, Intel introdue el miroontrolador8051 (perteneiente a la

familia MCS51). Se trata de un miroontrolador fabriado, en su version original, on

tenologa HMOS. Tanto el 8051, omo otros miroontroladores (8048, 8031, 8052, et)

formanpartedelallamadafamiliaMCS51.Dihafamiliade proesadoresestaonstruida

alrededor de un nuleobasio (denominado n uleo 8051)on funionalidadesadiionales

a~nadidassegun laversion.

La familiaMCS-51 seenuentra muy extendidaen elampoindustrial, habiendo

mu-hos automatas y tarjetas hip onstruidos on ellos (por itar algunos ejemplos). Por

otro ladoIntelrmoauerdos de produionon otras empresas tales omo Oki,Philips,

SiemensoSignetisparaqueestaspudiesenfabriarmiroontroladoresnuevosutilizando

el nuleo basio del 8051 (a~nadiendole DACs, ADCs, ontroladores de buses tales omo

elI2C, elCAN, et)

En nuestro aso se ha utilizadoel miroontrolador 80592de Philips Semiondutors.

Setrata,pues,de unproesadorbasadoen elnuleo8051de Intel(totalmente ompatible

a nivel software on su anteesor de Intel) al que se le ha a~nadido una interfaz CAN,

8 entradas analogias multiplexadas y un ADC de 10 bits, 6 puertos E/S de 8 bits, 15

fuentes de interrupionon 2 niveles de prioridady on una freuenia de reloj de entre

1.8 y 16MHz. Cada uno de los bits de lospuertos posee una funion alternativaa parte

(16)

XTAL2

/PWM0

/PWM1

AVref+

AVref−

STADC

XTAL1

CVss

Vss

Vdd

/EA

/PSEN

ALE

CRX0

CRX1

REF

AVss

AVdd

RST

/EW

P5.0

P5.1

P5.2

P5.3

P5.4

P5.5

P5.6

P5.7

P4.0

P4.1

P4.2

P4.3

P4.4

P4.5

P4.6

P4.7

ADC0

ADC1

ADC2

ADC3

ADC4

ADC5

ADC6

ADC7

CMSR0

CMSR1

CMSR2

CMSR3

CMSR4

CMSR5

CMT0

CMT1

funciones alternativas

P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

AD0

AD1

AD2

AD3

AD5

AD6

AD7

CT0 / INT2

CT1 / INT3

CT2 / INT4

CT3 / INT5

T2

RT2

CTX0

CTX1

AD4

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

A8

A9

A10

A11

A12

A13

A14

A15

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD / DATA

TXD / CLOCK

/INT0

/INT1

T0

T1

/WR

/RD

Parte baja del bus de direcciones

y bus de datos

Parte alta de bus de direcciones

funciones alternativas

8x592

Figura2.1: Pines del80592

El 80592, al igual que todos los suesores del 8051, es un miroontrolador de 8 bits,

on una ALU de 8 bits que permite realizar algunas operaiones de 16 bits

(multipli-aion y division) y algunas ooperaiones de 1 bit (mediante direionamiento de bit,

operaiones logias).Existeseparaionlogia entre losdatosy lasinstruionesaun

sien-do el bus de datos y de direiones omun a ambos mundos. Posee multiples modos de

direionamiento:

Inmediato.

Direto.

Por registro.

Indiretoporregistro.

Indiretoindexado por registro.

De bit.

A lolargode este aptulo seiraprofundizandoen ada una de lasaraterstias de este

(17)

P4.3 / CMSR3

P4.4 / CMSR4

P4.5 / CMSR5

P4.6 / CMT0

P4.7 / CMT1

RST

P1.0 / CT0I / INT2

P1.1 / CT1I / INT3

P1.2 / CT2I / INT4

P1.3 / CT3I / INT5

P1.4 / T2

P1.5 / RT2

CVss

P1.6 / CTX0

P1.7 / CTX1

P3.0 / RXD

P3.1 / TXD

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

AVdd

P5.7 / ADC7

P5.6 / ADC6

P5.5 / ADC5

P5.4 / ADC4

P5.3 / ADC3

P5.2 / ADC2

P5.1 / ADC1

P5.0 / ADC0

Vdd

STADC

/PWM0

/PWM1

/EW

P4.0 / CMSR0

P4.1 / CMSR1

P4.2 / CMSR2

5

6

7

8

9

4

3

2

1

68

67

66

65

64

63

62

61

/PSEN

ALE

/EA

P0.7 / AD7

P0.6 / AD6

P0.5 / AD5

P0.4 / AD4

P0.3 / AD3

P0.2 / AD2

P0.1 / AD1

P0.0 / AD0

REF

CRX1

CRX0

AVref−

AVref+

AVss

46

45

44

47

48

49

50

51

52

53

54

55

56

57

58

59

60

P2.5 / A13

P2.6 / A14

P2.7 / A15

P2.4 / A12

P2.3 / A11

P2.2 / A10

P2.1 / A9

P2.0 / A8

Vss

XTAL1

XTAL2

P3.7 / /RD

P3.6 / /WR

P3.5 / T1

P3.4 / T0

P3.2 / /INT0

P3.3 / /INT1

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

80C592

43

Figura2.2: Enapsulado del80592

2.2 Registros

Enel 80592, aligual que en elresto de ongeneres de la familiaMCS51, losregistros del

proesador se enuentran mapeados en la memoria RAM interna. Se pueden difereniar

entre 2 tiposde registros:

Registrosde funion espeial.

Registrode bano.

Dentro de los 256 bytes de memoria RAM prinipal interna del 80592, los registros de

funionespeialseenuentran enlos128 ultimosbytesuandoseaeden mediante

dire-ionamientodireto.Son estosSFRs losquepermitenelaesoapuertos, alaumulador,

al registro de multipliaion, et. A medida que se vayan expliando las apaidades

propiasdel miroontroladorse iraprofundizando en el resto de SFRs que posee.

Porotroladotenemoslosregistrosdebano.El80592posee4banosderegistros,ada

banoon 8 registros: R0a R7,y alojadosen la partebaja de laRAM priniaplinterna.

Solo un bano puede estar ativo en un instante determinado. Estos registros de bano

son de utilidadgeneraly sololos R0y R1de ada bano tienenomo utilidadespeialel

(18)

El miroontrolador permite direionar 64 Kbytes de memoria de programa externa,

posee256bytesdememoriaRAMinternadelosualeslos128primerossondireionables

de formadireta e indireta, mientras que los 128 restantes solo son direionables

indi-retamente (ver gura 2.3). Existe, ademas, una zona de memoria superpuesta a esta

zonade aeso indiretoyque ontienelosSFR (Speial Funtion Registers). Cuando

re-alizamosun aesoindiretoaedemosalaRAMinternaindiretayuandohaemos un

aeso direto aedemos a los SFR. Este proesador posee un tipo de direionamiento

adiional a los tradiionales, que es el direionamiento de bit. Diho direionamiento

soloesapliablea algunaszonasde losSFR (elpuerto P0,porejemploestarepresentado

en la RAM interna por un SFR situado en la direion 80h y, ademas sus bits P0.0 a

P0.7 pueden ser aedidos de forma individual mediante direionamiento de bit en las

direiones 80h a87h).

65535

16384

16383

0

(EA = 1)

(EA = 0)

interna

externa

externa

indirecto

indirecto

0

127

255

256

65535

INTERNA

EXTERNA

MEMORIA DE PROGRAMA

MEMORIA DE DATOS

RAM

auxiliar

(indirecto)

SFRs

(directo)

directo e

principal

RAM

espacio solapado

Figura 2.3: Mapa de memoriadel8x592

Sila RAM internano essuiente paranuestraapliaion, esposibledotar alsistema

de una RAM externa. El unio inonveniente de esta RAM externa es que,aparte de ser

maslentaporrazonesobvias,soloesposibleaederaellamediantelainstruionMOVX.

Noesposiblerealizar,portantooperaionesdiretamentesobrevariablesalojadasen esta

RAM.

La RAM auxiliaraunque es interna, no se trata omo tal, ya que es una zona de 256

bytes de RAM direionables omo si de una RAM externa se tratase, esto es: al

dire-ionar un dato en la memoria RAM externa entre la direion 0 y la 255 aederemos

realmente a la RAM auxiliar (alojada fsiamente dentro del miroontrolador),

mien-tras que si direionamos datos de la RAM externa entre la direion 256 y la 65535

aederemosa la RAMexterna y fsiamenteexterna.

Todala familiade miroontroladores MCS51 posee un bus de datos y de direiones

(19)

partealtadelbusde direiones,mientrasqueelpuerto0(bitsP0.0aP0.7)en unprimer

momento del ilo del bus india la parte baja del bus de direiones (on el pin ALE

(addresslath enable)a1)y en un segundomomentodeliloemite/lee los8 bitsdelbus

de datos (on el pin ALE a 0).Es preiso, por tanto, uandose va aesribir o a leer un

datoounainstruionatravesdelbus, "reordar"elvalorquetenanlos8bitsmasbajos

de la direion.

Medianteun lathmontadodiretamentealasalidadelpuertoP0podemosalmaenar

en ada ilo de bus el valor de la parte baja del bus de direiones simplemente on

onetar la salidaALE del miroontroladora laentrada LE (Lath Enable) dellath.

2.3.1 Memoria de programa

Algunosmodelosde 80592(enonreto losmodelos83592)poseen 16Kbytesde memoria

ROMdeprogramadentrodelpropiohip.Elmodeloquesehautilizadoeselmodelo80592

que no posee esta memoria. Esto signia que el hip depende, para su funionamiento

de una memoria externade programa.

El pin etiquetado omo /EA (ver gura 2.1) permite indiar al miroontrolador de

dondedebeleer losprimeros16Kbytesde memoriade programa(/EA =0,parautilizar

una pastilla externa, y /EA = 1 para utilizar la ROM interna; ver la gura 2.3). En

nuestro aso se ha ongurado el pin /EA permanentemente a 0, ya que se trata de un

modelosinROMinternay,desde elprimerbyte,elodigodebeser leidodesdeelexterior

del miroontrolador.

Elvetorderesetsesituaenladireion0x0000ylosvetoresdeinterrupionsesituan

enlasdireiones0x0003,0x000B,0x0013,0x001B... yassuesivamentehastaompletar

los 15vetores de interrupion soportadosporel miroontrolador.La pratia habitual

onsisteen oloar en ladireion0x0000una instruion"ljmp funion_main"para as

dejarlibres lasentradas de los vetores de interrupion. De esta manera, al ser el vetor

0x0000eldereset,uandosereiniieelproesadorseejeutaraestainstruion"ljmp"que

hara una salto hasta el programa prinipal a ejeutar (si oloasemos diretamente el

odigo prinipal a partir de la direion 0x0000 no podr

iamos utilizar los vetores de

interrupionque omienzan asi inmediatemente, a partir de la direion 0x0003).

2.3.2 Memoria de datos

Lamemoria de datos del80592 esta organizada segun semuestraen latabla 2.1.

La RAMprinipal puedeser aedida tanto de formadireta omo indireta,la RAM

auxiliar solo puede ser aedida mediante la instruion MOVX, omo si fuese RAM

(20)

Direto Indireto

Interna Prinipal 256 bytes 0a 127 X X R0 y R1

128 a 255 { X

Auxiliar 256 bytes 0a 255 { X R0, R1y DPTR

SFRs 128 bytes 128 a 255 X { {

Externa { 65280 bytes 256 a 65535 { X R0,R1 y DPTR

Tabla 2.1: Organizaion de lamemoria de datos del80592

MOVX mas alla de los 256 bytes de esta RAM auxiliar. En el 8051 original no existe

RAM auxiliary laRAM externa es aedida desde ladireion 0x0000.

La RAM interna

LaRAM interna esta divididaen 3 bloques:

La RAM prinipalde 256 bytes. Los 128 primeros direionables direta e

indire-tamente, y los128 ultimos direionablessolode forma indireta.

LosSFRoregistrosdefunionespeialalosqueseaedemediante

direionamien-todireto de los128 ultimosbytesde laRAM prinipal.

La RAM auxiliar a la que solo se puede aeder mediantela instruion MOVX y

quehae las vees de RAM externa dentrodelhip, de 256 bytesde tama~no.

Enlos primeros128 bytesde laRAM interna prinipal(direionables tantode forma

diretaomo indireta) nos enontramoson varias zonas:

Entre la direion 0x00 y la 0x1F hay 4 banos de registros, on 8 registros por

bano(elbano0entre 0x00y 0x07,elbano1entre 0x08y 0x0F,elbano2 entre

0x10y0x17,yelbano3entre 0x18y 0x1F).Cadaunodelosregistrosde unbano

sedenominan R0 aR7 y solopuede haberun bano ativo en ada instante.

Entre ladireion0x20y la 0x2F hayuna zona de 128 bits direionablea nivel de

bit(direiones de bitentre 0x00y 0x7F). Para uso general.

Entre la direion0x30y la 0x7F, 80bytespara uso general.

Enlagura2.4podemosverun graoquemuestralaorganizaionde laRAMinterna

prinipaldel miroontrolador.

Entre ladireion0x80 y la 0xFFy direionablesde forma direta,tenemos losSFR

o Speial Funtion Registers. Se trata de una serie de registros espeiales que poseen

(21)

Banco de registros 3

Banco de registros 2

Banco de registros 1

R7

R0

R7

R0

R7

R0

R7

16 bytes direccionables mediante

direccionamiento de bit

(128 bits: direcciones 0x00 a 0x7F)

80 bytes de usuario

128 bytes accesibles mediante

direccionamiento indirecto

(registros R0 y R1)

Direccionamiento de bit

(ACC, DPTR, SP, P0...P5, etc)

mediante direccionamiento directo

128 bytes de SFRs accesibles

0x08

0x0F

0x10

0x17

0x18

0x1F

0x07

0x00 R0

Banco de registros 0

0x20

0x2F

0x30

0x7F

0x80

0x80

0xFF

0xFF

directo o indirecto

Direccionamiento

directo o de bit

Direccionamiento

y mediante direccionamiento

de bit

(128 bits: direcciones 0x80 a 0xFF)

Figura2.4: Organizaionde la RAM prinipaldel80592

SP en 0x81: El puntero de pila.

DPL en 0x82:Parte baja del registropuntero DPTR.

DPH en 0x83:Parte altadelregistro puntero DPTR.

PSW en 0xD0: La palabra de estado del proesador. Posee los prinipales ags del

proesadordireionablesa nivel de bit:

Bit7 (CY) en 0xD7:Bit de aarreo.

Bit6 (AC) en 0xD6: Aarreo auxiliarpara BCD.

Bit5 (F0) en 0xD5:Bit de usuario.

Bit4 (RS1) en 0xD4:Bit 1 de seleion de bano.

Bit3 (RS0) en 0xD3:Bit 0 de seleion de bano.

Bit2 (OV) en 0xD2: Indiadorde desbordamiento.

Bit0 (P) en 0xD0: Indiadorde paridad.

Mediantelosbits RS0y RS1seleionamosquebanode registros(0a3)deseamos

(22)

B en 0xF0:Registro para multipliaiony division.

Hay que se~nalar que, aunque el registro del aumulador es el ACC, en el odigo

en-sambladorseutiliza elmnemonio"A"para haerrefereniaal aumulador.Para elresto

de registrosde funionespeial elnombre delregistrooinideon sudenominaionenel

odigo ensamblador.

Tenemos ademasun SFR porada puertodel miroontrolador,para elontrolde los

timers, para el ontrolde las omuniaiones CAN, para elontrol de laUART, para la

leturade lasentradas analogias, y ason todas laspeuliaridadespropias delhip.

El 80592 basa su ompatibilidad on el 8051 original en el heho de que los registros

heredadosdeesteultimoestanalojadosenlasmismasdireiones,ylosnuevosSFRspara

lasnuevas apaidades del80592 simplementesehan oloado en loshueos dejados por

Intel en esta zona de memoria.

El listado detallado de los registros de funion espeial del 80592 as omo su

fun-ionamiento y modo de empleo se pueden onsultar on detalle en la hoja de datos del

miroontrolador.

2.4 Puertos de entrada/salida

El 80592 posee 6 puertos de entrada/salida, etiquetados omo P0,P1, P2, P3, P4 y P5.

Los uatro primeros puertos (P0 al P3) son los mismos del 8051 original. Cada uno de

los6puertossepuedeutilizaromopuertoestandarbidireionalytambienomopuerto

espeial para determinados propositos (aeder a una memoria de odigo y/o de datos

externa, aeder a una lnea serial, et). Ver latabla 2.2.

2.5 Modos de direionamiento

El80592 posee un nuleo8051 y,portanto,todos losmodos de direionamientoson los

mismosque losde su anteesor.

2.5.1 Direionamiento inmediato

En el propio odigo de instruion es donde se enuentra el operando (memoria de

(23)

0 E/S Parte baja delbus de direiones

y bus de datos para memoriasexternas

1 E/S Entradas de aptura deltimer 2y

entradas de interrupionINT2 a INT5

Entradaevento deltimer 2 Desde un ontador externo

Entrada de reset deltimer 2 De un iruitode reset externo

Salida 0del ontrolador CAN

Salida 1del ontrolador CAN

2 E/S Parte altadelbus de direiones

3 E/S Entrada serial ala UART

Salida serialde laUART

Petiioninterrupion0

Petiioninterrupion1

Entrada timer 0 Entradaspara onteo

Entrada timer 1

Se~nal/WR para lamemoriaexterna

Se~nal /RDpara la memoriaexterna

4 E/S Comparaiony set/reset Salidas de omparaionde timer 2

5 E 8 analesde entrada del ADC

Tabla 2.2: Funiones alternativas para ada uno de los puertosdel80592

mov b,#47 ; arga en el SFR b el valor 47

mov a,#CONSTANTE ; arga en el aumulador el valor CONSTANTE

2.5.2 Direionamiento direto

Loque serefereniaen este aso es unadireiondireta dentro de laRAM prinipaldel

80592.

mov a,0x83 ; arga en el aumulador el valor ontenido en la dir 0x83

2.5.3 Direionamiento por registro

Losoperandos son registros delbano de registrosativo.

mov a,r0 ; arga en el aumulador el ontenido del registro r0

(24)

En este tipo de direionamiento se utiliza el ontenido de los registros R0 y R1, omo

puntero para argaro guardardatos dentrode laRAM interna.

mov r0,#0x40 ; arga el valor 0x40 en R0

mov a,r0 ; arga en el aumulador el ontenido del byte 0x40

2.5.5 Direionamiento indireto indexado por registro

Mediante este modo de direionamiento solo podemos aeder en modo letura a la

memoria de programa y la unia instruion que permite realizarlo es la instruion

MOVC A,A+reg_base, siendo reg_base DPTR (el puntero de uso general de 16 bits)

oPC (elontador de programa).

in a ; inrementamos a para ompensar la instruion ret

mov a,a+p ; a es argado on un 0x10 si a valia 0 antes del in

ret

db 0x10

db 0x18

db 0x49

2.5.6 Direionamiento de bit

Permite direionaralgunas zonas de lamemoria RAMprinipal as omo algunaszonas

de los SFR anivelde bit.

mov ,p2.7 ; esribe el bit 7 del puerto 2 en el bit CY

orl ,#0x02 ; CY := CY OR (bit de la direion 0x02)

anl ,/p4.1 ; CY := CY AND (inversa del bit 1 del puerto 4)

mov 0x33, ; Esribe en la direion de bit 0x33 el bit CY

2.6 Repertorio de instruiones

Elrepertorio de instruiones del80592 es de 256 instruiones (elmismo repertorioque

(25)

SonlasinstruionesqueutilizanlosmnemoniosMOV, PUSH,POP,XCH, XCHD,MOVXyMOVC.

En la tabla 2.3 se enuentran relaionados mnemonios de instruiones de movimiento

de datos que afetan aoperandos de la memoriaRAM interna (no la auxiliar).

LasinstruionesPUSHyPOPempujanosaan,respetivamente, delapilaunoperando

de tipo byte. Es preiso se~nalar que el puntero de pilaes un registro de funion espeial

(SFR) alojado en la direion 0x81 y que, tras el reset, se iniializa a 0x07 on lo que

se oloainiialmente justoporenima del bano de registros0; es posible, sin embargo

situar la pila del sistema donde queramos on tan solo esribir el valor deseado en este

registro. SP se inrementa antes de poner el dato (al haer un PUSH) y se derementa

despuesde saar eldato (POP).

Enlatabla2.4tenemoslasinstruionesdemovimientodedatosqueafetanalaRAM

auxiliary ala RAM externa al miroontrolador.

Ademas de las instruiones arriba itadas, existen un par de instruiones mas que

permitenreogerdatosde lamemoriade programa.LasinstruionesMOVC A,A+DPTR y

MOVC A,A+PC, argan en elaumuladorel valoralmaenadoen ladireionA+DPTRo

A+PC de lamemoriade programa.

Mnemonio Direionamiento Notas

Dir Ind Reg Inm

MOV A,<orig> x x x x MOV <dest>,A x x x MOV <dest>,<orig> x x x x MOV DPTR,#dato16 x PUSH <orig> x POP <dest> x

XCH A,<byte> x x x Interambialosvalores

XCHD A,Ri x Interambiaelnibble bajo

Tabla 2.3: Instruiones de transferenia en laRAM interna

Mnemonio Notas

MOVX A,Ri A :=valorapuntado porRi

MOVX Ri,A Posiionapuntada porRi :=A

MOVX A,DPTR A :=valorapuntado porDPTR

MOVX DPTR,A Posiionapuntada porDPTR := A

(26)

Las instruiones aritmetias estan agrupadas en los mnemonios ADD, ADDC, SUBB, INC,

DEC, MUL, DIVy DA. En la tabla2.5 sepuede observar eluso de estos mnemonios.

Notese el heho de que existen dos instruiones de suma y solo una de resta. La

instruionADDrealizaunasumasintenerenuentaelaarreo,mientrasquelainstruion

ADDC realiza la suma teniendo en uenta el indiador de aarreo (para realizar sumas

onseutivas o de preision mayor que 8 bits). Para restar existe una unia instruion

SUBB que siempre tiene en uenta el aarreo; esto es, uando queramos haer una resta

sin tener en uenta el aarreo deberemos borrar el indiador de aarreo a mano por si

estuviese ativado de anterioresoperaiones.

Mnemonio Direionamiento Notas

Dir Ind Reg Inm

ADD A,<byte> x x x x ADDC A,<byte> x x x x SUBB A,<byte> x x x x INC A INC <byte> x x x INC DPTR DEC A DEC <byte> x x x MUL AB B,A 16 := A B DIV AB A :=A /B, B :=A modB

DA A Ajuste deimalsobre BCD

Tabla 2.5: Instruiones aritmetias

2.6.3 Instruiones logias

Enla tabla 2.6se enumeran lasinstruiones logias queposee el80592.

2.6.4 Instruiones booleanas

En la tabla 2.7 estan enumeradas todas las instruiones booleanas del 80592 entre las

que seinluyen algunossaltos ondiionales. Destaar de entre todas las instruionesla

JBC bit,rel, que permite relizar un salto ondiional a la direionrel si el bit bitse

enuentraa1.Siseenuentraauno, proedearealizarelsalto y, ademas,ponea 0elbit

(27)

Dir Ind Reg Inm

ANL A,<byte> x x x x A := A and valor

ANL <byte>,A x

ANL <byte>,#dato x

ORL A,<byte> x x x x A := A orvalor

ORL <byte>,A x

ORL <byte>,#dato x

XRL A,<byte> x x x x A := A xorvalor

XRL <byte>,A x

XRL <byte>,#dato x

CLR A A := 0

CPL A A := not A

RL A Rotaiona la izquierdade A

RLC A Como RL pero on aarreo (CY)

RR A Rotaiona la dereha de A

RRC A Como RR pero on ararreo (CY)

SWAP A Interambianibbles altoy bajo

Tabla 2.6: Instruiones logias

2.6.5 Instruiones de ruptura de seuenia

Dentro de este grupo entran las instruiones de salto tanto ondiional omo

inondi-ional. Dentro de las instruiones de salto inondiional (ver la tabla 2.8) destaar la

instruion JMP A+DPTR on la que podemos realizar saltos a direiones uyo valor

puede ser alulado en tiempode ejeuion.

En latabla 2.9se enuentran indiadas las instruionesde salto ondiional.

Casi todas las instruiones del 80592 modian de alguna u otra formalos bits CY,

OV y AC de la palabra de estado. Diha palabra de estado, identiada omo PSW, es

un registro de funion espeial alojado en la direion 0xD0. En la tabla 2.10 se puede

verlarelaionentre adauna delasinstruionesmodiadorasdebanderas ylosvalores

que toma ada una de las banderas CY, OV y AC omo onseuenia de la ejeuion de

ada instruion.

2.7 Las salidas PWM

Elmiroontrolador80592posee dos salidasde pulsos moduladosen anhura: /PWM0y

/PWM1. Ambas salidas estan basadas en un unio ontador de 8 bits on un presaler.

Dihopresaler es el SFRPWMP, alojadoen la direion0xFE. La freuenia de pulsos

(28)

ANL C,bit CY :=CY and bit

ANL C,/bit CY :=CY and not bit

ORL C,bit CY :=CY or bit

ORL C,/bit CY :=CY or not bit

MOV C,bit CY :=bit

MOV bit,C bit:= CY

CLR C CY :=0

CLR bit bit:= 0

SETB C CY :=1

SETB bit bit:= 1

CPL C CY :=not CY

CPL bit bit:= not bit

JC rel Salto si CY=1

JNC rel Salto si CY=0

JB bit,rel Salto si bit=1

JNB bit,rel Salto si bit=0

JBC bit,rel Salto si bit=1y luegobit :=0

Tabla 2.7: Instruiones booleanas

f PWM = f CLK 2(PWMP +1)255

siendo PWMP el ontenido delSFR del mismo nombre y f

CLK

lafreuenia delreloj

del80592.Laanhura de pulsode ada unade lassalidasviene dadaporlosSFRPWM0

(en la direion 0xFC, para la salida /PWM0) y PWM1 (en la direion 0xFD, para la

salida /PWM1). Enambosasos:

=

PWMn

255 PWMn

SiendoPWMnelvalordelSFRorrespondienteyelilodetrabajo(duty yle)dela

se~nalde salida.Unvalor=0india quelalneaPWMnpermaneea0onstantemente,

unvalor=1indiaquelalneaPWMnorrespondientepermaneea1onstantemente,

mientras que valores 0 < < 1 indian ratios de tiempo entre el estado 0 y el estado 1

(porejemplo,on=0:5 tenemos lossemiilos1de lamismaanhura quelossemiilos

(29)

JMP dir Salto orto

LJMP dir Salto largo,16 bits

JMP A+DPTR

ACALL dir Llamadaorta

LCALL dir Llamadalarga, 16bits

RET

RETI

NOP

Tabla 2.8: Instruiones de salto inondiional

Mnemonio Notas

JZ rel Salto siA = 0

JNZ rel Salto siA 6= 0

DJNZ <byte>,rel Deremento y salto si6= 0

CJNE A,<byte>,rel Salto siA 6= <byte>

CJNE <byte>,#dato,rel Salto si<byte> 6=dato

Tabla 2.9: Instruiones de salto ondiional

2.8 El ADC

El 80592 posee un onversor analogio-digitalde 10 bits de resoluion y on 8 entradas

analogiasmultiplexadas(orrespondientesalos8pinesdelpuertoP5).LosSFRasoiados

alADC son elADCON (en la direion0xC5) y el ADCH (en ladireion0xC6).

7 6 5 4 3 2 1 0

ADC.1 ADC.0 ADEX ADCI ADCS AADR2 AADR1 AADR0

RegistroADCON (direion0xC5)

7 6 5 4 3 2 1 0

ADC.9 ADC.8 ADC.7 ADC.6 ADC.5 ADC.4 ADC.3 ADC.2

Registro ADCH (direion0xC6)

Para iniiarunaonversionseleionamosenlos3bitsmenossigniativosdelregistro

ADCONlaentradaanalogiaquevamosaleer yponemosa1 elbit3de ADCON(o,on

elbitADEXa1,disparamoslaonversiondesdeelexteriormedianteun anode subida

en el pin STDAC). Una vez hehoesto tenemos dos opiones:

1. Haer polling sobre el bit ADCI hasta que se ponga a 1 para poder leer el valor

(30)

CY OV AC CY OV AC

(bit 7) (bit 2) (bit 6) (bit 7) (bit 2) (bit 6)

ADD x x x SETB C 1

ADDC x x x CLR C 0

SUBB x x x CPL C x

MUL 0 x ANL C,bit x

DIV 0 x ANL C,/bit x

DA x ORL C,bit x

RRC x ORL C,/bit x

RLC x MOV C,bit x

CJNE x

Tabla 2.10: Instruiones que modian losindiadores obanderas

2. Congurarlas interrupiones para que sea elpropio onversor el que nos avise (ver

laseion sobre lasinterrupiones)de quese haterminado la onversion.

Enualquieradelosasos,unaveznalizadalaonversion,elSFRADCHontendralos

8bits massigniativosdelvalor,mientrasquelosbits menossigniativosseenuentran

en los bit6 y 7de ADCON.

Al nal de la onversiones preiso poner aero elbit4 (ADCI) por software.

2.9 Timers

El 80592 posee 3 timers de proposito general mas un timer adiional de wath dog. De

estos3timers,losdos primeros,el0yel1,orrespondenalosdos timersde suanteesor,

el8051.

2.9.1 Los timers 0 y 1

Los dos primeros timers, el 0y el 1,provienen delnuleo funional del 8051. Son timers

de 16 bits ada uno y sus valores pueden ser aedidos atraves de 4SFRs:

Para el timer 0:TL0 (partebaja) en 0x8A y TH0(parte alta) en 0x8C.

Para el timer 1:TL1 (partebaja) en 0x8B y TH1 (partealta) en 0x8D.

(31)

roontrolador.

Conteo: Eltimeresinrementado porunase~nalde reloj externa(P3.4paraeltimer

0,y P3.5 para eltimer 1).

MedianteelregistroTMOD(SFR alojadoen ladireion0x89) podemosongurarel

funionamiento de estos dos timers. El registro de 8 bits esta dividido en dos: los 4 bits

menos signiativos ontrolan el timer 0 y los 4 bit massigniativosontrolan el timer

1(ver tabla2.11). 7 6 5 4 3 2 1 0 GATE C/T M 1 M 0 GATE C/T M 1 M 0 Timer 1 Timer 0

Tabla 2.11: El registrode ontrolTMOD (0x89)

Si GATE = 1, el timer orrespondiente (x) esta habilitado solo uando su patilla de

entradaINTx estaa1 yelbitTRx delregistroTCONestaa1.SiGATE =0,eltimer x

estarahabilitadosiTRx=1.ElbitC/T deada timerpermiteseleionarelmodoentre

onteo y temporizaion: si este bitesta a0, el timer atuaomo temporizador,mientras

quesiestaa1,atuaomoontador.Enmodoontador,eltimer xse inrementaraada

vez que haya una transiion de 1 a 0 en la patilla Tx orrespondiente (la letura de las

patillasTx se realizade formasnronaen ada perodode maquina).

Losbits M

0 y M

1

delregistro TMODpermitenseleionar elmodode funionamiento

de los timers.

Modo 0 (M

1

=0 y M

0

=0). Contadorde 13bitsompatibleon losdelafamilia

MCS-48. Modo 1 (M 1 =0 y M 0 =1). Contador de 16bits. Modo 2 (M 1 =1 y M 0

=0). Contadorde8bits onreargaautomatia.Elontador en

ses elTLx (8 bits) y, uandoeste llega a 0,se reargaon el ontenidode THx.

Modo 3 (M

1

=1 y M

0 =1).

{ Timer 0. El registro TL0 aua omo ontador de 8 bits ontrolado por los

bits de ontrol del timer 0. TH0 es ongurado omo temporizador de 8 bits

ontrolado porlos bits deltimer 1.

{ Timer 1. Este timer permanee detenio.

Asoiado a lostimers 0 y 1se enuentratambien elregistro TCON (0x88), uyos bits

son direionables individualmente mediante direionamiento de bit en las direiones

0x88 a 0x8F. Este registro permite atuar sobre los timers para arranarlos o pararlos.

(32)

Este timer no se enuentra en el 8051. Se trata de un temporizador/ontador de 16 bits

on un presaler programable on fatores de division de 1, 2, 4 u 8. El timer puede ser

programado en tres modos diferentes: desonetado, dependiente de la se~nalde reloj del

sistema (temporizador) o omo ontador on una entrada de reloj externa. Es posible

habilitardos tiposde interrupionindependientes: una para eldesbordamientode 8 bits

yotraparaeldesbordamientode 16bits.Se~nalarqueeltimer2noesargableonvalores

desde software (ver tabla 2.12).

Bit Smbolo Funion

7 T2IS1 Para seleionar lainterrupion de desbordamientode 16 bits

6 T2IS0 Para seleionar lainterrupionde desbordamientode byte

5 T2ER Habilitarreset externo(pin RT2)

4 T2B0 Bandera de interrupionde desbordamientode byte

3 T2P1 Presaler. 00:reloj,

2 T2P0 01:1/2reloj 10:1/4 reloj, 11:1/8 reloj

1 T2MS1 Modo. 00:detenido,01:reloj=1/12 f

l k ,

0 T2MS0 10:onguraionreservada 11:reloj=pin T2

Tabla 2.12: El SFR TM2CON (direion0xEA)

Existen4registrosdeapturay3registrodeomparaionparaeltimer2.Losregistros

de aptura permiten, mediante una se~nal externa haer que el 80592 argue en ellos la

uentadeltimer.Losregistrosde apturasonCT0,CT1,CT2yCT3,yestanasoiadosa

lospines de entradaCT0I aCT3I, respetivamente(vertabla2.13). Asmismo esposible

tambien generar una interrupion en el momento en el que se realiza una aptura (ver

tabla 2.14).

Bit Smbolo Funion

Captura Evento de interrupion

7 CTN3 CT3I Flanode bajada

6 CTP3 Flanode subida

5 CTN2 CT2I Flanode bajada

4 CTP2 Flanode subida

3 CTN1 CT1I Flanode bajada

2 CTP1 Flanode subida

1 CTN0 CT0I Flanode bajada

0 CTP0 Flanode subida

Tabla 2.13: El SFRCTCON (0xEB)

El80592ompara,en todomomento,elvalordeltimer2on losvaloresdelosregistros

(33)

7 T2OV Desbordamiento de 16 bits 6 CMI2 Captura en CM2 5 CMI1 Captura en CM1 4 CMI0 Captura en CM0 3 CTI3 Comparaionen CT3 2 CTI2 Comparaionen CT2 1 CTI1 Comparaionen CT1 0 CTI0 Comparaionen CT0 Tabla 2.14: El SFR TM2IR (0xC8)

del timer y el valor de alguno de estos registros, se pueden ativar interrupiones y/o

ativaionesde pines en elpuerto P4:elregistro de omparaionCM0 permite poner a1

los pines P4.0 a P4.5, el registro de omparaion CM1 permite poner a 0 los pines P4.0

a P4.5, y el registro de omparaion CM2 permite onmutar de estado los pines P4.6 y

P4.7.

LosotrosdosSFRqueafetanaltimer2seenargande ontrolarelfunionamientode

los3 registros de omparaion anteriormente itados.

Estos son el STE (direion0xEE,

ver tabla 2.15) y el RTE (direion0xEF, ver tabla 2.16).

Bit Smbolo Funion

7 TG47 1: P4.7:=0en laproximaoinidenia de CM2

(sololetura) 0: P4.7:=1en laproximaoinidenia de CM2

6 TG46 1: P4.6:=0en laproximaoinidenia de CM2

(sololetura) 0: P4.6:=1en laproximaoinidenia de CM2

5 SP45 1: P4.5:=1uando haya oinidenia de CM0

4 SP44 1: P4.4:=1uando haya oinidenia de CM0

3 SP43 1: P4.3:=1uando haya oinidenia de CM0

2 SP42 1: P4.2:=1uando haya oinidenia de CM0

1 SP41 1: P4.1:=1uando haya oinidenia de CM0

0 SP40 1: P4.0:=1uando haya oinidenia de CM0

Tabla 2.15: El SFR STE (0xEE)

2.9.3 El timer wath dog

Enel80592existeunuartotimerespeial,denominadodewathdog.Estetimer,uando

sedesbordaprovoaun reset delmiroontroladory, portanto,elsoftware debe argarlo

regularmente. Su funion es la de evitar que el miroontrolador entre en algun bule

(34)

7 TP47 1: P4.7 basulauando haya oinideniade CM2

6 TG46 1: P4.6 basulauando haya oinideniade CM2

5 RP45 1:P4.5:=0 uandohaya oinideniade CM1

4 RP44 1:P4.4:=0 uandohaya oinideniade CM1

3 RP43 1:P4.3:=0 uandohaya oinideniade CM1

2 RP42 1:P4.2:=0 uandohaya oinideniade CM1

1 RP41 1:P4.1:=0 uandohaya oinideniade CM1

0 RP40 1:P4.0:=0 uandohaya oinideniade CM1

Tabla 2.16: ElSFR RTE (0xEF)

Medianteel pin /EW podemos ongurar elmodo de funionamientodelmiro desde

el exterior. Si ponemos este pin a 0 habilitaremos el WDT (wath dog), mientras que si

loponemosa 1,deshabilitaremos el wathdog y entraremosen modo power-down.

En el modopower-down, el proesador se para, manteniendo el ontenidode la RAM

internaintato.Elproesadorsolosaledelmodopower-down sise reseteaosireibeuna

interrupionde tipowake-up delontroladorCAN omo aviso de que aabade llegar un

paquete porese puerto.El modopower-down puedeser puesto tanto desde software (bit

1 del SFR PCON, en la direion 0x87) o por hardware, poniendo a 1 el pin /EW del

hip.

Enirunstaniasdeoperaionnormales,tendremoshabilitadoelWDTydeshabilitado

elmodo power-down (pin /EW a0).

Para argarel wath dog debemos, primero poner a 1el bit4del SFR PCON y luego

argarel SFR del wath dog (direion0xFF) on elvalordeseado.

2.10 Interrupiones

El 80592 permite manejar 15 vetores de interrupion, de los uales los 5 primeros son

heredados del 8051 (ver tabla 2.17). A ada interrupion se leasigna una prioridad. Los

niveles de prioridadson dos: baja y alta.

Mediante los registros IEN0 e IEN1 habilitamos o deshabilitamos las interrupiones,

mientras que on los registros IP0 e IP1 onguramos la prioridad de ada una de las

interrupiones.

Lastablas2.18 y2.20 seorrespondenon elregistrode habilitaionde interrupiones

0 y el registro de prioridad de interrupiones 0, que son registros presentes tanto en el

8051 omo en el 80592. Los registros IEN1 (en la direion 0xE8) e IP1 (en la

(35)

Externa 0 0x0003 8051 y 80592

Desbordamientodeltimer 0 0x000B 8051 y 80592

Externa 1 0x0013 8051 y 80592

Desbordamientodeltimer 1 0x001B 8051 y 80592

Serial0 (UART) 0x0023 8051 y 80592 Serial 1(CAN) 0x002B 80592 T2 aptura0 0x0033 80592 T2 aptura1 0x003B 80592 T2 aptura2 0x0043 80592 T2 aptura3 0x004B 80592

Conversion ADC ompletada 0x0053 80592

T2 omparaion0 0x005B 80592

T2 omparaion1 0x0063 80592

T2 omparaion2 0x006B 80592

Desbordamientodeltimer 2 0x0073 80592

Tabla 2.17: Vetores de interrupiondel8051 y del 80592

miroontrolador(verlas tablas 2.19 y 2.21).

Bit Smbolo Funion

7 EA Habilitaion/inhabilitaionglobal de todas lasinterrupiones

6 EAD Habilitarinterrupiones delADC

5 ES1 Habilitarinterrupiones del ontrolador CAN

4 ES0 Habilitar interrupiones de la UART

3 ET1 Habilitarinterrupionesdel timer 1

2 EX1 Habilitarinterrupiones externasdel pin /INT1

1 ET0 Habilitarinterrupionesdel timer 0

0 EX0 Habilitarinterrupiones externasdel pin /INT0

Tabla 2.18: El SFR IEN0 (direion0xA8)

2.11 La UART

El80592poseeunainterfazdeomuniaionesserieheredadadel8051.Seaedealpuerto

serie desde software mediante losSFR SBUF (direion0x99) y SCON (direion0x98).

Los pines asoiados al puerto serie son el RXD (bit 0 del puerto 3) y el TXD (bit 1 del

puerto3).

El SFR SCON permite ongurar el puerto serie, mientras que el registro SBUF es

el buer de transmisionreepion de la UART. Una esritura en este SFR provoa una

(36)

7 ET2 Habilitarinterrupionesde desbordamiento deltimer 2

6 ECM2 Habilitarinterrupionesdel omparadorCM2 deltimer 2

5 ECM1 Habilitarinterrupionesdel omparadorCM1 deltimer 2

4 ECM0 Habilitarinterrupionesdel omparadorCM1 deltimer 2

3 ECT3 Habilitarinterrupionesdel apturador CT3 deltimer 2

2 ECT2 Habilitarinterrupionesdel apturador CT2 deltimer 2

1 ECT1 Habilitarinterrupionesdel apturador CT1 deltimer 2

0 ECT0 Habilitarinterrupionesdel apturador CT0 deltimer 2

Tabla 2.19: El SFR IEN1 (direion 0xE8)

Bit Smbolo Funion

7 { Sin usar

6 PAD Nivelde prioridaddelADC

5 PS1 Nivelde prioridaddelCAN

4 PS0 Nivelde prioridadde la UART

3 PT1 Nivel de prioridaddeltimer 1

2 PX1 Nivelde prioridadde /INT1

1 PT0 Nivel de prioridaddeltimer 0

0 PX0 Nivelde prioridadde /INT0

Tabla 2.20: El SFR IP0 (direion0xB8)

2.22).

El puertoserie puede funionar en 4 modos diferentes:

Modo 0 (SM0 = 0, SM1 = 0). El puerto atua omo registro de desplazamiento,

utilizando el pin RXD on entrada/salida de datos y el pin TXD omo salida de

reloj. f

os

/12 bits por segundo.

Modo 1 (SM0 = 0, SM1 = 1). UARTen modofullduplex (1bitde start y otro de

stop). 8bits de datos. Bitsporsegundo variables(timer 1).

Modo 2 (SM0 = 1, SM1 = 0). UARTen modofullduplex (1bitde start y otro de

stop). 9bits de datos. f

os

/ 64o f

os

/ 32bits porsegundo.

Modo 3 (SM0 = 1, SM1 = 1). UARTen modofullduplex (1bitde start y otro de

stop). 9bits de datos. Bitsporsegundo variables(timer 1).

En modo 2 o 3, si SM2 = 1 , RI solo se pondra a 1 si el 9 o

bit es un 1. En modo 1,

si SM2 = 1, RI solose ativara al reibirse un bit de stop. En modo 0, el bitSM2 debe

estar a0.El bitRENsirvepara habilitarlareepion(on REN= 1).TB8es el9 o

bita

transmitiren losmodos 2 o3,mientras que RB8es el9 o

bitreibidoen losmodos 2o3.

(37)

7 PT2 Nivelde prioridaddeldesbordamientodeltimer 2

6 PCM2 Nivel de prioridaddel omparadorCM2

5 PCM1 Nivel de prioridaddel omparadorCM1

4 PCM0 Nivel de prioridaddel omparadorCM0

3 PCT3 Nivel de prioridad delapturadorCT3

2 PCT2 Nivel de prioridad delapturadorCT2

1 PCT1 Nivel de prioridad delapturadorCT1

0 PCT0 Nivel de prioridad delapturadorCT0

Tabla 2.21: ElSFR IP1 (direion0xF8)

0x9F 0x9E 0x9D 0x9C 0x9B 0x9A 0x99 0x98

SM0 SM1 SM2 REN TB8 RB8 TI RI

Modo

Tabla 2.22: El SFR SCON (0x98)

TI indiauandose haterminadouna transmision.Antes de volver atransmitir, debe

ser puesto a 0porsoftware. Elbit RI es elindiador de reepion, e indiauando se ha

reibidoel ultimobit de un paquete. Debetambien ser puesto a 0porel software.

2.12 El ontrolador CAN inluido

La onexion on el bus CAN el la araterstia mas ompleja de este miroontrolador.

Las entradas CAN del 80592 se loalizan en los pines CRX0 y CRX1, mientras que las

salidasCANformanpartedelpuertoP1(CTX0,seorresponde onelbit6,yCTX1 on

elbit 7).

2.12.1 El protoolo CAN

El protoolo CAN (Control Area Network) es un protoolo serie que, al igual que el

Ethernet, se basa en el uso de un par de ables on terminaiones de impedania ja

en los extremos y al que se pueden onetar nodos en ualquier punto de su longitud.

La impedaniaaraterstia en los buses CAN suele ser de 124 . Elprotoolo CAN es

un protoolo de tipo CSMA/CD (Carrier Sense Multiple Aess / Collision Detetion),

es deir; un protoolo de aeso multiple,en el que ada nodo es apaz de detetar una

transmision ualquiera y ademas es apaz de detetar olisiones entre paquetes de bits

que se esten enviando simultaneamente sobre el bus. Esto es, solo es posible un paquete

(38)

del bus en un instante determinado. Se utilizan las noiones de bit "dominante"y bit

"reesivo".

V+

Host 0

Host 1

Host 2

Bus

A

B

Figura2.5: Modelo de transmisionsobre un bus basadoen una AND ableada

ElbusCANutilizaun sistemaparatransportardatosmuysenillo:unaANDableada

(ver gura 2.5). Esto es, solosi TODOS losnodos onetados al bus estan en estado

re-esivo(a"1"), elbus seenontraraesestadoreesivo;sinembargo, onque un solonodo

enve un bitdominante al bus (un "0"), este pasara a estado dominante,

independiente-mente de que otros nodos esten enviando otros bits reesivos.De este fenomeno proviene

elnombre de "dominante"y"reesivo"para losbits 0y 1 delbus, respetivamente.

En el ejemplo de la gura 2.5, si todos los hosts envan un "1"(valor alto), todos los

transistores permaneen en orte y, por tanto el bus mantiene un voltaje V entre los

puntos A y B. En ambio, si uno de los hosts enva un "0", este ero provoara que el

transistor orrespondiente seponga en saturaion, ortoiruitando las l

ineas A y B; sin

importarlo que elresto de hosts este enviando.

Atualmente existen en la industria dos modalidades de protoolo CAN: CAN2.0A

y CAN2.0B. Las diferenias entre una y otra son m

inimas, permitiendo la version B,

direionar mayor antidad de nodos en una red. El 80592implementael CAN2.0A.

Dentro delprotoolo CAN tenemos 4 tiposde paquetes de datos:

Paquetes de datos,para transportar datos.

Paquetes de soliitud,para soliitardatos.

Paquetes de error,para indiar errores en la red.

Paquetes de sobrearga (no soportadorpor el80592).

(39)

Campo de arbitraje 11 bits on el identiador delpaquete masun

un bitRTR(dominante) (en la varianteCAN2.0B del

protoolo elidentiadores de 29 bits).

Campo de ontrol 6 bits, los dos primerosdominantes, y los 4

restantes indiando el numerode bytesen el

ampode datos.

Campo de datos Entre 0y 8bytes de longitud.Para ada bytese

enva primero elbitmas signiativo.

Campo de CRC 15 bits on el CRCmas un bitreesivo.

Campo ACK 2 bits reesivos.

Fin de frame 7 bits reesivos.

Tanto los11 bits delindentiador delpaquete omo los4 bits que indianel tama~no

del ampode datosse transmitenempezandoporelbitmassigniativo.El ampo

iden-tiadorNOpuedetenerlossietebitsmassigniativos(ID.10aID.4)todosdominantes.

De losdos bits reesivos del ampoACK, elprimero esta destinado para que el nodo

queestareibiendo elpaquete, lorelleneon un bitdominante, tras omprobar losdatos

y el ampo CRC. Elnodo transmisor que, mientras transmite, monitoriza lared, sabe si

el paquete ha llegado bien a su destino omprobando que la l

inea, en el primer bit del

ampo ACK, sepone en estado dominante.

Algopareido ourre on elampoRTR. Cuando un nododesea soliitar datosa otro

envaunpaqueteon elbitRTRreesivo(un paquetedesoliitud).Elnodoqueresponde

alasoliitudlohae enviando un paquetede datoson elmismoampoidentiadorque

elpaquetedesoliitud,peroonestebitenestadodominante.Sienelmismoinstanteque

elnodo soliitanteenva supaquete, el nodoon losdatos proede a enviar losdatos, no

ourre olisionalguna,al utilizarambosnodos el mismoidentiadory altransformarse,

debidoa la emisiondelbit dominantepor partedel nodoon los datos, elbit RTRa 0.

El ampo identiador en un paquete CAN, identia a ese paquete, no al nodo que

loenva o reibe. Unnodopuedeenviar diferentes paquetes on diferentes amposID en

adaunodeellosytambienreibirlospaquetesquereaonveniente. Lonormalesquese

utilizeelsistemaindiadoen elejemploanterior:unnodoAenvaunpaquetede soliitud

de datoson elidentiador=xy otro nodoB, queseenuentraa laesuhade paquetes

on ese identiador, responde on un paquete de datos y elampoidentiador= x.

(40)

Campo de arbitraje 11bits on elidentiadordel paquetemas un

un bit RTR (reesivo).

Campo de ontrol 6 bits, losdos primeros dominantes, y los4

restantes se ignoran.

Campo de CRC 15bits on elCRC masun bitreesivo.

Campo ACK 2 bits reesivos.

Fin de frame 7 bits reesivos.

Un paquete de error ontiene dos ampos: La superposiion de indiadores de error

(bits dominantes), seguidodel delimitadorde error.

Un nodoCAN puedeongurarse omo ativoo pasivoante loserrores. Enel aso de

queun nodosea "ErrorAtive"ydetete algunaondiionde erroren elbus, transmitira

6 bits dominantes onseutivos omo indiador de error 1

. El resto de nodos de la red

detetaran esta ondiion de error y enviaran sus respetivos indiadores de error sobre

elbus. Losnodos ongurados omo "Error Pasive"envan 6bits reesivos onseutivos.

Tras la superposiion de indiadores de error, y la deteion por parte de todos los

nodos de la ondiion de error, esperaran a que haya una transiion de dominante a

reesivo en elbus y dejaran 8bits reesivos omo delimitadordel error.

2.12.2 Conexionado del 80592 on un bus CAN

El miro utilizado posee un ontrolador de bus CAN inorporado. Este ontrolador no

posee, sin embargo, araterstias de transeptor; es deir, no podemos onetar

dire-tamente las patitas del bus CAN del 80592 a un bus, es preiso aondiionar la se~nal y

adaptarimpedanias.

Es por esto por lo que se hae neesario el uso del 82250. La onexion se realiza de

forma direta (ver la gura 2.6) y solo hay que tener en uenta desde el punto de vista

del hardware, elrespetar laimpedaniadelbus y en adeuar laspendientes de transiion

a la hora de transmitir (de 0 a 1 y de 1 a 0). Para ontrolar estas pendientes se ha

situado el poteniometro en el pin R

s

del transeptor 82250. Si oloamos el dial del

poteniometro en elextremo de 0voltios, obtenemos unas transiiones en latransmision

lo mas rapidas posible (para buses de alta veloidad), mientras que jugando on valores

intermedios obtendremos pendientes de transiion mas aordes on el tipo de able que

tengamos, elalane, et (buses de media y baja veloidad).

En la gura 2.8 se puede apreiar una fotografa del miroontrolador junto al

tran-septorCAN.

1

Estos6bits dominantes onseutivospermitendetetar unerrorporpartede ualquiernododela

red, ya quees imposible onfundirloon unpaquete de datos ode soliitud, a tener estos paquetesla

(41)

CTX0

CRX0

CRX1

TxD

RxD

Vref

Rs

Vcc

CANH

CANL

GND

100nF

+5 v

P8xC592

124

124

Bus CAN

82C250

100K

Figura2.6: Conexionado entre el80592 y el transeptorCAN 82250

1

2

3

4

5

6

7

8

TxD

GND

RxD

Vcc

Rs

CANH

CANL

Vref

82250

Figura2.7: Enapsulado deltranseptor CAN 82250

2.12.3 Programaion del bus CAN en el 80592

El aeso al ontrolador CAN en el 80592

El miroontrolador 80592 permite el aeso al ontrolador CAN inluido en el hip a

traves de losSFR:

CANSTA (en 0xD8): Para leer el status del ontrolador y esribir direiones para

haertransferenias DMA entre el ontroladorCAN y la RAMprinipal.

CANCON (en 0xD9): letura de los ags de interrupiony esritura de omandos al

ontrolador CAN.

CANDAT (en 0xDA): Para leer y esribir datosen un registro delontroladorCAN.

CANADR (en 0xDB): Para seleionar elregistro delontrolador CANal que

(42)

Por otro lado tenemos los registrosdelpropio ontroladorCAN:

0x00: Control Register (CR).Habilitaionde interrupiones en el lado del

on-trolador,voltajes de referenia, et.

0x01: Command Register (CMR). Conguraion de los pines de reepion CAN

(CRX0y CRX1) del80592,omandos espeialesparaborradodebuers, modos de

operaion, et.

0x02: Status Register (SR).Contiene losags queindianelestadodel

ontro-lador CAN.

0x03: Interrupt Register (IR).Registrode sololeturaquepermitealarutina

de serviio de interrupion que atiende las interrupiones del bus CAN, identiar

exatamentequetipode interrupionsehagenerado (reepion,transmision,error,

et).

0x04: Aeptane Code Register (ACR). Permite indiar que tipo de mensajes

CAN se van aaeptar en el buer de reepion (se omparaeste registroon los8

bits massigniativos delampoID delpaquete CAN).

0x05: Aeptane Mask Register (AMR). Permite denir que bits del registro

(43)

bus CAN.

0x07: But Timming Register 1 (BTR1).Segundoregistroparaelontroldel

tim-ming del bus CAN.

0x08: Output Control Register (OCR).Permiteongurarlasaraterstiaseletrias

de las salidasCTX0 y CTX1 delbus CAN.

0x0A a 0x13. El buer de transmision. Aqu el software esribe el paquete CAN

quedesea transmitir.

0x14 a 0x1D. El buer de reepion. Aqu el software lee los paquetes CAN

en-trantes. El 80592 posee 2 buers de reepion ongurados a modo de ola, este

sistema de doble buer queda oulto al usuario; de talforma que si tenemos 2

pa-quetesdiferentes enlosbuersdereepionenunaprimeraleturadesdeelsoftware

leeremoselprimerpaqueteen llegarmientras queon unasegunda leturaleeremos

elsegundo (no hay que indiarleal ontrolador ual es elbuer que queremos leer,

ya que seutiliza un sistema de olas: se leeprimero elprimero en llegar).

Si queremos, por ejemplo, aeder al registro CMR (Command Register), esribiremos

primero en el SFR CANADR el valor 0x01 (elndie del registro CMR en el

ontro-lador CAN) y a traves del SFR CANDAT ya podremos leer y/o esribir en el registro

seleionado.

Programaion del timming en el 80592

Laseiondel timmingdelbusCAN yde suprogramaiononstituyen un temaun tanto

osuroenlahojadedatosdel80592.Graiasaalgunasnotasdeapliaionenontradasen

internethasidoposibleobtenerlasformulasparaelalulodeltimmingyparaprogramar

losregistros BTR0y BTR1. f bit = f xtal (3+TSEG1+TSEG2(SJW +1))(BR P +1)2

Esta formularelaionalafreueniade bitdelbus CANonlafreueniadelristalde

uarzo del miroontrolador. Los valores TSEG1, TSEG2, SJW, et son ampos dentro

de los registrosBTR0 y BTR1 delontroladorCAN.

Como sepuede apreiar, en el demonimadortenemos una operaion. Enel aso del

timming en el bus CAN podemos denir una o

lgura a

la hora de alular el numero de

bits por segundo. Esta olgura permitiraa losiruitosde reepionser maspermisivosy

(44)

f xtal = 16Mhz TSEG1 = 3 TSEG2 = 4 SJW = 1 BR P = 23 f bit = 16000000 (3+3+4(1+1))(23+1)2 f bit = 16000000 (102)242 f bit = 16000000 (102)48

Sialulamos las dos euaiones resultantes de laeuaion anterior, en una utilizandoel

+del y en laotra utilizandoel del, obtenemos:

f bitmax = 41666 0 667bps f bitmin = 27777 0 778bps

Estas dos freuenias de bit determinan la freueniamaximay mnimaa la que el

on-troladorCAN puedereibirdatosdelbus. Lafreueniaalaqueelontroladortransmite

es: f bit = f xtal (3+TSEG1+TSEG2)(BR P +1)2

Notese se se ha eliminado la operaion sobre el valor (SJW +1). En este aso, la

veloidadde transmision sera:

f bit =33333 0 333bps El registroBTR0: SJW 1 SJW 0 BR P 5 BR P 4 BR P 3 BR P 2 BR P 1 BR P 0 El registroBTR1: SAM TSEG2 2 TSEG2 1 TSEG2 0 TSEG1 3 TSEG1 2 TSEG1 1 TSEG1 0

El bit SAM del registro BTR1 permite indiar la antidad de vees que se muestrea

una ranura de tiempo de un bit para determinar si esta a 0 o a 1. Si SAM=0 en ada

ranuradetiemposemuestreaunasolavezparadeterminarelbit,mientrasquesiSAM=1

en ada ranura de tiempo se muestrea 3 vees, de esta forma sedetermina si setrata de

un 0 oun 1pormayora.

El uso de un solomuestreo(SAM=0) seutiliza en buses de altaveloidad,el uso de 3

muestreos (SAM=1) seutiliza en buses de baja y mediaveloidad (menosde 1MHz). En

nuestro aso, el montaje delbus seha realizadoen base a un par trenzado on loque es

(45)

El sistema de desarrollo basio

El sistema basio onsta de los omponentes basios para el funionamiento del

miro-ontrolador.

Flash ROM : Una memoriaROM modelo 29F010de 128 Kbytes.

RAM : Unamemoria RAM estatia modelo 62256 de 32 Kbytes.

Miroontrolador: MCU 80592.

DAC: Un onversor digital-analogioexterno.

Medianteestosiruitosperiferiosal80592nosseraposibledesarrollarsoftwarede forma

omoda, mediante el uso de la memoria FlashROM, y dotar a nuestro proesador de

una salida analogia graias al DAC externo. Con la inorporaion de una pastilla RAM

externa aumentamos lamemoriade datos delmiroontroladorhasta 32Kbytes.

3.1 Alimentaion

Elmiroontroladorposeemultiplesentradasde alimentaionparaadaunadesuspartes

(ver tabla 3.1).

Se debe umplirque AV

ref+ > AV ref y, ademas,AV ref+ < AV dd y AV ref > AV ss . En nuestro aso: V dd = AV dd = AV ref+ = 5 voltios y V ss = AV ss = CV ss = AV ref

= Masa. El pin REF puede ser ongurado omo entrada, omo salida o sin uso: si se

ongura omo salida, lo que saa es un voltaje de 1 / 2 AV

dd

on el objetivo de que

sea utilizadoporun transeptor delbus CAN omovoltajede refenia para enviarlos0s

y 1s reibidos al 80592 a traves de las entradas CRX0 y/o CRX1. Si se ongura omo

(46)

dd

V

ss

Masa(0voltios) de la parte digital.

AV

dd

AlimentaiondelADC y la parte CAN(+5 voltios).

AV

ss

Masa(0voltios) delADC y la parte CAN.

CV

ss

Potenialde tierra para lassalidas CAN.

AV

ref

Valorde voltaje para laonguraion 0x000 en el ADC.

AV

ref+

Valorde voltaje para laonguraion 0x3FFen elADC.

REF Entrada/salidaopional on el valorde voltaje de referenia

paraleer losvalores de lasentradas CAN CRX0y CRX1.

Tabla 3.1: Pines de alimentaiondel miroontrolador

quelosomparadoresdelontroladorCANdel80592 puedanleer adeuadamentelosbits

quelelleganatravesde CRX0yCRX1. Laotraformadeongurarloesniomoentrada

niomo salida, en uyo aso se interpretan los bits omo sigue:

SinivelCRX0 >nivel CRX1=) bitreesivo.

SinivelCRX0 <nivel CRX1=) bitdominante.

SiseonguraelpinREFomopinsinutilizar(talyomosehapuestoenelprototipo)

debeir onetado, medianteun ondensador> 1nF a AV

ss .

3.2 Ciruito de reloj

Para generar la se~nal de reloj para el 80592 existen dos alternativas, segun la

dou-mentaionde Philips:

Utilizarun ristal de uarzo.

Utilizarun reloj externo.

En este aso se ha optado por la utilizaion de una fuente de reloj externa, ya que al

utilizar un ristal hubo problemas de distorsion en la onda uadrada. Se utilizo un reloj

auarzo yaenapsulado y que genera una se~nal muy establey on poadistorsion.

La se~nalde reloj se introdue diretamenteal pin XTAL1, dejando elpin XTAL2 sin

onetar. El osilador generauna onda de 1.8MHz, aunque esposible utilizar un ristal

(47)

Eliruitode resetmontadoalrededordelpinRSTdelmiroontroladoreselhabitualen

estetipodemontajes.Loquesehapuestoesunondensadorentreelpinderesetdel80592

y V

dd

, de tal formaque alsuministrar tension atodoelprototipoel miroontroladorse

reiniie(vergura 3.1).

MCU

RST

Vdd

Pulsador

RESET

+ 5v

Figura 3.1: Ciruitode reset

Ademasdeesteresetdearranque,sehaa~nadidounpulsadorenparaleloalondensador

paraqueelusuariopueda,enualquiermomentoreiniiarelproesadorsinqueporellose

pierda,porejemplo,el ontenido delaRAM externa osinneesidadde ortar laenerga.

3.4 La memoria Flash

Se trata de una memoriade 1 Mbit organizada en 131072direiones de 8bits ada una

(128 Kbytes) en la que estara ubiado el odigo delprograma. Aparte de las patillas de

datos(D0aD7)yde direiones(A0aA16),elhip poseeloshabitualespinesdeontrol.

/WE Entrada quese utiliza para programar y borrar laash,

en el montaje delprototipo sepone a1 (V

)para evitar

quesu ontenidose borre o reprograme poraidente.

/OE Unano de bajada emiteporel bus de datos (D0 a D7) el

ontenidode ladireionapuntada por lasentradas (A0a A16);

sise pone a 1,las salidas de datos pasan a altaimpedania.

/CE Chip Enable. Cuando se pone a 0habilita elhip, uando

esta a 1,todas las entradas y salidasdel integradopermaneen

en altaimpedania.

Lospines V

y V

ss

son lasentradas de alimentaiona lapastilla(V

= 5voltios,V

ss

(48)

A15

A12

A7

A5

A6

A4

A3

A2

A13

A8

A9

A11

/OE

A10

/CE

D7

D6

D5

D4

Vss

D2

D1

D0

A1

A0

D3

A16

NC

Vcc

/WE

NC

A14

29F010

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

18

19

20

21

22

23

24

25

26

27

28

17

29

30

31

32

Figura 3.2: Enapsuladodel 29F010(FlashROM)

3.5 La RAM

La memoriaRAM es de tipoestatio de 256 Kbits organizada en 32768 direiones de 8

bits ada una (32 Kbytes), este RAM seutilizaraomo memoriade datos externa. Enla

gura 3.3 semuestrael enapsulado de este hip.

Los pines son loshabituales en ualquierpastilla de RAM estatia:

/WE Unano de bajada en este pin provoa que seesriba en la

direionde memoria seleionada(A0 aA14) los8 bits de

datos presentes en lospines de datos (D0a D7). Lospines de

datos atuanomo entradas.

/OE Unano de bajada emiteporel bus de datos (D0 a D7) el

ontenidode ladireionapuntada por lasentradas (A0a A14).

Lospines de datos atuanomo salidas.

/CS Chip Selet.Cuando se pone a 0 habilitael hip tanto

para leer omo para esribir.Puesto a 1,pone todas lospines

del integrado en altaimpedania.

Notese que laonguraion /WE=0 y /OE=0 esuna onguraion ilegal.

Al igual que en el aso de la memoria ash, los pines V

y V

ss

son las entradas de

alimentaionde la pastilla(V

=5 voltios,V

ss

Referencias

Documento similar