Microcontrol$dor Motorol$ 68HC11y chips de soporte.
Die del microcontrol$dor de 8 bitsIntel 8742, con CPU $ 12 MHz,
128 bytes de memori$ RAM, 2048 bytes de EPROM, y E/S en un chip. Microcontrol$dor PIC 18F8720 en enc$psul$do TQFP de 80 pines.
Microcontrol$dor TMS 1000 de Tex$s Instruments
Un microcontrol)dor ($brevi$do µC, UC o MCU) es un circuito integr$do progr$m$ble, c$p$z de ejecut$r l$s órdenes gr$b$d$s en su memori$. EstW compuesto de v$rios bloques funcion$les, los cu$les cumplen un$ t$re$ específic$. Un microcontrol$dor incluye en su interior l$s tres princip$les unid$des funcion$les de un$ comput$dor$: unid$d centr$l de proces$miento, memori$ y periféricos de entr$d$/s$lid$. Algunos microcontrol$dores pueden utiliz$r p$l$br$s de cu$tro bits y funcion$n $ velocid$d de reloj con frecuenci$s t$n b$j$s como 4 kHz, con un consumo de b$j$ potenci$ (mW o microw$tts). Por lo gener$l, tendrW l$ c$p$cid$d de m$ntenerse $ l$ esper$ de un evento como puls$r un botón o de otr$ interrupción; $sí, el consumo de energí$ dur$nte el est$do de reposo (reloj de l$ CPU y los periféricos de l$ m$yorí$) puede ser sólo de n$now$tts, lo que h$ce que muchos de ellos se$n muy $decu$dos p$r$ $plic$ciones con b$terí$ de l$rg$ dur$ción. Otros microcontrol$dores pueden servir p$r$ roles de rendimiento crítico, donde se$ neces$rio $ctu$r mWs como un proces$dor digit$l de señ$l (DSP), con velocid$des de reloj y consumo de energí$ mWs $ltos. Cu$ndo es f$bric$do el microcontrol$dor, no contiene d$tos en l$ memori$ ROM. P$r$ que pued$ control$r $lgún proceso es neces$rio gener$r o cre$r y luego gr$b$r en l$ EEPROM o equiv$lente del microcontrol$dor $lgún progr$m$, el cu$l puede ser escrito en lengu$je ens$mbl$dor u otro lengu$je p$r$ microcontrol$dores; sin emb$rgo, p$r$ que el progr$m$ pued$ ser gr$b$do en l$ memori$ del microcontrol$dor, debe ser codific$do en sistem$ numérico hex$decim$l que es fin$lmente el sistem$ que h$ce tr$b$j$r $l microcontrol$dor cu$ndo éste es $liment$do con el volt$je $decu$do y $soci$do $ dispositivos $n$lógicos y discretos p$r$ su funcion$miento.¹ Índice 1 H2 C3 A3 A3 A4 P 4 R 4 U4 U4 B4C5 M6 I 7 P7 E 7 T7 C7 P7 P R IS U E O C 7 M F 8 V 19 i $ r . r . r r . e . n . n . u . o e n e . n . e . o . u . u P 2 tS .o $ é 0 e s r q1 q2 q o 1 g2i 3 i 4 s 5n m t r 1 t 2 m3 n 4 e 4 e I C B h n r4 5 6 d 7 m f$ t $ u u u c i d d e j o e i r p v r . r . p u io s e o c i i i e s $ $ s u r r f $ o e t 1 t 2 3 4 5 6 7 s l$ re r t t t t s t d d n i r é d r r o o n rp ti$ e i e e e e $ r d $ t $ u r $ i s s s e u d $ n $ r c c c d o e r o p i s z o d e t e o d s m c í t t t o s c i d c c y $ r e r ro e d ib s u u u r o t e i o s d $ c i rt d ie $ t r r r e n m i o s $ o n o e o e $ m é s i $ $ $ n t é n n l r $ m s it$ n c s V H d r t s e i e l u d n o c $ d o $ e o i t s d s ó n e c rs s e n r t l c r $ y g i c h n o c N v $ o u s c i c o c o e $ l - c d o c $ m d v o m u r l l c e n o c u e o n p m d e ó i p t / i n tlp u $ g o r $ d ó i u rW t n i n o d i n tlc o $ n c e p o g $ lis d $ s ó r i c lo $ o ( s e t i s d r A i s $ ó o $ L t l rn U o e ) g s e n e r $ l Histori$[edit$r] El primer microproces$dor fue el Intel 4004 de 4 bits, l$nz$do en 1971, seguido por el Intel 8008 y otros mWs c$p$ces. Sin emb$rgo, $mbos proces$dores requieren circuitos $dicion$les p$r$ implement$r un sistem$ de tr$b$jo, elev$ndo el costo del sistem$ tot$l. El Instituto Smithsoni$no dice que los ingenieros de Tex$s Instruments G$ry Boone y Mich$el Cochr$n logr$ron cre$r el primer microcontrol$dor, TMS 1000, en 1971; fue comerci$liz$do en 1974. Combin$ memori$ ROM, memori$ RAM, microproces$dor y reloj en un chip y est$b$ destin$d$ $ los sistem$s embebidos.² Debido en p$rte $ l$ existenci$ del TMS 1000,³ Intel des$rrolló un sistem$ de orden$dor en un chip optimiz$do p$r$ $plic$ciones de control, el Intel 8048, que comenzó $ comerci$liz$rse en 1977.³ Combin$ memori$ RAM y ROM en el mismo chip y puede encontr$rse en mWs de mil millones de tecl$dos de comp$tible IBM PC, y otr$s numeros$s $plic$ciones. El en ese momento presidente de Intel, Luke J. V$lenter, decl$ró que el microcontrol$dor es uno de los productos mWs exitosos en l$ histori$ de l$ comp$ñí$, y $mplió el presupuesto de l$ división en mWs del 25%. L$ m$yorí$ de los microcontrol$dores en $quel momento tení$n dos v$ri$ntes. Unos tení$n un$ memori$ EPROM reprogr$m$ble, signific$tiv$mente mWs c$ros que l$ v$ri$nte PROM que er$ sólo un$ vez progr$m$ble. P$r$ borr$r l$ EPROM necesit$ exponer $ l$ luz ultr$violet$ l$ t$p$ de cu$rzo tr$nsp$rente. Los chips con todo op$co represent$b$n un coste menor. En 1993, el l$nz$miento de l$ EEPROM en los microcontrol$dores (comenz$ndo con el Microchip PIC16x84)⁴ permite borr$rl$ eléctric$ y rWpid$mente sin necesid$d de un p$quete costoso como se requiere en EPROM, lo que permite t$nto l$ cre$ción rWpid$ de prototipos y l$ progr$m$ción en el sistem$. El mismo $ño, Atmel l$nz$ el primer microcontrol$dor que utiliz$ memori$ fl$sh.⁵ Otr$s comp$ñí$s rWpid$mente siguieron el ejemplo, con los dos tipos de memori$. El costo se h$ desplom$do en el tiempo, con el mWs b$r$to microcontrol$dor de 8 bits disponible por menos de 0,25 dól$res p$r$ miles de unid$des en 2009, y $lgunos microcontrol$dores de 32 bits $ 1 dól$r por c$ntid$des simil$res. En l$ $ctu$lid$d los microcontrol$dores son b$r$tos y fWcilmente disponibles p$r$ los $ficion$dos, con gr$ndes comunid$des en líne$ p$r$ ciertos proces$dores. En el futuro, l$ MRAM podrí$ ser utiliz$d$ en microcontrol$dores, y$ que tiene resistenci$ infinit$ y el coste de su oble$ semiconductor$ es rel$tiv$mente b$jo. C)r)cterístic)s[edit)r] Esquem$ de un microcontrol$dor. En est$ figur$, vemos $l microcontrol$dor metido dentro de un enc$psul$do de circuito integr$do, con su proces$dor (CPU), buses, memori$, periféricos y puertos de entr$d$/s$lid$. Fuer$ del enc$psul$do se ubic$n otros circuitos p$r$ complet$r periféricos internos y dispositivos que pueden conect$rse $ los pines de entr$d$/s$lid$. T$mbién se conect$rWn $ los pines del enc$psul$do l$ $liment$ción, m$s$, circuito de complet$miento del oscil$dor y otros circuitos neces$rios p$r$ que el microcontrol$dor pued$ tr$b$j$r. Los microcontrol$dores estWn diseñ$dos p$r$ reducir el costo económico y el consumo de energí$ de un sistem$ en p$rticul$r. Por eso el t$m$ño de l$ unid$d centr$l de proces$miento, l$ c$ntid$d de memori$ y los periféricos incluidos dependerWn de l$ $plic$ción. El control de un electrodoméstico sencillo como un$ b$tidor$ utiliz$rW un proces$dor muy pequeño (4 u 8 bits) porque sustituirW $ un $utóm$t$ finito. En c$mbio, un reproductor de músic$ y/o vídeo digit$l (MP3 o MP4) requerirW de un proces$dor de 32 bits o de 64 bits y de uno o mWs códecs de señ$l digit$l ($udio y/o vídeo). El control de un sistem$ de frenos ABS (Antilock Br$ke System) se b$s$ norm$lmente en un microcontrol$dor de 16 bits, $l igu$l que el sistem$ de control electrónico del motor en un $utomóvil. Los microcontrol$dores represent$n l$ inmens$ m$yorí$ de los chips de comput$dor$s vendidos, sobre un 50% son control$dores "simples" y el rest$nte corresponde $ DSP mWs especi$liz$dos. Mientr$s se pueden tener uno o dos microproces$dores de propósito gener$l en c$s$ (Ud. estW us$ndo uno p$r$ esto), usted tiene distribuidos segur$mente entre los electrodomésticos de su hog$r un$ o dos docen$s de microcontrol$dores. Pueden encontr$rse en c$si cu$lquier dispositivo electrónico como $utomóviles, l$v$dor$s, hornos microond$s, teléfonos, etc. Un microcontrol$dor difiere de un$ unid$d centr$l de proces$miento norm$l, debido $ que es mWs fWcil convertirl$ en un$ comput$dor$ en funcion$miento, con un mínimo de circuitos integr$dos externos de $poyo. L$ ide$ es que el circuito integr$do se coloque en el dispositivo, eng$nch$do $ l$ fuente de energí$ y de inform$ción que necesite, y eso es todo. Un microproces$dor tr$dicion$l no le permitirW h$cer esto, y$ que esper$ que tod$s est$s t$re$s se$n m$nej$d$s por otros chips. H$y que $greg$rle los módulos de entr$d$ y s$lid$ (puertos) y l$ memori$ p$r$ $lm$cen$miento de inform$ción. Un microcontrol$dor típico tendrW un gener$dor de reloj integr$do y un$ pequeñ$ c$ntid$d de memori$ de $cceso $le$torio y/o ROM/EPROM/EEPROM/fl$sh, con lo que p$r$ h$cerlo funcion$r todo lo que se necesit$ son unos pocos progr$m$s de control y un crist$l de sincroniz$ción. Los microcontrol$dores disponen gener$lmente t$mbién de un$ gr$n v$ried$d de dispositivos de entr$d$/s$lid$, como convertidor $n$lógico digit$l, temporiz$dores, UARTs y buses de interf$z serie especi$liz$dos, como I²C y CAN. Frecuentemente, estos dispositivos integr$dos pueden ser control$dos por instrucciones de proces$dores especi$liz$dos. Los modernos microcontrol$dores frecuentemente incluyen un lengu$je de progr$m$ción integr$do, como el lengu$je de progr$m$ción BASIC que se utiliz$ b$st$nte con este propósito. Los microcontrol$dores negoci$n l$ velocid$d y l$ flexibilid$d p$r$ f$cilit$r su uso. Debido $ que se utiliz$ b$st$nte sitio en el chip p$r$ incluir funcion$lid$d, como los dispositivos de entr$d$/s$lid$ o l$ memori$ que incluye el microcontrol$dor, se h$ de prescindir de cu$lquier otr$ circuiterí$. Arquitectur)s de comput)dor)[edit)r] Artículo princip-l: Arquitectur$ de comput$dor$s BWsic$mente existen dos $rquitectur$s de comput$dor$s, y por supuesto, estWn presentes en el mundo de los microcontrol$dores: Von Neum$nn y H$rv$rd. Amb$s se diferenci$n en l$ form$ de conexión de l$ memori$ $l proces$dor y en los buses que c$d$ un$ necesit$. Arquitectur) Von Neum)nn[edit$r] Artículo princip-l: Arquitectur$ Von Neum$nn L$ $rquitectur$ Von Neum$nn utiliz$ el mismo dispositivo de $lm$cen$miento t$nto p$r$ l$s instrucciones como p$r$ los d$tos, siendo l$ que se utiliz$ en un orden$dor person$l porque permite $horr$r un$ buen$ c$ntid$d de líne$s de E/S, que son b$st$nte costos$s, sobre todo p$r$ $quellos sistem$s donde el proces$dor se mont$ en $lgún tipo de zóc$lo $loj$do en un$ pl$c$ m$dre. T$mbién est$ org$niz$ción les $horr$ $ los diseñ$dores de pl$c$s m$dre un$ buen$ c$ntid$d de problem$s y reduce el costo de este tipo de sistem$s. En un orden$dor person$l, cu$ndo se c$rg$ un progr$m$ en memori$, $ éste se le $sign$ un esp$cio de direcciones de l$ memori$ que se divide en segmentos, de los cu$les típic$mente tendremos los siguientes: código (progr$m$), d$tos y pil$. Es por ello que podemos h$bl$r de l$ memori$ como un todo, $unque exist$n distintos dispositivos físicos en el sistem$ (disco duro, memori$ RAM, memori$ fl$sh, unid$d de disco óptico...). En el c$so de los microcontrol$dores, existen dos tipos de memori$ bien definid$s: memori$ de d$tos (típic$mente $lgún tipo de SRAM) y memori$ de progr$m$s (ROM, PROM, EEPROM, fl$sh u de otro tipo no volWtil). En este c$so l$ org$niz$ción es distint$ $ l$s del orden$dor person$l, porque h$y circuitos distintos p$r$ c$d$ memori$ y norm$lmente no se utiliz$n los registros de segmentos, sino que l$ memori$ estW segreg$d$ y el $cceso $ c$d$ tipo de memori$ depende de l$s instrucciones del proces$dor. A pes$r de que en los sistem$s integr$dos con $rquitectur$ Von Neum$nn l$ memori$ esté segreg$d$, y exist$n diferenci$s con respecto $ l$ definición tr$dicion$l de est$ $rquitectur$; los buses p$r$ $cceder $ $mbos tipos de memori$ son los mismos, del proces$dor sol$mente s$len el bus de d$tos, el de direcciones, y el de control. Como conclusión, l$ $rquitectur$ no h$ sido $lter$d$, porque l$ form$ en que se conect$ l$ memori$ $l proces$dor sigue el mismo principio definido en l$ $rquitectur$ bWsic$. Algun$s f$mili$s de microcontrol$dores como l$ Intel 8051 y l$ Z80 implement$n este tipo de $rquitectur$, fund$ment$lmente porque er$ l$ utiliz$d$ cu$ndo $p$recieron los primeros microcontrol$dores. Arquitectur) H)rv)rd[edit$r] Artículo princip-l: Arquitectur$ H$rv$rd L$ otr$ v$ri$nte es l$ $rquitectur$ H$rv$rd, y por excelenci$ l$ utiliz$d$ en supercomput$dor$s, en los microcontrol$dores, y sistem$s integr$dos en gener$l. En este c$so, $demWs de l$ memori$, el proces$dor tiene los buses segreg$dos, de modo que c$d$ tipo de memori$ tiene un bus de d$tos, uno de direcciones y uno de control. L$ vent$j$ fund$ment$l de est$ $rquitectur$ es que permite $decu$r el t$m$ño de los buses $ l$s c$r$cterístic$s de c$d$ tipo de memori$; $demWs, el proces$dor puede $cceder $ c$d$ un$ de ell$s de form$ simultWne$, lo que se tr$duce en un $umento signific$tivo de l$ velocid$d de proces$miento. Típic$mente los sistem$s con est$ $rquitectur$ pueden ser dos veces mWs rWpidos que sistem$s simil$res con $rquitectur$ Von Neum$nn. L$ desvent$j$ estW en que consume much$s líne$s de E/S del proces$dor; por lo que en sistem$s donde el proces$dor estW ubic$do en su propio enc$psul$do, solo se utiliz$ en supercomput$dor$s. Sin emb$rgo, en los microcontrol$dores y otros sistem$s integr$dos, donde usu$lmente l$ memori$ de d$tos y progr$m$s comp$rten el mismo enc$psul$do que el proces$dor, este inconveniente dej$ de ser un problem$ serio y es por ello que encontr$mos l$ $rquitectur$ H$rv$rd en l$ m$yorí$ de los microcontrol$dores. Por eso es import$nte record$r que un microcontrol$dor se puede configur$r de diferentes m$ner$s, siempre y cu$ndo se respete el t$m$ño de memori$ que este requier$ p$r$ su correcto funcion$miento. Proces)dor en det)lle[edit)r] En los $ños 1970, l$ electrónic$ digit$l no est$b$ suficientemente des$rroll$d$, pero dentro de l$ electrónic$ y$ er$ un$ especi$lid$d cons$gr$d$. En $quel entonces l$s comput$dor$s se diseñ$b$n p$r$ que re$liz$r$n $lgun$s oper$ciones muy simples, y si se querí$ que est$s mWquin$s pudiesen h$cer cos$s diferentes, er$ neces$rio re$liz$r c$mbios b$st$nte signific$tivos $l h$rdw$re. A principios de l$ déc$d$ de 1970, un$ empres$ j$pones$ le enc$rgó $ un$ joven comp$ñí$ norte$meric$n$ que des$rroll$r$ un conjunto de circuitos p$r$ producir un$ c$lcul$dor$ de b$jo costo. Intel se dedicó de lleno $ l$ t$re$ y entre los circuitos enc$rg$dos des$rrolló uno muy especi$l, $lgo no cre$do h$st$ l$ fech$: el primer microproces$dor integr$do. El Intel 4004 s$lió $l merc$do en 1971, es un$ mWquin$ digit$l sincrónic$ complej$, como cu$lquier otro circuito lógico secuenci$l sincrónico. Sin emb$rgo, l$ vent$j$ de este componente estW en que $loj$ intern$mente un conjunto de circuitos digit$les que pueden h$cer oper$ciones corrientes p$r$ el cWlculo y proces$miento de d$tos, pero desde un$ óptic$ diferente: sus entr$d$s son un$ serie de códigos bien definidos, que permiten h$cer oper$ciones de c$rWcter específico cuyo result$do estW determin$do por el tipo de oper$ción y los oper$ndos involucr$dos. Visto $sí, no h$y n$d$ de especi$l en un microproces$dor; l$ m$r$vill$ estW en que l$ combin$ción $decu$d$ de los códigos de entr$d$, su ejecución secuenci$l, el poder s$lt$r h$ci$ $trWs o $del$nte en l$ secuenci$ de códigos sobre l$ b$se de decisiones lógic$s u órdenes específic$s, permite que l$ mWquin$ re$lice gr$n c$ntid$d de oper$ciones complej$s, no contempl$d$s en los simples códigos bWsicos. Hoy est$mos $costumbr$dos $ los sistem$s con microproces$dores, pero en el lej-no 1971 est$ er$ un$ form$ de pens$r un poco diferente y h$st$ esc$nd$los$, $ t$l punto que Busicom, l$ empres$ que enc$rgó los chips $ Intel, no se mostró interes$d$ en el invento, por lo que Intel lo comerci$lizó p$r$ otros que mostr$ron interés; el resto es histori$: un$ revolución sin precedentes en el $v$nce tecnológico de l$ hum$nid$d. Es lógico pens$r que el invento del microproces$dor integr$do no fue un$ revel$ción divin$ p$r$ sus cre$dores, sino que se sustentó en los $v$nces, existentes h$st$ el momento, en el c$mpo de l$ electrónic$ digit$l y l$s teorí$s sobre comput$ción. Pero sin lug$r $ dud$s fue l$ got$ que colmó l$ cop$ de l$ revolución científico-técnic$, porque permitió des$rroll$r $plic$ciones impens$d$s o $celer$r $lgun$s y$ enc$min$d$s. Ahor$ comenz$remos $ ver cómo es que estW hecho un proces$dor, no serW un$ explic$ción dem$si$do det$ll$d$ porque desde su invención éste h$ tenido import$ntes revoluciones propi$s, pero h$y $spectos bWsicos que no h$n c$mbi$do y que constituyen l$ b$se de cu$lquier microproces$dor. En l$ Figur$ 'Esquem$ de un microcontrol$dor' podemos ver l$ estructur$ típic$ de un microproces$dor, con sus componentes fund$ment$les, cl$ro estW que ningún proces$dor re$l se $just$ ex$ct$mente $ est$ estructur$, pero $un $sí nos permite conocer c$d$ uno de sus elementos bWsicos y sus interrel$ciones. Registros[edit$r] Artículo princip-l: Registro (h$rdw$re) Son un esp$cio de memori$ muy reducido pero neces$rio p$r$ cu$lquier microproces$dor, de $quí se tom$n los d$tos p$r$ v$ri$s oper$ciones que debe re$liz$r el resto de los circuitos del proces$dor. Los registros sirven p$r$ $lm$cen$r los result$dos de l$ ejecución de instrucciones, c$rg$r d$tos desde l$ memori$ extern$ o $lm$cen$rlos en ell$. Aunque l$ import$nci$ de los registros p$rezc$ trivi$l, no lo es en $bsoluto. De hecho un$ p$rte de los registros, l$ destin$d$ $ los d$tos, es l$ que determin$ uno de los p$rWmetros mWs import$ntes de cu$lquier microproces$dor. Cu$ndo escuch$mos que un proces$dor es de 4, 8, 16, 32 o 64 bits, nos est$mos refiriendo $ proces$dores que re$liz$n sus oper$ciones con registros de d$tos de ese t$m$ño, y por supuesto, esto determin$ much$s de l$s potenci$lid$des de est$s mWquin$s. Mientr$s m$yor se$ el número de bits de los registros de d$tos del proces$dor, m$yores serWn sus prest$ciones, en cu$nto $ poder de cómputo y velocid$d de ejecución, y$ que este p$rWmetro determin$ l$ potenci$ que se puede incorpor$r $l resto de los componentes del sistem$, por ejemplo, no tiene sentido tener un$ ALU de 16 bits en un proces$dor de 8 bits. Por otro l$do un proces$dor de 16 bits, puede que h$g$ un$ sum$ de 16 bits en un solo ciclo de mWquin$, mientr$s que uno de 8 bits deberW ejecut$r v$ri$s instrucciones $ntes de tener el result$do, $un cu$ndo $mbos proces$dores teng$n l$ mism$ velocid$d de ejecución p$r$ sus instrucciones. El proces$dor de 16 bits serW mWs rWpido porque puede h$cer el mismo tipo de t$re$s que uno de 8 bits, en menos tiempo. Unid)d de control[edit$r] Artículo princip-l: Unid$d de control Est$ unid$d es de l$s mWs import$ntes en el proces$dor, en ell$ rec$e l$ lógic$ neces$ri$ p$r$ l$ decodific$ción y ejecución de l$s instrucciones, el control de los registros, l$ ALU, los buses y cu$nt$ cos$ mWs se quier$ meter en el proces$dor. L$ unid$d de control es uno de los elementos fund$ment$les que determin$n l$s prest$ciones del proces$dor, y$ que su tipo y estructur$ determin$ p$rWmetros t$les como el tipo de conjunto de instrucciones, velocid$d de ejecución, tiempo del ciclo de mWquin$, tipo de buses que puede tener el sistem$, m$nejo de interrupciones y un buen número de cos$s mWs que en cu$lquier proces$dor v$n $ p$r$r $ este bloque. Por supuesto, l$s unid$des de control son el elemento mWs complejo de un proces$dor y norm$lmente estWn dividid$s en unid$des mWs pequeñ$s tr$b$j$ndo de conjunto. L$ unid$d de control $grup$ componentes t$les como l$ unid$d de decodific$ción, unid$d de ejecución, control$dores de memori$ c$ché, control$dores de buses, control$dor de interrupciones, pipelines, entre otros elementos, dependiendo siempre del tipo de proces$dor. Unid)d )ritmético-lógic) (ALU)[edit$r] Artículo princip-l: Unid$d $ritmétic$ lógic$ Como los proces$dores son circuitos que h$cen bWsic$mente oper$ciones lógic$s y m$temWtic$s, se le dedic$ $ este proceso un$ unid$d complet$, con ciert$ independenci$. Aquí es donde se re$liz$n l$s sum$s, rest$s, y oper$ciones lógic$s típic$s del Wlgebr$ de Boole. Actu$lmente este tipo de unid$des h$ evolucion$do mucho y los proces$dores mWs modernos tienen v$ri$s ALU, especi$liz$d$s en l$ re$liz$ción de oper$ciones complej$s como l$s oper$ciones en com$ flot$nte. De hecho en muchos c$sos le h$n c$mbi$do su nombre por el de “coproces$dor m$temWtico”, $unque este es un término que surgió p$r$ d$r nombre $ un tipo especi$l de proces$dor que se conect$ direct$mente $l proces$dor mWs tr$dicion$l. Su imp$cto en l$s prest$ciones del proces$dor es t$mbién import$nte porque, dependiendo de su potenci$, t$re$s mWs o menos complej$s, pueden h$cerse en tiempos muy cortos, como por ejemplo, los cWlculos en com$ flot$nte. Buses[edit$r] Artículo princip-l: Bus (informWtic$) Son el medio de comunic$ción que utiliz$n los diferentes componentes del proces$dor p$r$ interc$mbi$r inform$ción entre sí, eventu$lmente los buses o un$ p$rte de ellos est$rWn reflej$dos en los pines del enc$psul$do del proces$dor. En el c$so de los microcontrol$dores, no es común que los buses estén reflej$dos en el enc$psul$do del circuito, y$ que estos se destin$n bWsic$mente $ l$s E/S de propósito gener$l y periféricos del sistem$. Existen tres tipos de buses: ● Dirección: Se utiliz$ p$r$ seleccion$r $l dispositivo con el cu$l se quiere tr$b$j$r o en el c$so de l$s memori$s, seleccion$r el d$to que se dese$ leer o escribir. ● D$tos: Se utiliz$ p$r$ mover los d$tos entre los dispositivos de h-rdw-re (entr$d$ y s$lid$). ● Control: Se utiliz$ p$r$ gestion$r los distintos procesos de escritur$ lectur$ y control$r l$ oper$ción de los dispositivos del sistem$. Conjunto de instrucciones[edit$r] Artículo princip-l: Conjunto de instrucciones Aunque no $p$rezc$ en el esquem$, no podí$mos dej$r $l conjunto o repertorio de instrucciones fuer$ de l$ explic$ción, porque este elemento determin$ lo que puede h$cer el proces$dor. Define l$s oper$ciones bWsic$s que puede re$liz$r el proces$dor, que conjug$d$s y org$niz$d$s form$n lo que conocemos como softw$re. El conjunto de instruccionesvienen siendo como l$s letr$s del $lf$beto, el elemento bWsico del lengu$je, que org$niz$d$s $decu$d$mente permiten escribir p$l$br$s, or$ciones y cu$nto progr$m$ se le ocurr$. Existen dos tipos bWsicos de repertorios de instrucciones, que determin$n l$ $rquitectur$ del proces$dor: CISC y RISC. CISC, del inglés Complex instruction set computing, Comput$dor$ de Conjunto de Instrucciones Complejo. Los microproces$dores CISC tienen un conjunto de instrucciones que se c$r$cteriz$ por ser muy $mplio y que permiten re$liz$r oper$ciones complej$s entre oper$ndos situ$dos en l$ memori$ o en los registros internos. Este tipo de repertorio dificult$ el p$r$lelismo entre instrucciones, por lo que en l$ $ctu$lid$d, l$ m$yorí$ de los sistem$s CISC de $lto rendimiento convierten l$s instrucciones complej$s en v$ri$s instrucciones simples del tipo RISC, ll$m$d$s gener$lmente microinstrucciones. Dentro de los microcontrol$dores CISC podemos encontr$r $ l$ popul$r f$mili$ Intel 8051 y l$ Z80, $unque $ctu$lmente existen versiones CISC-RISC de estos microcontrol$dores, que pretenden $provech$r l$s vent$j$s de los proces$dores RISC $ l$ vez que se m$ntiene l$ comp$tibilid$d h$ci$ $trWs con l$s instrucciones de tipo CISC. RISC, del inglés Reduced Instruction Set Computer, Comput$dor$ con Conjunto de Instrucciones Reducido. Se centr$ en l$ obtención de proces$dores con l$s siguientes c$r$cterístic$s fund$ment$les: ● Instrucciones de t$m$ño fijo. ● Poc$s instrucciones. ● Sólo l$s instrucciones de c$rg$ y $lm$cen$miento $cceden $ l$ memori$ de d$tos. ● Número rel$tiv$mente elev$do de registros de propósito gener$l. Un$ de l$s c$r$cterístic$s mWs dest$c$bles de este tipo de proces$dores es que posibilit$n el p$r$lelismo en l$ ejecución, y reducen los $ccesos $ memori$. Es por eso que los proces$dores mWs modernos, tr$dicion$lmente b$s$dos en $rquitectur$s CISC, implement$n mec$nismos de tr$ducción de instrucciones CISC $ RISC, p$r$ $provech$r l$s vent$j$s de este tipo de proces$dores. Los proces$dores de los microcontrol$dores PIC son de tipo RISC. Memori)[edit)r] Artículo princip-l: Memori$ (informWtic$) Anteriormente se h$ visto que l$ memori$ en los microcontrol$dores debe est$r ubic$d$ dentro del mismo enc$psul$do, esto es $sí l$ m$yorí$ de l$s veces, porque l$ ide$ fund$ment$l es m$ntener el grueso de los circuitos del sistem$ dentro de un solo integr$do. En los microcontrol$dores l$ memori$ no es $bund$nte, $quí no encontr$rW Gig$bytes de memori$ como en l$s comput$dor$s person$les. Típic$mente l$ memori$ de progr$m$s no excederW de 16 K-loc$liz$ciones de memori$ no volWtil (fl$sh o eprom) p$r$ contener los progr$m$s. L$ memori$ RAM estW destin$d$ $l $lm$cen$miento de inform$ción tempor$l que serW utiliz$d$ por el proces$dor p$r$ re$liz$r cWlculos u otro tipo de oper$ciones lógic$s. En el esp$cio de direcciones de memori$ RAM se ubic$n $demWs los registros de tr$b$jo del proces$dor y los de configur$ción y tr$b$jo de los distintos periféricos del microcontrol$dor. Es por ello que en l$ m$yorí$ de los c$sos, $unque se teng$ un esp$cio de direcciones de un t$m$ño determin$do, l$ c$ntid$d de memori$ RAM de que dispone el progr$m$dor p$r$ $lm$cen$r sus d$tos es menor que l$ que puede direccion$r el proces$dor. El tipo de memori$ utiliz$d$ en l$s memori$s RAM de los microcontrol$dores es SRAM, lo que evit$ tener que implement$r sistem$s de refresc$miento como en el c$so de l$s comput$dor$s person$les, que utiliz$n gr$n c$ntid$d de memori$, típic$mente $lgun$ tecnologí$ DRAM. A pes$r de que l$ memori$ SRAM es mWs costos$ que l$ DRAM, es el tipo $decu$do p$r$ los microcontrol$dores porque éstos poseen pequeñ$s c$ntid$des de memori$ RAM. En el c$so de l$ memori$ de progr$m$s se utiliz$n diferentes tecnologí$s, y el uso de un$ u otr$ depende de l$s c$r$cterístic$s de l$ $plic$ción $ des$rroll$r, $ continu$ción se describen l$s cinco tecnologí$s existentes, que m$yor utiliz$ción tienen o h$n tenido: ● MWsc$r$ ROM. En este c$so no se “gr$b$” el progr$m$ en memori$ sino que el microcontrol$dor se f$bric$ con el progr$m$, es un proceso simil$r $l de producción de los CD comerci$les medi$nte m$steriz$ción. El costo inici$l de producir un circuito de este tipo es $lto, porque el diseño y producción de l$ mWsc$r$ es un proceso costoso, sin emb$rgo, cu$ndo se necesit$n v$rios miles o incluso cientos de miles de microcontrol$dores p$r$ un$ $plic$ción determin$d$, como por ejemplo, $lgún electrodoméstico, el costo inici$l de producción de l$ mWsc$r$ y el de f$bric$ción del circuito se distribuye entre todos los circuitos de l$ serie, y el costo fin$l de ést$ es b$st$nte menor que el de sus semej$ntes con otro tipo de memori$. ● Memori$ PROM (Progr$mm$ble Re$d-Only Memory) t$mbién conocid$ como OTP (One Time Progr$mm$ble). Este tipo de memori$ t$mbién es conocid$ como PROM o simplemente ROM. Los microcontrol$dores con memori$ OTP se pueden progr$m$r un$ sol$ vez, con $lgún tipo de progr$m$dor. Se utiliz$n en sistem$s donde el progr$m$ no requier$ futur$s $ctu$liz$ciones y p$r$ series rel$tiv$mente pequeñ$s, donde l$ v$ri$nte de mWsc$r$ se$ muy costos$, t$mbién p$r$ sistem$s que requieren seri$liz$ción de d$tos, $lm$cen$dos como const$ntes en l$ memori$ de progr$m$s. ● Memori$ EPROM (Er$s$ble Progr$mm$ble Re$d Only Memory). Los microcontrol$dores con este tipo de memori$ son muy fWciles de identific$r porque su enc$psul$do es de cerWmic$ y llev$n encim$ un$ vent$nit$ de vidrio desde l$ cu$l puede verse l$ oble$ de silicio del microcontrol$dor. Se f$bric$n $sí porque l$ memori$ EPROM es reprogr$m$ble, pero $ntes debe borr$se, y p$r$ ello h$y que exponerl$ $ un$ fuente de luz ultr$violet$, el proceso de gr$b$ción es simil$r $l emple$do p$r$ l$s memori$s OTP. Al $p$recer tecnologí$s menos costos$s y mWs flexibles, como l$s memori$s EEPROM y FLASH, este tipo de memori$ h$n c$ído en desuso, se utiliz$b$n en sistem$s que requieren $ctu$liz$ciones del progr$m$ y p$r$ los procesos de des$rrollo y puest$ $ punto. ● EEPROM (Electric$l Er$s$ble Progr$mm$ble Re$d Only Memory). Fueron el sustituto n$tur$l de l$s memori$s EPROM, l$ diferenci$ fund$ment$l es que ●
pueden ser borr$d$s eléctric$mente, por lo que l$ vent$nill$ de crist$l de
cu$rzo y los enc$psul$dos cerWmicos no son neces$rios. Al disminuir los costos de los enc$psul$dos, los microcontrol$dores con este tipo de memori$ se hicieron mWs b$r$tos y cómodos p$r$ tr$b$j$r que sus equiv$lentes con memori$ EPROM. Otr$ c$r$cterístic$ dest$c$ble de este tipo de microcontrol$dor es que fue en ellos donde comenz$ron $ utiliz$rse los sistem$s de progr$m$ción en el sistem$ que evit$n tener que s$c$r el microcontrol$dor de l$ t$rjet$ que lo $loj$ p$r$ h$cer $ctu$liz$ciones $l progr$m$. ● Memori$ fl$sh. En el c$mpo de l$s memori$s reprogr$m$bles p$r$ microcontrol$dores, son el último $v$nce tecnológico en uso $ gr$n esc$l$, y h$n sustituido $ los microcontrol$dores con memori$ EEPROM. A l$s vent$j$s de l$s memori$s fl$sh se le $dicion$n su gr$n densid$d respecto $ sus predecesor$s lo que permite increment$r l$ c$ntid$d de memori$ de progr$m$s $ un costo muy b$jo. Pueden $demWs ser progr$m$d$s con l$s mism$s tensiones de $liment$ción del microcontrol$dor, el $cceso en lectur$ y l$ velocid$d de progr$m$ción es superior, disminución de los costos de producción, entre otr$s. Lo mWs h$bitu$l es encontr$r que l$ memori$ de progr$m$s y d$tos estW ubic$d$ tod$ dentro del microcontrol$dor, de hecho, $ctu$lmente son pocos los microcontrol$dores que permiten conect$r memori$ de progr$m$s en el exterior del enc$psul$do. L$s r$zones p$r$ est$s “limit$ciones” estWn d$d$s porque el objetivo fund$ment$l es obtener l$ m$yor integr$ción posible y conect$r memori$s extern$s consume líne$s de E/S que son uno de los recursos mWs preci$dos de los microcontrol$dores. A pes$r de lo $nterior existen f$mili$s como l$ Intel 8051 cuyos microcontrol$dores tienen l$ c$p$cid$d de ser exp$ndidos en un$ v$ri$d$ g$m$ de configur$ciones p$r$ el uso de memori$ de progr$m$s extern$. En el c$so de los PIC, est$s posibilid$des estWn limit$d$s sólo $ $lgunos microcontrol$dores de l$ g$m$ $lt$, l$ Figur$ 5 muestr$ $lgun$s de l$s configur$ciones p$r$ memori$ de progr$m$ que podemos encontr$r en los microcontrol$dores. L$ configur$ción ($) es l$ típic$ y podemos encontr$rl$ c$si en el 100% de los microcontrol$dores. L$ configur$ción (b) es poco frecuente y gener$lmente se logr$ configur$ndo $l microcontrol$dor p$r$ s$crific$r l$ memori$ de progr$m$s intern$, sin emb$rgo el Intel 8031 es un microcontrol$dor sin memori$ de progr$m$s intern$. L$ configur$ción (c) es l$ que se encuentr$ h$bitu$lmente en los microcontrol$dores que tienen posibilid$des de exp$ndir su memori$ de progr$m$s como $lgunos PIC de g$m$ $lt$. Cu$ndo se requiere $ument$r l$ c$ntid$d de memori$ de d$tos, lo mWs frecuente es coloc$r dispositivos de memori$ extern$ en form$ de periféricos, de est$ form$ se pueden utiliz$r memori$s RAM, FLASH o incluso discos duros como los de los orden$dores person$les, mientr$s que p$r$ los cWlculos y demWs oper$ciones que requier$n $lm$cen$miento tempor$l de d$tos se utiliz$ l$ memori$ RAM intern$ del microcontrol$dor. Est$ form$ de exp$ndir l$ memori$ de d$tos estW determin$d$, en l$ m$yorí$ de los c$sos, por el tipo de repertorio de instrucciones del proces$dor y porque permite un elev$do número de configur$ciones distint$s, $demWs del consiguiente $horro de líne$s de E/S que se logr$ con el uso de memori$s con buses de comunic$ción serie. Interrupciones[edit)r] Artículo princip-l: Interrupción L$s interrupciones son esenci$lmente ll$m$d$s $ subrutin$ gener$d$s por los dispositivos físicos, $l contr$rio de l$s subrutin$s norm$les de un progr$m$ en ejecución. Como el s$lto de subrutin$ no es p$rte del hilo o secuenci$ de ejecución progr$m$d$, el control$dor gu$rd$ el est$do del proces$dor en l$ pil$ de memori$ y entr$ $ ejecut$r un código especi$l ll$m$do "m$nej$dor de interrupciones" que $tiende $l periférico específico que generó l$ interrupción. Al termin$r l$ rutin$, un$ instrucción especi$l le indic$ $l proces$dor el fin de l$ $tención de l$ interrupción. En ese momento el control$dor rest$blece el est$do $nterior, y el progr$m$ que se est$b$ ejecut$ndo $ntes de l$ interrupción sigue como si n$d$ hubiese p$s$do. L$s rutin$s de $tención de interrupciones deben ser lo mWs breves posibles p$r$ que el rendimiento del sistem$ se$ s$tisf$ctorio, por que norm$lmente cu$ndo un$ interrupción es $tendid$, tod$s l$s demWs interrupciones estWn en esper$. Im-gine que est: esper-ndo l- visit- de un -migo, -l que ll-m-remos Ju-n. Usted y Ju-n h-n -cord-do que cu-ndo él llegue - su c-s- esper-r: p-cientemente - que le -br- l- puert-. Ju-n no debe toc-r - l- puert- porque -lguien en l- c-s- duerme y no quiere que le despierten. Ahor- usted h- decidido leer un libro mientr-s esper- - que Ju-n llegue - l- c-s-, y p-r- comprob-r si h- lleg-do, c-d- cierto tiempo detiene l- lectur-, m-rc- l- p:gin- donde se quedó, se lev-nt- y v- h-st- l- puert-, -bre y comprueb- si Ju-n h- lleg-do, si éste tod-ví- no est: en l- puert-, esper-r: unos minutos, cerr-r: l- puert- y regres-r: - su lectur- dur-nte -lgún tiempo. Como verW este es un método poco eficiente p$r$ esper$r $ Ju$n porque requiere que deje l$ lectur$ c$d$ cierto tiempo y v$y$ h$st$ l$ puert$ $ comprob$r si él h$ lleg$do, $demWs debe esper$r un r$to si tod$ví$ no lleg$. Y por si fuer$ poco, im$gine que Ju$n no lleg$ nunc$ porque se le presentó un problem$, tuvo que c$ncel$r l$ cit$ y no pudo $vis$rle $ tiempo, o peor, que Ju$n h$ lleg$do $ l$ puert$ un inst$nte después que usted l$ cerr$b$. Ju$n, respet$ndo lo $cord$do, esper$ un tiempo, pero se c$ns$ de esper$r $ que le $br$n y decide m$rch$rse porque cree que y$ usted no estW en l$ c$s$ o no puede $tenderlo. A este método de $tender l$ lleg$d$ de Ju$n lo ll$m$remos encuest$. Ve$mos $hor$ otro método. En est$ oc$sión simplemente se recuest$ en el sofW de l$ s$l$ y comienz$ $ leer su libro, cu$ndo Ju$n llegue debe toc$r el timbre de l$ puert$ y esper$r unos momentos $ que le $tiend$n. Cu$ndo usted oye son$r el timbre, interrumpe l$ lectur$, m$rc$ l$ pWgin$ donde se quedó y v$ h$st$ l$ puert$ p$r$ $tender $ l$ person$ que toc$ el timbre. Un$ vez que Ju$n o l$ person$ que h$ toc$do el timbre, se m$rch$, usted regres$ $ su $siento y retom$ l$ lectur$ justo donde l$ dejó. Este último es un método mWs eficiente que el $nterior porque le dej$ mWs tiempo p$r$ leer y elimin$ $lgunos inconvenientes como el de que Ju$n nunc$ llegue o se m$rche $ntes de que usted $br$ l$ puert$. Es, en principio, un método simple pero muy efic$z y eficiente, lo ll$m$remos $tención por interrupción. El primero de ellos, l$ encuest$, es un método efic$z, pero poco eficiente porque requiere re$liz$r lectur$s const$ntes y much$s veces inneces$ri$s del est$do del proceso que queremos $tender. Sin emb$rgo, es muy utiliz$do en l$ progr$m$ción de microcontrol$dores porque result$ fWcil de $prender, l$ implement$ción de código con este método es menos complej$ y no requiere de h$rdw$re especi$l p$r$ llev$rl$ $del$nte. Por otr$ p$rte, l$ encuest$, tiene much$s deficienci$s que con frecuenci$ oblig$n $l diseñ$dor $ moverse h$ci$ otros horizontes El mundo estW lleno de situ$ciones; de l$s cu$les no podemos determin$r ni cu$ndo, ni como ni por qué se producen, en l$ m$yorí$ de los c$sos lo único que podemos h$cer es enter$rnos de que determin$d$ situ$ción, $soci$d$ $ un proceso, h$ ocurrido. P$r$ ello seleccion$mos $lgun$ condición o grupo de condiciones que nos indic$n que el proceso que nos interes$ debe ser $tendido, $ este fenómeno, en el cu$l se d$n l$s condiciones que nos interes$ conocer, lo ll$m$remos evento. En el segundo ejemplo vemos que p$r$ $tender $ Ju$n, éste debe toc$r el timbre, por t$nto, l$ lleg$d$ de Ju$n es el proceso que debemos $tender y el sonido del timbre es el evento que nos indic$ que Ju$n h$ lleg$do. El método de $tención $ procesos por interrupción, visto desde l$ óptic$ del ejemplo que utilicé p$r$ mostr$rlo, es mWs simple que el de l$ encuest$, pero no es cierto, el método se complic$ porque requiere que el microproces$dor incorpore circuitos $dicion$les p$r$ registr$r los eventos que le indic$n que debe $tender $l proceso $soci$do y comprender estos circuitos y su dinWmic$ no es un$ t$re$ sencill$. Los circuitos p$r$ l$ $tención $ l$s interrupciones y tod$s l$s t$re$s que debe re$liz$r el proces$dor p$r$ $tender $l proceso que lo interrumpe son b$st$nte complejos y requieren un$ visión diferente de l$ que est$mos $costumbr$dos $ tener de nuestro mundo. Los seres hum$nos no est$mos conscientes de l$s interrupciones, en nuestro org$nismo existen mec$nismos que nos interrumpen const$ntemente, p$r$ ello tenemos $ nuestro sistem$ sensori$l, pero no somos conscientes del proceso de interrupción, $unque sí de l$ $tención $ l$s interrupciones. Eso es porque incorpor$mos mec$nismos que nos s$c$n rWpid$mente de l$ t$re$ que estemos h$ciendo p$r$ $tender un$ situ$ción que no puede o no debe esper$r mucho tiempo. Bien, es$ mism$ es l$ ide$ que se incorpor$ en los microproces$dores p$r$ $tender procesos que no pueden esper$r o que no s$bemos cu$ndo deben ser $tendidos porque ello depende de determin$d$s condiciones. L$ cos$ se complic$ en l$ secuenci$ de $cciones $ re$liz$r desde el momento en que se desenc$den$ el proceso de interrupción, h$st$ que se ejecut$ el progr$m$ que lo $tiende, y en l$ secuenci$ de $cciones posteriores $ l$ $tención. Piense en cu$nt$s cos$s debe h$cer su org$nismo $nte un$ interrupción, utilicemos el segundo ejemplo p$r$ $tender l$ lleg$d$ de Ju$n. Piense en cu$nt$s cos$s su cerebro h$ce $ esp$ld$s de su concienci$, desde el momento en que suen$ el timbre h$st$ que usted se encuentr$ listo (consciente de que es prob$ble que Ju$n h$ lleg$do) p$r$ $brir l$ puert$, y todo lo que su cerebro debe tr$b$j$r p$r$ retom$r l$ lectur$ después que Ju$n se h$ m$rch$do. Todo eso, excepto $brir l$ puert$ y $tender $ Ju$n, lo h$cemos de form$ “inconsciente” porque p$r$ ello tenemos sistem$s dedic$dos en nuestro org$nismo, pero en el mundo de los microcontrol$dores debemos conocer todos esos det$lles p$r$ poder utiliz$r los mec$nismos de interrupción. Los procesos de $tención $ interrupciones tienen l$ vent$j$ de que se implement$n por h$rdw$re ubic$do en el proces$dor, $sí que es un método rWpido de h$cer que el proces$dor se dedique $ ejecut$r un progr$m$ especi$l p$r$ $tender eventos que no pueden esper$r por mec$nismos lentos como el de encuest$. En términos gener$les, un proceso de interrupción y su $tención por p$rte del proces$dor, tiene l$ siguiente secuenci$ de $cciones: z. En el mundo re$l se produce el evento p$r$ el cu$l queremos que el proces$dor ejecute un progr$m$ especi$l, este proceso tiene l$ c$r$cterístic$ de que no puede esper$r mucho tiempo $ntes de ser $tendido o no s$bemos en que momento debe ser $tendido. {. El circuito enc$rg$do de detect$r l$ ocurrenci$ del evento se $ctiv$, y como consecuenci$, $ctiv$ l$ entr$d$ de interrupción del proces$dor. |. L$ unid$d de control detect$ que se h$ producido un$ interrupción y “lev$nt$” un$ b$nder$ p$r$ registr$r est$ situ$ción; de est$ form$ si l$s condiciones que provoc$ron el evento des$p$recen y el circuito enc$rg$do de detect$rlo des$ctiv$ l$ entr$d$ de interrupción del proces$dor, ést$ se producirW de cu$lquier modo, porque h$ sido registr$d$. }. L$ unid$d de ejecución termin$ con l$ instrucción en curso y justo $ntes de comenz$r $ ejecut$r l$ siguiente comprueb$ que se h$ registr$do un$ interrupción ~. Se desenc$den$ un proceso que permite gu$rd$r el est$do $ctu$l del progr$m$ en ejecución y s$lt$r $ un$ dirección especi$l de memori$ de progr$m$s, donde estW l$ primer$ instrucción de l$ subrutin$ de $tención $ interrupción. •. Se ejecut$ el código de $tención $ interrupción, est$ es l$ p$rte “consciente” de todo el proceso porque es donde se re$liz$n l$s $cciones propi$s de l$ $tención $ l$ interrupción y el progr$m$dor jueg$ su p$pel. €. Cu$ndo en l$ subrutin$ de $tención $ interrupción se ejecut$ l$ instrucción de retorno, se desenc$den$ el proceso de rest$ur$ción del proces$dor $l est$do en que est$b$ $ntes de l$ $tención $ l$ interrupción. Como podemos observ$r, el mec$nismo de interrupción es b$st$nte complic$do, sin emb$rgo tiene dos vent$j$s que oblig$n $ su implement$ción: l$ velocid$d y su c$p$cid$d de ser $síncrono. Amb$s de conjunto permiten que $provechemos $l mWximo l$s c$p$cid$des de tr$b$jo de nuestro proces$dor. Los mec$nismos de interrupción no solo se utiliz$n p$r$ $tender eventos lig$dos $ procesos que requieren $tención inmedi$t$ sino que se utiliz$n $demWs p$r$ $tender eventos de procesos $síncronos. L$s interrupciones son t$n efic$ces que permiten que el proces$dor $ctúe como si estuviese h$ciendo v$ri$s cos$s $ l$ vez cu$ndo en re$lid$d se dedic$ $ l$ mism$ rutin$ de siempre, ejecut$r instrucciones un$ detrWs de l$ otr$. Periféricos[edit)r] Artículo princip-l: Periférico (informWtic$) Cu$ndo observ$mos l$ org$niz$ción bWsic$ de un microcontrol$dor, señ$l$mos que dentro de este se ubic$n un conjunto de periféricos. A continu$ción describiremos $lgunos de los periféricos que con m$yor frecuenci$ encontr$remos en los microcontrol$dores. Entr)d)s y s)lid)s de propósito gener)l[edit$r] T$mbién conocidos como puertos de E/S, gener$lmente $grup$d$s en puertos de 8 bits de longitud, permiten leer d$tos del exterior o escribir en ellos desde el interior del microcontrol$dor, el destino h$bitu$l es el tr$b$jo con dispositivos simples como relés, LED, o cu$lquier otr$ cos$ que se le ocurr$ $l progr$m$dor. Algunos puertos de E/S tienen c$r$cterístic$s especi$les que le permiten m$nej$r s$lid$s con determin$dos requerimientos de corriente, o incorpor$n mec$nismos especi$les de interrupción p$r$ el proces$dor. Típic$mente cu$lquier pin de E/S puede ser consider$d$ E/S de propósito gener$l, pero como los microcontrol$dores no pueden tener infinitos pines, ni siquier$ todos los pines que quer$mos, l$s E/S de propósito gener$l comp$rten los pines con otros periféricos. P$r$ us$r un pin con cu$lquier$ de l$s c$r$cterístic$s $ él $sign$d$s debemos configur$rlo medi$nte los registros destin$dos $ ellos. Temporiz)dores y cont)dores[edit$r] Son circuitos sincrónicos p$r$ el conteo de los pulsos que lleg$n $ su poder p$r$ conseguir l$ entr$d$ de reloj. Si l$ fuente de un gr$n conteo es el oscil$dor interno del microcontrol$dor es común que no teng$n un pin $soci$do, y en este c$so tr$b$j$n como temporiz$dores. Por otr$ p$rte, cu$ndo l$ fuente de conteo es extern$, entonces tienen $soci$do un pin configur$do como entr$d$, este es el modo cont$dor. Los temporiz$dores son uno de los periféricos mWs h$bitu$les en los microcontrol$dores y se utiliz$n p$r$ much$s t$re$s, como por ejemplo, l$ medición de frecuenci$, implement$ción de relojes, p$r$ el tr$b$jo de conjunto con otros periféricos que requieren un$ b$se est$ble de tiempo entre otr$s funcion$lid$des. Es frecuente que un microcontrol$dor típico incorpore mWs de un temporiz$dor/cont$dor e incluso $lgunos tienen $rreglos de cont$dores. Como veremos mWs $del$nte este periférico es un elemento c$si imprescindible y es h$bitu$l que teng$n $soci$d$ $lgun$ interrupción. Los t$m$ños típicos de los registros de conteo son 8 y 16 bits, pudiendo encontr$r dispositivos que solo tienen temporiz$dores de un t$m$ño o con mWs frecuenci$ con $mbos tipos de registro de conteo. Conversor )n)lógico/digit)l[edit$r] Como es muy frecuente el tr$b$jo con señ$les $n$lógic$s, ést$s deben ser convertid$s $ digit$l y por ello muchos microcontrol$dores incorpor$n un conversor $n$lógico-digit$l, el cu$l se utiliz$ p$r$ tom$r d$tos de v$ri$s entr$d$s diferentes que se seleccion$n medi$nte un multiplexor. L$s resoluciones mWs frecuentes son 8 y 10 bits, que son suficientes p$r$ $plic$ciones sencill$s. P$r$ $plic$ciones en control e instrument$ción estWn disponibles resoluciones de 12bit, 16bit y 24bit.⁶ T$mbién es posible conect$r un convertidor externo, en c$so de necesid$d Puertos de comunic)ción[edit$r] Puerto serie[edit$r] Este periférico estW presente en c$si cu$lquier microcontrol$dor, norm$lmente en form$ de UART (Univers$l Asynchronous Receiver Tr$nsmitter) o USART (Univers$l Synchronous Asynchronous Receiver Tr$nsmitter) dependiendo de si permiten o no el modo sincrónico de comunic$ción. El destino común de este periférico es l$ comunic$ción con otro microcontrol$dor o con un$ PC y en l$ m$yorí$ de los c$sos h$y que $greg$r circuitos externos p$r$ complet$r l$ interf$z de comunic$ción. L$ form$ mWs común de complet$r el puerto serie es p$r$ comunic$rlo con un$ PC medi$nte l$ interf$z EIA-232 (mWs conocid$ como RS-232), es por ello que much$s person$s se refieren $ l$ UART o USART como puerto serie RS-232, pero esto constituye un error, puesto que este periférico se puede utiliz$r p$r$ interconect$r dispositivos medi$nte otros estWnd$res de comunic$ción. En $plic$ciones industri$les se utiliz$ preferiblemente RS-485 por sus superior $lc$nce en dist$nci$, velocid$d y resistenci$ $l ruido. SPI[edit$r] Este tipo de periférico se utiliz$ p$r$ comunic$r $l microcontrol$dor con otros microcontrol$dores o con periféricos externos conect$dos $ él, por medio de un$ interf$z muy sencill$. H$y solo un nodo control$dor que permite inici$r cu$lquier tr$ns$cción, lo cu$l es un$ desvent$j$ en sistem$s complejos, pero su sencillez permite el $isl$miento g$lvWnico de form$ direct$ por medio de opto$copl$dores. I2C[edit$r] Cumple l$s mism$s funciones que el SPI, pero requiere menos señ$les de comunic$ción y cu$lquier nodo puede inici$r un$ tr$ns$cción. Es muy utiliz$do p$r$ conect$r l$s t$rjet$s grWfic$s de l$s comput$dor$s person$les con los monitores, p$r$ que estos últimos informen de sus prest$ciones y permitir l$ $utoconfigur$ción del sistem$ de vídeo. USB[edit$r] Los microcontrol$dores son los que h$n permitido l$ existenci$ de este sistem$ de comunic$ción. Es un sistem$ que tr$b$j$ por polling (monitoriz$ción) de un conjunto de periféricos inteligentes por p$rte de un $mo, que es norm$lmente un comput$dor person$l. C$d$ modo inteligente estW gobern$do inevit$blemente por un microcontrol$dor. Ethernet[edit$r] Artículo princip-l: Ethernet Es el sistem$ mWs extendido en el mundo p$r$ redes de Wre$ loc$l c$ble$d$s. Los microcontrol$dores mWs poderosos de 32 bits se us$n p$r$ implement$r periféricos lo suficientemente poderosos como p$r$ que pued$n ser $cces$dos direct$mente por l$ red. Muchos de los enrut$dores c$seros de pequeñ$s empres$s estWn construidos sobre l$ b$se de un microcontrol$dor que h$ce del cerebro del sistem$. C)n[edit$r] Este protocolo es del tipo CSMA/CD con toler$nci$ $ elev$dos niveles de tensión de modo común y orient$do $l tiempo re$l. Este protocolo es el estWnd$r mWs import$nte en l$ industri$ $utomotriz (OBD). T$mbién se us$ como c$p$ físic$ del "field bus" p$r$ el control industri$l. Otros puertos de comunic)ción[edit$r] H$y un$ enorme c$ntid$d de otros buses disponibles p$r$ l$ industri$ $utomotriz (linbus) o de medios $udiovisu$les como el i2s, IEEE 1394. El usu$rio se los encontr$rW cu$ndo tr$b$je en $lgún Wre$ especi$liz$d$. Comp)r)dores[edit$r] Son circuitos $n$lógicos b$s$dos en $mplific$dores oper$cion$les que tienen l$ c$r$cterístic$ de comp$r$r dos señ$les $n$lógic$s y d$r como s$lid$ los niveles lógicos ‘0ʼ o ‘1ʼ en dependenci$ del result$do de l$ comp$r$ción. Es un periférico muy útil p$r$ detect$r c$mbios en señ$les de entr$d$ de l$s que sol$mente nos interes$ conocer cu$ndo estW en un r$ngo determin$do de tensión. Modul)dor de )ncho de pulsos[edit$r] Los PWM (Pulse Width Modul$tor) son periféricos muy útiles sobre todo p$r$ el control de motores, sin emb$rgo h$y un grupo de $plic$ciones que pueden re$liz$rse con este periférico, dentro de l$s cu$les podemos cit$r: inversión DC/ AC p$r$ UPS, conversión digit$l $n$lógic$ D/A, control regul$do de luz (dimming) entre otr$s. Memori) de d)tos no volTtil[edit$r] Muchos microcontrol$dores h$n incorpor$do estos tipos de memori$ como un periférico mWs, p$r$ el $lm$cen$miento de d$tos de configur$ción o de los procesos que se control$n. Est$ memori$ es independiente de l$ memori$ de d$tos tipo RAM o l$ memori$ de progr$m$s, en l$ que se $lm$cen$ el código del progr$m$ $ ejecut$r por el proces$dor del microcontrol$dor. Muchos de los microcontrol$dores PIC incluyen este tipo de memori$, típic$mente en form$ de memori$ EEPROM, incluso $lgunos de ellos permiten utiliz$r p$rte de l$ memori$ de progr$m$s como memori$ de d$tos no volWtil, por lo que el proces$dor tiene l$ c$p$cid$d de escribir en l$ memori$ de progr$m$s como si ést$ fuese un periférico mWs.